From 4d06a7593fba3df556fc3728c142554907c6b157 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 수, 15 12월 2021 10:46:45 +0900 Subject: [PATCH] '전체 이슈 프로젝트 보기' 권한 '이슈 관리' 권한으로 변경 - 이슈관리: 모든 이슈 수정 가능 --- src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 209 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 162 insertions(+), 47 deletions(-) diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js index 54617fc..c2a1844 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/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": @@ -179,8 +189,13 @@ makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>"; } else { - makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>"; + makeTag += '<span class="cursor" ng-click="event.changeDetailView(data.id)">' + scope.data.startDate + ' ~ ' + scope.data.completeDate + '</span>'; } + break; + + // �븯�쐞�씠�뒋 移댁슫�듃 + case "DOWN_ISSUE_COUNT" : + makeTag += '<span>' + scope.data.downIssueCount + ' / ' + scope.data.downIssueAllCount + '</span>'; break; // �봽濡쒖젥�듃 湲곌컙 �몴�떆 @@ -219,54 +234,14 @@ 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 "ISSUE_DOWN_DELETE": - makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">'; - break; - - // �씠由꾩쓣 �겢由��븯硫� �닔�젙 �뙘�뾽 �몴�떆 - case "COMMON_MODIFY" : - if (scope.data.modifyPermissionCheck) { - makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '<') + "</span>"; - } - else { - 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>'; - break; - - // �궗�슜�옄 �젙�쓽 �븘�뱶 �샃�뀡 �몴�떆 - case "CUSTOM_FIELD_OPTION" : - switch (scope.data.customFieldType) { - case "INPUT" : - makeTag += "<span translate='common.stringField'>臾몄옄�뿴 �븘�뱶</span>"; - break; - case "MULTI_SELECT" : - makeTag += "<span translate='common.multipleSelectionField'>�떎以� �꽑�깮 �븘�뱶</span>"; - break; - case "SINGLE_SELECT" : - makeTag += "<span translate='common.singleSelectionField'>�떒�씪 �꽑�깮 �븘�뱶</span>"; - break; - } - break; // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞 @@ -279,6 +254,7 @@ 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>'; @@ -286,6 +262,7 @@ break; + // �뿰愿� �씠�뒋 �떞�떦遺��꽌 case "REL_ISSUE_DEPARTMENT" : makeTag += "<ul class='ul-not-comma'>"; makeTag += "<div style='color: #000000'>"; @@ -306,14 +283,49 @@ } 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 cursor">' + value + '<span><br>'; + }); + + break; + + // �븯�쐞 �씠�뒋 �씠�룞(�젣紐�) + case "ISSUE_DOWN_MOVE" : + makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data)\">" + scope.data.title + "</span></a>"; + break; + + // �븯�쐞 �씠�뒋 ���엯 + case "ISSUE_DOWN_STATUS_TYPE" : + makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusVo.color + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusVo.name + "</span>"; + 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'>"; @@ -324,11 +336,13 @@ 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>"; @@ -338,16 +352,107 @@ } 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; + + // �씠由꾩쓣 �겢由��븯硫� �닔�젙 �뙘�뾽 �몴�떆 + case "COMMON_MODIFY" : + if (scope.data.modifyPermissionCheck) { + makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '<') + "</span>"; + } + else { + 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>'; + break; + + // �궗�슜�옄 �젙�쓽 �븘�뱶 �샃�뀡 �몴�떆 + case "CUSTOM_FIELD_OPTION" : + switch (scope.data.customFieldType) { + case "INPUT" : + makeTag += "<span translate='common.stringField'>臾몄옄�뿴 �븘�뱶</span>"; + break; + case "MULTI_SELECT" : + makeTag += "<span translate='common.multipleSelectionField'>�떎以� �꽑�깮 �븘�뱶</span>"; + break; + case "SINGLE_SELECT" : + makeTag += "<span translate='common.singleSelectionField'>�떒�씪 �꽑�깮 �븘�뱶</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'>IP ADDRESS �븘�뱶</span>"; + break; + case "EMAIL" : + makeTag += "<span translate='common.emailField'>�씠硫붿씪 �븘�뱶</span>"; + break; + case "SITE" : + makeTag += "<span translate='common.siteField'>URL �븘�뱶</span>"; + break; + case "TEL" : + makeTag += "<span translate='common.telField'>�쟾�솕踰덊샇 �븘�뱶</span>"; + break; + } + + break; + // �씠�뒋 �젣紐� + case "ISSUE_TITLE" : + makeTag += '<div class="tags text-left">'; + makeTag += '<i class="fa fa-star move-star" ng-show="$root.currentDetailIssueId == data.id"> </i>'; + makeTag += '<span class="number-tag">' + scope.data.projectKey + ' - ' + scope.data.issueNumber + '</span>'; + makeTag += ' <span class="tag"> / </span> '; + makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusColor + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusColor + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusName + "</span>"; + makeTag += '<span class="tag"> / </span> '; + makeTag += '<span class="tag">' +'<span>API: </span>' + scope.data.isApi + '</span>'; + makeTag += '</div>'; + makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)">' + scope.data.title.replace(/</gi, '<') + '</div>'; + makeTag += '<div class="extra-infodiv text-left">'; + makeTag += '<span class="extra-info">'; + makeTag += '<i class="os-icon os-icon-mail-12"></i>'; + makeTag += '<span>' + scope.data.issueCommentCount + '</span>'; + makeTag += '</span>'; + makeTag += '<span class="extra-info">'; + makeTag += '<i class="os-icon os-icon-ui-51"></i>'; + makeTag += '<span>' + scope.data.attachedFileCount + '</span>'; + makeTag += '</span>'; + makeTag += '</div>'; + 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>"; + makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='badge cursor' 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>"; + makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='badge cursor' ng-style='{ \"background-color\" : \"" + scope.data.severityColor + "\"," + "\"border-color\"" + " : \"" + scope.data.severityColor + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityName + "'></span>"; break; + // �떞�떦 遺��꽌 case "ISSUE_DEPARTMENT" : - makeTag += "<ul class='ul-not-comma'>"; + makeTag += "<ul ng-click=\"event.changeDetailView(data.id)\" class='ul-not-comma cursor'>"; makeTag += "<div style='color: #000000'>"; angular.forEach(scope.data.departmentVos, function (departments) { makeTag += "<li>" + departments.departmentName + "</li>"; @@ -356,13 +461,15 @@ makeTag += "</ul>"; break; + // �떞�떦�옄 case "ISSUE_USER" : makeTag += '<div owl-profile-over class="" table-user-image="data" target="userVos"></div>'; break; + // �벑濡앹옄 case "REGISTER" : scope.data.registerVos = [scope.data.registerVo]; - makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>'; + makeTag += '<div ng-click=\"event.changeDetailView(data.id)\" owl-profile-over class="cursor" table-user-image="data" target="registerVos"></div>'; break; case "WORKFLOW_NAME": @@ -428,6 +535,14 @@ case "ISSUE_SETTING_PERM_YN" : makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permIssueSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>"; + break; + + case "ISSUE_SYSTEM_SETTING_PERM_YN" : + makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permIssueSystemSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>"; + break; + + case "PARTNER_SETTING_PERM_YN" : + makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permPartnerSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>"; break; case "API_PERM_YN" : @@ -535,7 +650,7 @@ } angular.forEach(values, function (value) { - makeTag += '<span class="table-word-break-all">' + value + '<span><br>'; + makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + value + '<span><br>'; }); break; -- Gitblit v1.8.0