1 <h1 class=
"d-flex justify-content-between">
2 <span class=
"text-nowrap me-2">
3 <my-global-icon iconName=
"globe" aria-hidden=
"true"></my-global-icon>
4 <span i18n
>Runner jobs
</span>
7 <a routerLink=
"/admin/system/runners/runners-list" class=
"peertube-button-link peertube-button-icon grey-button">
8 <my-global-icon iconName=
"codesandbox" aria-hidden=
"true"></my-global-icon>
9 <ng-container i18n
>Remote runners
</ng-container>
14 [value]=
"runnerJobs" [paginator]=
"totalRecords > 0" [totalRecords]=
"totalRecords" [rows]=
"rowsPerPage" [first]=
"pagination.start"
15 [rowsPerPageOptions]=
"rowsPerPageOptions" [sortField]=
"sort.field" [sortOrder]=
"sort.order"
16 [lazy]=
"true" (onLazyLoad)=
"loadLazy($event)" [lazyLoadOnInit]=
"false"
17 [(selection)]=
"selectedRows" [showCurrentPageReport]=
"true" i18n-currentPageReportTemplate
18 currentPageReportTemplate=
"Showing {{'{first}'}} to {{'{last}'}} of {{'{totalRecords}'}} runner jobs"
19 [expandedRowKeys]=
"expandedRows" dataKey=
"uuid"
21 <ng-template pTemplate=
"header">
23 <th style=
"width: 40px">
24 <p-tableHeaderCheckbox ariaLabel=
"Select all rows" i18n-ariaLabel
></p-tableHeaderCheckbox>
26 <th style=
"width: 40px"></th>
27 <th style=
"width: 120px;"></th>
30 <th i18n
pSortableColumn=
"state">State
<p-sortIcon field=
"state"></p-sortIcon></th>
31 <th style=
"width: 100px" i18n
pSortableColumn=
"priority">Priority
<p-sortIcon field=
"priority"></p-sortIcon></th>
32 <th style=
"width: 100px" i18n
pSortableColumn=
"progress">Progress
<p-sortIcon field=
"progress"></p-sortIcon></th>
34 <th style=
"width: 150px;" i18n
pSortableColumn=
"createdAt">Created
<p-sortIcon field=
"createdAt"></p-sortIcon></th>
38 <ng-template pTemplate=
"caption">
41 <div class=
"left-buttons">
43 *
ngIf=
"isInSelectionMode()" i18n-label
label=
"Batch actions" theme=
"orange"
44 [actions]=
"bulkActions" [entry]=
"selectedRows"
49 <div class=
"ms-auto d-flex">
50 <my-advanced-input-filter class=
"me-2" (search)=
"onSearch($event)"></my-advanced-input-filter>
52 <my-button i18n-label
label=
"Refresh" icon=
"refresh" (click)=
"reloadData()"></my-button>
57 <ng-template pTemplate=
"body" let-expanded=
"expanded" let-runnerJob
>
58 <tr [pSelectableRow]=
"runnerJob">
59 <td class=
"checkbox-cell">
60 <p-tableCheckbox [value]=
"runnerJob" ariaLabel=
"Select this row" i18n-ariaLabel
></p-tableCheckbox>
63 <td class=
"expand-cell" [pRowToggler]=
"runnerJob">
64 <my-table-expander-icon [expanded]=
"expanded"></my-table-expander-icon>
67 <td class=
"action-cell">
69 placement=
"bottom-right top-right left auto" container=
"body"
70 i18n-label
label=
"Actions" [actions]=
"actions" [entry]=
"runnerJob"
71 ></my-action-dropdown>
74 <td>{{ runnerJob.uuid }}
</td>
75 <td>{{ runnerJob.type }}
</td>
76 <td>{{ runnerJob.state.label }}
</td>
77 <td>{{ runnerJob.priority }}
</td>
80 <ng-container *
ngIf=
"runnerJob.progress">{{ runnerJob.progress }}%
</ng-container>
83 <td>{{ runnerJob.runner?.name }}
</td>
84 <td>{{ runnerJob.createdAt }}
</td>
88 <ng-template pTemplate=
"rowexpansion" let-runnerJob
>
91 <div class=
"mt-2 fs-7 font-monospace">
92 Parent job: {{ runnerJob.parent?.uuid || '-' }}
<br />
93 Processed on {{ (runnerJob.startedAt || '-') }}
<br />
94 Finished on {{ (runnerJob.finishedAt || '-') }}
<br />
98 <strong i18n
>Payload:
</strong>
99 <pre>{{ runnerJob.payload }}
</pre>
103 <strong i18n
>Private payload:
</strong>
104 <pre>{{ runnerJob.privatePayload }}
</pre>
107 <pre *
ngIf=
"runnerJob.error" class=
"text-danger" >{{ runnerJob.error }}
</pre>
112 <ng-template pTemplate=
"emptymessage">
115 <div class=
"no-results">
116 <ng-container i18n
>No runner jobs found.
</ng-container>