Fix UI bugs

Add deleting confirmation dialog back
Change buttons' style on tag component
This commit is contained in:
Deng, Qian 2018-01-29 21:54:59 +08:00
parent 02554204e4
commit b31a91b64a
8 changed files with 30 additions and 25 deletions

View File

@ -1,6 +1,6 @@
{
"name": "harbor-ui",
"version": "0.6.37",
"version": "0.6.41",
"description": "Harbor shared UI components based on Clarity and Angular4",
"scripts": {
"start": "ng serve --host 0.0.0.0 --port 4500 --proxy-config proxy.config.json",

View File

@ -1,6 +1,6 @@
{
"name": "harbor-ui",
"version": "0.6.37",
"version": "0.6.41",
"description": "Harbor shared UI components based on Clarity and Angular4",
"author": "VMware",
"module": "index.js",

View File

@ -24,11 +24,9 @@ export const TAG_TEMPLATE = `
<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-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)">{{'VULNERABILITY.SCAN_NOW' | 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">{{'REPOSITORY.DELETE' | translate}}</button>
</div>
<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>&nbsp;{{'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>&nbsp;{{'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>&nbsp;{{'REPOSITORY.DELETE' | translate}}</button>
</clr-dg-action-bar>
<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>

View File

@ -69,11 +69,6 @@
"check-else",
"check-whitespace"
],
"quotemark": [
true,
"double",
"avoid-escape"
],
"radix": true,
"semicolon": [
"always"

View File

@ -31,7 +31,7 @@
"clarity-icons": "^0.10.17",
"clarity-ui": "^0.10.17",
"core-js": "^2.4.1",
"harbor-ui": "0.6.37",
"harbor-ui": "0.6.41",
"intl": "^1.2.5",
"mutationobserver-shim": "^0.3.2",
"ngx-cookie": "^1.0.0",

View File

@ -221,7 +221,15 @@ export class ListProjectComponent implements OnDestroy {
this.batchDelectionInfos.push(initBatchMessage);
});
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[]) {

View File

@ -63,6 +63,7 @@ export class MemberComponent implements OnInit, OnDestroy {
isDelete = false;
isChangeRole = false;
batchActionInfos: BatchInfo[] = [];
batchDeletionInfos: BatchInfo[] = [];
constructor(
private route: ActivatedRoute,
@ -206,17 +207,25 @@ export class MemberComponent implements OnInit, OnDestroy {
this.isDelete = true;
this.isChangeRole = false;
let nameArr: string[] = [];
this.batchActionInfos = [];
this.batchDeletionInfos = [];
if (m && m.length) {
m.forEach(data => {
nameArr.push(data.username);
let initBatchMessage = new BatchInfo ();
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[] = [];
members.forEach(member => {
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 => {
findedList = BathInfoChanges(findedList, res, false, true);
});
@ -243,7 +252,7 @@ export class MemberComponent implements OnInit, OnDestroy {
}
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
.deleteMember(projectId, memberId)
.then(

View File

@ -69,11 +69,6 @@
"check-else",
"check-whitespace"
],
"quotemark": [
true,
"double",
"avoid-escape"
],
"radix": true,
"semicolon": [
true