mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-19 07:07:42 +01:00
Merge pull request #7725 from jwangyangls/fixCancel_cannot_work
Fix question of `Cancel` of OIDC configuration does not work
This commit is contained in:
commit
cc4da4bbbd
@ -11,7 +11,7 @@
|
|||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
import { Component, Input, ViewChild, SimpleChanges, OnChanges, OnInit } from '@angular/core';
|
import { Component, Input, ViewChild, SimpleChanges, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';
|
||||||
import { NgForm } from '@angular/forms';
|
import { NgForm } from '@angular/forms';
|
||||||
import { Subscription } from "rxjs";
|
import { Subscription } from "rxjs";
|
||||||
|
|
||||||
@ -37,6 +37,7 @@ export class ConfigurationAuthComponent implements OnChanges, OnInit {
|
|||||||
@Input('allConfig') currentConfig: Configuration = new Configuration();
|
@Input('allConfig') currentConfig: Configuration = new Configuration();
|
||||||
private originalConfig: Configuration;
|
private originalConfig: Configuration;
|
||||||
@ViewChild('authConfigFrom') authForm: NgForm;
|
@ViewChild('authConfigFrom') authForm: NgForm;
|
||||||
|
@Output() refreshAllconfig = new EventEmitter<any>();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private msgHandler: MessageHandlerService,
|
private msgHandler: MessageHandlerService,
|
||||||
@ -202,7 +203,7 @@ export class ConfigurationAuthComponent implements OnChanges, OnInit {
|
|||||||
this.configService.saveConfiguration(changes)
|
this.configService.saveConfiguration(changes)
|
||||||
.subscribe(response => {
|
.subscribe(response => {
|
||||||
this.onGoing = false;
|
this.onGoing = false;
|
||||||
this.retrieveConfig();
|
this.refreshAllconfig.emit();
|
||||||
// Reload bootstrap option
|
// Reload bootstrap option
|
||||||
this.appConfigService.load().subscribe(() => { }
|
this.appConfigService.load().subscribe(() => { }
|
||||||
, error => console.error('Failed to reload bootstrap option with error: ', error));
|
, error => console.error('Failed to reload bootstrap option with error: ', error));
|
||||||
@ -217,25 +218,6 @@ export class ConfigurationAuthComponent implements OnChanges, OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
retrieveConfig(): void {
|
|
||||||
this.onGoing = true;
|
|
||||||
this.configService.getConfiguration()
|
|
||||||
.subscribe((configurations: Configuration) => {
|
|
||||||
this.onGoing = false;
|
|
||||||
|
|
||||||
// Add two password fields
|
|
||||||
configurations.ldap_search_password = new StringValueItem(fakePass, true);
|
|
||||||
configurations.uaa_client_secret = new StringValueItem(fakePass, true);
|
|
||||||
configurations.oidc_client_secret = new StringValueItem(fakePass, true);
|
|
||||||
this.currentConfig = configurations;
|
|
||||||
// Keep the original copy of the data
|
|
||||||
this.originalConfig = clone(configurations);
|
|
||||||
}, error => {
|
|
||||||
this.onGoing = false;
|
|
||||||
this.msgHandler.handleError(error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Discard current changes if have and reset
|
* Discard current changes if have and reset
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
<clr-tab>
|
<clr-tab>
|
||||||
<button id="config-auth" clrTabLink>{{'CONFIG.AUTH' | translate}}</button>
|
<button id="config-auth" clrTabLink>{{'CONFIG.AUTH' | translate}}</button>
|
||||||
<clr-tab-content id="authentication" *clrIfActive>
|
<clr-tab-content id="authentication" *clrIfActive>
|
||||||
<config-auth [allConfig]="allConfig"></config-auth>
|
<config-auth [allConfig]="allConfig" (refreshAllconfig)="refreshAllconfig()"></config-auth>
|
||||||
</clr-tab-content>
|
</clr-tab-content>
|
||||||
</clr-tab>
|
</clr-tab>
|
||||||
<clr-tab>
|
<clr-tab>
|
||||||
<button id="config-email" clrTabLink>{{'CONFIG.EMAIL' | translate }}</button>
|
<button id="config-email" clrTabLink>{{'CONFIG.EMAIL' | translate }}</button>
|
||||||
<clr-tab-content id="email" *clrIfActive>
|
<clr-tab-content id="email" *clrIfActive>
|
||||||
<config-email [mailConfig]="allConfig"></config-email>
|
<config-email [mailConfig]="allConfig" (refreshAllconfig)="refreshAllconfig()"></config-email>
|
||||||
</clr-tab-content>
|
</clr-tab-content>
|
||||||
</clr-tab>
|
</clr-tab>
|
||||||
<clr-tab>
|
<clr-tab>
|
||||||
|
@ -80,7 +80,9 @@ export class ConfigurationComponent implements OnInit, OnDestroy {
|
|||||||
isCurrentTabContent(contentId: string): boolean {
|
isCurrentTabContent(contentId: string): boolean {
|
||||||
return TabLinkContentMap[this.currentTabId] === contentId;
|
return TabLinkContentMap[this.currentTabId] === contentId;
|
||||||
}
|
}
|
||||||
|
refreshAllconfig() {
|
||||||
|
this.retrieveConfig();
|
||||||
|
}
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
// First load
|
// First load
|
||||||
// Double confirm the current use has admin role
|
// Double confirm the current use has admin role
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
import { Component, Input, ViewChild, SimpleChanges, OnChanges } from '@angular/core';
|
import { Component, Input, ViewChild, SimpleChanges, OnChanges, Output, EventEmitter } from '@angular/core';
|
||||||
import { NgForm } from '@angular/forms';
|
import { NgForm } from '@angular/forms';
|
||||||
|
|
||||||
import { Configuration, clone, isEmpty, getChanges, StringValueItem} from '@harbor/ui';
|
import { Configuration, clone, isEmpty, getChanges, StringValueItem} from '@harbor/ui';
|
||||||
@ -27,6 +27,7 @@ const fakePass = 'aWpLOSYkIzJTTU4wMDkx';
|
|||||||
export class ConfigurationEmailComponent implements OnChanges {
|
export class ConfigurationEmailComponent implements OnChanges {
|
||||||
// tslint:disable-next-line:no-input-rename
|
// tslint:disable-next-line:no-input-rename
|
||||||
@Input("mailConfig") currentConfig: Configuration = new Configuration();
|
@Input("mailConfig") currentConfig: Configuration = new Configuration();
|
||||||
|
@Output() refreshAllconfig = new EventEmitter<any>();
|
||||||
private originalConfig: Configuration;
|
private originalConfig: Configuration;
|
||||||
testingMailOnGoing = false;
|
testingMailOnGoing = false;
|
||||||
onGoing = false;
|
onGoing = false;
|
||||||
@ -135,7 +136,8 @@ export class ConfigurationEmailComponent implements OnChanges {
|
|||||||
this.configService.saveConfiguration(changes)
|
this.configService.saveConfiguration(changes)
|
||||||
.subscribe(response => {
|
.subscribe(response => {
|
||||||
this.onGoing = false;
|
this.onGoing = false;
|
||||||
this.retrieveConfig();
|
// refresh allConfig
|
||||||
|
this.refreshAllconfig.emit();
|
||||||
this.msgHandler.showSuccess('CONFIG.SAVE_SUCCESS');
|
this.msgHandler.showSuccess('CONFIG.SAVE_SUCCESS');
|
||||||
}, error => {
|
}, error => {
|
||||||
this.onGoing = false;
|
this.onGoing = false;
|
||||||
@ -147,23 +149,6 @@ export class ConfigurationEmailComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
retrieveConfig(): void {
|
|
||||||
this.onGoing = true;
|
|
||||||
this.configService.getConfiguration()
|
|
||||||
.subscribe((configurations: Configuration) => {
|
|
||||||
this.onGoing = false;
|
|
||||||
|
|
||||||
// Add two password fields
|
|
||||||
configurations.email_password = new StringValueItem(fakePass, true);
|
|
||||||
this.currentConfig = configurations;
|
|
||||||
// Keep the original copy of the data
|
|
||||||
this.originalConfig = clone(configurations);
|
|
||||||
}, error => {
|
|
||||||
this.onGoing = false;
|
|
||||||
this.msgHandler.handleError(error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Discard current changes if have and reset
|
* Discard current changes if have and reset
|
||||||
|
Loading…
Reference in New Issue
Block a user