From bdb1efdc604fce543e21152b4263a9362f64389f Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 목, 10 3월 2022 15:35:19 +0900 Subject: [PATCH] - api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정 - issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가 --- src/main/webapp/views/issue/issueModify.html | 886 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 767 insertions(+), 119 deletions(-) diff --git a/src/main/webapp/views/issue/issueModify.html b/src/main/webapp/views/issue/issueModify.html index 863a4f5..50cf7d7 100644 --- a/src/main/webapp/views/issue/issueModify.html +++ b/src/main/webapp/views/issue/issueModify.html @@ -23,12 +23,14 @@ autocomplete="off" autofocus owl-auto-focus> - <small class="help-block form-text text-danger" ng-if="issueModifyForm.title.$touched && issueModifyForm.title.$error.required" translate="issue.requireIssueTitle">�씠�뒋 �젣紐⑹쓣 �엯�젰�븯�꽭�슂.</small> + <small class="help-block form-text text-danger" + ng-if="issueModifyForm.title.$touched && issueModifyForm.title.$error.required" + translate="issue.requireIssueTitle">�씠�뒋 �젣紐⑹쓣 �엯�젰�븯�꽭�슂. + </small> </div> - <div class="row"> <div class="col-lg-4"> - <div class="form-group mgb5"> + <div class="form-group mb10"> <label class="issue-label"> <span translate="common.project">�봽濡쒖젥�듃</span> <code class="highlighter-rouge">*</code></label> <js-autocomplete-single data-input-name="project" @@ -37,42 +39,37 @@ 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> - <small translate="issue.initializedAssigneeCustomField">�봽濡쒖젥�듃瑜� 蹂�寃쏀븯硫� �떞�떦�옄, �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 珥덇린�솕 �맗�땲�떎.</small> </div> </div> <div class="col-lg-8 bdl1"> <div class="row"> <div class="col-md-4"> - <div class="form-group mgb5"> - <label for="issueModifyForm4" class="issue-label"> <span translate="issue.issueType">�씠�뒋 ���엯</span> - <code - class="highlighter-rouge">*</code></label> + <div class="form-group mb10"> + <label for="issueModifyForm4" class="issue-label"> <span + translate="issue.issueType">�씠�뒋 ���엯</span> + <code class="highlighter-rouge">*</code></label> <select id="issueModifyForm4" name="issueType" - class="form-control input-sm" + class="form-control input-sm issue-select-label" ng-model="vm.form.issueTypeId" ng-change="fn.getIssueTypeCustomFields()" ng-style="{ 'color' : fn.getOptionColor(vm.issueTypes, vm.form.issueTypeId) }" - required> - <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"> - <span translate="common.selectTarget">���긽 �꽑�깮</span> + required + disabled> + <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span + translate="common.selectTarget">���긽 �꽑�깮</span> </option> <option ng-repeat="issueType in vm.issueTypes" ng-style="{ 'color' : issueType.color, 'font-weight': 600 }" value="{{issueType.id}}">�뿈 {{issueType.name}} </option> </select> - <small translate="issue.initializedIssueStatus">�씠�뒋 ���엯�쓣 蹂�寃쏀븷 寃쎌슦 �궗�슜�옄 �젙�쓽 �븘�뱶, �씠�뒋 �긽�깭媛� 珥덇린�솕 - �맗�땲�떎. - </small> </div> </div> - <div class="col-md-4"> <div class="form-group mb10"> <label for="issueModifyForm2" class="issue-label"> @@ -85,7 +82,7 @@ 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 ng-repeat="priority in vm.priorities" @@ -96,16 +93,16 @@ </select> </div> </div> - <div class="col-md-4"> <div class="form-group mb10"> - <label for="issueModifyForm3" class="issue-label"> <span translate="common.importance">以묒슂�룄</span> - <code class="highlighter-rouge">*</code></label> + <label for="issueModifyForm3" class="issue-label"> <span + translate="common.importance">以묒슂�룄</span> <code + class="highlighter-rouge">*</code></label> <select id="issueModifyForm3" name="severity" class="form-control input-sm issue-select-label" ng-model="vm.form.severityId" - ng-style="{ 'color' : fn.getOptionColor(vm.severities, vm.form.severityId)}" + ng-style="{ 'color' : fn.getOptionColor(vm.severities, vm.form.severityId) }" required> <option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }"> <span translate="common.selectTarget">���긽 �꽑�깮</span> @@ -121,50 +118,33 @@ </div> </div> </div> - - <div class="form-group mb10"> - <label class="issue-label"><span translate="common.content">�궡�슜</span></label> - <summernote - class="summernote" - lang="ko-KR" - summer-note-auto-focus - ng-model="vm.form.description" - data-editor="vm.summerNote.editor" - data-editable="vm.summerNote.editable" - on-image-upload="fn.imageUpload(files)" - target=".note-editable"></summernote> - </div> - + <hr> <div class="row"> <div class="col-lg-4"> - <div class="form-group mgb5"> + <div class="form-group mb10"> <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label> - <js-input-autocomplete data-input-name="users" - selected-model="vm.form.users" - search="vm.userName" - page="vm.autoCompletePage.user.page" - total-page="vm.autoCompletePage.user.totalPage" - source="fn.getUserList(vm.userName, vm.form.users, vm.autoCompletePage.user.page, fn.getUserListCallBack)" - translation-texts="{ empty : 'common.emptyUser'}" - input-disabled="vm.form.projects.length == 0" - extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', - type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete> + <js-autocomplete-multi data-input-name="departments" + selected-model="vm.form.departments" + search="vm.departmentName" + 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> - <small translate="common.setParticipatingInProject">�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.</small> - <div class="select3-selection__choicediv"> - <span class="select3-selection__choice" ng-repeat="user in vm.form.users"> - <span class="avatar-w"><img ng-src="{{user.profile}}"></span> - <span>{{user.name}}({{user.account}})</span> - <span class="select3-selection__choice__remove" - ng-click="fn.removeManager($index)">횞</span> + <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.removeDepartment($index)">횞</span> </span> </div> </div> + </div> - <div class="form-group mgb5"> - <label for="issueModifyForm5" class="issue-label"> <span translate="common.period">湲곌컙</span> - </label> + <div class="col-lg-4"> + <div class="form-group mb10"> + <label for="issueModifyForm5" class="issue-label"> <span translate="common.period">湲곌컙</span></label> <input id="issueModifyForm5" + tabindex="-1" type="text" readonly class="form-control cursor" @@ -180,7 +160,8 @@ </div> </div> </div> - + </div> + <div class="col-lg-4"> <div class="form-group mgb5"> <label class="issue-label"><span translate="common.attachFiles">�뙆�씪 泥⑤�</span></label> <div class="filebox input-group"> @@ -188,7 +169,8 @@ placeholder="{{'users.pleaseSelectFile' | translate}}" tabindex="-1" disabled="disabled"> - <label for="uploadFileField"><span translate="common.selectFile">�뙆�씪�꽑�깮</span></label> + <label for="uploadFileField"><span + translate="common.selectFile">�뙆�씪�꽑�깮</span></label> <input id="uploadFileField" tabindex="-1" type="file" @@ -196,14 +178,10 @@ multiple ng-file-select="fn.onFileSelect($files)"> </div> - <small translate="issue.attachOnlyFiles">hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, - docx, zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov �뙆�씪留� 泥⑤��븷 �닔 �엳�뒿�땲�떎. - </small> <div class="select2-selection__choicediv"> <div class="select2-selection__choice2" ng-repeat="file in vm.form.files"> - <div class="select2-selection__choice2__remove" - ng-click="fn.removeUploadFile($index)"> + <div class="select2-selection__choice2__remove" ng-click="fn.removeUploadFile($index)"> 횞 </div> <div class="ssg-items ssg-items-blocks"> @@ -215,12 +193,7 @@ <i class="os-icon os-icon-film" ng-if="file.fileType == 'MEDIA'"></i> <!-- �씠誘몄�(�뾽濡쒕뱶 �쟾) --> <i class="os-icon os-icon-documents-07" - ng-if="file.fileType == 'IMAGE' && !$root.isDefined(file.path)"></i> - <!-- �씠誘몄�(�뾽濡쒕뱶 �썑) --> - <span class="attached-media-w" - ng-if="file.fileType == 'IMAGE' && $root.isDefined(file.path)"> - <img ng-src="{{file.path}}"> - </span> + ng-if="file.fileType == 'IMAGE'"></i> <!-- 湲고� --> <i class="os-icon os-icon-ui-51" ng-if="file.fileType == 'ETC'"></i> </div> @@ -236,69 +209,744 @@ </div> </div> </div> + </div> - <div class="col-lg-8 bdl1"> - <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> + <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="col-lg-12"> + <div class="row"> + <div class="col-md-12"> + <div class="form-group mgb5" ng-if="vm.form.issueCustomFields.length < 1"> + <label class="issue-label" translate="issue.notIssueTypeCustomFields">�씠�뒋 ���엯�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 + �븘�뱶媛� �뾾�뒿�땲�떎.</label> </div> + </div> - <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields"> - <div class="form-group mgb5"> - <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label> + <div class="col-md-4" ng-repeat="issueCustomField in vm.form.issueCustomFields"> + <div class="form-group mgb5"> + <label class="issue-label">{{issueCustomField.customFieldVo.name}} <code ng-if="issueCustomField.customFieldVo.requiredData == 'Y'" class="highlighter-rouge">*</code> </label> - <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> - <!-- 湲곕낯 �엯�젰 --> - <div ng-switch-when="INPUT"> - <input type="text" class="form-control input-sm" - ng-model="issueCustomField.useValues" - maxlength="100" - autocomplete="off" - kr-input - ng-required="issueCustomField.fieldOption == '01'"> + <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> + <!-- 湲곕낯 �엯�젰 --> + <div ng-switch-when="INPUT"> + <input type="text" class="form-control input-sm" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + 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="issueModifyForm.inputValue.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄�젙�쓽�븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + </div> + + <div ng-switch-when="NUMBER"> + <input type="text" class="form-control input-sm" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-pattern="/^[0-9]*$/" + placeholder="�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎." + 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="issueModifyForm.numberType.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + <div ng-if="issueModifyForm.numberType.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidNumberFormat">�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎. </div> + </div> - <!-- �떒�씪 ���젆�듃 --> - <div ng-switch-when="SINGLE_SELECT"> - <select class="form-control input-sm" - ng-required="issueCustomField.fieldOption == '01'" - ng-model="issueCustomField.useValues"> - <option value="">�꽑�깮�븯�꽭�슂.</option> - <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos" - value="{{customFieldValueVo.value}}" - ng-selected="$root.selectOption(issueCustomField.useValues, customFieldValueVo.value)"> - {{customFieldValueVo.value}} - </option> - </select> - </div> + <div ng-switch-when="DATETIME"> + <input class="form-control input-sm input-readonly" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + placeholder="{{'issue.clickToSelectDate' | translate}}" + modal-form-auto-scroll + range-type="singleDate" + date-range-picker + kr-input + autocomplete="off" + 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="issueModifyForm.dateTime.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + </div> - <!-- 硫��떚 ���젆�듃 --> - <div ng-switch-when="MULTI_SELECT"> - <ng-dropdown-multiselect class="multiSelect cursor" - data-input-name="" - selected-model="issueCustomField.useValues" - extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }" - options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect> + <div ng-switch-when="IP_ADDRESS"> + <input type="text" class="form-control input-sm" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + 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 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + 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="issueModifyForm.ipAddress.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + <div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger" + translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> + </div> + + <div ng-switch-when="EMAIL"> + <input type="email" class="form-control input-sm" + name="item_{{$index}}" + maxlength="30" + ng-model="issueCustomField.useValues" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + placeholder="�씠硫붿씪 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + 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="issueModifyForm.ipAddress.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + <div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger" + translate="common.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + + <div ng-switch-when="SITE"> + <input type="text" class="form-control input-sm" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + maxlength="100" + autocomplete="off" + kr-input + ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" + placeholder="�솃�럹�씠吏� 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + 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="issueModifyForm.site.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + <div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger" + translate="common.invalidSiteFormat">�솃�럹�씠吏� 二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(http://濡� �떆�옉�븯�뀛�빞�빀�땲�떎) + </div> + </div> + + <div ng-switch-when="TEL"> + <input type="text" class="form-control input-sm" + name="item_{{$index}}" + ng-model="issueCustomField.useValues" + maxlength="30" + autocomplete="off" + kr-input + ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/" + placeholder="�뿰�씫泥� �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + 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="issueModifyForm.tel.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> + <!--<div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger" + translate="common.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div>--> + </div> + + <!-- �떒�씪 ���젆�듃 --> + <div ng-switch-when="SINGLE_SELECT"> + <select class="form-control input-sm issue-select-label" + name="item_{{$index}}" + 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="issueModifyForm.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="issueModifyForm.multiSelect.$error.required"--> +<!-- translate="issue.pleaseEnterIssueTypeCustomFields">�빐�떦 �궗�슜�옄 �젙�쓽 �븘�뱶�뒗 �븘�닔 �엯�젰 媛� �엯�땲�떎.--> +<!-- </small>--> </div> </div> </div> </div> </div> </div> - </form> - </div> + <hr> + <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="modal-footer buttons-on-right"> - <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()" tabindex="-1"><span - translate="common.cancel">痍⑥냼</span></button> - <button type="button" class="btn btn-md btn-primary bold" - js-short-cut - js-short-cut-action="(fn.formCheck(issueModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" - ng-disabled="fn.formCheck(issueModifyForm.$invalid)" - ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> - </button> + <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="issueCompanyField" + selected-model="vm.form.issueCompanyFields" + search="vm.companyName" + custom-input="true" + source="fn.getIssueCompanyFieldList(vm.companyName, vm.form.issueCompanyFields, vm.autoCompletePage.companyField.page, fn.getIssueCompanyFieldListCallBack)" + page="vm.autoCompletePage.companyField.page" + total-page="vm.autoCompletePage.issueCompanyField.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyCompany' }" + broad-cast="companyFieldEvent" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mb10"> + <label for="companyFieldManagerAddForm" class="issue-label"><span translate="companyField.manager">�떞�떦�옄</span></label> + <input id="companyFieldManagerAddForm" + name="companyManager" + type="text" + class="form-control" + autofocus + kr-input + input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" + autocomplete="off" + ng-model="vm.companyManager" + ng-maxlength="100" + maxlength="100" + > + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="companyFieldTelAddForm" class="issue-label"><span translate="companyField.tel">�쟾�솕踰덊샇</span></label> + <input id="companyFieldTelAddForm" + name="companyTel" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.companyTel" + > + <!--<div ng-show="issueModifyForm.companyTel.$error.pattern" class="help-block form-text text-danger" + translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. + </div>--> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">�씠硫붿씪</span></label> + <input id="companyFieldEmailAddForm" + name="companyEmail" + type="text" + class="form-control" + autocomplete="off" + ng-model="vm.companyEmail" + kr-input> + <!--<div ng-show="issueModifyForm.companyEmail.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div>--> + </div> + </div> + <div class="col-lg-3-2"> + <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 ng-show="issueModifyForm.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]?)$/" + placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + autocomplete="off" + ng-model="vm.ipStart" + > + <div ng-if="issueModifyForm.ipStart.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="mt-30"> + <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]?)$/" + placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎." + autocomplete="off" + ng-model="vm.ipEnd" + > + <div ng-if="issueModifyForm.ipEnd.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </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" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-maxlength="200" + ng-model="vm.companyMemo" + maxlength="200"> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> + <span translate="companyField.companyType">湲곗뾽援щ텇</span> + </label> + <js-autocomplete-single data-input-name="companyType" + selected-model="vm.form.companyTypes" + ng-model="vm.form.companyType" + custom-input="false" + search="vm.form.companyType" + source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)" + 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> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> + <span translate="companyField.parentSector">�뾽醫�(��遺꾨쪟)</span> + </label> + <js-autocomplete-single data-input-name="parentSector" + selected-model="vm.form.parentSectors" + ng-model="vm.form.parentSector" + custom-input="false" + search="vm.form.parentSector" + source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)" + 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> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> + <span translate="companyField.childSector">�뾽醫�(以묐텇瑜�)</span> + </label> + <js-autocomplete-single data-input-name="childSector" + selected-model="vm.form.childSectors" + ng-model="vm.form.childSector" + custom-input="false" + search="vm.form.childSector" + source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)" + 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> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> + <span translate="companyField.region">吏��뿭</span> + </label> + <js-autocomplete-single data-input-name="region" + selected-model="vm.form.regions" + ng-model="vm.form.region" + custom-input="false" + search="vm.form.region" + source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)" + 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> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label class="issue-label"> + <span translate="companyField.status">�긽�깭</span> + </label> + <js-autocomplete-single data-input-name="status" + selected-model="vm.form.statuses" + ng-model="vm.form.status" + custom-input="false" + search="vm.form.status" + source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)" + 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> + </div> + </div> + </div> + <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 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> + <!--<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)" + 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> + </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> + <input id="ispFieldManagerAddForm" + name="ispManager" + 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.ispManager" + ng-maxlength="100" + maxlength="100"> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="ispFieldTelAddForm" class="issue-label"><span translate="ispField.tel">�쟾�솕踰덊샇</span></label> + <input id="ispFieldTelAddForm" + name="ispTel" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.ispTel" + > + <!--<div ng-show="issueModifyForm.ispTel.$error.pattern" class="help-block form-text text-danger" + translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. + </div>--> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">�씠硫붿씪</span></label> + <input id="ispFieldEmailAddForm" + name="ispEmail" + type="text" + class="form-control" + autocomplete="off" + ng-model="vm.ispEmail" + kr-input + > + <!--<div ng-show="issueModifyForm.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 ng-show="issueModifyForm.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" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.ispMemo" + ng-maxlength="200" + maxlength="200"> + </div> + </div> + </div> + <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 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> + <!--<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.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" + 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> + </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> + <input id="hostingFieldManagerAdd" + name="hostingManager" + 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.hostingManager" + ng-maxlength="100" + maxlength="100"> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="hostingFieldTelAdd" class="issue-label"><span translate="hostingField.tel">�쟾�솕踰덊샇</span></label> + <input id="hostingFieldTelAdd" + name="hostingTel" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.hostingTel" + > + <!--<div ng-show="issueModifyForm.hostingTel.$error.pattern" class="help-block form-text text-danger" + translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂. + </div>--> + </div> + </div> + <div class="col-lg-4"> + <div class="form-group mgb5"> + <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">�씠硫붿씪</span></label> + <input id="hostingFieldEmailAdd" + name="hostingEmail" + type="text" + class="form-control" + autocomplete="off" + ng-model="vm.hostingEmail" + kr-input> + <!--div ng-show="issueModifyForm.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 ng-show="issueModifyForm.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" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.hostingMemo" + ng-maxlength="200" + maxlength="200"> + </div> + </div> + </div> + </form> + <hr> + <div class="form-group mb10"> + <label class="issue-label"><span translate="common.content">�궡�슜</span></label> + <summernote + class="summernote" + lang="ko-KR" + summer-note-auto-focus + ng-model="vm.form.description" + data-editor="vm.summerNote.editor" + data-editable="vm.summerNote.editable" + on-image-upload="fn.imageUpload(files)" + target=".note-editable"></summernote> + </div> </div> </div> + + +<div class="modal-footer buttons-on-right"> + <div class="pull-left"> + <label> + <input class="form-control issue-continue-checkbox pull-left" type="checkbox" ng-model="vm.infiniteAdd" + tabindex="-1"> + <span translate="issue.continueCreateIssue">�씠 �솕硫댁뿉�꽌 �씠�뒋瑜� 怨꾩냽 �깮�꽦�빀�땲�떎.</span> + </label> + </div> + <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()" tabindex="-1"><span + translate="common.cancel">痍⑥냼</span></button> + <button type="button" class="btn btn-md btn-primary bold" + js-short-cut + js-short-cut-action="(fn.formCheck(issueModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" + ng-disabled="fn.formCheck(issueModifyForm.$invalid)" + ng-click="fn.formSubmit()"><span translate="common.save">���옣</span> + </button> +</div> + + -- Gitblit v1.8.0