mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-24 09:38:09 +01:00
Modify some style
Signed-off-by: AllForNothing <sshijun@vmware.com>
This commit is contained in:
parent
b89f81bde0
commit
f590afacd7
@ -10,7 +10,7 @@
|
|||||||
<input class="clr-input" type="text" name="account_settings_username" [(ngModel)]="account.username"
|
<input class="clr-input" type="text" name="account_settings_username" [(ngModel)]="account.username"
|
||||||
disabled id="account_settings_username" size="30">
|
disabled id="account_settings_username" size="30">
|
||||||
<div *ngIf="canRename" class="rename-tool">
|
<div *ngIf="canRename" class="rename-tool">
|
||||||
<button id="rename-btn" [disabled]="RenameOnGoing" (click)="onRename()" class="btn btn-outline btn-sm">
|
<button id="rename-btn" [disabled]="RenameOnGoing" (click)="onRename()" class="btn btn-outline ">
|
||||||
{{'PROFILE.ADMIN_RENAME_BUTTON' | translate}}
|
{{'PROFILE.ADMIN_RENAME_BUTTON' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<clr-tooltip>
|
<clr-tooltip>
|
||||||
@ -72,10 +72,10 @@
|
|||||||
[ngModel]="'account.oidc_user_meta.secret'" size="33">
|
[ngModel]="'account.oidc_user_meta.secret'" size="33">
|
||||||
|
|
||||||
<button (click)="generateCli(account.user_id)" id="generate-cli-btn"
|
<button (click)="generateCli(account.user_id)" id="generate-cli-btn"
|
||||||
class="btn btn-outline btn-sm btn-padding-less" *ngIf="showGenerateCli">
|
class="btn btn-outline btn-padding-less" *ngIf="showGenerateCli">
|
||||||
{{'PROFILE.ADMIN_CIL_SECRET_BUTTON' | translate}}
|
{{'PROFILE.ADMIN_CIL_SECRET_BUTTON' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button (click)="showSecretDetail=true" id="reset-cli-btn" class="btn btn-outline btn-sm btn-padding-less"
|
<button (click)="showSecretDetail=true" id="reset-cli-btn" class="btn btn-outline btn-padding-less"
|
||||||
*ngIf="showGenerateCli">
|
*ngIf="showGenerateCli">
|
||||||
{{'PROFILE.ADMIN_CIL_SECRET_RESET_BUTTON' | translate}}
|
{{'PROFILE.ADMIN_CIL_SECRET_RESET_BUTTON' | translate}}
|
||||||
</button>
|
</button>
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.search::before {
|
.search::before {
|
||||||
position: absolute;
|
|
||||||
content: '';
|
content: '';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: #fafafa;
|
background: #fafafa;
|
||||||
|
@ -79,7 +79,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="vertical-nav-footer">
|
<div class="vertical-nav-footer">
|
||||||
<a clrVerticalNavLink target="_blank" routerLink="/devcenter">
|
<a clrVerticalNavLink target="_blank" routerLink="/devcenter">
|
||||||
<button type="button" class="btn btn-sm api-button">
|
<button type="button" class="btn api-button">
|
||||||
<span>{{'SIDE_NAV.API_EXPLORER' | translate }}</span>
|
<span>{{'SIDE_NAV.API_EXPLORER' | translate }}</span>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
@ -12,14 +12,14 @@
|
|||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-7">
|
<div class="clr-col-7">
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="addNewScanner()">
|
<button type="button" class="btn btn-secondary" (click)="addNewScanner()">
|
||||||
<clr-icon shape="plus" size="16"></clr-icon>
|
<clr-icon shape="plus" size="16"></clr-icon>
|
||||||
{{'SCANNER.NEW_SCANNER' | translate}}
|
{{'SCANNER.NEW_SCANNER' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button id="set-default" [disabled]="!(selectedRow && !selectedRow.is_default && !selectedRow.disabled)"
|
<button id="set-default" [disabled]="!(selectedRow && !selectedRow.is_default && !selectedRow.disabled)"
|
||||||
class="btn btn-sm btn-secondary"
|
class="btn btn-secondary"
|
||||||
(click)="setAsDefault()">{{'SCANNER.SET_AS_DEFAULT' | translate}}</button>
|
(click)="setAsDefault()">{{'SCANNER.SET_AS_DEFAULT' | translate}}</button>
|
||||||
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-sm btn-link" clrDropdownTrigger>
|
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-link" clrDropdownTrigger>
|
||||||
<span id="action-scanner">{{'MEMBER.ACTION' | translate}}<clr-icon class="clr-icon" shape="caret down"></clr-icon></span>
|
<span id="action-scanner">{{'MEMBER.ACTION' | translate}}<clr-icon class="clr-icon" shape="caret down"></clr-icon></span>
|
||||||
<clr-dropdown-menu *clrIfOpen>
|
<clr-dropdown-menu *clrIfOpen>
|
||||||
<button clrDropdownItem
|
<button clrDropdownItem
|
||||||
@ -36,13 +36,13 @@
|
|||||||
</button>
|
</button>
|
||||||
<button clrDropdownItem
|
<button clrDropdownItem
|
||||||
(click)="editScanner()"
|
(click)="editScanner()"
|
||||||
class="btn btn-sm btn-secondary" [disabled]="!selectedRow">
|
class="btn btn-secondary" [disabled]="!selectedRow">
|
||||||
<clr-icon class="margin-top-0" size="16" shape="pencil"></clr-icon>
|
<clr-icon class="margin-top-0" size="16" shape="pencil"></clr-icon>
|
||||||
<span class="margin-left-10">{{'BUTTON.EDIT' | translate}}</span>
|
<span class="margin-left-10">{{'BUTTON.EDIT' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button clrDropdownItem
|
<button clrDropdownItem
|
||||||
(click)="deleteScanners()"
|
(click)="deleteScanners()"
|
||||||
class="btn btn-sm btn-secondary" [disabled]="!selectedRow">
|
class="btn btn-secondary" [disabled]="!selectedRow">
|
||||||
<clr-icon class="margin-top-0" size="16" shape="times"></clr-icon>
|
<clr-icon class="margin-top-0" size="16" shape="times"></clr-icon>
|
||||||
<span id="delete-scanner-action" class="margin-left-10">{{'BUTTON.DELETE' | translate}}</span>
|
<span id="delete-scanner-action" class="margin-left-10">{{'BUTTON.DELETE' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
.alert-app-level {
|
|
||||||
margin-bottom:20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.alert-style {
|
.alert-style {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
@ -11,11 +11,11 @@
|
|||||||
<div>
|
<div>
|
||||||
<clr-datagrid [(clrDgSelected)]="selectedGroups" [clrDgLoading]="loading">
|
<clr-datagrid [(clrDgSelected)]="selectedGroups" [clrDgLoading]="loading">
|
||||||
<clr-dg-action-bar >
|
<clr-dg-action-bar >
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="addGroup()" [disabled]="!canAddGroup">
|
<button type="button" class="btn btn-secondary" (click)="addGroup()" [disabled]="!canAddGroup">
|
||||||
<clr-icon shape="plus" size="15"></clr-icon> {{'GROUP.ADD' | translate}}</button>
|
<clr-icon shape="plus" size="15"></clr-icon> {{'GROUP.ADD' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="editGroup()" [disabled]="!canEditGroup">
|
<button type="button" class="btn btn-secondary" (click)="editGroup()" [disabled]="!canEditGroup">
|
||||||
<clr-icon shape="pencil" size="15"></clr-icon> {{'GROUP.EDIT' | translate}}</button>
|
<clr-icon shape="pencil" size="15"></clr-icon> {{'GROUP.EDIT' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="openDeleteConfirmationDialog()" [disabled]="!canDeleteGroup">
|
<button type="button" class="btn btn-secondary" (click)="openDeleteConfirmationDialog()" [disabled]="!canDeleteGroup">
|
||||||
<clr-icon shape="times" size="15"></clr-icon> {{'GROUP.DELETE' | translate}}</button>
|
<clr-icon shape="times" size="15"></clr-icon> {{'GROUP.DELETE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
|
|
||||||
|
@ -3,10 +3,6 @@
|
|||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sub-nav-bg-color {
|
|
||||||
background-color: #fafafa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subnav {
|
.subnav {
|
||||||
.nav {
|
.nav {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
|
@ -1 +1,3 @@
|
|||||||
<div class="license" >{{licenseContent}}</div>
|
<div class="overflow-y-scroll">
|
||||||
|
<div class="license" >{{licenseContent}}</div>
|
||||||
|
</div>
|
||||||
|
@ -6,3 +6,10 @@
|
|||||||
margin: 1em 0px;
|
margin: 1em 0px;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.overflow-y-scroll {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
position: fixed;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
@ -2,5 +2,8 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #007cbb;
|
color: #007cbb;
|
||||||
font-size: 12px;
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.breadcrumb {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
@ -4,7 +4,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row content-wrapper">
|
<div class="row content-wrapper">
|
||||||
<div class="col-md-8 md-container">
|
<div class="col-md-8 md-container pl-1">
|
||||||
<div *ngIf="readme" class="md-div" [innerHTML]="readme | markdown"></div>
|
<div *ngIf="readme" class="md-div" [innerHTML]="readme | markdown"></div>
|
||||||
<div *ngIf="!readme">{{'HELM_CHART.NO_README' | translate}}</div>
|
<div *ngIf="!readme">{{'HELM_CHART.NO_README' | translate}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-sm btn-secondary"
|
<button class="btn btn-secondary"
|
||||||
(click)="downloadChart()">{{'HELM_CHART.DOWNLOAD' | translate}}</button>
|
(click)="downloadChart()">{{'HELM_CHART.DOWNLOAD' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,18 +37,18 @@
|
|||||||
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid (clrDgRefresh)="refresh()" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRows">
|
<clr-datagrid (clrDgRefresh)="refresh()" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRows">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" class="btn btn-sm btn-secondary"
|
<button type="button" class="btn btn-secondary"
|
||||||
[disabled]="!(selectedRows.length===1) || !hasDownloadHelmChartVersionPermission"
|
[disabled]="!(selectedRows.length===1) || !hasDownloadHelmChartVersionPermission"
|
||||||
(click)="versionDownload()">
|
(click)="versionDownload()">
|
||||||
<clr-icon shape="download" size="16"></clr-icon> {{'HELM_CHART.DOWNLOAD' | translate}}
|
<clr-icon shape="download" size="16"></clr-icon> {{'HELM_CHART.DOWNLOAD' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary"
|
<button type="button" class="btn btn-secondary"
|
||||||
[disabled]="selectedRows.length<=0 || !hasDeleteHelmChartVersionPermission"
|
[disabled]="selectedRows.length<=0 || !hasDeleteHelmChartVersionPermission"
|
||||||
(click)="openVersionDeleteModal()">
|
(click)="openVersionDeleteModal()">
|
||||||
<clr-icon shape="times" size="16"></clr-icon> {{'BUTTON.DELETE' | translate}}
|
<clr-icon shape="times" size="16"></clr-icon> {{'BUTTON.DELETE' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<clr-dropdown>
|
<clr-dropdown>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" clrDropdownTrigger
|
<button type="button" class="btn btn-secondary" clrDropdownTrigger
|
||||||
[disabled]="!(selectedRows.length===1)|| !hasAddRemoveHelmChartVersionPermission">
|
[disabled]="!(selectedRows.length===1)|| !hasAddRemoveHelmChartVersionPermission">
|
||||||
<clr-icon shape="plus" size="16"></clr-icon>{{'REPOSITORY.ADD_LABELS' | translate}}
|
<clr-icon shape="plus" size="16"></clr-icon>{{'REPOSITORY.ADD_LABELS' | translate}}
|
||||||
</button>
|
</button>
|
||||||
|
@ -2,5 +2,8 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #007cbb;
|
color: #007cbb;
|
||||||
font-size: 12px;
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.breadcrumb {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
@ -23,15 +23,15 @@
|
|||||||
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid (clrDgRefresh)="refresh()" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRows">
|
<clr-datagrid (clrDgRefresh)="refresh()" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRows">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" id="helm-chart-upload" class="btn btn-sm btn-secondary"
|
<button type="button" id="helm-chart-upload" class="btn btn-secondary"
|
||||||
[disabled]="!hasUploadHelmChartsPermission" (click)="onChartUpload()">
|
[disabled]="!hasUploadHelmChartsPermission" (click)="onChartUpload()">
|
||||||
<clr-icon shape="upload" size="16"></clr-icon>{{'HELM_CHART.UPLOAD' | translate}}
|
<clr-icon shape="upload" size="16"></clr-icon>{{'HELM_CHART.UPLOAD' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!hasDeleteHelmChartsPermission || selectedRows.length<1"
|
<button type="button" class="btn btn-secondary" [disabled]="!hasDeleteHelmChartsPermission || selectedRows.length<1"
|
||||||
(click)="openChartDeleteModal()">
|
(click)="openChartDeleteModal()">
|
||||||
<clr-icon shape="trash" size="16"></clr-icon>{{'BUTTON.DELETE' | translate}}
|
<clr-icon shape="trash" size="16"></clr-icon>{{'BUTTON.DELETE' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!hasDownloadHelmChartsPermission ||selectedRows.length!==1"
|
<button type="button" class="btn btn-secondary" [disabled]="!hasDownloadHelmChartsPermission ||selectedRows.length!==1"
|
||||||
(click)="downloadLatestVersion()">
|
(click)="downloadLatestVersion()">
|
||||||
<clr-icon shape="download" size="16"></clr-icon>{{'HELM_CHART.DOWNLOAD' | translate}}
|
<clr-icon shape="download" size="16"></clr-icon>{{'HELM_CHART.DOWNLOAD' | translate}}
|
||||||
</button>
|
</button>
|
||||||
@ -103,7 +103,7 @@
|
|||||||
<div class="clr-input-wrapper">
|
<div class="clr-input-wrapper">
|
||||||
<input class="filename-input clr-input" type="text" placeholder="{{this.chartFile?.name || 'BUTTON.NO_FILE' | translate}}"
|
<input class="filename-input clr-input" type="text" placeholder="{{this.chartFile?.name || 'BUTTON.NO_FILE' | translate}}"
|
||||||
disabled>
|
disabled>
|
||||||
<label for="chart" class="btn btn-secondary btn-sm file-browser-btn">{{'BUTTON.BROWSE' | translate}}
|
<label for="chart" class="btn btn-secondary file-browser-btn">{{'BUTTON.BROWSE' | translate}}
|
||||||
</label>
|
</label>
|
||||||
<input class="file-input" type="file" id="chart" name="chart" ngModel (change)="onChartFileChangeEvent($event)">
|
<input class="file-input" type="file" id="chart" name="chart" ngModel (change)="onChartFileChangeEvent($event)">
|
||||||
</div>
|
</div>
|
||||||
@ -113,7 +113,7 @@
|
|||||||
<div class="clr-input-wrapper">
|
<div class="clr-input-wrapper">
|
||||||
<input class="filename-input clr-input" type="text" placeholder="{{this.provFile?.name || 'BUTTON.NO_FILE' | translate}}"
|
<input class="filename-input clr-input" type="text" placeholder="{{this.provFile?.name || 'BUTTON.NO_FILE' | translate}}"
|
||||||
disabled>
|
disabled>
|
||||||
<label for="prov" class="btn btn-secondary btn-sm file-browser-btn">{{'BUTTON.BROWSE' | translate}}
|
<label for="prov" class="btn btn-secondary file-browser-btn">{{'BUTTON.BROWSE' | translate}}
|
||||||
</label>
|
</label>
|
||||||
<input class="file-input" type="file" id="prov" name="prov" ngModel (change)="onProvFileChangeEvent($event)">
|
<input class="file-input" type="file" id="prov" name="prov" ngModel (change)="onProvFileChangeEvent($event)">
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<clr-datagrid (clrDgRefresh)="clrLoad($event)" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow">
|
<clr-datagrid (clrDgRefresh)="clrLoad($event)" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="addNewProject()" *ngIf="projectCreationRestriction">
|
<button type="button" class="btn btn-secondary" (click)="addNewProject()" *ngIf="projectCreationRestriction">
|
||||||
<clr-icon shape="plus" size="16"></clr-icon> {{'PROJECT.NEW_PROJECT' | translate}}</button>
|
<clr-icon shape="plus" size="16"></clr-icon> {{'PROJECT.NEW_PROJECT' | translate}}</button>
|
||||||
<button id="delete-project" type="button" class="btn btn-sm btn-secondary" [disabled]="!canDelete"
|
<button id="delete-project" type="button" class="btn btn-secondary" [disabled]="!canDelete"
|
||||||
(click)="deleteProjects(selectedRow)">
|
(click)="deleteProjects(selectedRow)">
|
||||||
<clr-icon shape="times" size="16"></clr-icon> {{'PROJECT.DELETE' | translate}}</button>
|
<clr-icon shape="times" size="16"></clr-icon> {{'PROJECT.DELETE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button class="btn btn-sm btn-secondary" (click)="openAddMemberModal()" [disabled]="!hasCreateMemberPermission">
|
<button class="btn btn-secondary" (click)="openAddMemberModal()" [disabled]="!hasCreateMemberPermission">
|
||||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.USER' | translate }}</span>
|
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.USER' | translate }}</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-sm btn-secondary" (click)="openAddGroupModal()" [disabled]="!hasCreateMemberPermission || !(isLdapMode || isHttpAuthMode || isOidcMode)">
|
<button class="btn btn-secondary" (click)="openAddGroupModal()" [disabled]="!hasCreateMemberPermission || !(isLdapMode || isHttpAuthMode || isOidcMode)">
|
||||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.LDAP_GROUP' | translate}}</span>
|
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.LDAP_GROUP' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-sm btn-link" clrDropdownTrigger>
|
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-link" clrDropdownTrigger>
|
||||||
<span id='member-action'>{{'MEMBER.ACTION' | translate}}<clr-icon shape="caret down"></clr-icon></span>
|
<span id='member-action'>{{'MEMBER.ACTION' | translate}}<clr-icon shape="caret down"></clr-icon></span>
|
||||||
<clr-dropdown-menu *clrIfOpen>
|
<clr-dropdown-menu *clrIfOpen>
|
||||||
<label class="dropdown-header">{{'MEMBER.SET_ROLE' | translate}}</label>
|
<label class="dropdown-header">{{'MEMBER.SET_ROLE' | translate}}</label>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<a *ngIf="hasSignedIn" (click)="backToProject()" class="backStyle">< {{'PROJECT_DETAIL.PROJECTS' | translate}}</a>
|
<a *ngIf="hasSignedIn" (click)="backToProject()" class="backStyle"> {{'PROJECT_DETAIL.PROJECTS' | translate}}</a>
|
||||||
<a *ngIf="!hasSignedIn" [routerLink]="['/harbor', 'sign-in']">< {{'SEARCH.BACK' | translate}}</a>
|
<a *ngIf="!hasSignedIn" [routerLink]="['/harbor', 'sign-in']"> {{'SEARCH.BACK' | translate}}</a>
|
||||||
|
|
||||||
<h1 class="custom-h2" sub-header-title>{{currentProject.name}} <span class="role-label"
|
<h1 class="custom-h2" sub-header-title>{{currentProject.name}} <span class="role-label"
|
||||||
*ngIf="isMember">{{roleName | translate}}</span></h1>
|
*ngIf="isMember">{{roleName | translate}}</span></h1>
|
||||||
|
@ -19,8 +19,11 @@
|
|||||||
}
|
}
|
||||||
.backStyle {
|
.backStyle {
|
||||||
color: #007cbb;
|
color: #007cbb;
|
||||||
font-size: 12px;
|
font-size: 16px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
background: #fafafa;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
@ -14,13 +14,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button class="btn btn-sm btn-secondary" [disabled]="!hasRobotCreatePermission" (click)="openAddRobotModal()">
|
<button class="btn btn-secondary" [disabled]="!hasRobotCreatePermission" (click)="openAddRobotModal()">
|
||||||
<span>
|
<span>
|
||||||
<clr-icon shape="plus" size="16"></clr-icon> {{'ROBOT_ACCOUNT.NEW_ROBOT_ACCOUNT'
|
<clr-icon shape="plus" size="16"></clr-icon> {{'ROBOT_ACCOUNT.NEW_ROBOT_ACCOUNT'
|
||||||
| translate }}
|
| translate }}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-sm
|
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn
|
||||||
btn-link" clrDropdownTrigger>
|
btn-link" clrDropdownTrigger>
|
||||||
<span>{{'MEMBER.ACTION' | translate}}<clr-icon shape="caret
|
<span>{{'MEMBER.ACTION' | translate}}<clr-icon shape="caret
|
||||||
down"></clr-icon></span>
|
down"></clr-icon></span>
|
||||||
|
@ -3,21 +3,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div *ngIf="!loading" class="clr-form clr-form-horizontal">
|
<div *ngIf="!loading" class="clr-form clr-form-horizontal">
|
||||||
<div class="clr-form-control">
|
<div class="clr-form-control">
|
||||||
<label class="clr-control-label name">{{'SCANNER.SCANNER' | translate}}</label>
|
<label *ngIf="!scanner" class="clr-control-label name">{{'SCANNER.SCANNER' | translate}}</label>
|
||||||
<div class="clr-control-container">
|
<div class="clr-control-container">
|
||||||
<button *ngIf="(!scanner) && hasCreatePermission && scanners && scanners.length > 0" id="edit-scanner-copy" class="btn btn-primary btn-sm" (click)="open()">{{'SCANNER.EDIT' | translate}}</button>
|
<button *ngIf="(!scanner) && hasCreatePermission && scanners && scanners.length > 0" id="edit-scanner-copy" class="btn btn-primary " (click)="open()">{{'SCANNER.EDIT' | translate}}</button>
|
||||||
<label *ngIf="(!scanner) && hasCreatePermission && !(scanners && scanners.length > 0)" class="name">{{'SCANNER.NOT_AVAILABLE' | translate}}</label>
|
<label *ngIf="(!scanner) && hasCreatePermission && !(scanners && scanners.length > 0)" class="name">{{'SCANNER.NOT_AVAILABLE' | translate}}</label>
|
||||||
<label *ngIf="(!scanner) && !hasCreatePermission" class="name">{{'SCANNER.NO_PROJECT_SCANNER' | translate}}</label>
|
<label *ngIf="(!scanner) && !hasCreatePermission" class="name">{{'SCANNER.NO_PROJECT_SCANNER' | translate}}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ng-container *ngIf="scanner">
|
<ng-container *ngIf="scanner">
|
||||||
<div class="clr-form-control">
|
<div class="clr-form-control">
|
||||||
<label for="select-full" class="clr-control-label">{{'SCANNER.NAME' | translate}}</label>
|
<label for="select-full" class="clr-control-label name">{{'SCANNER.NAME' | translate}}</label>
|
||||||
<div class="clr-control-container">
|
<div class="clr-control-container">
|
||||||
<div class="clr-input-wrapper">
|
<div class="clr-input-wrapper">
|
||||||
<div class="clr-input-wrapper">
|
<div class="clr-input-wrapper name">
|
||||||
<span id="scanner-name" class="scanner-name">{{scanner?.name}}</span>
|
<span id="scanner-name" class="scanner-name">{{scanner?.name}}</span>
|
||||||
<button *ngIf="hasCreatePermission && scanners && scanners.length > 0" id="edit-scanner" class="btn btn-primary btn-sm" (click)="open()">{{'SCANNER.EDIT' | translate}}</button>
|
<button *ngIf="hasCreatePermission && scanners && scanners.length > 0" id="edit-scanner" class="btn btn-primary " (click)="open()">{{'SCANNER.EDIT' | translate}}</button>
|
||||||
<span *ngIf="scanner?.disabled" class="label label-warning ml-1">{{'SCANNER.DISABLED' | translate}}</span>
|
<span *ngIf="scanner?.disabled" class="label label-warning ml-1">{{'SCANNER.DISABLED' | translate}}</span>
|
||||||
<span *ngIf="scanner?.health === 'unhealthy'" class="label label-danger ml-1">{{'SCANNER.UNHEALTHY' | translate}}</span>
|
<span *ngIf="scanner?.health === 'unhealthy'" class="label label-danger ml-1">{{'SCANNER.UNHEALTHY' | translate}}</span>
|
||||||
<span *ngIf="scanner?.health === 'healthy'" class="label label-success ml-1">{{'SCANNER.HEALTHY' | translate}}</span>
|
<span *ngIf="scanner?.health === 'healthy'" class="label label-success ml-1">{{'SCANNER.HEALTHY' | translate}}</span>
|
||||||
|
@ -21,3 +21,7 @@
|
|||||||
.clr-form-control {
|
.clr-form-control {
|
||||||
margin-top: 0.75rem !important;
|
margin-top: 0.75rem !important;
|
||||||
}
|
}
|
||||||
|
.name {
|
||||||
|
height: 1.75rem;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-2 flex-150">
|
<div class="clr-col-2 flex-150">
|
||||||
<div class="dropdown" [ngClass]="{open:ruleIndex===i}">
|
<div class="dropdown" [ngClass]="{open:ruleIndex===i}">
|
||||||
<button (click)="openEditor(i)" id="{{'action'+i}}" class="dropdown-toggle btn btn-link btn-sm">
|
<button (click)="openEditor(i)" id="{{'action'+i}}" class="dropdown-toggle btn btn-sm btn-link ">
|
||||||
{{'IMMUTABLE_TAG.ACTION' | translate}}
|
{{'IMMUTABLE_TAG.ACTION' | translate}}
|
||||||
<clr-icon shape="caret down"></clr-icon>
|
<clr-icon shape="caret down"></clr-icon>
|
||||||
</button>
|
</button>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
<div class="v-center clr-row" [ngClass]="{'pt-1':rules?.length > 0}">
|
<div class="v-center clr-row" [ngClass]="{'pt-1':rules?.length > 0}">
|
||||||
<div class="clr-col-2 flex-150"></div>
|
<div class="clr-col-2 flex-150"></div>
|
||||||
<div class="add-rule-btn">
|
<div class="add-rule-btn">
|
||||||
<button [disabled]="rules?.length >= 15" id="add-rule" class="btn btn-primary btn-sm" (click)="openAddRule()">{{'IMMUTABLE_TAG.ADD_RULE' | translate}}</button>
|
<button [disabled]="rules?.length >= 15" id="add-rule" class="btn btn-primary " (click)="openAddRule()">{{'IMMUTABLE_TAG.ADD_RULE' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="clr-col-6 color-97 font-size-54">
|
<div class="clr-col-6 color-97 font-size-54">
|
||||||
{{'IMMUTABLE_TAG.ADD_RULE_HELP_1' | translate}}
|
{{'IMMUTABLE_TAG.ADD_RULE_HELP_1' | translate}}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-2 flex-150">
|
<div class="clr-col-2 flex-150">
|
||||||
<div class="dropdown" [ngClass]="{open:ruleIndex===i}">
|
<div class="dropdown" [ngClass]="{open:ruleIndex===i}">
|
||||||
<button (click)="openEditor(i)" class="padding-left-0 dropdown-toggle btn btn-link btn-sm">
|
<button (click)="openEditor(i)" class="padding-left-0 dropdown-toggle btn btn-sm btn-link ">
|
||||||
{{'TAG_RETENTION.ACTION' | translate}}
|
{{'TAG_RETENTION.ACTION' | translate}}
|
||||||
<clr-icon shape="caret down"></clr-icon>
|
<clr-icon shape="caret down"></clr-icon>
|
||||||
</button>
|
</button>
|
||||||
@ -58,7 +58,7 @@
|
|||||||
<div class="v-center clr-row" [ngClass]="{'pt-1':retention?.rules?.length > 0}">
|
<div class="v-center clr-row" [ngClass]="{'pt-1':retention?.rules?.length > 0}">
|
||||||
<div class="clr-col-2 flex-150"></div>
|
<div class="clr-col-2 flex-150"></div>
|
||||||
<div class="flex-8p">
|
<div class="flex-8p">
|
||||||
<button id="add-rule" [disabled]="retention?.rules?.length >= 15" class="btn btn-primary btn-sm" (click)="openAddRule()">{{'TAG_RETENTION.ADD_RULE' | translate}}</button>
|
<button id="add-rule" [disabled]="retention?.rules?.length >= 15" class="btn btn-primary " (click)="openAddRule()">{{'TAG_RETENTION.ADD_RULE' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="clr-col-6 color-97 font-size-54">
|
<div class="clr-col-6 color-97 font-size-54">
|
||||||
{{'TAG_RETENTION.ADD_RULE_HELP_1' | translate}}
|
{{'TAG_RETENTION.ADD_RULE_HELP_1' | translate}}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="arrow-block" *ngIf="!withAdmiral">
|
<div class="arrow-block" *ngIf="!withAdmiral">
|
||||||
<a (click)="goBackPro()">< {{'SIDE_NAV.PROJECTS'| translate}}</a>
|
<a (click)="goBackPro()">{{'SIDE_NAV.PROJECTS'| translate}}</a>
|
||||||
<a (click)="goBackRep()">< {{'REPOSITORY.REPOSITORIES'| translate}}</a>
|
<span class="back-icon"><</span>
|
||||||
<a (click)="goBack(repositoryId)">< {{repositoryId}}</a>
|
<a (click)="goBackRep()">{{'REPOSITORY.REPOSITORIES'| translate}}</a>
|
||||||
|
<span class="back-icon"><</span>
|
||||||
|
<a (click)="goBack(repositoryId)">{{repositoryId}}</a>
|
||||||
</div>
|
</div>
|
||||||
<hbr-tag-detail (backEvt)="goBack($event)"
|
<hbr-tag-detail (backEvt)="goBack($event)"
|
||||||
[tagId]="tagId"
|
[tagId]="tagId"
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
.arrow-block a{
|
||||||
|
cursor: pointer;
|
||||||
|
color: #007cbb;
|
||||||
|
font-size: 16px;
|
||||||
|
background: #fafafa;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 2px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.back-icon {
|
||||||
|
color: gray;
|
||||||
|
}
|
@ -19,7 +19,7 @@ import { SessionService } from '../../shared/session.service';
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'repository',
|
selector: 'repository',
|
||||||
templateUrl: 'tag-detail-page.component.html',
|
templateUrl: 'tag-detail-page.component.html',
|
||||||
styles: ['.arrow-block a{text-decoration: none; cursor: pointer; cursor: pointer; color: #007cbb; font-size: 12px;}']
|
styleUrls: ["tag-detail-page.component.scss"]
|
||||||
})
|
})
|
||||||
export class TagDetailPageComponent implements OnInit {
|
export class TagDetailPageComponent implements OnInit {
|
||||||
tagId: string;
|
tagId: string;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="breadcrumb" *ngIf="!withAdmiral">
|
<div class="breadcrumb" *ngIf="!withAdmiral">
|
||||||
<a (click)="goProBack()">{{'SIDE_NAV.PROJECTS'| translate}}</a>
|
<a (click)="goProBack()">{{'SIDE_NAV.PROJECTS'| translate}}</a>
|
||||||
<a (click)="watchGoBackEvt(projectId)">< {{'REPOSITORY.REPOSITORIES'| translate}}</a>
|
<span class="back-icon"><</span>
|
||||||
|
<a (click)="watchGoBackEvt(projectId)">{{'REPOSITORY.REPOSITORIES'| translate}}</a>
|
||||||
</div>
|
</div>
|
||||||
<hbr-repository [repoName]="repoName" [hasSignedIn]="hasSignedIn" [hasProjectAdminRole]="hasProjectAdminRole"
|
<hbr-repository [repoName]="repoName" [hasSignedIn]="hasSignedIn" [hasProjectAdminRole]="hasProjectAdminRole"
|
||||||
[projectId]="projectId" [memberRoleID]="projectMemberRoleId" [isGuest]="isGuest"
|
[projectId]="projectId" [memberRoleID]="projectMemberRoleId" [isGuest]="isGuest"
|
||||||
|
@ -2,5 +2,13 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #007cbb;
|
color: #007cbb;
|
||||||
font-size: 12px;
|
font-size: 16px;
|
||||||
|
background: #fafafa;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 2px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-icon {
|
||||||
|
color: gray;
|
||||||
}
|
}
|
@ -4,8 +4,8 @@
|
|||||||
{{errorMessage}}
|
{{errorMessage}}
|
||||||
</span>
|
</span>
|
||||||
<div class="alert-actions" *ngIf="showCancelAction">
|
<div class="alert-actions" *ngIf="showCancelAction">
|
||||||
<button class="btn btn-sm btn-link alert-btn-link" (click)="close()">{{'BUTTON.NO' | translate}}</button>
|
<button class="btn btn-link alert-btn-link" (click)="close()">{{'BUTTON.NO' | translate}}</button>
|
||||||
<button class="btn btn-sm btn-link alert-btn-link" (click)="confirmCancel()">{{'BUTTON.YES' | translate}}</button>
|
<button class="btn btn-link alert-btn-link" (click)="confirmCancel()">{{'BUTTON.YES' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</clr-alert>
|
</clr-alert>
|
@ -8,15 +8,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.statistic-data {
|
.statistic-data {
|
||||||
font-size: 16px;
|
font-size: 24px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-family: Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
|
font-family: Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
|
||||||
line-height: 16px;
|
line-height: 24px;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.statistic-text {
|
.statistic-text {
|
||||||
font-size: 10px;
|
font-size: 14px;
|
||||||
line-height: 10px;
|
line-height: 14px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-family: Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
|
font-family: Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
@ -11,15 +11,15 @@
|
|||||||
<div>
|
<div>
|
||||||
<clr-datagrid (clrDgRefresh)="load($event)" [clrDgLoading]="inProgress" [(clrDgSelected)]="selectedRow">
|
<clr-datagrid (clrDgRefresh)="load($event)" [clrDgLoading]="inProgress" [(clrDgSelected)]="selectedRow">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="addNewUser()" [disabled]="!canCreateUser"><clr-icon shape="plus" size="16"></clr-icon> {{'USER.ADD_ACTION' | translate}}</button>
|
<button type="button" class="btn btn-secondary" (click)="addNewUser()" [disabled]="!canCreateUser"><clr-icon shape="plus" size="16"></clr-icon> {{'USER.ADD_ACTION' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" id="set-admin" [disabled]="!ifSameRole" (click)="changeAdminRole()" ><clr-icon shape="wrench" size="16"></clr-icon> {{ISADMNISTRATOR | translate}}</button>
|
<button type="button" class="btn btn-secondary" id="set-admin" [disabled]="!ifSameRole" (click)="changeAdminRole()" ><clr-icon shape="wrench" size="16"></clr-icon> {{ISADMNISTRATOR | translate}}</button>
|
||||||
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-sm btn-link" clrDropdownTrigger>
|
<clr-dropdown [clrCloseMenuOnItemClick]="false" class="btn btn-link" clrDropdownTrigger>
|
||||||
<span id='member-action'>{{'BUTTON.ACTIONS' | translate}}<clr-icon shape="caret down"></clr-icon></span>
|
<span id='member-action'>{{'BUTTON.ACTIONS' | translate}}<clr-icon shape="caret down"></clr-icon></span>
|
||||||
<clr-dropdown-menu *clrIfOpen>
|
<clr-dropdown-menu *clrIfOpen>
|
||||||
<clr-dropdown>
|
<clr-dropdown>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" id="changePwd" [hidden]="!canCreateUser" [disabled]="!(selectedRow.length==1)" (click)="openChangePwdModal()" ><clr-icon shape="edit" size="16"></clr-icon> {{'RESET_PWD.TITLE' | translate}}</button>
|
<button type="button" class="btn btn-secondary" id="changePwd" [hidden]="!canCreateUser" [disabled]="!(selectedRow.length==1)" (click)="openChangePwdModal()" ><clr-icon shape="edit" size="16"></clr-icon> {{'RESET_PWD.TITLE' | translate}}</button>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<button id="deleteUser" type="button" class="btn btn-sm btn-secondary"
|
<button id="deleteUser" type="button" class="btn btn-secondary"
|
||||||
(click)="deleteUsers(selectedRow)"
|
(click)="deleteUsers(selectedRow)"
|
||||||
[disabled]="!selectedRow.length || onlySelf || !canCreateUser">
|
[disabled]="!selectedRow.length || onlySelf || !canCreateUser">
|
||||||
<clr-icon shape="times" size="16"></clr-icon> {{'USER.DEL_ACTION' | translate}}
|
<clr-icon shape="times" size="16"></clr-icon> {{'USER.DEL_ACTION' | translate}}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<div class="cron-selection">
|
<div class="cron-selection">
|
||||||
<cron-selection [labelCurrent]="getLabelCurrent" #CronScheduleComponent [labelEdit]='getText' [originCron]='originCron' (inputvalue)="scheduleGc($event)"></cron-selection>
|
<cron-selection [labelCurrent]="getLabelCurrent" #CronScheduleComponent [labelEdit]='getText' [originCron]='originCron' (inputvalue)="scheduleGc($event)"></cron-selection>
|
||||||
<button class="btn btn-outline btn-sm gc-start-btn" (click)="gcNow()" [disabled]="disableGC">{{'GC.GC_NOW' | translate}}</button>
|
<button class="btn btn-outline gc-start-btn" (click)="gcNow()" [disabled]="disableGC">{{'GC.GC_NOW' | translate}}</button>
|
||||||
</div>
|
</div>
|
@ -3,16 +3,18 @@
|
|||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 quota-top">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 quota-top">
|
||||||
<div class="default-quota">
|
<div class="default-quota">
|
||||||
<div>
|
<div>
|
||||||
<div class="default-quota-text"><span class="width-10rem">{{'QUOTA.PROJECT_QUOTA_DEFAULT_ARTIFACT' | translate}}</span><span
|
<div class="default-quota-text">
|
||||||
class="num-count">{{ quotaHardLimitValue?.countLimit === -1? ('QUOTA.UNLIMITED'| translate): quotaHardLimitValue?.countLimit }}</span>
|
<span class="width-10rem">{{'QUOTA.PROJECT_QUOTA_DEFAULT_ARTIFACT' | translate}}</span>
|
||||||
|
<span class="num-count">{{ quotaHardLimitValue?.countLimit === -1 ? ('QUOTA.UNLIMITED'| translate) : quotaHardLimitValue?.countLimit }}</span>
|
||||||
|
<button class="btn btn-link btn-sm default-quota-edit-button"
|
||||||
|
(click)="editDefaultQuota(quotaHardLimitValue)">{{'QUOTA.EDIT' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="default-quota-text"><span class="width-10rem">{{'QUOTA.PROJECT_QUOTA_DEFAULT_DISK' | translate}}</span><span class="num-count">
|
<div class="default-quota-text">
|
||||||
{{ quotaHardLimitValue?.storageLimit === -1?('QUOTA.UNLIMITED' | translate): getIntegerAndUnit(quotaHardLimitValue?.storageLimit, 0).partNumberHard}}
|
<span class="width-10rem">{{'QUOTA.PROJECT_QUOTA_DEFAULT_DISK' | translate}}</span>
|
||||||
|
<span class="num-count">{{ quotaHardLimitValue?.storageLimit === -1?('QUOTA.UNLIMITED' | translate): getIntegerAndUnit(quotaHardLimitValue?.storageLimit, 0).partNumberHard}}
|
||||||
{{ quotaHardLimitValue?.storageLimit === -1?'':quotaHardLimitValue?.storageUnit }}</span>
|
{{ quotaHardLimitValue?.storageLimit === -1?'':quotaHardLimitValue?.storageUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-link btn-sm default-quota-edit-button pt-0 mt-0 pl-0"
|
|
||||||
(click)="editDefaultQuota(quotaHardLimitValue)">{{'QUOTA.EDIT' | translate}}</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="refresh-div mr-1">
|
<div class="refresh-div mr-1">
|
||||||
<span class="refresh-btn" (click)="refresh()">
|
<span class="refresh-btn" (click)="refresh()">
|
||||||
|
@ -3,13 +3,18 @@
|
|||||||
|
|
||||||
.default-quota-text {
|
.default-quota-text {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-family: Metropolis, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
|
||||||
.width-10rem {
|
.width-10rem {
|
||||||
width: 10.3rem;
|
width: 15rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.num-count {
|
.num-count {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-width: 2rem;
|
min-width: 2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -33,8 +38,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.default-quota-edit-button {
|
.default-quota-edit-button {
|
||||||
height: 1rem;
|
font-size: 14px;
|
||||||
font-size: 12px;
|
margin-left: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.min-label-width {
|
.min-label-width {
|
||||||
|
@ -6,14 +6,14 @@
|
|||||||
<span>{{ updatedTimeStr }} </span>
|
<span>{{ updatedTimeStr }} </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<cron-selection [disabled]="!hasDefaultScanner" [labelCurrent]="getLabelCurrent" [labelEdit]='getLabelCurrent'
|
<cron-selection [buttonMarginLeft]="'200px'" [disabled]="!hasDefaultScanner" [labelCurrent]="getLabelCurrent" [labelEdit]='getLabelCurrent'
|
||||||
[originCron]='originCron' (inputvalue)="saveSchedule($event)"></cron-selection>
|
[originCron]='originCron' (inputvalue)="saveSchedule($event)"></cron-selection>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<div class="clr-row">
|
<div class="clr-row">
|
||||||
<div class="clr-col-2 flex-200">
|
<div class="clr-col-2 flex-200">
|
||||||
<div class="btn-scan-right btn-scan margin-top-16px">
|
<div class="btn-scan-right btn-scan margin-top-16px">
|
||||||
<button id="scan-now" class="btn btn-outline btn-sm btn-scan" (click)="scanNow()"
|
<button id="scan-now" class="btn btn-outline btn-scan" (click)="scanNow()"
|
||||||
[disabled]="!scanAvailable">
|
[disabled]="!scanAvailable">
|
||||||
<span *ngIf="scanAvailable">{{ 'CONFIG.SCANNING.SCAN_NOW' | translate }}</span>
|
<span *ngIf="scanAvailable">{{ 'CONFIG.SCANNING.SCAN_NOW' | translate }}</span>
|
||||||
<span *ngIf="!scanAvailable">{{ 'CONFIG.SCANNING.SCAN' | translate }}</span>
|
<span *ngIf="!scanAvailable">{{ 'CONFIG.SCANNING.SCAN' | translate }}</span>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<label>
|
<label>
|
||||||
<label for="color">{{'LABEL.COLOR' | translate}}</label>
|
<label for="color">{{'LABEL.COLOR' | translate}}</label>
|
||||||
<clr-dropdown [clrCloseMenuOnItemClick]="false" clrDropdownTrigger>
|
<clr-dropdown [clrCloseMenuOnItemClick]="false" clrDropdownTrigger>
|
||||||
<clr-icon shape="caret down" class="btn btn-outline btnColor btn-sm"></clr-icon>
|
<clr-icon shape="caret down" class="btn btn-outline btnColor "></clr-icon>
|
||||||
<clr-dropdown-menu *clrIfOpen>
|
<clr-dropdown-menu *clrIfOpen>
|
||||||
<label class="dropdown-item" (click)="labelModel.color=i.color" *ngFor="let i of labelColor"
|
<label class="dropdown-item" (click)="labelModel.color=i.color" *ngFor="let i of labelColor"
|
||||||
[class.borderSty]="i.color == '#FFFFFF'" [ngStyle]="{'background-color': i.color, 'color': i.textColor }">Aa</label>
|
[class.borderSty]="i.color == '#FFFFFF'" [ngStyle]="{'background-color': i.color, 'color': i.textColor }">Aa</label>
|
||||||
@ -29,10 +29,10 @@
|
|||||||
#description="ngModel">
|
#description="ngModel">
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<button type="button" class="btn btn-sm btn-outline" (click)="onCancel()" [disabled]="inProgress">{{
|
<button type="button" class="btn btn-outline" (click)="onCancel()" [disabled]="inProgress">{{
|
||||||
'BUTTON.CANCEL' | translate }}
|
'BUTTON.CANCEL' | translate }}
|
||||||
</button>
|
</button>
|
||||||
<button type="submit" class="btn btn-sm btn-primary" (click)="onSubmit()" [disabled]="!isValid">{{
|
<button type="submit" class="btn btn-primary" (click)="onSubmit()" [disabled]="!isValid">{{
|
||||||
'BUTTON.OK' | translate }}
|
'BUTTON.OK' | translate }}
|
||||||
</button>
|
</button>
|
||||||
</label>
|
</label>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<span [hidden]="originScheduleType!==SCHEDULE_TYPE.CUSTOM">{{ "SCHEDULE.CRON" | translate }} :</span>
|
<span [hidden]="originScheduleType!==SCHEDULE_TYPE.CUSTOM">{{ "SCHEDULE.CRON" | translate }} :</span>
|
||||||
<span [hidden]="originScheduleType!==SCHEDULE_TYPE.CUSTOM">{{ oriCron }}</span>
|
<span [hidden]="originScheduleType!==SCHEDULE_TYPE.CUSTOM">{{ oriCron }}</span>
|
||||||
</div>
|
</div>
|
||||||
<button [style.margin-left]="buttonMarginLeft" [disabled]="disabled" class="btn btn-primary btn-sm" (click)="editSchedule()" id="editSchedule">
|
<button [style.margin-left]="buttonMarginLeft" [disabled]="disabled" class="btn btn-primary " (click)="editSchedule()" id="editSchedule">
|
||||||
{{ "BUTTON.EDIT" | translate }}
|
{{ "BUTTON.EDIT" | translate }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -49,11 +49,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="confirm-button">
|
<div class="confirm-button">
|
||||||
<button [style.margin-left]="buttonMarginLeft" class="btn btn-primary btn-sm"
|
<button [style.margin-left]="buttonMarginLeft" class="btn btn-primary "
|
||||||
(click)="save()" id="config-save">
|
(click)="save()" id="config-save">
|
||||||
{{ "BUTTON.SAVE" | translate }}
|
{{ "BUTTON.SAVE" | translate }}
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-primary btn-sm" (click)="isEditMode=false">
|
<button class="btn btn-primary " (click)="isEditMode=false">
|
||||||
{{ "BUTTON.CANCEL" | translate }}
|
{{ "BUTTON.CANCEL" | translate }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
<clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="openModal()"><clr-icon shape="plus" size="16"></clr-icon> {{'DESTINATION.NEW_ENDPOINT' | translate}}</button>
|
<button type="button" class="btn btn-secondary" (click)="openModal()"><clr-icon shape="plus" size="16"></clr-icon> {{'DESTINATION.NEW_ENDPOINT' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(selectedRow.length ===1)" (click)="editTargets(selectedRow)" ><clr-icon shape="pencil" size="16"></clr-icon> {{'DESTINATION.EDIT' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!(selectedRow.length ===1)" (click)="editTargets(selectedRow)" ><clr-icon shape="pencil" size="16"></clr-icon> {{'DESTINATION.EDIT' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!selectedRow.length" (click)="deleteTargets(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'DESTINATION.DELETE' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!selectedRow.length" (click)="deleteTargets(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'DESTINATION.DELETE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column [clrDgField]="'name'" class="flex-min-width">{{'DESTINATION.NAME' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'name'" class="flex-min-width">{{'DESTINATION.NAME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgField]="'status'" class="flex-min-width">{{'DESTINATION.STATUS' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'status'" class="flex-min-width">{{'DESTINATION.STATUS' | translate}}</clr-dg-column>
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
{{errorMessage}}
|
{{errorMessage}}
|
||||||
</span>
|
</span>
|
||||||
<div class="alert-actions" *ngIf="showCancelAction">
|
<div class="alert-actions" *ngIf="showCancelAction">
|
||||||
<button class="btn btn-sm btn-link alert-btn-link" (click)="close()">{{'BUTTON.NO' | translate}}</button>
|
<button class="btn btn-link alert-btn-link" (click)="close()">{{'BUTTON.NO' | translate}}</button>
|
||||||
<button class="btn btn-sm btn-link alert-btn-link" (click)="confirmCancel()">{{'BUTTON.YES' | translate}}</button>
|
<button class="btn btn-link alert-btn-link" (click)="confirmCancel()">{{'BUTTON.YES' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</clr-alert>
|
</clr-alert>
|
@ -11,9 +11,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 btnGroup">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 btnGroup">
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!hasCreateLabelPermission" (click)="openModal()"><clr-icon shape="plus" size="16"></clr-icon> {{'LABEL.NEW_LABEL' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!hasCreateLabelPermission" (click)="openModal()"><clr-icon shape="plus" size="16"></clr-icon> {{'LABEL.NEW_LABEL' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(selectedRow.length == 1) || !hasUpdateLabelPermission" (click)="editLabel(selectedRow)"><clr-icon shape="pencil" size="16"></clr-icon> {{'LABEL.EDIT' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!(selectedRow.length == 1) || !hasUpdateLabelPermission" (click)="editLabel(selectedRow)"><clr-icon shape="pencil" size="16"></clr-icon> {{'LABEL.EDIT' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!selectedRow.length || !hasDeleteLabelPermission" (click)="deleteLabels(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'LABEL.DELETE' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!selectedRow.length || !hasDeleteLabelPermission" (click)="deleteLabels(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'LABEL.DELETE' | translate}}</button>
|
||||||
<hbr-create-edit-label [scope]="scope" [projectId]="projectId" (reload)="reload()"></hbr-create-edit-label>
|
<hbr-create-edit-label [scope]="scope" [projectId]="projectId" (reload)="reload()"></hbr-create-edit-label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<div class="list-rule">
|
<div class="list-rule">
|
||||||
<clr-datagrid [clrDgLoading]="loading" [(clrDgSingleSelected)]="selectedRow" (clrDgSingleSelectedChange)="selectRule($event)" [clrDgRowSelection]="true">
|
<clr-datagrid [clrDgLoading]="loading" [(clrDgSingleSelected)]="selectedRow" (clrDgSingleSelectedChange)="selectRule($event)" [clrDgRowSelection]="true">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" id="new_replication_rule_id" class="btn btn-sm btn-secondary" *ngIf="hasCreateReplicationPermission" (click)="openModal()"><clr-icon shape="plus" size="16"></clr-icon> {{'REPLICATION.NEW_REPLICATION_RULE' | translate}}</button>
|
<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="edit_replication_rule_id" class="btn btn-sm btn-secondary" *ngIf="hasUpdateReplicationPermission" [disabled]="!selectedRow" (click)="editRule(selectedRow)"><clr-icon shape="pencil" size="16"></clr-icon> {{'REPLICATION.EDIT_POLICY' | translate}}</button>
|
<button type="button" id="edit_replication_rule_id" class="btn btn-secondary" *ngIf="hasUpdateReplicationPermission" [disabled]="!selectedRow" (click)="editRule(selectedRow)"><clr-icon shape="pencil" size="16"></clr-icon> {{'REPLICATION.EDIT_POLICY' | translate}}</button>
|
||||||
<button type="button" id="delete_replication_rule_id" class="btn btn-sm btn-secondary" *ngIf="hasDeleteReplicationPermission" [disabled]="!selectedRow" (click)="deleteRule(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'REPLICATION.DELETE_POLICY' | translate}}</button>
|
<button type="button" id="delete_replication_rule_id" class="btn btn-secondary" *ngIf="hasDeleteReplicationPermission" [disabled]="!selectedRow" (click)="deleteRule(selectedRow)"><clr-icon shape="times" size="16"></clr-icon> {{'REPLICATION.DELETE_POLICY' | translate}}</button>
|
||||||
<button type="button" id="replication_exe_id" class="btn btn-sm btn-secondary" *ngIf="hasExecuteReplicationPermission" [disabled]="!selectedRow" (click)="replicateRule(selectedRow)"><clr-icon shape="export" size="16"></clr-icon> {{'REPLICATION.REPLICATE' | translate}}</button>
|
<button type="button" id="replication_exe_id" class="btn btn-secondary" *ngIf="hasExecuteReplicationPermission" [disabled]="!selectedRow" (click)="replicateRule(selectedRow)"><clr-icon shape="export" size="16"></clr-icon> {{'REPLICATION.REPLICATE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column>{{'REPLICATION.NAME' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'REPLICATION.NAME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgField]="'status'" class="status-width">{{'REPLICATION.STATUS' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'status'" class="status-width">{{'REPLICATION.STATUS' | translate}}</clr-dg-column>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<div>
|
<div>
|
||||||
|
<h2 class="custom-h2" sub-header-title> {{'SIDE_NAV.LOGS' | translate}}</h2>
|
||||||
<div class="row flex-items-xs-between flex-items-xs-bottom">
|
<div class="row flex-items-xs-between flex-items-xs-bottom">
|
||||||
<div></div>
|
<div></div>
|
||||||
<div class="action-head-pos">
|
<div class="action-head-pos">
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-primary btn-sm" (click)="stopJob()"
|
<button class="btn btn-primary " (click)="stopJob()"
|
||||||
[disabled]="stopOnGoing">{{'REPLICATION.STOPJOB' | translate}}</button>
|
[disabled]="stopOnGoing">{{'REPLICATION.STOPJOB' | translate}}</button>
|
||||||
<span class="spinner spinner-inline" [hidden]="inProgress === false"></span>
|
<span class="spinner spinner-inline" [hidden]="inProgress === false"></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
<clr-datagrid [(clrDgSelected)]="selectedRow" [clrDgLoading]="jobsLoading" (clrDgRefresh)="clrLoadJobs($event)">
|
<clr-datagrid [(clrDgSelected)]="selectedRow" [clrDgLoading]="jobsLoading" (clrDgRefresh)="clrLoadJobs($event)">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-sm btn-secondary" *ngIf="isSystemAdmin" [disabled]="!(jobs && jobs.length>0) || isStopOnGoing || !selectedRow.length"
|
<button type="button" class="btn btn-secondary" *ngIf="isSystemAdmin" [disabled]="!(jobs && jobs.length>0) || isStopOnGoing || !selectedRow.length"
|
||||||
(click)="openStopExecutionsDialog(selectedRow)">{{'REPLICATION.STOPJOB' | translate}}</button>
|
(click)="openStopExecutionsDialog(selectedRow)">{{'REPLICATION.STOPJOB' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
|
@ -25,9 +25,9 @@
|
|||||||
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div *ngIf="!isCardView" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid (clrDgRefresh)="clrLoad($event)" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
<clr-datagrid (clrDgRefresh)="clrLoad($event)" [clrDgLoading]="loading" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button *ngIf="withAdmiral" type="button" class="btn btn-sm btn-secondary" (click)="provisionItemEvent($event, selectedRow[0])" [disabled]="!(selectedRow.length===1 && hasProjectAdminRole)"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DEPLOY' | translate}}</button>
|
<button *ngIf="withAdmiral" type="button" class="btn btn-secondary" (click)="provisionItemEvent($event, selectedRow[0])" [disabled]="!(selectedRow.length===1 && hasProjectAdminRole)"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DEPLOY' | translate}}</button>
|
||||||
<button *ngIf="withAdmiral" type="button" class="btn btn-sm btn-secondary" (click)="itemAddInfoEvent($event, selectedRow[0])" [disabled]="!(selectedRow.length===1 && hasProjectAdminRole)"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.ADDITIONAL_INFO' | translate}}</button>
|
<button *ngIf="withAdmiral" type="button" class="btn btn-secondary" (click)="itemAddInfoEvent($event, selectedRow[0])" [disabled]="!(selectedRow.length===1 && hasProjectAdminRole)"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.ADDITIONAL_INFO' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" (click)="deleteRepos(selectedRow)" [disabled]="!(selectedRow.length)|| !hasDeleteRepositoryPermission"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DELETE' | translate}}</button>
|
<button type="button" class="btn btn-secondary" (click)="deleteRepos(selectedRow)" [disabled]="!(selectedRow.length)|| !hasDeleteRepositoryPermission"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DELETE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column [clrDgField]="'q'" [clrDgSortBy]="'name'">{{'REPOSITORY.NAME' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'q'" [clrDgSortBy]="'name'">{{'REPOSITORY.NAME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column>{{'REPOSITORY.TAGS_COUNT' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'REPOSITORY.TAGS_COUNT' | translate}}</clr-dg-column>
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
<section id="info" role="tabpanel" aria-labelledby="repo-info" [hidden]='!isCurrentTabContent("info")'>
|
<section id="info" role="tabpanel" aria-labelledby="repo-info" [hidden]='!isCurrentTabContent("info")'>
|
||||||
<form #repoInfoForm="ngForm">
|
<form #repoInfoForm="ngForm">
|
||||||
<div id="info-edit-button">
|
<div id="info-edit-button">
|
||||||
<button class="btn btn-sm" [disabled]="editing || !hasProjectAdminRole " (click)="editInfo()">
|
<button class="btn " [disabled]="editing || !hasProjectAdminRole " (click)="editInfo()">
|
||||||
<clr-icon shape="pencil" size="16"></clr-icon> {{'BUTTON.EDIT' | translate}}
|
<clr-icon shape="pencil" size="16"></clr-icon> {{'BUTTON.EDIT' | translate}}
|
||||||
</button>
|
</button>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 1024" preserveAspectRatio="xMinYMin" class="markdown">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 1024" preserveAspectRatio="xMinYMin" class="markdown">
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<textarea id="info-edit-textarea" class="clr-textarea w-100" rows="5" name="info-edit-textarea"
|
<textarea id="info-edit-textarea" class="clr-textarea w-100" rows="5" name="info-edit-textarea"
|
||||||
[(ngModel)]="imageInfo"></textarea>
|
[(ngModel)]="imageInfo"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-sm" *ngIf="editing">
|
<div class="" *ngIf="editing">
|
||||||
<button id="edit-save" class="btn btn-primary" [disabled]="!hasChanges()" (click)="saveInfo()">{{'BUTTON.SAVE' | translate}}</button>
|
<button id="edit-save" class="btn btn-primary" [disabled]="!hasChanges()" (click)="saveInfo()">{{'BUTTON.SAVE' | translate}}</button>
|
||||||
<button id="edit-cancel" class="btn" (click)="cancelInfo()">{{'BUTTON.CANCEL' | translate}}</button>
|
<button id="edit-cancel" class="btn" (click)="cancelInfo()">{{'BUTTON.CANCEL' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -55,10 +55,10 @@
|
|||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid [clrDgLoading]="loading" class="datagrid-top" [class.embeded-datagrid]="isEmbedded" [(clrDgSelected)]="selectedRow">
|
<clr-datagrid [clrDgLoading]="loading" class="datagrid-top" [class.embeded-datagrid]="isEmbedded" [(clrDgSelected)]="selectedRow">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button [clrLoading]="scanBtnState" type="button" class="btn btn-sm btn-secondary" [disabled]="!(canScanNow() && selectedRow.length==1 && hasEnabledScanner)" (click)="scanNow()"><clr-icon shape="shield-check" size="16"></clr-icon> {{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
<button [clrLoading]="scanBtnState" type="button" class="btn btn-secondary" [disabled]="!(canScanNow() && selectedRow.length==1 && hasEnabledScanner)" (click)="scanNow()"><clr-icon shape="shield-check" size="16"></clr-icon> {{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(selectedRow.length==1)" (click)="showDigestId()"><clr-icon shape="copy" size="16"></clr-icon> {{'REPOSITORY.COPY_DIGEST_ID' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [disabled]="!(selectedRow.length==1)" (click)="showDigestId()"><clr-icon shape="copy" size="16"></clr-icon> {{'REPOSITORY.COPY_DIGEST_ID' | translate}}</button>
|
||||||
<clr-dropdown *ngIf="!withAdmiral">
|
<clr-dropdown *ngIf="!withAdmiral">
|
||||||
<button type="button" class="btn btn-sm btn-secondary" clrDropdownTrigger [disabled]="!(selectedRow.length==1)||!hasAddLabelImagePermission" (click)="addLabels()"><clr-icon shape="plus" size="16"></clr-icon>{{'REPOSITORY.ADD_LABELS' | translate}}</button>
|
<button type="button" class="btn btn-secondary" clrDropdownTrigger [disabled]="!(selectedRow.length==1)||!hasAddLabelImagePermission" (click)="addLabels()"><clr-icon shape="plus" size="16"></clr-icon>{{'REPOSITORY.ADD_LABELS' | translate}}</button>
|
||||||
<clr-dropdown-menu clrPosition="bottom-left" *clrIfOpen>
|
<clr-dropdown-menu clrPosition="bottom-left" *clrIfOpen>
|
||||||
<clr-dropdown>
|
<clr-dropdown>
|
||||||
<div class="filter-grid">
|
<div class="filter-grid">
|
||||||
@ -75,8 +75,8 @@
|
|||||||
</clr-dropdown>
|
</clr-dropdown>
|
||||||
</clr-dropdown-menu>
|
</clr-dropdown-menu>
|
||||||
</clr-dropdown>
|
</clr-dropdown>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" *ngIf="!withAdmiral" [disabled]="!(selectedRow.length===1)|| !hasRetagImagePermission" (click)="retag()"><clr-icon shape="copy" size="16"></clr-icon> {{'REPOSITORY.RETAG' | translate}}</button>
|
<button type="button" class="btn btn-secondary" *ngIf="!withAdmiral" [disabled]="!(selectedRow.length===1)|| !hasRetagImagePermission" (click)="retag()"><clr-icon shape="copy" size="16"></clr-icon> {{'REPOSITORY.RETAG' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" *ngIf="hasDeleteImagePermission" (click)="deleteTags()" [disabled]="!hasDeleteImagePermission||!selectedRow.length"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DELETE' | translate}}</button>
|
<button type="button" class="btn btn-secondary" *ngIf="hasDeleteImagePermission" (click)="deleteTags()" [disabled]="!hasDeleteImagePermission||!selectedRow.length"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DELETE' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column class="flex-max-width" [clrDgField]="'name'">{{'REPOSITORY.TAG' | translate}}</clr-dg-column>
|
<clr-dg-column class="flex-max-width" [clrDgField]="'name'">{{'REPOSITORY.TAG' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgField]="'size'">{{'REPOSITORY.SIZE' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'size'">{{'REPOSITORY.SIZE' | translate}}</clr-dg-column>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||||
<clr-datagrid [clrDgLoading]="loading">
|
<clr-datagrid [clrDgLoading]="loading">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [clrLoading]="scanBtnState" [disabled]="!hasScanImagePermission || !hasEnabledScanner" (click)="scanNow()"><clr-icon shape="shield-check" size="16"></clr-icon> {{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
<button type="button" class="btn btn-secondary" [clrLoading]="scanBtnState" [disabled]="!hasScanImagePermission || !hasEnabledScanner" (click)="scanNow()"><clr-icon shape="shield-check" size="16"></clr-icon> {{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column [clrDgField]="'id'">{{'VULNERABILITY.GRID.COLUMN_ID' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgField]="'id'">{{'VULNERABILITY.GRID.COLUMN_ID' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="severitySort">{{'VULNERABILITY.GRID.COLUMN_SEVERITY' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgSortBy]="severitySort">{{'VULNERABILITY.GRID.COLUMN_SEVERITY' | translate}}</clr-dg-column>
|
||||||
|
@ -52,7 +52,6 @@ body {
|
|||||||
-o-transform: rotate(-90deg);
|
-o-transform: rotate(-90deg);
|
||||||
transform: rotate(-90deg);
|
transform: rotate(-90deg);
|
||||||
}
|
}
|
||||||
.datagrid-spinner{margin-top: 24px;}
|
|
||||||
|
|
||||||
/* set overflow bar style */
|
/* set overflow bar style */
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
@ -72,7 +71,6 @@ body {
|
|||||||
background: rgba(255,0,0,0.4);
|
background: rgba(255,0,0,0.4);
|
||||||
}
|
}
|
||||||
.custom-h2 {
|
.custom-h2 {
|
||||||
margin-top: 0 !important;
|
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,4 +102,10 @@ body {
|
|||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.clr-vertical-nav .nav-link {
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user