mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-17 07:45:24 +01:00
[fix][ui] Operation unified processing session expired
fix #11268 includes the following functions: delete group delete chart version delete project delete member add group delete repo delete artifact delete tag delete robot delete user delete registry delete label delete replication list replication Signed-off-by: Yogi_Wang <yawang@vmware.com>
This commit is contained in:
parent
947eadaa72
commit
7b22b38c5c
@ -186,6 +186,7 @@ export class DistributionInstancesComponent implements OnInit, OnDestroy {
|
||||
this.translate.get(message).subscribe(errMsg => {
|
||||
this.msgHandler.error(msg + ': ' + errMsg);
|
||||
});
|
||||
this.msgHandler.handleErrorPopupUnauthorized(error);
|
||||
});
|
||||
}
|
||||
);
|
||||
@ -262,6 +263,8 @@ export class DistributionInstancesComponent implements OnInit, OnDestroy {
|
||||
forkJoin(...observableLists).subscribe(item => {
|
||||
this.selectedRow = [];
|
||||
this.refresh();
|
||||
}, error => {
|
||||
this.msgHandler.handleErrorPopupUnauthorized(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -288,7 +291,7 @@ export class DistributionInstancesComponent implements OnInit, OnDestroy {
|
||||
this.msgHandler.error(msg + ': ' + errMsg);
|
||||
});
|
||||
});
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
@ -139,6 +139,7 @@ export class DistributionSetupModalComponent implements OnInit {
|
||||
this.saveBtnState = ClrLoadingState.ERROR;
|
||||
});
|
||||
});
|
||||
this.msgHandler.handleErrorPopupUnauthorized(err);
|
||||
}
|
||||
);
|
||||
} else {
|
||||
@ -172,6 +173,7 @@ export class DistributionSetupModalComponent implements OnInit {
|
||||
this.saveBtnState = ClrLoadingState.ERROR;
|
||||
});
|
||||
});
|
||||
this.msgHandler.handleErrorPopupUnauthorized(err);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -143,7 +143,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
});
|
||||
|
||||
|
@ -166,15 +166,15 @@ export class ChartVersionComponent implements OnInit {
|
||||
return this.helmChartService
|
||||
.deleteChartVersion(this.projectName, this.chartName, version.version)
|
||||
.pipe(map(
|
||||
() => operateChanges(operateMsg, OperationState.success),
|
||||
() => operateChanges(operateMsg, OperationState.success)),
|
||||
catchError( error => {
|
||||
const message = errorHandlerFn(error);
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operateMsg, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}
|
||||
)));
|
||||
));
|
||||
}
|
||||
|
||||
deleteVersions(versions: HelmChartVersion[]) {
|
||||
@ -191,6 +191,8 @@ export class ChartVersionComponent implements OnInit {
|
||||
if (totalCount === successCount) {
|
||||
this.backEvt.emit();
|
||||
}
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -204,15 +204,15 @@ export class HelmChartComponent implements OnInit {
|
||||
|
||||
return this.helmChartService.deleteHelmChart(this.projectName, chartName)
|
||||
.pipe(map(
|
||||
() => operateChanges(operateMsg, OperationState.success),
|
||||
() => operateChanges(operateMsg, OperationState.success)),
|
||||
catchError( error => {
|
||||
const message = errorHandlerFn(error);
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operateMsg, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}
|
||||
)));
|
||||
));
|
||||
}
|
||||
|
||||
deleteCharts(charts: HelmChartItem[]) {
|
||||
@ -220,12 +220,14 @@ export class HelmChartComponent implements OnInit {
|
||||
let chartsDelete$ = charts.map(chart => this.deleteChart(chart.name));
|
||||
forkJoin(chartsDelete$)
|
||||
.pipe(
|
||||
catchError(err => observableThrowError(err)),
|
||||
finalize(() => {
|
||||
this.refresh();
|
||||
this.selectedRows = [];
|
||||
}))
|
||||
.subscribe(() => { });
|
||||
.subscribe(() => { }
|
||||
, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
downloadLatestVersion(evt?: Event, item?: HelmChartItem) {
|
||||
|
@ -217,9 +217,7 @@ export class ListProjectComponent implements OnDestroy {
|
||||
this.statisticHandler.refresh();
|
||||
}
|
||||
}, error => {
|
||||
this.translate.get("BATCH.DELETED_FAILURE").subscribe(res => {
|
||||
this.msgHandler.handleError(res);
|
||||
});
|
||||
this.msgHandler.handleError(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -242,7 +240,7 @@ export class ListProjectComponent implements OnDestroy {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {of as observableOf, forkJoin} from "rxjs";
|
||||
import {of as observableOf, forkJoin, throwError} from "rxjs";
|
||||
import {mergeMap, catchError} from 'rxjs/operators';
|
||||
import { ChangeDetectorRef, ChangeDetectionStrategy, ViewChild } from "@angular/core";
|
||||
import { Component, OnInit, Input, Output, EventEmitter } from "@angular/core";
|
||||
@ -139,9 +139,9 @@ export class AddGroupComponent implements OnInit {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}),
|
||||
catchError(error => observableOf(error.status)), );
|
||||
catchError(error => observableThrowError(error)), );
|
||||
});
|
||||
forkJoin(GroupAdders$)
|
||||
.subscribe(results => {
|
||||
@ -150,6 +150,8 @@ export class AddGroupComponent implements OnInit {
|
||||
} else {
|
||||
this.added.emit(true);
|
||||
}
|
||||
}, error => {
|
||||
this.msgHandler.handleError(error);
|
||||
});
|
||||
this.opened = false;
|
||||
}
|
||||
|
@ -278,7 +278,7 @@ export class MemberComponent implements OnInit, OnDestroy {
|
||||
this.translate.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
};
|
||||
|
||||
@ -289,6 +289,8 @@ export class MemberComponent implements OnInit, OnDestroy {
|
||||
this.selectedRow = [];
|
||||
this.batchOps = 'idle';
|
||||
this.retrieve(this.projectId, "");
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
getMemberPermissionRule(projectId: number): void {
|
||||
|
@ -748,10 +748,10 @@ export class ArtifactListTabComponent implements OnInit, OnDestroy {
|
||||
} else if (deleteErrorList.length === deleteResult.length) {
|
||||
// all is error
|
||||
this.loading = false;
|
||||
this.errorHandlerService.error(deleteResult[deleteResult.length - 1].error);
|
||||
this.errorHandlerService.error(deleteResult[deleteResult.length - 1]);
|
||||
} else {
|
||||
// some artifact delete success but it has error delete things
|
||||
this.errorHandlerService.error(deleteErrorList[deleteErrorList.length - 1].error);
|
||||
this.errorHandlerService.error(deleteErrorList[deleteErrorList.length - 1]);
|
||||
// if delete one success refresh list
|
||||
let st: ClrDatagridStateInterface = { page: {from: 0, to: this.pageSize - 1, size: this.pageSize} };
|
||||
this.clrLoad(st);
|
||||
|
@ -242,10 +242,10 @@ export class ArtifactTagComponent implements OnInit, OnDestroy {
|
||||
} else if (deleteErrorList.length === deleteResult.length) {
|
||||
// all is error
|
||||
this.loading = false;
|
||||
this.errorHandlerService.error(deleteResult[deleteResult.length - 1].error);
|
||||
this.errorHandlerService.error(deleteResult[deleteResult.length - 1]);
|
||||
} else {
|
||||
// some artifact delete success but it has error delete things
|
||||
this.errorHandlerService.error(deleteErrorList[deleteErrorList.length - 1].error);
|
||||
this.errorHandlerService.error(deleteErrorList[deleteErrorList.length - 1]);
|
||||
// if delete one success refresh list
|
||||
this.currentPage = 1;
|
||||
let st: ClrDatagridStateInterface = { page: {from: 0, to: this.pageSize - 1, size: this.pageSize} };
|
||||
|
@ -242,7 +242,7 @@ export class RepositoryGridviewComponent implements OnChanges, OnInit, OnDestroy
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -136,13 +136,15 @@ export class RobotAccountComponent implements OnInit, OnDestroy {
|
||||
let robotsDelete$ = robots.map(robot => this.delOperate(robot));
|
||||
forkJoin(robotsDelete$)
|
||||
.pipe(
|
||||
catchError(err => observableThrowError(err)),
|
||||
finalize(() => {
|
||||
this.retrieve();
|
||||
this.selectedRow = [];
|
||||
})
|
||||
)
|
||||
.subscribe(() => { });
|
||||
.subscribe(() => { }
|
||||
, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
delOperate(robot: Robot) {
|
||||
@ -164,7 +166,7 @@ export class RobotAccountComponent implements OnInit, OnDestroy {
|
||||
this.translate.get(errorMsg).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(errorMsg);
|
||||
return observableThrowError(error);
|
||||
}
|
||||
)
|
||||
));
|
||||
|
@ -259,6 +259,8 @@ export class UserComponent implements OnInit, OnDestroy {
|
||||
this.selectedRow = [];
|
||||
this.currentTerm = '';
|
||||
this.refresh();
|
||||
}, error => {
|
||||
this.msgHandler.handleError(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -287,7 +289,7 @@ export class UserComponent implements OnInit, OnDestroy {
|
||||
this.translate.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ export class UserService {
|
||||
}
|
||||
// Handle the related exceptions
|
||||
handleError(error: any): Observable<any> {
|
||||
return observableThrowError(error.error || error);
|
||||
return observableThrowError(error);
|
||||
}
|
||||
|
||||
// Get the user list
|
||||
|
@ -184,10 +184,15 @@ export class EndpointComponent implements OnInit, OnDestroy {
|
||||
targetLists.forEach(target => {
|
||||
observableLists.push(this.delOperate(target));
|
||||
});
|
||||
forkJoin(...observableLists).subscribe((item) => {
|
||||
forkJoin(...observableLists)
|
||||
.pipe(finalize(() => {
|
||||
this.selectedRow = [];
|
||||
this.reload(true);
|
||||
this.forceRefreshView(2000);
|
||||
}))
|
||||
.subscribe((item) => {
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -215,7 +220,7 @@ export class EndpointComponent implements OnInit, OnDestroy {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}
|
||||
));
|
||||
}
|
||||
|
@ -141,6 +141,8 @@ export class LabelComponent implements OnInit {
|
||||
forkJoin(...observableLists).subscribe((item) => {
|
||||
this.selectedRow = [];
|
||||
this.retrieve(this.scope);
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -168,7 +170,7 @@ export class LabelComponent implements OnInit {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -203,6 +203,8 @@ export class ListReplicationRuleComponent implements OnInit, OnChanges {
|
||||
this.reload.emit(true);
|
||||
let hnd = setInterval(() => this.ref.markForCheck(), 200);
|
||||
setTimeout(() => clearInterval(hnd), 2000);
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -227,7 +229,7 @@ export class ListReplicationRuleComponent implements OnInit, OnChanges {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
@ -329,6 +329,8 @@ export class ReplicationComponent implements OnInit, OnDestroy {
|
||||
if (rule) {
|
||||
forkJoin(this.replicationOperate(rule)).subscribe(item => {
|
||||
this.selectOneRule(rule);
|
||||
}, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -356,7 +358,7 @@ export class ReplicationComponent implements OnInit, OnDestroy {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
})
|
||||
);
|
||||
}
|
||||
@ -423,14 +425,16 @@ export class ReplicationComponent implements OnInit, OnDestroy {
|
||||
let ExecutionsStop$ = targets.map(target => this.StopOperate(target));
|
||||
forkJoin(ExecutionsStop$)
|
||||
.pipe(
|
||||
catchError(err => observableThrowError(err)),
|
||||
finalize(() => {
|
||||
this.refreshJobs();
|
||||
this.isStopOnGoing = false;
|
||||
this.selectedRow = [];
|
||||
})
|
||||
)
|
||||
.subscribe(() => { });
|
||||
.subscribe(() => { }
|
||||
, error => {
|
||||
this.errorHandler.error(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -457,7 +461,7 @@ export class ReplicationComponent implements OnInit, OnDestroy {
|
||||
this.translateService.get(message).subscribe(res =>
|
||||
operateChanges(operMessage, OperationState.failure, res)
|
||||
);
|
||||
return observableThrowError(message);
|
||||
return observableThrowError(error);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user