mirror of https://github.com/Squidex/squidex.git
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
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>
|