OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/scripts/app/common/common.controller.js
@@ -6,8 +6,8 @@
    function (app, angular) {
        app.controller('commonController', ['$scope', '$rootScope', '$log', 'Auth', '$state', 'User', '$resourceProvider', '$uibModal', 'SweetAlert', 'Workspace', '$translate', '$q',
            '$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) {
            '$controller', '$injector', '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', 'IssueType',
            function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $controller, $injector, $interval, IssueSearch, $filter, Notice, Project, IssueType) {
                $scope.fn = {
                    logout: logout,    //  로그아웃
@@ -24,7 +24,8 @@
                    findIssueList : findIssueList,   // 사이드바 이슈 목록 가져오기
                    changeIssueListMenu : changeIssueListMenu,
                    setLastIssueType : setLastIssueType,
                    searchAll : searchAll       // 상단 검색
                    searchAll : searchAll,       // 상단 검색
                    sendCommonMail : sendCommonMail
                };
                $scope.vm = {
@@ -36,7 +37,7 @@
                    }
                };
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                //  시스템에서 특정 이슈로 바로 이동할 수 있도록 해준다.
                $scope.$on("makeIssueSearch", function (event, args) {
@@ -60,15 +61,37 @@
                    //}
                });
                $rootScope.$on("$stateChangeStart", function (event, toState, toStateParams) {
                    var keyWord = $rootScope.getCookie("searchKeyword");
                    if (keyWord == null || keyWord === '') {
                        $scope.vm.searchAll.keyWord = "";
                    }
                });
                // 일반 메일 발송 (사용자 직접 작성)
                function sendCommonMail() {
                    $uibModal.open({
                        templateUrl : 'views/issue/issueCommonSendMail.html',
                        size : "md",
                        controller : 'issueCommonSendMailController',
                        backdrop : 'static',
                        resolve : {
                            parameter : {
                                issueId : null,
                            }
                        }
                    });
                }
                // 메인 상단 검색
                function searchAll() {
                    $rootScope.isMainSearch = true;
                    if ($state.current.name !== "issues.list" || $state.current.name === "issues.list") {
                        $state.go("issues.list");
                    if ($rootScope.isDefined($scope.vm.searchAll.keyWord)) {
                        $rootScope.setCookie("searchKeyword", $scope.vm.searchAll.keyWord, 60000);
                        moveMenu("issues.list");
                    } else {
                        SweetAlert.warning($filter("translate")("common.alertSystem"), $filter("translate")("issue.pleaseEnterIssueKeyWord"));
                    }
                    $scope.$broadcast("searchIssueList", {keyWord: $scope.vm.searchAll.keyWord});
                }
                function setLastIssueType() {
@@ -86,10 +109,17 @@
                function changeIssueListMenu(issueTypeId, changeProject = true) {
                    $rootScope.issueTypeMenu = null;
                    for (var issueType of $rootScope.workIssueTypes) {
                        if (issueType.id === issueTypeId) {
                            $rootScope.issueTypeMenu = issueType;
                            break;
                    $rootScope.allIssueList = false;
                    if (issueTypeId == null) {
                        $rootScope.allIssueList = true;
                        $rootScope.isMainSearch = false; //상세검색 표시
                        moveMenu("issues.list");
                    }else {
                        for (var issueType of $rootScope.workIssueTypes) {
                            if (issueType.id === issueTypeId) {
                                $rootScope.issueTypeMenu = issueType;
                                break;
                            }
                        }
                    }
@@ -97,7 +127,7 @@
                    if (changeProject) {
                        $rootScope.$broadcast("changedIssueListMenu", $rootScope.issueTypeMenu);
                        $rootScope.changeLastProject($rootScope.issueTypeMenu.projectVo.id, false, false);
                        //$rootScope.changeLastProject($rootScope.issueTypeMenu.projectVo.id, false, false);
                        if ($rootScope.issueTypeMenu != null) {
                            moveMenu("issues.list");
@@ -108,8 +138,6 @@
                    if ($rootScope.user.lastIssueTypeId !== issueTypeId) {
                        $scope.fn.setLastIssueType(issueTypeId);
                    }
                }
                function moveMenu(stateName) {
@@ -202,9 +230,9 @@
                                    }
                                    var id = $rootScope.workProject.id === -1 ? null : $rootScope.workProject.id;
                                    $scope.fn.findIssueList(id);
                                }
                                $rootScope.projects = datas;
                                $scope.fn.findIssueList(id);
                            }
                            if ($rootScope.user.lastProjectId == null) {
@@ -259,6 +287,10 @@
                // 이슈 유형 목록 가져오기
               function findIssueList(projectId) {
                    if ($rootScope.projects == null || $rootScope.projects.length <= 1)
                        return;
                   //  이슈 타입 목록 검색 조건을 만든다.
                   var conditions = {
                       projectId : projectId > -1 ? projectId : null,
@@ -274,23 +306,15 @@
                           if ($rootScope.workIssueTypes != null && $rootScope.workIssueTypes.length > 0) {
                               $rootScope.workIssueTypes.forEach(function (issueType) {
                                   var selectIssueTypeId = null;
                                   //var selectIssueTypeId = null;
                                   if (issueType.id === $rootScope.user.lastIssueTypeId) {
                                       selectIssueTypeId = issueType.id;
                                       //selectIssueTypeId = issueType.id;
                                       $scope.fn.changeIssueListMenu(issueType.id, false);
                                       // $state.go('dashboards.dashboard');
                                   }
                                   if (selectIssueTypeId == null) {
                                       $scope.fn.changeIssueListMenu($rootScope.workIssueTypes[0].id, false);
                                       // 이슈목록 새로고침 목록 갱신
                                       $scope.$broadcast("findIssueListOK", { myIssueType : issueType} );
                                   }
                               });
                           }
                           // 대쉬보드로 가는데 프로젝트를 생성하거나 수정해도 걸리는 조건이다.
                           // else {
                           //     $state.go('dashboards.dashboard');
                           // }
                       }
                       else {
                           SweetAlert.error($filter("translate")("managementType.failedToIssueTypeList"), result.data.message.message); // "이슈 유형 목록 조회 실패"
@@ -398,6 +422,18 @@
                            });
                        });
                        //  사용자 관리 - 사용자 등급 변경 했을 때
                        $rootScope.webSocket.client.subscribe('/user/notification/changeUserLevel', function (notification) {
                            SweetAlert.warning($filter("translate")("common.changeUserLevel"), $filter("translate")("common.logoutForLevelChange"));
                            $rootScope.$broadcast("logout");
                        });
                        //  사용자 관리 - 사용자 부서 변경 했을 때
                        $rootScope.webSocket.client.subscribe('/user/notification/changeUserDepartment', function (notification) {
                            SweetAlert.warning($filter("translate")("common.changeUserDepartment"), $filter("translate")("common.logoutForDepartmentChange"));
                            $rootScope.$broadcast("logout");
                        });
                        //  참여 업무 공간 비활성화 알림 - 해당 업무 공간를 보고 있을 때
                        $rootScope.webSocket.client.subscribe('/user/notification/workspace-disabled', function (notification) {
                            // edit by zenith at 20200801