mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-27 04:35:16 +01:00
Merge pull request #4173 from ninjadq/add_confirmation_back
Fix UI bugs
This commit is contained in:
commit
454680626d
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harbor-ui",
|
"name": "harbor-ui",
|
||||||
"version": "0.6.37",
|
"version": "0.6.41",
|
||||||
"description": "Harbor shared UI components based on Clarity and Angular4",
|
"description": "Harbor shared UI components based on Clarity and Angular4",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "ng serve --host 0.0.0.0 --port 4500 --proxy-config proxy.config.json",
|
"start": "ng serve --host 0.0.0.0 --port 4500 --proxy-config proxy.config.json",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harbor-ui",
|
"name": "harbor-ui",
|
||||||
"version": "0.6.37",
|
"version": "0.6.41",
|
||||||
"description": "Harbor shared UI components based on Clarity and Angular4",
|
"description": "Harbor shared UI components based on Clarity and Angular4",
|
||||||
"author": "VMware",
|
"author": "VMware",
|
||||||
"module": "index.js",
|
"module": "index.js",
|
||||||
|
@ -24,11 +24,9 @@ export const TAG_TEMPLATE = `
|
|||||||
<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.embeded-datagrid]="isEmbedded" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
<clr-datagrid [clrDgLoading]="loading" [class.embeded-datagrid]="isEmbedded" [(clrDgSelected)]="selectedRow" (clrDgSelectedChange)="selectedChange()">
|
||||||
<clr-dg-action-bar>
|
<clr-dg-action-bar>
|
||||||
<div class="btn-group">
|
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(canScanNow(selectedRow) && selectedRow.length==1)" (click)="scanNow(selectedRow)"><clr-icon shape="shield-check" size="16"></clr-icon> {{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(canScanNow(selectedRow) && selectedRow.length==1)" (click)="scanNow(selectedRow)">{{'VULNERABILITY.SCAN_NOW' | translate}}</button>
|
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(selectedRow.length==1)" (click)="showDigestId(selectedRow)" ><clr-icon shape="copy" size="16"></clr-icon> {{'REPOSITORY.COPY_DIGEST_ID' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" [disabled]="!(selectedRow.length==1)" (click)="showDigestId(selectedRow)" >{{'REPOSITORY.COPY_DIGEST_ID' | translate}}</button>
|
<button type="button" class="btn btn-sm btn-secondary" *ngIf="hasProjectAdminRole" (click)="deleteTags(selectedRow)" [disabled]="!selectedRow.length"><clr-icon shape="times" size="16"></clr-icon> {{'REPOSITORY.DELETE' | translate}}</button>
|
||||||
<button type="button" class="btn btn-sm btn-secondary" *ngIf="hasProjectAdminRole" (click)="deleteTags(selectedRow)" [disabled]="!selectedRow.length">{{'REPOSITORY.DELETE' | translate}}</button>
|
|
||||||
</div>
|
|
||||||
</clr-dg-action-bar>
|
</clr-dg-action-bar>
|
||||||
<clr-dg-column style="width: 160px;" [clrDgField]="'name'">{{'REPOSITORY.TAG' | translate}}</clr-dg-column>
|
<clr-dg-column style="width: 160px;" [clrDgField]="'name'">{{'REPOSITORY.TAG' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column style="width: 90px;" [clrDgField]="'size'">{{'REPOSITORY.SIZE' | translate}}</clr-dg-column>
|
<clr-dg-column style="width: 90px;" [clrDgField]="'size'">{{'REPOSITORY.SIZE' | translate}}</clr-dg-column>
|
||||||
|
@ -69,11 +69,6 @@
|
|||||||
"check-else",
|
"check-else",
|
||||||
"check-whitespace"
|
"check-whitespace"
|
||||||
],
|
],
|
||||||
"quotemark": [
|
|
||||||
true,
|
|
||||||
"double",
|
|
||||||
"avoid-escape"
|
|
||||||
],
|
|
||||||
"radix": true,
|
"radix": true,
|
||||||
"semicolon": [
|
"semicolon": [
|
||||||
"always"
|
"always"
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
"clarity-icons": "^0.10.17",
|
"clarity-icons": "^0.10.17",
|
||||||
"clarity-ui": "^0.10.17",
|
"clarity-ui": "^0.10.17",
|
||||||
"core-js": "^2.4.1",
|
"core-js": "^2.4.1",
|
||||||
"harbor-ui": "0.6.37",
|
"harbor-ui": "0.6.41",
|
||||||
"intl": "^1.2.5",
|
"intl": "^1.2.5",
|
||||||
"mutationobserver-shim": "^0.3.2",
|
"mutationobserver-shim": "^0.3.2",
|
||||||
"ngx-cookie": "^1.0.0",
|
"ngx-cookie": "^1.0.0",
|
||||||
|
@ -221,7 +221,15 @@ export class ListProjectComponent implements OnDestroy {
|
|||||||
this.batchDelectionInfos.push(initBatchMessage);
|
this.batchDelectionInfos.push(initBatchMessage);
|
||||||
});
|
});
|
||||||
this.deletionDialogService.addBatchInfoList(this.batchDelectionInfos);
|
this.deletionDialogService.addBatchInfoList(this.batchDelectionInfos);
|
||||||
this.delProjects(p);
|
let deletionMessage = new ConfirmationMessage(
|
||||||
|
"PROJECT.DELETION_TITLE",
|
||||||
|
"PROJECT.DELETION_SUMMARY",
|
||||||
|
nameArr.join(","),
|
||||||
|
p,
|
||||||
|
ConfirmationTargets.PROJECT,
|
||||||
|
ConfirmationButtons.DELETE_CANCEL
|
||||||
|
);
|
||||||
|
this.deletionDialogService.openComfirmDialog(deletionMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delProjects(projects: Project[]) {
|
delProjects(projects: Project[]) {
|
||||||
|
@ -63,6 +63,7 @@ export class MemberComponent implements OnInit, OnDestroy {
|
|||||||
isDelete = false;
|
isDelete = false;
|
||||||
isChangeRole = false;
|
isChangeRole = false;
|
||||||
batchActionInfos: BatchInfo[] = [];
|
batchActionInfos: BatchInfo[] = [];
|
||||||
|
batchDeletionInfos: BatchInfo[] = [];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
@ -206,17 +207,25 @@ export class MemberComponent implements OnInit, OnDestroy {
|
|||||||
this.isDelete = true;
|
this.isDelete = true;
|
||||||
this.isChangeRole = false;
|
this.isChangeRole = false;
|
||||||
let nameArr: string[] = [];
|
let nameArr: string[] = [];
|
||||||
this.batchActionInfos = [];
|
this.batchDeletionInfos = [];
|
||||||
if (m && m.length) {
|
if (m && m.length) {
|
||||||
m.forEach(data => {
|
m.forEach(data => {
|
||||||
nameArr.push(data.username);
|
nameArr.push(data.username);
|
||||||
let initBatchMessage = new BatchInfo ();
|
let initBatchMessage = new BatchInfo ();
|
||||||
initBatchMessage.name = data.username;
|
initBatchMessage.name = data.username;
|
||||||
this.batchActionInfos.push(initBatchMessage);
|
this.batchDeletionInfos.push(initBatchMessage);
|
||||||
});
|
});
|
||||||
this.OperateDialogService.addBatchInfoList(this.batchActionInfos);
|
this.OperateDialogService.addBatchInfoList(this.batchDeletionInfos);
|
||||||
|
|
||||||
this.deleteMem(m);
|
let deletionMessage = new ConfirmationMessage(
|
||||||
|
"MEMBER.DELETION_TITLE",
|
||||||
|
"MEMBER.DELETION_SUMMARY",
|
||||||
|
nameArr.join(","),
|
||||||
|
m,
|
||||||
|
ConfirmationTargets.PROJECT_MEMBER,
|
||||||
|
ConfirmationButtons.DELETE_CANCEL
|
||||||
|
);
|
||||||
|
this.OperateDialogService.openComfirmDialog(deletionMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +234,7 @@ export class MemberComponent implements OnInit, OnDestroy {
|
|||||||
let promiseLists: any[] = [];
|
let promiseLists: any[] = [];
|
||||||
members.forEach(member => {
|
members.forEach(member => {
|
||||||
if (member.user_id === this.currentUser.user_id) {
|
if (member.user_id === this.currentUser.user_id) {
|
||||||
let findedList = this.batchActionInfos.find(data => data.name === member.username);
|
let findedList = this.batchDeletionInfos.find(data => data.name === member.username);
|
||||||
this.translate.get("BATCH.DELETED_FAILURE").subscribe(res => {
|
this.translate.get("BATCH.DELETED_FAILURE").subscribe(res => {
|
||||||
findedList = BathInfoChanges(findedList, res, false, true);
|
findedList = BathInfoChanges(findedList, res, false, true);
|
||||||
});
|
});
|
||||||
@ -243,7 +252,7 @@ export class MemberComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
delOperate(projectId: number, memberId: number, username: string) {
|
delOperate(projectId: number, memberId: number, username: string) {
|
||||||
let findedList = this.batchActionInfos.find(data => data.name === username);
|
let findedList = this.batchDeletionInfos.find(data => data.name === username);
|
||||||
return this.memberService
|
return this.memberService
|
||||||
.deleteMember(projectId, memberId)
|
.deleteMember(projectId, memberId)
|
||||||
.then(
|
.then(
|
||||||
|
@ -69,11 +69,6 @@
|
|||||||
"check-else",
|
"check-else",
|
||||||
"check-whitespace"
|
"check-whitespace"
|
||||||
],
|
],
|
||||||
"quotemark": [
|
|
||||||
true,
|
|
||||||
"double",
|
|
||||||
"avoid-escape"
|
|
||||||
],
|
|
||||||
"radix": true,
|
"radix": true,
|
||||||
"semicolon": [
|
"semicolon": [
|
||||||
true
|
true
|
||||||
|
Loading…
Reference in New Issue
Block a user