OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/views/issue/issueAddRelation.html
@@ -29,17 +29,17 @@
                </small>
            </div>
<!--            <div class="form-group mb10 col-sm-4">-->
<!--                <label class="issue-label"><span class="highlighter-rouge">연관 이슈 구분</span></label>-->
<!--                <select id="relationIssueType"-->
<!--                        name="relationIssueType"-->
<!--                        class="form-control input-sm"-->
<!--                        ng-options="option.name for option in vm.relationIssueTypes track by option.id"-->
<!--                        ng-model="vm.relationIssueType"-->
<!--                        required>-->
<!--                </select>-->
            <div class="form-group mb10">
                <label class="issue-label"><span class="highlighter-rouge">연관 이슈 구분</span></label>
                <select id="relationIssueType"
                        name="relationIssueType"
                        class="form-control input-sm"
                        ng-options="option.name for option in vm.relationIssueTypes track by option.id"
                        ng-model="vm.relationIssueType"
                        required>
                </select>
<!--            </div>-->
            </div>
            <div class="row">
                <div class="col-lg-4">
@@ -52,6 +52,7 @@
                                                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="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>
@@ -138,7 +139,7 @@
                        <js-autocomplete-multi data-input-name="departments"
                                               selected-model="vm.form.departments"
                                               search="vm.departmentName"
                                               source="fn.getIssueDepartmentList(vm.departmentName, vm.form.departments)"
                                               source="fn.getIssueDepartmentList(vm.form.issueTypeId, vm.departmentName, vm.form.departments)"
                                               input-disabled="false"
                                               translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment'}"
                                               extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true}"></js-autocomplete-multi>
@@ -229,7 +230,7 @@
                </div>
            </div>
            <div class="col-lg-8">
            <div class="col-lg-12">
                <div class="row">
                    <div class="col-md-12">
                        <div class="form-group mgb5" ng-show="vm.form.issueCustomFields.length < 1">
@@ -238,7 +239,7 @@
                        </div>
                    </div>
                    <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields">
                    <div class="col-md-4" ng-repeat="issueCustomField in vm.form.issueCustomFields">
                        <div class="form-group mgb5">
                            <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label>
@@ -246,62 +247,99 @@
                                <!-- 기본 입력 -->
                                <div ng-switch-when="INPUT">
                                    <input type="text" class="form-control input-sm"
                                           name="input"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.input.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자정의필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <div ng-switch-when="NUMBER">
                                    <input type="text" class="form-control input-sm"
                                           name="number"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.number.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <div ng-switch-when="DATETIME">
                                    <input type="text" class="form-control input-sm"
                                           name="dateTime"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.dateTime.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <div ng-switch-when="IP_ADDRESS">
                                    <input type="text" class="form-control input-sm"
                                           name="ipAddress"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.ipAddress.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <div ng-switch-when="SITE">
                                    <input type="text" class="form-control input-sm"
                                           name="site"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.site.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <div ng-switch-when="TEL">
                                    <input type="text" class="form-control input-sm"
                                           name="tel"
                                           ng-model="issueCustomField.useValues"
                                           maxlength="100"
                                           autocomplete="off"
                                           kr-input
                                           ng-required="issueCustomField.fieldOption == '01'">
                                           ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'">
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.tel.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <!-- 단일 셀렉트 -->
                                <div ng-switch-when="SINGLE_SELECT">
                                    <select class="form-control input-sm issue-select-label"
                                            ng-required="issueCustomField.fieldOption == '01'"
                                            name="singleSelect"
                                            ng-required="issueCustomField.fieldOption == '01' || issueCustomField.customFieldVo.requiredData == 'Y'"
                                            ng-model="issueCustomField.useValues">
                                        <option value="" value="" translate="common.choose">선택하세요.</option>
                                        <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos"
@@ -310,16 +348,28 @@
                                            {{customFieldValueVo.value}}
                                        </option>
                                    </select>
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.singleSelect.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                                <!-- 멀티 셀렉트 -->
                                <div ng-switch-when="MULTI_SELECT">
                                    <ng-dropdown-multiselect class="multiSelect cursor"
                                                             name="multiSelect"
                                                             ng-required="issueCustomField.customFieldVo.requiredData == 'Y'"
                                                             data-input-name=""
                                                             modal-form-auto-scroll
                                                             selected-model="issueCustomField.useValues"
                                                             extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }"
                                                             options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect>
                                    <small class="help-block form-text text-danger"
                                           ng-show="issueCustomField.customFieldVo.requiredData == 'Y'"
                                           ng-if="issueAddRelationForm.multiSelect.$error.required"
                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.
                                    </small>
                                </div>
                            </div>
                        </div>
@@ -330,7 +380,8 @@
            <div ng-show="fn.containsPartner('업체')" class="row">
                <div class="col-lg-8 fontcolor_green">
                    <label class="issue-label"><span class="fontcolor_green" translate="companyField.info">업체정보</span>
                        &nbsp;&nbsp;<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;&nbsp;업체 이름 클릭시 선택된 이름의 업체 정보가 조회됩니다.</span>
                        &nbsp;&nbsp;<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;
                            &nbsp;업체 이름 클릭시 선택된 이름의 업체 정보가 조회되며, 업체정보에서 추가한 ISP, 호스팅 정보를 불러옵니다.</span>
                    </label>
                </div>
            </div>
@@ -405,6 +456,24 @@
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="companyFieldUrlAddForm"
                               name="companyUrl"
                               type="text"
                               class="form-control"
                               kr-input
                               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="issueAddRelationForm.companyUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">비고</span></label>
                        <input id="companyFieldDescAddForm"
                               name="companyMemo"
@@ -422,7 +491,7 @@
            <div ng-show="fn.containsPartner('ISP')" class="row">
                <div class="col-lg-8 fontcolor_green">
                    <label class="issue-label"><span class="fontcolor_green" translate="ispField.info">ISP 정보</span>
                        &nbsp;&nbsp;<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;&nbsp;ISP 이름 클릭시 선택된 이름의 ISP 정보가 조회됩니다.</span>
                        &nbsp;&nbsp;<!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;&nbsp;ISP 이름 클릭시 선택된 이름의 ISP 정보가 조회됩니다.</span>-->
                    </label>
                </div>
            </div>
@@ -431,7 +500,15 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="ispField.name">ISP 이름</span> </label>
                        <js-autocomplete-single data-input-name="ispField"
                        <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"
                                                selected-model="vm.form.issueIspFields"
                                                search="vm.ispName"
                                                source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.ispField.page, fn.getIssueIspFieldListCallBack)"
@@ -441,7 +518,7 @@
                                                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">
@@ -511,6 +588,24 @@
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="ispFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="ispFieldUrlAddForm"
                               name="ispUrl"
                               type="text"
                               class="form-control"
                               kr-input
                               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="issueAddRelationForm.ispUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="ispFieldDescAddForm" class="issue-label"><span translate="ispField.memo">비고</span></label>
                        <input id="ispFieldDescAddForm"
                               name="ispMemo"
@@ -528,7 +623,7 @@
            <div ng-show="fn.containsPartner('호스팅')" class="row">
                <div class="col-lg-8 fontcolor_green">
                    <label class="issue-label"><span class="fontcolor_green" translate="hostingField.info">호스팅 정보</span>
                        &nbsp;&nbsp;<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;&nbsp;호스팅 이름 클릭시 선택된 이름의 호스팅 정보가 조회됩니다.</span>
                        &nbsp;&nbsp;<!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code>&nbsp;&nbsp;호스팅 이름 클릭시 선택된 이름의 호스팅 정보가 조회됩니다.</span>-->
                    </label>
                </div>
            </div>
@@ -537,7 +632,15 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="hostingField.name">호스팅 이름</span> </label>
                        <js-autocomplete-single data-input-name="hostingField"
                        <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"
                                                selected-model="vm.form.issueHostingFields"
                                                search="vm.hostingName"
                                                source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)"
@@ -547,7 +650,7 @@
                                                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">
@@ -617,6 +720,24 @@
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="hostingFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                        <input id="hostingFieldUrlAddForm"
                               name="hostingUrl"
                               type="text"
                               class="form-control"
                               kr-input
                               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="issueAddRelationForm.hostingUrl.$error.pattern" class="help-block form-text text-danger"
                             translate="common.invalidUrlFormat">url 형식이 맞지 않습니다.
                        </div>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label for="hostingFieldDescAdd" class="issue-label"><span translate="hostingField.memo">비고</span></label>
                        <input id="hostingFieldDescAdd"
                               name="hostingMemo"