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.
 
 
 
 
 

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>