diff --git a/src/app/topic/indicators.component.ts b/src/app/topic/indicators.component.ts
index 1a1d23c..5c8a3ac 100644
--- a/src/app/topic/indicators.component.ts
+++ b/src/app/topic/indicators.component.ts
@@ -1,5 +1,4 @@
import {AfterViewInit, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from "@angular/core";
-import {SideBarService} from "../library/sharedComponents/sidebar/sideBar.service";
import {Indicator, IndicatorPath, Stakeholder} from "../utils/entities/stakeholder";
import {IndicatorUtils, Option} from "../utils/indicator-utils";
import {FormArray, FormBuilder, FormControl, FormGroup, Validators} from "@angular/forms";
@@ -10,6 +9,7 @@ import {DomSanitizer} from "@angular/platform-browser";
import {StakeholderService} from "../services/stakeholder.service";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {Subscriber} from "rxjs";
+import {LayoutService} from "../library/sharedComponents/sidebar/layout.service";
declare var UIkit;
@@ -31,7 +31,6 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
public stakeholder: Stakeholder = null;
public indicatorUtils: IndicatorUtils = new IndicatorUtils();
public indicatorFb: FormGroup;
- public editIndicatorFb: FormGroup;
/**
* Editable indicator
*/
@@ -55,12 +54,10 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
*/
public grid: boolean = true;
private subscriptions: any[] = [];
-
- @ViewChild('createIndicatorModal') createIndicatorModal: AlertModal;
@ViewChild('editIndicatorModal') editIndicatorModal: AlertModal;
@ViewChild('deleteIndicatorModal') deleteIndicatorModal: AlertModal;
- constructor(private sideBarService: SideBarService,
+ constructor(private layoutService: LayoutService,
private stakeholderService: StakeholderService,
private statisticsService: StatisticsService,
private fb: FormBuilder,
@@ -108,9 +105,9 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
public toggleOpen(event = null) {
if (!event) {
- this.sideBarService.setOpen(!this.open);
+ this.layoutService.setOpen(!this.open);
} else if (event && event['value'] === true) {
- this.sideBarService.setOpen(false);
+ this.layoutService.setOpen(false);
}
}
@@ -226,7 +223,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
get open(): boolean {
- return this.sideBarService.open;
+ return this.layoutService.open;
}
get canNumbersReorder(): boolean {
@@ -249,7 +246,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
public get indicatorPaths(): FormArray {
- return this.editIndicatorFb.get('indicatorPaths') as FormArray;
+ return this.indicatorFb.get('indicatorPaths') as FormArray;
}
public getParameters(index: number): FormArray {
@@ -274,19 +271,24 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
public createIndicatorOpen() {
+ this.indicator = null;
this.indicatorFb = this.fb.group({
+ id: this.fb.control(null),
name: this.fb.control('', Validators.required),
description: this.fb.control(''),
- width: this.fb.control('small', Validators.required),
+ isPublic: this.fb.control(false),
+ isActive: this.fb.control(false),
urls: this.fb.array([]),
+ width: this.fb.control('small', Validators.required),
});
this.addUrl();
- this.createIndicatorModal.alertTitle = 'Create a new chart Indicator';
- this.createIndicatorModal.cancelButtonText = 'Cancel';
- this.createIndicatorModal.okButtonText = 'Create';
- this.createIndicatorModal.okButtonLeft = false;
- this.createIndicatorModal.alertMessage = false;
- this.createIndicatorModal.open();
+ this.editIndicatorModal.alertTitle = 'Create a new chart Indicator';
+ this.editIndicatorModal.cancelButtonText = 'Cancel';
+ this.editIndicatorModal.okButtonText = 'Create';
+ this.editIndicatorModal.okButtonLeft = false;
+ this.editIndicatorModal.alertMessage = false;
+ this.editIndicatorModal.stayOpen = true;
+ this.editIndicatorModal.open();
}
public createIndicator() {
@@ -295,8 +297,8 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.indicatorFb.value.description,
'chart',
this.indicatorFb.value.width,
- false,
- false,
+ this.indicatorFb.value.isActive,
+ this.indicatorFb.value.isPublic,
[]
);
this.indicatorFb.value.urls.forEach(url => {
@@ -335,7 +337,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
parameters: parameters
}));
});
- this.editIndicatorFb = this.fb.group({
+ this.indicatorFb = this.fb.group({
id: this.fb.control(this.indicator._id),
name: this.fb.control(this.indicator.name, Validators.required),
description: this.fb.control(this.indicator.description),
@@ -344,35 +346,45 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
indicatorPaths: indicatorPaths,
width: this.fb.control(this.indicator.width, Validators.required),
});
- this.editIndicatorModal.cancelButtonText = 'Cancel';
- this.editIndicatorModal.okButtonText = 'Save Changes';
- this.editIndicatorModal.okButtonLeft = false;
- this.editIndicatorModal.alertMessage = false;
- this.editIndicatorModal.open();
- setTimeout(() => {
- this.indicator.indicatorPaths.forEach(indicatorPath => {
- indicatorPath.safeResourceUrl = this.getUrlByStakeHolder(indicatorPath)
- });
- }, (index === -1)?500:0);
+ if(index === -1) {
+ this.editIndicatorModal.okButtonText = 'Save';
+ this.editIndicatorModal.stayOpen = false;
+ } else {
+ this.editIndicatorModal.cancelButtonText = 'Cancel';
+ this.editIndicatorModal.okButtonText = 'Save Changes';
+ this.editIndicatorModal.okButtonLeft = false;
+ this.editIndicatorModal.alertMessage = false;
+ this.editIndicatorModal.open();
+ }
+ this.indicator.indicatorPaths.forEach(indicatorPath => {
+ indicatorPath.safeResourceUrl = this.getUrlByStakeHolder(indicatorPath)
+ });
}
saveIndicator() {
- this.indicator = this.indicatorUtils.generateIndicatorByForm(this.editIndicatorFb.value, this.indicator.indicatorPaths);
- let path = [
- this.stakeholder._id,
- this.stakeholder.topics[this.topicIndex]._id,
- this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id,
- this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id
- ];
- this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.indicator, path).subscribe(indicator => {
- if (this.index !== -1) {
- this.charts[this.index] = indicator;
- } else {
- this.charts.push(indicator);
- }
- this.filterCharts();
- this.stakeholderService.setStakeholder(this.stakeholder);
- });
+ if(this.indicator) {
+ this.indicator = this.indicatorUtils.generateIndicatorByForm(this.indicatorFb.value, this.indicator.indicatorPaths);
+ let path = [
+ this.stakeholder._id,
+ this.stakeholder.topics[this.topicIndex]._id,
+ this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id,
+ this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id
+ ];
+ this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.indicator, path).subscribe(indicator => {
+ if (this.index !== -1) {
+ this.charts[this.index] = indicator;
+ } else {
+ this.charts.push(indicator);
+ }
+ this.filterCharts();
+ this.stakeholderService.setStakeholder(this.stakeholder);
+ this.indicatorFb = null;
+ }, error => {
+ this.indicatorFb = null;
+ });
+ } else {
+ this.createIndicator();
+ }
}
reorderIndicators(type: string, indicatorIds: string[]) {
@@ -395,7 +407,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
refreshIndicator(index: number) {
- this.indicator = this.indicatorUtils.generateIndicatorByForm(this.editIndicatorFb.value, this.indicator.indicatorPaths);
+ this.indicator = this.indicatorUtils.generateIndicatorByForm(this.indicatorFb.value, this.indicator.indicatorPaths);
this.indicator.indicatorPaths.forEach(indicatorPath => {
indicatorPath.safeResourceUrl = this.getUrlByStakeHolder(indicatorPath)
});
diff --git a/src/app/topic/topic.component.ts b/src/app/topic/topic.component.ts
index ea77ac3..c82e389 100644
--- a/src/app/topic/topic.component.ts
+++ b/src/app/topic/topic.component.ts
@@ -3,7 +3,6 @@ import {ActivatedRoute, Router} from '@angular/router';
import {Title} from '@angular/platform-browser';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import {Category, Stakeholder, SubCategory, Topic} from "../utils/entities/stakeholder";
-import {SideBarService} from "../library/sharedComponents/sidebar/sideBar.service";
import {StakeholderService} from "../services/stakeholder.service";
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class";
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
@@ -57,7 +56,6 @@ export class TopicComponent implements OnInit, OnDestroy {
private router: Router,
private title: Title,
private fb: FormBuilder,
- private sideBarService: SideBarService,
private stakeholderService: StakeholderService) {
}