mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-31 21:18:21 +01:00
commit
8c6df84b86
@ -35,10 +35,14 @@ npm link
|
||||
cd /harbor_src/ui_ng
|
||||
npm link harbor-ui
|
||||
|
||||
## Rollup
|
||||
./node_modules/.bin/ngc -p tsconfig-aot.json
|
||||
sed -i 's/* as//g' src/app/shared/gauge/gauge.component.js
|
||||
./node_modules/.bin/rollup -c rollup-config.js
|
||||
|
||||
## Unlink
|
||||
npm unlink harbor-ui
|
||||
|
||||
#Copy built js to the static folder
|
||||
cp ./dist/build.min.js ../ui/static/
|
||||
|
||||
|
@ -17,4 +17,15 @@
|
||||
z-index: 100;
|
||||
right: 35px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
@mixin absolute-center($width:108px) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
margin: auto;
|
||||
width: $width !important;
|
||||
height: $width !important;
|
||||
}
|
@ -18,14 +18,15 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="left">{{'HELM_CHART.HOME' | translate }}</td>
|
||||
<td class="left">
|
||||
<td class="left text-wrapper">
|
||||
<a href="{{summary.home}}">{{summary.home}}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left">{{'HELM_CHART.SRC_REPO' | translate }}</td>
|
||||
<td class="left">
|
||||
<a href="{{summary.sources}}">{{summary.sources}}</a>
|
||||
<tr *ngFor="let src of summary.sources; let i = index">
|
||||
<td class="left" *ngIf="i === 0">{{'HELM_CHART.SRC_REPO' | translate }}</td>
|
||||
<td class="left" *ngIf="i !== 0"></td>
|
||||
<td class="left text-wrapper" >
|
||||
<a href="{{src}}">{{src}}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -19,4 +19,8 @@
|
||||
.content-icon {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.text-wrapper {
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
@ -1,21 +1,22 @@
|
||||
<div class="row flex-items-xs-right">
|
||||
<div class="swichy-container">
|
||||
<div class="row flex-items-xs-between values-header">
|
||||
<div *ngIf="valueMode" class="title-container">
|
||||
<label>{{'HELM_CHART.SHOW_KV' | translate }}</label>
|
||||
</div>
|
||||
<div *ngIf="!valueMode" class="title-container">
|
||||
<label>{{'HELM_CHART.SHOW_YAML' | translate }}</label>
|
||||
</div>
|
||||
<div class="switch-container">
|
||||
<span class="card-btn" (click)="showYamlFile(false)" (mouseenter)="mouseEnter('value') " (mouseleave)="mouseLeave('value')">
|
||||
<clr-icon size="36" shape="view-list" title='list values'
|
||||
[ngClass]="{'is-highlight': isValueMode || isHovering('value') }" ></clr-icon>
|
||||
<clr-icon size="24" shape="view-list" title='list values' [ngClass]="{'is-highlight': isValueMode || isHovering('value') }"></clr-icon>
|
||||
</span>
|
||||
<span class="list-btn" (click)="showYamlFile(true)" (mouseenter)="mouseEnter('yaml') " (mouseleave)="mouseLeave('yaml')">
|
||||
<clr-icon size="36" shape="file" title="yaml file"
|
||||
[ngClass]="{'is-highlight': !isValueMode || isHovering('yaml') }"></clr-icon>
|
||||
<clr-icon size="24" shape="file" title="yaml file" [ngClass]="{'is-highlight': !isValueMode || isHovering('yaml') }"></clr-icon>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row value-container">
|
||||
<div class="col-xs-8" *ngIf="valueMode">
|
||||
<div>
|
||||
<label>{{'HELM_CHART.SHOW_KV' | translate }}</label>
|
||||
</div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr *ngFor="let key of objKeys(values)">
|
||||
@ -26,9 +27,6 @@
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-xs-8" *ngIf="!valueMode">
|
||||
<div>
|
||||
<label>{{'HELM_CHART.SHOW_YAML' | translate }}</label>
|
||||
</div>
|
||||
<div class="yaml-container" [innerHTML]="yaml | language : 'yaml' | markdown"></div>
|
||||
</div>
|
||||
</div>
|
@ -4,11 +4,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
.swichy-container {
|
||||
margin-top: 3px;
|
||||
margin-right: 15px;
|
||||
.values-header {
|
||||
margin-top: 12px;
|
||||
|
||||
.title-container {
|
||||
margin-left: 15px;
|
||||
}
|
||||
.switch-container {
|
||||
margin-right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pre {
|
||||
max-height: max-content;
|
||||
padding-left: 21px;
|
||||
|
@ -15,11 +15,9 @@
|
||||
(click)="downloadChart()">{{'HELM_CHART.DOWNLOAD' | translate}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail-loading" *ngIf="loading">
|
||||
<span class="spinner">
|
||||
Loading...
|
||||
</span>
|
||||
</div>
|
||||
<span *ngIf="loading" class="spinner spinner-lg detail-loading">
|
||||
Loading...
|
||||
</span>
|
||||
<div *ngIf="!loading && isChartExist">
|
||||
<clr-tabs>
|
||||
<clr-tab>
|
||||
|
@ -1,3 +1,5 @@
|
||||
@import "../../mixin";
|
||||
|
||||
.title-container {
|
||||
display: flex;
|
||||
.chart-name {
|
||||
@ -10,11 +12,5 @@
|
||||
}
|
||||
|
||||
.detail-loading {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
width: 108px !important;
|
||||
height: 108px !important;
|
||||
@include absolute-center;
|
||||
}
|
@ -3,7 +3,9 @@
|
||||
<div class="toolbar">
|
||||
<div class="row flex-items-xs-right option-right rightPos">
|
||||
<div class="flex-xs-middle">
|
||||
<hbr-filter [withDivider]="true" filterPlaceholder="{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}" [currentValue]="lastFilteredChartName"></hbr-filter>
|
||||
<hbr-filter [withDivider]="true" filterPlaceholder="{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}"
|
||||
[currentValue]="lastFilteredChartName"
|
||||
(filterEvt)="updateFilterValue($event)"></hbr-filter>
|
||||
<span class="card-btn" (click)="showCard(true)" (mouseenter)="mouseEnter('card') " (mouseleave)="mouseLeave('card')">
|
||||
<clr-icon [ngClass]="{'is-highlight': isCardView || isHovering('card') }" shape="view-cards"></clr-icon>
|
||||
</span>
|
||||
@ -27,7 +29,7 @@
|
||||
</button>
|
||||
</clr-dg-action-bar>
|
||||
<clr-dg-column [clrDgField]="'name'">{{'HELM_CHART.NAME' | translate}}</clr-dg-column>
|
||||
<clr-dg-column>{{'HELM_CHART.VERSIONS' | translate}}</clr-dg-column>
|
||||
<clr-dg-column>{{'HELM_CHART.CHARTVERSIONS' | translate}}</clr-dg-column>
|
||||
<clr-dg-column>{{'HELM_CHART.CREATED' | translate}}</clr-dg-column>
|
||||
<clr-dg-placeholder>{{'HELM_CHART.PLACEHOLDER' | translate }}</clr-dg-placeholder>
|
||||
<clr-dg-row *ngFor="let chart of charts" [clrDgItem]="chart">
|
||||
@ -39,8 +41,7 @@
|
||||
</clr-dg-row>
|
||||
<clr-dg-footer>
|
||||
<clr-dg-pagination #pagination [clrDgPageSize]="pageSize">
|
||||
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'HELM_CHART.OF' | translate}} {{pagination.totalItems}} {{'HELM_CHART.ITEMS'
|
||||
| translate}}
|
||||
{{pagination.totalItems}} {{'HELM_CHART.ITEMS'| translate}}
|
||||
</clr-dg-pagination>
|
||||
</clr-dg-footer>
|
||||
</clr-datagrid>
|
||||
@ -69,9 +70,9 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="loading" [ngClass]="{'central-block-loading': isFirstPage, 'central-block-loading-more': !isFirstPage}">
|
||||
<div *ngIf="loading">
|
||||
<span class="vertical-helper"></span>
|
||||
<div class="spinner"></div>
|
||||
<span class="spinner"></span>
|
||||
</div>
|
||||
</div>
|
||||
<clr-modal [(clrModalOpen)]="isUploadModalOpen" [clrModalStaticBackdrop]="true">
|
||||
@ -89,11 +90,11 @@
|
||||
</div>
|
||||
</section>
|
||||
<button type="submit" class="btn btn-secondary" [disabled]="isUploading">
|
||||
<span *ngIf="!isUploading">{{'HELM_CHART.UPLOAD' | translate}}</span>
|
||||
<span *ngIf="isUploading" class="spinner spinner-inline">
|
||||
Loading...
|
||||
</span>
|
||||
<span>{{'HELM_CHART.UPLOAD' | translate}}</span>
|
||||
</button>
|
||||
<span *ngIf="isUploading" class="spinner spinner-inline">
|
||||
Loading...
|
||||
</span>
|
||||
</form>
|
||||
</div>
|
||||
</clr-modal>
|
||||
|
@ -59,10 +59,4 @@
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
vertical-align: middle;
|
||||
}
|
@ -76,6 +76,11 @@ export class HelmChartComponent implements OnInit {
|
||||
|
||||
}
|
||||
|
||||
updateFilterValue(value: string) {
|
||||
this.lastFilteredChartName = value;
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
refresh() {
|
||||
this.loading = true;
|
||||
this.helmChartService
|
||||
@ -87,7 +92,7 @@ export class HelmChartComponent implements OnInit {
|
||||
})
|
||||
.subscribe(
|
||||
charts => {
|
||||
this.charts = charts;
|
||||
this.charts = charts.filter(x => x.name.includes(this.lastFilteredChartName));
|
||||
this.chartsCopy = charts.map(x => Object.assign({}, x));
|
||||
},
|
||||
err => {
|
||||
|
@ -16,7 +16,9 @@
|
||||
<div class="toolbar">
|
||||
<div class="row flex-items-xs-right option-right rightPos">
|
||||
<div class="flex-xs-middle">
|
||||
<hbr-filter [withDivider]="true" filterPlaceholder="{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}" [currentValue]="lastFilteredVersionName"></hbr-filter>
|
||||
<hbr-filter [withDivider]="true" filterPlaceholder="{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}"
|
||||
[currentValue]="lastFilteredVersionName"
|
||||
(filterEvt)="updateFilterValue($event)"></hbr-filter>
|
||||
<span class="card-btn" (click)="showCard(true)" (mouseenter)="mouseEnter('card') " (mouseleave)="mouseLeave('card')">
|
||||
<clr-icon [ngClass]="{'is-highlight': isCardView || isHovering('card') }" shape="view-cards"></clr-icon>
|
||||
</span>
|
||||
@ -52,12 +54,13 @@
|
||||
<clr-dg-column>{{'HELM_CHART.ENGINE' | translate }}</clr-dg-column>
|
||||
<clr-dg-column>{{'HELM_CHART.MAINTAINERS' | translate }}</clr-dg-column>
|
||||
<clr-dg-column>{{'HELM_CHART.CREATED' | translate }}</clr-dg-column>
|
||||
<clr-dg-placeholder>{{'HELM_CHART.NO_VERSION_PLACEHOLDER' | translate }}</clr-dg-placeholder>
|
||||
<clr-dg-row *ngFor="let v of chartVersions" [clrDgItem]="v">
|
||||
<clr-dg-cell>
|
||||
<span class="list-img">
|
||||
<img [src]="v.icon ?v.icon:chartDefaultIcon" (error)="getDefaultIcon(v);" />
|
||||
</span>
|
||||
<a href="#" (click)="onVersionClick(v)">{{ v.version }}</a>
|
||||
<a href="javascript:void(0)" (click)="onVersionClick(v)">{{ v.version }}</a>
|
||||
</clr-dg-cell>
|
||||
<clr-dg-cell>{{ v.engine }}</clr-dg-cell>
|
||||
<clr-dg-cell>{{ getMaintainerString(v.maintainers) }}</clr-dg-cell>
|
||||
@ -65,8 +68,7 @@
|
||||
</clr-dg-row>
|
||||
<clr-dg-footer>
|
||||
<clr-dg-pagination #pagination [clrDgPageSize]="pageSize">
|
||||
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'HELM_CHART.OF' | translate}} {{pagination.totalItems}} {{'HELM_CHART.VERSIONS'
|
||||
| translate}}
|
||||
{{pagination.totalItems}} {{'HELM_CHART.ITEMS' | translate}}
|
||||
</clr-dg-pagination>
|
||||
</clr-dg-footer>
|
||||
</clr-datagrid>
|
||||
@ -106,9 +108,9 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="loading" [ngClass]="{'central-block-loading': isFirstPage, 'central-block-loading-more': !isFirstPage}">
|
||||
<div *ngIf="loading">
|
||||
<span class="vertical-helper"></span>
|
||||
<div class="spinner"></div>
|
||||
<span class="spinner"></span>
|
||||
</div>
|
||||
</div>
|
||||
<clr-modal [(clrModalOpen)]="isUploadModalOpen" [clrModalStaticBackdrop]="true">
|
||||
@ -126,11 +128,11 @@
|
||||
</div>
|
||||
</section>
|
||||
<button type="submit" class="btn btn-secondary" [disabled]="isUploading">
|
||||
<span *ngIf="!isUploading">{{'HELM_CHART.UPLOAD' | translate}}</span>
|
||||
<span *ngIf="isUploading" class="spinner spinner-inline">
|
||||
Loading...
|
||||
</span>
|
||||
<span>{{'HELM_CHART.UPLOAD' | translate}}</span>
|
||||
</button>
|
||||
<span *ngIf="isUploading" class="spinner spinner-inline">
|
||||
Loading...
|
||||
</span>
|
||||
</form>
|
||||
</div>
|
||||
</clr-modal>
|
||||
|
@ -1,3 +1,5 @@
|
||||
@import "../../mixin";
|
||||
|
||||
.title-container {
|
||||
display: flex;
|
||||
.chart-name-span {
|
||||
@ -14,10 +16,7 @@
|
||||
.toolbar {
|
||||
overflow: hidden;
|
||||
.rightPos {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
right: 35px;
|
||||
margin-top: 4px;
|
||||
@include grid-left-top-pos;
|
||||
.filter-divider {
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
@ -87,10 +86,4 @@
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
vertical-align: middle;
|
||||
}
|
@ -104,6 +104,11 @@ export class ChartVersionComponent implements OnInit {
|
||||
this.lastFilteredVersionName = "";
|
||||
}
|
||||
|
||||
updateFilterValue(value: string) {
|
||||
this.lastFilteredVersionName = value;
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
refresh() {
|
||||
this.loading = true;
|
||||
this.helmChartService
|
||||
@ -115,13 +120,10 @@ export class ChartVersionComponent implements OnInit {
|
||||
})
|
||||
.subscribe(
|
||||
versions => {
|
||||
this.chartVersions = versions;
|
||||
this.chartVersions = versions.filter(x => x.version.includes(this.lastFilteredVersionName));
|
||||
this.versionsCopy = versions.map(x => Object.assign({}, x));
|
||||
},
|
||||
err => {
|
||||
if (err.status && err.status === 404) {
|
||||
this.backEvt.emit();
|
||||
}
|
||||
this.errorHandler.error(err);
|
||||
}
|
||||
);
|
||||
@ -163,7 +165,11 @@ export class ChartVersionComponent implements OnInit {
|
||||
deleteVersions(versions: HelmChartVersion[]) {
|
||||
if (versions && versions.length < 1) { return; }
|
||||
let versionObs = versions.map(v => this.deleteVersion(v));
|
||||
Observable.forkJoin(versionObs).finally(() => this.refresh()).subscribe();
|
||||
Observable.forkJoin(versionObs).finally(() => this.refresh()).subscribe(res => {
|
||||
if (this.chartVersions.length === versionObs.length) {
|
||||
this.backEvt.emit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
versionDownload(item?: HelmChartVersion) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<clr-modal [(clrModalOpen)]="addMemberOpened" [clrModalStaticBackdrop]="staticBackdrop" [clrModalClosable]="closable">
|
||||
<h3 class="modal-title">{{'MEMBER.NEW_USER' | translate}}</h3>
|
||||
<h3 class="modal-title">{{'MEMBER.NEW_MEMBER' | translate}}</h3>
|
||||
<div class="modal-body">
|
||||
<label>{{ 'MEMBER.NEW_USER_INFO' | translate}}</label>
|
||||
|
||||
|
@ -14,10 +14,10 @@
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<clr-dg-action-bar>
|
||||
<button class="btn btn-sm btn-secondary" (click)="openAddMemberModal()" [disabled]="!hasProjectAdminRole">
|
||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.NEW_USER' | translate }}</span>
|
||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.USER' | translate }}</span>
|
||||
</button>
|
||||
<button class="btn btn-sm btn-secondary" (click)="openAddGroupModal()" [disabled]="!hasProjectAdminRole || !isLdapMode">
|
||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.NEW_GROUP' | translate}}</span>
|
||||
<span><clr-icon shape="plus" size="16"></clr-icon> {{'MEMBER.LDAP_GROUP' | translate}}</span>
|
||||
</button>
|
||||
<clr-dropdown id='member-action' [clrCloseMenuOnItemClick]="false" class="btn btn-sm btn-link" clrDropdownTrigger>
|
||||
<span>{{'MEMBER.ACTION' | translate}}<clr-icon shape="caret down"></clr-icon></span>
|
||||
|
@ -203,7 +203,7 @@
|
||||
"AUTOSCAN_POLICY": "Automatically scan images when they are pushed to the project registry."
|
||||
},
|
||||
"MEMBER": {
|
||||
"NEW_USER": "New User",
|
||||
"NEW_USER": "Add User Member",
|
||||
"NEW_MEMBER": "New Member",
|
||||
"MEMBER": "Member",
|
||||
"NAME": "Name",
|
||||
@ -221,10 +221,10 @@
|
||||
"ADD_USER": "Add User",
|
||||
"NEW_USER_INFO": "Add an user to be a member of this project with specified role",
|
||||
"NEW_GROUP": "New Group",
|
||||
"IMPORT_GROUP": "Import New LDAP Group",
|
||||
"NEW_GROUP_INFO": "Import a new LDAP group or select one or more existing groups to add with the specific role.",
|
||||
"ADD_GROUP_SELECT": "Add a group as a project member",
|
||||
"CREATE_GROUP_SELECT": "Import a new group from LDAP",
|
||||
"IMPORT_GROUP": "Add Group Member",
|
||||
"NEW_GROUP_INFO": "Add an existing user group or select a user group from LDAP/AD to project member",
|
||||
"ADD_GROUP_SELECT": "Add an existing user group to project member",
|
||||
"CREATE_GROUP_SELECT": "Add a group from LDAP to project member",
|
||||
"LDAP_SEARCH_DN": "LDAP Group DN",
|
||||
"LDAP_SEARCH_NAME": "Name",
|
||||
"LDAP_GROUP": "Group",
|
||||
@ -482,7 +482,7 @@
|
||||
"VALUES": "Values",
|
||||
"OVERVIEW": "Overview",
|
||||
"HOME": "Home",
|
||||
"SRC_REPO": "Srouce Repository",
|
||||
"SRC_REPO": "Source Repository",
|
||||
"CREATED": "Created Time",
|
||||
"MAINTAINERS": "Maintainers",
|
||||
"PULLS": "Pull Count",
|
||||
@ -506,13 +506,17 @@
|
||||
"ADD_REPO": "Add Repo",
|
||||
"SHOW_KV": "Key Value Pairs",
|
||||
"SHOW_YAML": "YAML File",
|
||||
"PLACEHOLDER": "No Item",
|
||||
"PLACEHOLDER": "We couldn't find any charts!",
|
||||
"NO_VERSION_PLACEHOLDER": "We couldn't find any versions!",
|
||||
"FILE_UPLOADED": "File upload successfully",
|
||||
"SIGN": "Sign",
|
||||
"SIGNED": "Signed",
|
||||
"UNSIGNED": "Unsigned",
|
||||
"ITEMS": "charts",
|
||||
"NO_README": "No readme file provided by this charts.",
|
||||
"SECURITY": "Security"
|
||||
"ITEMS": "items",
|
||||
"NO_README": "No readme file provided by this chart.",
|
||||
"SECURITY": "Security",
|
||||
"ACTIVE": "Active",
|
||||
"DEPRECATED": "Deprecated"
|
||||
},
|
||||
"ALERT": {
|
||||
"FORM_CHANGE_CONFIRMATION": "Some changes are not saved yet. Do you want to cancel?"
|
||||
|
@ -203,7 +203,7 @@
|
||||
"AUTOSCAN_POLICY": "Escanee automáticamente las imágenes cuando son enviadas al registro del proyecto."
|
||||
},
|
||||
"MEMBER": {
|
||||
"NEW_USER": "New User",
|
||||
"NEW_USER": "Add User Member",
|
||||
"NEW_MEMBER": "Nuevo miembro",
|
||||
"MEMBER": "Miembro",
|
||||
"NAME": "Nombre",
|
||||
@ -221,10 +221,10 @@
|
||||
"ADD_USER": "Add User",
|
||||
"NEW_USER_INFO": "Add an user to be a member of this project with specified role",
|
||||
"NEW_GROUP": "New Group",
|
||||
"IMPORT_GROUP": "Import New LDAP Group",
|
||||
"NEW_GROUP_INFO": "Import a new LDAP group or select one or more existing groups to add with the specific role.",
|
||||
"ADD_GROUP_SELECT": "Add a group as a project member",
|
||||
"CREATE_GROUP_SELECT": "Import a new group from LDAP",
|
||||
"IMPORT_GROUP": "Add Group Member",
|
||||
"NEW_GROUP_INFO": "Add an existing user group or select a user group from LDAP to project member",
|
||||
"ADD_GROUP_SELECT": "Add an existing user group to project member",
|
||||
"CREATE_GROUP_SELECT": "Add a group from LDAP to project member",
|
||||
"LDAP_SEARCH_DN": "LDAP Group DN",
|
||||
"LDAP_SEARCH_NAME": "Name",
|
||||
"LDAP_GROUP": "Group",
|
||||
@ -469,6 +469,54 @@
|
||||
"DEPLOY": "DEPLOY",
|
||||
"ADDITIONAL_INFO": "Add Additional Info"
|
||||
},
|
||||
"HELM_CHART": {
|
||||
"HELMCHARTS": "Charts",
|
||||
"CHARTVERSIONS": "Versions",
|
||||
"UPLOAD_TITLE": "Upload chart files",
|
||||
"CHART_FILE": "Chart File",
|
||||
"CHART_PROV": "Prov File",
|
||||
"DOWNLOAD": "Download",
|
||||
"SUMMARY": "Summary",
|
||||
"DEPENDENCIES": "Dependencies",
|
||||
"VALUES": "Values",
|
||||
"OVERVIEW": "Overview",
|
||||
"HOME": "Home",
|
||||
"SRC_REPO": "Source Repository",
|
||||
"CREATED": "Created Time",
|
||||
"MAINTAINERS": "Maintainers",
|
||||
"PULLS": "Pull Count",
|
||||
"VERSION": "Version",
|
||||
"INSTALL": "Install",
|
||||
"INSTALL_CHART": "Install Chart",
|
||||
"NAME": "Name",
|
||||
"REPO": "Repository",
|
||||
"FILTER_FOR_CHARTS": "Filter for charts",
|
||||
"DELETE": "Delete",
|
||||
"OF": "of",
|
||||
"VERSIONS": "versions",
|
||||
"IMAGES": "Images",
|
||||
"ENGINE": "Engine",
|
||||
"ACTION": "Action",
|
||||
"UPLOAD": "Upload",
|
||||
"DELETE_CHART_VERSION_TITLE": "Delete Chart Versions",
|
||||
"DELETE_CHART_VERSION": "Do you want to delete version {{param}}?",
|
||||
"IMPORT": "Import",
|
||||
"EXPORT": "Export",
|
||||
"ADD_REPO": "Add Repo",
|
||||
"SHOW_KV": "Key Value Pairs",
|
||||
"SHOW_YAML": "YAML File",
|
||||
"PLACEHOLDER": "We couldn't find any charts!",
|
||||
"NO_VERSION_PLACEHOLDER": "We couldn't find any versions!",
|
||||
"FILE_UPLOADED": "File upload successfully",
|
||||
"SIGN": "Sign",
|
||||
"SIGNED": "Signed",
|
||||
"UNSIGNED": "Unsigned",
|
||||
"ITEMS": "items",
|
||||
"NO_README": "No readme file provided by this chart.",
|
||||
"SECURITY": "Security",
|
||||
"ACTIVE": "Active",
|
||||
"DEPRECATED": "Deprecated"
|
||||
},
|
||||
"ALERT": {
|
||||
"FORM_CHANGE_CONFIRMATION": "Algunos cambios no se han guardado aún. ¿Quiere cancelar?"
|
||||
},
|
||||
|
@ -188,7 +188,7 @@
|
||||
"AUTOSCAN_POLICY": "Analyser automatiquement les images lorsqu'elles sont envoyées au registre du projet."
|
||||
},
|
||||
"MEMBER": {
|
||||
"NEW_USER": "New User",
|
||||
"NEW_USER": "Add User Member",
|
||||
"NEW_MEMBER": "Nouveau Membre",
|
||||
"MEMBER": "Membre",
|
||||
"NAME": "Nom",
|
||||
@ -197,10 +197,10 @@
|
||||
"ADD_USER": "Add User",
|
||||
"NEW_USER_INFO": "Add an user to be a member of this project with specified role",
|
||||
"NEW_GROUP": "New Group",
|
||||
"IMPORT_GROUP": "Import New LDAP Group",
|
||||
"NEW_GROUP_INFO": "Import a new LDAP group or select one or more existing groups to add with the specific role.",
|
||||
"ADD_GROUP_SELECT": "Add a group as a project member",
|
||||
"CREATE_GROUP_SELECT": "Import a new group from LDAP",
|
||||
"IMPORT_GROUP": "Add Group Member",
|
||||
"NEW_GROUP_INFO": "Add an existing user group or select a user group from LDAP/AD to project member",
|
||||
"ADD_GROUP_SELECT": "Add an existing user group to project member",
|
||||
"CREATE_GROUP_SELECT": "Add a group from LDAP to project member",
|
||||
"LDAP_SEARCH_DN": "LDAP Group DN",
|
||||
"LDAP_SEARCH_NAME": "Name",
|
||||
"LDAP_GROUP": "Group",
|
||||
@ -445,6 +445,53 @@
|
||||
"DEPLOY": "DEPLOY",
|
||||
"ADDITIONAL_INFO": "Add Additional Info"
|
||||
},
|
||||
"HELM_CHART": {
|
||||
"HELMCHARTS": "Charts",
|
||||
"CHARTVERSIONS": "Versions",
|
||||
"UPLOAD_TITLE": "Upload chart files",
|
||||
"CHART_FILE": "Chart File",
|
||||
"CHART_PROV": "Prov File",
|
||||
"DOWNLOAD": "Download",
|
||||
"SUMMARY": "Summary",
|
||||
"DEPENDENCIES": "Dependencies",
|
||||
"VALUES": "Values",
|
||||
"OVERVIEW": "Overview",
|
||||
"HOME": "Home",
|
||||
"SRC_REPO": "Source Repository",
|
||||
"CREATED": "Created Time",
|
||||
"MAINTAINERS": "Maintainers",
|
||||
"PULLS": "Pull Count",
|
||||
"VERSION": "Version",
|
||||
"INSTALL": "Install",
|
||||
"INSTALL_CHART": "Install Chart",
|
||||
"NAME": "Name",
|
||||
"REPO": "Repository",
|
||||
"FILTER_FOR_CHARTS": "Filter for charts",
|
||||
"DELETE": "Delete",
|
||||
"OF": "of",
|
||||
"VERSIONS": "versions",
|
||||
"IMAGES": "Images",
|
||||
"ENGINE": "Engine",
|
||||
"ACTION": "Action",
|
||||
"UPLOAD": "Upload",
|
||||
"DELETE_CHART_VERSION_TITLE": "Delete Chart Versions",
|
||||
"DELETE_CHART_VERSION": "Do you want to delete version {{param}}?",
|
||||
"IMPORT": "Import",
|
||||
"EXPORT": "Export",
|
||||
"ADD_REPO": "Add Repo",
|
||||
"SHOW_KV": "Key Value Pairs",
|
||||
"SHOW_YAML": "YAML File",
|
||||
"PLACEHOLDER": "We couldn't find any charts!",
|
||||
"NO_VERSION_PLACEHOLDER": "We couldn't find any versions!",
|
||||
"FILE_UPLOADED": "File upload successfully",
|
||||
"SIGN": "Sign",
|
||||
"SIGNED": "Signed",
|
||||
"UNSIGNED": "Unsigned",
|
||||
"ITEMS": "items",
|
||||
"SECURITY": "Security",
|
||||
"ACTIVE": "Active",
|
||||
"DEPRECATED": "Deprecated"
|
||||
},
|
||||
"ALERT": {
|
||||
"FORM_CHANGE_CONFIRMATION": "Certaines modifications ne sont pas encore enregistrées. Voulez-vous annuler ?"
|
||||
},
|
||||
|
@ -202,7 +202,7 @@
|
||||
"AUTOSCAN_POLICY": "当镜像上传后,自动进行扫描"
|
||||
},
|
||||
"MEMBER": {
|
||||
"NEW_USER": "新用户",
|
||||
"NEW_USER": "添加用户成员",
|
||||
"NEW_MEMBER": "新建成员",
|
||||
"MEMBER": "成员",
|
||||
"NAME": "姓名",
|
||||
@ -220,10 +220,10 @@
|
||||
"ADD_USER": "添加用户",
|
||||
"NEW_USER_INFO": "添加用户到此项目中并给予相对应的角色",
|
||||
"NEW_GROUP": "新增组",
|
||||
"IMPORT_GROUP": "导入LDAP组",
|
||||
"NEW_GROUP_INFO": "导入LDAP组,同时以选择的角色添加到项目成员列表",
|
||||
"ADD_GROUP_SELECT": "添加组到项目成员",
|
||||
"CREATE_GROUP_SELECT": "从LDAP导入新的组",
|
||||
"IMPORT_GROUP": "添加组成员",
|
||||
"NEW_GROUP_INFO": "添加已存在的组成员,或者导入LDAP组",
|
||||
"ADD_GROUP_SELECT": "添加已存在组到项目成员",
|
||||
"CREATE_GROUP_SELECT": "从LDAP组中选择,并添加到项目成员",
|
||||
"LDAP_SEARCH_DN": "LDAP Group DN",
|
||||
"LDAP_SEARCH_NAME": "名称",
|
||||
"LDAP_GROUP": "组",
|
||||
@ -469,6 +469,54 @@
|
||||
"DEPLOY": "部署",
|
||||
"ADDITIONAL_INFO": "添加信息"
|
||||
},
|
||||
"HELM_CHART": {
|
||||
"HELMCHARTS": "Charts",
|
||||
"CHARTVERSIONS": "版本",
|
||||
"UPLOAD_TITLE": "上传chart文件",
|
||||
"CHART_FILE": "Chart 文件",
|
||||
"CHART_PROV": "Prov 文件",
|
||||
"DOWNLOAD": "下载",
|
||||
"SUMMARY": "概要",
|
||||
"DEPENDENCIES": "依赖",
|
||||
"VALUES": "取值",
|
||||
"OVERVIEW": "总览",
|
||||
"HOME": "首页",
|
||||
"SRC_REPO": "源仓库",
|
||||
"CREATED": "创建时间",
|
||||
"MAINTAINERS": "维护者",
|
||||
"PULLS": "拉取数",
|
||||
"VERSION": "版本",
|
||||
"INSTALL": "安装",
|
||||
"INSTALL_CHART": "安装Chart",
|
||||
"NAME": "名称",
|
||||
"REPO": "仓库",
|
||||
"FILTER_FOR_CHARTS": "过滤Chart",
|
||||
"DELETE": "删除",
|
||||
"OF": "的",
|
||||
"VERSIONS": "版本",
|
||||
"IMAGES": "镜像",
|
||||
"ENGINE": "引擎",
|
||||
"ACTION": "动作",
|
||||
"UPLOAD": "上传",
|
||||
"DELETE_CHART_VERSION_TITLE": "删除Chart版本",
|
||||
"DELETE_CHART_VERSION": "您要删除chart版本 {{param}} 吗?",
|
||||
"IMPORT": "导入",
|
||||
"EXPORT": "导出",
|
||||
"ADD_REPO": "添加仓库",
|
||||
"SHOW_KV": "展示健值对",
|
||||
"SHOW_YAML": "展示YAML文件",
|
||||
"PLACEHOLDER": "找不到任何的chart!",
|
||||
"NO_VERSION_PLACEHOLDER": "找不到任何的chart版本!",
|
||||
"FILE_UPLOADED": "文件上传成功",
|
||||
"SIGN": "签名",
|
||||
"SIGNED": "已签名",
|
||||
"UNSIGNED": "未签名",
|
||||
"ITEMS": "项",
|
||||
"NO_README": "此Chart未提供README文件",
|
||||
"SECURITY": "安全",
|
||||
"ACTIVE": "正常",
|
||||
"DEPRECATED": "废弃"
|
||||
},
|
||||
"ALERT": {
|
||||
"FORM_CHANGE_CONFIRMATION": "表单内容改变,确认是否取消?"
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user