Merge pull request #2533 from steven-zou/master

Fix project role displaying issue
This commit is contained in:
Steven Zou 2017-06-15 18:32:56 +08:00 committed by GitHub
commit df61fb355b
3 changed files with 25 additions and 17 deletions

View File

@ -28,12 +28,20 @@ import { State } from 'clarity-angular';
changeDetection: ChangeDetectionStrategy.OnPush changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class ListProjectComponent { export class ListProjectComponent {
_filterType: string = ProjectTypes[0];
@Input() projects: Project[]; @Input() projects: Project[];
@Input() filteredType: string; @Input()
get filteredType(): string {
return this._filterType;
}
set filteredType(value: string) {
if (value && value.trim() !== "") {
this._filterType = value;
}
}
@Output() paginate = new EventEmitter<State>(); @Output() paginate = new EventEmitter<State>();
@Output() toggle = new EventEmitter<Project>(); @Output() toggle = new EventEmitter<Project>();
@Output() delete = new EventEmitter<Project>(); @Output() delete = new EventEmitter<Project>();
@ -44,12 +52,12 @@ export class ListProjectComponent {
private router: Router, private router: Router,
private searchTrigger: SearchTriggerService, private searchTrigger: SearchTriggerService,
private ref: ChangeDetectorRef) { private ref: ChangeDetectorRef) {
let hnd = setInterval(()=>ref.markForCheck(), 100); let hnd = setInterval(() => ref.markForCheck(), 100);
setTimeout(()=>clearInterval(hnd), 1000); setTimeout(() => clearInterval(hnd), 1000);
} }
get showRoleInfo(): boolean { get showRoleInfo(): boolean {
return this.filteredType === ProjectTypes[0]; return this.filteredType !== ProjectTypes[2];
} }
public get isSystemAdmin(): boolean { public get isSystemAdmin(): boolean {
@ -69,7 +77,7 @@ export class ListProjectComponent {
} }
newReplicationRule(p: Project) { newReplicationRule(p: Project) {
if(p) { if (p) {
this.router.navigateByUrl(`/harbor/projects/${p.project_id}/replication?is_create=true`); this.router.navigateByUrl(`/harbor/projects/${p.project_id}/replication?is_create=true`);
} }
} }

View File

@ -14,9 +14,9 @@
<div class="option-right"> <div class="option-right">
<div class="select" style="float: left;"> <div class="select" style="float: left;">
<select (change)="doFilterProjects($event)"> <select (change)="doFilterProjects($event)">
<option value="-1" [selected]="currentFilteredType === -1">{{projectTypes[0] | translate}}</option> <option value="0" [selected]="currentFilteredType === 0">{{projectTypes[0] | translate}}</option>
<option value="0">{{projectTypes[1] | translate}}</option> <option value="1">{{projectTypes[1] | translate}}</option>
<option value="1">{{projectTypes[2] | translate}}</option> <option value="2">{{projectTypes[2] | translate}}</option>
</select> </select>
</div> </div>
<grid-filter filterPlaceholder='{{"PROJECT.FILTER_PLACEHOLDER" | translate}}' (filter)="doSearchProjects($event)" [currentValue]="projectName"></grid-filter> <grid-filter filterPlaceholder='{{"PROJECT.FILTER_PLACEHOLDER" | translate}}' (filter)="doSearchProjects($event)" [currentValue]="projectName"></grid-filter>

View File

@ -56,7 +56,7 @@ export class ProjectComponent implements OnInit, OnDestroy {
@ViewChild(ListProjectComponent) @ViewChild(ListProjectComponent)
listProject: ListProjectComponent; listProject: ListProjectComponent;
currentFilteredType: number = -1;//all projects currentFilteredType: number = 0;//all projects
projectName: string = ""; projectName: string = "";
subscription: Subscription; subscription: Subscription;
@ -146,10 +146,10 @@ export class ProjectComponent implements OnInit, OnDestroy {
doSearchProjects(projectName: string): void { doSearchProjects(projectName: string): void {
this.projectName = projectName; this.projectName = projectName;
if (projectName === "") { if (projectName === "") {
if (this.currentFilteredType === -1) { if (this.currentFilteredType === 0) {
this.getProjects(); this.getProjects();
} else { } else {
this.getProjects(projectName, this.currentFilteredType); this.getProjects(projectName, this.currentFilteredType - 1);
} }
} else { } else {
this.getProjects(projectName); this.getProjects(projectName);
@ -160,10 +160,10 @@ export class ProjectComponent implements OnInit, OnDestroy {
if ($event && $event.target && $event.target["value"]) { if ($event && $event.target && $event.target["value"]) {
this.projectName = ""; this.projectName = "";
this.currentFilteredType = +$event.target["value"]; this.currentFilteredType = +$event.target["value"];
if (this.currentFilteredType === -1) { if (this.currentFilteredType === 0) {
this.getProjects(); this.getProjects();
} else { } else {
this.getProjects("", this.currentFilteredType); this.getProjects("", this.currentFilteredType - 1);
} }
} }
} }
@ -177,7 +177,7 @@ export class ProjectComponent implements OnInit, OnDestroy {
response => { response => {
this.messageHandlerService.showSuccess('PROJECT.TOGGLED_SUCCESS'); this.messageHandlerService.showSuccess('PROJECT.TOGGLED_SUCCESS');
this.statisticHandler.refresh(); this.statisticHandler.refresh();
this.getProjects("", this.currentFilteredType); this.getProjects("", this.currentFilteredType - 1);
}, },
error => this.messageHandlerService.handleError(error) error => this.messageHandlerService.handleError(error)
); );
@ -197,7 +197,7 @@ export class ProjectComponent implements OnInit, OnDestroy {
} }
refresh(): void { refresh(): void {
this.currentFilteredType = -1; this.currentFilteredType = 0;
this.retrieve(); this.retrieve();
this.statisticHandler.refresh(); this.statisticHandler.refresh();
} }