From 7068088ec7e3b79e4259fc881e170205f210855e Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 월, 06 12월 2021 17:10:16 +0900 Subject: [PATCH] 이슈 상세 화면 하위 이슈 테이블 설정 사용자 정의 필드 타입 변경시 이름 초기화 수정 --- src/main/webapp/scripts/components/utils/autoComplete.controller.js | 43 ++++++++ src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js | 26 +++-- src/main/webapp/views/issue/issueAddTableConfig.html | 16 +- src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js | 16 ++ src/main/webapp/scripts/app/issue/issueList.controller.js | 64 ++++++++---- src/main/webapp/views/issue/issueAddRelation.html | 53 ++++++---- src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js | 10 + src/main/webapp/views/issue/issueDetail.html | 2 src/main/webapp/scripts/app/issue/issueDetail.controller.js | 23 ++++ src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 42 +++++++- 10 files changed, 219 insertions(+), 76 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 c773066..ab0272d 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js @@ -189,7 +189,7 @@ 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; @@ -290,7 +290,7 @@ } } angular.forEach(values, function (value) { - makeTag += '<span class="table-word-break-all">' + value + '<span><br>'; + makeTag += '<span class="table-word-break-all cursor">' + value + '<span><br>'; }); break; @@ -299,6 +299,11 @@ 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; // �븯�쐞 �씠�뒋 �궘�젣 @@ -408,19 +413,42 @@ } break; + // �씠�뒋 �젣紐� + case "ISSUE_TITLE" : + makeTag += '<div class="tags">'; + 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">' + scope.data.projectName + '</span>'; + makeTag += '</div>'; + makeTag += '<div class="titlename cursor" ng-click="event.changeDetailView(data.id)">' + scope.data.title.replace(/</gi, '<') + '</div>'; + makeTag += '<div class="extra-infodiv">'; + 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>"; @@ -437,7 +465,7 @@ // �벑濡앹옄 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": @@ -614,7 +642,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; diff --git a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js index 3b7e862..8d58039 100644 --- a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js @@ -60,6 +60,12 @@ position : 6, display : false }, { + name : $filter("translate")("issue.issueStatus"), // �씠�뒋 �긽�깭 + key : "ISSUE_DOWN_STATUS_TYPE", + width : "width-100-p", + position : 7, + display : false + },{ }] }; @@ -131,7 +137,7 @@ var content = { issueId : $rootScope.currentDetailIssueId, - delValue : $scope.vm.issueDownTableConfigs.splice(6,1), + delValue : $scope.vm.issueDownTableConfigs.splice(7,1), issueTypeId : $rootScope.getCurrentIssueTypeId(), issueTableConfigs : JSON.stringify($scope.vm.issueDownTableConfigs) }; @@ -150,7 +156,7 @@ // �궗�슜�옄 �젙�쓽 �븘�뱶瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎. $scope.fn.getCustomFields().then(function (result) { - var count = 6; + var count = 7; angular.forEach(result, function (customField) { $scope.vm.issueDownTableConfigs.push({ name : customField.name, diff --git a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js index 5fc480c..a14c502 100644 --- a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js @@ -23,52 +23,58 @@ // 蹂��닔 紐⑥쓬 $scope.vm = { issueTableConfigs : [{ + name : $filter("translate")("issue.issueTitle"), // �씠�뒋 �젣紐� + key : "ISSUE_TITLE", + width : "width-140-p", + position : 1, + display : true + }, { name : $filter("translate")("common.priority"), // �슦�꽑�닚�쐞 key : "PRIORITY", width : "width-80-p", - position : 1, + position : 2, display : true }, { name : $filter("translate")("common.importance"), // 以묒슂�룄 key : "SEVERITY", width : "width-80-p", - position : 2, + position : 3, display : true }, { name : $filter("translate")("issue.issueType"), // �씠�뒋 ���엯 key : "ISSUE_TYPE", width : "width-140-p", - position : 3, + position : 4, display : true }, { name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌 key : "ASSIGNEE_TEAM", width : "width-100-p", - position : 4, + position : 5, display : true }, { name : $filter("translate")("common.countDownIssue"), // �븯�쐞�씠�뒋 移댁슫�듃 key : "COUNT_DOWN_ISSUE", width : "width-100-p", - position : 5, + position : 6, display : false }, { name : $filter("translate")("common.register"), // �벑濡앹옄 key : "REGISTER", width : "width-100-p", - position : 6, + position : 7, display : false }, { name : $filter("translate")("common.period"), // 湲곌컙 key : "PERIOD", width : "width-140-p", - position : 7, + position : 8, display : false }, { name : $filter("translate")("common.lastChangeDate"), // 理쒓렐 蹂�寃쎌씪 key : "MODIFY_DATE", width : "width-100-p", - position : 8, + position : 9, display : false }, { }] @@ -137,7 +143,7 @@ } var content = { - delValue : $scope.vm.issueTableConfigs.splice(8,1), + delValue : $scope.vm.issueTableConfigs.splice(9,1), issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs), issueTypeId : $rootScope.getCurrentIssueTypeId() }; @@ -166,7 +172,7 @@ // �궗�슜�옄 �젙�쓽 �븘�뱶瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎. $scope.fn.getCustomFields().then(function (result) { - var count = 7; + var count = 8; angular.forEach(result, function (customField) { $scope.vm.issueTableConfigs.push({ name : customField.name, diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index d3dda22..7a41cc1 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -40,6 +40,7 @@ $scope.fn.versionView = versionView; // 踰꾩쟾 �젙蹂대�� �몴�떆�븳�떎. $scope.fn.reservation = reservation; // �삁�빟 �젙蹂대�� �솗�씤 諛� 蹂�寃� �븳�떎. $scope.fn.getIssueListCallBack = getIssueListCallBack; + $scope.fn.getDownIssueListCallBack = getDownIssueListCallBack; $scope.fn.addRelationIssue = addRelationIssue; // �뿰愿� �씠�뒋 異붽� $scope.fn.addDownIssue = addDownIssue; // �븯�쐞 �씠�뒋 異붽� $scope.fn.addRelationIssueTableConfig = addRelationIssueTableConfig; // �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 @@ -227,6 +228,10 @@ $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage; } + function getDownIssueListCallBack(result) { + $scope.vm.autoCompletePage.issue.totalPage = result.data.page.totalPage; + } + // �뀒�씠釉붿쓽 �뿰愿� �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎. function setRelTableColumn(Rel_issueTableConfig) { @@ -339,6 +344,16 @@ .setDAlign("text-center") .setDRenderer("ISSUE_DOWN_MOVE")); break; + + case "ISSUE_DOWN_STATUS_TYPE" : // �씠�뒋 �긽�깭 + $scope.vm.downTableConfigs.push($tableProvider.config() + .setHName("issue.issueStatus") + .setDType("renderer") + .setHWidth("bold " + Down_issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("ISSUE_DOWN_STATUS_TYPE")); + break; + case "PRIORITY" : // �븯�쐞 �씠�뒋 �슦�꽑�닚�쐞 $scope.vm.downTableConfigs.push($tableProvider.config() .setHName("common.priority") @@ -873,10 +888,16 @@ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); + // 媛꾪뿉�쟻�씤 �븯�쐞 �씠�뒋 媛깆떊 �삤瑜� 諛⑹� + $rootScope.$on("getIssueDetail", function (event, args) { + $scope.fn.getIssueDetail(); + }); + }); } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos; + if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) { $rootScope.changeLastProject(result.data.data.projectVo.id); @@ -888,8 +909,6 @@ } }); } - - // =================================================================================== // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� function makePreviewImages(attachedFileVos) { diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index daf60ba..b520cad 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -202,30 +202,37 @@ .setDAlign("text-center")); // �긽�꽭�삎 �씪�븣�븣 - if ($scope.vm.detailView) { - $scope.vm.tableConfigs.push($tableProvider.config() - .setHName("issue.issueTitle") - .setDName("title") - .setDType("renderer") - .setHWidth("width-100 bold") - .setDRenderer("ISSUE_DETAIL_FLOATING")); - } - else { - $scope.vm.tableConfigs.push($tableProvider.config() - .setHName("issue.issueTitle") - .setDName("title") - .setDType("renderer") - .setHWidth("bold") - .setDRenderer("ISSUE_DETAIL_FLOATING")); - - angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { - // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. - if (issueTableConfig.display) { - // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. - $scope.fn.setTableColumn(issueTableConfig); - } - }); - } + // if ($scope.vm.detailView) { + // $scope.vm.tableConfigs.push($tableProvider.config() + // .setHName("issue.issueTitle") + // .setDName("title") + // .setDType("renderer") + // .setHWidth("bold") + // .setDRenderer("ISSUE_DETAIL_FLOATING")); + // } + // else { + // $scope.vm.tableConfigs.push($tableProvider.config() + // .setHName("issue.issueTitle") + // .setDName("title") + // .setDType("renderer") + // .setHWidth("bold") + // .setDRenderer("ISSUE_DETAIL_FLOATING")); + // + // angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { + // // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + // if (issueTableConfig.display) { + // // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + // $scope.fn.setTableColumn(issueTableConfig); + // } + // }); + // } + angular.forEach($scope.vm.issueTableConfigs, function (issueTableConfig) { + // �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎. + if (issueTableConfig.display) { + // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. + $scope.fn.setTableColumn(issueTableConfig); + } + }); } // �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎. @@ -233,6 +240,15 @@ // �씪諛� 而щ읆 switch(issueTableConfig.key) { + case "ISSUE_TITLE" : // �씠�뒋 �젣紐� + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("issue.issueTitle") + .setDType("renderer") + .setHWidth("bold " + issueTableConfig.width) + .setDAlign("text-center") + .setDRenderer("ISSUE_TITLE")); + break; + case "PRIORITY" : // �슦�꽑�닚�쐞 $scope.vm.tableConfigs.push($tableProvider.config() .setHName("common.priority") diff --git a/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js b/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js index 58f20f5..9106d78 100644 --- a/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js +++ b/src/main/webapp/scripts/app/project/projectCustomFieldConfig.controller.js @@ -24,12 +24,14 @@ $scope.vm = { form : { - issueTypeId : "" + issueTypeId : "", + useValue : "" }, issueTypes : [], originCustomFields : [], customFields : [], - relationCustomFields : [] + relationCustomFields : [], + useValues : [] }; // �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎. @@ -92,12 +94,18 @@ $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status === "success") { + // �솕硫댁뿉�꽌 �씠由꾩쓣 �몴�떆�븯湲� �쐞�빐 �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆쓣 name �뿉 �뀑�똿�븳�떎. angular.forEach(result.data.data, function (issueTypeCustomField) { var relationCustomField = angular.copy(issueTypeCustomField.customFieldVo); relationCustomField.checked = issueTypeCustomField.fieldOption == '01'; // �븘�닔 媛� �뿬遺� $scope.vm.relationCustomFields.push(relationCustomField); + + for (var i=0; i < result.data.data.length; i++){ + $scope.vm.useValues.push(result.data.data[i].useValue) + } }); + angular.forEach($scope.vm.originCustomFields, function (originCustomField) { var search = false; @@ -144,6 +152,7 @@ $rootScope.spinner = true; var content = { + useValues : $scope.vm.useValues, projectId : parameter.id, issueTypeId : $scope.vm.form.issueTypeId, relationCustomFields : $scope.vm.relationCustomFields @@ -152,6 +161,9 @@ IssueTypeCustomField.modify($resourceProvider.getContent( content, $resourceProvider.getPageContent(0, 10))).then(function (result) { + if ($scope.vm.useValues === false) { + alert("�씠誘� �궗�슜以묒씤 �븘�뱶 �엯�땲�떎.") + } if (result.data.message.status === "success") { SweetAlert.success($filter("translate")("project.saveCompleteFieldManagement"), $filter("translate")("project.saveUserDefinedFieldAndIssueTypeConnection")); // "�븘�뱶 愿�由� ���옣 �셿猷�", "�궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 ���엯 �뿰寃� �젙蹂닿� ���옣�릺�뿀�뒿�땲�떎." diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js index 004e327..8be4e38 100644 --- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js +++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js @@ -31,6 +31,7 @@ $scope.fn.getUserList = getUserList; // �궗�슜�옄 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getProjectList = getProjectList; // �봽濡쒖젥�듃 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getIssueList = getIssueList; // �씪媛� 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getDownIssueList = getDownIssueList; // �븯�쐞 �씠�뒋 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getWorkflowList = getWorkflowList; // �썙�겕�뵆濡쒖슦 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getUserDepartmentList = getUserDepartmentList; // 遺��꽌 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getIssueCompanyFieldList = getIssueCompanyFieldList; // �뾽泥� 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. @@ -168,6 +169,48 @@ return deferred.promise; } + + function getDownIssueList(query, issueTypeId, excludeList, page, callBack) { + var conditions = { + name : query, + // issueTypeIds : (function () { + // var ids = []; + // + // ids.push(issueTypeId); + // + // return ids; + // })(), + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + Issue.find($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToIssueListLookUp"), result.data.message.message, "error"); // "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } + function getWorkflowList(query, excludeList, page, callBack) { var conditions = { name : query, diff --git a/src/main/webapp/views/issue/issueAddRelation.html b/src/main/webapp/views/issue/issueAddRelation.html index 6b0e512..066a49e 100644 --- a/src/main/webapp/views/issue/issueAddRelation.html +++ b/src/main/webapp/views/issue/issueAddRelation.html @@ -9,11 +9,11 @@ </div> <div class="modal-body"> - <form role="form" name="issueAddForm"> + <form role="form" name="issueAddRelationForm"> <div class="form-group mb10"> - <label for="issueAddForm1" class="issue-label"><span translate="issue.issueTitle">�씠�뒋 �젣紐�</span> <code + <label for="issueAddRelationForm1" class="issue-label"><span translate="issue.issueTitle">�씠�뒋 �젣紐�</span> <code class="highlighter-rouge">*</code></label> - <input id="issueAddForm1" + <input id="issueAddRelationForm1" class="form-control input-sm" ng-model="vm.form.title" name="title" @@ -24,10 +24,23 @@ autofocus owl-auto-focus> <small class="help-block form-text text-danger" - ng-if="issueAddForm.title.$touched && issueAddForm.title.$error.required" + ng-if="issueAddRelationForm.title.$touched && issueAddRelationForm.title.$error.required" translate="issue.requireIssueTitle">�씠�뒋 �젣紐⑹쓣 �엯�젰�븯�꽭�슂. </small> </div> + +<!-- <div class="form-group mb10 col-sm-4">--> +<!-- <label class="issue-label"><span class="highlighter-rouge">�뿰愿� �씠�뒋 援щ텇</span></label>--> +<!-- <select id="relationIssueType"--> +<!-- name="relationIssueType"--> +<!-- class="form-control input-sm"--> +<!-- ng-options="option.name for option in vm.relationIssueTypes track by option.id"--> +<!-- ng-model="vm.relationIssueType"--> +<!-- required>--> +<!-- </select>--> + +<!-- </div>--> + <div class="row"> <div class="col-lg-4"> <div class="form-group mb10"> @@ -49,10 +62,10 @@ <div class="row"> <div class="col-md-4"> <div class="form-group mb10"> - <label for="issueAddForm4" class="issue-label"> <span + <label for="issueAddRelationForm4" class="issue-label"> <span translate="issue.issueType">�씠�뒋 ���엯</span> <code class="highlighter-rouge">*</code></label> - <select id="issueAddForm4" + <select id="issueAddRelationForm4" name="issueType" class="form-control input-sm issue-select-label" ng-model="vm.form.issueTypeId" @@ -71,11 +84,11 @@ </div> <div class="col-md-4"> <div class="form-group mb10"> - <label for="issueAddForm2" class="issue-label"> + <label for="issueAddRelationForm2" class="issue-label"> <span translate="common.priority">�슦�꽑 �닚�쐞</span> <code class="highlighter-rouge">*</code> </label> - <select id="issueAddForm2" + <select id="issueAddRelationForm2" name="priority" class="form-control input-sm issue-select-label" ng-model="vm.form.priorityId" @@ -94,10 +107,10 @@ </div> <div class="col-md-4"> <div class="form-group mb10"> - <label for="issueAddForm3" class="issue-label"> <span + <label for="issueAddRelationForm3" class="issue-label"> <span translate="common.importance">以묒슂�룄</span> <code class="highlighter-rouge">*</code></label> - <select id="issueAddForm3" + <select id="issueAddRelationForm3" name="severity" class="form-control input-sm issue-select-label" ng-model="vm.form.severityId" @@ -141,8 +154,8 @@ <div class="col-lg-4"> <div class="form-group mb10"> - <label for="issueAddForm5" class="issue-label"> <span translate="common.period">湲곌컙</span></label> - <input id="issueAddForm5" + <label for="issueAddRelationForm5" class="issue-label"> <span translate="common.period">湲곌컙</span></label> + <input id="issueAddRelationForm5" tabindex="-1" type="text" readonly @@ -368,7 +381,7 @@ autocomplete="off" ng-model="vm.companyTel" maxlength="20"> - <div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.companyTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. </div> </div> @@ -385,7 +398,7 @@ ng-model="vm.companyEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> - <div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.companyEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> </div> @@ -474,7 +487,7 @@ autocomplete="off" ng-model="vm.ispTel" maxlength="20"> - <div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.ispTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. </div> </div> @@ -491,7 +504,7 @@ ng-model="vm.ispEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> - <div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.ispEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> </div> @@ -580,7 +593,7 @@ autocomplete="off" ng-model="vm.hostingTel" maxlength="20"> - <div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.hostingTel.$error.pattern" class="help-block form-text text-danger" translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. </div> </div> @@ -597,7 +610,7 @@ ng-model="vm.hostingEmail" kr-input ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"> - <div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger" + <div ng-show="issueAddRelationForm.hostingEmail.$error.pattern" class="help-block form-text text-danger" translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> </div> @@ -647,8 +660,8 @@ translate="common.cancel">痍⑥냼</span></button> <button type="button" class="btn btn-md btn-primary bold" js-short-cut - js-short-cut-action="(fn.formCheck(issueAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" - ng-disabled="fn.formCheck(issueAddForm.$invalid)" + js-short-cut-action="(fn.formCheck(issueAddRelationForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueAddRelationForm.$invalid)" ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> </button> </div> diff --git a/src/main/webapp/views/issue/issueAddTableConfig.html b/src/main/webapp/views/issue/issueAddTableConfig.html index 81506ba..9a2065f 100644 --- a/src/main/webapp/views/issue/issueAddTableConfig.html +++ b/src/main/webapp/views/issue/issueAddTableConfig.html @@ -28,14 +28,14 @@ </tr> </thead> <tbody> - <tr> - <td class="text-center"> - <span class="bold" translate="issue.issueTitle">�씠�뒋 �젣紐�</span> - </td> - <td class="text-center" colspan="3"> - <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">�씠�뒋 �젣紐⑹� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.</span> - </td> - </tr> +<!-- <tr>--> +<!-- <td class="text-center">--> +<!-- <span class="bold" translate="issue.issueTitle">�씠�뒋 �젣紐�</span>--> +<!-- </td>--> +<!-- <td class="text-center" colspan="3">--> +<!-- <span class="text-danger bold" translate="issue.cannotChangedIssueTitle">�씠�뒋 �젣紐⑹� 蹂�寃쏀븷 �닔 �뾾�뒿�땲�떎.</span>--> +<!-- </td>--> +<!-- </tr>--> <tr ng-repeat="issueTableConfig in vm.issueTableConfigs"> <td class="text-center"> <span class="bold">{{issueTableConfig.name}}</span> diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 32bddc0..4be49d0 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -524,7 +524,7 @@ <js-autocomplete-single data-input-name="issue" selected-model="vm.form.issuesDown" search="vm.issueNameDown" - source="fn.getIssueList(vm.issueNameDown, vm.issueTypeId, vm.form.issuesDown, vm.autoCompletePageDown.issue.page, fn.getIssueListCallBack)" + source="fn.getDownIssueList(vm.issueNameDown, vm.issueTypeId, vm.form.issuesDown, vm.autoCompletePageDown.issue.page, fn.getDownIssueListCallBack)" page="vm.autoCompletePageDown.issue.page" total-page="vm.autoCompletePageDown.issue.totalPage" input-disabled="false" -- Gitblit v1.8.0