| | |
| | | <div class="support-ticket-content-w" ng-controller="issueDetailController"> |
| | | <div class="support-ticket-content"> |
| | | <span ng-if="vm.viewer.parentIssueVo != null" class="badge" ng-style="{'background-color' : '#353535', 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }"> |
| | | <span>상위 이슈:{{vm.viewer.parentIssueVo.title}}</span> |
| | | <span class="cursor" ng-click="fn.issueBack()">상위 이슈:{{vm.viewer.parentIssueVo.title}}</span> |
| | | </span> |
| | | |
| | | <div class=""> |
| | |
| | | <span class="ticket-header"> |
| | | <div class="tasks-header-w"> |
| | | <span class="tags"> |
| | | <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span> |
| | | <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}} / <span>API : {{vm.viewer.isApi}}</span></span> |
| | | </span> |
| | | </div> |
| | | </span> |
| | |
| | | <div class="row"> |
| | | <div class="col-md-4"> |
| | | <div class="form-group"> |
| | | <h6 class="info_font" translate="common.detectingInfo">탐지정보</h6> |
| | | <h6 class="info_detail_font" translate="common.detectingInfo">탐지정보</h6> |
| | | <span class="issue-detail-label" style="position: relative; top: 1rem" ng-show="vm.viewer.issueCustomFields == ''">사용자 정의 필드값이 없습니다.</span> |
| | | </div> |
| | | </div> |
| | | <div class="col-md-2"> |
| | | <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> |
| | | </div> |
| | | <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> |
| | | </div> |
| | | </div> |
| | | <!-- 사용자 정의 필드 --> |
| | |
| | | ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span> |
| | | <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | <!--이미지 미리보기--> |
| | | <div class="col-md-2"> |
| | | <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> |
| | | </div> |
| | | <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | |
| | | <div ng-show="fn.containsPartner('업체')" class="row"> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <h6 class="info_font" translate="companyField.info">업체정보</h6> |
| | | <h6 class="info_detail_font" translate="companyField.info">업체정보</h6> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div ng-show="fn.containsPartner('ISP');" class="row"> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <h6 class="info_font" translate="ispField.info">ISP정보</h6> |
| | | <h6 class="info_detail_font" translate="ispField.info">ISP정보</h6> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div ng-show="fn.containsPartner('호스팅');" class="row"> |
| | | <div class="col-sm-2"> |
| | | <div class="form-group"> |
| | | <h6 class="info_font" translate="hostingField.info">호스팅정보</h6> |
| | | <h6 class="info_detail_font" translate="hostingField.info">호스팅정보</h6> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <div class="row mt-30"> |
| | | <div class="col-md-10"> |
| | | <span class="info_font h3" translate="issue.relationIssue">연관 이슈</span> |
| | | <span class="info_detail_font h3" translate="issue.relationIssue">연관 이슈</span> |
| | | </div> |
| | | <div class="col-md-1"> |
| | | <button class="btn btn-darkgrey offset-12" ng-click="fn.addRelationIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">테이블 표시 설정</span></button> |
| | | <button class="btn btn-darkgrey offset-10" ng-click="fn.addRelationIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">테이블 표시 설정</span></button> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | extra-settings="{ displayProp : 'title' , idProp : 'id', imageable : false, imagePathProp : '', |
| | | type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single> |
| | | </div> |
| | | <div class="col-auto vertical-middle"> |
| | | <button type="button" class="btn btn-primary form-control input-sm" |
| | | <div class="col-auto vertical-middle" style="display: flex"> |
| | | <button type="button" class="btn btn-primary" |
| | | ng-click="fn.addRelationIssue()" |
| | | translate="issue.addRelationIssue">연관 이슈 추가</button> |
| | | <button type="button" class="btn btn-sm btn-primary btn-roundRel offset-1" |
| | | ng-click="fn.addRelationIssueForm(vm.viewer.id)"> |
| | | <i class="os-icon os-icon-plus"><span></span></i> |
| | | </button> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row mt-30"> |
| | | <div class="col-md-10"> |
| | | <span class="info_font h3" translate="issue.downIssue">하위 이슈</span> |
| | | <div class="col-md-8"> |
| | | <span class="info_detail_font h3" translate="issue.downIssue">하위 이슈</span> |
| | | </div> |
| | | <div class="col-md-1"> |
| | | <button class="btn btn-darkgrey offset-12" ng-click="fn.addDownIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">테이블 표시 설정</span></button> |
| | | <div class="col-sm-2"> |
| | | <a><button type="button" class="btn btn-darkgrey offset-7" |
| | | ng-click="fn.modifyDownIssueStatus()"> |
| | | <span translate="common.updateDownIssueAllStatus">하위이슈 상태 전체 변경</span> |
| | | </button></a> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <button class="btn btn-darkgrey offset-10" ng-click="fn.addDownIssueTableConfig()" type="button"><span translate="issue.settingTableDisplay">테이블 표시 설정</span></button> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <js-autocomplete-single data-input-name="issue" |
| | | selected-model="vm.form.issuesDown" |
| | | search="vm.issueNameDown" |
| | | source="fn.getIssueList(vm.issueNameDown, vm.issueTypeId, vm.form.issuesDown, vm.autoCompletePageDown.issue.page, fn.getIssueListCallBack)" |
| | | source="fn.getDownIssueList(vm.issueNameDown, vm.issueTypeId, vm.form.issuesDown, vm.autoCompletePageDown.issue.page, fn.getDownIssueListCallBack)" |
| | | page="vm.autoCompletePageDown.issue.page" |
| | | total-page="vm.autoCompletePageDown.issue.totalPage" |
| | | input-disabled="false" |
| | |
| | | extra-settings="{ displayProp : 'title' , idProp : 'id', imageable : false, imagePathProp : '', |
| | | type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single> |
| | | </div> |
| | | <div class="col-auto vertical-middle"> |
| | | <button type="button" class="btn btn-primary form-control input-sm" |
| | | <div class="col-auto vertical-middle" style="display: flex"> |
| | | <button type="button" class="btn btn-primary" |
| | | ng-click="fn.addDownIssue()" |
| | | translate="issue.addDownIssue">추가</button> |
| | | </div> |