OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -28,6 +28,7 @@
                    listView : listView,    //  목록 화면으로 변경
                    importExcel : importExcel,  //  엑셀 import 기능 팝업 호출
                    getIssueTypes : getIssueTypes,  //  이슈 유형 목록을 가져온다.
                    getUsePartner : getUsePartner,  //  이슈 유형 별 사용하는 파트너 목록을 가져온다.
                    getPriorities : getPriorities,  //  우선순위 목록을 가져온다.
                    getSeverities : getSeverities,  //  중요도 목록을 가져온다.
                    getIssueStatuses : getIssueStatuses,    //  이슈 상태 목록을 가져온다.
@@ -41,7 +42,10 @@
                //  변수
                $scope.vm = {
                    issueTypeId : "",
                    partnerVos : "",
                    search : {
                        keyWord : "", //  전체 검색
                        title : "", //  제목
                        description : "",   //  내용
                        combinationIssueNumber : "",   //  이슈 번호
@@ -70,12 +74,15 @@
                    projects : [],  //  프로젝트
                    issueStatuses : [], //  이슈 상태
                    issueTypes : [],    //  이슈 유형
                    partners : [],    //  이슈 유형
                    priorities : [],    //  우선 순위
                    severities : [],    //  중요도
                    users : [], //  담당자
                    departments : [], //  담당부서
                    registers : [], //  등록자
                    customFields : [],  //  사용자 정의 필드
                    issueTableConfigs : []  //  이슈 테이블 설정
                    issueTableConfigs : [],  //  이슈 테이블 설정
                    parentIssueId : ""
                };
                //  테이블 이벤트
@@ -96,13 +103,16 @@
                });
                //  검색 조건을 기억한다. - 적용 보류
                //  검색 조건을 기억해서 이슈 상세 페이지로 이동
                function makeVmSearchObject() {
                    var content = {
                        conditions : JSON.stringify({
                            search : $scope.vm.search,
                            projects : $scope.vm.projects,
                            users : $scope.vm.users,
                            registers : $scope.vm.registers
                            departments : $scope.vm.departments,
                            registers : $scope.vm.registers,
                            parentIssueId : $scope.vm.parentIssueId
                        })
                    };
@@ -128,9 +138,10 @@
                                var issueListSearchObject = JSON.parse(result.data.data);
                                //  이슈 번호만 적용한다. - 삭제시 처리방법때문에 다른 속성은 적용 보류
                                $scope.vm.search = issueListSearchObject.search;
                                /*$scope.vm.users = issueListSearchObject.users;
                                $scope.vm.projects = issueListSearchObject.projects;
                                $scope.vm.registers = issueListSearchObject.registers;*/
                                // $scope.vm.users = issueListSearchObject.users;
                                // $scope.vm.departments = issueListSearchObject.departments;
                                // $scope.vm.projects = issueListSearchObject.projects;
                                // $scope.vm.registers = issueListSearchObject.registers;
                                $scope.fn.getPageList(0, true);
                            } else {
@@ -158,10 +169,11 @@
                    //  현재 상세화면으로 보려고하는 이슈 id를 기억한다.
                    $rootScope.currentDetailIssueId = id;
                    //  이슈 상세 화면 요청
                    $rootScope.$broadcast("getIssueDetail", {
                        id : id
                    });
                    // $scope.$broadcast("getIssueDetail", {
                    //     id : id
                    // });
                }
                //  목록 화면으로 변경한다.
                function listView() {
@@ -172,6 +184,7 @@
                    $scope.vm.responseData.data = angular.copy(temp);
                    //  마지막으로 보고있던 이슈 id를 초기화한다.
                    $rootScope.currentDetailIssueId = null;
                    $scope.$broadcast("getIssueList", {id: $rootScope.currentDetailIssueId});
                }
                //  이슈 테이블 설정
@@ -240,13 +253,13 @@
                                .setDAlign("text-center")
                                .setDName("issueTypeName"));
                            break;
                        case "ASSIGNEETEAM" :   //  담당부서
                        case "ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_USER"));
                                .setDRenderer("ISSUE_DEPARTMENT"));
                            break;
                        case "REGISTER" :   //  등록자
                            $scope.vm.tableConfigs.push($tableProvider.config()
@@ -270,6 +283,13 @@
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                            break;
                        case "COUNT_DOWN_ISSUE" : //  하위 이슈 개수
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.countDownIssue")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("downIssueCount"));
                            break;
                    }
@@ -311,6 +331,7 @@
                //  이슈 검색 조건을 만든다.
                function makeSearchConditions() {
                    var conditions = {
                        keyWord : $scope.vm.search.keyWord,
                        title : $scope.vm.search.title,
                        description : $scope.vm.search.description,
                        projectType : $scope.vm.search.projectType,
@@ -374,6 +395,15 @@
                            });
                            return userIds;
                        })(),
                        departmentIds : (function () {
                            var departmentIds = [];
                            angular.forEach($scope.vm.departments, function (department) {
                                departmentIds.push(department.id);
                            });
                            return departmentIds;
                        })(),
                        registerIds : (function () {
                            var registerIds = [];
@@ -451,6 +481,7 @@
                    // 메뉴에서 선택된 이슈 유형을 기본으로 추가
                    if ($rootScope.issueTypeMenu != null) {
                        // $scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
                        $scope.vm.search.issueTypeIds = [];
                        $scope.vm.search.issueTypeIds.push({
                            fieldKey : $rootScope.issueTypeMenu.id,
                            fieldValue : $rootScope.issueTypeMenu.name
@@ -465,6 +496,7 @@
                    if ($rootScope.workProject != null && $rootScope.workProject.id > -1) {
                        var find = findProjectSearch($rootScope.workProject.id);
                        if (!find) {
                            $scope.vm.projects = [];
                            $scope.vm.projects.push($rootScope.workProject);
                        }
                    }
@@ -476,9 +508,41 @@
                        $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.page.selectedPage = currentPage + 1;
                            $scope.vm.responseData = result.data;
                            if (detail) {
                            if (result.data.data !=  null && result.data.data.length > 0) {
                                $scope.vm.issueTypeId = result.data.data[0].issueTypeId;
                                $scope.vm.projectKey = result.data.data[0].projectKey;
                                $scope.vm.issueNumber = result.data.data[0].issueNumber;
                                $scope.vm.projectName = result.data.data[0].projectName;
                                $scope.vm.page.selectedPage = currentPage + 1;
                                $scope.vm.responseData = result.data;
                                if (detail) {
                                    changeDetailView(result.data.data[0].id);
                                }
                            }
                        }
                        else {
                            SweetAlert.error($filter("translate")("issue.failedIssueLookup"), result.data.message.message); // 이슈 조회 실패
                        }
                    });
                }
                // 이메일 프로젝트 경로로 이동 후 상세 진입시 조회
                function getDetailList(projectKey, number) {
                    var conditions = {
                        projectKey : projectKey,
                        combinationIssueNumber : number
                    };
                    Issue.find($resourceProvider.getContent(conditions,
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            if (result.data.data !=  null && result.data.data.length > 0) {
                                $scope.vm.projectKey = result.data.data[0].projectKey;
                                $scope.vm.issueNumber = result.data.data[0].issueNumber;
                                $scope.vm.responseData = result.data;
                                changeDetailView(result.data.data[0].id);
                            }
                        }
@@ -567,7 +631,7 @@
                        resolve : {
                            parameter : function () {
                                return {
                                    id : id
                                    id : id,
                                };
                            }
                        }
@@ -658,7 +722,13 @@
                        size : "lg",
                        controller : 'issueAddTableConfigController',
                        backdrop : 'static',
                        resolve : {}
                        resolve : {
                            parameter : function () {
                                return {
                                    issueTypeId : $scope.vm.issueTypeId
                                };
                            }
                        }
                    });
                }
@@ -704,6 +774,26 @@
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 유형 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
                    });
                    return deferred.promise;
                }
                //  이슈유형 별 파트너 목록
                function getUsePartner() {
                    var deferred = $q.defer();
                    $scope.vm.partners = [];
                    Issue.findPartners($resourceProvider.getContent({},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.content;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // 우선순위 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
@@ -774,6 +864,12 @@
                            angular.forEach(result.data.data, function (customField) {
                                switch (customField.customFieldType) {
                                    case "INPUT" :
                                    case "NUMBER" :
                                    case "DATETIME" :
                                    case "IP_ADDRESS" :
                                    case "EMAIL" :
                                    case "SITE" :
                                    case "TEL" :
                                        customField.useValues = "";
                                        break;
@@ -781,6 +877,7 @@
                                    case "SINGLE_SELECT" :
                                        customField.useValues = [];
                                        break;
                                }
                                $scope.vm.customFields.push(customField);
@@ -797,17 +894,24 @@
                }
                //  사용자 이슈 목록 테이블 설정 값을 가져와서 적용한다.
                function getIssueTableConfigs() {
                    var deferred = $q.defer();
                    IssueTableConfig.detail($resourceProvider.getContent({},
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status !== "success") {
                            SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // 이슈 테이블 컬럼 조회 실패
                        }
                    if ($rootScope.issueTypeMenu != null){
                        var content = {
                            issueTypeId : $rootScope.issueTypeMenu.id
                            }
                        deferred.resolve(result.data.data);
                    });
                        IssueTableConfig.detail($resourceProvider.getContent(content,
                            $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                            if (result.data.message.status !== "success") {
                                SweetAlert.error($filter("translate")("issue.failedToIssueTableColumnLookup"), result.data.message.message); // 이슈 테이블 컬럼 조회 실패
                            }
                            deferred.resolve(result.data.data);
                        });
                    }
                    return deferred.promise;
                }
@@ -817,8 +921,10 @@
                    // 파라미터 읽기
                    var params = $rootScope.previousGetParams;
                    if ($rootScope.isDefined(params)) {
                        $rootScope.$broadcast("makeIssueSearch", {  projectKey : params.projectKey, issueNumber : params.issueNumber });
                        // $rootScope.$broadcast("makeIssueSearch", {  projectKey : params.projectKey, issueNumber : params.issueNumber });
                        getDetailList(params.projectKey, params.issueNumber);
                        $rootScope.previousGetParams = null;
                        // $rootScope.issueTypeId = $rootScope.issueTypeMenu.id;
                        return;
                    }
@@ -867,7 +973,7 @@
                                    display : true
                                }, {
                                    name : $filter("translate")("common.assigneeTeam"), // 담당부서
                                    key : "ASSIGNEETEAM",
                                    key : "ASSIGNEE_TEAM",
                                    width : "width-140-p",
                                    position : 4,
                                    display : true
@@ -884,6 +990,7 @@
                $scope.fn.startExecute();
            }
        ]);
    }
);