OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-26 e7c0ff25749d77b25fdad019861c1a5a444b21dd
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -101,6 +101,16 @@
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="projectUserVos"></div>';
                                            break;
                                        case "PROJECT_DEPARTMENT":
                                            makeTag += "<ul class='ul-not-comma'>";
                                            makeTag += "<div style='cursor: pointer; color: #000000'>";
                                            angular.forEach(scope.data.projectDepartmentVos, function (departments) {
                                                makeTag += "<li>" + departments.departmentName + "</li>";
                                            });
                                            makeTag += "</div>";
                                            makeTag += "</ul>";
                                            break;
                                        case "ISSUE_STATUS_TYPE" :
                                            switch (scope.data.issueStatusType) {
                                                case "READY":
@@ -154,13 +164,29 @@
                                            makeTag += "</ul>";
                                            break;
                                        case "WORKFLOW_DEPARTMENT_LIST" :
                                            makeTag += "<ul class='ul-not-comma'>";
                                            if(scope.data.issueStatusVos != null && scope.data.issueStatusVos.length > 0){
                                                makeTag += "<div>";
                                                angular.forEach(scope.data.issueStatusVos, function (issueStatusVo) {
                                                    let workflowDepartments = new Set(issueStatusVo.workflowDepartmentVos);
                                                    angular.forEach(workflowDepartments, function (workflowDepartmentVo) {
                                                        makeTag += "<li>" + workflowDepartmentVo.departmentVo.departmentName + "</li>";
                                                    });
                                                });
                                                makeTag += "</div>";
                                            }
                                            makeTag += "</ul>";
                                            break;
                                        case "CONFIG" :
                                            makeTag += '<a ng-click="event.modify(data.id)"><i class="fa fa-pencil fa-lg" uib-tooltip="수정"></i></a>';
                                            break;
                                        //  이슈 목록에서 기간 표시
                                        case "ISSUE_DUE_DATE" :
                                            if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) {
                                                makeTag += "<span></span>";
                                                makeTag += "<span translate='common.noDate'>기간 없음</span>";
                                            }
                                            else {
                                                makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>";
@@ -194,34 +220,143 @@
                                            makeTag += '</div>';
                                            break;
                                        case "ISSUE_DETAIL_MOVE" :
                                            makeTag += "<a ui-sref='issues.detail({ id : " + scope.data.id + " })'><span>" + scope.data.title + "</span></a>";
                                            break;
                       /*                 case "ISSUE_DETAIL_MOVE" :
                                            makeTag += "<a class='text-center' ui-sref='issues.detail({ id : " + scope.data.id + " })'><span>" + scope.data.title + "</span></a>";
                                            break;*/
                                        // 연관 이슈 이동
                                        // 연관 이슈 이동(제목)
                                        case "ISSUE_RELATION_MOVE" :
                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>";
                                            makeTag += "<span class=\"titlename cursor text-center\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>";
                                            break;
                                        // 연관 이슈 이동
                                        case "ISSUE_DOWN_MOVE" :
                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.id)\">" + scope.data.title + "</span></a>";
                                            break;
                                            // 연관이슈 구분
                                        // 연관이슈 구분
                                        case "ISSUE_RELATION_TYPE":
                                            makeTag += "<span>" + scope.data.relationIssueTypeName + "</span>";
                                            break;
                                            // 연관이슈 삭제
                                        // 연관이슈 삭제
                                        case "ISSUE_RELATION_DELETE":
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeRelationIssue(data.id)">';
                                            break;
                                        // 연관 이슈 우선순위
                                        case "REL_COMMON_PRIORITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>";
                                            break;
                                        // 연관 이슈 중요도
                                        case "REL_COMMON_SEVERITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>";
                                            break;
                                        // 연관 이슈 등록자
                                        case "REL_REGISTER":
                                            scope.data.registerVos = [scope.data.issueRelation.registerVo];
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>';
                                            break;
                                            break;
                                        // 연관 이슈 담당부서
                                        case "REL_ISSUE_DEPARTMENT" :
                                            makeTag += "<ul class='ul-not-comma'>";
                                            makeTag += "<div style='color: #000000'>";
                                            angular.forEach(scope.data.issueRelation.departmentVos, function (departments) {
                                                makeTag += "<li>" + departments.departmentName + "</li>";
                                            });
                                            makeTag += "</div>";
                                            makeTag += "</ul>";
                                            break;
                                        // 연관 이슈 목록에서 기간 표시
                                        case "REL_ISSUE_DUE_DATE" :
                                            if (!$rootScope.isDefined(scope.data.issueRelation.startDate) && !$rootScope.isDefined(scope.data.issueRelation.completeDate)) {
                                                makeTag += "<span translate='common.noDate'>기간 없음</span>";
                                            }
                                            else {
                                                makeTag += "<span>" + scope.data.issueRelation.startDate + " ~ " + scope.data.issueRelation.completeDate + "</span>";
                                            }
                                            break;
                                        // 연관 이슈 사용자 정의 필드
                                        case "REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW" :
                                            var values = [];
                                            for (var count in scope.data.issueRelation.issueCustomFieldValueVos) {
                                                var issueCustomFieldValueVo = scope.data.issueRelation.issueCustomFieldValueVos[count];
                                                //  테이블 설정에서 dName 부분에 사용자 정의 필드 id 를 넣고 해당 값을 추출한다.
                                                if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) {
                                                    values.push(issueCustomFieldValueVo.useValue);
                                                }
                                            }
                                            angular.forEach(values, function (value) {
                                                makeTag += '<span class="table-word-break-all">' + value + '<span><br>';
                                            });
                                            break;
                                        // 하위 이슈 이동(제목)
                                        case "ISSUE_DOWN_MOVE" :
                                            makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data.id)\">" + scope.data.title + "</span></a>";
                                            break;
                                        // 하위 이슈 삭제
                                        case "ISSUE_DOWN_DELETE":
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">';
                                            break;
                                        // 하위 이슈 우선 순위
                                        case "DOWN_COMMON_PRIORITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>";
                                            break;
                                        // 하위 이슈 중요도
                                        case "DOWN_COMMON_SEVERITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>";
                                            break;
                                        // 하위 이슈 담당부서
                                        case "DOWN_ISSUE_DEPARTMENT" :
                                            makeTag += "<ul class='ul-not-comma'>";
                                            makeTag += "<div style='color: #000000'>";
                                            angular.forEach(scope.data.departmentVos, function (departments) {
                                                makeTag += "<li>" + departments.departmentName + "</li>";
                                            });
                                            makeTag += "</div>";
                                            makeTag += "</ul>";
                                            break;
                                        // 하위 이슈 등록자
                                        case "DOWN_REGISTER":
                                            scope.data.registerVos = [scope.data.registerVo];
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>';
                                            break;
                                        // 하위 이슈 기간
                                        case "DOWN_ISSUE_DUE_DATE" :
                                            if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) {
                                                makeTag += "<span translate='common.noDate'>기간 없음</span>";
                                            }
                                            else {
                                                makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>";
                                            }
                                            break;
                                        // 하위 이슈 사용자 정의 필드
                                        case "DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW" :
                                            var values = [];
                                            for (var count in scope.data.issueCustomFieldValueVos) {
                                                var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count];
                                                //  테이블 설정에서 dName 부분에 사용자 정의 필드 id 를 넣고 해당 값을 추출한다.
                                                if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) {
                                                    values.push(issueCustomFieldValueVo.useValue);
                                                }
                                            }
                                            angular.forEach(values, function (value) {
                                                makeTag += '<span class="table-word-break-all">' + value + '<span><br>';
                                            });
                                            break;
                                        //  이름을 클릭하면 수정 팝업 표시
@@ -233,6 +368,7 @@
                                                makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>";
                                            }
                                            break;
                                        //  설정 버튼 클릭하면 수정 팝업 표시
                                        case "BUTTON_MODIFY" :
                                                makeTag += '<button class="btn btn-info" ng-if="data.modifyPermissionCheck" ng-click="event.modify(data.id)"><i class="os-icon os-icon-ui-46" uib-tooltip="프로젝트 설정"></i></button>';
@@ -244,6 +380,24 @@
                                                case "INPUT" :
                                                    makeTag += "<span translate='common.stringField'>문자열 필드</span>";
                                                    break;
                                                case "NUMBER" :
                                                    makeTag += "<span translate='common.numberField'>숫자 필드</span>";
                                                    break;
                                                case "DATETIME" :
                                                    makeTag += "<span translate='common.datetimeField'>숫자 필드</span>";
                                                    break;
                                                case "IP_ADDRESS" :
                                                    makeTag += "<span translate='common.ipAddressField'>숫자 필드</span>";
                                                    break;
                                                case "EMAIL" :
                                                    makeTag += "<span translate='common.emailField'>숫자 필드</span>";
                                                    break;
                                                case "SITE" :
                                                    makeTag += "<span translate='common.siteField'>숫자 필드</span>";
                                                    break;
                                                case "TEL" :
                                                    makeTag += "<span translate='common.telField'>숫자 필드</span>";
                                                    break;
                                                case "MULTI_SELECT" :
                                                    makeTag += "<span translate='common.multipleSelectionField'>다중 선택 필드</span>";
                                                    break;
@@ -253,27 +407,36 @@
                                            }
                                            break;
                                        // 우선 순위
                                        case "COMMON_PRIORITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityName + "'></span>";
                                            break;
                                        // 중요도
                                        case "COMMON_SEVERITY" :
                                            makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.severityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityName + "'></span>";
                                            break;
                                        // 담당 부서
                                        case "ISSUE_DEPARTMENT" :
                                            makeTag += "<span>" + scope.data.departmentVos.departmentName + "</span>";
                                            makeTag += "<ul class='ul-not-comma'>";
                                                makeTag += "<div style='color: #000000'>";
                                                angular.forEach(scope.data.departmentVos, function (departments) {
                                                    makeTag += "<li>" + departments.departmentName + "</li>";
                                                });
                                                makeTag += "</div>";
                                            makeTag += "</ul>";
                                            break;
                                        // 담당자
                                        case "ISSUE_USER" :
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="userVos"></div>';
                                            break;
                                        // 등록자
                                        case "REGISTER" :
                                            scope.data.registsrVos = [scope.data.registerVo];
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registsrVos"></div>';
                                            scope.data.registerVos = [scope.data.registerVo];
                                            makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>';
                                            break;
                                        case "WORKFLOW_NAME":