163 lines
9.9 KiB
HTML
163 lines
9.9 KiB
HTML
<div loading-spinner if="state.dataIsLoading || (!isFullVersion && state.gettingEditStatus)" centered="true" overlay="true"></div>
|
|
|
|
<div class="ka__not-found" ng-if="!state.dataIsLoading && !article.id">
|
|
<h3 ng-if="!noPreviewAvailable">{{errorMessage}}</h3>
|
|
<div ng-if="noPreviewAvailable">
|
|
<h6 class="header__ticket-id">{{'knowledge.detail.summary.orderId.label' | i18n:(previewId || '')}}</h6>
|
|
<h3>{{'search.preview.noKnowledgePreview' | i18n}}</h3>
|
|
<br>
|
|
<h6><a ng-click="openHKM()" href="">{{'search.preview.viewFullArticle' | i18n}}</a></h6>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div ux-id="knowledge-article-details" class="ka__details" ng-if="!state.dataIsLoading && article.id && !editMode"
|
|
aria-label="{{'common.labels.knowledge' | i18n}} {{'ticket.region.details' | i18n}}" role="region">
|
|
|
|
<div ng-class="{'ka-profile_header_two_line' : isTitleMultiline}" class="ka-profile__header clearfix" aria-label="{{'ticket.region.header' | i18n}}" role="region" tabindex="0">
|
|
<div check-multiline multiline-max-height="80" multiline-content="article.title" is-content-multiline="$parent.isTitleMultiline" class="ka-profile__title" ng-if="isFullVersion" tabindex="0">
|
|
<!--Limit to is 500 for larger title to avoid performance issues-->
|
|
<h2 ux-id="ticket-title-value" class="ka-profile__title_content" data-ng-bind="article.title | limitTo: 500" data-ellipsis data-ellipsis-separator="" data-ellipsis-separator-reg="titleRegExp" class="" title="{{article.title}}">
|
|
|
|
</h2>
|
|
</div>
|
|
<div check-multiline multiline-max-height="80" multiline-content="article.title" is-content-multiline="$parent.isTitleMultiline" class="ka-profile__title" ng-if="!isFullVersion">
|
|
<h2 title="{{article.title}}">
|
|
<a class="ka-profile__title-link ka-profile__title_content" data-ellipsis data-ellipsis-separator="" data-ellipsis-separator-reg="titleRegExp" data-ng-bind="article.title | limitTo: 500" href="#/knowledge/{{article.id}}" ng-click="viewFullArticle($event)"></a>
|
|
</h2>
|
|
</div>
|
|
|
|
<div title="{{'search.filter.optionName.knowledge' | i18n}}" class="ka__header-icon">
|
|
<i class="icon-knowledge_article"></i>
|
|
</div>
|
|
|
|
<div ux-id="field_id" ng-if="isFullVersion" class="ka__article-id">
|
|
<h3 class="header__inline-item"><i class="ka-details__icon" ng-class="{'icon-knowledge': !article.isDecisionTree(), 'icon-decision-tree': article.isDecisionTree()}"></i></h3>
|
|
<span ux-id="character-field-value" class="header__ticket-id">{{'knowledge.detail.summary.orderId.label' | i18n:(article.articleId || '')}}</span>
|
|
</div>
|
|
<div class="ka__article-id" ng-if="!isFullVersion">
|
|
<h3 class="header__inline-item">
|
|
<i class="ka-details__icon" ng-class="{'icon-knowledge': !article.isDecisionTree(), 'icon-decision-tree': article.isDecisionTree()}"></i>
|
|
</h3>
|
|
<span class="ka_article-id-label header__ticket-id">{{article.articleId || ''}}</span>
|
|
<a ux-id="view-full-link" aria-label="{{'search.preview.viewFullArticle' | i18n}}" href="#/knowledge-new-tab/{{article.id}}?preventIncrement=true" ng-click = "viewFullArticle($event)" ng-enter="viewFullArticle($event)" tabindex="0">{{'search.preview.viewFullArticle' | i18n}}</a>
|
|
</div>
|
|
|
|
<div class="clearfix ka-header__bottom-bar">
|
|
<!-- TODO: extract common blocks to directive -->
|
|
<div ux-id="edit-status-btn" class="ka-header__status-selector ka-header-status-dropdown" ng-class="{disabled: (!article.accessMappings.statusEditAllowed)}" ng-click="article.accessMappings.statusEditAllowed && editStatus($event)"
|
|
ng-enter="article.accessMappings.statusEditAllowed && editStatus($event)" role="link" tabindex="0"
|
|
aria-label="{{'ticket.region.status' | i18n}} {{ article.status.value | localizeLabel: 'status':'knowledge' }}"
|
|
ng-if="!kcsAssessMode">
|
|
<div class="dropdown-toggle ka-header__status-value" ng-class="{disabled: !article.accessMappings.statusEditAllowed}">
|
|
<span ux-id="status-value" class="ka-header__status_text" title="{{ article.status.value | localizeLabel: 'status':'knowledge' }}">
|
|
{{ state.currentRevision.status | localizeLabel: 'status':'knowledge' }}
|
|
</span>
|
|
<i class="icon-angle_down ka-header__status-icon"></i>
|
|
</div>
|
|
</div>
|
|
|
|
<selection ux-id="ka-version-dropdown" class="ka-header__version-selection"
|
|
selection-items="article.revisions"
|
|
selected-item="state.currentRevision"
|
|
label="label"
|
|
value="label"
|
|
selection-callback="openArticleRevision(item)"
|
|
update-selected-item="true"
|
|
ng-if="!kcsAssessMode">
|
|
</selection>
|
|
|
|
<div ng-if="kcsAssessMode" class="ka-header__assessment-bottom-bar">
|
|
<span class="ka-header__status-selector ka-header__status-value">{{ state.currentRevision.status | localizeLabel: 'status':'knowledge' }}</span>
|
|
<span class="ka-header__version-selection ka-header__version-value">{{state.currentRevision.label}}</span>
|
|
<img alt="{{article.author.fullName}}" class="feed-item__avatar kcs-assessment__author-avatar" imgplaceholder="user" thumbnail-img style="display: inline-block"/>
|
|
<div class="kcs-assessment__author-details">
|
|
<div class="author-label">{{'knowledge.assessment.author.label' | i18n}}</div>
|
|
<div class="author-value">{{article.author.fullName}}</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="ka-header__action-items" ng-if="isFullVersion && !kcsAssessMode">
|
|
<div class="profile-action-bar__item" ng-if="state.gettingEditStatus">
|
|
<loading-spinner if="state.gettingEditStatus" inline="true"></loading-spinner>
|
|
</div>
|
|
<div ux-id="edit-click-btn" class="profile-action-bar__item" aria-label="{{'controls.action.edit' | i18n}} {{'common.labels.article' | i18n | lowercase}}"
|
|
ng-if="!hideEditButton && !state.gettingEditStatus && article.accessMappings.detailsEditAllowed"
|
|
title="{{'controls.action.edit' | i18n}} {{'common.labels.article' | i18n | lowercase}}" role="link" tabindex="0"
|
|
ng-click="handleEditClick()" ng-enter="handleEditClick()">
|
|
<i class="icon-pencil"></i>
|
|
</div>
|
|
|
|
<div title="{{'controls.action.share' | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{'controls.action.share' | i18n}}" role="link" tabindex="0"
|
|
ng-click="share($event)" ng-enter="share($event)">
|
|
<i ux-id="share-btn" class="icon-share"></i>
|
|
</div>
|
|
|
|
<div class="profile-action-bar__item" ng-if="state.updatingFollowingFlag">
|
|
<loading-spinner if="state.updatingFollowingFlag" inline="true"></loading-spinner>
|
|
</div>
|
|
<div ux-id="following-flag" ng-if="!state.updatingFollowingFlag" title="{{(article.following ? 'controls.action.unfollow' : 'controls.action.follow') | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{article.following ? 'controls.action.unfollow' : 'controls.action.follow' | i18n}}" role="link" tabindex="0"
|
|
ng-click="toggleFollowingFlag()" ng-enter="toggleFollowingFlag()">
|
|
<i class="{{article.following ? 'icon-star' : 'icon-star_o'}}"></i>
|
|
</div>
|
|
|
|
<div class="profile-action-bar__item" ng-if="state.updatingFavoriteFlag">
|
|
<loading-spinner if="state.updatingFavoriteFlag" inline="true"></loading-spinner>
|
|
</div>
|
|
<div ux-id="favourite-flag" ng-if="!state.updatingFavoriteFlag" title="{{(article.favorite ? 'controls.action.removeFavorite' : 'controls.action.addFavorite') | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{article.favorite ? 'controls.action.removeFavorite' : 'controls.action.addFavorite' | i18n}}" role="link" tabindex="0"
|
|
ng-click="toggleFavoriteFlag()" ng-enter="toggleFavoriteFlag()">
|
|
<i class="{{article.favorite ? 'icon-heart' : 'icon-heart_o'}}"></i>
|
|
</div>
|
|
|
|
<div ux-id="show-print-dialog-btn" title="{{'controls.action.print' | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{'controls.action.print' | i18n}}" role="link" tabindex="0"
|
|
ng-if="article.accessMappings.printEditAllowed" ng-click="showPrintDialog($event)" ng-enter="showPrintDialog($event)">
|
|
<i class="{{'icon-printer'}}"></i>
|
|
</div>
|
|
<div ux-id="flag-true" title="{{'controls.action.flag' | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{'controls.action.flag' | i18n}}" role="link" tabindex="0"
|
|
ng-if="!article.flagged"
|
|
ng-click="setFlag(true)" ng-enter="setFlag(true)">
|
|
<i class="{{'icon-flag_o'}}"></i>
|
|
</div>
|
|
<div ux-id="flag-false" title="{{'controls.action.removeFlag' | i18n}}" class="profile-action-bar__item"
|
|
aria-label="{{'controls.action.removeFlag' | i18n}}" role="link" tabindex="0"
|
|
ng-if="article.flagged"
|
|
ng-click="setFlag(false)" ng-enter="setFlag(false)">
|
|
<i class="{{'icon-flag'}}"></i>
|
|
</div>
|
|
<div ux-id="refresh-btn" title="{{'common.labels.refresh' | i18n}}" class="profile-action-bar__item"
|
|
role="link" tabindex="0" ng-click="refreshTicket()" ng-enter="refreshTicket()"
|
|
aria-label="{{'common.labels.refresh' | i18n}}">
|
|
<i class="icon-refresh"></i>
|
|
</div>
|
|
|
|
<launch-actions-dropdown ng-if="true" class="profile-action-bar__item profile-action-bar__item_text" drop-down-options="dropDownOptions" context="article"></launch-actions-dropdown>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ka-profile__body clearfix" ng-class="{'ka-profile__body_multiline' : isTitleMultiline}">
|
|
<div class="ka__content">
|
|
|
|
<alert-carousel basic-data="article" alert-details="alertDetails" ng-if="hasAlerts && !kcsAssessMode"></alert-carousel>
|
|
|
|
<div class="ka__body" aria-label="{{'ticket.region.details' | i18n}}" role="region" tabindex="0">
|
|
<div ux-id="{{paragraph.name}}" class="ka__text" ng-repeat="paragraph in article.content" ng-if="!article.isDecisionTree()">
|
|
<div class="ka-text__section-title"><h2 ux-id="field-label">{{paragraph.label}}</h2></div>
|
|
<div ux-id="field-value" class="ka-text__section-text clearfix" process-ka-content="{{paragraph.snippet}}" anchor-parser="{{knowledgeAnchorParser}}"></div>
|
|
</div>
|
|
<div ng-if="article.isDecisionTree()">
|
|
<decision-tree-view rx-configuration="rxDecisionTreeConfig"></decision-tree-view>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-if="editMode" ng-include="'views/knowledge-article/knowledge-article-details-edit.html'"></div>
|