Add warning if manadatory information is not filled in the existed services.
This commit is contained in:
parent
7c5e7ca2a9
commit
ce3b2789f8
|
@ -1,16 +1,12 @@
|
||||||
import {ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild} from "@angular/core";
|
import {ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild} from "@angular/core";
|
||||||
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
|
import {FormArray, FormBuilder, FormGroup, Validators} from "@angular/forms";
|
||||||
import {Subscription} from "rxjs";
|
import {Subscription} from "rxjs";
|
||||||
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
||||||
import {User} from "../openaireLibrary/login/utils/helper.class";
|
import {User} from "../openaireLibrary/login/utils/helper.class";
|
||||||
import {PersonalInfo, PersonalService} from "../services/personal.service";
|
|
||||||
import {NotificationHandler} from "../openaireLibrary/utils/notification-handler";
|
import {NotificationHandler} from "../openaireLibrary/utils/notification-handler";
|
||||||
import {API, ApisService} from "../services/apis.service";
|
import {API, ApisService} from "../services/apis.service";
|
||||||
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
|
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
|
||||||
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
||||||
import {properties} from "../../environments/environment";
|
|
||||||
import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
|
|
||||||
import {CommunityInfo} from "../openaireLibrary/connect/community/communityInfo";
|
|
||||||
import {UtilitiesService} from "../openaireLibrary/services/utilities.service";
|
import {UtilitiesService} from "../openaireLibrary/services/utilities.service";
|
||||||
|
|
||||||
declare var copy;
|
declare var copy;
|
||||||
|
@ -60,8 +56,12 @@ declare var copy;
|
||||||
(click)="openEditModal(i)"></icon>
|
(click)="openEditModal(i)"></icon>
|
||||||
<icon name="delete" class="clickable uk-margin-xsmall-left"
|
<icon name="delete" class="clickable uk-margin-xsmall-left"
|
||||||
customClass="uk-text-danger" (click)="openDeleteModal(i)"></icon>
|
customClass="uk-text-danger" (click)="openDeleteModal(i)"></icon>
|
||||||
<icon name="info" class="clickable uk-margin-xsmall-left"
|
<icon *ngIf="!api.invalid" name="info" class="clickable uk-margin-xsmall-left"
|
||||||
customClass="uk-text-secondary" (click)="openInfoModal(i)"></icon>
|
customClass="uk-text-secondary" (click)="openInfoModal(i)"></icon>
|
||||||
|
<icon *ngIf="api.invalid" name="warning" class="clickable uk-margin-xsmall-left"
|
||||||
|
customClass="uk-text-warning"
|
||||||
|
uk-tooltip="You have to fill missing information regarding your service in order to preview your details.
|
||||||
|
Click edit to fill the missing information"></icon>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -77,9 +77,20 @@ declare var copy;
|
||||||
[formInput]="form.get('name')"></div>
|
[formInput]="form.get('name')"></div>
|
||||||
<div class="uk-width-1-2@m uk-width-1-1" input type="logoURL" placeholder="Service URL"
|
<div class="uk-width-1-2@m uk-width-1-1" input type="logoURL" placeholder="Service URL"
|
||||||
[formInput]="form.get('url')"></div>
|
[formInput]="form.get('url')"></div>
|
||||||
<div class="uk-width-1-1" input type="logoURL" placeholder="Logo URL"
|
<div class="uk-width-1-2@m uk-width-1-1" input type="logoURL" placeholder="Logo URL"
|
||||||
[formInput]="form.get('logoURL')">
|
[formInput]="form.get('logoURL')">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="uk-width-1-2@m uk-width-1-1" input type="select" placeholder="Service Frequency of use"
|
||||||
|
[formInput]="form.get('frequency')" [options]="frequency">
|
||||||
|
</div>
|
||||||
|
<div class="uk-width-1-1" input type="textarea" placeholder="Service Description"
|
||||||
|
[formInput]="form.get('description')">
|
||||||
|
</div>
|
||||||
|
<div class="uk-width-1-1" input type="chips" placeholder="Target groups"
|
||||||
|
[addExtraChips]="true" [separators]="[',']"
|
||||||
|
[formInput]="target" [options]="groups" [hint]="'Add a target group of your service'">
|
||||||
|
<div note>Separate groups with commas</div>
|
||||||
|
</div>
|
||||||
<div class="uk-width-1-1">
|
<div class="uk-width-1-1">
|
||||||
<label class="uk-text-bold">Security Level</label>
|
<label class="uk-text-bold">Security Level</label>
|
||||||
<div id="security-hint" class="uk-margin">Register your service to get a client id and a client
|
<div id="security-hint" class="uk-margin">Register your service to get a client id and a client
|
||||||
|
@ -226,6 +237,8 @@ export class ApisComponent implements OnInit, OnDestroy {
|
||||||
advanced: boolean = false;
|
advanced: boolean = false;
|
||||||
byValue: boolean = true;
|
byValue: boolean = true;
|
||||||
hint = '{"kty": ..., "e": ... , "use": ... , "kid": ..., "alg": ... , "n": ...}';
|
hint = '{"kty": ..., "e": ... , "use": ... , "kid": ..., "alg": ... , "n": ...}';
|
||||||
|
frequency: string[] = ['Daily', 'Weekly', 'Monthly'];
|
||||||
|
groups: string[] = ['Commerce', 'Education', 'Health', 'Non profit', 'Public Sector'];
|
||||||
@ViewChild("editModal") editModal: AlertModal;
|
@ViewChild("editModal") editModal: AlertModal;
|
||||||
@ViewChild("deleteModal") deleteModal: AlertModal;
|
@ViewChild("deleteModal") deleteModal: AlertModal;
|
||||||
@ViewChild("infoModal") infoModal: AlertModal;
|
@ViewChild("infoModal") infoModal: AlertModal;
|
||||||
|
@ -260,6 +273,14 @@ export class ApisComponent implements OnInit, OnDestroy {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get target():FormArray {
|
||||||
|
if(this.form) {
|
||||||
|
return <FormArray>this.form.get('target');
|
||||||
|
} else {
|
||||||
|
return this.fb.array([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
openEditModal(index: number = -1) {
|
openEditModal(index: number = -1) {
|
||||||
let api = new API();
|
let api = new API();
|
||||||
this.index = index;
|
this.index = index;
|
||||||
|
@ -275,14 +296,26 @@ export class ApisComponent implements OnInit, OnDestroy {
|
||||||
this.form = this.fb.group({
|
this.form = this.fb.group({
|
||||||
name: this.fb.control(api.service.name, Validators.required),
|
name: this.fb.control(api.service.name, Validators.required),
|
||||||
keyType: this.fb.control(api.service.keyType),
|
keyType: this.fb.control(api.service.keyType),
|
||||||
|
description: this.fb.control(api.service.description),
|
||||||
|
frequency: this.fb.control(api.service.frequency, Validators.required),
|
||||||
|
target: this.fb.array([], Validators.required),
|
||||||
logoURL: this.fb.control(api.details.logoUri, [StringUtils.urlValidator()]),
|
logoURL: this.fb.control(api.details.logoUri, [StringUtils.urlValidator()]),
|
||||||
url: this.fb.control(api.service.url, [Validators.required, StringUtils.urlValidator()]),
|
url: this.fb.control(api.service.url, [Validators.required, StringUtils.urlValidator()]),
|
||||||
uri: this.fb.control(api.details.jwksUri, [StringUtils.urlValidator()]),
|
uri: this.fb.control(api.details.jwksUri, [StringUtils.urlValidator()]),
|
||||||
value: this.fb.control(null, [StringUtils.jsonValidator('The format should be {"kty": ..., "e": ... , "use": ... , "kid": ..., "alg": ... , "n": ...}')])
|
value: this.fb.control(null, [StringUtils.jsonValidator('The format should be {"kty": ..., "e": ... , "use": ... , "kid": ..., "alg": ... , "n": ...}')])
|
||||||
});
|
});
|
||||||
|
if(api.service.target) {
|
||||||
|
api.service.target.forEach(target => {
|
||||||
|
this.target.push(this.fb.control(target));
|
||||||
|
});
|
||||||
|
}
|
||||||
if(api.details?.jwks?.keys) {
|
if(api.details?.jwks?.keys) {
|
||||||
this.form.get('value').setValue(JSON.stringify(api.details.jwks.keys[0]));
|
this.form.get('value').setValue(JSON.stringify(api.details.jwks.keys[0]));
|
||||||
}
|
}
|
||||||
|
if(api.invalid) {
|
||||||
|
this.form.markAllAsTouched();
|
||||||
|
this.cdr.detectChanges();
|
||||||
|
}
|
||||||
this.advanced = !!this.form.get('keyType').getRawValue();
|
this.advanced = !!this.form.get('keyType').getRawValue();
|
||||||
this.byValue = this.advanced && this.form.get('keyType').getRawValue() === 'value';
|
this.byValue = this.advanced && this.form.get('keyType').getRawValue() === 'value';
|
||||||
this.formChanges();
|
this.formChanges();
|
||||||
|
@ -323,7 +356,7 @@ export class ApisComponent implements OnInit, OnDestroy {
|
||||||
} else {
|
} else {
|
||||||
this.subscriptions.push(this.apisService.save(this.apis[this.index].service.id, this.form.getRawValue()).subscribe(api => {
|
this.subscriptions.push(this.apisService.save(this.apis[this.index].service.id, this.form.getRawValue()).subscribe(api => {
|
||||||
this.apis[this.index] = api;
|
this.apis[this.index] = api;
|
||||||
NotificationHandler.rise('Your service has been created successfully.');
|
NotificationHandler.rise('Your service has been saved successfully.');
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}, error => {
|
}, error => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
|
|
@ -20,7 +20,7 @@ import {Header} from "./openaireLibrary/sharedComponents/navigationBar.component
|
||||||
[class.sidebar_mini]="!open && hasSidebar"
|
[class.sidebar_mini]="!open && hasSidebar"
|
||||||
[class.sidebar_hover]="hover">
|
[class.sidebar_hover]="hover">
|
||||||
<div id="modal-container"></div>
|
<div id="modal-container"></div>
|
||||||
<navbar *ngIf="hasHeader" portal="client-management" [header]="menuHeader"
|
<navbar *ngIf="hasHeader" portal="developers" [header]="menuHeader"
|
||||||
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user"></navbar>
|
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user"></navbar>
|
||||||
<div>
|
<div>
|
||||||
<dashboard-sidebar *ngIf="hasSidebar" [items]="sideBarItems" [backItem]="backItem"></dashboard-sidebar>
|
<dashboard-sidebar *ngIf="hasSidebar" [items]="sideBarItems" [backItem]="backItem"></dashboard-sidebar>
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 5645deec97d1bd3cb35cec792ac8dc963c0f4d8a
|
Subproject commit 55a045433077a4fb866345456694e6490654c89f
|
|
@ -27,7 +27,9 @@ import {NavigationEnd, Router} from "@angular/router";
|
||||||
[placeholder]="'Name'"></div>
|
[placeholder]="'Name'"></div>
|
||||||
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('surname')"
|
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('surname')"
|
||||||
[placeholder]="'Surname'"></div>
|
[placeholder]="'Surname'"></div>
|
||||||
<div class="uk-width-1-1" input [formInput]="form.get('email')" [placeholder]="'Email'"></div>
|
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('email')" [placeholder]="'Email'"></div>
|
||||||
|
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('affiliationType')"
|
||||||
|
[placeholder]="'Affiliation Type'" [type]="'select'" [options]="affiliationTypeOptions"></div>
|
||||||
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('affiliation')"
|
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('affiliation')"
|
||||||
[placeholder]="'Affiliation'"></div>
|
[placeholder]="'Affiliation'"></div>
|
||||||
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('position')"
|
<div class="uk-width-1-2@m uk-width-1-1" input [formInput]="form.get('position')"
|
||||||
|
@ -50,6 +52,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
|
||||||
subscriptions: any[] = [];
|
subscriptions: any[] = [];
|
||||||
user: User;
|
user: User;
|
||||||
info: PersonalInfo = null;
|
info: PersonalInfo = null;
|
||||||
|
affiliationTypeOptions: string[] = ['Organization', 'University', 'SME', 'Public Sector'];
|
||||||
message: boolean = false;
|
message: boolean = false;
|
||||||
|
|
||||||
constructor(private fb: FormBuilder,
|
constructor(private fb: FormBuilder,
|
||||||
|
@ -88,6 +91,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
|
||||||
surname: this.fb.control(this.info.surname, Validators.required),
|
surname: this.fb.control(this.info.surname, Validators.required),
|
||||||
email: this.fb.control({value: this.info.email, disabled: true}, Validators.required),
|
email: this.fb.control({value: this.info.email, disabled: true}, Validators.required),
|
||||||
affiliation: this.fb.control(this.info.affiliation, Validators.required),
|
affiliation: this.fb.control(this.info.affiliation, Validators.required),
|
||||||
|
affiliationType: this.fb.control(this.info.affiliationType, Validators.required),
|
||||||
position: this.fb.control(this.info.position, Validators.required),
|
position: this.fb.control(this.info.position, Validators.required),
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -96,6 +100,7 @@ export class PersonalInfoComponent implements OnInit, OnDestroy {
|
||||||
surname: this.fb.control(this.user.lastname, Validators.required),
|
surname: this.fb.control(this.user.lastname, Validators.required),
|
||||||
email: this.fb.control({value: this.user.email, disabled: true}, Validators.required),
|
email: this.fb.control({value: this.user.email, disabled: true}, Validators.required),
|
||||||
affiliation: this.fb.control('', Validators.required),
|
affiliation: this.fb.control('', Validators.required),
|
||||||
|
affiliationType: this.fb.control(null, Validators.required),
|
||||||
position: this.fb.control('', Validators.required),
|
position: this.fb.control('', Validators.required),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,10 @@ import {HttpClient} from "@angular/common/http";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
import {CustomOptions} from "../openaireLibrary/services/servicesUtils/customOptions.class";
|
import {CustomOptions} from "../openaireLibrary/services/servicesUtils/customOptions.class";
|
||||||
|
import {map} from "rxjs/operators";
|
||||||
|
|
||||||
|
export type Frequency = 'Daily' | 'Weekly' | 'Monthly';
|
||||||
|
export type Group = 'Commerce' | 'Education' | 'Health' |'Non profit' | 'Public Sector';
|
||||||
|
|
||||||
export class RegisteredService {
|
export class RegisteredService {
|
||||||
id: number;
|
id: number;
|
||||||
|
@ -13,6 +17,9 @@ export class RegisteredService {
|
||||||
owner: string;
|
owner: string;
|
||||||
registrationAccessToken: string;
|
registrationAccessToken: string;
|
||||||
url: string;
|
url: string;
|
||||||
|
description: string;
|
||||||
|
frequency: Frequency;
|
||||||
|
target: Group[] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Details {
|
export class Details {
|
||||||
|
@ -49,10 +56,12 @@ export class Details {
|
||||||
export class API {
|
export class API {
|
||||||
service: RegisteredService;
|
service: RegisteredService;
|
||||||
details: Details;
|
details: Details;
|
||||||
|
invalid: boolean = false;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.service = new RegisteredService();
|
this.service = new RegisteredService();
|
||||||
this.details = new Details();
|
this.details = new Details();
|
||||||
|
this.invalid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,22 +74,31 @@ export class ApisService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public getAll(): Observable<API[]> {
|
public getAll(): Observable<API[]> {
|
||||||
return this.http.get<API[]>(properties.developersApiUrl + "/apis/all", CustomOptions.registryOptions());
|
return this.http.get<API[]>(properties.developersApiUrl + "/apis/all", CustomOptions.registryOptions())
|
||||||
|
.pipe(map(apis => apis.map(api => this.setInvalid(api))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public getMyServices(): Observable<API[]> {
|
public getMyServices(): Observable<API[]> {
|
||||||
return this.http.get<API[]>(properties.developersApiUrl + "/apis/my-services", CustomOptions.registryOptions());
|
return this.http.get<API[]>(properties.developersApiUrl + "/apis/my-services", CustomOptions.registryOptions())
|
||||||
|
.pipe(map(apis => apis.map(api => this.setInvalid(api))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public create(form: any): Observable<API> {
|
public create(form: any): Observable<API> {
|
||||||
return this.http.post<API>(properties.developersApiUrl + "/apis/save/new", form, CustomOptions.registryOptions());
|
return this.http.post<API>(properties.developersApiUrl + "/apis/save/new", form, CustomOptions.registryOptions())
|
||||||
|
.pipe(map(api => this.setInvalid(api)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public save(id: number, form: any): Observable<API> {
|
public save(id: number, form: any): Observable<API> {
|
||||||
return this.http.post<API>(properties.developersApiUrl + "/apis/save/" + id, form, CustomOptions.registryOptions());
|
return this.http.post<API>(properties.developersApiUrl + "/apis/save/" + id, form, CustomOptions.registryOptions())
|
||||||
|
.pipe(map(api => this.setInvalid(api)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public delete(id: number): Observable<void> {
|
public delete(id: number): Observable<void> {
|
||||||
return this.http.delete<void>(properties.developersApiUrl + "/apis/delete/" + id, CustomOptions.registryOptions());
|
return this.http.delete<void>(properties.developersApiUrl + "/apis/delete/" + id, CustomOptions.registryOptions());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private setInvalid(api: API) {
|
||||||
|
api.invalid = !api.service.url || !api.service.frequency || !api.service.target || api.service.target.length == 0;
|
||||||
|
return api;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,15 @@ import {HttpClient} from "@angular/common/http";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
import {CustomOptions} from "../openaireLibrary/services/servicesUtils/customOptions.class";
|
import {CustomOptions} from "../openaireLibrary/services/servicesUtils/customOptions.class";
|
||||||
|
|
||||||
|
export type AffiliationType = 'Organization' | 'University' | 'SME' | 'Public Sector';
|
||||||
|
|
||||||
export interface PersonalInfo {
|
export interface PersonalInfo {
|
||||||
id: string;
|
id: string;
|
||||||
email: string;
|
email: string;
|
||||||
name: string;
|
name: string;
|
||||||
surname: string;
|
surname: string;
|
||||||
affiliation: string;
|
affiliation: string;
|
||||||
|
affiliationType: string;
|
||||||
position: string;
|
position: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@ export let properties: EnvProperties = {
|
||||||
environment: 'production',
|
environment: 'production',
|
||||||
dashboard: 'developers',
|
dashboard: 'developers',
|
||||||
useCache: false,
|
useCache: false,
|
||||||
loginUrl: "https://beta.services.openaire.eu/client-management/openid_connect_login",
|
loginUrl: "https://beta.services.openaire.eu/developers-api/openid_connect_login",
|
||||||
userInfoUrl: "https://beta.services.openaire.eu/client-management/userInfo",
|
userInfoUrl: "https://beta.services.openaire.eu/developers-api/userInfo",
|
||||||
developersApiUrl: "https://beta.services.openaire.eu/client-management",
|
developersApiUrl: "https://beta.services.openaire.eu/developers-api",
|
||||||
logoutUrl: "https://beta.services.openaire.eu/client-management/openid_logout",
|
logoutUrl: "https://beta.services.openaire.eu/developers-api/openid_logout",
|
||||||
cookieDomain: '.openaire.eu',
|
cookieDomain: '.openaire.eu',
|
||||||
errorLink: '/error',
|
errorLink: '/error',
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,10 +4,10 @@ export let properties: EnvProperties = {
|
||||||
environment: 'production',
|
environment: 'production',
|
||||||
dashboard: 'developers',
|
dashboard: 'developers',
|
||||||
useCache: false,
|
useCache: false,
|
||||||
loginUrl: "https://services.openaire.eu/client-management/openid_connect_login",
|
loginUrl: "https://services.openaire.eu/developers-api/openid_connect_login",
|
||||||
userInfoUrl: "https://services.openaire.eu/client-management/userInfo",
|
userInfoUrl: "https://services.openaire.eu/developers-api/userInfo",
|
||||||
developersApiUrl: "https://services.openaire.eu/client-management",
|
developersApiUrl: "https://services.openaire.eu/developers-api",
|
||||||
logoutUrl: "https://services.openaire.eu/client-management/openid_logout",
|
logoutUrl: "https://services.openaire.eu/developers-api/openid_logout",
|
||||||
cookieDomain: '.openaire.eu',
|
cookieDomain: '.openaire.eu',
|
||||||
errorLink: '/error',
|
errorLink: '/error',
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,10 +9,10 @@ export let properties: EnvProperties = {
|
||||||
environment: 'development',
|
environment: 'development',
|
||||||
dashboard: 'developers',
|
dashboard: 'developers',
|
||||||
useCache: false,
|
useCache: false,
|
||||||
loginUrl: "http://mpagasas.di.uoa.gr:19580/client-management/openid_connect_login",
|
loginUrl: "http://mpagasas.di.uoa.gr:19580/developers-api/openid_connect_login",
|
||||||
userInfoUrl: "http://mpagasas.di.uoa.gr:19580/client-management/userInfo",
|
userInfoUrl: "http://mpagasas.di.uoa.gr:19580/developers-api/userInfo",
|
||||||
developersApiUrl: "http://mpagasas.di.uoa.gr:19580/client-management",
|
developersApiUrl: "http://mpagasas.di.uoa.gr:19580/developers-api",
|
||||||
logoutUrl: "http://mpagasas.di.uoa.gr:19580/client-management/openid_logout",
|
logoutUrl: "http://mpagasas.di.uoa.gr:19580/developers-api/openid_logout",
|
||||||
cookieDomain: '.di.uoa.gr',
|
cookieDomain: '.di.uoa.gr',
|
||||||
errorLink: '/error',
|
errorLink: '/error',
|
||||||
domain: 'http://mpagasas.di.uoa.gr:5001',
|
domain: 'http://mpagasas.di.uoa.gr:5001',
|
||||||
|
|
Loading…
Reference in New Issue