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.
101 lines
5.4 KiB
101 lines
5.4 KiB
<sqx-title message="i18n:rules.ruleEvents.listPageTitle"></sqx-title>
|
|
|
|
<sqx-panel desiredWidth="63rem" grid="true">
|
|
<ng-container title>
|
|
{{ 'common.events' | sqxTranslate }}
|
|
</ng-container>
|
|
|
|
<ng-container menu>
|
|
<button type="button" class="btn btn-text-secondary" (click)="reload()" title="i18n:rules.refreshEventsTooltip">
|
|
<i class="icon-reset"></i> {{ 'common.refresh' | sqxTranslate }}
|
|
</button>
|
|
|
|
<sqx-shortcut keys="ctrl+shift+r" (trigger)="reload()"></sqx-shortcut>
|
|
</ng-container>
|
|
|
|
<ng-container content>
|
|
<sqx-list-view>
|
|
<ng-container content>
|
|
<table class="table table-items table-fixed">
|
|
<thead>
|
|
<tr>
|
|
<th class="cell-label">
|
|
{{ 'common.status' | sqxTranslate }}
|
|
</th>
|
|
<th class="cell-40">
|
|
{{ 'common.event' | sqxTranslate }}
|
|
</th>
|
|
<th class="cell-60">
|
|
{{ 'common.description' | sqxTranslate }}
|
|
</th>
|
|
<th class="cell-time">
|
|
{{ 'common.created' | sqxTranslate }}
|
|
</th>
|
|
<th class="cell-actions"></th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody *ngFor="let event of ruleEventsState.ruleEvents | async; trackBy: trackByRuleEvent">
|
|
<tr [class.expanded]="selectedEventId === event.id">
|
|
<td class="cell-label">
|
|
<span class="badge badge-pill badge-{{event.jobResult | sqxRuleEventBadgeClass}}">{{event.jobResult}}</span>
|
|
</td>
|
|
<td class="cell-40">
|
|
<span class="truncate">{{event.eventName}}</span>
|
|
</td>
|
|
<td class="cell-60">
|
|
<span class="truncate">{{event.description}}</span>
|
|
</td>
|
|
<td class="cell-time">
|
|
<small class="item-modified">{{event.created | sqxFromNow}}</small>
|
|
</td>
|
|
<td class="cell-actions">
|
|
<button type="button" class="btn btn-secondary table-items-edit-button" [class.active]="selectedEventId === event.id" (click)="selectEvent(event.id)">
|
|
<i class="icon-settings"></i>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
<tr *ngIf="selectedEventId === event.id">
|
|
<td colspan="5">
|
|
<div class="event-header">
|
|
<h3>{{ 'rules.ruleEvents.lastInvokedLabel' | sqxTranslate }}</h3>
|
|
</div>
|
|
|
|
<div class="row no-gutters event-stats align-items-center">
|
|
<div class="col-3">
|
|
<span class="badge badge-pill badge-{{event.result | sqxRuleEventBadgeClass}}">{{event.result}}</span>
|
|
</div>
|
|
<div class="col-2">
|
|
{{ 'rules.ruleEvents.numAttemptsLabel' | sqxTranslate }}: {{event.numCalls}}
|
|
</div>
|
|
<div class="col-4">
|
|
{{ 'rules.ruleEvents.nextAttemptLabel' | sqxTranslate }}: <ng-container *ngIf="event.nextAttempt">{{event.nextAttempt | sqxFromNow}}</ng-container>
|
|
</div>
|
|
<div class="col-3 text-right">
|
|
<button type="button" class="btn btn-text-danger btn-sm mr-1" (click)="cancel(event)" [class.hidden]="!event.nextAttempt">
|
|
{{ 'common.cancel' | sqxTranslate }}
|
|
</button>
|
|
|
|
<button type="button" class="btn btn-success btn-sm" (click)="enqueue(event)">
|
|
{{ 'rules.ruleEvents.enqueue' | sqxTranslate }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<textarea class="event-dump form-control" readonly>{{event.lastDump}}</textarea>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="spacer"></tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<sqx-pager [autoHide]="true" [pager]="ruleEventsState.ruleEventsPager | async" (pagerChange)="ruleEventsState.setPager($event)"></sqx-pager>
|
|
</ng-container>
|
|
</sqx-list-view>
|
|
</ng-container>
|
|
</sqx-panel>
|
|
|
|
<router-outlet></router-outlet>
|
|
|