mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-23 02:35:17 +01:00
Remove redundant sorting code for list projects (#14956)
Signed-off-by: AllForNothing <sshijun@vmware.com>
This commit is contained in:
parent
544fa806fa
commit
d88dcffa03
@ -6,13 +6,13 @@
|
|||||||
(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>
|
||||||
<clr-dg-column [clrDgField]="'name'">{{'PROJECT.NAME' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgSortBy]="'name'">{{'PROJECT.NAME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="accessLevelComparator">{{'PROJECT.ACCESS_LEVEL' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'PROJECT.ACCESS_LEVEL' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="roleComparator">{{'PROJECT.ROLE' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'PROJECT.ROLE' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="typeComparator">{{'PROJECT.TYPE' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'PROJECT.TYPE' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="repoCountComparator">{{'PROJECT.REPO_COUNT'| translate}}</clr-dg-column>
|
<clr-dg-column>{{'PROJECT.REPO_COUNT'| translate}}</clr-dg-column>
|
||||||
<clr-dg-column *ngIf="withChartMuseum" [clrDgSortBy]="chartCountComparator">{{'PROJECT.CHART_COUNT'| translate}}</clr-dg-column>
|
<clr-dg-column *ngIf="withChartMuseum">{{'PROJECT.CHART_COUNT'| translate}}</clr-dg-column>
|
||||||
<clr-dg-column [clrDgSortBy]="timeComparator">{{'PROJECT.CREATION_TIME' | translate}}</clr-dg-column>
|
<clr-dg-column [clrDgSortBy]="'creation_time'">{{'PROJECT.CREATION_TIME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-row *ngFor="let p of projects" [clrDgItem]="p">
|
<clr-dg-row *ngFor="let p of projects" [clrDgItem]="p">
|
||||||
<clr-dg-cell>
|
<clr-dg-cell>
|
||||||
<a href="javascript:void(0)" (click)="goToLink(p.project_id)">{{p.name}}</a>
|
<a href="javascript:void(0)" (click)="goToLink(p.project_id)">{{p.name}}</a>
|
||||||
|
@ -18,7 +18,7 @@ import {
|
|||||||
OnDestroy, EventEmitter
|
OnDestroy, EventEmitter
|
||||||
} from "@angular/core";
|
} from "@angular/core";
|
||||||
import { Router } from "@angular/router";
|
import { Router } from "@angular/router";
|
||||||
import { Comparator, ProjectService, State } from "../../../../shared/services";
|
import { ProjectService, State } from "../../../../shared/services";
|
||||||
import {TranslateService} from "@ngx-translate/core";
|
import {TranslateService} from "@ngx-translate/core";
|
||||||
import { SessionService } from "../../../../shared/services/session.service";
|
import { SessionService } from "../../../../shared/services/session.service";
|
||||||
import { StatisticHandler } from "../statictics/statistic-handler.service";
|
import { StatisticHandler } from "../statictics/statistic-handler.service";
|
||||||
@ -29,9 +29,6 @@ import { Project } from "../../../project/project";
|
|||||||
import { map, catchError, finalize } from "rxjs/operators";
|
import { map, catchError, finalize } from "rxjs/operators";
|
||||||
import {
|
import {
|
||||||
calculatePage,
|
calculatePage,
|
||||||
CustomComparator,
|
|
||||||
doFiltering,
|
|
||||||
doSorting,
|
|
||||||
getSortingString
|
getSortingString
|
||||||
} from "../../../../shared/units/utils";
|
} from "../../../../shared/units/utils";
|
||||||
import { OperationService } from "../../../../shared/components/operation/operation.service";
|
import { OperationService } from "../../../../shared/components/operation/operation.service";
|
||||||
@ -62,12 +59,6 @@ export class ListProjectComponent implements OnDestroy {
|
|||||||
@Output() addProject = new EventEmitter<void>();
|
@Output() addProject = new EventEmitter<void>();
|
||||||
|
|
||||||
roleInfo = RoleInfo;
|
roleInfo = RoleInfo;
|
||||||
repoCountComparator: Comparator<Project> = new CustomComparator<Project>("repo_count", "number");
|
|
||||||
chartCountComparator: Comparator<Project> = new CustomComparator<Project>("chart_count", "number");
|
|
||||||
timeComparator: Comparator<Project> = new CustomComparator<Project>("creation_time", "date");
|
|
||||||
accessLevelComparator: Comparator<Project> = new CustomComparator<Project>("public", "string");
|
|
||||||
roleComparator: Comparator<Project> = new CustomComparator<Project>("current_user_role_id", "number");
|
|
||||||
typeComparator: Comparator<Project> = new CustomComparator<Project>("registry_id", "number");
|
|
||||||
currentPage = 1;
|
currentPage = 1;
|
||||||
totalCount = 0;
|
totalCount = 0;
|
||||||
pageSize = 15;
|
pageSize = 15;
|
||||||
@ -77,7 +68,7 @@ export class ListProjectComponent implements OnDestroy {
|
|||||||
0: "PROJECT.PROJECT",
|
0: "PROJECT.PROJECT",
|
||||||
1: "PROJECT.PROXY_CACHE"
|
1: "PROJECT.PROXY_CACHE"
|
||||||
};
|
};
|
||||||
|
state: ClrDatagridStateInterface;
|
||||||
constructor(
|
constructor(
|
||||||
private session: SessionService,
|
private session: SessionService,
|
||||||
private appConfigService: AppConfigService,
|
private appConfigService: AppConfigService,
|
||||||
@ -150,6 +141,7 @@ export class ListProjectComponent implements OnDestroy {
|
|||||||
if (!state || !state.page) {
|
if (!state || !state.page) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.state = state;
|
||||||
this.pageSize = state.page.size;
|
this.pageSize = state.page.size;
|
||||||
this.selectedRow = [];
|
this.selectedRow = [];
|
||||||
|
|
||||||
@ -179,10 +171,6 @@ export class ListProjectComponent implements OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.projects = response.body as Project[];
|
this.projects = response.body as Project[];
|
||||||
// Do customising filtering and sorting
|
|
||||||
this.projects = doFiltering<Project>(this.projects, state);
|
|
||||||
this.projects = doSorting<Project>(this.projects, state);
|
|
||||||
|
|
||||||
}, error => {
|
}, error => {
|
||||||
this.msgHandler.handleError(error);
|
this.msgHandler.handleError(error);
|
||||||
});
|
});
|
||||||
|
@ -24,6 +24,7 @@ import { debounceTime, distinctUntilChanged, finalize, switchMap } from 'rxjs/op
|
|||||||
import { Project } from '../../project/project';
|
import { Project } from '../../project/project';
|
||||||
import { MessageHandlerService } from '../../../shared/services/message-handler.service';
|
import { MessageHandlerService } from '../../../shared/services/message-handler.service';
|
||||||
import { ProjectTypes } from "../../../shared/entities/shared.const";
|
import { ProjectTypes } from "../../../shared/entities/shared.const";
|
||||||
|
import { getSortingString } from "../../../shared/units/utils";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'projects',
|
selector: 'projects',
|
||||||
@ -87,7 +88,7 @@ export class ProjectsComponent implements OnInit, OnDestroy {
|
|||||||
passInFilteredType = this.listProject.filteredType - 1;
|
passInFilteredType = this.listProject.filteredType - 1;
|
||||||
}
|
}
|
||||||
return this.proService.listProjects( this.listProject.searchKeyword,
|
return this.proService.listProjects( this.listProject.searchKeyword,
|
||||||
passInFilteredType, this.listProject.currentPage, this.listProject.pageSize)
|
passInFilteredType, this.listProject.currentPage, this.listProject.pageSize, getSortingString(this.listProject.state))
|
||||||
.pipe(finalize(() => {
|
.pipe(finalize(() => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user