OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/views/issue/issueAddRelation.html
@@ -9,11 +9,11 @@
    </div>
    <div class="modal-body">
        <form role="form" name="issueAddForm">
        <form role="form" name="issueAddRelationForm">
            <div class="form-group mb10">
                <label for="issueAddForm1" class="issue-label"><span translate="issue.issueTitle">이슈 제목</span> <code
                <label for="issueAddRelationForm1" class="issue-label"><span translate="issue.issueTitle">이슈 제목</span> <code
                        class="highlighter-rouge">*</code></label>
                <input id="issueAddForm1"
                <input id="issueAddRelationForm1"
                       class="form-control input-sm"
                       ng-model="vm.form.title"
                       name="title"
@@ -24,10 +24,23 @@
                       autofocus
                       owl-auto-focus>
                <small class="help-block form-text text-danger"
                       ng-if="issueAddForm.title.$touched && issueAddForm.title.$error.required"
                       ng-if="issueAddRelationForm.title.$touched && issueAddRelationForm.title.$error.required"
                       translate="issue.requireIssueTitle">이슈 제목을 입력하세요.
                </small>
            </div>
            <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 class="row">
                <div class="col-lg-4">
                    <div class="form-group mb10">
@@ -39,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>
@@ -49,10 +63,10 @@
                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group mb10">
                                <label for="issueAddForm4" class="issue-label"> <span
                                <label for="issueAddRelationForm4" class="issue-label"> <span
                                        translate="issue.issueType">이슈 타입</span>
                                    <code class="highlighter-rouge">*</code></label>
                                <select id="issueAddForm4"
                                <select id="issueAddRelationForm4"
                                        name="issueType"
                                        class="form-control input-sm issue-select-label"
                                        ng-model="vm.form.issueTypeId"
@@ -71,11 +85,11 @@
                        </div>
                        <div class="col-md-4">
                            <div class="form-group mb10">
                                <label for="issueAddForm2" class="issue-label">
                                <label for="issueAddRelationForm2" class="issue-label">
                                    <span translate="common.priority">우선 순위</span>
                                    <code class="highlighter-rouge">*</code>
                                </label>
                                <select id="issueAddForm2"
                                <select id="issueAddRelationForm2"
                                        name="priority"
                                        class="form-control input-sm issue-select-label"
                                        ng-model="vm.form.priorityId"
@@ -94,10 +108,10 @@
                        </div>
                        <div class="col-md-4">
                            <div class="form-group mb10">
                                <label for="issueAddForm3" class="issue-label"> <span
                                <label for="issueAddRelationForm3" class="issue-label"> <span
                                        translate="common.importance">중요도</span> <code
                                        class="highlighter-rouge">*</code></label>
                                <select id="issueAddForm3"
                                <select id="issueAddRelationForm3"
                                        name="severity"
                                        class="form-control input-sm issue-select-label"
                                        ng-model="vm.form.severityId"
@@ -141,8 +155,8 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label for="issueAddForm5" class="issue-label"> <span translate="common.period">기간</span></label>
                        <input id="issueAddForm5"
                        <label for="issueAddRelationForm5" class="issue-label"> <span translate="common.period">기간</span></label>
                        <input id="issueAddRelationForm5"
                               tabindex="-1"
                               type="text"
                               readonly
@@ -216,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">
@@ -225,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>
@@ -233,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"
@@ -297,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>
@@ -368,7 +431,7 @@
                               autocomplete="off"
                               ng-model="vm.companyTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                    </div>
@@ -385,9 +448,23 @@
                               ng-model="vm.companyEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                    </div>
                </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"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
@@ -474,7 +551,7 @@
                               autocomplete="off"
                               ng-model="vm.ispTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                    </div>
@@ -491,9 +568,23 @@
                               ng-model="vm.ispEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                    </div>
                </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"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
@@ -580,7 +671,7 @@
                               autocomplete="off"
                               ng-model="vm.hostingTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                    </div>
@@ -597,9 +688,23 @@
                               ng-model="vm.hostingEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                        <div ng-show="issueAddRelationForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                    </div>
                </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"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
@@ -647,8 +752,8 @@
            translate="common.cancel">취소</span></button>
    <button type="button" class="btn btn-md btn-primary bold"
            js-short-cut
            js-short-cut-action="(fn.formCheck(issueAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
            ng-disabled="fn.formCheck(issueAddForm.$invalid)"
            js-short-cut-action="(fn.formCheck(issueAddRelationForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
            ng-disabled="fn.formCheck(issueAddRelationForm.$invalid)"
            ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
    </button>
</div>