From 30ddd2cf095d2857ba1134fb3deaf51392ef1030 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 화, 07 12월 2021 21:31:45 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/webapp/views/issue/issueDetail.html | 212 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 128 insertions(+), 84 deletions(-) diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 1b7b9f4..91fb912 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -86,7 +86,7 @@ <!-- �긽�꽭 �솕硫� --> <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' : vm.viewer.issueStatusVo.color, 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }"> + <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> @@ -103,7 +103,7 @@ </span> <a class="show-ticket-info cursor"> - <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMail(vm.viewer.id, vm.viewer.projectVo.id)" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> + <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 蹂�寃� �씠�젰 �긽�꽭 蹂닿린"></i> <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 諛쒖깮 �삁�빟 �븯湲�"></i> @@ -165,8 +165,8 @@ <div class="col-md-4"> <div class="form-group"> <label class="issue-detail-label"><span translate="common.importance">以묒슂�룄</span></label> - <label class="issue-detail-label offset-1"><span translate="common.priority">�슦�꽑 �닚�쐞</span></label> - <label class="issue-detail-label offset-1"><span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> + <label class="issue-detail-label offset-detail-1"><span translate="common.priority">�슦�꽑 �닚�쐞</span></label> + <label class="issue-detail-label offset-detail-2"><span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label> <div class=""> <span class="badge" ng-style="{'background-color' : vm.viewer.severityVo.color, 'border-color' : vm.viewer.severityVo.color, 'color' : '#FFFFFF' }" translate="{{vm.viewer.severityVo.name}}"></span> @@ -188,30 +188,104 @@ <div class="row"> <div class="col-md-4"> <div class="form-group"> - <h6 class="info_font" translate="common.detectingInfo">�깘吏��젙蹂�</h6> - <div class=""> - <label class="issue-detail-label"><span translate="common.diffuserURL">�쑀�룷�옄URL</span> </label> - <label class="issue-detail-label offset-2"><span translate="common.country">援�媛�</span></label> - <div class=""> - <span>200.11.13.123</span> - <span class="country">US</span> - </div> -<!-- <span ng-if="vm.viewer.userVos.length < 1" translate="common.noAssignee">�떞�떦�옄媛� �뾾�뒿�땲�떎.</span>--> - </div> + <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> + <!-- �궗�슜�옄 �젙�쓽 �븘�뱶 --> + <div class="row"> + <div class="col-md-2" ng-repeat="issueCustomField in vm.viewer.issueCustomFields"> + <label class="issue-detail-label">{{::issueCustomField.customFieldVo.name}}</label> + <div ng-switch on="issueCustomField.customFieldVo.customFieldType"> + <!-- 湲곕낯 �엯�젰 --> + <div ng-switch-when="INPUT"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="NUMBER"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="DATETIME"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="IP_ADDRESS"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="EMAIL"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="SITE"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <div ng-switch-when="TEL"> + <!-- �씫湲� 紐⑤뱶 --> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + + <!-- �떒�씪 ���젆�듃 --> + <div ng-switch-when="SINGLE_SELECT"> + <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </div> + + <!-- 硫��떚 ���젆�듃 --> + <div ng-switch-when="MULTI_SELECT"> + <span class="issue-detail-word-break" + ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span> + <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span> + </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 class=""> + <label class="issue-detail-label"><span>{{vm.viewer.issueCustomFieldValueVos[0].useValue}}</span> </label> + <div class=""> + <span>{{vm.viewer.issueCustomFieldValueVos[0].customFieldVo.name}}</span> + </div> + <span ng-if="vm.viewer.userVos.length < 1" translate="common.noAssignee">�떞�떦�옄媛� �뾾�뒿�땲�떎.</span> + </div>--> <hr> <!-- <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span>--> - <div class="row"> + <div class="issue-detail-label"> + <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 class="row"> + <div ng-show="fn.containsPartner('�뾽泥�')" class="row"> <div class="col-sm-2"> <div class="form-group"> <span translate="companyField.companyName">�뾽泥대챸</span>: @@ -241,7 +315,7 @@ <div class="form-group"> <div class=""> <span translate="companyField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueCompanyVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueCompanyVos)">{{vm.viewer.issueCompanyVos[0].email}}</span> </div> </div> </div> @@ -255,16 +329,17 @@ </div> </div> </div> - - <div class="row"> + </div> + <div class="issue-detail-label"> + <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 class="row"> + <div ng-show="fn.containsPartner('ISP');" class="row"> <div class="col-sm-2"> <div class="form-group"> <span translate="ispField.ispName">ISP紐�</span>: @@ -301,7 +376,7 @@ <div class="form-group"> <div class=""> <span translate="ispField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueIspVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueIspVos)">{{vm.viewer.issueIspVos[0].email}}</span> </div> </div> </div> @@ -315,16 +390,18 @@ </div> </div> </div> - - <div class="row"> + </div> + <div class="issue-detail-label"> + <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"> + <div ng-show="fn.containsPartner('�샇�뒪�똿');" class="row"> + <div class="col-sm-2"> <div class="form-group"> <span translate="hostingField.hostingName">�샇�뒪�똿紐�</span>: @@ -361,7 +438,7 @@ <div class="form-group"> <div class=""> <span translate="hostingField.email">�씠硫붿씪</span>: - <span class="email_color">{{vm.viewer.issueHostingVos[0].email}}</span> + <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueHostingVos)">{{vm.viewer.issueHostingVos[0].email}}</span> </div> </div> </div> @@ -375,46 +452,18 @@ </div> </div> </div> - - <!-- �궗�슜�옄 �젙�쓽 �븘�뱶 --> -<!-- <div class="row">--> -<!-- <div class="col-md-4" ng-repeat="issueCustomField in vm.viewer.issueCustomFields">--> -<!-- <label class="issue-detail-label">{{::issueCustomField.customFieldVo.name}}</label>--> - -<!-- <div ng-switch on="issueCustomField.customFieldVo.customFieldType">--> -<!-- <!– 湲곕낯 �엯�젰 –>--> -<!-- <div ng-switch-when="INPUT" class="form-group">--> -<!-- <!– �씫湲� 紐⑤뱶 –>--> -<!-- <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span>--> -<!-- <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span>--> -<!-- </div>--> - -<!-- <!– �떒�씪 ���젆�듃 –>--> -<!-- <div ng-switch-when="SINGLE_SELECT" class="form-group">--> -<!-- <span class="issue-detail-word-break">{{::issueCustomField.useValues}}</span>--> -<!-- <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span>--> -<!-- </div>--> - -<!-- <!– 硫��떚 ���젆�듃 –>--> -<!-- <div ng-switch-when="MULTI_SELECT" class="form-group">--> -<!-- <span class="issue-detail-word-break"--> -<!-- ng-repeat="useValue in issueCustomField.useValues">{{::useValue.value}}, </span>--> -<!-- <span ng-if="!$root.isDefined(issueCustomField.useValues)">-</span>--> -<!-- </div>--> -<!-- </div>--> -<!-- </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> - <!-- �뀒�씠釉� --> + <!-- �뿰愿� �씠�뒋 �뀒�씠釉� --> <div class="mt-10 issue-detail-word-break width-100"> <js-table data="vm.viewer.issueRelationVos" table-configs="vm.relTableConfigs" event="relTableEvent" detail-view="true" hide-header="false" use-sort="false"></js-table> @@ -435,7 +484,7 @@ <js-autocomplete-single data-input-name="issue" selected-model="vm.form.issues" search="vm.issueName" - source="fn.getIssueList(vm.issueName, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)" + source="fn.getIssueList(vm.issueName, vm.issueTypeId, vm.form.issues, vm.autoCompletePage.issue.page, fn.getIssueListCallBack)" page="vm.autoCompletePage.issue.page" total-page="vm.autoCompletePage.issue.totalPage" input-disabled="false" @@ -443,35 +492,44 @@ 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"> + <div class="col-auto vertical-middle" style="display: flex"> <button type="button" class="btn btn-primary form-control input-sm" 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"> + <button type="button" class="btn btn-primary form-control input-sm offset-5" ng-click="fn.modifyDownIssueStatus()" + translate="common.updateDownIssueAllStatus">�븯�쐞�씠�뒋 �긽�깭 �쟾泥� 蹂�寃�</button> + </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> - <!-- �뀒�씠釉� --> + <!-- �븯�쐞 �씠�뒋 �뀒�씠釉� --> <div class="mt-10 issue-detail-word-break width-100"> <js-table data="vm.viewer.issueDownVos" table-configs="vm.downTableConfigs" event="downTableEvent" detail-view="true" hide-header="false" use-sort="false"></js-table> <div class="row"> + <div class="col-sm-6"> <js-autocomplete-single data-input-name="issue" selected-model="vm.form.issuesDown" search="vm.issueNameDown" - source="fn.getIssueList(vm.issueNameDown, 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" @@ -479,7 +537,7 @@ 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"> + <div class="col-auto vertical-middle" style="display: flex"> <button type="button" class="btn btn-primary form-control input-sm" ng-click="fn.addDownIssue()" translate="issue.addDownIssue">異붽�</button> @@ -490,7 +548,7 @@ <h6 class="todo-content-subheader mt-30" translate="common.content">�궡�슜</h6> <div class="box mt-10 issue-detail-word-break width-100" > - <div ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> + <div class="issue-detail-tab" ng-bind-html="$root.$sce.trustAsHtml(vm.viewer.description)"></div> <span class="fc-grey" ng-if="!$root.isDefined(vm.viewer.description)" translate="common.noContent"> �궡�슜�씠 �뾾�뒿�땲�떎. </span> @@ -534,20 +592,6 @@ <div ng-show="vm.viewer.attachedFileVos.length < 1" class="detail-not-elements"> <span translate="common.noAttachedFile">泥⑤��맂 �뙆�씪�씠 �뾾�뒿�땲�떎.</span> </div> - </div> - - <div class="row"> - <div class="col-sm-12"> - <h6 class="todo-content-subheader mt-20"><span translate="issue.previewImage">�씠誘몄� 誘몃━ 蹂닿린</span> - </h6> - <div class="pdt10"> - <issue-detail-image-preview images="vm.images"></issue-detail-image-preview> - </div> - </div> - <div ng-show="vm.images.length < 1" class="detail-not-elements width-100"> - <span translate="common.noImage">泥⑤��맂 �씠誘몄�媛� �뾾�뒿�땲�떎.</span> - </div> - </div> <!-- �솢�룞 �궡�뿭 --> -- Gitblit v1.8.0