OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/views/issue/issueAdd.html
@@ -35,11 +35,12 @@
                                class="highlighter-rouge">*</code></label>
                        <js-autocomplete-single data-input-name="project"
                                                selected-model="vm.form.projects"
                                                ng-model="vm.form.projects"
                                                ng-change="fn.getIssueTypeOfProject()"
                                                search="vm.projectName"
                                                source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)"
                                                page="vm.autoCompletePage.project.page"
                                                total-page="vm.autoCompletePage.project.totalPage"
                                                input-disabled="vm.form.projects != null ? vm.form.projects.length > 0 : false"
                                                translation-texts="{ empty : 'common.emptyProject' }"
                                                extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -60,7 +61,7 @@
                                        ng-change="fn.getIssueTypeCustomFields()"
                                        ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }"
                                        required
                                        disabled>
                                        >
                                    <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span
                                            translate="common.selectTarget">대상 선택</span>
                                    </option>
@@ -83,9 +84,9 @@
                                        ng-model="vm.form.priorityId"
                                        ng-style="{ 'color' : fn.getOptionColor(vm.priorities, vm.form.priorityId) }"
                                        required>
                                    <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }">
                                    <!--<option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }">
                                        <span translate="common.selectTarget">대상 선택</span>
                                    </option>
                                    </option>-->
                                    <option ng-repeat="priority in vm.priorities"
                                            ng-style="{ 'color' : priority.color, 'font-weight': 600 }"
                                            value="{{priority.id}}"
@@ -105,9 +106,9 @@
                                        ng-model="vm.form.severityId"
                                        ng-style="{ 'color' : fn.getOptionColor(vm.severities, vm.form.severityId) }"
                                        required>
                                    <option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }">
                                    <!--<option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }">
                                        <span translate="common.selectTarget">대상 선택</span>
                                    </option>
                                    </option>-->
                                    <option ng-repeat="severity in vm.severities"
                                            ng-style="{ color : severity.color, 'font-weight': 600 }"
                                            value="{{severity.id}}"
@@ -238,7 +239,6 @@
                                    <input type="text" class="form-control input-sm"
                                           name="item_{{$index}}"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
@@ -495,10 +495,48 @@
                               autocomplete="off"
                               ng-maxlength="200"
                               ng-model="vm.companyUrl"
                               ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/"
                               maxlength="200">
                        <div ng-show="issueAddForm.companyUrl.$error.pattern" class="help-block form-text text-danger"
                        <!--<div ng-show="issueAddForm.companyUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-2">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip 대역대</span></label>
                        <input id="companyFieldIpStartAddForm"
                               name="ipStart"
                               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]?)$/"
                               autocomplete="off"
                               ng-model="vm.ipStart"
                               disabled
                        >
                        <div ng-if="issueAddForm.ipStart.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="mt-30 ml--4 mr--4">
                    <label class="issue-label">~</label>
                </div>
                <div class="col-lg-2 mt-1">
                    <div class="form-group mgb5">
                        <label for="companyFieldIpEndAddForm"></label>
                        <input id="companyFieldIpEndAddForm"
                               name="ipEnd"
                               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]?)$/"
                               autocomplete="off"
                               ng-model="vm.ipEnd"
                               disabled
                        >
                        <div ng-if="issueAddForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidipAdressFormat">IP주소 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
@@ -530,6 +568,7 @@
                                                page="vm.autoCompletePage.companyType.page"
                                                total-page="vm.autoCompletePage.companyType.totalPage"
                                                input-disabled="false"
                                                broad-cast="companyTypeEvent"
                                                translation-texts="{ empty : 'common.emptyCompanyType' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -549,6 +588,7 @@
                                                page="vm.autoCompletePage.parentSector.page"
                                                total-page="vm.autoCompletePage.parentSector.totalPage"
                                                input-disabled="false"
                                                broad-cast="parentSectorEvent"
                                                translation-texts="{ empty : 'common.emptyParentSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -568,6 +608,7 @@
                                                page="vm.autoCompletePage.childSector.page"
                                                total-page="vm.autoCompletePage.childSector.totalPage"
                                                input-disabled="false"
                                                broad-cast="childSectorEvent"
                                                translation-texts="{ empty : 'common.emptyChildSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -587,6 +628,7 @@
                                                page="vm.autoCompletePage.region.page"
                                                total-page="vm.autoCompletePage.region.totalPage"
                                                input-disabled="false"
                                                broad-cast="regionEvent"
                                                translation-texts="{ empty : 'common.emptyRegion' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -606,6 +648,7 @@
                                                page="vm.autoCompletePage.status.page"
                                                total-page="vm.autoCompletePage.status.totalPage"
                                                input-disabled="false"
                                                broad-cast="statusEvent"
                                                translation-texts="{ empty : 'common.emptyStatus' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
@@ -625,25 +668,26 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="ispField.name">ISP 이름</span> </label>
                        <input name="ispName"
                        <!--<input name="ispName"
                               type="text"
                               class="form-control"
                               kr-input
                               autocomplete="off"
                               ng-model="vm.ispName"
                               ng-maxlength="100"
                               maxlength="100">
                        <!--<js-autocomplete-single data-input-name="ispField"
                               maxlength="100">-->
                        <js-autocomplete-single data-input-name="ispField"
                                                selected-model="vm.form.issueIspFields"
                                                search="vm.ispName"
                                                source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.ispField.page, fn.getIssueIspFieldListCallBack)"
                                                page="vm.autoCompletePage.ispField.page"
                                                total-page="vm.autoCompletePage.ispField.totalPage"
                                                input-disabled="false"
                                                custom-input="true"
                                                translation-texts="{ empty : 'common.emptyIsp' }"
                                                broad-cast="ispFieldEvent"
                                                extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>-->
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
@@ -718,11 +762,10 @@
                               autocomplete="off"
                               ng-maxlength="200"
                               ng-model="vm.ispUrl"
                               ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/"
                               maxlength="200">
                        <div ng-show="issueAddForm.ispUrl.$error.pattern" class="help-block form-text text-danger"
                        <!--<div ng-show="issueAddForm.ispUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -753,15 +796,15 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="hostingField.name">호스팅 이름</span> </label>
                        <input name="hostingName"
                        <!--<input name="hostingName"
                               type="text"
                               class="form-control"
                               kr-input
                               autocomplete="off"
                               ng-model="vm.hostingName"
                               ng-maxlength="100"
                               maxlength="100">
                        <!--<js-autocomplete-single data-input-name="hostingField"
                               maxlength="100">-->
                        <js-autocomplete-single data-input-name="hostingField"
                                                selected-model="vm.form.issueHostingFields"
                                                ng-model="vm.hostingName"
                                                search="vm.hostingName"
@@ -769,10 +812,11 @@
                                                page="vm.autoCompletePage.hostingField.page"
                                                total-page="vm.autoCompletePage.hostingField.totalPage"
                                                input-disabled="false"
                                                custom-input="true"
                                                translation-texts="{ empty : 'common.emptyHosting' }"
                                                broad-cast="hostingFieldEvent"
                                                extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>-->
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
@@ -847,11 +891,10 @@
                               autocomplete="off"
                               ng-maxlength="200"
                               ng-model="vm.hostingUrl"
                               ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/"
                               maxlength="200">
                        <div ng-show="issueAddForm.hostingUrl.$error.pattern" class="help-block form-text text-danger"
                        <!--<div ng-show="issueAddForm.hostingUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">