| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong translate="issue.createIssue">이슈 만들기</strong> |
| | | <strong translate="issue.createIssue">이슈 수정</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | |
| | | 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" |
| | | 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> |
| | |
| | | ng-model="vm.form.issueTypeId" |
| | | ng-change="fn.getIssueTypeCustomFields()" |
| | | ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }" |
| | | required> |
| | | required |
| | | disabled> |
| | | <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span |
| | | translate="common.selectTarget">대상 선택</span> |
| | | </option> |
| | |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label class="issue-label"> <span translate="common.assigneeTeam">담당부서</span> </label> |
| | | <js-autocomplete-multi data-input-name="departmentㄴ" |
| | | <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.emptyDepartment'}" |
| | | translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment'}" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true}"></js-autocomplete-multi> |
| | | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> |
| | | <span>{{department.byName}}</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeManager($index)">×</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartment($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <hr> |
| | | <div class="row"> |
| | | <div class="col-lg-4 fontcolor_green"> |
| | | <label class="issue-label"><span class="fontcolor_green" translate="common.detectingInfo">탐지정보</span></label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label for="detectingDateAddForm" class="issue-label"> <span translate="common.detectingData">탐지일시</span> </label> |
| | | <input id="detectingDateAddForm" |
| | | tabindex="-1" |
| | | type="text" |
| | | readonly |
| | | class="form-control cursor" |
| | | placeholder="{{'issue.clickToSelectDate' | translate}}" |
| | | ng-model="vm.form.detectingDateRange" |
| | | modal-form-auto-scroll |
| | | date-format="YYYY-MM-DD" |
| | | parent-el="'#createdWidget2'" |
| | | date-range-picker> |
| | | <div class="row"> |
| | | <div class="col-xs-12"> |
| | | <div id="createdWidget2" class="bootstrap-datepicker"></div> |
| | | <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"> |
| | | <label class="issue-label" translate="issue.notIssueTypeCustomFields">이슈 타입에 연결된 사용자 정의 |
| | | 필드가 없습니다.</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <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> |
| | | |
| | | <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> |
| | | <!-- 기본 입력 --> |
| | | <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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.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' || issueCustomField.customFieldVo.requiredData == 'Y'"> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.tel.$error.required" |
| | | translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. |
| | | </small> |
| | | </div> |
| | | |
| | | <!-- 단일 셀렉트 --> |
| | | <div ng-switch-when="SINGLE_SELECT"> |
| | | <select class="form-control input-sm issue-select-label" |
| | | 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" |
| | | value="{{customFieldValueVo.value}}" |
| | | ng-selected="$root.selectOption(issueCustomField.useValues, customFieldValueVo.value)"> |
| | | {{customFieldValueVo.value}} |
| | | </option> |
| | | </select> |
| | | <small class="help-block form-text text-danger" |
| | | ng-show="issueCustomField.customFieldVo.requiredData == 'Y'" |
| | | ng-if="issueAddForm.singleSelect.$error.required" |
| | | translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. |
| | | </small> |
| | | </div> |
| | | |
| | | <!-- 멀티 셀렉트 --> |
| | | <div ng-switch-when="MULTI_SELECT"> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | | 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> |
| | | <input class="form-control input-sm issue-select-label" |
| | | type="hidden" name="multiSelect" ng-model="issueCustomField.useValues[0]" |
| | | 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="issueAddForm.multiSelect.$error.required" |
| | | translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다. |
| | | </small> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label for="domainAddForm" class="issue-label"><span translate="companyField.domain">도메인</span></label> |
| | | <input id="domainAddForm" |
| | | name="domain" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.domain" |
| | | ng-maxlength="200" |
| | | maxlength="200"> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mgb5"> |
| | | <label for="ipAdressAddForm" class="issue-label"><span translate="companyField.ipAdress">ip주소</span></label> |
| | | <input id="ipAdressAddForm" |
| | | name="ipAdress" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.ipAdress" |
| | | ng-maxlength="200" |
| | | maxlength="200"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <hr> |
| | | <div class="row"> |
| | | <div class="col-lg-4 fontcolor_green"> |
| | | <label class="issue-label"><span class="fontcolor_green" translate="companyField.info">업체정보</span></label> |
| | | |
| | | <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> |
| | | <span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> |
| | | 업체 이름 클릭시 선택된 이름의 업체 정보가 조회되며, 업체정보에서 추가한 ISP, 호스팅 정보를 불러옵니다.</span> |
| | | </label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div ng-show="fn.containsPartner('업체')" class="row"> |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label class="issue-label"> <span translate="companyField.name">업체이름</span> </label> |
| | | <js-autocomplete-single data-input-name="companyField" |
| | | selected-model="vm.form.companyFields" |
| | | <js-autocomplete-single data-input-name="issueCompanyField" |
| | | selected-model="vm.form.issueCompanyFields" |
| | | search="vm.companyName" |
| | | source="fn.getCompanyFieldList(vm.companyName, vm.form.companyFields, vm.autoCompletePage.companyField.page, fn.getCompanyFieldListCallBack)" |
| | | source="fn.getIssueCompanyFieldList(vm.companyName, vm.form.issueCompanyFields, vm.autoCompletePage.companyField.page, fn.getIssueCompanyFieldListCallBack)" |
| | | page="vm.autoCompletePage.companyField.page" |
| | | total-page="vm.autoCompletePage.companyField.totalPage" |
| | | input-disabled="false" |
| | |
| | | </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="issueAddForm.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" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-lg-4 fontcolor_green"> |
| | | <label class="issue-label"><span class="fontcolor_green" translate="ispField.info">ISP 정보</span></label> |
| | | <p></p> |
| | | <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> |
| | | <!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> ISP 이름 클릭시 선택된 이름의 ISP 정보가 조회됩니다.</span>--> |
| | | </label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div ng-show="fn.containsPartner('ISP')" class="row"> |
| | | <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" |
| | | selected-model="vm.form.ispFields" |
| | | <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.getIspFieldList(vm.ispName, vm.form.ispFields, vm.autoCompletePage.ispField.page, fn.getIspFieldListCallBack)" |
| | | 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" |
| | | 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"> |
| | | <div class="form-group mb10"> |
| | | <label for="ispFieldCodeAddForm" class="issue-label"><span translate="ispField.code">코드</span></label> |
| | | <input id="ispFieldCodeAddForm" |
| | | name="ispCode" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.ispCode" |
| | | ng-maxlength="100" |
| | | maxlength="100"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label for="ispFieldManagerAddForm" class="issue-label"><span translate="ispField.manager">담당자</span></label> |
| | |
| | | </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="issueAddForm.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" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-lg-4 fontcolor_green"> |
| | | <label class="issue-label"><span class="fontcolor_green" translate="hostingField.info">호스팅 정보</span></label> |
| | | <p></p> |
| | | <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> |
| | | <!--<span class="select3-selection__choice" style="position: relative; bottom: 2px;"><code class="highlighter-rouge">*</code> 호스팅 이름 클릭시 선택된 이름의 호스팅 정보가 조회됩니다.</span>--> |
| | | </label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div ng-show="fn.containsPartner('호스팅')" class="row"> |
| | | <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" |
| | | selected-model="vm.form.hostingFields" |
| | | <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" |
| | | ng-model="vm.hostingName" |
| | | search="vm.hostingName" |
| | | source="fn.getHostingFieldList(vm.hostingName, vm.form.hostingFields, vm.autoCompletePage.hostingField.page, fn.getHostingFieldListCallBack)" |
| | | source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" |
| | | page="vm.autoCompletePage.hostingField.page" |
| | | total-page="vm.autoCompletePage.hostingField.totalPage" |
| | | input-disabled="false" |
| | | 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"> |
| | | <div class="form-group mb10"> |
| | | <label for="hostingCodeManagerAdd" class="issue-label"><span translate="hostingField.code">담당자</span></label> |
| | | <input id="hostingCodeManagerAdd" |
| | | name="hostingCode" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.hostingCode" |
| | | ng-maxlength="100" |
| | | maxlength="100"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-4"> |
| | | <div class="form-group mb10"> |
| | | <label for="hostingFieldManagerAdd" class="issue-label"><span translate="hostingField.manager">담당자</span></label> |
| | |
| | | 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" |
| | | 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" |
| | | 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" |
| | | translate="common.invalidUrlFormat">url 형식이 맞지 않습니다. |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | ng-disabled="fn.formCheck(issueAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | |
| | | |