OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-27 bd0cc703f0a21cc04c359a96dfb11873e38148d5
이슈리스트에 파트너리스트 항목 추가
6개 파일 변경됨
214 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/vo/IssueVo.java 28 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js 109 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueList.controller.js 43 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -67,6 +67,10 @@
    private List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
    private String companyName;
    private String ispName;
    private String hostingName;
    public IssueVo(){}
    public Long getId() {
@@ -530,4 +534,28 @@
    public void setParentIssueId(Long parentIssueId) {
        this.parentIssueId = parentIssueId;
    }
    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
    public String getIspName() {
        return ispName;
    }
    public void setIspName(String ispName) {
        this.ispName = ispName;
    }
    public String getHostingName() {
        return hostingName;
    }
    public void setHostingName(String hostingName) {
        this.hostingName = hostingName;
    }
}
src/main/resources/mybatis/query-template/issue-template.xml
@@ -32,6 +32,9 @@
        severity.id as severityId,
        severity.name as severityName,
        severity.color as severityColor,
        ic.name AS companyName,
        ii.name AS ispName,
        ih.name AS hostingName,
        GROUP_CONCAT(issue_custom.use_value) AS useValue,
        IFNULL(temp_attached_file.attachedFileCount, 0) as attachedFileCount,
        IFNULL(temp_issue_comment.issueCommentCount, 0) as issueCommentCount
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -492,6 +492,33 @@
                                            makeTag += "</ul>";
                                            break;
                                        // 업체
                                        case "USE_COMPANY" :
                                            if (scope.data.companyName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.companyName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        // ISP
                                        case "USE_ISP" :
                                            if (scope.data.ispName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.ispName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        // 호스팅
                                        case "USE_HOSTING" :
                                            if (scope.data.ispName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.hostingName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        case "WORKFLOW_NAME":
                                            makeTag += "<span>" + scope.data.workflowVo.name + "</span>";
                                            break;
src/main/webapp/i18n/ko/global.json
@@ -232,6 +232,7 @@
        "failedToIssueTypeListLookup": "이슈 유형 목록 조회 실패",
        "failedToPriorityListLookup": "우선순위 목록 조회 실패",
        "failedToCriticalListLookup": "중요도 목록 조회 실패",
        "failedToPartnerListLookup": "파트너 목록 조회 실패",
        "failedToUserDefinedFieldListLookup": "사용자 정의 필드 목록 조회 실패",
        "failedToIssueTableColumnLookup": "이슈 테이블 컬럼 조회 실패",
        "failedToIssueAddIssueRelation": "연관 이슈 추가 실패",
@@ -697,6 +698,9 @@
        "register": "등록자",
        "startDate": "시작일",
        "endDate": "종료일",
        "company": "업체",
        "isp": "ISP",
        "hosting": "호스팅",
        "english": "영어",
        "korean": "한국어",
        "japaneseLanguage": "일본어",
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
@@ -8,14 +8,15 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'IssueTypeCustomField', '$q', '$filter', 'parameter',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, IssueTypeCustomField, $q, $filter, parameter) {
        app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'Issue', 'IssueTypeCustomField', '$q', '$filter', 'parameter',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, Issue, IssueTypeCustomField, $q, $filter, parameter) {
                //  함수 모음
                $scope.fn = {
                    cancel : cancel,    //  팝업 창 닫기
                    formSubmit : formSubmit,    //  폼 전송
                    formCheck : formCheck,  //  폼 체크
                    getUsePartner : getUsePartner,
                    getCustomFields : getCustomFields,   //  사용자 정의 필드 목록을 가져온다.
                    getIssueAddTableConfigs : getIssueAddTableConfigs //  이슈 목록 테이블 설정 정보를 가져온다.
                };
@@ -85,7 +86,6 @@
                        position : 8,
                        display : false,
                        checkboxShow : true
                    }, {
                    }]
                };
@@ -135,6 +135,24 @@
                    $(document).unbind("keydown");  //  단축키 이벤트 제거
                }
                //  이슈유형 별 파트너 목록
                function getUsePartner() {
                    var deferred = $q.defer();
                    $scope.vm.partners = [];
                    Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.data;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // 파트너 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
                    });
                    return deferred.promise;
                }
                //  사용자 정의 필드 목록을 가져온다.
                function getCustomFields() {
                    var deferred = $q.defer();
@@ -152,7 +170,7 @@
                }
                var content = {
                    delValue : $scope.vm.issueTableConfigs.splice(9,1),
                    //delValue : $scope.vm.issueTableConfigs.splice(12,1),
                    issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs),
                    issueTypeId : $rootScope.getCurrentIssueTypeId()
                };
@@ -179,46 +197,69 @@
                    return deferred.promise;
                }
                //  사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                $scope.fn.getCustomFields().then(function (result) {
                    var count = 8;
                    angular.forEach(result, function (customField) {
                //  파트너를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                $scope.fn.getUsePartner().then(function (result) {
                    var count = 9;
                    angular.forEach(result, function (partner) {
                        $scope.vm.issueTableConfigs.push({
                            name : customField.name,
                            key : "CUSTOM_FIELD_" + customField.id,
                            name : partner.name,
                            key : (function () {
                                var key = "";
                                if (partner.name === "업체") {
                                    key = "COMPANY";
                                } else if(partner.name === "ISP") {
                                    key = "ISP";
                                } else {
                                    key = "HOSTING";
                                }
                                return key;
                            })(),
                            width : "width-100-p",
                            display : false,
                            checkboxShow : true,
                            position : count
                        });
                        count++;
                    });
                    //  이슈 목록 테이블 설정 정보를 가져온다.
                    $scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
                        if ($rootScope.isDefined(issueTableConfigs)) {
                            $rootScope.spinner = true;
                            var saveTableConfigs = JSON.parse(issueTableConfigs);
                            angular.forEach(saveTableConfigs, function (saveTableConfig) {
                                for (var count in $scope.vm.issueTableConfigs) {
                                    var issueTableConfig = $scope.vm.issueTableConfigs[count];
                                    if (issueTableConfig.key === saveTableConfig.key) {
                                        issueTableConfig.display = saveTableConfig.display;
                                        issueTableConfig.width = saveTableConfig.width;
                                        issueTableConfig.position = saveTableConfig.position;
                                        break;
                                    }
                                }
                    //  사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                    $scope.fn.getCustomFields().then(function (result) {
                        angular.forEach(result, function (customField) {
                            $scope.vm.issueTableConfigs.push({
                                name : customField.name,
                                key : "CUSTOM_FIELD_" + customField.id,
                                width : "width-100-p",
                                display : false,
                                checkboxShow : true,
                                position : count
                            });
                            count++;
                        });
                            $rootScope.spinner = false;
                        }
                    });
                        //  이슈 목록 테이블 설정 정보를 가져온다.
                        $scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
                            if ($rootScope.isDefined(issueTableConfigs)) {
                                $rootScope.spinner = true;
                                var saveTableConfigs = JSON.parse(issueTableConfigs);
                                angular.forEach(saveTableConfigs, function (saveTableConfig) {
                                    for (var count in $scope.vm.issueTableConfigs) {
                                        var issueTableConfig = $scope.vm.issueTableConfigs[count];
                                        if (issueTableConfig.key === saveTableConfig.key) {
                                            issueTableConfig.display = saveTableConfig.display;
                                            issueTableConfig.width = saveTableConfig.width;
                                            issueTableConfig.position = saveTableConfig.position;
                                            break;
                                        }
                                    }
                                });
                                $rootScope.spinner = false;
                            }
                        });
                    })
                });
            }]);
src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -408,6 +408,33 @@
                                .setColumnTooltip("미완료 하위이슈/전체 하위이슈")
                                .setDRenderer("DOWN_ISSUE_COUNT"));
                            break;
                        case "COMPANY" :   //  업체
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.company")
                                .setDName("companyName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_COMPANY"));
                            break;
                        case "ISP" :   //  ISP
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.isp")
                                .setDName("ispName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_ISP"));
                            break;
                        case "HOSTING" :   //  HOSTING
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.hosting")
                                .setDName("hostingName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_HOSTING"));
                            break;
                    }
                    //  사용자 정의 필드 컬럼
@@ -1079,13 +1106,16 @@
                    var deferred = $q.defer();
                    $scope.vm.partners = [];
                    Issue.findPartners($resourceProvider.getContent({},
                    Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.content;
                            angular.forEach(result.data.data, function (partner) {
                                $scope.vm.partners.push(partner);
                            });
                            //$scope.vm.partnerVos = result.data.data;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // 우선순위 목록 조회 실패
                            SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // 파트너 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
@@ -1171,7 +1201,6 @@
                                        break;
                                }
                                $scope.vm.customFields.push(customField);
                            });
                        }
@@ -1192,8 +1221,8 @@
                    if ($rootScope.issueTypeMenu != null){
                        var content = {
                            issueTypeId : $rootScope.issueTypeMenu.id
                            }
                            issueTypeId : $rootScope.getCurrentIssueTypeId()
                        }
                        IssueTableConfig.detail($resourceProvider.getContent(content,
                            $resourceProvider.getPageContent(0, 1000))).then(function (result) {
@@ -1285,7 +1314,7 @@
                        getPriorities : $scope.fn.getPriorities(),
                        getSeverities : $scope.fn.getSeverities(),
                        getIssueStatuses : $scope.fn.getIssueStatuses(),
                        getCustomFields : $scope.fn.getCustomFields()
                        getCustomFields : $scope.fn.getCustomFields(),
                    };
                    $q.all(promises).then(function (results){