OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2022-01-03 4d692a614bba9d8954cbbdad2d79424afaab0298
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -51,6 +51,8 @@
                $scope.fn.containsPartner = containsPartner;
                $scope.fn.onActivate = onActivate;
                $scope.fn.issueBack = issueBack;
                $scope.fn.removeRelationIssue = removeRelationIssue;
                $scope.fn.removeDownIssue = removeDownIssue;
                //  이슈 목록 컨트롤러 vm, fn 상속 중
                $scope.vm.viewer = {};      // 현재 이슈
@@ -110,7 +112,7 @@
                $scope.vm.relTableConfigs = [];
                //  테이블 이벤트
                $scope.relTableEvent = {
                    removeRelationIssue : removeRelationIssue,   // 연관 일감 삭제
                    //removeRelationIssue : removeRelationIssue,   // 연관 일감 삭제
                    changeDetailView : changeDetailView
                };
@@ -118,7 +120,7 @@
                $scope.vm.downTableConfigs = [];
                //  테이블 이벤트
                $scope.downTableEvent = {
                    removeDownIssue : removeDownIssue,   // 연관 일감 삭제
                    //removeDownIssue : removeDownIssue,   // 연관 일감 삭제
                    changeDetailView : changeDetailView
                };
@@ -126,13 +128,18 @@
                    //  이슈 번호를 저장한 후 이슈 목록으로 이동한다.
                    //$rootScope.$broadcast("makeIssueSearch",issue);
                    $scope.$parent.tableEvent.changeDetailView(issue.id);
                    $scope.fn.onActivate();
                }
                // 상위 이슈 클릭시 상위 이슈로 이동
                function issueBack() {
                    $rootScope.currentDetailIssueId = $scope.vm.viewer.parentIssueVo.id
                    $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId});
                    var index = $scope.$parent.vm.issueIds.length -2;
                    if (index > -1) {
                        var preIssueId = $scope.$parent.vm.issueIds[index];
                        $scope.$parent.vm.issueIds.splice(index + 1, 1);
                        $scope.$parent.tableEvent.changeDetailView(preIssueId, true);
                    }
                }
                function onActivate() {
@@ -147,11 +154,42 @@
                });
                // 하위 이슈 삭제
                function removeDownIssue(id) {
                function removeDownIssue() {
                    var removeIds = [];
                    var removePermission = true;
                    angular.forEach($scope.vm.viewer.issueDownVos, function (data) {
                        if (data.checked && data.modifyPermissionCheck) {
                            removeIds.push(data.id);
                        }
                        if (data.checked && !data.modifyPermissionCheck) {
                            removePermission = false;
                        }
                    });
                    if (!removePermission) {
                        SweetAlert.swal({
                            html : true,
                            title : $filter("translate")("common.deleteFailed"), // 삭제 실패
                            text : $filter("translate")("project.notHaveDeletePermissionExistsProject"), // "삭제 권한이 없는 프로젝트가 존재합니다."
                            type : "error"
                        });
                        return;
                    }
                    if (removeIds.length < 1) {
                        SweetAlert.swal({
                            title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인
                            text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요.
                            type : "warning"
                        });
                        return;
                    }
                    //  삭제 알림
                    SweetAlert.swal({
                            title : $filter("translate")("issue.downIssueRemove"), // 하위 이슈 삭제
                            text : $filter("translate")("issue.wantToDeleteSelectIssue"),
                            text : $filter("translate")("issue.wantToDeleteSelectDownIssueInList"),
                            type : "warning",
                            showCancelButton : true,
                            confirmButtonColor : "#DD6B55",
@@ -167,7 +205,7 @@
                                $rootScope.spinner = true;
                                var contents = {
                                    id : id
                                    ids : removeIds
                                };
                                Issue.modifyParentIssue($resourceProvider.getContent(
@@ -189,7 +227,38 @@
                }
                // 연관 이슈 삭제
                function removeRelationIssue(id) {
                function removeRelationIssue() {
                    var removeIds = [];
                    var removePermission = true;
                    angular.forEach($scope.vm.viewer.issueRelationVos, function (data) {
                        if (data.checked && data.modifyPermissionCheck) {
                            removeIds.push(data.id);
                        }
                        if (data.checked && !data.modifyPermissionCheck) {
                            removePermission = false;
                        }
                    });
                    if (!removePermission) {
                        SweetAlert.swal({
                            html : true,
                            title : $filter("translate")("common.deleteFailed"), // 삭제 실패
                            text : $filter("translate")("issue.notHaveDeletePermissionExistsAnIssue"), // 삭제 권한이 없는 이슈가 존재합니다.
                            type : "error"
                        });
                        return;
                    }
                    if (removeIds.length < 1) {
                        SweetAlert.swal({
                            title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인
                            text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요.
                            type : "warning"
                        });
                        return;
                    }
                    //  삭제 알림
                    SweetAlert.swal({
                            title : $filter("translate")("issue.relationIssueRemove"), // 연관 이슈 삭제
@@ -209,7 +278,7 @@
                                $rootScope.spinner = true;
                                var contents = {
                                    id : id
                                    removeIds : removeIds
                                };
                                IssueRelation.delete($resourceProvider.getContent(
@@ -247,7 +316,6 @@
                        case "RELATION_ISSUE_TYPE" :    // 연관 이슈 구분
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueType")
                                .setDName("relationIssueType")
                                .setDType("renderer")
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
@@ -258,7 +326,6 @@
                        case "RELATION_ISSUE_TITLE" :   // 연관 이슈 제목
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueTitle")
                                .setDName("relationIssueTitle")
                                .setDType("renderer")
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
@@ -269,7 +336,6 @@
                        case "RELATION_PRIORITY" :   // 연관 이슈 우선순위
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("relPriority")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -278,7 +344,6 @@
                        case "RELATION_SEVERITY" :   //  연관 이슈 중요도
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("relSeverity")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -287,7 +352,6 @@
                        case "RELATION_ASSIGNEE_TEAM" :   // 연관 이슈 담당부서
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDName("relAssigneeTeam")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -297,7 +361,6 @@
                        case "RELATION_REGISTER" :   // 연관 이슈  등록자
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDName("relRegister")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -306,7 +369,6 @@
                        case "RELATION_PERIOD" : // 연관 이슈 기간
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDName("relPeriod")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -316,8 +378,7 @@
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("relModifyDate"));
                                .setDAlign("text-center"));
                            break;
                    }
@@ -331,7 +392,6 @@
                                $scope.vm.relTableConfigs.push($tableProvider.config()
                                    .setHName(customField.name)
                                    .setDType("renderer")
                                    .setDName("relCustomFieldName" + [count])
                                    .setHWidth("bold " + Rel_issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
@@ -352,7 +412,6 @@
                        case "DOWN_ISSUE_TITLE" :   //  하위 이슈 제목
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.downIssueTitle")
                                .setDName("downIssueTitle")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -362,7 +421,6 @@
                        case "ISSUE_DOWN_STATUS_TYPE" : //  이슈 상태
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.issueStatus")
                                .setDName("downIssueStatus")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -372,7 +430,6 @@
                        case "DOWN_PRIORITY" :   // 하위 이슈 우선순위
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("downPriority")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -381,7 +438,6 @@
                        case "DOWN_SEVERITY" :   //  중요도
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("downSeverity")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -390,7 +446,6 @@
                        case "DOWN_ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDName("downAssigneeTeam")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -399,7 +454,6 @@
                        case "DOWN_REGISTER" :   //  등록자
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDName("downRegister")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -408,7 +462,6 @@
                        case "DOWN_PERIOD" : //  기간
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDName("downPeriod")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
@@ -418,8 +471,7 @@
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("downModifyDate"));
                                .setDAlign("text-center"));
                            break;
                    }
@@ -433,7 +485,6 @@
                                $scope.vm.downTableConfigs.push($tableProvider.config()
                                    .setHName(customField.name)
                                    .setDType("renderer")
                                    .setDName("downCustomFieldName" + [count])
                                    .setHWidth("bold " + Down_issueTableConfig.width)
                                    .setDAlign("text-center")
                                    .setColumnHint(customField)
@@ -449,6 +500,10 @@
                function makeRelTableConfigs() {
                    $scope.vm.relTableConfigs = [];
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setDType("checkbox")
                        .setHWidth("width-20-p")
                        .setDAlign("text-center"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueType")
                        .setDType("renderer")
                        .setDAlign("text-center")
@@ -462,15 +517,16 @@
                        .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-40-p bold")
                        .setDRenderer("ISSUE_RELATION_DELETE")
                        .setHSort(false)
                        .setDAlign("text-center"))
                    /*if($scope.vm.viewer.modifyPermissionCheck) {
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_RELATION_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                    }*/
                    angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
                        if (Rel_issueTableConfig.display) {
@@ -484,13 +540,17 @@
                function makeDownTableConfigs() {
                    $scope.vm.downTableConfigs = [];
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                        .setDType("checkbox")
                        .setHWidth("width-20-p")
                        .setDAlign("text-center"))
                    $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"))
                    if($scope.vm.viewer.modifyPermissionCheck){
                    /*if($scope.vm.viewer.modifyPermissionCheck){
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
@@ -499,7 +559,7 @@
                            .setDRenderer("ISSUE_DOWN_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                    }
                    }*/
                    angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.
@@ -543,6 +603,10 @@
                           .setHWidth("width-60-p bold")
                           .setHSort(false)
                           .setDRenderer("ISSUE_RELATION_MOVE"))*/
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setDType("checkbox")
                            .setHWidth("width-20-p")
                            .setDAlign("text-center"))
                        angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Rel_issueTableConfig.display) {
@@ -551,14 +615,15 @@
                            }
                        });
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_RELATION_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                        /*if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
                                .setDRenderer("ISSUE_RELATION_DELETE")
                                .setHSort(false)
                                .setDAlign("text-center"))
                        }*/
                    } else {
                        makeRelTableConfigs();
                    }
@@ -586,6 +651,10 @@
                            .setHWidth("width-60-p bold")
                            .setHSort(false)
                            .setDRenderer("ISSUE_DOWN_MOVE"))*/
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setDType("checkbox")
                            .setHWidth("width-20-p")
                            .setDAlign("text-center"))
                        angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Down_issueTableConfig.display) {
@@ -593,14 +662,15 @@
                                $scope.fn.setDownTableColumn(Down_issueTableConfig);
                            }
                        });
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_DOWN_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                        /*if($scope.vm.viewer.modifyPermissionCheck) {
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueDelete")
                                .setDType("renderer")
                                .setHWidth("width-40-p bold")
                                .setDRenderer("ISSUE_DOWN_DELETE")
                                .setHSort(false)
                                .setDAlign("text-center"))
                        }*/
                    } else {
                        makeDownTableConfigs();
                    }
@@ -642,9 +712,14 @@
                        return;
                    }
                    var ids = [];
                    if ($scope.vm.form.issuesDown[0].id != null) {
                        ids.push($scope.vm.form.issuesDown[0].id);
                    }
                    var contents = {
                        issueId : $rootScope.currentDetailIssueId,
                        id : $scope.vm.form.issuesDown[0].id,
                        ids : ids,
                        parentIssueId : $rootScope.currentDetailIssueId
                    };
@@ -722,6 +797,20 @@
                }
                function modifyDownIssueStatus() {
                    var issueIds = [];
                    angular.forEach($scope.vm.viewer.issueDownVos, function (data) {
                        if (data.checked) {
                            issueIds.push(data.id);
                            //$scope.vm.projectId = data.projectId;
                        }
                    });
                    if (issueIds.length < 1) {
                        SweetAlert.warning($filter("translate")("issue.selectionCheck"), $filter("translate")("issue.selectIssueToChangeStatus")); // 선택 대상 확인, 상태 변경할 이슈를 선택하세요.
                        return;
                    }
                    $uibModal.open({
                        templateUrl : 'views/issue/downIssueModifyStatus.html',
                        size : "md",
@@ -732,7 +821,8 @@
                                return {
                                    issueTypeId : $scope.vm.viewer.issueTypeVo.id,
                                    issueIds : [$scope.vm.viewer.id],
                                    downIssues : $scope.vm.viewer.issueDownVos,
                                    //downIssues : $scope.vm.viewer.issueDownVos,
                                    downIssues : issueIds,
                                    projectId : $scope.vm.viewer.projectVo.id
                                };
                            }