mirror of
https://github.com/goharbor/harbor.git
synced 2025-03-01 02:01:19 +01:00
Fix bug in harbor UI
fix #9271 fix #9207 fix #9178 Signed-off-by: Yogi_Wang <yawang@vmware.com>
This commit is contained in:
parent
5c5e475da4
commit
081e701793
@ -118,7 +118,7 @@
|
|||||||
<clr-tooltip-content clrPosition="top-left" clrSize="md" *clrIfOpen>
|
<clr-tooltip-content clrPosition="top-left" clrSize="md" *clrIfOpen>
|
||||||
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='name'">{{'TOOLTIP.NAME_FILTER' | translate}}</span>
|
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='name'">{{'TOOLTIP.NAME_FILTER' | translate}}</span>
|
||||||
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='tag'">{{'TOOLTIP.TAG_FILTER' | translate}}</span>
|
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='tag'">{{'TOOLTIP.TAG_FILTER' | translate}}</span>
|
||||||
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='label'">{{'TOOLTIP.LABEL_FILTER' | translate}}</span>
|
<span class="tooltip-content" >{{'TOOLTIP.LABEL_FILTER' | translate}}</span>
|
||||||
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='resource'">{{'TOOLTIP.RESOURCE_FILTER' | translate}}</span>
|
<span class="tooltip-content" *ngIf="supportedFilters[i]?.type==='resource'">{{'TOOLTIP.RESOURCE_FILTER' | translate}}</span>
|
||||||
</clr-tooltip-content>
|
</clr-tooltip-content>
|
||||||
</clr-tooltip>
|
</clr-tooltip>
|
||||||
@ -209,10 +209,6 @@
|
|||||||
</clr-tooltip>
|
</clr-tooltip>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="clr-checkbox-wrapper clr-form-control">
|
|
||||||
<input type="checkbox" [checked]="true" id="enablePolicy" formControlName="enabled" class="clr-checkbox">
|
|
||||||
<label for="enablePolicy" class="clr-control-label">{{'REPLICATION.ENABLED_RULE' | translate}}</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="loading-center">
|
<div class="loading-center">
|
||||||
|
@ -204,7 +204,6 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
|||||||
}),
|
}),
|
||||||
filters: this.fb.array([]),
|
filters: this.fb.array([]),
|
||||||
deletion: false,
|
deletion: false,
|
||||||
enabled: true,
|
|
||||||
override: true
|
override: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -229,7 +228,6 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
deletion: false,
|
deletion: false,
|
||||||
enabled: true,
|
|
||||||
override: true
|
override: true
|
||||||
});
|
});
|
||||||
this.isPushMode = true;
|
this.isPushMode = true;
|
||||||
@ -253,7 +251,6 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
|||||||
dest_registry: rule.dest_registry,
|
dest_registry: rule.dest_registry,
|
||||||
trigger: rule.trigger,
|
trigger: rule.trigger,
|
||||||
deletion: rule.deletion,
|
deletion: rule.deletion,
|
||||||
enabled: rule.enabled,
|
|
||||||
override: rule.override
|
override: rule.override
|
||||||
});
|
});
|
||||||
let filtersArray = this.getFilterArray(rule);
|
let filtersArray = this.getFilterArray(rule);
|
||||||
|
@ -256,7 +256,7 @@ export class MemberComponent implements OnInit, OnDestroy {
|
|||||||
// Function to delete specific member
|
// Function to delete specific member
|
||||||
let deleteMember = (projectId: number, member: Member) => {
|
let deleteMember = (projectId: number, member: Member) => {
|
||||||
let operMessage = new OperateInfo();
|
let operMessage = new OperateInfo();
|
||||||
operMessage.name = 'OPERATION.DELETE_MEMBER';
|
operMessage.name = member.entity_type === 'u' ? 'OPERATION.DELETE_MEMBER' : 'OPERATION.DELETE_GROUP';
|
||||||
operMessage.data.id = member.id;
|
operMessage.data.id = member.id;
|
||||||
operMessage.state = OperationState.progressing;
|
operMessage.state = OperationState.progressing;
|
||||||
operMessage.data.name = member.entity_name;
|
operMessage.data.name = member.entity_name;
|
||||||
|
@ -79,7 +79,7 @@
|
|||||||
[(ngModel)]="imagePermissionPull" clrCheckbox>
|
[(ngModel)]="imagePermissionPull" clrCheckbox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr *ngIf="withHelmChart">
|
||||||
<td class="left">{{'ROBOT_ACCOUNT.PERMISSIONS_HELMCHART' | translate}}</td>
|
<td class="left">{{'ROBOT_ACCOUNT.PERMISSIONS_HELMCHART' | translate}}</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox"
|
<input type="checkbox"
|
||||||
|
@ -8,6 +8,7 @@ import { of } from "rxjs";
|
|||||||
import { ErrorHandler } from "@harbor/ui";
|
import { ErrorHandler } from "@harbor/ui";
|
||||||
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
|
import { AppConfigService } from "../../../app-config.service";
|
||||||
|
|
||||||
describe('AddRobotComponent', () => {
|
describe('AddRobotComponent', () => {
|
||||||
let component: AddRobotComponent;
|
let component: AddRobotComponent;
|
||||||
@ -24,6 +25,13 @@ describe('AddRobotComponent', () => {
|
|||||||
let fakeMessageHandlerService = {
|
let fakeMessageHandlerService = {
|
||||||
showSuccess: function() {}
|
showSuccess: function() {}
|
||||||
};
|
};
|
||||||
|
let fakeAppConfigService = {
|
||||||
|
getConfig: function() {
|
||||||
|
return {
|
||||||
|
with_chartmuseum: true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
@ -40,6 +48,7 @@ describe('AddRobotComponent', () => {
|
|||||||
TranslateService,
|
TranslateService,
|
||||||
ErrorHandler,
|
ErrorHandler,
|
||||||
{ provide: MessageHandlerService, useValue: fakeMessageHandlerService },
|
{ provide: MessageHandlerService, useValue: fakeMessageHandlerService },
|
||||||
|
{ provide: AppConfigService, useValue: fakeAppConfigService },
|
||||||
{ provide: RobotService, useValue: fakeRobotService }
|
{ provide: RobotService, useValue: fakeRobotService }
|
||||||
]
|
]
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
|
@ -18,6 +18,7 @@ import { ErrorHandler } from "@harbor/ui";
|
|||||||
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
||||||
import { InlineAlertComponent } from "../../../shared/inline-alert/inline-alert.component";
|
import { InlineAlertComponent } from "../../../shared/inline-alert/inline-alert.component";
|
||||||
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
||||||
|
import { AppConfigService } from "../../../app-config.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "add-robot",
|
selector: "add-robot",
|
||||||
@ -43,6 +44,7 @@ export class AddRobotComponent implements OnInit, OnDestroy {
|
|||||||
robotForm: NgForm;
|
robotForm: NgForm;
|
||||||
imagePermissionPush: boolean = true;
|
imagePermissionPush: boolean = true;
|
||||||
imagePermissionPull: boolean = true;
|
imagePermissionPull: boolean = true;
|
||||||
|
withHelmChart: boolean;
|
||||||
@Input() projectId: number;
|
@Input() projectId: number;
|
||||||
@Input() projectName: string;
|
@Input() projectName: string;
|
||||||
@Output() create = new EventEmitter<boolean>();
|
@Output() create = new EventEmitter<boolean>();
|
||||||
@ -54,10 +56,13 @@ export class AddRobotComponent implements OnInit, OnDestroy {
|
|||||||
private errorHandler: ErrorHandler,
|
private errorHandler: ErrorHandler,
|
||||||
private cdr: ChangeDetectorRef,
|
private cdr: ChangeDetectorRef,
|
||||||
private messageHandlerService: MessageHandlerService,
|
private messageHandlerService: MessageHandlerService,
|
||||||
private sanitizer: DomSanitizer
|
private sanitizer: DomSanitizer,
|
||||||
) {}
|
private appConfigService: AppConfigService
|
||||||
|
|
||||||
|
) {}
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
this.withHelmChart = this.appConfigService.getConfig().with_chartmuseum;
|
||||||
|
|
||||||
this.robotNameChecker.pipe(debounceTime(800)).subscribe((name: string) => {
|
this.robotNameChecker.pipe(debounceTime(800)).subscribe((name: string) => {
|
||||||
let cont = this.currentForm.controls["robot_name"];
|
let cont = this.currentForm.controls["robot_name"];
|
||||||
if (cont) {
|
if (cont) {
|
||||||
|
@ -103,7 +103,7 @@ export const maintainUrlQueryParmas = function (uri: string, key: string, value:
|
|||||||
str += contentArray[1][getRandomInt(contentArray[1].length)];
|
str += contentArray[1][getRandomInt(contentArray[1].length)];
|
||||||
}
|
}
|
||||||
if (!str.match(/[A-Z]+/g)) {
|
if (!str.match(/[A-Z]+/g)) {
|
||||||
str += contentArray[1][getRandomInt(contentArray[1].length)];
|
str += contentArray[2][getRandomInt(contentArray[2].length)];
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user