'use strict'; define(['app', 'angular' ], 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) { $scope.fn = { logout: logout, // 로그아웃 startWebSock: startWebSock, // 웹 소켓 시작 changeLastWorkspace: changeLastWorkspace, // 마지막 접근 업무 공간 changeLastProject: changeLastProject, // 프로젝트 변경 invite: invite, // 사용자 초대하기 findAllWorkproject: findAllWorkproject, // 사용자가 참여하는 프로젝트 목록 가져오기 addIssue: addIssue, // 이슈 만들기 팝업 표시 makeIssueSearch: makeIssueSearch, // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. disconnectSocket: disconnectSocket, // 웹 소켓 연결 해제 sendMessage: sendMessage, moveMenu : moveMenu }; $scope.vm = { message: "", }; // 시스템에서 특정 이슈로 바로 이동할 수 있도록 해준다. $scope.$on("makeIssueSearch", function (event, args) { // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. $scope.fn.makeIssueSearch(args.projectKey, args.issueNumber); }); // 프로젝트 목록 화면 새로 고침시 $scope.$on("getProjectList", function () { findAllWorkproject(); }); function moveMenu(stateName) { if ($state.current.name == stateName) { $state.reload(); } else { $state.go(stateName); } } // 메세지 발송 function sendMessage() { var content = { description : $scope.vm.message, userIds : [1] }; Notice.send($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 0))).then(function (result) { }); } // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. function makeIssueSearch(projectKey, issueNumber) { var combinationIssueNumber = projectKey; if (issueNumber != undefined) { combinationIssueNumber += "-" + issueNumber; } var content = { conditions: JSON.stringify({ search: { combinationIssueNumber: combinationIssueNumber } }) }; IssueSearch.add($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { moveMenu("issues.list"); } else { SweetAlert.error($filter("translate")("issue.failedToSaveFieldConditions"), result.data.message.message); // "검색 필드 조건 저장 실패" } }); } // 이슈 만들기 팝업 표시 function addIssue() { $uibModal.open({ templateUrl: 'views/issue/issueAdd.html', size: "lg", controller: 'issueAddController', backdrop: 'static' }); } // 참여하는 프로젝트 목록 가져오기 function findAllWorkproject() { var deferred = $q.defer(); var defaultName = $filter("translate")("common.totalProject"); var defaultProject = {id:-1, name: defaultName, customName:"[ "+ defaultName + " ]" }; $rootScope.projects = []; $rootScope.projects.push(defaultProject); $rootScope.workProject = defaultProject; Project.findListWork($resourceProvider.getContent({}, $resourceProvider.getPageContent(0, 1000))).then(function (result) { if (result.data.message.status === "success") { var projects = result.data.data; if (projects != undefined && projects.length > 0) { // 마지막 사용한 프로젝트 조회 var datas = []; datas.push(defaultProject); for (var count in projects) { var project = projects[count]; datas.push(project); project.depth = 0; project.customName = project.name; setChildren(project, datas, project.depth); if ($rootScope.user.lastProjectId === project.id) { $rootScope.workProject = project; } } $rootScope.projects = datas; } if ($rootScope.user.lastProjectId == null) { $rootScope.user.lastProjectId = -1; } } deferred.resolve(result.data.data); }); return deferred.promise; } function setChildren(row, datas, depth) { depth++; var childProjects = row.childProjects; if (childProjects != undefined && childProjects.length > 0) { for (var child of childProjects) { child.depth = depth; var space = ""; for (var i=0;i