OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-11-29 fd8fdf9441329845ff78d3ae4274f107e3e6ba4d
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 : ""
                };
                //  테이블 이벤트
@@ -102,7 +109,9 @@
                            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 +137,10 @@
                                var issueListSearchObject = JSON.parse(result.data.data);
                                //  이슈 번호만 적용한다. - 삭제시 처리방법때문에 다른 속성은 적용 보류
                                $scope.vm.search = issueListSearchObject.search;
                                /*$scope.vm.users = issueListSearchObject.users;
                                $scope.vm.users = issueListSearchObject.users;
                                $scope.vm.departments = issueListSearchObject.departments;
                                $scope.vm.projects = issueListSearchObject.projects;
                                $scope.vm.registers = issueListSearchObject.registers;*/
                                $scope.vm.registers = issueListSearchObject.registers;
                                $scope.fn.getPageList(0, true);
                            } else {
@@ -240,13 +250,13 @@
                                .setDAlign("text-center")
                                .setDName("issueTypeName"));
                            break;
                        case "ASSIGNEE" :   //  담당자
                        case "ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.assignee")
                                .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()
@@ -311,6 +321,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 +385,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 +471,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
@@ -476,10 +497,14 @@
                        $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) {
                                changeDetailView(result.data.data[0].id);
                            if (result.data.data !=  null && result.data.data.length > 0) {
                                $scope.vm.issueTypeId = result.data.data[0].issueTypeId;
                                $scope.vm.page.selectedPage = currentPage + 1;
                                $scope.vm.responseData = result.data;
                                if (detail) {
                                    changeDetailView(result.data.data[0].id);
                                }
                            }
                        }
                        else {
@@ -658,7 +683,13 @@
                        size : "lg",
                        controller : 'issueAddTableConfigController',
                        backdrop : 'static',
                        resolve : {}
                        resolve : {
                            parameter : function () {
                                return {
                                    issueTypeId : $scope.vm.issueTypeId
                                };
                            }
                        }
                    });
                }
@@ -704,6 +735,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);
@@ -781,6 +832,30 @@
                                    case "SINGLE_SELECT" :
                                        customField.useValues = [];
                                        break;
                                    case "NUMBER" :
                                        customField.useValues = "";
                                        break;
                                    case "DATETIME" :
                                        customField.useValues = "";
                                        break;
                                    case "IP_ADDRESS" :
                                        customField.useValues = "";
                                        break;
                                    case "EMAIL" :
                                        customField.useValues = "";
                                        break;
                                    case "SITE" :
                                        customField.useValues = "";
                                        break;
                                    case "TEL" :
                                        customField.useValues = "";
                                        break;
                                }
                                $scope.vm.customFields.push(customField);
@@ -797,21 +872,27 @@
                }
                //  사용자 이슈 목록 테이블 설정 값을 가져와서 적용한다.
                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;
                }
                //  최초 실행
                function startExecute() {
                    // 파라미터 읽기
@@ -819,6 +900,7 @@
                    if ($rootScope.isDefined(params)) {
                        $rootScope.$broadcast("makeIssueSearch", {  projectKey : params.projectKey, issueNumber : params.issueNumber });
                        $rootScope.previousGetParams = null;
                        $rootScope.issueTypeId = $rootScope.issueTypeMenu.id;
                        return;
                    }
@@ -866,8 +948,8 @@
                                    position : 3,
                                    display : true
                                }, {
                                    name : $filter("translate")("common.assignee"), // 담당자
                                    key : "ASSIGNEE",
                                    name : $filter("translate")("common.assigneeTeam"), // 담당부서
                                    key : "ASSIGNEE_TEAM",
                                    width : "width-140-p",
                                    position : 4,
                                    display : true
@@ -884,6 +966,7 @@
                $scope.fn.startExecute();
            }
        ]);
    }
);