65 lines
4.2 KiB
HTML
65 lines
4.2 KiB
HTML
<div class="approval-banner clearfix" role="region" tabindex="0">
|
|
<div class="approval-banner_spinner" loading-spinner if="state.approvalRequestIsPending" overlay="true" inline="true"></div>
|
|
<div class="approval-banner__header">
|
|
<div class="pull-left">
|
|
<div class="approval-banner__message">
|
|
<i class="icon-clock_o" ng-if="!approval.isUserApprovalPending"></i>
|
|
<span ng-if="!state.isAlternateApprover">{{((approval.isUserApprovalPending ? 'approval.labels.reviewerMessage.' : 'approval.labels.reviewsArePending.') + context.type) | i18n}} </span>
|
|
|
|
<div ng-if="state.isAlternateApprover">
|
|
{{'approval.labels.you.are.alternate.approver.for' | i18n}}: {{state.alternateFor.join(', ')}}
|
|
</div>
|
|
</div>
|
|
<div class="btn-group approval-banner__actions" role="toolbar" aria-label="" ng-if="approval.isUserApprovalPending">
|
|
<button type="button" class="small-btn_secondary" aria-label="{{('common.button.' + action.name) | i18n}}"
|
|
ng-repeat="action in reviewActions" btn-radio="action.name" ng-model="review.type"
|
|
ng-click="checkForRequirement(action)" ng-enter="checkForRequirement(action)">
|
|
<i class="{{state.iconClass[action.name]}} btn__icon-left"></i>
|
|
<span>{{('common.button.' + action.name) | i18n}}</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="approval-banner__summary" ng-click="showApproversList()" ng-enter="showApproversList()"
|
|
tabindex="0" aria-label="{{'approval.approversList.labels.showList' | i18n}}" role="link">
|
|
<span class="approval-banner__summary-item" ng-repeat="(summaryType, summaryItems) in approval.groupedSummary">{{("approval.summary." + summaryItems[0].status.name) | i18n: _.uniq(summaryItems, 'signatureId').length}}{{$last ? '' : 'approval.labels.and' | i18n}}</span>
|
|
|
|
<span>{{'approval.approversList.labels.showList' | i18n}}</span>
|
|
<i class="icon-angle_right"></i>
|
|
</div>
|
|
</div>
|
|
<div class="approval-banner__form" ng-if="review.type">
|
|
<label class="label_control-wrap" ng-if="context.isPasswordEnabled && !isSSOEnabled">
|
|
<span class="label__text required__label" data-required="{{'common.label.required.bracketed' | i18n}}">{{'approval.decision.password.label' | i18n}}</span>
|
|
<div>
|
|
<input type="password" name="password" class="text-input" ng-model="review.password" aria-label="password" tabindex="0" />
|
|
<i class="icon-question_circle" tooltip-placement="right"
|
|
tooltip="{{ 'approval.decision.password.tooltip.'+ review.type | i18n}}"
|
|
tabindex="0" aria-label="{{ 'approval.decision.password.tooltip.'+ review.type | i18n}}"></i>
|
|
</div>
|
|
</label>
|
|
<label class="label_control-wrap">
|
|
<span class="label__text" ng-class="{'required__label': review.justificationRequired}" data-required="{{'common.label.required.bracketed' | i18n}}">{{'approval.decision.' + review.type + '.label' | i18n}}</span>
|
|
<textarea type="text"
|
|
class="textarea approval-banner__justification"
|
|
name="justificationText"
|
|
placeholder="{{('approval.decision.' + review.type + '.placeholder') | i18n}}"
|
|
ng-required="review.type == 'reject'"
|
|
ng-model="review.justification" aria-label="" tabindex="0">
|
|
</textarea>
|
|
</label>
|
|
|
|
<div class="approval-banner__controls">
|
|
<button type="submit" class="btn_primary" aria-label="{{'approval.decision.button.' + review.type + '.label' | i18n}}"
|
|
ng-if="isSSOEnabled && context.isPasswordEnabled" ng-click="handleUserReviewActionViaSSO()" ng-disabled="(review.justificationRequired && !review.justification) || (context.isPasswordEnabled && !review.password && !isSSOEnabled)" tabindex="0">
|
|
{{'approval.decision.button.'+review.type + '.label' | i18n}}
|
|
</button>
|
|
<button type="submit" class="btn_primary" aria-label="{{'approval.decision.button.' + review.type + '.label' | i18n}}"
|
|
ng-if="!(isSSOEnabled && context.isPasswordEnabled)" ng-click="handleUserReviewAction()" ng-disabled="(review.justificationRequired && !review.justification) || (context.isPasswordEnabled && !review.password)" tabindex="0">
|
|
{{'approval.decision.button.'+review.type + '.label' | i18n}}
|
|
</button>
|
|
<button type="button" class="btn_secondary approval-banner__cancel-btn" aria-label="{{'common.button.cancel' | i18n}}" ng-click="clearApprovalData()" tabindex="0">
|
|
{{'common.button.cancel' | i18n}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div> |