OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-28 cd56d401c5233f24790a5be8ba4075a97ab80fe3
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -55,7 +55,7 @@
                //  이슈 목록 컨트롤러 vm, fn 상속 중
                $scope.vm.viewer = {};      // 현재 이슈
                $scope.vm.images = [];  //  첨부된 파일 중 이미지 파일
                $scope.vm.activeTab = "ALL";    //  활동 내역 탭
                $scope.vm.activeTab = "RECODE";    //  활동 내역 탭
                //  이슈 상태 변경 표시 여부
                $scope.vm.editor = {
                    issueStatus : false
@@ -236,7 +236,7 @@
                }
                function getDownIssueListCallBack(result) {
                    $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage;
                    $scope.vm.autoCompletePageDown.issue.totalPage = result.data.page.totalPage;
                }
                //  테이블의 연관 이슈 컬럼을 만들어준다.
@@ -244,44 +244,43 @@
                    //  연관 이슈 컬럼
                    switch(Rel_issueTableConfig.key) {
                        // 연관 이슈 구분
                        case "RELATION_ISSUE_TYPE" :
                        case "RELATION_ISSUE_TYPE" :    // 연관 이슈 구분
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueType")
                                .setDType("renderer")
                                .setHWidth("width-30 bold")
                                .setHSort(false)
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDRenderer("ISSUE_RELATION_TYPE"))
                                /*.setHWidth("width-30 bold")*/
                                /*.setHSort(false)*/
                            break;
                        // 연관 이슈 제목
                        case "RELATION_ISSUE_TITLE" :
                        case "RELATION_ISSUE_TITLE" :   // 연관 이슈 제목
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("issue.relationIssueTitle")
                                .setDType("renderer")
                                .setHWidth("width-60 bold")
                                .setHSort(false)
                                .setDAlign("text-center")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDRenderer("ISSUE_RELATION_MOVE"))
                                /*.setHWidth("width-60 bold")*/
                                /*.setHSort(true)*/
                            break;
                        case "PRIORITY" :   // 연관 이슈 우선순위
                        case "RELATION_PRIORITY" :   // 연관 이슈 우선순위
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityName")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_COMMON_PRIORITY"));
                            break;
                        case "SEVERITY" :   //  연관 이슈 중요도
                        case "RELATION_SEVERITY" :   //  연관 이슈 중요도
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("severityName")
                                .setDType("renderer")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("REL_COMMON_SEVERITY"));
                            break;
                        case "ASSIGNEE_TEAM" :   // 연관 이슈 담당부서
                        case "RELATION_ASSIGNEE_TEAM" :   // 연관 이슈 담당부서
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDType("renderer")
@@ -290,7 +289,7 @@
                                .setDRenderer("REL_ISSUE_DEPARTMENT"));
                            break;
                        case "REGISTER" :   // 연관 이슈  등록자
                        case "RELATION_REGISTER" :   // 연관 이슈  등록자
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDType("renderer")
@@ -298,7 +297,7 @@
                                .setDAlign("text-center")
                                .setDRenderer("REL_REGISTER"));
                            break;
                        case "PERIOD" : // 연관 이슈 기간
                        case "RELATION_PERIOD" : // 연관 이슈 기간
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
@@ -306,12 +305,11 @@
                                .setDAlign("text-center")
                                .setDRenderer("REL_ISSUE_DUE_DATE"));
                            break;
                        case "MODIFY_DATE" : // 연관 이슈  최근 변경일
                        case "RELATION_MODIFY_DATE" : // 연관 이슈  최근 변경일
                            $scope.vm.relTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Rel_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                                .setDAlign("text-center"));
                            break;
                    }
@@ -342,8 +340,7 @@
                    //  하위 이슈 컬럼
                    switch(Down_issueTableConfig.key) {
                        //  하위 이슈 제목
                        case "DOWN_ISSUE_TITLE" :
                        case "DOWN_ISSUE_TITLE" :   //  하위 이슈 제목
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("issue.downIssueTitle")
                                .setDType("renderer")
@@ -361,25 +358,23 @@
                                .setDRenderer("ISSUE_DOWN_STATUS_TYPE"));
                            break;
                        case "PRIORITY" :   // 하위 이슈 우선순위
                        case "DOWN_PRIORITY" :   // 하위 이슈 우선순위
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.priority")
                                .setDName("priorityName")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_COMMON_PRIORITY"));
                            break;
                        case "SEVERITY" :   //  중요도
                        case "DOWN_SEVERITY" :   //  중요도
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.importance")
                                .setDName("severityName")
                                .setDType("renderer")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_COMMON_SEVERITY"));
                            break;
                        case "ASSIGNEE_TEAM" :   //  담당부서
                        case "DOWN_ASSIGNEE_TEAM" :   //  담당부서
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.assigneeTeam")
                                .setDType("renderer")
@@ -387,7 +382,7 @@
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_ISSUE_DEPARTMENT"));
                            break;
                        case "REGISTER" :   //  등록자
                        case "DOWN_REGISTER" :   //  등록자
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.register")
                                .setDType("renderer")
@@ -395,7 +390,7 @@
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_REGISTER"));
                            break;
                        case "PERIOD" : //  기간
                        case "DOWN_PERIOD" : //  기간
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.period")
                                .setDType("renderer")
@@ -403,12 +398,11 @@
                                .setDAlign("text-center")
                                .setDRenderer("DOWN_ISSUE_DUE_DATE"));
                            break;
                        case "MODIFY_DATE" : //  최근 변경일
                        case "DOWN_MODIFY_DATE" : //  최근 변경일
                            $scope.vm.downTableConfigs.push($tableProvider.config()
                                .setHName("common.lastChangeDate")
                                .setHWidth("bold " + Down_issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDName("modifyDate"));
                                .setDAlign("text-center"));
                            break;
                    }
@@ -440,7 +434,7 @@
                        .setHName("issue.relationIssueType")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-30-p bold")
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_RELATION_TYPE"))
                    $scope.vm.relTableConfigs.push($tableProvider.config()
@@ -450,15 +444,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-20-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) {
@@ -483,7 +478,7 @@
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-20-p bold")
                            .setHWidth("width-40-p bold")
                            .setDRenderer("ISSUE_DOWN_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
@@ -517,20 +512,20 @@
                        });
                        $scope.vm.relTableConfigs = [];
    /*                  $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.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"))
                           .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 (Rel_issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Rel_issueTableConfig.display) {
@@ -539,14 +534,15 @@
                            }
                        });
                        $scope.vm.relTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-20-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();
                    }
@@ -567,13 +563,13 @@
                            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($tableProvider.config()
                            .setHName("issue.downIssueTitle")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-60-p bold")
                            .setHSort(false)
                            .setDRenderer("ISSUE_DOWN_MOVE"))
                            .setDRenderer("ISSUE_DOWN_MOVE"))*/
                        angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
                            //  표시 대상인 컬럼만 화면에 그려준다.
                            if (Down_issueTableConfig.display) {
@@ -581,14 +577,15 @@
                                $scope.fn.setDownTableColumn(Down_issueTableConfig);
                            }
                        });
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setHWidth("width-20-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();
                    }
@@ -851,13 +848,12 @@
                //  이슈 상세 정보 조회
                function getIssueDetail() {
                    $rootScope.spinner = true;
                    //  초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다.
                    $scope.fn.initReload();
                    // $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) {
@@ -896,6 +892,9 @@
                                        issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name;
                                        $scope.vm.form.issues.push(issueRelationVo.issueRelation);
                                    });
                                    result.data.data.issueRelationVos.sort(function (a, b) {   //최근변경일 내림차순
                                        return a.modifyDate > b.modifyDate ? -1 : a.modifyDate < b.modifyDate ? 1 : 0;
                                    });
                                }
                                // 하위 이슈 반목문
@@ -905,6 +904,9 @@
                                        $scope.vm.form.issuesDown.push(issueDownVo);
                                        $scope.vm.form.issuesDownStatus.push(issueDownVo.issueStatusVo.issueStatusType);
                                    });
                                    result.data.data.issueDownVos.sort(function (a, b) {   //최근변경일 내림차순
                                        return a.modifyDate > b.modifyDate ? -1 : a.modifyDate < b.modifyDate ? 1 : 0;
                                    });
                                }
                                $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;
                                $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos;
@@ -912,12 +914,12 @@
                                if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) {
                                    $rootScope.changeLastProject(result.data.data.projectVo.id);
                                }
                            }
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.errorIssueDetails"), result.data.message.message, "error"); // 이슈 상세 정보 조회 오류
                        }
                        $rootScope.spinner = false;
                    });
                }
@@ -995,33 +997,45 @@
                //  활동 이력 만들기
                function makeActiveHistory() {
                    $scope.vm.viewer.activeParentHistory = "";
                    $scope.vm.viewer.activeHistory = "";
                    if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) {
                        $scope.vm.viewer.activeHistory = "";
                        $scope.vm.viewer.activeParentHistory = "";
                        $scope.vm.viewer.activeDownHistory = "";
                        $scope.vm.viewer.activeDownAllHistory = "";
                        $scope.vm.viewer.activeDownHistory = ""; //하위이슈 히스토리만
                        $scope.vm.viewer.downComment = ""; //하위이슈 댓글만
                        $scope.vm.viewer.activeDownAllHistory = ""; //하위이슈 히스토리+댓글
                        var downTitle = "";
                        var oriDownHistory = [];
                        var oriDownCommentHistory = [];
                        // 하위이슈 히스토리
                        for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){
                            $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.issueDownVos[i].issueHistoryVos.concat($scope.vm.viewer.issueDownVos[i+1].issueHistoryVos);
                            i++;
                            oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos);
                            oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos);
                        }
                        for (var i=0; i<oriDownHistory.length; i++){
                            if ($scope.vm.viewer.activeDownHistory === "") {
                                $scope.vm.viewer.activeDownHistory = oriDownHistory[i];
                            } else {
                                $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.activeDownHistory.concat(oriDownHistory[i]);
                            }
                        }
                        for (var i=0; i<$scope.vm.viewer.activeDownHistory.length; i++){
                            $scope.vm.viewer.activeDownHistory[i].description
                                = "<div class='dot'>하위이슈 : "+$scope.vm.viewer.activeDownHistory[i].title+"</div>" + $scope.vm.viewer.activeDownHistory[i].description;
                            downTitle = "<div class='dot' style='margin-bottom: -8px'>*하위이슈 : "+$scope.vm.viewer.activeDownHistory[i].title+"</div>";
                            $scope.vm.viewer.activeDownHistory[i].desc = downTitle + $scope.vm.viewer.activeDownHistory[i].description;
                        }
                        $scope.vm.viewer.activeDownHistory.sort(function (a, b) {   //내림차순
                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                        });
                        // 하위이슈 댓글 히스토리
                       for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++) {
                            $scope.vm.viewer.downComment = $scope.vm.viewer.issueDownVos[i].issueCommentVos.concat($scope.vm.viewer.issueDownVos[i+1].issueCommentVos);
                            i++;
                       for (var i=0; i<oriDownCommentHistory.length; i++) {
                           if ($scope.vm.viewer.downComment === "") {
                               $scope.vm.viewer.downComment = oriDownCommentHistory[i];
                           } else {
                               $scope.vm.viewer.downComment = $scope.vm.viewer.downComment.concat(oriDownCommentHistory[i]);
                           }
                       }
                       /*for (var i=0; i<$scope.vm.viewer.downComment.length; i++){
                           $scope.vm.viewer.downComment[i].description
                               = $scope.vm.viewer.downComment[i].title +"의 댓글 : "+ $scope.vm.viewer.downComment[i].description;
                       }*/
                       $scope.vm.viewer.issueDownVos.sort(function (a, b) {   //내림차순
                           return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                       });
@@ -1031,8 +1045,12 @@
                       $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory);
                    }else {
                        $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                        $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                    }
                    $scope.vm.viewer.activeParentHistory.sort(function (a, b) {   //내림차순
                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                    });
                    $scope.vm.viewer.activeHistory.sort(function (a, b) {   //내림차순
                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                    });
@@ -1087,7 +1105,6 @@
                                        $timeout(function () {
                                            SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공
                                        }, 100);
                                        $scope.fn.getCommentList();
                                    }
                                    else {