From add0cdefd56c50c5427945c895574f71202e7ed6 Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 수, 16 3월 2022 18:12:51 +0900 Subject: [PATCH] - api로 이슈 추가 시 사용자정의필드 타입으로 체크 => 정규식표현검사로 체크로 변경 --- src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js | 404 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 389 insertions(+), 15 deletions(-) diff --git a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js index 41c6544..5465d18 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js @@ -7,15 +7,26 @@ 'app' ], function (app) { - app.controller('companyFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'CompanyField', '$filter', '$injector','$controller', - function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, CompanyField, $filter, $injector, $controller) { + app.controller('companyFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'CompanyField', 'CompanyFieldCategory', '$filter', '$injector','$controller', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, CompanyField, CompanyFieldCategory, $filter, $injector, $controller) { $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 formCheck : formCheck, // �뤌 泥댄겕 getIssueIspFieldListCallBack : getIssueIspFieldListCallBack, - getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack + getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack, + getCompanyTypeListCallBack : getCompanyTypeListCallBack, + getParentSectorListCallBack : getParentSectorListCallBack, + getChildSectorListCallBack : getChildSectorListCallBack, + getRegionListCallBack : getRegionListCallBack, + getStatusListCallBack : getStatusListCallBack, + addTel : addTel, + addMail : addMail, + addIpRange : addIpRange, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput, + removeIpRangeInput : removeIpRangeInput }; $scope.vm = { @@ -29,7 +40,34 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //鍮꾧퀬 + ipStart : "", //ip�떆�옉二쇱냼 + ipEnd : "", //ip醫낅즺二쇱냼 + memo : "", //鍮꾧퀬 + companyTypeId : "", + companyType : "", //湲곗뾽援щ텇 + parentSectorId : "", + parentSector : "", //�뾽醫�(��遺꾨쪟) + childSectorId : "", + childSector : "", //�뾽醫�(以묐텇瑜�) + regionId : "", + region : "", //吏��뿭 + statusId : "", + status : "", //�긽�깭 + inputTels : [0], //�뿰�씫泥� + tels : [], + inputMails : [0], //�씠硫붿씪 + emails : [], + inputIpStarts : [0], //ip �떆�옉�젏 + ipStarts : [], + inputIpEnds : [0], //ip 醫낅즺�젏 + ipEnds : [] + }, + typeCategory : { + companyType : "COMPANYTYPE", + parentSector : "PARENTSECTOR", + childSector : "CHILDSECTOR", + region : "REGION", + status : "STATUS" }, autoCompletePage : { ispField : { @@ -37,6 +75,26 @@ totalPage : 0 }, hostingField : { + page : 0, + totalPage : 0 + }, + companyType : { + page : 0, + totalPage : 0 + }, + parentSector : { + page : 0, + totalPage : 0 + }, + childSector : { + page : 0, + totalPage : 0 + }, + region : { + page : 0, + totalPage : 0 + }, + status : { page : 0, totalPage : 0 } @@ -56,6 +114,40 @@ $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage; } + // 湲곗뾽援щ텇 autocomplete page �뾽�뜲�씠�듃 + function getCompanyTypeListCallBack(result) { + $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage; + } + + // �뾽醫�(��遺꾨쪟) autocomplete page �뾽�뜲�씠�듃 + function getParentSectorListCallBack(result, value) { + if (value === "") { + $scope.vm.form.parentSectorId = ""; + if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) { + $scope.vm.form.parentSectors[0].id = ""; + } + $scope.vm.form.childSectorId = ""; + $scope.vm.form.childSector = ""; + $scope.vm.form.childSectors = []; + } + $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage; + } + + // �뾽醫�(以묐텇瑜�) 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getChildSectorListCallBack(result) { + $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage; + } + + // 吏��뿭 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getRegionListCallBack(result) { + $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage; + } + + // �긽�깭 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getStatusListCallBack(result) { + $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage; + } + // �뤌 泥댄겕 function formCheck(formInvalid) { if (formInvalid) { @@ -65,11 +157,49 @@ } $scope.$on("ispFieldEvent", function (event, result) { - $scope.vm.form.ispId = result[0].id; + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.ispId = result[0].id; + } }); $scope.$on("hostingFieldEvent", function (event, result) { - $scope.vm.form.hostingId = result[0].id; + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.hostingId = result[0].id; + } + }); + + $scope.$on("companyTypeEvent", function (event, result) { + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.companyTypeId = result[0].id; + } + }); + $scope.$on("parentSectorEvent", function (event, result) { + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.parentSectorId = result[0].id; + } else { + $scope.vm.form.parentSectorId = ""; + if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) { + $scope.vm.form.parentSectors[0].id = ""; + } + } + $scope.vm.form.childSectorId = ""; + $scope.vm.form.childSector = ""; + $scope.vm.form.childSectors = []; + }); + $scope.$on("childSectorEvent", function (event, result) { + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.childSectorId = result[0].id; + } + }); + $scope.$on("regionEvent", function (event, result) { + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.regionId = result[0].id; + } + }); + $scope.$on("statusEvent", function (event, result) { + if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) { + $scope.vm.form.statusId = result[0].id; + } }); // �뤌 �쟾�넚 @@ -79,26 +209,135 @@ var content = { name : $rootScope.preventXss($scope.vm.form.name), // �뾽泥대챸 ispId : (function () { // ISP �븘�씠�뵒 - var ispId = -1; + var ispId = null; if ($scope.vm.form.issueIspFields != null) { ispId = $scope.vm.form.ispId; } return ispId; })(), hostingId : (function () { // Hosting �븘�씠�뵒 - var hostingId = -1; + var hostingId = null; if ($scope.vm.form.issueHostingFields != null) { hostingId = $scope.vm.form.hostingId; } return hostingId; })(), manager : $scope.vm.form.manager, //�떞�떦�옄 - tel : $scope.vm.form.tel, //�쟾�솕踰덊샇 - email : $scope.vm.form.email, //�씠硫붿씪 - url : $scope.vm.form.url, // url - memo : $scope.vm.form.memo //鍮꾧퀬 + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), + url : (function () { + // 紐⑤뱺 怨듬갚 �젣嫄� + var regex = / /gi; + let url = $scope.vm.form.url; + if ($rootScope.isDefined(url) && url.indexOf(" ") !== -1) { + url = url.replace(regex, ""); + } + return url; + })(), + ipStarts : (function () { + var ipStarts = []; + if ($scope.vm.form.ipStarts != null) { + angular.forEach($scope.vm.form.ipStarts, function (ipS) { + ipStarts.push(ipS); + }); + ipStarts = ipStarts.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + } + return ipStarts; + })(), + ipEnds : (function () { + var ipEnds = []; + if ($scope.vm.form.ipEnds != null) { + angular.forEach($scope.vm.form.ipEnds, function (ipE) { + ipEnds.push(ipE); + }); + ipEnds = ipEnds.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + } + return ipEnds; + })(), + memo : $scope.vm.form.memo, //鍮꾧퀬 + companyTypeId : (function () { + var companyTypeId = null; + if ($scope.vm.form.companyTypes != null && $scope.vm.form.companyTypes.length > 0) { + companyTypeId = $scope.vm.form.companyTypes[0].id; + } + return companyTypeId; + })(), + parentSectorId : (function () { + var parentSectorId = null; + if ($scope.vm.form.parentSectors != null && $scope.vm.form.parentSectors.length > 0) { + parentSectorId = $scope.vm.form.parentSectors[0].id; + } + return parentSectorId; + })(), + childSectorId : (function () { + var childSectorId = null; + if ($scope.vm.form.childSectors != null && $scope.vm.form.childSectors.length > 0) { + childSectorId = $scope.vm.form.childSectors[0].id; + } + return childSectorId; + })(), + regionId : (function () { + var regionId = null; + if ($scope.vm.form.regions != null && $scope.vm.form.regions.length > 0) { + regionId = $scope.vm.form.regions[0].id; + } + return regionId; + })(), + statusId : (function () { + var statusId = null; + if ($scope.vm.form.statuses != null && $scope.vm.form.statuses.length > 0) { + statusId = $scope.vm.form.statuses[0].id; + } else if ($scope.vm.form.status !== ""){ + statusId = 120; //吏곸젒�엯�젰 �씪 寃쎌슦 + } + return statusId; + })(), + statusName : $scope.vm.form.status }; + // ip ���뿭�� �쑀�슚�꽦 泥댄겕 + let result = ipRangeChk(content.ipStarts, content.ipEnds); + if (!result) { + $rootScope.spinner = false; + return; + } + CompanyField.add($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 10))).then(function (result) { @@ -108,12 +347,149 @@ $rootScope.$broadcast("getPageList", {}); } else { - SweetAlert.error($filter("translate")("companyField.failedCompanyFieldRegistration"), result.data.message.message); + SweetAlert.warning($filter("translate")("companyField.failedCompanyFieldRegistration"), result.data.message.message); } $rootScope.spinner = false; }); + } + + // ip ���뿭�� �쑀�슚�꽦 寃��궗 + function ipRangeChk(ipStarts, ipEnds) { + let result = true; + if ($rootScope.isDefined(ipStarts) && $rootScope.isDefined(ipEnds)) { + if (ipStarts.length !== ipEnds.length) { + SweetAlert.warning($filter("translate")("companyField.ipRangeError"), $filter("translate")("companyField.ipRangeNotEnter")); + result = false; + return; + } + + let ipStartArr = []; + let ipEndArr = []; + + for (let i=0; i<ipStarts.length; i++) { + let ipStart = ipToLong(ipStarts[i]); + let ipEnd = ipToLong(ipEnds[i]); + if (ipEnd < ipStart) { + SweetAlert.warning($filter("translate")("companyField.ipRangeError"), $filter("translate")("companyField.ipStartNotLargerThanEnd")); + result = false; + return; + } + ipStartArr.push(ipStart); + ipEndArr.push(ipEnd); + } + + for (let i=0; i<ipStartArr.length; i++) { + if ($rootScope.isDefined(ipStartArr[i+1])) { + if((ipStartArr[i] >= ipStartArr[i+1] && ipStartArr[i] <= ipEndArr[i+1]) + || (ipEndArr[i] >= ipStartArr[i+1] && ipEndArr[i] <= ipEndArr[i+1])) { + SweetAlert.warning($filter("translate")("companyField.ipRangeError"), $filter("translate")("companyField.ipRangeNotOverlap")); + result = false; + return; + } + } + } + } + return result; + } + + // ip 二쇱냼 �닽�옄濡� 蹂��솚 + function ipToLong(ip) { + let result = 0; + let ipArr = ip.split("."); + + for (let i=0; i<ipArr.length; i++) { + result += parseInt(ipArr[i]) * Math.pow(256, 3-i); + } + return result; + } + + // �뿰�씫泥� input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = ""; + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // IPRange input 李� 異붽� 踰꾪듉 + function addIpRange() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var startIdx = 0; + var endIdx = 0; + $scope.vm.form.inputIpStarts.forEach(function (start) { + if (!$rootScope.isDefined($scope.vm.form.ipStarts[startIdx])) { + arrayFull = false; + } + startIdx++; + }); + + $scope.vm.form.inputIpEnds.forEach(function (start) { + if (!$rootScope.isDefined($scope.vm.form.ipEnds[endIdx])) { + arrayFull = false; + } + endIdx++; + }); + + if (arrayFull) { + $scope.vm.form.inputIpStarts.push(startIdx); + $scope.vm.form.ipStarts[startIdx] = ""; + $scope.vm.form.inputIpEnds.push(endIdx); + $scope.vm.form.ipEnds[endIdx] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyIpRange"), $filter("translate")("companyField.writeIpRange")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + $scope.vm.form.tels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + $scope.vm.form.emails.splice(index, 1); + } + + // ipRange input �궘�젣 + function removeIpRangeInput(index) { + $scope.vm.form.inputIpStarts.splice(index, 1); + $scope.vm.form.ipStarts.splice(index, 1); + $scope.vm.form.inputIpEnds.splice(index, 1); + $scope.vm.form.ipEnds.splice(index, 1); } // �뙘�뾽 李� �떕湲� @@ -122,9 +498,7 @@ $uibModalInstance.dismiss('cancel'); $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� } - } - ]); } ); \ No newline at end of file -- Gitblit v1.8.0