<div class="formModal">
|
<div class="modal-header faded smaller">
|
<div class="modal-title">
|
<strong>연관 이슈 추가</strong>
|
</div>
|
<button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
|
<span aria-hidden="true"> ×</span>
|
</button>
|
</div>
|
|
<div class="modal-body">
|
<form role="form" name="issueAddRelationForm">
|
<div class="form-group mb10">
|
<label for="issueAddRelationForm1" class="issue-label"><span translate="issue.issueTitle">이슈 제목</span> <code
|
class="highlighter-rouge">*</code></label>
|
<input id="issueAddRelationForm1"
|
class="form-control input-sm"
|
ng-model="vm.form.title"
|
name="title"
|
required
|
kr-input
|
maxlength="300"
|
autocomplete="off"
|
autofocus
|
owl-auto-focus>
|
<small class="help-block form-text text-danger"
|
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">
|
<label class="issue-label"> <span translate="common.project">프로젝트</span> <code
|
class="highlighter-rouge">*</code></label>
|
<js-autocomplete-single data-input-name="project"
|
selected-model="vm.form.projects"
|
ng-model="vm.form.projects"
|
ng-change="fn.getIssueTypeOfProject()"
|
search="vm.projectName"
|
source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)"
|
page="vm.autoCompletePage.project.page"
|
total-page="vm.autoCompletePage.project.totalPage"
|
input-disabled="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>
|
</div>
|
</div>
|
|
<div class="col-lg-8 bdl1">
|
<div class="row">
|
<div class="col-md-4">
|
<div class="form-group mb10">
|
<label for="issueAddRelationForm4" class="issue-label"> <span
|
translate="issue.issueType">이슈 타입</span>
|
<code class="highlighter-rouge">*</code></label>
|
<select id="issueAddRelationForm4"
|
name="issueType"
|
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>
|
</option>
|
<option ng-repeat="issueType in vm.issueTypes"
|
ng-style="{ 'color' : issueType.color, 'font-weight': 600 }"
|
value="{{issueType.id}}">● {{issueType.name}}
|
</option>
|
</select>
|
</div>
|
</div>
|
<div class="col-md-4">
|
<div class="form-group mb10">
|
<label for="issueAddRelationForm2" class="issue-label">
|
<span translate="common.priority">우선 순위</span>
|
<code class="highlighter-rouge">*</code>
|
</label>
|
<select id="issueAddRelationForm2"
|
name="priority"
|
class="form-control input-sm issue-select-label"
|
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' }">
|
<span translate="common.selectTarget">대상 선택</span>
|
</option>
|
<option ng-repeat="priority in vm.priorities"
|
ng-style="{ 'color' : priority.color, 'font-weight': 600 }"
|
value="{{priority.id}}"
|
translate="{{priority.name}}">
|
</option>
|
</select>
|
</div>
|
</div>
|
<div class="col-md-4">
|
<div class="form-group mb10">
|
<label for="issueAddRelationForm3" class="issue-label"> <span
|
translate="common.importance">중요도</span> <code
|
class="highlighter-rouge">*</code></label>
|
<select id="issueAddRelationForm3"
|
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) }"
|
required>
|
<option value="" translate="common.selectTarget" ng-style="{ color : '#353535' }">
|
<span translate="common.selectTarget">대상 선택</span>
|
</option>
|
<option ng-repeat="severity in vm.severities"
|
ng-style="{ color : severity.color, 'font-weight': 600 }"
|
value="{{severity.id}}"
|
translate="{{severity.name}}">
|
</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<hr>
|
<div class="row">
|
<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="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>
|
|
<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="col-lg-4">
|
<div class="form-group mb10">
|
<label for="issueAddRelationForm5" class="issue-label"> <span translate="common.period">기간</span></label>
|
<input id="issueAddRelationForm5"
|
tabindex="-1"
|
type="text"
|
readonly
|
class="form-control cursor"
|
placeholder="{{'issue.clickToSelectDate' | translate}}"
|
ng-model="vm.form.startCompleteDateRange"
|
modal-form-auto-scroll
|
date-format="YYYY-MM-DD"
|
parent-el="'#createdWidget'"
|
date-range-picker>
|
<div class="row">
|
<div class="col-xs-12">
|
<div id="createdWidget" class="bootstrap-datepicker"></div>
|
</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">
|
<input class="upload-name form-control"
|
placeholder="{{'users.pleaseSelectFile' | translate}}"
|
tabindex="-1"
|
disabled="disabled">
|
<label for="uploadFileField"><span
|
translate="common.selectFile">파일선택</span></label>
|
<input id="uploadFileField"
|
tabindex="-1"
|
type="file"
|
class="form-control"
|
multiple
|
ng-file-select="fn.onFileSelect($files)">
|
</div>
|
|
<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>
|
<div class="ssg-items ssg-items-blocks">
|
<div class="ssg-item">
|
<div class="item-icon">
|
<!-- 문서 -->
|
<i class="os-icon os-icon-file-text" ng-if="file.fileType == 'DOC'"></i>
|
<!-- 미디어 -->
|
<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'"></i>
|
<!-- 기타 -->
|
<i class="os-icon os-icon-ui-51" ng-if="file.fileType == 'ETC'"></i>
|
</div>
|
<div class="item-name">
|
<small>{{file.name}}</small>
|
</div>
|
<div class="item-amount">
|
({{file.size/1024/1024 | number:2}} MB)
|
</div>
|
</div>
|
</div>
|
</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="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"
|
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="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' || 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' || 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' || 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' || 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' || 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"
|
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="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>
|
</div>
|
</div>
|
</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 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.companyField.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="issueAddRelationForm.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="issueAddRelationForm.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="issueAddRelationForm.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="issueAddRelationForm.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="issueAddRelationForm.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="issueAddRelationForm.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="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 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"
|
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"
|
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="issueAddRelationForm.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="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 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"
|
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(issueAddRelationForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
|
ng-disabled="fn.formCheck(issueAddRelationForm.$invalid)"
|
ng-click="fn.formSubmit()"><span translate="common.save">저장</span>
|
</button>
|
</div>
|