From 4cef9a63afe347bcc007f2f18c21da69b346da64 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 금, 19 11월 2021 14:41:30 +0900 Subject: [PATCH] 이슈 상세 수정 -부서 [프론트] --- src/main/webapp/views/issue/issueModifyDepartment.html | 46 +++++ src/main/webapp/scripts/app/project/projectModify.controller.js | 2 src/main/webapp/scripts/app/issue/issue.js | 2 src/main/webapp/scripts/app/issue/issueModifyDepartment.controller.js | 133 ++++++++++++++ src/main/webapp/scripts/app/issue/issueDetail.controller.js | 21 ++ src/main/webapp/assets/styles/main.css | 16 + src/main/webapp/scripts/app/issue/issueAdd.controller.js | 11 src/main/webapp/views/issue/issueModifyUser.html | 24 +- src/main/webapp/views/project/projectModify.html | 2 src/main/webapp/scripts/components/issueDepartment/issueDepartment.service.js | 20 ++ src/main/webapp/i18n/ko/global.json | 28 ++- src/main/webapp/views/issue/issueDetail.html | 199 +++++++++++++++++++--- src/main/webapp/scripts/main.js | 3 13 files changed, 451 insertions(+), 56 deletions(-) diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css index 4a4c05a..1d10159 100644 --- a/src/main/webapp/assets/styles/main.css +++ b/src/main/webapp/assets/styles/main.css @@ -30207,4 +30207,20 @@ .country { margin-left: 3.25rem; } + +.h3-div { + font-size: 1.75rem; +} + +.info_font { + color: #000; + font-size: 1rem; + line-height: 1.5; + font-weight: 600; +} + +.email_color { + color:#0066ff; +} + /* 媛꾪듃李⑦듃 end */ diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index 97f6957..369b739 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -13,7 +13,7 @@ "processingRate": "泥섎━�쑉", "dailyAverage": "�씪 �룊洹�", "inProgressStatusOfProject": "吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴", - "progressProject": "吏꾪뻾 �봽濡쒖젥�듃", + "progressProject": "吏꾪뻾 �봽濡쒌뀋�젥�듃", "issueAll": "�쟾泥� �씠�뒋", "projectProgress": "�봽濡쒖젥�듃 吏꾪뻾瑜�", "admin": "愿�由ъ옄", @@ -158,6 +158,7 @@ "issueNumber": "�씠�뒋 踰덊샇", "issueContent": "�씠�뒋 �궡�슜", "issueTitle": "�씠�뒋 �젣紐�", + "issueInfo": "�씠�뒋 �젙蹂�", "relationIssue": "�뿰愿� �씠�뒋", "addRelationIssue": "�뿰愿� �씠�뒋 異붽�", "relationIssueTitle": "�뿰愿� �씠�뒋 �젣紐�", @@ -290,6 +291,7 @@ "relationIssueType5" : "�떎�쓬�뿉 吏꾪뻾�븷 �씠�뒋", "relationIssueType6" : "�떎�쓬 �씠�뒋瑜� �슦�꽑 吏꾪뻾", "updateIssueUser" : "�씠�뒋 �떞�떦�옄 蹂�寃�", + "updateIssueDepartment" : "�씠�뒋 �떞�떦遺��꽌 蹂�寃�", "normalList" : "�씠�뒋 紐⑸줉", "timeLine" : "���엫 �씪�씤", "useProjects" : "�궗�슜 �봽濡쒖젥�듃", @@ -769,6 +771,7 @@ "emptyUser": "�꽑�깮�븷 �닔 �엳�뒗 �궗�슜�옄媛� �뾾�뒿�땲�떎.", "emptyProject": "�꽑�깮�븷 �닔 �엳�뒗 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎.", "emptyDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎.", + "noDepartment": "�떞�떦遺��꽌媛� �뾾�뒿�땲�떎.", "emptyCompany": "�꽑�깮�븷 �닔 �엳�뒗 �뾽泥닿� �뾾�뒿�땲�떎.", "emptyIssue": "�꽑�깮�븷 �닔 �엳�뒗 �씠�뒋媛� �뾾�뒿�땲�떎.", "emptyIsp": "�꽑�깮�븷 �닔 �엳�뒗 ISP媛� �뾾�뒿�땲�떎.", @@ -815,9 +818,11 @@ "successToApiTokenAdd" : "API �넗�겙 �깮�꽦 �꽦怨�" }, "companyField" : { - "info": "�뾽泥� �젙蹂�", - "add" : "�뾽泥� �깮�꽦", - "name" : "�뾽泥� �씠由�", + "info": "�뾽泥댁젙蹂�", + "add" : "�뾽泥댁깮�꽦", + "name" : "�뾽泥댁씠由�", + "manager": "�떞�떦�옄", + "companyName" : "�뾽泥대챸", "company" : "�뾽泥� 遺꾨쪟", "profitYN" : "�쁺由�/鍮꾩쁺由�", "industry" : "�궛�뾽 遺꾨쪟", @@ -838,9 +843,10 @@ "invalidTelFormat": "�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂." }, "ispField" : { - "info": "ISP �젙蹂�", - "add" : "ISP �깮�꽦", - "name" : "ISP �씠由�", + "info": "ISP�젙蹂�", + "add" : "ISP�깮�꽦", + "name" : "ISP�씠由�", + "ispName" : "ISP紐�", "manager" : "�떞�떦�옄", "tel" : "�쟾�솕踰덊샇", "code" : "肄붾뱶", @@ -856,9 +862,11 @@ "invalidCodeFormat": "肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎." }, "hostingField" : { - "info": "�샇�뒪�똿 �젙蹂�", - "add" : "�샇�뒪�똿 �깮�꽦", - "name" : "�샇�뒪�똿 �씠由�", + "info": "�샇�뒪�똿�젙蹂�", + "add" : "�샇�뒪�똿�깮�꽦", + "name" : "�샇�뒪�똿�씠由�", + "manager" : "�샇�뒪�똿�씠由�", + "hostingName" : "�샇�뒪�똿紐�", "manager" : "�떞�떦�옄", "tel" : "�쟾�솕踰덊샇", "code" : "肄붾뱶", diff --git a/src/main/webapp/scripts/app/issue/issue.js b/src/main/webapp/scripts/app/issue/issue.js index 7725198..cf9e407 100644 --- a/src/main/webapp/scripts/app/issue/issue.js +++ b/src/main/webapp/scripts/app/issue/issue.js @@ -35,7 +35,7 @@ require([ 'issueListTimelineController', 'issueManagerController', 'issueListController', 'issueAddController', 'issueModifyController', 'issueDetailController', 'issueImportExcelController', 'chartLoader', 'jsTable', 'tableColumnGenerator', 'modalFormAutoScroll', 'summerNote', 'summerNote-ko-KR', 'fullScroll', 'workflowService', 'priorityService', 'issueSearchService', 'issueTableConfigService', 'inputRegex', - 'severityService', 'issueTypeService', 'issueTypeCustomFieldService', 'issueService', 'issueStatusService', 'issueUserService', 'issueModifyUserController', 'customFieldService', 'issueSearchFieldKeyViewElement', + 'severityService', 'issueTypeService', 'issueTypeCustomFieldService', 'issueService', 'issueStatusService', 'issueUserService','issueDepartmentService','issueModifyUserController', 'issueModifyDepartmentController', 'customFieldService', 'issueSearchFieldKeyViewElement', 'issueSearchCustomFieldViewElement', 'tableUserImage', 'fullScroll', 'issueCommentService', 'detectIssueEditor', 'formSubmit', 'issueModifyStatusController', 'jsShortCut', 'issueAddTableConfigController', 'domAppend', 'issueDetailImagePreview', 'issueSendMailController', 'htmlDiff', 'issueVersionViewController', 'issueVersionService', 'jsHtmlDiff', 'issueReservationController', 'issueReservationService', 'issueVersionService', 'issueStatusAutoFocus', 'issueRelationService' diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js index 53dd6bb..53ef440 100644 --- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js @@ -60,25 +60,26 @@ projectName : "", // �봽濡쒖젥�듃 紐� 寃��깋 userName : "", // �궗�슜�옄 寃��깋 departmentName : "", // 遺��꽌紐� 寃��깋 + companyId : -1, // 遺��꽌 ID companyName : "", // �뾽泥대챸 寃��깋 companyManager : "", // �뾽泥� �떞�떦�옄 companyTel : "", // �뾽泥� �쟾�솕踰덊샇 companyEmail : "", // �뾽泥� �씠硫붿씪 companyMemo : "", // �뾽泥� 鍮꾧퀬 + ispId : -1, // ISP ID ispName : "", // ISP 紐� ispCode : "", // ISP 肄붾뱶 ispManager : "", // ISP �떞�떦�옄 ispTel : "", // ISP �쟾�솕踰덊샇 ispEmail : "", // ISP �씠硫붿씪 ispMemo : "", // ISP 鍮꾧퀬 + hostingId : -1, // �샇�뒪�똿 ID hostingName : "", // �샇�뒪�똿紐� 寃��깋 hostingManager : "", // �샇�뒪�똿 �떞�떦�옄 hostingTel : "", // �샇�뒪�똿 �쟾�솕踰덊샇 hostingEmail : "", // �샇�뒪�똿 �씠硫붿씪 - hostingMemo : "", // �샇�뒪�똿 鍮꾧퀬 - companyId : -1, - ispId : -1, - hostingId : -1, + hostingMemo :"", // �샇�뒪�똿 鍮꾧퀬 + autoCompletePage : { user : { page : 0, @@ -551,7 +552,7 @@ else { $scope.fn.cancel(); - if ($state.current.name !== "issues.list") { + if ($state.current.name !== "issues.list" || $state.current.name === "issues.list") { $state.go("issues.list"); } } diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index 1eee581..32157d2 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -26,6 +26,7 @@ $scope.fn.getChangeIssueStatusList = getChangeIssueStatusList; // �씠�뒋�쓽 �쁽�옱 �긽�깭�뿉�꽌 蹂�寃� 媛��뒫�븳 �씠�뒋 �깄�깭 紐⑸줉 媛��졇�삤湲� $scope.fn.modifyIssueStatus = modifyIssueStatus; // �씠�뒋 �긽�깭 蹂�寃� $scope.fn.modifyIssueUser = modifyIssueUser; // �씠�뒋 �떞�떦�옄 蹂�寃� + $scope.fn.modifyIssueDepartment = modifyIssueDepartment; // �씠�뒋 �떞�떦遺��꽌 蹂�寃� $scope.fn.initReload = initReload; // 珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎. $scope.fn.sendMail = sendMail; // �듅�젙 �궗�슜�옄�뿉寃� �씠�뒋 �젙蹂대�� 硫붿씪濡� 諛쒖넚 $scope.fn.versionView = versionView; // 踰꾩쟾 �젙蹂대�� �몴�떆�븳�떎. @@ -363,6 +364,26 @@ }); } + // �떞�떦遺��꽌 蹂�寃� + function modifyIssueDepartment() { + $uibModal.open({ + templateUrl : 'views/issue/issueModifyDepartment.html', + size : "md", + controller : 'issueModifyDepartmentController', + backdrop : 'static', + resolve : { + parameter : function () { + return { + departmentVos : [$scope.vm.form.issues[0].departmentVos], + id : [$scope.vm.form.issues[0].id], + projectId : [$scope.vm.form.issues[0].projectVo.id], + project : [$scope.vm.form.issues[0].projectVo] + }; + } + } + }); + } + // 蹂�寃� 媛��뒫�븳 �씠�뒋 �긽�깭 紐⑸줉�쓣 議고쉶�븯怨� �닔�젙 紐⑤뱶濡� �솕硫댁쓣 蹂�寃쏀븳�떎. function getChangeIssueStatusList(checkPermission) { // �닔�젙 沅뚰븳�씠 �뾾�쑝硫� �씠�뒋 �긽�깭 蹂�寃� 遺덇� diff --git a/src/main/webapp/scripts/app/issue/issueModifyDepartment.controller.js b/src/main/webapp/scripts/app/issue/issueModifyDepartment.controller.js new file mode 100644 index 0000000..55fcf76 --- /dev/null +++ b/src/main/webapp/scripts/app/issue/issueModifyDepartment.controller.js @@ -0,0 +1,133 @@ +/** + * Created by Maprex on 2021-06-08 + */ +'use strict'; + +define([ + 'app', + 'angular' + ], + function (app, angular) { + app.controller('issueModifyDepartmentController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance','$injector', '$controller', 'SweetAlert', '$timeout', '$stateParams', '$q', 'parameter', + 'IssueDepartment', '$filter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, SweetAlert, $timeout, $stateParams, $q, parameter, IssueDepartment, $filter) { + + // �븿�닔 紐⑥쓬 + $scope.fn = { + cancel: cancel, // �뙘�뾽 李� �떕湲� + formSubmit: formSubmit, // �뤌 �쟾�넚 + formCheck: formCheck, // �뤌 泥댄겕 + removeManager : removeManager, // �떞�떦�옄 �궘�젣 + load : load, // �쁽�옱 �떞�떦�옄 媛��졇�삤湲� + startExecute : startExecute // �떆�옉�떆 �떎�뻾 + }; + + // 蹂��닔 紐⑥쓬 + $scope.vm = { + form : { + departments : [], // �떞�떦遺��꽌 + projects : [] + }, + departmentName : "", // 遺��꽌 寃��깋 + autoCompletePage : { + department : { + page : 0, + totalPage : 0 + } + }, + }; + + angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + + // �떞�떦遺��꽌 �궘�젣 + function removeManager(index) { + $scope.vm.form.departments.splice(index, 1); + } + + // �떞�떦遺��꽌 autocomplete page �뾽�뜲�씠�듃�듃 + function getDepartmentListCallBack(result) { + $scope.vm.autoCompletePage.department.totalPage = result.data.page.totalPage; + } + + // �뤌 �쟾�넚 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + + return false; + } + + // �뤌 �쟾�넚 + function formSubmit() { + $rootScope.spinner = true; + + var content = { + id : parameter.id[0], + projectId : parameter.projectId[0], + departmentIds : (function () { + var departmentIds = []; + + angular.forEach($scope.vm.form.departments, function (department) { + departmentIds.push(department.id); + }); + + return departmentIds; + })(), + }; + + IssueDepartment.modify($resourceProvider.getContent(content, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $scope.fn.cancel(); + + $rootScope.$broadcast("getIssueList", {}); + + if ($rootScope.isDefined($rootScope.currentDetailIssueId)) { + $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); + } + } else { + SweetAlert.error($filter("translate")("issue.failedToChangeMultipleIssueStatus"), result.data.message.message); // �떎以� �씠�뒋 �긽�깭 蹂�寃� �떎�뙣 + } + + $rootScope.spinner = false; + }); + } + + + // �뙘�뾽 李� �떕湲� + function cancel() { + $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 + $uibModalInstance.dismiss('cancel'); + $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� + } + + // 理쒖큹 �떎�뻾 + function startExecute() { + var promises = { + users : $scope.fn.load() + }; + + $q.all(promises).then(function (results) { + $log.debug("promises 寃곌낵 ", results); + }); + } + + function load() { + $scope.vm.form.projects = []; + $scope.vm.form.projects.push(parameter.project[0]); + + var departmentVos = parameter.departmentVos[0]; + + if (departmentVos.length > 0 && departmentVos[0] != undefined) { + $scope.vm.form.departments = departmentVos; + } else { + $scope.vm.form.departments = []; + } + } + + $scope.fn.startExecute(); + + }]); + }); diff --git a/src/main/webapp/scripts/app/project/projectModify.controller.js b/src/main/webapp/scripts/app/project/projectModify.controller.js index 0342053..d0f6edf 100644 --- a/src/main/webapp/scripts/app/project/projectModify.controller.js +++ b/src/main/webapp/scripts/app/project/projectModify.controller.js @@ -38,10 +38,12 @@ description : "", managers : [], // 愿�由ъ옄 users : [], // �씪諛� �궗�슜�옄 + departments : [], // 遺��꽌 startEndDateRange : "" }, managerName : "", // 愿�由ъ옄 �씠由� 寃��깋 userName : "", // �씪諛� �궗�슜�옄 �씠由� 寃��깋 + departmentName : "", // 遺��꽌 �씠由� 寃��깋 projectName : "", // �긽�쐞 �봽濡쒖젥�듃 �씠由� 寃��깋 autoCompletePage : { manager : { diff --git a/src/main/webapp/scripts/components/issueDepartment/issueDepartment.service.js b/src/main/webapp/scripts/components/issueDepartment/issueDepartment.service.js new file mode 100644 index 0000000..16459bd --- /dev/null +++ b/src/main/webapp/scripts/components/issueDepartment/issueDepartment.service.js @@ -0,0 +1,20 @@ +/** + * Created by maprex on 2021-06-08 + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("IssueDepartment", ['$http', '$log', function ($http, $log) { + return { + modify : function (conditions) { + return $http.post("issueDepartment/modify", conditions).then(function (response) { + $log.debug("�씠�뒋 �떞�떦遺��꽌 �닔�젙 寃곌낵 : ", response); + return response; + }); + } + } + } + ]); +}); diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js index 2c46176..a5116c5 100644 --- a/src/main/webapp/scripts/main.js +++ b/src/main/webapp/scripts/main.js @@ -187,11 +187,13 @@ 'issueVersionViewController' : 'app/issue/issueVersionView.controller', // �씠�뒋 踰꾩쟾 �솗�씤 而⑦듃濡ㅻ윭 'issueReservationController' : 'app/issue/issueReservation.controller', // �씠�뒋 諛쒖깮 �삁�빟 而⑦듃濡ㅻ윭 'issueModifyUserController' : 'app/issue/issueModifyUser.controller', // �씠�뒋 �떞�떦�옄 而⑦듃濡ㅻ윭 + 'issueModifyDepartmentController' : 'app/issue/issueModifyDepartment.controller', // �씠�뒋 �떞�떦遺��꽌 而⑦듃濡ㅻ윭 'issueService' : 'components/issue/issue.service', // �씠�뒋�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. 'issueVersionService' : 'components/issueVersion/issueVersion.service', // �씠�뒋 踰꾩쟾�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. 'issueReservationService' : 'components/issueReservation/issueReservation.service', // �씠�뒋 諛쒖깮 �삁�빟�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. 'issueRelationService' : 'components/issueRelation/issueRelation.service', // 愿��젴 �씠�뒋�뿉 愿��젴�맂 �넻�떊�쓣 �떞�떦�븳�떎. 'issueUserService' : 'components/issueUser/issueUser.service', // �씠�뒋 �떞�떦�옄 愿��젴 �넻�떊�쓣 �떞�떦�븳�떎. + 'issueDepartmentService' : 'components/issueDepartment/issueDepartment.service', // �씠�뒋 �떞�떦�옄 愿��젴 �넻�떊�쓣 �떞�떦�븳�떎. /* �븷�씪 愿��젴 */ @@ -503,6 +505,7 @@ 'summerNote-ja-JP', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 'summerNote-vi-VN', // �씠�뒋 留뚮뱾湲곗뿉�꽌 �궗�슜 'issueUserService', + 'issueDepartmentService', 'jsShortCut', 'languageService', 'principalService', diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index e1cd779..6366d1f 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -86,18 +86,18 @@ <!-- �긽�꽭 �솕硫� --> <div class="support-ticket-content-w" ng-controller="issueDetailController"> <div class="support-ticket-content"> - <div class="support-ticket-content-header issue-detail-word-break"> - <h3 class="ticket-header"> + <div class="support-ticket-content-header issue-detail-word-break" style="height: 8vh"> + <span class="ticket-header"> <div class="tasks-header-w"> <span class="tags"> <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span> </span> </div> - {{vm.viewer.title}} - </h3> + <span class="h3-div">{{vm.viewer.title}}</span> + </span> <div class="col-sm-2"> - <div class="form-group"> - <label class="issue-detail-label"><span translate="issue.issueType">�씠�뒋 ���엯</span> </label> + <div class="form-group ml-4"> + <label class="issue-detail-label"><span translate="issue.issueType">�씠�뒋 �쑀�삎</span> </label> <span class="status-pill smaller" ng-style="{'background-color': vm.viewer.issueTypeVo.color }"></span><span>{{vm.viewer.issueTypeVo.name}}</span> </div> @@ -116,7 +116,6 @@ </span> </div> - <a class="show-ticket-info cursor"> <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 蹂�寃� �씠�젰 �긽�꽭 蹂닿린"></i> @@ -130,7 +129,7 @@ <div class="ticket-thread"> <div class="todo-content"> - <h6 class="todo-content-subheader mt-20" translate="common.detailInformation">�긽�꽭 �젙蹂�</h6> + <h6 class="todo-content-subheader" translate="issue.issueInfo">�씠�뒋 �젙蹂�</h6> <div class="row mt-20"> <div class="col-md-4"> <div class="form-group"> @@ -140,14 +139,13 @@ <label class="issue-detail-label"><span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label> <div class=""> <div class="select3-selection__choicediv"> - <span class="select3-selection__choice" ng-repeat="user in vm.viewer.userVos"> - <span class="avatar-w"><img ng-src="{{::user.profile}}"></span> - <span>{{::user.byName}}</span> + <span class="select3-selection__choice" ng-repeat="department in vm.viewer.departmentVos"> + <span>{{::department.byName}}</span> </span> - <span ng-if="vm.viewer.userVos.length < 1" translate="common.noAssignee">�떞�떦�옄媛� �뾾�뒿�땲�떎.</span> + <span ng-if="vm.viewer.departmentVos.length < 1" translate="common.noDepartment">�떞�떦遺��꽌媛� �뾾�뒿�땲�떎.</span> <i class="fa fa-edit fa-2x issue-status-edit cursor" - ng-click="fn.modifyIssueUser()" data-toggle="tooltip" data-placement="right" title="�떞�떦�옄 蹂�寃� �븯湲�"></i> + ng-click="fn.modifyIssueDepartment()" data-toggle="tooltip" data-placement="right" title="�떞�떦�옄 蹂�寃� �븯湲�"></i> </div> </div> @@ -195,7 +193,7 @@ <div class="row"> <div class="col-md-4"> <div class="form-group"> - <label class="issue-detail-label"><span translate="common.detectingInfo">�깘吏��젙蹂�</span> </label> + <h6 class="info_font" translate="common.detectingInfo">�깘吏��젙蹂�</h6> <div class=""> <label class="issue-detail-label"><span translate="common.diffuserURL">�쑀�룷�옄URL</span> </label> <label class="issue-detail-label offset-2"><span translate="common.country">援�媛�</span></label> @@ -206,36 +204,183 @@ <!-- <span ng-if="vm.viewer.userVos.length < 1" translate="common.noAssignee">�떞�떦�옄媛� �뾾�뒿�땲�떎.</span>--> </div> </div> - + </div> + </div> + <hr> +<!-- <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span>--> + <div class="row"> + <div class="col-sm-2"> + <div class="form-group"> + <h6 class="info_font" translate="companyField.info">�뾽泥댁젙蹂�</h6> + <button style="display: inline">1111</button> + </div> </div> </div> <div class="row"> - <div class="col-md-4"> + <div class="col-sm-2"> <div class="form-group"> - <label class="issue-detail-label"><span translate="common.registrationDate">�벑濡앹씪</span> - </label> + <span translate="companyField.companyName">�뾽泥대챸</span>: + <span>{{vm.viewer.issueCompanyVos[0].name}}</span> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> <div class=""> - {{vm.viewer.registerDate}} + <span translate="companyField.manager">�떞�떦�옄</span>: + <span>{{vm.viewer.issueCompanyVos[0].manager}}</span> </div> </div> </div> - <div class="col-md-4"> + <div class="col-sm-2"> <div class="form-group"> - <label class="issue-detail-label"><span translate="common.register">�벑濡앹옄</span></label> <div class=""> - <div class="select3-selection__choicediv"> - <span class="select3-selection__choice"> - <span class="avatar-w"><img ng-src="{{vm.viewer.registerVo.profile}}"></span> - <span>{{vm.viewer.registerVo.byName}}</span> - </span> - </div> + <span translate="companyField.tel">�쟾�솕踰덊샇</span>: + <span>{{vm.viewer.issueCompanyVos[0].tel}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="companyField.email">�씠硫붿씪</span>: + <span class="email_color">{{vm.viewer.issueCompanyVos[0].email}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="companyField.memo">鍮꾧퀬</span>: + <span>{{vm.viewer.issueCompanyVos[0].memo}}</span> </div> </div> </div> </div> + <div class="row"> + <div class="col-sm-2"> + <div class="form-group"> + <h6 class="info_font" translate="ispField.info">ISP�젙蹂�</h6> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-2"> + <div class="form-group"> + <span translate="ispField.ispName">ISP紐�</span>: + <span>{{vm.viewer.issueIspVos[0].name}}</span> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <span translate="ispField.code">肄붾뱶</span>: + <span>{{vm.viewer.issueIspVos[0].code}}</span> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="ispField.manager">�떞�떦�옄</span>: + <span>{{vm.viewer.issueIspVos[0].manager}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="ispField.tel">�쟾�솕踰덊샇</span>: + <span>{{vm.viewer.issueIspVos[0].tel}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="ispField.email">�씠硫붿씪</span>: + <span class="email_color">{{vm.viewer.issueIspVos[0].email}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="ispField.memo">鍮꾧퀬</span>: + <span>{{vm.viewer.issueIspVos[0].memo}}</span> + </div> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-2"> + <div class="form-group"> + <h6 class="info_font" translate="hostingField.info">�샇�뒪�똿�젙蹂�</h6> + </div> + </div> + </div> + + <div class="row"> + <div class="col-sm-2"> + <div class="form-group"> + <span translate="hostingField.hostingName">�샇�뒪�똿紐�</span>: + <span>{{vm.viewer.issueHostingVos[0].name}}</span> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <span translate="hostingField.code">肄붾뱶</span>: + <span>{{vm.viewer.issueHostingVos[0].code}}</span> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="hostingField.manager">�떞�떦�옄</span>: + <span>{{vm.viewer.issueHostingVos[0].manager}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="hostingField.tel">�쟾�솕踰덊샇</span>: + <span>{{vm.viewer.issueHostingVos[0].tel}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="hostingField.email">�씠硫붿씪</span>: + <span class="email_color">{{vm.viewer.issueHostingVos[0].email}}</span> + </div> + </div> + </div> + + <div class="col-sm-2"> + <div class="form-group"> + <div class=""> + <span translate="hostingField.memo">鍮꾧퀬</span>: + <span>{{vm.viewer.issueHostingVos[0].memo}}</span> + </div> + </div> + </div> + </div> <div class="row"> diff --git a/src/main/webapp/views/issue/issueModifyDepartment.html b/src/main/webapp/views/issue/issueModifyDepartment.html new file mode 100644 index 0000000..166f3e4 --- /dev/null +++ b/src/main/webapp/views/issue/issueModifyDepartment.html @@ -0,0 +1,46 @@ +<div class="formModal"> + <div class="modal-header faded smaller"> + <div class="modal-title"> + <strong translate="issue.updateIssueDepartment">�씠�뒋 �떞�떦遺��꽌 蹂�寃�</strong> + </div> + <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> + <span aria-hidden="true"> ×</span> + </button> + </div> + + <div class="modal-body"> + <form role="form" name="issueDepartmentModifyForm"> + <div class="form-group"> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label> + <js-autocomplete-multi data-input-name="departments" + selected-model="vm.form.departments" + search="vm.departmentName" + source="fn.getUserDepartmentList(vm.departmentName, vm.form.departments)" + input-disabled="false" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi> + + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> + <span>{{department.byName}}</span> <!--�궗�슜�옄媛� �냽�빐 �엳�뒗 遺��꽌 �씠由� 異쒕젰--> + <span class="select3-selection__choice__remove" ng-click="fn.removeDepartments($index)">횞</span> + </span> + </div> + </div> + </div> + </form> + </div> + + <div class="modal-footer buttons-on-right"> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueMultiStatusModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueMultiStatusModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> + </div> +</div> diff --git a/src/main/webapp/views/issue/issueModifyUser.html b/src/main/webapp/views/issue/issueModifyUser.html index 886bc2f..6ac4acf 100644 --- a/src/main/webapp/views/issue/issueModifyUser.html +++ b/src/main/webapp/views/issue/issueModifyUser.html @@ -12,23 +12,23 @@ <form role="form" name="issueUserModifyForm"> <div class="form-group"> <div class="form-group mgb5"> - <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label> - <js-input-autocomplete data-input-name="departments" - selected-model="vm.form.departments" - search="vm.departmentName" - page="vm.autoCompletePage.department.page" - total-page="vm.autoCompletePage.department.totalPage" - source="fn.getDepartmentList(vm.departmentName, vm.form.departments, vm.autoCompletePage.department.page, fn.getDepartmentListCallBack)" - input-disabled="vm.form.departments.length == 0" + <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label> + <js-input-autocomplete data-input-name="users" + selected-model="vm.form.users" + search="vm.userName" + page="vm.autoCompletePage.user.page" + total-page="vm.autoCompletePage.user.totalPage" + source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" + input-disabled="vm.form.users.length == 0" translation-texts="{ empty : 'common.emptyDepartment'}" extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', - type : 'department', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> <div class="select3-selection__choicediv"> - <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> + <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> <span class="avatar-w"></span> - <!-- <img ng-src="{{department.profile}}">--> - <span>{{department.name}}({{department.id}})</span> + <img ng-src="{{department.profile}}"> + <span>{{user.name}}({{user.id}})</span> <span class="select3-selection__choice__remove" ng-click="fn.removeManager($index)">횞</span> </span> diff --git a/src/main/webapp/views/project/projectModify.html b/src/main/webapp/views/project/projectModify.html index ec7058a..7ae0c04 100644 --- a/src/main/webapp/views/project/projectModify.html +++ b/src/main/webapp/views/project/projectModify.html @@ -107,7 +107,7 @@ <div class="form-group"> <label><span translate="project.projectDepartment">�봽濡쒖젥�듃 遺��꽌</span> </label> - <js-autocomplete-multi data-input-name="users" + <js-autocomplete-multi data-input-name="departments" selected-model="vm.form.users" search="vm.userName" source="fn.getUserList(vm.userName, vm.form.users.concat(vm.form.managers))" -- Gitblit v1.8.0