176 lines
8.4 KiB
HTML
176 lines
8.4 KiB
HTML
<div>
|
|
<div ng-if="!$parent.editMode">
|
|
<risk-level-badge risk-level="data.value.riskLevel" ng-if="data.name==='changeRiskBadge'"></risk-level-badge>
|
|
<div ng-if="data.name!=='changeRiskBadge'">
|
|
<risk-level-badge risk-level="data.value.riskLevel"
|
|
class="{{showRiskQuestions ? 'ticket__risk-level-expanded' : 'ticket__risk-level-collapsed'}}"></risk-level-badge>
|
|
<button ng-click="toggleRiskQuestions()"
|
|
class="btn_link"
|
|
ng-show="!showRiskQuestions && context.questionResponses && context.questionResponses.length > 0 && data.value.mode == 'auto'">
|
|
{{'change.detail.risks.showQuestions' | i18n}}
|
|
<i class="icon-angle_down ticket__risks-angle-icon" aria-label="{{'change.detail.risks.showQuestions' | i18n}}"></i>
|
|
</button>
|
|
<button ng-click="toggleRiskQuestions()"
|
|
ng-show="showRiskQuestions" class="btn_link">
|
|
{{'change.detail.risks.hideQuestions' | i18n}}
|
|
<i class="icon-angle_up ticket__risks-angle-icon" aria-label="{{'change.detail.risks.hideQuestions' | i18n}}"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-10" ng-show="!$parent.editMode && showRiskQuestions && data.name==='changeRisk'">
|
|
<div ng-repeat="answer in context.questionResponses | orderBy:'order'" class="ticket__risk_question-answer">
|
|
<div class="ticket__risk_question">{{answer.questionText}}</div>
|
|
<div class="ticket__risk_answer">{{answer.displayValue}}</div>
|
|
</div>
|
|
</div>
|
|
<div ng-if="$parent.editMode && data.name==='changeRisk'" class="create-change-wizard__risk_edit-mode">
|
|
<div class="create-change-wizard__risk_form">
|
|
<div ng-if="isNew" class="row">
|
|
<div class="col-xs-4 create-change-wizard__risk_mode-sub">
|
|
<div class="col-xs-12 create-change-wizard__risk_mode_title risk-level-undefined"
|
|
ng-if="!data.value.riskLevel">
|
|
<div tabindex="0" aria-label="{{'create.change.wizard.risks.level.undefined' | i18n}}" class="create-change-wizard__overlay" ng-hide="overrideRiskLevelTitleEnabled()"></div>
|
|
<span>{{'create.change.wizard.risks.level.undefined' | i18n}}</span>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__risk_mode_title" tabindex="0" aria-label="{{'create.change.wizard.risks.level.title' | i18n:(riskLevel())}}"
|
|
ng-if="data.value.riskLevel"
|
|
ng-class="data.titleRiskLevelCls">
|
|
<div class="create-change-wizard__overlay" ng-hide="overrideRiskLevelTitleEnabled()"></div>
|
|
<span>{{'create.change.wizard.risks.level.title' | i18n:(riskLevel())}}</span>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__risk_mode_subtitle" ng-show="!context.riskIsUserSpecified && data.value.riskLevel">
|
|
<div class="create-change-wizard__overlay" ng-hide="overrideRiskLevelTitleEnabled()" tabindex="0" aria-label="{{'create.change.wizard.risks.level.auto.subtitle' | i18n}}"></div>
|
|
<span>{{'create.change.wizard.risks.level.auto.subtitle' | i18n}}</span>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__risk_mode_subtitle" tabindex="0" aria-label="Manually select or answer questions to assess risk level by up and down arrow key" ng-hide="!context.riskIsUserSpecified && data.value.riskLevel">
|
|
<span>{{'create.change.wizard.risks.level.manual.subtitle' | i18n}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="relative-position">
|
|
</div>
|
|
</div>
|
|
<div class="row {{isNew ? 'create-change-wizard__risk_form-questions' : '' }}">
|
|
<div class="{{isNew ? 'col-xs-4 create-change-wizard__risk_mode-sub' : 'col-xs-12 edit-change-wizard__risk_mode-sub'}}">
|
|
<div class="col-xs-12 create-change-wizard__checkbox-container">
|
|
<label class="label_control-wrap">
|
|
<div class="col-xs-1">
|
|
<input class="create-change-wizard__checkbox"
|
|
type="radio"
|
|
name="risk-method"
|
|
tabindex="0"
|
|
ng-click="modeCheck()"
|
|
ng-model="data.value.mode"
|
|
ng-disabled="!isEditable"
|
|
value="manual"/>
|
|
</div>
|
|
<div class="col-xs-10">
|
|
<h4>{{'create.change.wizard.risks.level.override' | i18n}}</h4>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__checkbox-container">
|
|
<label class="label_control-wrap">
|
|
<div class="col-xs-1">
|
|
<input class="create-change-wizard__checkbox"
|
|
type="radio"
|
|
name="risk-method"
|
|
tabindex="0"
|
|
ng-model="data.value.mode"
|
|
value="auto"
|
|
ng-click="reloadCheck()"
|
|
ng-disabled="data.value.questionDefinitions.length == 0 || !isEditable"/>
|
|
</div>
|
|
<div class="col-xs-10">
|
|
<h4>{{'create.change.wizard.risks.answerQuestion' | i18n}}</h4>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="{{isNew ? 'col-xs-7 edit-change-wizard__risk-create-container' : 'col-xs-12 edit-change-wizard__risk-edit-container'}}" ng-show="data.value.mode==='manual'">
|
|
<div mode="mode">
|
|
<div class="col-xs-12">
|
|
<div class="create-change-wizard__higher_risk">
|
|
{{'create.change.wizard.risks.higherRisk' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__risk_list">
|
|
<div class="list-group create-change-wizard__risks_list">
|
|
<a ng-repeat="riskLevel in metadata.riskLevels | orderBy:'index':true"
|
|
ng-click="riskLevelChanged(riskLevel)"
|
|
ng-enter="riskLevelChanged(riskLevel)"
|
|
class="list-group-item {{riskLevelCls(riskLevel, $index)}}"
|
|
ng-class="{'disabled': !isEditable}"
|
|
tabindex="{{overrideRiskLevelEnabled() ? 0 : -1}}}"
|
|
aria-label="{{riskLevel.label}}">
|
|
<i class="icon-angle_right"></i>
|
|
<span>{{riskLevel.label}}</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<div class="create-change-wizard__lower_risk">
|
|
{{'create.change.wizard.risks.lowerRisk' | i18n}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="{{isNew ? 'col-xs-7 edit-change-wizard__risk-create-container' : 'col-xs-12 edit-change-wizard__risk-edit-container'}}" ng-show="(data.value.mode==='auto'
|
|
|| (data.value.mode==='' && data.value.questionDefinitions.length === 0))">
|
|
<div>
|
|
<div class="create-change-wizard__risk_questions_container">
|
|
<div loading-spinner if="state.questionsLoading" centered="true" overlay="true"></div>
|
|
<div class="ticket-risks__form_invalid" ng-if="editRisksSection.$invalid">
|
|
<i class="icon-exclamation_triangle"></i>
|
|
<span>{{'create.ticket.invalid.risk-questions'|i18n}}</span>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__option-item"
|
|
ng-show="data.value.questionDefinitions.length == 0">
|
|
<h3>
|
|
{{'create.change.wizard.risks.riskQuestions.empty' | i18n}}
|
|
</h3>
|
|
<input type="text"
|
|
class="ng-hide"
|
|
ng-required="(pendingReload || reloadIf) && data.value.mode == 'auto'"
|
|
ng-model="data.value.questionsRequired"/>
|
|
</div>
|
|
<div class="col-xs-12 create-change-wizard__option-item"
|
|
ng-class="{'create-change-wizard__option-item-first-child': $index == 0}"
|
|
ng-repeat="question in data.value.questionDefinitions | orderBy:'sortOrder'"
|
|
ng-hide="data.value.questionDefinitions.length == 0">
|
|
<div ng-switch on="question.format">
|
|
<div ng-switch-when="STATIC_MENU">
|
|
<h3 tabindex="0"
|
|
aria-label=" {{question.label}}"
|
|
ng-class="{'required__label': riskQuestionsEnabled()}"
|
|
data-required="{{'common.label.required.bracketed' | i18n}}">
|
|
{{question.label}}
|
|
</h3>
|
|
<div class="btn-group create-change-wizard__option-list"
|
|
aria-label="{{'create.change.fromScratch.classList' | i18n}}"
|
|
role="group">
|
|
<input type="text"
|
|
class="ng-hide"
|
|
ng-model="question.selectedOption"
|
|
ng-disabled="!isEditable"
|
|
ng-required="riskQuestionsEnabled()"/>
|
|
<button type="button" ng-repeat="option in question.options | orderBy:'order'"
|
|
class="btn btn_secondary"
|
|
ng-class="{'active': questionOptionSelected(question, option)}"
|
|
role="button" aria-label="{{option.label}}"
|
|
ng-click="selectQuestionOption(question, option)"
|
|
ng-enter="selectQuestionOption(question, option)"
|
|
ng-disabled="!isEditable"
|
|
tabindex="{{riskQuestionsEnabled() ? 0 : -1}}">
|
|
{{option.label}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> |