<div class="admin-sub-header">
- <div class="admin-sub-title">Jobs list</div>
+ <div i18n class="form-sub-title">Jobs list</div>
+
+ <div class="peertube-select-container">
+ <select [(ngModel)]="jobState" (ngModelChange)="onJobStateChanged()">
+ <option *ngFor="let state of jobStates" [value]="state">{{ state }}</option>
+ </select>
+ </div>
</div>
-<p-dataTable
- [value]="jobs" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
- sortField="createdAt" (onLazyLoad)="loadLazy($event)" [scrollable]="true" [virtualScroll]="true" [scrollHeight]="scrollHeight"
+<p-table
+ [value]="jobs" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage" dataKey="uniqId"
+ [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" [first]="pagination.start"
>
- <p-column field="id" header="ID" [style]="{ width: '40px' }"></p-column>
- <p-column field="category" header="Category" [style]="{ width: '100px' }"></p-column>
- <p-column field="handlerName" header="Handler name" [style]="{ width: '150px' }"></p-column>
- <p-column header="Input data">
- <ng-template pTemplate="body" let-job="rowData">
- <pre>{{ job.handlerInputData }}</pre>
- </ng-template>
- </p-column>
- <p-column field="state" header="State" [style]="{ width: '100px' }"></p-column>
- <p-column field="createdAt" header="Created date" [sortable]="true" [style]="{ width: '250px' }"></p-column>
- <p-column field="updatedAt" header="Updated date" [style]="{ width: '250px' }"></p-column>
-</p-dataTable>
+ <ng-template pTemplate="header">
+ <tr>
+ <th style="width: 27px"></th>
+ <th i18n style="width: 60px">ID</th>
+ <th i18n style="width: 210px">Type</th>
+ <th i18n style="width: 130px">State</th>
+ <th i18n style="width: 250px" pSortableColumn="createdAt">Created <p-sortIcon field="createdAt"></p-sortIcon></th>
+ <th i18n style="width: 250px">Processed on</th>
+ <th i18n style="width: 250px">Finished on</th>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="body" let-expanded="expanded" let-job>
+ <tr>
+ <td>
+ <span class="expander" [pRowToggler]="job">
+ <i [ngClass]="expanded ? 'glyphicon glyphicon-menu-down' : 'glyphicon glyphicon-menu-right'"></i>
+ </span>
+ </td>
+ <td>{{ job.id }}</td>
+ <td>{{ job.type }}</td>
+ <td>{{ job.state }}</td>
+ <td>{{ job.createdAt }}</td>
+ <td>{{ job.processedOn }}</td>
+ <td>{{ job.finishedOn }}</td>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="rowexpansion" let-job>
+ <tr>
+ <td colspan="7">
+ <pre>{{ job.data }}</pre>
+ </td>
+ </tr>
+ <tr class="job-error" *ngIf="job.error">
+ <td colspan="7">
+ <pre>{{ job.error }}</pre>
+ </td>
+ </tr>
+ </ng-template>
+</p-table>
+