| | |
| | | } |
| | | break; |
| | | |
| | | // 프로젝트 이름(프로젝트 리스트에서 사용) |
| | | case "PROJECT_BASIC_NAME" : |
| | | if (scope.data.projectVo != null) { |
| | | makeTag += "<span class='titlenameSelect'>" + myToken + scope.data.projectVo.name.replace(/</gi, '<') + "</span>"; |
| | | } |
| | | break; |
| | | |
| | | // 프로젝트 목록에서 사용자 정의 필드 설정 표시 |
| | | case "CUSTOM_FIELD_CONFIG" : |
| | | // 관리자만 수정할 수 있다. |
| | |
| | | // 프로젝트 팀원 정보 |
| | | case "PROJECT_USER": |
| | | 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" : |
| | |
| | | makeTag += "</ul>"; |
| | | break; |
| | | |
| | | case "USE_DEPARTMENT_LIST" : |
| | | makeTag += "<ul class='ul-not-comma'>"; |
| | | |
| | | if(scope.data.departmentVos != null && scope.data.departmentVos.length == 0){ //속해있는 부서가 없을 경우 |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff'' ng-click='event.modifyUserDepartments(data.id, data.userId)'>부서를 선택해 주세요.</div>"; |
| | | }else{ |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff'' ng-click='event.modifyUserDepartments(data.id, data.userId)'>"; |
| | | angular.forEach(scope.data.departmentVos, function (departments) { |
| | | makeTag += "<li>" + departments.departmentName + "</li>"; |
| | | }); |
| | | makeTag += "</div>"; |
| | | } |
| | | 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>"; |
| | |
| | | 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_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; |
| | | |
| | | // 이름을 클릭하면 수정 팝업 표시 |
| | |
| | | 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>'; |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | 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 += "<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": |
| | |
| | | } |
| | | break; |
| | | |
| | | case "DEPARTMENT_EX": |
| | | makeTag += "<div style='margin-top: 5px;'>" + scope.data.departmentDescription + "</div>"; |
| | | break; |
| | | |
| | | case "DEPARTMENT_COUNT": |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')) { |
| | | makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modifyDepartmentCount(data.id)'>" + scope.data.departmentCount + "</span>"; |
| | |
| | | } |
| | | break; |
| | | |
| | | case "DEPARTMENT_OPTION" : |
| | | //if (scope.data.departmentId != null){ |
| | | case "DEPARTMENT_OPTION": |
| | | makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>"; |
| | | /*if (scope.data.departmentId != null){ |
| | | makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>"; |
| | | //} |
| | | //else{ |
| | | // makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option>부서를 선택 하세요.</option>" |
| | | // makeTag +="<option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>"; |
| | | //} |
| | | } |
| | | else{ |
| | | makeTag +="<select class='form-control input-sm' ng-model='data.departmentId' ng-change='event.modifyUserWorkspace(data)'><option>부서를 선택 하세요.</option>" |
| | | makeTag +="<option ng-repeat='department in data.departments' ng-value='department.fieldKey'>{{::department.fieldValue}}</option></select>"; |
| | | }*/ |
| | | break; |
| | | |
| | | case "LEVEL_OPTION" : |
| | |
| | | makeTag += "<label class='switch'><input type='checkbox' ng-model='data.useYn' ng-click='event.modifyUserWorkspace(data)'><span class='slider round'></span></label>"; |
| | | break; |
| | | |
| | | case "COMPANYFIELD_MODIFY" : |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { |
| | | 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 "ISPFIELD_MODIFY" : |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { |
| | | 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 "HOSTINGFIELD_MODIFY" : |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { |
| | | 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 "ISSUE_CUSTOM_FIELD_VALUE_VIEW" : |
| | | var values = []; |
| | | |