OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -51,6 +51,7 @@
                $scope.fn.containsPartner = containsPartner;
                $scope.fn.onActivate = onActivate;
                $scope.fn.issueBack = issueBack;
                $scope.fn.goParentIssue = goParentIssue;
                $scope.fn.removeRelationIssue = removeRelationIssue;
                $scope.fn.removeDownIssue = removeDownIssue;
                $scope.fn.changeDetailPageRowCount = changeDetailPageRowCount;    //  페이지 변경
@@ -113,6 +114,7 @@
                $scope.vm.issueName = "";       // 선택된 연관 일감 이름
                $scope.vm.issueId = "";       //
                $scope.vm.parentIssueId = "";
                $scope.vm.issueTypeId = "";
                $scope.vm.autoCompletePage = {
                    issue : {
@@ -145,7 +147,7 @@
                    $scope.fn.onActivate();
                }
                // 상위 이슈 클릭시 상위 이슈로 이동
                // 뒤로가기 버튼
                function issueBack() {
                    var index = $scope.$parent.vm.issueIds.length -2;
                    if (index > -1) {
@@ -153,6 +155,14 @@
                        $scope.$parent.vm.issueIds.splice(index + 1, 1);
                        $scope.$parent.tableEvent.changeDetailView(preIssueId, true);
                    }
                }
                // 상위 이슈 클릭시 상위 이슈로 이동
                function goParentIssue() {
                    var parentIssueId = $scope.vm.parentIssueId;
                    $scope.$parent.tableEvent.changeDetailView(parentIssueId, true);
                    //하위이슈-> 상위이슈 -> 연관이슈에서 뒤로가기 버튼 클릭 시 하위이슈로 이동되는 문제로 마지막 배열값 제거
                    $scope.$parent.vm.issueIds.pop();
                }
                //  페이지 변경
@@ -412,7 +422,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_COMPANY"));
                                .setDRenderer("REL_USE_COMPANY"));
                            break;
                        case "REL_ISP" :   //  ISP
                            $scope.vm.relTableConfigs.push($tableProvider.config()
@@ -421,7 +431,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_ISP"));
                                .setDRenderer("REL_USE_ISP"));
                            break;
                        case "REL_HOSTING" :   //  HOSTING
                            $scope.vm.relTableConfigs.push($tableProvider.config()
@@ -430,7 +440,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_HOSTING"));
                                .setDRenderer("REL_USE_HOSTING"));
                            break;
                    }
@@ -540,7 +550,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_COMPANY"));
                                .setDRenderer("DOWN_USE_COMPANY"));
                            break;
                        case "DOWN_ISP" :   //  ISP
                            $scope.vm.downTableConfigs.push($tableProvider.config()
@@ -549,7 +559,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_ISP"));
                                .setDRenderer("DOWN_USE_ISP"));
                            break;
                        case "DOWN_HOSTING" :   //  HOSTING
                            $scope.vm.downTableConfigs.push($tableProvider.config()
@@ -558,7 +568,7 @@
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_HOSTING"));
                                .setDRenderer("DOWN_USE_HOSTING"));
                            break;
                    }
@@ -673,7 +683,7 @@
                        $scope.vm.issueRelTableConfigs = [];
                        $scope.vm.issueRelTableConfigs = JSON.parse(issueTableConfigs);
                        $scope.vm.issueRelTableConfigs.sort(function (a, b) {
                            return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
                            return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0;
                        });
                        $scope.vm.relTableConfigs = [];
@@ -729,7 +739,7 @@
                        $scope.vm.issueDownTableConfigs = [];
                        $scope.vm.issueDownTableConfigs = JSON.parse(issueTableConfigs);
                        $scope.vm.issueDownTableConfigs.sort(function (a, b) {
                            return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
                            return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0;
                        });
                        $scope.vm.downTableConfigs = [];
/*                      $scope.vm.downTableConfigs.push($downProvider.config()
@@ -1112,6 +1122,10 @@
                                //  활동 이력 만들기
                                $scope.fn.makeActiveHistory();
                                if ($rootScope.isDefined($scope.vm.viewer.parentIssueVo)) {
                                    $scope.vm.parentIssueId = $scope.vm.viewer.parentIssueVo.id;
                                }
                                $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; // 미지정
@@ -1245,21 +1259,69 @@
                //  활동 이력 만들기
                function makeActiveHistory() {
                    $scope.vm.viewer.activeParentHistory = "";
                    $scope.vm.viewer.activeHistory = "";
                    $scope.vm.viewer.activeParentHistory = [];
                    $scope.vm.viewer.activeHistory = [];
                    $scope.vm.viewer.activeParentMailHistory = [];
                    $scope.vm.viewer.activeAllMailAndReplyHistory = []; //상위+하위 메일,댓글 히스토리
                    var oriMailHistory = [];
                    var oriCommentHistory = [];
                    if ($scope.vm.viewer.issueHistoryVos != null && $scope.vm.viewer.issueHistoryVos.length > 0) {
                        //  상위이슈 메일 히스토리
                        for (var i=0; i<$scope.vm.viewer.issueHistoryVos.length; i++) {
                            if ($scope.vm.viewer.issueHistoryVos[i].issueHistoryType === "SEND") {
                                oriMailHistory.push($scope.vm.viewer.issueHistoryVos[i]);
                            }
                        }
                        //$scope.vm.viewer.activeParentMailHistory = angular.copy(oriMailHistory);
                    }
                    //  상위이슈 댓글 히스토리
                    if ($scope.vm.viewer.issueCommentVos != null && $scope.vm.viewer.issueCommentVos.length > 0) {
                        for (var i=0; i<$scope.vm.viewer.issueCommentVos.length; i++) {
                            oriCommentHistory.push($scope.vm.viewer.issueCommentVos[i]);
                        }
                    }
                    $scope.vm.viewer.activeAllMailAndReplyHistory = oriMailHistory.concat(oriCommentHistory);
                    //  하위이슈 히스토리
                    if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) {
                        $scope.vm.viewer.activeDownHistory = ""; //하위이슈 히스토리만
                        $scope.vm.viewer.downComment = ""; //하위이슈 댓글만
                        $scope.vm.viewer.activeDownAllHistory = ""; //하위이슈 히스토리+댓글
                        $scope.vm.viewer.activeDownHistory = []; //하위이슈 히스토리만
                        $scope.vm.viewer.downComment = []; //하위이슈 댓글만
                        $scope.vm.viewer.activeDownAllHistory = []; //하위이슈 히스토리+댓글
                        $scope.vm.viewer.activeDownMailAndReplyHistory = []; //하위 메일+댓글 히스토리
                        var downTitle = "";
                        var oriDownHistory = [];
                        var oriDownCommentHistory = [];
                        var oriDownMailHistory = [];
                        // 하위이슈 히스토리
                        for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){
                            oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos);
                            oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos);
                            //  하위이슈 메일 기록
                            for (var j=0; j<$scope.vm.viewer.issueDownVos[i].issueHistoryVos.length; j++) {
                                if($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j].issueHistoryType === "SEND") {
                                    oriDownMailHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j]);
                                }
                            }
                            //  하위이슈 댓글 기록
                            for (var k=0; k<$scope.vm.viewer.issueDownVos[i].issueCommentVos.length; k++) {
                                oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos[k]);
                            }
                        }
                        //  하위이슈 메일+댓글 저장
                        $scope.vm.viewer.activeDownMailAndReplyHistory = oriDownCommentHistory.concat(oriDownMailHistory);
                        for (var i=0; i<$scope.vm.viewer.activeDownMailAndReplyHistory.length; i++){
                            downTitle = "<div class='dot' style='margin-bottom: -8px'>*하위이슈 : "+$scope.vm.viewer.activeDownMailAndReplyHistory[i].title+"</div>";
                            $scope.vm.viewer.activeDownMailAndReplyHistory[i].desc = downTitle + $scope.vm.viewer.activeDownMailAndReplyHistory[i].description;
                        }
                        $scope.vm.viewer.activeDownMailAndReplyHistory.sort(function (a, b) {   //"MAIL_AND_REPLY_DOWN" 내림차순
                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                        });
                        for (var i=0; i<oriDownHistory.length; i++){
                            if ($scope.vm.viewer.activeDownHistory === "") {
                                $scope.vm.viewer.activeDownHistory = oriDownHistory[i];
@@ -1277,29 +1339,41 @@
                        });
                        // 하위이슈 댓글 히스토리
                       for (var i=0; i<oriDownCommentHistory.length; 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]);
                           }
                       }
                       $scope.vm.viewer.issueDownVos.sort(function (a, b) {   //내림차순
                           return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                       });
                        }
                        $scope.vm.viewer.issueDownVos.sort(function (a, b) {   //내림차순
                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                        });
                       $scope.vm.viewer.activeDownAllHistory = $scope.vm.viewer.downComment.concat($scope.vm.viewer.activeDownHistory);
                       $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                       $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory);
                        $scope.vm.viewer.activeDownAllHistory = $scope.vm.viewer.downComment.concat($scope.vm.viewer.activeDownHistory);
                        $scope.vm.viewer.activeDownAllHistory.sort(function (a, b) {   //"RECODE_DOWN" 내림차순
                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                        });
                        $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                        $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory);
                        $scope.vm.viewer.activeAllMailAndReplyHistory = $scope.vm.viewer.activeAllMailAndReplyHistory.concat($scope.vm.viewer.activeDownMailAndReplyHistory);
                    }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) {   //내림차순
                    $scope.vm.viewer.activeHistory.sort(function (a, b) {   //"ALL" 내림차순
                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                    });
                    $scope.vm.viewer.activeHistory.sort(function (a, b) {   //내림차순
                    $scope.vm.viewer.activeParentHistory.sort(function (a, b) {   //"RECODE" 내림차순
                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                    });
                    $scope.vm.viewer.activeAllMailAndReplyHistory.sort(function (a, b) {   //"MAIL_AND_REPLY" 내림차순
                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                    });
                }
@@ -1449,16 +1523,43 @@
                }
                function getParametersAll() {
                    var params = $scope.fn.getParameters(null, $scope.vm.viewer.issueCompanyVos);
                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos);
                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
                    if (params != null && params.length > 0) {
                        for (let i = 0; i < params.length; i++) {
                            params[i].id = i;
                    var params = [];
                    if ($scope.vm.viewer.issueCompanyVos != null && $scope.vm.viewer.issueCompanyVos.length > 0) {
                        var issueCompany = $scope.fn.getParameters(params, $scope.vm.viewer.issueCompanyVos);
                        if (issueCompany != null && issueCompany.length > 0) {
                            angular.forEach(issueCompany, function (data) {
                                params.push(data);
                            });
                        }
                    }
                    return params;
                    if ($scope.vm.viewer.issueIspVos != null && $scope.vm.viewer.issueIspVos.length > 0) {
                        var issueIsp = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos)
                        if (issueIsp != null && issueIsp.length > 0) {
                            angular.forEach(issueIsp, function (data) {
                                params.push(data);
                            });
                        }
                    }
                    if ($scope.vm.viewer.issueHostingVos != null && $scope.vm.viewer.issueHostingVos.length > 0) {
                        var issueHosting = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
                        if (issueHosting != null && issueHosting.length > 0) {
                            angular.forEach(issueHosting, function (data) {
                                params.push(data);
                            });
                        }
                    }
                    if (params != null && params.length > 0) {
                        var filterData = params.filter(function(item, idx){
                            return params.findIndex(function(item2, idx2){
                                return item.email === item2.email
                            }) == idx;
                        });
                        for (let i = 0; i < filterData.length; i++) {
                            filterData[i].id = i;
                        }
                    }
                    return filterData;
                }
                function getParameters(sourceArr, partnerVos) {