OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/views/issue/issueDetail.html
@@ -87,7 +87,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' : '#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="">
@@ -97,13 +97,13 @@
            <span class="ticket-header">
                <div class="tasks-header-w">
                    <span class="tags">
                        <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} &nbsp; / &nbsp; {{vm.viewer.projectVo.name}}</span>
                        <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} &nbsp; / &nbsp; {{vm.viewer.projectVo.name}} &nbsp; <span ng-if="vm.viewer.isApi == 'Y'">/</span> &nbsp; <span ng-if="vm.viewer.isApi == 'Y'" class="badge" ng-style="{'background-color' : '#EF8D9A', 'border-color' : '#EF8D9A', 'color' : '#FFFFFF' }">API</span></span>
                    </span>
                </div>
            </span>
            <a class="show-ticket-info cursor">
                <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-email-forward mr-20" ng-if="vm.viewer.modifyPermissionCheck" 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>
@@ -139,6 +139,7 @@
                                                <span ng-if="vm.viewer.departmentVos.length < 1" translate="common.noDepartment">담당부서가 없습니다.</span>
                                                            <i class="fa fa-edit fa-2x issue-status-edit cursor"
                                                               ng-if="vm.viewer.modifyPermissionCheck"
                                                               ng-click="fn.modifyIssueDepartment()" data-toggle="tooltip" data-placement="right" title="담당자 변경 하기"></i>
                                            </div>
                                        </div>
@@ -165,12 +166,12 @@
                    <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-detail-1"><span translate="common.priority">우선 순위</span></label>
                            <label class="issue-detail-label offset-detail-2"><span translate="issue.issueStatus">이슈 상태</span></label>
                            <label class="issue-detail-label offset-detail-2"><span translate="common.priority">우선 순위</span></label>
                            <label class="issue-detail-label offset-detail-1"><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>
                                <span class="badge offset-1" ng-style="{'background-color' : vm.viewer.priorityVo.color, 'border-color' : vm.viewer.priorityVo.color, 'color' : '#FFFFFF' }" translate="{{vm.viewer.priorityVo.name}}"></span>
                                <span class="badge offset-detail-4" ng-style="{'background-color' : vm.viewer.priorityVo.color, 'border-color' : vm.viewer.priorityVo.color, 'color' : '#FFFFFF' }" translate="{{vm.viewer.priorityVo.name}}"></span>
                                <!--    권한을 갖고 있을 때 -->
                                <span ng-if="vm.viewer.modifyPermissionCheck">
@@ -323,6 +324,15 @@
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.url">url</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].url}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.memo">비고</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].memo}}</span>
                            </div>
@@ -377,6 +387,15 @@
                            <div class="">
                                <span translate="ispField.email">이메일</span>:
                                <span class="email_color cursor" ng-click="fn.sendMailVo(vm.viewer.issueIspVos)">{{vm.viewer.issueIspVos[0].email}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.url">url</span>:
                                <span>{{vm.viewer.issueIspVos[0].url}}</span>
                            </div>
                        </div>
                    </div>
@@ -446,6 +465,15 @@
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.url">url</span>:
                                <span>{{vm.viewer.issueHostingVos[0].url}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="hostingField.memo">비고</span>:
                                <span>{{vm.viewer.issueHostingVos[0].memo}}</span>
                            </div>
@@ -466,7 +494,7 @@
                <!--  연관 이슈 테이블 -->
                <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>
                              event="relTableEvent" detail-view="true" hide-header="false" use-sort="true"></js-table>
                    <div class="row">
                        <div class="col-sm-4">
@@ -493,11 +521,14 @@
                                            type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary form-control input-sm"
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssue()"
                                    translate="issue.addRelationIssue">연관 이슈 추가</button>
                            <button  type="button" class="btn btn-sm btn-primary btn-roundRel  offset-1">
                                <i class="os-icon os-icon-plus" ng-click="fn.AddRelation(vm.viewer.id)"><span></span></i>
                            <button type="button" class="btn btn-sm btn-primary btn-roundRel  offset-1"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssueForm(vm.viewer.id)">
                                <i class="os-icon os-icon-plus"><span></span></i>
                            </button>
                        </div>
@@ -509,8 +540,10 @@
                        <span class="info_detail_font h3" translate="issue.downIssue">하위 이슈</span>
                    </div>
                    <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>
                        <a><button type="button" class="btn btn-darkgrey offset-7" ng-if="vm.viewer.modifyPermissionCheck"
                                ng-click="fn.modifyDownIssueStatus()">
                                <span ng-if="vm.viewer.modifyPermissionCheck" 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>
@@ -520,7 +553,7 @@
                <!-- 하위 이슈 테이블 -->
                <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>
                              event="downTableEvent" detail-view="true" hide-header="false" use-sort="true"></js-table>
                    <div class="row">
@@ -537,7 +570,8 @@
                                            type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary form-control input-sm"
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addDownIssue()"
                                    translate="issue.addDownIssue">추가</button>
                        </div>
@@ -723,9 +757,9 @@
                                         translate="common.noRecord">
                                        기록이 없습니다.
                                    </div>
                                    <div>
                                <!--<div>
                                        {{vm.viewer.issueHistoryVos}}
                                    </div>
                                    </div>-->
                                    <div class="activity-item"
                                         ng-repeat="issueHistory in vm.viewer.issueHistoryVos">