Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

172 lines
8.8 KiB

<sqx-title message="i18n:rules.itemPageTitle"></sqx-title>
<form (ngSubmit)="save()">
<sqx-panel desiredWidth="54rem" [showSidebar]="true" (close)="back()">
<ng-container title>
{{ 'common.rule' | sqxTranslate }}
</ng-container>
<ng-container menu>
<div class="btn btn-outline-secondary2 btn-enabled">
<span class="mr-1" *ngIf="isEnabled">
{{ 'common.enabled' | sqxTranslate }}
</span>
<span class="mr-1" *ngIf="!isEnabled">
{{ 'common.disabled' | sqxTranslate }}
</span>
<sqx-toggle [(ngModel)]="isEnabled" [ngModelOptions]="{ standalone: true }" [disabled]="!isEditable"></sqx-toggle>
</div>
<button type="button" class="btn btn-primary ml-2" (click)="save()">
{{ 'common.save' | sqxTranslate }}
</button>
</ng-container>
<ng-container content>
<div *ngIf="supportedActions && supportedTriggers">
<div class="card mb-2">
<div class="card-header">
<div class="row align-items-center no-gutters summary-row">
<div class="col-auto col-syntax">
<h3>{{ 'rules.ruleSyntax.if' | sqxTranslate }}</h3>
</div>
<div class="col col-icon" *ngIf="triggerType">
<sqx-rule-element [type]="triggerType" [isSmall]="true" [element]="triggerElement"></sqx-rule-element>
</div>
<div class="col text-right" *ngIf="triggerType && !rule">
<button type="button" class="btn btn-text-danger" (click)="resetTrigger()">
<i class="icon-bin2"></i>
</button>
</div>
<div class="col" *ngIf="!triggerType">
<h3>...</h3>
</div>
</div>
</div>
<div class="card-body">
<ng-container *ngIf="triggerType && formTrigger; else selectTrigger">
<sqx-form-alert marginTop="0" *ngIf="!rule">
{{ 'rules.wizard.triggerHint' | sqxTranslate }}
</sqx-form-alert>
<ng-container [ngSwitch]="triggerType">
<ng-container *ngSwitchCase="'AssetChanged'">
<sqx-asset-changed-trigger
[trigger]="triggerProperties"
[triggerForm]="formTrigger.form">
</sqx-asset-changed-trigger>
</ng-container>
<ng-container *ngSwitchCase="'Comment'">
<sqx-comment-trigger
[trigger]="triggerProperties"
[triggerForm]="formTrigger.form">
</sqx-comment-trigger>
</ng-container>
<ng-container *ngSwitchCase="'ContentChanged'">
<sqx-content-changed-trigger
[schemas]="schemasState.schemas | async"
[trigger]="triggerProperties"
[triggerForm]="formTrigger.form">
</sqx-content-changed-trigger>
</ng-container>
<ng-container *ngSwitchCase="'SchemaChanged'">
<sqx-schema-changed-trigger
[trigger]="triggerProperties"
[triggerForm]="formTrigger.form">
</sqx-schema-changed-trigger>
</ng-container>
<ng-container *ngSwitchCase="'Usage'">
<sqx-usage-trigger
[trigger]="triggerProperties"
[triggerForm]="formTrigger.form">
</sqx-usage-trigger>
</ng-container>
</ng-container>
</ng-container>
<ng-template #selectTrigger>
<div class="row no-gutters">
<div *ngFor="let triggerType of supportedTriggers | sqxKeys" class="col-12 col-md-6">
<div class="rule-element" (click)="selectTriggerType(triggerType)">
<sqx-rule-element [type]="triggerType" [isSmall]="false" [element]="supportedTriggers[triggerType]"></sqx-rule-element>
</div>
</div>
</div>
</ng-template>
</div>
</div>
<div class="card">
<div class="card-header">
<div class="row align-items-center no-gutters summary-row">
<div class="col-auto col-syntax">
<h3>{{ 'rules.ruleSyntax.then' | sqxTranslate }}</h3>
</div>
<div class="col col-icon" *ngIf="actionType">
<sqx-rule-element [type]="actionType" [isSmall]="true" [element]="actionElement"></sqx-rule-element>
</div>
<div class="col text-right" *ngIf="actionType && !rule">
<button type="button" class="btn btn-text-danger" (click)="resetAction()">
<i class="icon-bin2"></i>
</button>
</div>
<div class="col" *ngIf="!actionType">
<h3>...</h3>
</div>
</div>
</div>
<div class="card-body">
<ng-container *ngIf="actionType && formAction; else selectAction">
<sqx-form-alert marginTop="0" *ngIf="!rule">
{{ 'rules.wizard.actionHint' | sqxTranslate }}
</sqx-form-alert>
<sqx-generic-action
[definition]="actionElement"
[action]="actionProperties"
[actionForm]="formAction.form">
</sqx-generic-action>
</ng-container>
<ng-template #selectAction>
<div class="row no-gutters">
<div *ngFor="let actionType of supportedActions | sqxKeys" class="col-12 col-md-6">
<div class="rule-element" (click)="selectActionType(actionType)">
<sqx-rule-element [type]="actionType" [isSmall]="false" [element]="supportedActions[actionType]"></sqx-rule-element>
</div>
</div>
</div>
</ng-template>
</div>
</div>
</div>
</ng-container>
<ng-container sidebar>
<div class="panel-nav">
<a class="panel-link panel-link-gray" routerLink="events" [queryParams]="{ ruleId: rule.id }" routerLinkActive="active" title="i18n:common.history" titlePosition="left" *ngIf="rule && (rulesState.canReadEvents | async)">
<i class="icon-time"></i>
</a>
<a class="panel-link" routerLink="help" routerLinkActive="active" queryParamsHandling="preserve" title="i18n:common.help" titlePosition="left" #helpLink>
<i class="icon-help2"></i>
</a>
<sqx-onboarding-tooltip helpId="help" [for]="helpLink" position="left-top" [after]="180000">
<span [innerHTML]="'common.helpTour' | sqxTranslate | sqxMarkdownInline"></span>
</sqx-onboarding-tooltip>
</div>
</ng-container>
</sqx-panel>
</form>
<router-outlet></router-outlet>