2022-05-13 10:00:45 +02:00
|
|
|
<div class="list-rule">
|
|
|
|
<clr-datagrid
|
2023-03-17 11:52:23 +01:00
|
|
|
#datagrid
|
2022-05-13 10:00:45 +02:00
|
|
|
(clrDgRefresh)="clrLoad($event)"
|
|
|
|
[clrDgLoading]="loading"
|
|
|
|
[(clrDgSingleSelected)]="selectedRow"
|
|
|
|
(clrDgSingleSelectedChange)="selectRule($event)">
|
|
|
|
<clr-dg-action-bar>
|
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
id="new_replication_rule_id"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
*ngIf="hasCreateReplicationPermission"
|
|
|
|
(click)="openModal()">
|
|
|
|
<clr-icon shape="plus" size="16"></clr-icon> {{
|
|
|
|
'REPLICATION.NEW_REPLICATION_RULE' | translate
|
|
|
|
}}
|
|
|
|
</button>
|
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
id="replication_exe_id"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
*ngIf="hasExecuteReplicationPermission"
|
|
|
|
[disabled]="!selectedRow || !selectedRow.enabled"
|
|
|
|
(click)="replicateRule(selectedRow)">
|
|
|
|
<clr-icon shape="export" size="16"></clr-icon> {{
|
|
|
|
'REPLICATION.REPLICATE' | translate
|
|
|
|
}}
|
|
|
|
</button>
|
|
|
|
<clr-dropdown
|
2020-09-16 12:09:10 +02:00
|
|
|
[clrCloseMenuOnItemClick]="false"
|
2022-05-13 10:00:45 +02:00
|
|
|
class="btn btn-link"
|
2020-09-16 12:09:10 +02:00
|
|
|
clrDropdownTrigger>
|
2022-05-13 10:00:45 +02:00
|
|
|
<span id="rule-action"
|
|
|
|
>{{ 'BUTTON.ACTIONS' | translate
|
|
|
|
}}<clr-icon shape="caret down"></clr-icon
|
|
|
|
></span>
|
|
|
|
<clr-dropdown-menu *clrIfOpen>
|
|
|
|
<clr-dropdown>
|
|
|
|
<button
|
|
|
|
type="button"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
(click)="editRule(selectedRow)"
|
2020-09-16 12:09:10 +02:00
|
|
|
[disabled]="!selectedRow">
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-icon shape="edit" size="16"></clr-icon>
|
|
|
|
<span id="edit_replication_rule_id">{{
|
|
|
|
'BUTTON.EDIT' | translate
|
|
|
|
}}</span>
|
|
|
|
</button>
|
|
|
|
<button
|
|
|
|
*ngIf="selectedRow && !selectedRow.enabled"
|
|
|
|
type="button"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
(click)="operateRule('enable', selectedRow)"
|
2020-09-16 12:09:10 +02:00
|
|
|
[disabled]="!(selectedRow && !selectedRow.enabled)">
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-icon
|
|
|
|
size="16"
|
|
|
|
shape="success-standard"></clr-icon
|
|
|
|
>
|
|
|
|
<span id="rule-enable">{{
|
|
|
|
'WEBHOOK.ENABLED_BUTTON' | translate
|
|
|
|
}}</span>
|
|
|
|
</button>
|
|
|
|
<button
|
|
|
|
*ngIf="
|
|
|
|
!selectedRow ||
|
|
|
|
(selectedRow && selectedRow.enabled)
|
|
|
|
"
|
2020-09-16 12:09:10 +02:00
|
|
|
type="button"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
(click)="operateRule('disable', selectedRow)"
|
|
|
|
[disabled]="!(selectedRow && selectedRow.enabled)">
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-icon size="16" shape="ban"></clr-icon>
|
|
|
|
<span id="rule-disable">{{
|
|
|
|
'WEBHOOK.DISABLED_BUTTON' | translate
|
|
|
|
}}</span>
|
|
|
|
</button>
|
|
|
|
<div class="dropdown-divider"></div>
|
|
|
|
<button
|
2020-09-16 12:09:10 +02:00
|
|
|
type="button"
|
|
|
|
class="btn btn-secondary"
|
|
|
|
(click)="deleteRule(selectedRow)"
|
|
|
|
[disabled]="!selectedRow">
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-icon shape="window-close" size="16"></clr-icon
|
|
|
|
>
|
|
|
|
<span id="delete_replication_rule_id">{{
|
|
|
|
'BUTTON.DELETE' | translate
|
|
|
|
}}</span>
|
|
|
|
</button>
|
|
|
|
</clr-dropdown>
|
|
|
|
</clr-dropdown-menu>
|
|
|
|
</clr-dropdown>
|
|
|
|
</clr-dg-action-bar>
|
2023-03-14 07:41:16 +01:00
|
|
|
<clr-dg-column>
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[0] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.NAME' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column class="status-width">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[1] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.STATUS' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column class="col-width">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[2] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.SRC_REGISTRY' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column class="col-width">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[3] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.REPLICATION_MODE' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column class="min-width">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[4] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.DESTINATION_NAMESPACE' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column>
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[5] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.DES_REPO_FLATTENING' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column>
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[6] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.REPLICATION_TRIGGER' | translate }}
|
|
|
|
</ng-template></clr-dg-column
|
|
|
|
>
|
|
|
|
<clr-dg-column [clrDgSortBy]="'speed'">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[7] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.BANDWIDTH' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
|
|
|
<clr-dg-column [clrDgField]="'description'">
|
2023-03-17 11:52:23 +01:00
|
|
|
<ng-template [clrDgHideableColumn]="{ hidden: hiddenArray[8] }">
|
2023-03-14 07:41:16 +01:00
|
|
|
{{ 'REPLICATION.DESCRIPTION' | translate }}
|
|
|
|
</ng-template>
|
|
|
|
</clr-dg-column>
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-dg-placeholder>{{
|
|
|
|
'REPLICATION.PLACEHOLDER' | translate
|
|
|
|
}}</clr-dg-placeholder>
|
|
|
|
<clr-dg-row *ngFor="let p of rules; let i = index" [clrDgItem]="p">
|
|
|
|
<clr-dg-cell>{{ p.name }}</clr-dg-cell>
|
|
|
|
<clr-dg-cell class="status-width">
|
|
|
|
<div>
|
|
|
|
<div *ngIf="!p?.enabled">
|
|
|
|
<clr-icon
|
|
|
|
shape="exclamation-triangle"
|
|
|
|
class="is-warning text-alignment"
|
2022-11-18 07:39:26 +01:00
|
|
|
size="18"></clr-icon>
|
|
|
|
{{ 'WEBHOOK.DISABLED' | translate }}
|
2022-05-13 10:00:45 +02:00
|
|
|
</div>
|
|
|
|
<div *ngIf="p?.enabled">
|
|
|
|
<clr-icon
|
|
|
|
shape="success-standard"
|
|
|
|
class="is-success text-alignment"
|
|
|
|
size="18"></clr-icon>
|
2022-11-18 07:39:26 +01:00
|
|
|
{{ 'WEBHOOK.ENABLED' | translate }}
|
2022-05-13 10:00:45 +02:00
|
|
|
</div>
|
2022-03-22 10:21:10 +01:00
|
|
|
</div>
|
2022-05-13 10:00:45 +02:00
|
|
|
</clr-dg-cell>
|
|
|
|
<clr-dg-cell class="col-width">
|
|
|
|
<span class="margin-right-2px">{{
|
|
|
|
p.src_registry ? p.src_registry.name : ''
|
|
|
|
}}</span>
|
|
|
|
</clr-dg-cell>
|
|
|
|
<clr-dg-cell class="col-width">
|
|
|
|
{{
|
|
|
|
p.src_registry && p.src_registry.id > 0
|
|
|
|
? 'pull-based'
|
|
|
|
: 'push-based'
|
|
|
|
}}
|
|
|
|
</clr-dg-cell>
|
|
|
|
<clr-dg-cell class="min-width">
|
|
|
|
{{ p.dest_registry ? p.dest_registry.name : '' }} :
|
|
|
|
{{ p.dest_namespace ? p.dest_namespace : '-' }}
|
|
|
|
</clr-dg-cell>
|
|
|
|
<clr-dg-cell>{{
|
|
|
|
getFlattenLevelString(p.dest_namespace_replace_count)
|
|
|
|
| translate
|
|
|
|
}}</clr-dg-cell>
|
2022-11-18 07:39:26 +01:00
|
|
|
<clr-dg-cell class="trigger">
|
|
|
|
{{ getTriggerTypeI18n(p.trigger) | translate }}
|
|
|
|
<clr-signpost *ngIf="p?.trigger?.trigger_settings?.cron">
|
|
|
|
<clr-signpost-content *clrIfOpen>
|
|
|
|
{{ p?.trigger?.trigger_settings?.cron }}
|
|
|
|
</clr-signpost-content>
|
|
|
|
</clr-signpost>
|
|
|
|
</clr-dg-cell>
|
2022-05-13 10:00:45 +02:00
|
|
|
<clr-dg-cell>{{
|
|
|
|
getBandwidthStr(p.speed) | translate
|
|
|
|
}}</clr-dg-cell>
|
|
|
|
<clr-dg-cell>
|
|
|
|
{{ p.description ? trancatedDescription(p.description) : '-' }}
|
|
|
|
<clr-tooltip>
|
|
|
|
<clr-icon
|
|
|
|
*ngIf="p.description && p.description.length > 35"
|
|
|
|
clrTooltipTrigger
|
|
|
|
shape="ellipsis-horizontal"
|
|
|
|
size="18"></clr-icon>
|
|
|
|
<clr-tooltip-content
|
|
|
|
clrPosition="bottom-right"
|
|
|
|
clrSize="md"
|
|
|
|
*clrIfOpen>
|
|
|
|
<span>{{ p.description }}</span>
|
|
|
|
</clr-tooltip-content>
|
|
|
|
</clr-tooltip>
|
|
|
|
</clr-dg-cell>
|
|
|
|
</clr-dg-row>
|
|
|
|
<clr-dg-footer>
|
|
|
|
<clr-dg-pagination
|
|
|
|
#pagination
|
|
|
|
[(clrDgPage)]="page"
|
|
|
|
[clrDgPageSize]="pageSize"
|
|
|
|
[clrDgTotalItems]="totalCount">
|
|
|
|
<clr-dg-page-size [clrPageSizeOptions]="[5, 15, 30]">{{
|
|
|
|
'PAGINATION.PAGE_SIZE' | translate
|
|
|
|
}}</clr-dg-page-size>
|
|
|
|
<span *ngIf="totalCount"
|
|
|
|
>{{ pagination.firstItem + 1 }} -
|
|
|
|
{{ pagination.lastItem + 1 }}
|
|
|
|
{{ 'REPLICATION.OF' | translate }} </span
|
|
|
|
>{{ totalCount }} {{ 'REPLICATION.ITEMS' | translate }}
|
|
|
|
</clr-dg-pagination>
|
|
|
|
</clr-dg-footer>
|
|
|
|
</clr-datagrid>
|
|
|
|
<confirmation-dialog
|
|
|
|
#deletionConfirmDialog
|
|
|
|
(confirmAction)="deletionConfirm($event)"></confirmation-dialog>
|
2018-05-21 13:05:38 +02:00
|
|
|
</div>
|