109 lines
6.0 KiB
HTML
109 lines
6.0 KiB
HTML
<div class="editable-summary">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text"
|
|
ng-if="editMode || $parent.isNew"
|
|
potentially-required-field
|
|
field-name="desc"
|
|
itsm-required="{{data.itsmRequired}}"
|
|
entity="ticket"
|
|
ng-class="{'required__label': (data && data.isRequired) || (summaryField && summaryField.isRequired)}"
|
|
data-required="{{'common.label.required.bracketed' | i18n}}">
|
|
{{label || ('common.label.desc' | i18n)}}
|
|
</span>
|
|
<span class="label__text" ng-if="!editMode && !$parent.isNew && !data.hideLabel">
|
|
{{label || ('common.label.desc' | i18n)}}
|
|
</span>
|
|
|
|
<div class="ticket-summary__content"
|
|
ng-class="{
|
|
'no-border': !$parent.isNew && ((context === 'draft' || context === 'detail') && !editMode),
|
|
'dropable-area': !!dropable,
|
|
'ng-invalid-required': (!descCopy && (data && data.isRequired) || (summaryField && summaryField.isRequired))
|
|
}">
|
|
<div class="ticket-summary__content_scroll-area-holder" >
|
|
<textarea type="text"
|
|
potentially-required-field
|
|
field-name="desc"
|
|
itsm-required="{{data.itsmRequired}}"
|
|
entity="ticket"
|
|
class="content"
|
|
ng-class="{content_less: summaryCollapsed()}"
|
|
name="desc"
|
|
ng-model="descCopy"
|
|
id="edit-summary-content-text"
|
|
placeholder="{{textplaceholder}}"
|
|
aria-label="{{label || ('common.label.desc' | i18n)}} {{textplaceholder}} {{descCopy}} "
|
|
ng-hide="!$parent.isNew && ((context !== 'create' && !editMode) || isLocked)"
|
|
ng-required="(data && data.isRequired) || (summaryField && summaryField.isRequired) || isDescRequired"
|
|
ng-change="onTicketDescriptionChange()"
|
|
ng-focus="textAreaIsFocused = true"
|
|
ng-blur="textAreaIsFocused = false"
|
|
ng-keydown="$event.stopPropagation()"
|
|
ng-keyup="$event.stopPropagation()"
|
|
ng-disabled="!isEditable || (data && data.isReadOnly) || (summaryField && summaryField.isReadOnly)">
|
|
</textarea>
|
|
<div class="content ticket__field-multi-line-value field-hide--print"
|
|
ng-bind-html="descCopy | securelinky:'_blank'"
|
|
ng-class="{content_less: viewSummaryCollapsed()}"
|
|
ng-disabled="editMode && (!isEditable || (data && data.isReadOnly) || (summaryField && summaryField.isReadOnly))"
|
|
ng-hide="$parent.isNew || ((context === 'create' || editMode) && !isLocked)">
|
|
</div>
|
|
<div class="content ticket__field-multi-line-value--print"
|
|
ng-bind-html="descCopy">
|
|
</div>
|
|
</div>
|
|
|
|
<!--Dropable attachments layout -->
|
|
<div class="drop-zone" ng-if="dropable" file-drop-target max-files="{{attachmentLimit}}"
|
|
ng-class="{'with-attachment': ((attachments && attachments.length > 0) || textAreaIsFocused || state.descriptionChanged)}">
|
|
<div class="drop-zone__highlight">
|
|
<div ng-class="{'drop-zone__tip-inline': attachments && attachments.length >= 1,'drop-zone__tip': !attachments || attachments.length == 0}">
|
|
<div class="icon-drag_and_drop"></div>
|
|
<div>{{'common.labels.dropZone' | i18n}}</div>
|
|
<div>
|
|
<label class="ticket-summary__alternative-attach-tool" ng-if="showAttachment"
|
|
ng-class="{'disabled': attachments.length>=attachmentLimit}" aria-label="{{'common.labels.selectAttach' | i18n}}" tabindex="0">
|
|
<span ng-if="!(attachments && attachments.length > 0)">{{'common.labels.or' | i18n}}</span>
|
|
<input type="file" name="file" tabindex="0" ie-activate-by-enter onchange="angular.element(this).scope().handleFileChange(this)"
|
|
ng-disabled="(data && data.isReadOnly) || !isEditable || attachments.length>=attachmentLimit"
|
|
class="attach-tool__file-input" />
|
|
<span ng-if="(attachments && attachments.length > 0)">{{'common.labels.or' | i18n}}</span>
|
|
{{'common.labels.selectAttach' | i18n}}
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="attached-files" ng-class="{'file__drop-target' : dropable} " ng-if="attachments && attachments.length > 0">
|
|
<div ng-include="'views/common/feed-attachments.html'"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Dropable attachments end-->
|
|
|
|
<div class="attached-files" ng-class="{'file__drop-target' : dropable} " ng-if="attachments && attachments.length > 0 && !dropable">
|
|
<div ng-include="'views/common/feed-attachments.html'"></div>
|
|
</div>
|
|
<div ng-if="!$parent.isNew && ((context === 'draft' || context === 'detail') && !editMode)">
|
|
<div class="ticket-summary__more-attachment" ng-if="showMoreVisible() && attachmentsCountOverLimit()">
|
|
+ {{attachmentsCountOverLimit()}} {{'list.more'|i18n}}
|
|
</div>
|
|
<div class="ticket-summary__show-more-less">
|
|
<button type="button" class="btn_link" ng-if="showMoreVisible()" ng-click="toggleSummary(); $event.preventDefault()">{{'resourceSlice.showMoreItemsLink.label' | i18n}}</button>
|
|
<button type="button" class="btn_link" ng-if="showLessVisible()" ng-click="toggleSummary()">{{'resourceSlice.showLessItemsLink.label' | i18n}}</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
<character-limit-message ng-if="descLimit" field="$parent.descCopy" limit="{{descLimit}}"></character-limit-message>
|
|
|
|
<div ng-if="($parent.isNew || editMode || showAttachmentIcon) && !dropable">
|
|
<label class="ticket-summary__attach-tool" ng-if="showAttachment">
|
|
<input type="file" name="file" onchange="angular.element(this).scope().handleFileChange(this)" class="attach-tool__file-input"
|
|
ng-disabled="(data && data.isReadOnly) || !isEditable || attachments.length>=attachmentLimit" ie-activate-by-enter/>
|
|
<i title="{{'common.labels.attach' | i18n}}" class="icon-paperclip ticket-summary__icon"
|
|
ng-class="{'disabled': (data && data.isReadOnly) || !isEditable || attachments.length>=attachmentLimit}"></i>
|
|
</label>
|
|
<div class="timeline-note__message" ng-if="attachmentLimit && attachments.length >= attachmentLimit">
|
|
<div>{{'timeline.note.max.attachments'| i18n:(attachmentLimit || '')}}</div>
|
|
</div>
|
|
</div>
|
|
</div> |