OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-29 b6cb278b0282e848ea5eec279a023ffb85d94133
사용자 정의 필드 정규표현식 추가
3개 파일 변경됨
153 ■■■■■ 파일 변경됨
src/main/webapp/i18n/ko/global.json 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/customField/customFieldAdd.controller.js 64 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/customField/customFieldAdd.html 83 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json
@@ -831,7 +831,11 @@
        "ipAddressField": "IP Address 필드",
        "emailField": "이메일 필드",
        "siteField": "URL 필드",
        "telField": "전화번호 필드"
        "telField": "전화번호 필드",
        "invalidipAdressFormat": "IP 주소 형식이 맞지 않습니다.",
        "invalidEmailFormat": "이메일 형식이 맞지 않습니다.",
        "invalidSiteFormat": "홈페이지 주소 형식이 맞지 않습니다.",
        "invalidTelFormat": "전화번호 형식이 맞지 않습니다."
    },
    "tasks": {
        "agileBoardTitle": "칸반 보드"
src/main/webapp/scripts/app/customField/customFieldAdd.controller.js
@@ -16,7 +16,7 @@
                    formCheck : formCheck,  //  폼 체크
                    addOption : addOption,   //  옵션 값 추가하기
                    removeOption : removeOption,    //  옵션 삭제
                    changeFieldType : changeFieldType   //  필드 유형 변경
                    changeFieldType : changeFieldType,   //  필드 유형 변경
                };
                $scope.vm = {
@@ -25,7 +25,12 @@
                        customFieldType : "INPUT",    //  사용자 정의 필드 유형
                        defaultValue : "",  //  기본 값
                        options : [],   //  옵션
                        optionText : ""  //  옵션 값
                        optionText : "",  //  옵션 값
                        numberType : "",
                        ipAdress : "",
                        email : "",
                        site : "",
                        tel : ""
                    }
                };
@@ -43,6 +48,7 @@
                    $scope.vm.form.defaultValue = "";
                }
                //  Select 옵션 값 추가하기
                function addOption() {
@@ -87,6 +93,55 @@
                    }
                }
                // function chkPhoneType(type) {
                //     var input = $scope.vm.form.tel
                //
                //     //focus out인 경우
                //     //input type을 text로 바꾸고 '-'추가
                //     if(type == 'blur'){
                //         $scope.vm.form.tel;
                //         var phone = chkItemPhone(input);
                //     }
                //
                //     //focus인 경우
                //     //input type을 number로 바꾸고 '-' 제거
                //     if(type == 'focus'){
                //         var phone = input.replace( /-/gi, '');
                //         $scope.vm.form.tel('type', 'number');
                //     }
                //
                //     $scope.vm.form.tel(phone);
                // }
                //
                // function chkItemPhone(temp) {
                //     var number = temp.replace(/[^0-9]/g, "");
                //     var phone = "";
                //
                //     if (number.length < 9) {
                //         return number;
                //     } else if (number.length < 10) {
                //         phone += number.substr(0, 2);
                //         phone += "-";
                //         phone += number.substr(2, 3);
                //         phone += "-";
                //         phone += number.substr(5);
                //     } else if (number.length < 11) {
                //         phone += number.substr(0, 3);
                //         phone += "-";
                //         phone += number.substr(3, 3);
                //         phone += "-";
                //         phone += number.substr(6);
                //     } else {
                //         phone += number.substr(0, 3);
                //         phone += "-";
                //         phone += number.substr(3, 4);
                //         phone += "-";
                //         phone += number.substr(7);
                //     }
                //
                //     return phone;
                // }
                //  폼 체크
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -110,6 +165,11 @@
                    var content = angular.copy($scope.vm.form);
                    content.name = $rootScope.preventXss(content.name);
                    content.numberType = $rootScope.preventXss(content.numberType);
                    content.ipAdress = $rootScope.preventXss(content.ipAdress);
                    content.email = $rootScope.preventXss(content.email);
                    content.site = $rootScope.preventXss(content.site);
                    content.tel = $rootScope.preventXss(content.tel);
                    if ($scope.vm.form.customFieldType === 'MULTI_SELECT'|| $scope.vm.form.customFieldType === "SINGLE_SELECT") {
                        var convertDefaultValues = "";
src/main/webapp/views/customField/customFieldAdd.html
@@ -55,7 +55,8 @@
                <label ng-show="vm.form.customFieldType == 'MULTI_SELECT'"><span
                        translate="customField.createMultiFieldList">다중 선택 필드 목록 만들기</span> <code
                        class="highlighter-rouge">*</code></label>
                <div class="input-group">
                <div class="input-group" ng-show="vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'">
                    <input id="optionAdd"
                           type="text"
                           name="options"
@@ -83,7 +84,8 @@
            <div class="form-group">
                <label for="customFieldAddForm3"><span translate="customField.defaultValue">기본값</span> </label>
                <input id="customFieldAddForm3"
                <input ng-if="vm.form.customFieldType == 'INPUT' || vm.form.customFieldType == 'SINGLE_SELECT' || vm.form.customFieldType == 'MULTI_SELECT'"
                       id="customFieldAddForm3"
                       type="text"
                       name="defaultValue"
                       class="form-control"
@@ -92,9 +94,86 @@
                       kr-input
                       ng-maxlength="100"
                       autocomplete="off">
                <input ng-if="vm.form.customFieldType == 'NUMBER'"
                       name="numberType"
                       type="number"
                       class="form-control"
                       kr-input
                       ng-pattern="/^[0-9]*$/"
                       placeholder="숫자만 입력 가능합니다."
                       autocomplete="off"
                       ng-model="vm.form.numberType">
                <input ng-if="vm.form.customFieldType == 'DATETIME'"
                       type="date"
                       class="form-control"
                       kr-input
                       ng-pattern="/^(19|20)\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[0-1])$/"
                       placeholder="날짜 형식만 입력 가능합니다."
                       autocomplete="off">
                <input ng-if="vm.form.customFieldType == 'IP_ADDRESS'"
                       name="ipAdress"
                       type="text"
                       class="form-control"
                       kr-input
                       ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                       placeholder="IP 주소 형식만 입력 가능합니다."
                       autocomplete="off"
                       ng-model="vm.form.ipAdress">
                <div ng-show="customFieldAddForm.ipAdress.$error.pattern" class="help-block form-text text-danger"
                     translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                </div>
<!--                /@^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/-->
                <input ng-if="vm.form.customFieldType == 'EMAIL'"
                       name="email"
                       type="email"
                       class="form-control"
                       maxlength="30"
                       kr-input
                       ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
                       placeholder="이메일 형식만 입력 가능합니다."
                       autocomplete="off"
                       ng-model="vm.form.email">
                <div ng-show="customFieldAddForm.email.$error.pattern" class="help-block form-text text-danger"
                     translate="common.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                </div>
                <input ng-if="vm.form.customFieldType == 'SITE'"
                       name="site"
                       type="text"
                       class="form-control"
                       maxlength="30"
                       kr-input
                       ng-pattern="/(http(s)?:\/\/)([a-z0-9\w]+\.*)+[a-z0-9]{2,4}/gi"
                       placeholder="홈페이지 주소 형식만 입력 가능합니다."
                       autocomplete="off"
                       ng-model="vm.form.site">
                <div ng-show="customFieldAddForm.site.$error.pattern" class="help-block form-text text-danger"
                     translate="common.invalidSiteFormat">홈페이지 주소 형식이 맞지 않습니다.
                </div>
                <input ng-if="vm.form.customFieldType == 'TEL'"
                       id="phone"
                       name="tel"
                       type="number"
                       class="form-control"
                       kr-input
                       ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                       placeholder="연락처 형식만 입력 가능합니다."
                       autocomplete="off"
                       ng-model="vm.form.tel">
                <div ng-show="customFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"
                     translate="common.invalidTelFormat">전화번호 형식이 맞지 않습니다.
                </div>
                <small ng-show="vm.form.customFieldType == 'INPUT'" translate="common.upTo100Characters">
                    최대 100글자까지 입력할 수 있습니다.
                </small>
                <div class="help-block form-text text-danger" ng-show="vm.form.customFieldType == 'SINGLE_SELECT'"
                     translate="customField.selectSingleFieldListHashTag">
                    단일 선택 필드 목록에 있는 값을 기본적으로 선택하고 싶을 때는 해시태그를 사용해야합니다. ex) #대상값