From 916a3cbabe4e50062fce61ff6f2f5d46c05dfbd1 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 17 3월 2022 17:47:45 +0900 Subject: [PATCH] - api로 이슈 추가 시 url/ip로 업체 찾는 코드 수정 --- src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 260 insertions(+), 32 deletions(-) diff --git a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js index b19c7b7..cd3fd03 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js @@ -25,8 +25,10 @@ getStatusListCallBack : getStatusListCallBack, addTel : addTel, addMail : addMail, + addIpRange : addIpRange, removeTelInput : removeTelInput, - removeMailInput : removeMailInput + removeMailInput : removeMailInput, + removeIpRangeInput : removeIpRangeInput }; $scope.vm = { @@ -41,6 +43,8 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url + ipStart : "", //ip�떆�옉二쇱냼 + ipEnd : "", //ip醫낅즺二쇱냼 memo : "", //硫붾え(鍮꾧퀬) companyTypeId : "", companyType : "", //湲곗뾽援щ텇 @@ -53,9 +57,13 @@ statusId : "", status : "", //�긽�깭 inputTels : [0], - tels : {}, + tels : [], inputMails : [0], - emails : {} + emails : [], + inputIpStarts : [0], //ip �떆�옉�젏 + ipStarts : [], + inputIpEnds : [0], //ip 醫낅즺�젏 + ipEnds : [] }, typeCategory : { companyType : "COMPANYTYPE", @@ -115,7 +123,16 @@ } // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 - function getParentSectorListCallBack(result) { + 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; } @@ -144,11 +161,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; + } }); // �뤌 �쟾�넚 @@ -160,19 +215,19 @@ id : parameter.id, name : $rootScope.preventXss($scope.vm.form.name), ispId : (function () { // ISP �븘�씠�뵒 - var ispId = -1; + var ispId = null; if ($scope.vm.form.ispName !== "" && $scope.vm.form.ispId !== null && $scope.vm.form.ispId !== -1) { ispId = $scope.vm.form.ispId; - }else if ($scope.vm.form.issueIspFields != null) { + }else if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0) { ispId = $scope.vm.form.issueIspFields[0].id; } return ispId; })(), hostingId : (function () { // Hosting �븘�씠�뵒 - var hostingId = -1; + var hostingId = null; if ($scope.vm.form.hostingName !== "" && $scope.vm.form.hostingId !== null && $scope.vm.form.hostingId !== -1) { hostingId = $scope.vm.form.hostingId; - }else if ($scope.vm.form.issueHostingFields != null) { + }else if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0) { hostingId = $scope.vm.form.issueHostingFields[0].id; } return hostingId; @@ -212,55 +267,94 @@ } return emailList; })(), - url : $rootScope.preventXss($scope.vm.form.url), // url - memo : $rootScope.preventXss($scope.vm.form.memo), + 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 = -1; - if ($scope.vm.form.companyType !== "" && $scope.vm.form.companyTypeId !== "" && $scope.vm.form.companyTypeId !== -1) { - companyTypeId = $scope.vm.form.companyTypeId; - }else if ($scope.vm.form.companyTypes != null) { + var companyTypeId = null; + if ($scope.vm.form.companyTypes != null && $scope.vm.form.companyTypes.length > 0) { companyTypeId = $scope.vm.form.companyTypes[0].id; + } else { + companyTypeId = $scope.vm.form.companyTypeId; } return companyTypeId; })(), parentSectorId : (function () { - var parentSectorId = -1; - if ($scope.vm.form.parentSector !== "" && $scope.vm.form.parentSectorId !== "" && $scope.vm.form.parentSectorId !== -1) { - parentSectorId = $scope.vm.form.parentSectorId; - }else if ($scope.vm.form.parentSectors != null) { + var parentSectorId = null; + if ($scope.vm.form.parentSectors != null && $scope.vm.form.parentSectors.length > 0) { parentSectorId = $scope.vm.form.parentSectors[0].id; + } else { + parentSectorId = $scope.vm.form.parentSectorId; } return parentSectorId; })(), childSectorId : (function () { - var childSectorId = -1; - if ($scope.vm.form.childSector !== "" && $scope.vm.form.childSectorId !== "" && $scope.vm.form.childSectorId !== -1) { - childSectorId = $scope.vm.form.childSectorId; - }else if ($scope.vm.form.childSectors != null) { + var childSectorId = null; + if ($scope.vm.form.childSectors != null && $scope.vm.form.childSectors.length > 0) { childSectorId = $scope.vm.form.childSectors[0].id; + } else { + childSectorId = $scope.vm.form.childSectorId; } return childSectorId; })(), regionId : (function () { - var regionId = -1; - if ($scope.vm.form.region !== "" && $scope.vm.form.regionId !== "" && $scope.vm.form.regionId !== -1) { - regionId = $scope.vm.form.regionId; - }else if ($scope.vm.form.regions != null) { + var regionId = null; + if ($scope.vm.form.regions != null && $scope.vm.form.regions.length > 0) { regionId = $scope.vm.form.regions[0].id; + } else { + regionId = $scope.vm.form.regionId; } return regionId; })(), statusId : (function () { - var statusId = -1; - if ($scope.vm.form.status !== "" && $scope.vm.form.statusId !== "" && $scope.vm.form.statusId !== -1) { - statusId = $scope.vm.form.statusId; - }else if ($scope.vm.form.statuses != null) { + var statusId = null; + if ($scope.vm.form.statuses != null && $scope.vm.form.statuses.length > 0) { statusId = $scope.vm.form.statuses[0].id; + } else { + statusId = $scope.vm.form.statusId; } return statusId; })(), statusName : $scope.vm.form.status }; + + // ip ���뿭�� �쑀�슚�꽦 泥댄겕 + let result = ipRangeChk(content.ipStarts, content.ipEnds); + if (!result) { + $rootScope.spinner = false; + return; + } CompanyField.modify($resourceProvider.getContent( content, @@ -278,6 +372,57 @@ $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])) + || (ipStartArr[i+1] >= ipStartArr[i] && ipStartArr[i+1] <= ipEndArr[i]) || (ipEndArr[i+1] >= ipStartArr[i] && ipEndArr[i+1] <= ipEndArr[i])) { + 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 李� 異붽� 踰꾪듉 @@ -318,14 +463,53 @@ } } + // 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); } // �뙘�뾽 李� �떕湲� @@ -394,7 +578,51 @@ $scope.vm.form.emails = angular.copy(inputMails); } + if (result.data.content.ipStart != null) { + var inputIpStarts = $scope.vm.form.inputIpStarts; + var ipStarts = result.data.content.ipStart + if (result.data.content.ipStart.indexOf("[") !== -1){ + ipStarts = result.data.content.ipStart.substr(1, result.data.content.ipStart.indexOf("]")-1); + } + var ipStartArr = ipStarts.split(","); + angular.forEach(ipStartArr, function (ipS) { + var ipStart = ipS.trim(); + inputIpStarts.push(ipStart); + }); + inputIpStarts = inputIpStarts.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if(inputIpStarts[0] === 0 || inputIpStarts[0] === "") { // 泥ル쾲吏� 諛곗뿴�� 怨듬갚�쑝濡� + inputIpStarts.shift(); + } + inputIpStarts.push(""); + $scope.vm.form.ipStarts = angular.copy(inputIpStarts); + } + + if (result.data.content.ipEnd != null) { + var inputIpEnds = $scope.vm.form.inputIpEnds; + var ipEnds = result.data.content.ipEnd + if (result.data.content.ipEnd.indexOf("[") !== -1){ + ipEnds = result.data.content.ipEnd.substr(1, result.data.content.ipEnd.indexOf("]")-1); + } + var ipEndArr = ipEnds.split(","); + angular.forEach(ipEndArr, function (ipS) { + var ipEnd = ipS.trim(); + inputIpEnds.push(ipEnd); + }); + inputIpEnds = inputIpEnds.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if(inputIpEnds[0] === 0 || inputIpEnds[0] === "") { // 泥ル쾲吏� 諛곗뿴�� 怨듬갚�쑝濡� + inputIpEnds.shift(); + } + inputIpEnds.push(""); + $scope.vm.form.ipEnds = angular.copy(inputIpEnds); + } + $scope.vm.form.url = result.data.content.url; + $scope.vm.form.ipStart = result.data.content.ipStart; + $scope.vm.form.ipEnd = result.data.content.ipEnd; $scope.vm.form.memo = result.data.content.memo; $scope.vm.form.companyTypeId = result.data.content.companyTypeId; $scope.vm.form.companyType = result.data.content.companyTypeName; -- Gitblit v1.8.0