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 | 136 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 130 insertions(+), 6 deletions(-) diff --git a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js index e2a2c5c..5465d18 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js @@ -23,8 +23,10 @@ getStatusListCallBack : getStatusListCallBack, addTel : addTel, addMail : addMail, + addIpRange : addIpRange, removeTelInput : removeTelInput, - removeMailInput : removeMailInput + removeMailInput : removeMailInput, + removeIpRangeInput : removeIpRangeInput }; $scope.vm = { @@ -52,9 +54,13 @@ statusId : "", status : "", //�긽�깭 inputTels : [0], //�뿰�씫泥� - tels : {}, + tels : [], inputMails : [0], //�씠硫붿씪 - emails : {} + emails : [], + inputIpStarts : [0], //ip �떆�옉�젏 + ipStarts : [], + inputIpEnds : [0], //ip 醫낅즺�젏 + ipEnds : [] }, typeCategory : { companyType : "COMPANYTYPE", @@ -260,8 +266,30 @@ } return url; })(), - ipStart : $scope.vm.form.ipStart, // ip�떆�옉二쇱냼 - ipEnd : $scope.vm.form.ipEnd, // ip醫낅즺二쇱냼 + 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; @@ -303,6 +331,13 @@ 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) { @@ -312,12 +347,62 @@ $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 李� 異붽� 踰꾪듉 @@ -358,14 +443,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); } // �뙘�뾽 李� �떕湲� -- Gitblit v1.8.0