OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-26 0509eeb6d6417f20aabe54295512384be707ff9d
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -8,8 +8,9 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q','SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'IssueStatus', 'IssueTableConfig', '$filter',
            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, IssueStatus, IssueTableConfig, $filter) {
        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q',
            '$controller', '$injector', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile',  'Priority', 'Severity','IssueStatus', 'IssueTableConfig', '$filter',
            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) {
                //  IssueListController vm, fn 변수 상속.
@@ -112,6 +113,8 @@
                    $scope.$parent.tableEvent.changeDetailView(issue.id);
                }
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                // 하위 이슈 삭제
                function removeDownIssue(id) {
                    //  삭제 알림
@@ -202,10 +205,12 @@
                }
                //  테이블의 연관 이슈 컬럼을 만들어준다.
                function setRelTableColumn(issueTableConfig) {
                function setRelTableColumn(Rel_issueTableConfig) {
                    //  연관 이슈 컬럼
                    switch(issueTableConfig.key) {
                    switch(Rel_issueTableConfig.key) {
                        // 연관 이슈 구분
                        case "RELATION_ISSUE_TYPE" :
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueType")
@@ -214,6 +219,7 @@
                                .setHSort(false)
                                .setDRenderer("ISSUE_RELATION_TYPE"))
                            break;
                        // 연관 이슈 제목
                        case "RELATION_ISSUE_TITLE" :
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueTitle")
@@ -222,59 +228,53 @@
                                .setHSort(false)
                                .setDRenderer("ISSUE_RELATION_MOVE"))
                            break;
                        case "PRIORITY" :   //  우선순위
                        case "PRIORITY" :   // 연관 이슈 우선순위
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("COMMON_PRIORITY"));
                                .setDRenderer("REL_COMMON_PRIORITY"));
                            break;
                        case "SEVERITY" :   //  중요도
                        case "SEVERITY" :   //  연관 이슈 중요도
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("severityName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("COMMON_SEVERITY"));
                                .setDRenderer("REL_COMMON_SEVERITY"));
                            break;
                        case "ISSUE_TYPE" : //  이슈 타입
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.issueType")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("issueTypeName"));
                            break;
                        case "ASSIGNEE_TEAM" :   //  담당부서
                        case "ASSIGNEE_TEAM" :   // 연관 이슈 담당부서
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DEPARTMENT"));
                                .setDRenderer("REL_ISSUE_DEPARTMENT"));
                            break;
                        case "REGISTER" :   //  등록자
                        case "REGISTER" :   // 연관 이슈  등록자
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REGISTER"));
                                .setDRenderer("REL_REGISTER"));
                            break;
                        case "PERIOD" : //  기간
                        case "PERIOD" : // 연관 이슈 기간
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DUE_DATE"));
                                .setDRenderer("REL_ISSUE_DUE_DATE"));
                            break;
                        case "MODIFY_DATE" : //  최근 변경일
                        case "MODIFY_DATE" : // 연관 이슈  최근 변경일
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                            break;
@@ -289,19 +289,19 @@
                    }
                    //  사용자 정의 필드 컬럼
                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                    if (Rel_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                        //  만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
                        for (var count in $scope.vm.customFields) {
                            var customField = $scope.vm.customFields[count];
                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
                                $scope.vm.tableConfigs.push($tableProvider.config()
                            if (customField.id === Number(Rel_issueTableConfig.key.substring(13))) {
                                $scope.vm.relTableConfigs.push($tableProvider.config()
                                    .setHName(customField.name)
                                    .setDType("renderer")
                                    .setHWidth("bold " + issueTableConfig.width)
                                    .setHWidth("bold " + Rel_issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
                                    .setDRenderer("ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
                                    .setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
                                break;
                            }
                        }
@@ -310,91 +310,85 @@
                //  테이블의 하위 이슈 컬럼을 만들어준다.
                function setDownTableColumn(issueTableConfig) {
                function setDownTableColumn(Down_issueTableConfig) {
                    // if (issueTableConfig == null) return;
                    //  하위 이슈 컬럼
                    switch(issueTableConfig.key) {
                        case "DOWN_ISSUE_TITLE" :   //  하위 이슈 제목
                    switch(Down_issueTableConfig.key) {
                        //  하위 이슈 제목
                        case "DOWN_ISSUE_TITLE" :
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.downIssueTitle")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DOWN_MOVE"));
                            break;
                        case "PRIORITY" :   //  우선순위
                        case "PRIORITY" :   // 하위 이슈 우선순위
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("COMMON_PRIORITY"));
                                .setDRenderer("DOWN_COMMON_PRIORITY"));
                            break;
                        case "SEVERITY" :   //  중요도
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("severityName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("COMMON_SEVERITY"));
                            break;
                        case "ISSUE_TYPE" : //  이슈 타입
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.issueType")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("issueTypeName"));
                                .setDRenderer("DOWN_COMMON_SEVERITY"));
                            break;
                        case "ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DEPARTMENT"));
                                .setDRenderer("DOWN_ISSUE_DEPARTMENT"));
                            break;
                        case "REGISTER" :   //  등록자
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REGISTER"));
                                .setDRenderer("DOWN_REGISTER"));
                            break;
                        case "PERIOD" : //  기간
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DUE_DATE"));
                                .setDRenderer("DOWN_ISSUE_DUE_DATE"));
                            break;
                        case "MODIFY_DATE" : //  최근 변경일
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                            break;
                    }
                    //  사용자 정의 필드 컬럼
                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") === -1) {
                    if (Down_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                        //  만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
                        for (var count in $scope.vm.customFields) {
                            var customField = $scope.vm.customFields[count];
                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
                            if (customField.id === Number(Down_issueTableConfig.key.substring(13))) {
                                $scope.vm.downTableConfigs.push($tableProvider.config()
                                    .setHName(customField.name)
                                    .setDType("renderer")
                                    .setHWidth("bold " + issueTableConfig.width)
                                    .setHWidth("bold " + Down_issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
                                    .setDRenderer("ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
                                    .setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
                                break;
                            }
                        }
@@ -408,28 +402,31 @@
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueType")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-30-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_TYPE"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueTitle")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_MOVE"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueDelete")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-20-p bold")
                        .setDRenderer("ISSUE_RELATION_DELETE")
                        .setHSort(false)
                        .setDAlign("text-center"))
                    angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
                    angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (issueTableConfig.display) {
                        if (Rel_issueTableConfig.display) {
                            //  테이블의 컬럼을 만들어준다.
                            $scope.fn.setRelTableColumn(issueTableConfig);
                            $scope.fn.setRelTableColumn(Rel_issueTableConfig);
                        }
                    });
                }
@@ -440,22 +437,24 @@
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                        .setHName("issue.downIssueTitle")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_DOWN_MOVE"))
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueDelete")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-20-p bold")
                        .setDRenderer("ISSUE_DOWN_DELETE")
                        .setHSort(false)
                        .setDAlign("text-center"))
                    angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) {
                    angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (issueTableConfig.display) {
                        if (Down_issueTableConfig.display) {
                            //  테이블의 컬럼을 만들어준다.
                            $scope.fn.setDownTableColumn(issueTableConfig);
                            $scope.fn.setDownTableColumn(Down_issueTableConfig);
                        }
                    });
                }
@@ -463,7 +462,8 @@
                // 연관 이슈 상세 조회
                function getRelTableConfigs() {
                    var content = {
                        issueId : $scope.vm.viewer.id
                        issueId : $scope.vm.viewer.id,
                        issueTypeId : $rootScope.getCurrentIssueTypeId()
                    };
                    IssueTableConfig.relationDetail($resourceProvider.getContent(
@@ -487,20 +487,22 @@
                                $scope.vm.relTableConfigs.push($tableProvider.config()
                                    .setHName("issue.relationIssueType")
                                    .setDType("renderer")
                                    .setDAlign("text-center")
                                    .setHWidth("width-30-p bold")
                                    .setHSort(false)
                                    .setDRenderer("ISSUE_RELATION_TYPE"))
                                $scope.vm.relTableConfigs.push($tableProvider.config()
                                    .setHName("issue.relationIssueTitle")
                                    .setDType("renderer")
                                    .setDAlign("text-center")
                                    .setHWidth("width-60-p bold")
                                    .setHSort(false)
                                    .setDRenderer("ISSUE_RELATION_MOVE"))
                                angular.forEach($scope.vm.issueRelTableConfigs, function (issueTableConfig) {
                                angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) {
                                    //  표시 대상인 컬럼만 화면에 그려준다.
                                    if (issueTableConfig.display) {
                                    if (Rel_issueTableConfig.display) {
                                        //  테이블의 컬럼을 만들어준다.
                                        $scope.fn.setRelTableColumn(issueTableConfig);
                                        $scope.fn.setRelTableColumn(Rel_issueTableConfig);
                                    }
                                });
@@ -525,7 +527,8 @@
                // 하위 이슈 상세 조회
                function getDownTableConfigs() {
                    var content = {
                        issueId : $scope.vm.viewer.id
                        issueId : $scope.vm.viewer.id,
                        issueTypeId : $rootScope.getCurrentIssueTypeId()
                    };
                    IssueTableConfig.downDetail($resourceProvider.getContent(
@@ -547,14 +550,15 @@
                                $scope.vm.downTableConfigs.push($tableProvider.config()
                                    .setHName("issue.downIssueTitle")
                                    .setDType("renderer")
                                    .setDAlign("text-center")
                                    .setHWidth("width-60-p bold")
                                    .setHSort(false)
                                    .setDRenderer("ISSUE_DOWN_MOVE"))
                                angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) {
                                angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
                                    //  표시 대상인 컬럼만 화면에 그려준다.
                                    if (issueTableConfig.display) {
                                    if (Down_issueTableConfig.display) {
                                        //  테이블의 컬럼을 만들어준다.
                                        $scope.fn.setDownTableColumn(issueTableConfig);
                                        $scope.fn.setDownTableColumn(Down_issueTableConfig);
                                    }
                                });
                                $scope.vm.downTableConfigs.push($tableProvider.config()
@@ -666,7 +670,8 @@
                        resolve : {
                            parameter : function () {
                                return {
                                    issueIds : [$scope.vm.viewer.id]
                                    issueIds : [$scope.vm.viewer.id],
                                    projectId : $scope.vm.viewer.projectVo.id
                                };
                            }
                        }
@@ -720,7 +725,13 @@
                        size : "lg",
                        controller : 'issueAddRelationTableConfigController',
                        backdrop : 'static',
                        resolve : {}
                        resolve : {
                            parameter : function () {
                                return {
                                    issueTypeId : $scope.vm.viewer.issueTypeVo.id
                                };
                            }
                        }
                    });
                }
@@ -731,7 +742,13 @@
                        size : "lg",
                        controller : 'issueAddDownTableConfigController',
                        backdrop : 'static',
                        resolve : {}
                        resolve : {
                            parameter : function () {
                                return {
                                    issueTypeId : $scope.vm.viewer.issueTypeVo.id
                                };
                            }
                        }
                    });
                }
@@ -771,7 +788,7 @@
                    $scope.fn.getRelTableConfigs();
                    $scope.fn.getDownTableConfigs();
                    Issue.detail($resourceProvider.getContent(
                        Issue.detail($resourceProvider.getContent(
                        {id : $scope.vm.viewer.id, deep : "02"},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
@@ -791,7 +808,6 @@
                                //  이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
                                $scope.fn.setUseValueByIssueTypeCustomFields(result.data.data.issueCustomFieldValueVos);
                                // 연관 일감
                                $scope.vm.issueName = "";
                                $scope.vm.form.issues = [];
@@ -808,12 +824,6 @@
                                // 하위 이슈 반목문
                                angular.forEach(result.data.data.issueDownVos, function (issueDownVo){
                                    $scope.vm.form.issuesDown.push(issueDownVo.issue);
                                });
                                // wyu
                                angular.forEach(result.data.data.issueRelationVos, function (issueRelationColum){
                                    issueRelationColum.issueRelation = $scope.vm.issueRelation;
                                    $scope.vm.form.issues.push(issueRelationColum.issueRelation);
                                });
                                $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;