From 6ee7dd9c3d8cc211ee5a01bbe481cabbb9c890eb Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 월, 22 11월 2021 12:42:31 +0900 Subject: [PATCH] 이슈 상세 연관,하위 테이블 표시 설정 - [프론트] --- src/main/webapp/scripts/app/issue/issueAdd.controller.js | 250 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 213 insertions(+), 37 deletions(-) diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js index 3345714..c08a3e0 100644 --- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js @@ -16,10 +16,13 @@ $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - // formCheck : formCheck, // �뤌 泥댄겕 + formCheck : formCheck, // �뤌 泥댄겕 getUserListCallBack : getUserListCallBack, // �떞�떦�옄 autocomplete �럹�씠吏� getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 autocomplete �럹�씠吏� - getCompanyFieldListCallBack : getCompanyFieldListCallBack, // �봽濡쒖젥�듃 autocomplete �럹�씠吏� + getIssueCompanyFieldListCallBack : getIssueCompanyFieldListCallBack, // �뾽泥댁젙蹂� autocomplete �럹�씠吏� + getIssueDepartmentListCallBack : getIssueDepartmentListCallBack, // �떞�떦�옄 -> �떞�떦遺��꽌 autocomplete �럹�씠吏� + getIssueIspFieldListCallBack : getIssueIspFieldListCallBack, // ISP�젙蹂� autocomplete �럹�씠吏� + getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack, // �샇�뒪�똿�젙蹂� autocomplete �럹�씠吏� getOptionColor : getOptionColor, // �슦�꽑�닚�쐞, 以묒슂�룄 �깋�긽�쑝濡� Select �깭洹� �쟻�슜 onFileSelect : onFileSelect, // �뙆�씪 泥⑤� infiniteAddForm : infiniteAddForm, // 怨꾩냽 �깮�꽦 @@ -30,9 +33,9 @@ getIssueTypeCustomFields : getIssueTypeCustomFields, // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 媛��졇�삤湲� removeUploadFile : removeUploadFile, // �뾽濡쒕뱶�븯�젮�뒗 �듅�젙 �뙆�씪�쓣 �궘�젣 removeManager : removeManager, // �떞�떦�옄 �궘�젣 + removeDepartment : removeDepartment, // �떞�떦遺��꽌 �궘�젣 setIssueTypeTemplate : setIssueTypeTemplate, // �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲� - startExecute : startExecute, // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 - companyImport : companyImport + startExecute : startExecute // 而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔 }; $scope.vm = { @@ -40,24 +43,44 @@ title : "", // �젣紐� description : "", // �궡�슜 projects : [], // �봽濡쒖젥�듃 - companyFields : [], + issueCompanyFields : [], // �뾽泥댁젙蹂� + issueIspFields : [], // ISP �젙蹂� + issueHostingFields : [], // �샇�뒪�똿�젙蹂� issueTypeId : "", // �씠�뒋 �쑀�삎 �븘�씠�뵒 priorityId : "", // �슦�꽑�닚�쐞 �븘�씠�뵒 severityId : "", // 以묒슂�룄 �븘�씠�뵒 users : [], // �떞�떦�옄 + departments : [], // �뵥�떦遺��꽌 files : [], // �뾽濡쒕뱶 �뙆�씪 attachedFiles : [], // �꽟癒몃끂�듃濡� �뙆�씪 �뾽濡쒕뱶瑜� �븷 寃쎌슦 �꽌踰꾩뿉�꽌 pk瑜� �뵲怨� issue id�� �뿰�룞 �옉�뾽�씠 �븘�슂�븯�떎. startCompleteDateRange : "", // �떆�옉�씪 ~ 醫낅즺�씪 + detectingDateRange : "", // �깘吏��씪 issueCustomFields : [] // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 }, infiniteAdd : false, // �뿰�냽 �깮�꽦 projectName : "", // �봽濡쒖젥�듃 紐� 寃��깋 - companyName : "", // �봽濡쒖젥�듃 紐� 寃��깋 userName : "", // �궗�슜�옄 寃��깋 - companyManager : "", //�떞�떦�옄 - companyTel : "", //�쟾�솕踰덊샇 - companyEmail : "", //�씠硫붿씪 - companyDesc : "", //鍮꾧퀬 + 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 :"", // �샇�뒪�똿 鍮꾧퀬 + autoCompletePage : { user : { page : 0, @@ -68,6 +91,18 @@ totalPage : 0 }, companyField : { + page : 0, + totalPage : 0 + }, + department : { + page : 0, + totalPage : 0 + }, + ispField : { + page : 0, + totalPage : 0 + }, + hostingField : { page : 0, totalPage : 0 } @@ -83,7 +118,6 @@ }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); - function getStartProjectListCallback(result){ // �봽濡쒖젥�듃 autocomplete page �뾽�뜲�씠�듃 @@ -104,15 +138,6 @@ $scope.fn.getIssueTypeCustomFields(); } }); - - function companyImport() { - $uibModal.open({ - templateUrl : 'views/issue/issueCompanyFieldDetail.html', - size : "mg", - controller : 'issueCompanyFieldDetailController', - backdrop : 'static', - }); - } // �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶 function imageUpload($files) { @@ -267,7 +292,12 @@ // �떞�떦�옄 �궘�젣 function removeManager(index) { - $scope.vm.form.users.splice(index, 1); + $scope.vm.form.departments.splice(index, 1); + } + + // �떞�떦遺��꽌 �궘�젣 + function removeDepartment(index) { + $scope.vm.form.departments.splice(index, 1); } // �뾽濡쒕뱶 �뙆�씪 �궘�젣 @@ -289,22 +319,66 @@ $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; } - function getCompanyFieldListCallBack(result) { - $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage; + // �뾽泥댁젙蹂� autocomplete page �뾽�뜲�씠�듃 + function getIssueCompanyFieldListCallBack(result) { + $scope.vm.autoCompletePage.companyField.totalPage = result.data.page.totalPage; } - // �뤌 泥댄겕 - // function formCheck(formInvalid) { - // if (formInvalid) { - // return true; - // } - // - // if ($scope.vm.form.projects.length < 1) { - // return true; - // } - // - // return false; - // } + // 遺��꽌�젙蹂� autocomplete page �뾽�뜲�씠�듃 + function getIssueDepartmentListCallBack(result) { + $scope.vm.autoCompletePage.department.totalPage = result.data.page.totalPage; + } + + // ISP�젙蹂� autocomplete page �뾽�뜲�씠�듃 + function getIssueIspFieldListCallBack(result) { + $scope.vm.autoCompletePage.ispField.totalPage = result.data.page.totalPage; + } + + // �샇�뒪�똿�젙蹂� autocomplete page �뾽�뜲�씠�듃 + function getIssueHostingFieldListCallBack(result) { + $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage; + } + + // �뤌 泥댄겕 + function formCheck(formInvalid) { + if (formInvalid) { + return true; + } + return false; + } + + // �뾽泥댁젙蹂� 寃곌낵 媛� Event 泥섎━(set) + $scope.$on("companyFieldEvent", function (event, result) { + $scope.vm.companyId = result[0].id; + $scope.vm.companyName = result[0].id; + $scope.vm.companyManager = result[0].manager; + $scope.vm.companyTel = result[0].tel; + $scope.vm.companyEmail = result[0].email; + $scope.vm.companyMemo = result[0].memo; + + }); + + // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set) + $scope.$on("ispFieldEvent", function (event, result) { + $scope.vm.ispId = result[0].id; + $scope.vm.ispName = result[0].name; + $scope.vm.ispCode = result[0].code; + $scope.vm.ispManager = result[0].manager; + $scope.vm.ispTel = result[0].tel; + $scope.vm.ispEmail = result[0].email; + $scope.vm.ispMemo = result[0].memo; + }); + + // �샇�뒪�똿�젙蹂� 寃곌낵 媛� Event 泥섎━(set) + $scope.$on("hostingFieldEvent", function (event, result) { + $scope.vm.hostingId = result[0].id; + $scope.vm.hostingName = result[0].name; + $scope.vm.hostingCode = result[0].code; + $scope.vm.hostingManager = result[0].manager; + $scope.vm.hostingTel = result[0].tel; + $scope.vm.hostingEmail = result[0].email; + $scope.vm.hostingMemo = result[0].memo; + }); // �뤌 �쟾�넚 function formSubmit() { @@ -313,6 +387,7 @@ var content = { title : $rootScope.preventXss($scope.vm.form.title), // �젣紐� description : $rootScope.preventXss($scope.vm.form.description), // �궡�슜 + projectId : (function () { // �봽濡쒖젥�듃 �븘�씠�뵒 var projectId = ""; @@ -322,9 +397,35 @@ return projectId; })(), + issueTypeId : $scope.vm.form.issueTypeId, // �씠�뒋 �쑀�삎 �븘�씠�뵒 priorityId : $scope.vm.form.priorityId, // �슦�꽑�닚�쐞 �븘�씠�뵒 severityId : $scope.vm.form.severityId, // 以묒슂�룄 �븘�씠�뵒 + + companyId : (function () { // �뾽泥� �븘�씠�뵒 + var companyId = -1; + if ($scope.vm.form.issueCompanyFields.length > 0) { + companyId = $scope.vm.form.issueCompanyFields[0].id; + } + return companyId; + })(), + + ispId : (function () { // ISP �븘�씠�뵒 + var ispId = -1; + if ($scope.vm.form.issueIspFields.length > 0) { + ispId = $scope.vm.form.issueIspFields[0].id; + } + return ispId; + })(), + + hostingId : (function () { // Hosting �븘�씠�뵒 + var hostingId = -1; + if ($scope.vm.form.issueHostingFields.length > 0) { + hostingId = $scope.vm.form.issueHostingFields[0].id; + } + return hostingId; + })(), + userIds : (function () { var userIds = []; @@ -334,6 +435,17 @@ return userIds; })(), + + departmentIds : (function () { + var departmentIds = []; + + angular.forEach($scope.vm.form.departments, function (department) { + departmentIds.push(department.id); + }); + + return departmentIds; + })(), + attachedFileIds : (function () { var attachedFileIds = []; @@ -345,7 +457,71 @@ return attachedFileIds; })(), + + issueCompanyFields : (function () { + var issueCompanyFields = []; + if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){ + var companyField = $scope.vm.form.issueCompanyFields[0]; + + issueCompanyFields.push({ + id : companyField.id, + companyId : $scope.vm.companyId, + name : $scope.vm.companyName, + manager : $scope.vm.companyManager, + tel : $scope.vm.companyTel, + email :$scope.vm.companyEmail, + memo : $scope.vm.companyMemo + }); + } + + return issueCompanyFields; + })(), + + issueIspFields : (function () { + var issueIspFields = []; + if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){ + var ispField = $scope.vm.form.issueIspFields[0]; + + issueIspFields[0] = { + id : ispField.id, + ispId : $scope.vm.ispId, + name : $scope.vm.ispName, + code : $scope.vm.ispCode, + manager : $scope.vm.ispManager, + tel : $scope.vm.ispTel, + email :$scope.vm.ispEmail, + memo : $scope.vm.ispMemo + }; + + } + + return issueIspFields; + })(), + + issueHostingFields : (function () { + var issueHostingFields = []; + if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){ + + var hostingField = $scope.vm.form.issueHostingFields[0]; + + issueHostingFields[0] = { + id : hostingField.id, + hostingId : $scope.vm.hostingId, + name : $scope.vm.hostingName, + code : $scope.vm.hostingCode, + manager : $scope.vm.hostingManager, + tel : $scope.vm.hostingTel, + email :$scope.vm.hostingEmail, + memo : $scope.vm.hostingMemo + }; + } + + return issueHostingFields; + })(), + startCompleteDateRange : $scope.vm.form.startCompleteDateRange, + detectingDateRange : $scope.vm.form.detectingDateRange, + issueCustomFields : (function () { // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶 var issueCustomFields = []; @@ -371,7 +547,6 @@ })() }; - Issue.add({ method : "POST", file : $scope.vm.form.files, @@ -389,7 +564,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"); } } @@ -566,6 +741,7 @@ // 理쒖큹 �떎�뻾 function startExecute() { + var promises = { getIssueTypes : $scope.fn.getIssueTypes(), getPriorities : $scope.fn.getPriorities(), -- Gitblit v1.8.0