| | |
| | | <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"> |
| | |
| | | <!-- 연관 이슈 테이블 --> |
| | | <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"> |
| | |
| | | <!-- 하위 이슈 테이블 --> |
| | | <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"> |
| | | |
| | |
| | | <span translate="common.noAttachedFile">첨부된 파일이 없습니다.</span> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <h6 class="todo-content-subheader mt-20" translate="common.writeComment">댓글 쓰기</h6> |
| | | <form name="commentForm" ng-enter="fn.addComment()"> |
| | | <div class="form-group row "> |
| | | <div class="col-sm-12"> |
| | | <div class="input-group"> |
| | | <input class="form-control" |
| | | kr-input |
| | | maxlength="300" |
| | | placeholder="{{'common.pleaseEnterComments' | translate}}" |
| | | ng-model="vm.viewer.comment" |
| | | type="text"> |
| | | <div class="input-group-prepend"> |
| | | <div class="input-group-text2" |
| | | ng-class="{ 'disable' : !$root.isDefined(vm.viewer.comment) }" |
| | | ng-click="fn.addComment()"> |
| | | <i class="os-icon os-icon-mail-18"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 활동 내역 --> |
| | | <div class="row"> |
| | |
| | | ng-click="fn.updateActiveHistory()"><span |
| | | translate="common.fullView">전체보기</span></a> |
| | | </li> |
| | | <li class="nav-item cursor"> |
| | | <!--<li class="nav-item cursor"> |
| | | <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'REPLY' }" |
| | | ng-click="vm.activeTab = 'REPLY'"><span translate="common.comments">댓글</span></a> |
| | | </li> |
| | | </li>--> |
| | | <li class="nav-item cursor"> |
| | | <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'RECODE' }" |
| | | ng-click="vm.activeTab = 'RECODE'"><span translate="common.record">기록</span></a> |
| | | </li> |
| | | <li class="nav-item cursor"> |
| | | <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'RECODE_DOWN' }" |
| | | ng-click="vm.activeTab = 'RECODE_DOWN'"><span translate="common.recordDown">하위이슈 기록</span></a> |
| | | </li> |
| | | <!--<li class="nav-item cursor"> |
| | | <a class="nav-link" ng-class="{ 'active' : vm.activeTab == 'REPLY_DOWN' }" |
| | | ng-click="vm.activeTab = 'REPLY_DOWN'"><span translate="common.downComments">하위이슈 댓글</span></a> |
| | | </li>--> |
| | | </ul> |
| | | </div> |
| | | |
| | |
| | | <!-- 기록인 경우 --> |
| | | <div class="aei-content" |
| | | ng-if="$root.isDefined(activeHistory.issueHistoryType)"> |
| | | <h6 ng-if="activeHistory.issueHistoryType == 'TOTAL'" |
| | | <!--<h6 ng-if="activeHistory.issueHistoryType == 'TOTAL'" |
| | | translate="issue.summaryIssueActivity">이슈 활동 내역 요약 <i |
| | | class="os-icon os-icon-arrow-down"></i></h6> |
| | | class="os-icon os-icon-arrow-down"></i></h6>--> |
| | | <div dom-append dom="activeHistory.description"></div> |
| | | </div> |
| | | <!-- 댓글인 경우 --> |
| | | <div ng-if="!$root.isDefined(activeHistory.issueHistoryType)" |
| | | ng-show="vm.viewer.title !== activeHistory.title"> |
| | | <div> |
| | | 하위이슈 : {{::activeHistory.title}} |
| | | </div> |
| | | </div> |
| | | <div class="aei-image" ng-if="!$root.isDefined(activeHistory.issueHistoryType)"> |
| | | <div class="user-avatar-w"> |
| | | <img alt="image" ng-src="{{::activeHistory.profile}}"> |
| | |
| | | <span class="issue-detail-word-break">{{::comment.description}}</span> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <form name="commentForm" ng-enter="fn.addComment()"> |
| | | <div class="form-group row "> |
| | | <div class="col-sm-12"> |
| | | <div class="input-group"> |
| | | <input class="form-control" |
| | | kr-input |
| | | maxlength="300" |
| | | placeholder="{{'common.pleaseEnterComments' | translate}}" |
| | | ng-model="vm.viewer.comment" |
| | | type="text"> |
| | | <div class="input-group-prepend"> |
| | | <div class="input-group-text2" |
| | | ng-class="{ 'disable' : !$root.isDefined(vm.viewer.comment) }" |
| | | ng-click="fn.addComment()"> |
| | | <i class="os-icon os-icon-mail-18"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <!-- 기록 보기 --> |
| | | <div ng-if="vm.activeTab == 'RECODE'"> |
| | | <div class="no-cont2" |
| | | ng-if="vm.viewer.issueHistoryVos.length < 1" |
| | | translate="common.noRecord"> |
| | | <div class="no-cont2" ng-if="vm.viewer.activeParentHistory.length < 1" translate="common.noRecord"> |
| | | 기록이 없습니다. |
| | | </div> |
| | | <div> |
| | | {{vm.viewer.issueHistoryVos}} |
| | | </div> |
| | | |
| | | <div class="activity-item" |
| | | ng-repeat="issueHistory in vm.viewer.issueHistoryVos"> |
| | | <h6 ng-if="issueHistory.issueHistoryType == 'TOTAL'" |
| | | <div class="activity-item" ng-repeat="issueHistory in vm.viewer.activeParentHistory"> |
| | | <!--<h6 ng-if="issueHistory.issueHistoryType == 'TOTAL'" |
| | | translate="issue.summaryIssueActivity">이슈 활동 내역 요약 |
| | | <i class="os-icon os-icon-arrow-down"></i> |
| | | </h6> |
| | | <div class="activity-content"> |
| | | </h6>--> |
| | | <div class="activity-content" ng-if="$root.isDefined(issueHistory.issueHistoryType)"> |
| | | <div dom-append dom="issueHistory.description"></div> |
| | | </div> |
| | | <!-- 댓글인 경우 --> |
| | | <div class="aei-image" ng-if="!$root.isDefined(issueHistory.issueHistoryType)"> |
| | | <div class="user-avatar-w"> |
| | | <img alt="image" ng-src="{{::issueHistory.profile}}"> |
| | | </div> |
| | | </div> |
| | | <div class="aei-content" |
| | | ng-if="!$root.isDefined(issueHistory.issueHistoryType)"> |
| | | <h6 class="aei-title"> |
| | | {{::issueHistory.registerName}} |
| | | </h6> |
| | | <div class="date-break"> |
| | | <span>{{::issueHistory.registerDate}}</span> |
| | | </div> |
| | | <div class="aei-delete" |
| | | ng-click="fn.removeComment(comment)" |
| | | ng-show="$root.user.id == comment.registerId"> |
| | | <i class="os-icon os-icon-close"></i> |
| | | </div> |
| | | <div class="chat-messages"> |
| | | <div class="message"> |
| | | <div class="message-content"> |
| | | <span class="issue-detail-word-break">{{::issueHistory.description}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 하위이슈 기록 보기 --> |
| | | <div ng-if="vm.activeTab == 'RECODE_DOWN'"> |
| | | <div class="no-cont2" ng-if="vm.viewer.activeDownAllHistory.length < 1" translate="common.noRecord"> |
| | | 기록이 없습니다. |
| | | </div> |
| | | <div class="activity-item" ng-repeat="issueDownHistory in vm.viewer.activeDownAllHistory"> |
| | | <!-- 기록인 경우 --> |
| | | <div class="activity-content" ng-if="$root.isDefined(issueDownHistory.issueHistoryType)"> |
| | | <div dom-append dom="issueDownHistory.description"></div> |
| | | </div> |
| | | <!-- 댓글인 경우 --> |
| | | <div class="aei-content" ng-if="!$root.isDefined(issueDownHistory.issueHistoryType)"> |
| | | <div class="aei-title"> |
| | | 하위이슈 : {{::issueDownHistory.title}} |
| | | </div> |
| | | </div> |
| | | <div class="aei-image" ng-if="!$root.isDefined(issueDownHistory.issueHistoryType)"> |
| | | <div class="user-avatar-w"> |
| | | <img alt="image" ng-src="{{::issueDownHistory.profile}}"> |
| | | </div> |
| | | </div> |
| | | <div class="aei-content" ng-if="!$root.isDefined(issueDownHistory.issueHistoryType)"> |
| | | <h6 class="aei-title"> |
| | | {{::issueDownHistory.registerName}} |
| | | </h6> |
| | | <div class="date-break"> |
| | | <span>{{::issueDownHistory.registerDate}}</span> |
| | | </div> |
| | | <div class="aei-delete" |
| | | ng-click="fn.removeComment(comment)" |
| | | ng-show="$root.user.id == comment.registerId"> |
| | | <i class="os-icon os-icon-close"></i> |
| | | </div> |
| | | <div class="chat-messages"> |
| | | <div class="message"> |
| | | <div class="message-content"> |
| | | <span class="issue-detail-word-break">{{::issueDownHistory.description}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 하위이슈 댓글 보기 --> |
| | | <div ng-if="vm.activeTab == 'REPLY_DOWN'"> |
| | | <div class="no-cont2" ng-if="$scope.vm.viewer.downComment.length < 1" |
| | | translate="common.noComments"> |
| | | 댓글이 없습니다. |
| | | </div> |
| | | <div class="ae-item" ng-repeat="comment in vm.viewer.downComment"> |
| | | <div class="re-title"> |
| | | <div class='dot'> |
| | | 하위이슈: {{::comment.title}} |
| | | </div> |
| | | </div> |
| | | <div class="aei-image"> |
| | | <div class="user-avatar-w"> |
| | | <img alt="image" ng-src="{{::comment.profile}}"> |
| | | </div> |
| | | </div> |
| | | <div class="aei-content"> |
| | | <h6 class="aei-title"> |
| | | {{::comment.registerName}} |
| | | </h6> |
| | | <div class="date-break"> |
| | | <span>{{::comment.registerDate}}</span> |
| | | </div> |
| | | <div class="aei-delete" |
| | | ng-click="fn.removeComment(comment)" |
| | | ng-show="$root.user.id == comment.registerId"> |
| | | <i class="os-icon os-icon-close"></i> |
| | | </div> |
| | | <div class="chat-messages"> |
| | | <div class="message"> |
| | | <div class="message-content"> |
| | | <span class="issue-detail-word-break">{{::comment.description}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |