OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2022-01-06 7b3861cb48507674af980e5579f61a853d093ed8
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -8,9 +8,9 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q',
        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$relProvider', '$downProvider', '$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) {
            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $relProvider, $downProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) {
                //  IssueListController vm, fn 변수 상속.
@@ -310,90 +310,98 @@
                }
                //  테이블의 연관 이슈 컬럼을 만들어준다.
                function setRelTableColumn(Rel_issueTableConfig) {
                function setRelTableColumn(issueTableConfig) {
                    //  연관 이슈 컬럼
                    switch(Rel_issueTableConfig.key) {
                    switch(issueTableConfig.key) {
                        case "RELATION_ISSUE_TYPE" :    // 연관 이슈 구분
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("issue.relationIssueType")
                                .setDName("relationIssueType")
                                .setDType("renderer")
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDRenderer("ISSUE_RELATION_TYPE"))
                                /*.setHWidth("width-30 bold")*/
                                /*.setHSort(false)*/
                            break;
                        case "RELATION_ISSUE_TITLE" :   // 연관 이슈 제목
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("issue.relationIssueTitle")
                                .setDName("title")
                                .setDType("renderer")
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDRenderer("ISSUE_RELATION_MOVE"))
                                /*.setHWidth("width-60 bold")*/
                                /*.setHSort(true)*/
                            break;
                        case "RELATION_PRIORITY" :   // 연관 이슈 우선순위
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_COMMON_PRIORITY"));
                            break;
                        case "RELATION_SEVERITY" :   //  연관 이슈 중요도
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.importance")
                                .setDName("severityVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_COMMON_SEVERITY"));
                            break;
                        case "RELATION_ASSIGNEE_TEAM" :   // 연관 이슈 담당부서
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDName("departmentVos.departmentName")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_ISSUE_DEPARTMENT"));
                            break;
                        case "RELATION_REGISTER" :   // 연관 이슈  등록자
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                        case "RELATION_REGISTER" :   // 연관 이슈 등록자
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.register")
                                .setDName("registerVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_REGISTER"));
                            break;
                        case "RELATION_PERIOD" : // 연관 이슈 기간
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_ISSUE_DUE_DATE"));
                            break;
                        case "RELATION_MODIFY_DATE" : // 연관 이슈  최근 변경일
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                        case "RELATION_MODIFY_DATE" : // 연관 이슈 최근 변경일
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center"));
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                            break;
                    }
                    //  사용자 정의 필드 컬럼
                    if (Rel_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                        //  만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
                        for (var count in $scope.vm.customFields) {
                            var customField = $scope.vm.customFields[count];
                            if (customField.id === Number(Rel_issueTableConfig.key.substring(13))) {
                                $scope.vm.relTableConfigs.push($tableProvider.config()
                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
                                $scope.vm.relTableConfigs.push($relProvider.config()
                                    .setHName(customField.name)
                                    .setDName("relCustomFieldName" + [count])
                                    .setDType("renderer")
                                    .setHWidth("bold " + Rel_issueTableConfig.width)
                                    .setHWidth("bold " + issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
                                    .setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
@@ -405,88 +413,96 @@
                //  테이블의 하위 이슈 컬럼을 만들어준다.
                function setDownTableColumn(Down_issueTableConfig) {
                function setDownTableColumn(issueTableConfig) {
                    // if (issueTableConfig == null) return;
                    //  하위 이슈 컬럼
                    switch(Down_issueTableConfig.key) {
                    switch(issueTableConfig.key) {
                        case "DOWN_ISSUE_TITLE" :   //  하위 이슈 제목
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("issue.downIssueTitle")
                                .setDName("title")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DOWN_MOVE"));
                            break;
                        case "ISSUE_DOWN_STATUS_TYPE" : //  이슈 상태
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "ISSUE_DOWN_STATUS_TYPE" : // 하위 이슈 상태
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("issue.issueStatus")
                                .setDName("issueStatusVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("ISSUE_DOWN_STATUS_TYPE"));
                            break;
                        case "DOWN_PRIORITY" :   // 하위 이슈 우선순위
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_COMMON_PRIORITY"));
                            break;
                        case "DOWN_SEVERITY" :   //  중요도
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "DOWN_SEVERITY" :   // 하위 이슈 중요도
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.importance")
                                .setDName("severityVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_COMMON_SEVERITY"));
                            break;
                        case "DOWN_ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "DOWN_ASSIGNEE_TEAM" :   // 하위 이슈 담당부서
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDName("departmentVos.departmentName")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_ISSUE_DEPARTMENT"));
                            break;
                        case "DOWN_REGISTER" :   //  등록자
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "DOWN_REGISTER" :   // 하위 이슈 등록자
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.register")
                                .setDName("registerVo.id")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_REGISTER"));
                            break;
                        case "DOWN_PERIOD" : //  기간
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "DOWN_PERIOD" : // 하위 이슈 기간
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_ISSUE_DUE_DATE"));
                            break;
                        case "DOWN_MODIFY_DATE" : //  최근 변경일
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                        case "DOWN_MODIFY_DATE" : // 하위 이슈 최근 변경일
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center"));
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                            break;
                    }
                    //  사용자 정의 필드 컬럼
                    if (Down_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                        //  만약 이슈 테이블 컬럼명이 표시되지 않으면 이쪽이 문제
                        for (var count in $scope.vm.customFields) {
                            var customField = $scope.vm.customFields[count];
                            if (customField.id === Number(Down_issueTableConfig.key.substring(13))) {
                                $scope.vm.downTableConfigs.push($tableProvider.config()
                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
                                $scope.vm.downTableConfigs.push($downProvider.config()
                                    .setHName(customField.name)
                                    .setDName("downCustomFieldName" + [count])
                                    .setDType("renderer")
                                    .setHWidth("bold " + Down_issueTableConfig.width)
                                    .setHWidth("bold " + issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
                                    .setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
@@ -500,18 +516,18 @@
                //  연관 이슈 테이블 설정
                function makeRelTableConfigs() {
                    $scope.vm.relTableConfigs = [];
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                    $scope.vm.relTableConfigs.push($relProvider.config()
                        .setDType("checkbox")
                        .setHWidth("width-20-p")
                        .setDAlign("text-center"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                    $scope.vm.relTableConfigs.push($relProvider.config()
                        .setHName("issue.relationIssueType")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_TYPE"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                    $scope.vm.relTableConfigs.push($relProvider.config()
                        .setHName("issue.relationIssueTitle")
                        .setDType("renderer")
                        .setDAlign("text-center")
@@ -519,7 +535,7 @@
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_MOVE"))
                    /*if($scope.vm.viewer.modifyPermissionCheck) {
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                        $scope.vm.relTableConfigs.push($relProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
@@ -528,11 +544,11 @@
                            .setHSort(false)
                            .setDAlign("text-center"))
                    }*/
                    angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
                    angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (Rel_issueTableConfig.display) {
                        if (issueTableConfig.display) {
                            //  테이블의 컬럼을 만들어준다.
                            $scope.fn.setRelTableColumn(Rel_issueTableConfig);
                            $scope.fn.setRelTableColumn(issueTableConfig);
                        }
                    });
                }
@@ -540,11 +556,11 @@
                //  하위 이슈 테이블 설정
                function makeDownTableConfigs() {
                    $scope.vm.downTableConfigs = [];
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                    $scope.vm.downTableConfigs.push($downProvider.config()
                        .setDType("checkbox")
                        .setHWidth("width-20-p")
                        .setDAlign("text-center"))
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                    $scope.vm.downTableConfigs.push($downProvider.config()
                        .setHName("issue.downIssueTitle")
                        .setDType("renderer")
                        .setDAlign("text-center")
@@ -552,7 +568,7 @@
                        .setHSort(false)
                        .setDRenderer("ISSUE_DOWN_MOVE"))
                    /*if($scope.vm.viewer.modifyPermissionCheck){
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                        $scope.vm.downTableConfigs.push($downProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
@@ -562,11 +578,11 @@
                            .setDAlign("text-center"))
                    }*/
                    angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
                    angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (Down_issueTableConfig.display) {
                        if (issueTableConfig.display) {
                            //  테이블의 컬럼을 만들어준다.
                            $scope.fn.setDownTableColumn(Down_issueTableConfig);
                            $scope.fn.setDownTableColumn(issueTableConfig);
                        }
                    });
                }
@@ -579,7 +595,7 @@
                    }
                    var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
                    //  연관 슈 목록 테이블 설정 값을 가져와서 적용한다.
                    //  연관 이슈 목록 테이블 설정 값을 가져와서 적용한다.
                    if ($rootScope.isDefined(issueTableConfigs)) {
                        //  이슈 테이블 설정 정보를 저장 한다.
@@ -590,34 +606,34 @@
                        });
                        $scope.vm.relTableConfigs = [];
    /*                  $scope.vm.relTableConfigs.push($tableProvider.config()
    /*                  $scope.vm.relTableConfigs.push($relProvider.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()
                        $scope.vm.relTableConfigs.push($relProvider.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()
                        $scope.vm.relTableConfigs.push($relProvider.config()
                            .setDType("checkbox")
                            .setHWidth("width-20-p")
                            .setDAlign("text-center"))
                        angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) {
                        angular.forEach($scope.vm.issueRelTableConfigs, function (issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Rel_issueTableConfig.display) {
                            if (issueTableConfig.display) {
                                //  테이블의 컬럼을 만들어준다.
                                $scope.fn.setRelTableColumn(Rel_issueTableConfig);
                                $scope.fn.setRelTableColumn(issueTableConfig);
                            }
                        });
                        /*if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                            $scope.vm.relTableConfigs.push($relProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
@@ -636,7 +652,7 @@
                    if (issueTableConfigVo == null) return;
                    var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
                    //  연관 슈 목록 테이블 설정 값을 가져와서 적용한다.
                    //  연관 이슈 목록 테이블 설정 값을 가져와서 적용한다.
                    if ($rootScope.isDefined(issueTableConfigs)) {
                        //  이슈 테이블 설정 정보를 저장 한다.
                        $scope.vm.issueDownTableConfigs = [];
@@ -645,26 +661,26 @@
                            return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
                        });
                        $scope.vm.downTableConfigs = [];
/*                      $scope.vm.downTableConfigs.push($tableProvider.config()
/*                      $scope.vm.downTableConfigs.push($downProvider.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()
                        $scope.vm.downTableConfigs.push($downProvider.config()
                            .setDType("checkbox")
                            .setHWidth("width-20-p")
                            .setDAlign("text-center"))
                        angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
                        angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Down_issueTableConfig.display) {
                            if (issueTableConfig.display) {
                                //  테이블의 컬럼을 만들어준다.
                                $scope.fn.setDownTableColumn(Down_issueTableConfig);
                                $scope.fn.setDownTableColumn(issueTableConfig);
                            }
                        });
                        /*if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                            $scope.vm.downTableConfigs.push($downProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
@@ -975,6 +991,8 @@
                                $scope.vm.viewer.startDate = result.data.data.startDate == null ? "common.unspecified" : result.data.data.startDate; // 미지정
                                $scope.vm.viewer.completeDate = result.data.data.completeDate == null ? "common.unspecified" : result.data.data.completeDate; // 미지정
                                $scope.vm.rangeDate = result.data.data.startDate + "~" + result.data.data.completeDate
                                //  이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다.
                                $scope.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos);
                                //  이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.