[Monitor Dashboard | Trunk]: Add default stakeholder list on create a new stakeholder
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@58703 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
b7460043de
commit
d4c6e9833c
|
@ -57,10 +57,10 @@
|
|||
<li><a (click)="$event.stopPropagation();editStakeholder(stakeholder, true);hide(element);$event.preventDefault()">Edit</a>
|
||||
</li>
|
||||
<li><a (click)="$event.stopPropagation();toggleStakeholderStatus(stakeholder);hide(element);$event.preventDefault()">
|
||||
{{stakeholder.isActive ? 'Deactivate' : 'Activate'}}</a>
|
||||
{{stakeholder.isActive ? 'Inactive' : 'Active'}}</a>
|
||||
</li>
|
||||
<li><a (click)="$event.stopPropagation();toggleStakeholderAccess(stakeholder);hide(element);$event.preventDefault()">
|
||||
{{stakeholder.isPublic ? 'Unpublish' : 'Publish'}}</a>
|
||||
{{stakeholder.isPublic ? 'Private' : 'Public'}}</a>
|
||||
</li>
|
||||
<hr class="uk-nav-divider">
|
||||
<li><a (click)="$event.stopPropagation();deleteStakeholderOpen(stakeholder);hide(element);$event.preventDefault()">Delete</a>
|
||||
|
@ -69,7 +69,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-card-toolbar-heading-text">{{stakeholder.index_name}}</div>
|
||||
<div class="md-card-toolbar-heading-text">{{stakeholder.name}}</div>
|
||||
</div>
|
||||
<div *ngIf="grid" class="md-card-content">
|
||||
<div class="uk-flex uk-flex-center" uk-grid>
|
||||
|
@ -101,7 +101,7 @@
|
|||
<div *ngIf="grid" class="md-card-content">
|
||||
<div uk-grid>
|
||||
<div class="uk-width-1-1">
|
||||
Create a new Stakeholder default profile base on type.
|
||||
Create a new Stakeholder default profile.
|
||||
</div>
|
||||
<div class="uk-width-1-1 uk-flex uk-flex-center">
|
||||
<i class="material-icons md-48">add</i>
|
||||
|
@ -155,7 +155,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-card-toolbar-heading-text">{{stakeholder.index_name}}</div>
|
||||
<div class="md-card-toolbar-heading-text">{{stakeholder.name}}</div>
|
||||
</div>
|
||||
<div *ngIf="grid" class="md-card-content">
|
||||
<div class="uk-flex uk-flex-center" uk-grid>
|
||||
|
@ -187,7 +187,7 @@
|
|||
<div *ngIf="grid" class="md-card-content">
|
||||
<div uk-grid>
|
||||
<div class="uk-width-1-1">
|
||||
Create a new Stakeholder by using a default profile base on his type.
|
||||
Create a new Stakeholder by selecting a default profile.
|
||||
</div>
|
||||
<div class="uk-width-1-1 uk-flex uk-flex-center">
|
||||
<i class="material-icons md-48">add</i>
|
||||
|
@ -203,16 +203,19 @@
|
|||
(alertOutput)="saveStakeholder()"
|
||||
[okDisabled]="stakeholderFb && (stakeholderFb.invalid || (stakeholderFb.pristine && index !==-1))">
|
||||
<div *ngIf="stakeholderFb" class="uk-padding-small" [formGroup]="stakeholderFb">
|
||||
<div dashboard-input class="uk-form-row" [formInput]="stakeholderFb.get('index_name')" label="Name"></div>
|
||||
<div class="uk-form-row uk-flex uk-flex-middle uk-child-width-1-2" uk-grid>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('name')" label="Name"></div>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('alias')" label="Alias"></div>
|
||||
</div>
|
||||
<div class="uk-form-row uk-flex uk-flex-middle uk-child-width-1-3" uk-grid>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('index_id')"
|
||||
label="ID">
|
||||
label="Index id">
|
||||
</div>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('index_name')"
|
||||
label="Index name">
|
||||
</div>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('index_shortName')"
|
||||
label="Short name">
|
||||
</div>
|
||||
<div dashboard-input [formInput]="stakeholderFb.get('alias')"
|
||||
label="Alias">
|
||||
label="Index short name">
|
||||
</div>
|
||||
</div>
|
||||
<div dashboard-input class="uk-form-row" [formInput]="stakeholderFb.get('logoUrl')" label="Logo Path/URL"></div>
|
||||
|
@ -227,6 +230,12 @@
|
|||
label="Type" [options]="stakeholderUtils.types" type="select">
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="!stakeholderFb.get('isDefault').value && index === -1 && stakeholderFb.get('type').valid">
|
||||
<div *ngIf="defaultStakeholdersOptions.length === 0" class="uk-text-danger">No default profiles has been found for this type.</div>
|
||||
<div *ngIf="defaultStakeholdersOptions.length > 0"
|
||||
dashboard-input class="uk-form-row" [formInput]="stakeholderFb.get('defaultId')"
|
||||
label="Profile" [options]="defaultStakeholdersOptions" type="select"></div>
|
||||
</div>
|
||||
</div>
|
||||
</modal-alert>
|
||||
<modal-alert #deleteStakeholderModal (alertOutput)="deleteStakeholder()"></modal-alert>
|
||||
|
|
|
@ -34,6 +34,8 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
|
|||
public displayDefaultStakeholders: Stakeholder[];
|
||||
public displayStakeholders: Stakeholder[];
|
||||
|
||||
public defaultStakeholdersOptions: Option[] = [];
|
||||
|
||||
/**
|
||||
* Top filters
|
||||
*/
|
||||
|
@ -126,6 +128,16 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
|
|||
this.displayStakeholders = this.filterByKeyword(this.stakeholders, value);
|
||||
}
|
||||
|
||||
onTypeChange(value) {
|
||||
this.defaultStakeholdersOptions = [];
|
||||
this.defaultStakeholders.filter(stakeholder => stakeholder.type === value).forEach(stakeholder => {
|
||||
this.defaultStakeholdersOptions.push({
|
||||
label: stakeholder.name,
|
||||
value: stakeholder._id
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private filterPrivacy(stakeholders: Stakeholder[], value): Stakeholder[] {
|
||||
if (value === 'all') {
|
||||
|
@ -169,10 +181,11 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
this.stakeholderFb = this.fb.group({
|
||||
_id: this.fb.control(this.stakeholder._id),
|
||||
defaultId: this.fb.control(this.stakeholder.defaultId),
|
||||
name: this.fb.control(this.stakeholder.name, Validators.required),
|
||||
index_name: this.fb.control(this.stakeholder.index_name, Validators.required),
|
||||
index_id: this.fb.control(this.stakeholder.index_id, Validators.required),
|
||||
index_shortName: this.fb.control(this.stakeholder.index_shortName, Validators.required),
|
||||
defaultId: this.fb.control((isDefault) ? null : 'id'),
|
||||
creationDate: this.fb.control(this.stakeholder.creationDate),
|
||||
alias: this.fb.control(this.stakeholder.alias,
|
||||
[
|
||||
|
@ -189,8 +202,14 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
|
|||
type: this.fb.control(this.stakeholder.type, Validators.required),
|
||||
topics: this.fb.control(this.stakeholder.topics),
|
||||
managers: this.fb.control(this.stakeholder.managers),
|
||||
logoUrl: this.fb.control(this.stakeholder.logoUrl)
|
||||
logoUrl: this.fb.control(this.stakeholder.logoUrl),
|
||||
});
|
||||
this.subscriptions.push(this.stakeholderFb.get('type').valueChanges.subscribe(value => {
|
||||
this.onTypeChange(value);
|
||||
}));
|
||||
if(!isDefault) {
|
||||
this.stakeholderFb.setControl('defaultId', this.fb.control(this.stakeholder.defaultId, Validators.required));
|
||||
}
|
||||
if (this.index !== -1) {
|
||||
if (this.stakeholderFb.value.type) {
|
||||
setTimeout(() => {
|
||||
|
@ -217,15 +236,12 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
|
|||
public saveStakeholder() {
|
||||
if (this.index === -1) {
|
||||
if (!this.stakeholderFb.value.isDefault) {
|
||||
let stakeholder = this.defaultStakeholders.find(value => value.type === this.stakeholderFb.value.type);
|
||||
this.stakeholderFb.get('defaultId').setValue(stakeholder._id);
|
||||
let stakeholder = this.defaultStakeholders.find(value => value._id === this.stakeholderFb.value.defaultId);
|
||||
this.stakeholderFb.setValue(this.stakeholderUtils.createFunderFromDefaultProfile(this.stakeholderFb.value,
|
||||
stakeholder.topics));
|
||||
/* this.stakeholderFb.setValue(this.stakeholderUtils.createFunderFromDefaultProfile(this.stakeholderFb.value,
|
||||
StakeholderCreator.createFunderDefaultProfile().topics));*/
|
||||
} else {
|
||||
} /*else {
|
||||
this.stakeholderFb.setValue(StakeholderCreator.createFunderDefaultProfile(this.stakeholderFb.value));
|
||||
}
|
||||
}*/
|
||||
this.stakeholderService.buildStakeholder(this.properties.monitorServiceAPIURL,
|
||||
this.stakeholderFb.value).subscribe(stakeholder => {
|
||||
if (stakeholder.defaultId === null) {
|
||||
|
|
|
@ -482,7 +482,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
|
|||
}
|
||||
this.filterCharts();
|
||||
this.indicatorFb = null;
|
||||
UIkit.notification('Section has been successfully saved', {
|
||||
UIkit.notification('Indicator has been successfully saved', {
|
||||
status: 'success',
|
||||
timeout: 3000,
|
||||
pos: 'top-left'
|
||||
|
|
|
@ -14,6 +14,7 @@ export type SourceType = 'statistics' | 'search' | 'metrics' | 'stats-tool' | 'o
|
|||
export class Stakeholder {
|
||||
_id: string;
|
||||
type: StakeholderType;
|
||||
name: string;
|
||||
index_id;
|
||||
index_name: string;
|
||||
index_shortName: string;
|
||||
|
|
|
@ -22,8 +22,6 @@ export class StakeholderCreator {
|
|||
impact.categories.push(this.createEmptyCategory("Economic Impact","Indicators based on patents and collaboration between industry and academia","economic-impact"));
|
||||
impact.categories.push(this.createEmptyCategory("Societal Impact","Indicators that correlate research results with SDGs","societal-impact"));
|
||||
funder.topics.push(impact);
|
||||
|
||||
console.log(funder);
|
||||
return funder;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue