| | |
| | | function (app, angular) { |
| | | |
| | | app.controller('commonController', ['$scope', '$rootScope', '$log', 'Auth', '$state', 'User', '$resourceProvider', '$uibModal', 'SweetAlert', 'Workspace', '$translate', '$q', |
| | | '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', |
| | | function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project) { |
| | | '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', 'IssueType', |
| | | function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project, IssueType) { |
| | | |
| | | $scope.fn = { |
| | | logout: logout, // 로그아웃 |
| | |
| | | makeIssueSearch: makeIssueSearch, // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. |
| | | disconnectSocket: disconnectSocket, // 웹 소켓 연결 해제 |
| | | sendMessage: sendMessage, |
| | | moveMenu : moveMenu |
| | | moveMenu : moveMenu, |
| | | findIssueList : findIssueList, // 사이드바 이슈 목록 가져오기 |
| | | changeIssueListMenu : changeIssueListMenu, |
| | | setLastIssueType : setLastIssueType |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | workProject : -1, |
| | | message: "", |
| | | workProjectId : -1 |
| | | }; |
| | | |
| | | |
| | |
| | | $scope.fn.makeIssueSearch(args.projectKey, args.issueNumber); |
| | | }); |
| | | |
| | | // 이슈 유형 변경시 |
| | | $scope.$on("modifyIssueType", function (event, args) { |
| | | findIssueList($rootScope.workProject != null ? $rootScope.workProject.id : null); |
| | | }); |
| | | |
| | | // 프로젝트 목록 화면 새로 고침시 |
| | | $scope.$on("getProjectList", function () { |
| | | findAllWorkproject(); |
| | | }); |
| | | |
| | | $scope.$on("changedLastProject", function () { |
| | | if ($rootScope.workProject != null) { |
| | | $scope.fn.findIssueList($rootScope.workProject.id); |
| | | } |
| | | }); |
| | | |
| | | function setLastIssueType() { |
| | | if (User != null) { |
| | | User.updateLastIssueType($resourceProvider.getContent( |
| | | {lastIssueTypeId: $rootScope.getCurrentIssueTypeId()}, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | function changeIssueListMenu(issueTypeId, changeProject = true) { |
| | | $rootScope.issueTypeMenu = null; |
| | | for (var issueType of $rootScope.workIssueTypes) { |
| | | if (issueType.id === issueTypeId) { |
| | | $rootScope.issueTypeMenu = issueType; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // sidebar 클릭시 프로젝트 아이디 설정 |
| | | if (changeProject) { |
| | | $rootScope.changeLastProject($rootScope.issueTypeMenu.projectVo.id, false, false); |
| | | |
| | | if ($rootScope.issueTypeMenu != null) { |
| | | moveMenu("issues.list"); |
| | | } |
| | | } |
| | | moveMenu("issues.list"); |
| | | //$rootScope.$broadcast("changeIssueListMenu", $rootScope.issueTypeMenu); |
| | | |
| | | if ($rootScope.user.lastIssueTypeId !== issueTypeId) { |
| | | $scope.fn.setLastIssueType(issueTypeId); |
| | | } |
| | | |
| | | } |
| | | |
| | | function moveMenu(stateName) { |
| | | if ($state.current.name == stateName) { |
| | |
| | | |
| | | // 메세지 발송 |
| | | function sendMessage() { |
| | | |
| | | var content = { |
| | | description : $scope.vm.message, |
| | | userIds : [1] |
| | |
| | | if ($rootScope.user.lastProjectId === project.id) { |
| | | $rootScope.workProject = project; |
| | | } |
| | | |
| | | var id = $rootScope.workProject.id === -1 ? null : $rootScope.workProject.id; |
| | | $scope.fn.findIssueList(id); |
| | | } |
| | | $rootScope.projects = datas; |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | // 현재 프로젝트 변경시 |
| | | |
| | | // 이슈 유형 목록 가져오기 |
| | | function findIssueList(projectId) { |
| | | // 이슈 타입 목록 검색 조건을 만든다. |
| | | var conditions = { |
| | | projectId : projectId > -1 ? projectId : null, |
| | | useProject : true, |
| | | deep : "01" // 이슈 유형에 연결된 워크플로우 정보를 찾는다. |
| | | } |
| | | IssueType.find($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(0, 100))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $rootScope.workIssueTypes = result.data.data; |
| | | |
| | | if ($rootScope.workIssueTypes != null && $rootScope.workIssueTypes.length > 0) { |
| | | $rootScope.workIssueTypes.forEach(function (issueType) { |
| | | |
| | | var selectIssueTypeId = null; |
| | | if (issueType.id === $rootScope.user.lastIssueTypeId) { |
| | | selectIssueTypeId = issueType.id; |
| | | $scope.fn.changeIssueListMenu(issueType.id, false); |
| | | } |
| | | |
| | | if (selectIssueTypeId == null) { |
| | | $scope.fn.changeIssueListMenu($rootScope.workIssueTypes[0].id, false); |
| | | } |
| | | }); |
| | | } else { |
| | | $state.go('dashboards.dashboard'); |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementType.failedToIssueTypeList"), result.data.message.message); // "이슈 유형 목록 조회 실패" |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | // 프로젝트 변경 |
| | | function changeLastProject(projectId) { |
| | | $rootScope.changeLastProject(projectId); |
| | | |
| | | |
| | | } |
| | | |
| | | // 업무 공간 변경 |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $rootScope.user = result.data.data; |
| | | $rootScope.setCurrentIssueTypeId() |
| | | $state.go($state.current, {}, {reload: true}); |
| | | |
| | | if ($state.current.name === "dashboards.dashboard") { |
| | |
| | | $scope.fn.findAllWorkproject(); |
| | | }); |
| | | |
| | | |
| | | // 10초마다 웹 소켓 연결을 확인하는 폴링 이벤트 |
| | | $interval(function () { |
| | | //$log.debug("10초마다 소켓 연결을 확인합니다."); |