| | |
| | | </p> |
| | | |
| | | <!-- 프로젝트 --> |
| | | <issue-search-array-view-element lists="vm.projects" |
| | | type="'project'"></issue-search-array-view-element> |
| | | <!-- <issue-search-array-view-element lists="vm.projects"--> |
| | | <!-- type="'project'"></issue-search-array-view-element>--> |
| | | |
| | | <!-- 이슈 타입 --> |
| | | <issue-search-field-key-view-element lists="vm.issueTypes" |
| | | keys="vm.search.issueTypeIds"></issue-search-field-key-view-element> |
| | | <!-- <issue-search-field-key-view-element lists="vm.issueTypes"--> |
| | | <!-- keys="vm.search.issueTypeIds"></issue-search-field-key-view-element>--> |
| | | |
| | | <!-- 이슈 상태 --> |
| | | <issue-search-field-key-view-element lists="vm.issueStatuses" |
| | |
| | | <span ng-click="vm.search.completeDateRange = ''">×</span> |
| | | </p> |
| | | |
| | | <!-- 기간 --> |
| | | <p ng-if="$root.isDefined(vm.search.dateRange)"> |
| | | {{vm.search.dateRange}} |
| | | <span ng-click="vm.search.dateRange = ''">×</span> |
| | | </p> |
| | | |
| | | <!-- 등록일 --> |
| | | <p ng-if="$root.isDefined(vm.search.registerDateRange)"> |
| | | {{vm.search.registerDateRange}} |
| | |
| | | ng-model="vm.search.title"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.project">프로젝트</span></label> |
| | | <js-autocomplete-multi data-input-name="projects" |
| | | selected-model="vm.projects" |
| | | search="vm.projectName" |
| | | input-disabled="false" |
| | | translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }" |
| | | source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])" |
| | | extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="issue.issueType">이슈 타입</span></label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | | data-input-name="issueStatuses" |
| | | selected-model="vm.search.issueTypeIds" |
| | | options="::vm.issueTypes"></ng-dropdown-multiselect> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="issue.issueStatus">이슈 상태</span></label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | | data-input-name="issueStatuses" |
| | | selected-model="vm.search.issueStatusIds" |
| | | options="::vm.issueStatuses"></ng-dropdown-multiselect> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="issue.issueNumber">이슈 번호</span></label> |
| | |
| | | ng-model="vm.search.description"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="col-lg-3">--> |
| | | <!-- <div class="form-group">--> |
| | | <!-- <label> <span translate="common.project">프로젝트</span></label>--> |
| | | <!-- <js-autocomplete-multi data-input-name="projects"--> |
| | | <!-- selected-model="vm.projects"--> |
| | | <!-- search="vm.projectName"--> |
| | | <!-- input-disabled="false"--> |
| | | <!-- translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }"--> |
| | | <!-- source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])"--> |
| | | <!-- extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | <!-- <div class="col-lg-3">--> |
| | | <!-- <div class="form-group">--> |
| | | <!-- <label> <span translate="issue.issueType">이슈 타입</span></label>--> |
| | | <!-- <ng-dropdown-multiselect class="multiSelect cursor"--> |
| | | <!-- data-input-name="issueStatuses"--> |
| | | <!-- selected-model="vm.search.issueTypeIds"--> |
| | | <!-- options="::vm.issueTypes"></ng-dropdown-multiselect>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="issue.issueStatus">이슈 상태</span></label> |
| | | <ng-dropdown-multiselect class="multiSelect cursor" |
| | | data-input-name="issueStatuses" |
| | | selected-model="vm.search.issueStatusIds" |
| | | options="::vm.issueStatuses"></ng-dropdown-multiselect> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.priority">우선 순위</span></label> |
| | |
| | | options="::vm.severities"></ng-dropdown-multiselect> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.register">등록자</span></label> |
| | |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.registrationDate">등록일</span></label> |
| | | <input type="text" |
| | | readonly |
| | | class="form-control input-sm input-readonly" |
| | | ng-model="vm.search.registerDateRange" |
| | | modal-form-auto-scroll |
| | | date-format="YY-MM-DD" |
| | | parent-el="'#createdWidget'" |
| | | date-range-picker> |
| | | <label> <span translate="common.assigneeTeam">담당부서</span></label> |
| | | <js-autocomplete-multi data-input-name="departments" |
| | | selected-model="vm.departments" |
| | | search="vm.departmentName" |
| | | input-disabled="false" |
| | | source="fn.getUserDepartmentList(vm.departmentName, vm.departments)" |
| | | translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }"> |
| | | </js-autocomplete-multi> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | |
| | | <div class="row"> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.assigneeTeam">담당부서</span></label> |
| | | <js-autocomplete-multi data-input-name="departments" |
| | | selected-model="vm.departments" |
| | | search="vm.departmentName" |
| | | input-disabled="false" |
| | | source="fn.getUserDepartmentList(vm.departmentName, vm.departments)" |
| | | translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }"> |
| | | </js-autocomplete-multi> |
| | | <label> <span translate="common.dateRange">기간</span></label> |
| | | <input type="text" |
| | | readonly |
| | | class="form-control input-sm input-readonly" |
| | | ng-model="vm.search.dateRange" |
| | | modal-form-auto-scroll |
| | | date-format="YY-MM-DD" |
| | | parent-el="'#createdWidget'" |
| | | date-range-picker> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label> <span translate="common.registrationDate">등록일</span></label> |
| | | <input type="text" |
| | | readonly |
| | | class="form-control input-sm input-readonly" |
| | | ng-model="vm.search.registerDateRange" |
| | | modal-form-auto-scroll |
| | | date-format="YY-MM-DD" |
| | | parent-el="'#createdWidget'" |
| | | date-range-picker> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="col-lg-3" ng-repeat="customField in vm.customFields"> |
| | | <label>{{::customField.name}}</label> |
| | |
| | | <input type="text" |
| | | class="form-control input-sm" |
| | | ng-model="customField.useValues" |
| | | maxlength="100"> |
| | | > |
| | | </div> |
| | | <div ng-switch-when="NUMBER"> |
| | | <input type="text" |
| | | class="form-control input-sm" |
| | | name="numberType" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | kr-input |
| | | placeholder="숫자만 입력 가능합니다." |
| | | ng-pattern="/^[0-9]*$/" |
| | | autocomplete="off"> |
| | | <div ng-show="issueSearchForm.numberType.$error.pattern" class="help-block form-text text-danger" |
| | | <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger" |
| | | translate="common.invalidNumberFormat">숫자만 입력 가능합니다. |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- todo : 날짜 검색 문제 --> |
| | | <div ng-switch-when="DATETIME"> |
| | | <input type="text" class="form-control input-sm" |
| | | name="dateTime" |
| | | <input class="form-control input-sm input-readonly" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | maxlength="100" |
| | | range-type="singleDate" |
| | | date-range-picker> |
| | | placeholder="{{'issue.clickToSelectDate' | translate}}" |
| | | modal-form-auto-scroll |
| | | range-type="multiDate" |
| | | date-range-picker |
| | | autocomplete="off"> |
| | | <div class="row"> |
| | | <div class="col-xs-12"> |
| | | <div id="createdWidget" class="bootstrap-datepicker "></div> |
| | |
| | | <div ng-switch-when="IP_ADDRESS"> |
| | | <input type="text" |
| | | class="form-control input-sm" |
| | | name="ipAdress" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | 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"> |
| | | <div ng-show="issueSearchForm.ipAdress.$error.pattern" class="help-block form-text text-danger" |
| | | <div ng-if="issueSearchForm['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="email" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | kr-input |
| | | ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" |
| | | placeholder="이메일 형식만 입력 가능합니다." |
| | | autocomplete="off"> |
| | | <div ng-show="issueSearchForm.email.$error.pattern" class="help-block form-text text-danger" |
| | | <div ng-if="issueSearchForm['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="site" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | kr-input |
| | | ng-pattern="/((http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/" |
| | | ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" |
| | | placeholder="홈페이지 주소 형식만 입력 가능합니다." |
| | | autocomplete="off"> |
| | | <div ng-show="issueSearchForm.site.$error.pattern" class="help-block form-text text-danger" |
| | | <div ng-if="issueSearchForm['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="tel" |
| | | name="item_{{$index}}" |
| | | ng-model="customField.useValues" |
| | | kr-input |
| | | ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/" |
| | | placeholder="연락처 형식만 입력 가능합니다." |
| | | autocomplete="off"> |
| | | <div ng-show="issueSearchForm.tel.$error.pattern" class="help-block form-text text-danger" |
| | | <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger" |
| | | translate="common.invalidTelFormat">전화번호 형식이 맞지 않습니다. |
| | | </div> |
| | | </div> |