Merge branch 'develop' of code-repo.d4science.org:MaDgIK/openaire-library into develop
This commit is contained in:
commit
e6d03d324f
|
@ -339,7 +339,6 @@
|
||||||
<div class="uk-width-1-1 uk-flex uk-flex-middle">
|
<div class="uk-width-1-1 uk-flex uk-flex-middle">
|
||||||
<div input class="uk-width-expand" [formInput]="indicatorPath.get('url')"
|
<div input class="uk-width-expand" [formInput]="indicatorPath.get('url')"
|
||||||
placeholder="Number URL">
|
placeholder="Number URL">
|
||||||
<div *ngIf="urlParameterizedMessage" warning>{{ urlParameterizedMessage }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class='uk-padding-small'>
|
<div class='uk-padding-small'>
|
||||||
<a class="uk-link-reset"
|
<a class="uk-link-reset"
|
||||||
|
@ -538,7 +537,6 @@
|
||||||
<div input class="uk-width-expand"
|
<div input class="uk-width-expand"
|
||||||
[title]="indicatorPath.get('url').disabled?'Default chart URLs cannot change':''"
|
[title]="indicatorPath.get('url').disabled?'Default chart URLs cannot change':''"
|
||||||
[formInput]="indicatorPath.get('url')" placeholder="Chart URL">
|
[formInput]="indicatorPath.get('url')" placeholder="Chart URL">
|
||||||
<div *ngIf="urlParameterizedMessage" warning>{{ urlParameterizedMessage }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class='uk-padding-small'>
|
<div class='uk-padding-small'>
|
||||||
<a class="uk-link-reset" (click)="copyToClipboard(indicatorPath.get('url').value)">
|
<a class="uk-link-reset" (click)="copyToClipboard(indicatorPath.get('url').value)">
|
||||||
|
|
|
@ -97,7 +97,6 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
public sectionTypeToDelete: string;
|
public sectionTypeToDelete: string;
|
||||||
public sectionChildrenActionOnDelete: string;
|
public sectionChildrenActionOnDelete: string;
|
||||||
public indicatorChildrenActionOnDelete: string;
|
public indicatorChildrenActionOnDelete: string;
|
||||||
public urlParameterizedMessage = null;
|
|
||||||
private notification: Notification;
|
private notification: Notification;
|
||||||
@ViewChild('editNumberNotify', {static: true}) editNumberNotify: NotifyFormComponent;
|
@ViewChild('editNumberNotify', {static: true}) editNumberNotify: NotifyFormComponent;
|
||||||
@ViewChild('editChartNotify', {static: true}) editChartNotify: NotifyFormComponent;
|
@ViewChild('editChartNotify', {static: true}) editChartNotify: NotifyFormComponent;
|
||||||
|
@ -536,8 +535,6 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
}
|
}
|
||||||
this.getJsonPath(index).setValue(paths)
|
this.getJsonPath(index).setValue(paths)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.urlParameterizedMessage = null;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -585,8 +582,6 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
indicatorPath.safeResourceUrl = this.indicator.indicatorPaths[index].safeResourceUrl;
|
indicatorPath.safeResourceUrl = this.indicator.indicatorPaths[index].safeResourceUrl;
|
||||||
this.indicator.indicatorPaths[index] = indicatorPath;
|
this.indicator.indicatorPaths[index] = indicatorPath;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.urlParameterizedMessage = null;
|
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -684,7 +679,21 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
}
|
}
|
||||||
|
|
||||||
public editNumberIndicatorOpen(section: Section, id = null) {
|
public editNumberIndicatorOpen(section: Section, id = null) {
|
||||||
this.urlParameterizedMessage = null;
|
this.editNumberModal.cancelButtonText = 'Cancel';
|
||||||
|
this.editNumberModal.okButtonLeft = false;
|
||||||
|
this.editNumberModal.alertMessage = false;
|
||||||
|
if (this.index === -1) {
|
||||||
|
this.editNumberModal.alertTitle = 'Create a new number indicator';
|
||||||
|
this.editNumberModal.okButtonText = 'Save';
|
||||||
|
this.notification = NotificationUtils.createIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
||||||
|
this.editNumberNotify.reset(this.notification.message);
|
||||||
|
} else {
|
||||||
|
this.editNumberModal.alertTitle = 'Edit number indicator\'s information';
|
||||||
|
this.editNumberModal.okButtonText = 'Save Changes';
|
||||||
|
this.notification = NotificationUtils.editIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
||||||
|
this.editNumberNotify.reset(this.notification.message);
|
||||||
|
}
|
||||||
|
this.editNumberModal.stayOpen = true;
|
||||||
this.section = section;
|
this.section = section;
|
||||||
this.index = (id) ? section.indicators.findIndex(value => value._id === id) : -1;
|
this.index = (id) ? section.indicators.findIndex(value => value._id === id) : -1;
|
||||||
if (this.index !== -1) {
|
if (this.index !== -1) {
|
||||||
|
@ -726,26 +735,26 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
this.numberIndicatorFb.get('description').disable();
|
this.numberIndicatorFb.get('description').disable();
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
this.editNumberModal.cancelButtonText = 'Cancel';
|
|
||||||
this.editNumberModal.okButtonLeft = false;
|
|
||||||
this.editNumberModal.alertMessage = false;
|
|
||||||
if (this.index === -1) {
|
|
||||||
this.editNumberModal.alertTitle = 'Create a new number indicator';
|
|
||||||
this.editNumberModal.okButtonText = 'Save';
|
|
||||||
this.notification = NotificationUtils.createIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
|
||||||
this.editNumberNotify.reset(this.notification.message);
|
|
||||||
} else {
|
|
||||||
this.editNumberModal.alertTitle = 'Edit number indicator\'s information';
|
|
||||||
this.editNumberModal.okButtonText = 'Save Changes';
|
|
||||||
this.notification = NotificationUtils.editIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
|
||||||
this.editNumberNotify.reset(this.notification.message);
|
|
||||||
}
|
|
||||||
this.editNumberModal.stayOpen = true;
|
|
||||||
this.editNumberModal.open();
|
this.editNumberModal.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
public editChartIndicatorOpen(section: Section, id = null) {
|
public editChartIndicatorOpen(section: Section, id = null) {
|
||||||
this.urlParameterizedMessage = null;
|
this.editChartModal.cancelButtonText = 'Cancel';
|
||||||
|
this.editChartModal.okButtonLeft = false;
|
||||||
|
this.editChartModal.alertMessage = false;
|
||||||
|
if (this.index === -1) {
|
||||||
|
this.editChartModal.alertTitle = 'Create a new chart indicator';
|
||||||
|
this.editChartModal.okButtonText = 'Save';
|
||||||
|
this.notification = NotificationUtils.createIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
||||||
|
this.editChartNotify.reset(this.notification.message);
|
||||||
|
} else {
|
||||||
|
this.editChartModal.alertTitle = 'Edit chart indicator\'s information';
|
||||||
|
this.editChartModal.okButtonText = 'Save Changes';
|
||||||
|
this.notification = NotificationUtils.editIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
||||||
|
;
|
||||||
|
this.editChartNotify.reset(this.notification.message);
|
||||||
|
}
|
||||||
|
this.editChartModal.stayOpen = true;
|
||||||
this.urlSubscriptions.forEach(value => {
|
this.urlSubscriptions.forEach(value => {
|
||||||
if (value instanceof Subscriber) {
|
if (value instanceof Subscriber) {
|
||||||
value.unsubscribe();
|
value.unsubscribe();
|
||||||
|
@ -792,22 +801,6 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
this.chartIndicatorFb.get('description').disable();
|
this.chartIndicatorFb.get('description').disable();
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
this.editChartModal.cancelButtonText = 'Cancel';
|
|
||||||
this.editChartModal.okButtonLeft = false;
|
|
||||||
this.editChartModal.alertMessage = false;
|
|
||||||
if (this.index === -1) {
|
|
||||||
this.editChartModal.alertTitle = 'Create a new chart indicator';
|
|
||||||
this.editChartModal.okButtonText = 'Save';
|
|
||||||
this.notification = NotificationUtils.createIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
|
||||||
this.editChartNotify.reset(this.notification.message);
|
|
||||||
} else {
|
|
||||||
this.editChartModal.alertTitle = 'Edit chart indicator\'s information';
|
|
||||||
this.editChartModal.okButtonText = 'Save Changes';
|
|
||||||
this.notification = NotificationUtils.editIndicator(this.user.firstname + ' ' + this.user.lastname, this.stakeholder.name);
|
|
||||||
;
|
|
||||||
this.editChartNotify.reset(this.notification.message);
|
|
||||||
}
|
|
||||||
this.editChartModal.stayOpen = true;
|
|
||||||
this.editChartModal.open();
|
this.editChartModal.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1293,6 +1286,11 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
if (chart['sectionIndex'] == null) {
|
if (chart['sectionIndex'] == null) {
|
||||||
chart['sectionIndex'] = chart['type'] == 'chart' ? chartsSection : 0;
|
chart['sectionIndex'] = chart['type'] == 'chart' ? chartsSection : 0;
|
||||||
}
|
}
|
||||||
|
if (chart.url && chart.jsonPath) {
|
||||||
|
chart.indicatorPaths = [{url: chart.url, jsonPath: chart.jsonPath}];
|
||||||
|
} else if(chart.url) {
|
||||||
|
chart.indicatorPaths = [{url: chart.url}];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return charts;
|
return charts;
|
||||||
}
|
}
|
||||||
|
@ -1320,16 +1318,18 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
sectionsToSave[chart['sectionIndex']] = sectionToSave;
|
sectionsToSave[chart['sectionIndex']] = sectionToSave;
|
||||||
}
|
}
|
||||||
let exists = false;
|
let exists = false;
|
||||||
let indicatorPath;
|
let indicatorPaths: IndicatorPath[] = [];
|
||||||
// validate indicators' schema from file
|
// validate indicators' schema from file
|
||||||
let invalid_file_message;
|
let invalid_file_message;
|
||||||
if (!chart.type) {
|
if (!chart.type) {
|
||||||
invalid_file_message = "No indicator type is specified. Type should be chart or number.";
|
invalid_file_message = "No indicator type is specified. Type should be chart or number.";
|
||||||
} else if (chart.type != "chart" && chart.type != "number") {
|
} else if (chart.type != "chart" && chart.type != "number") {
|
||||||
invalid_file_message = "Invalid indicator type. Type should be chart or number.";
|
invalid_file_message = "Invalid indicator type. Type should be chart or number.";
|
||||||
} else if (chart.type == "number" && !chart.jsonPath) {
|
} else if (chart.indicatorPaths.length === 0) {
|
||||||
|
invalid_file_message = "No indicator paths are specified."
|
||||||
|
} else if (chart.type == "number" && chart.indicatorPaths.filter(path => !path.jsonPath).length > 0) {
|
||||||
invalid_file_message = "No jsonPath is specified for number indicator."
|
invalid_file_message = "No jsonPath is specified for number indicator."
|
||||||
} else if (!chart.url) {
|
} else if (chart.indicatorPaths.filter(path => !path.url).length > 0) {
|
||||||
invalid_file_message = "No indicator url is specified.";
|
invalid_file_message = "No indicator url is specified.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1344,33 +1344,38 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chart.type == "chart") {
|
if (chart.type == "chart") {
|
||||||
indicatorPath = this.indicatorUtils.generateIndicatorByChartUrl(this.indicatorUtils.getChartSource(chart.url), chart.url, chart.type, stakeholder);
|
indicatorPaths = chart.indicatorPaths.map(path => this.indicatorUtils.generateIndicatorByChartUrl(this.indicatorUtils.getChartSource(path.url), path.url, chart.type, stakeholder));
|
||||||
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.index].charts.forEach((section: Section) => {
|
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.index].charts.forEach((section: Section) => {
|
||||||
section.indicators.forEach(indicator => {
|
section.indicators.forEach(indicator => {
|
||||||
indicator.indicatorPaths.forEach(path => {
|
indicator.indicatorPaths.forEach(path => {
|
||||||
if (JSON.stringify(path.chartObject) == JSON.stringify(indicatorPath.chartObject)) {
|
let size = indicatorPaths.length;
|
||||||
duplicates++;
|
indicatorPaths = indicatorPaths.filter(indicatorPath => JSON.stringify(path.chartObject) !== JSON.stringify(indicatorPath.chartObject))
|
||||||
|
if (indicatorPaths.length < size) {
|
||||||
|
duplicates = duplicates + (size - indicatorPaths.length);
|
||||||
exists = true;
|
exists = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else if (chart.type == "number") {
|
} else if (chart.type == "number") {
|
||||||
indicatorPath = this.indicatorUtils.generateIndicatorByNumberUrl(this.indicatorUtils.getNumberSource(chart.url), chart.url, stakeholder,
|
indicatorPaths = chart.indicatorPaths.map(path =>
|
||||||
chart.jsonPath, this.indicatorUtils.numberSources.get(this.indicatorUtils.getNumberSource(chart.url)));
|
this.indicatorUtils.generateIndicatorByNumberUrl(this.indicatorUtils.getNumberSource(path.url), path.url,
|
||||||
|
stakeholder, path.jsonPath, this.indicatorUtils.numberSources.get(this.indicatorUtils.getNumberSource(path.url))));
|
||||||
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.index].numbers.forEach((section: Section) => {
|
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.index].numbers.forEach((section: Section) => {
|
||||||
section.indicators.forEach(indicator => {
|
section.indicators.forEach(indicator => {
|
||||||
indicator.indicatorPaths.forEach(path => {
|
indicator.indicatorPaths.forEach(path => {
|
||||||
if (JSON.stringify(path.chartObject) == JSON.stringify(indicatorPath.chartObject)) {
|
let size = indicatorPaths.length;
|
||||||
duplicates++;
|
indicatorPaths = indicatorPaths.filter(indicatorPath => JSON.stringify(path.chartObject) !== JSON.stringify(indicatorPath.chartObject))
|
||||||
|
if (indicatorPaths.length < size) {
|
||||||
|
duplicates = duplicates + (size - indicatorPaths.length);
|
||||||
exists = true;
|
exists = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!exists) {
|
if (indicatorPaths.length > 0) {
|
||||||
let i: Indicator = new Indicator(chart.name, chart.description, chart.additionalDescription, chart.type, chart.width, chart.height, this.showVisibility?"RESTRICTED":this.stakeholderUtils.defaultValue(this.stakeholderUtils.visibilities), [indicatorPath]);
|
let i: Indicator = new Indicator(chart.name, chart.description, chart.additionalDescription, chart.type, chart.width, chart.height, this.showVisibility ? "RESTRICTED" : this.stakeholderUtils.defaultValue(this.stakeholderUtils.visibilities), indicatorPaths);
|
||||||
sectionsToSave[chart['sectionIndex']].indicators.push(i);
|
sectionsToSave[chart['sectionIndex']].indicators.push(i);
|
||||||
countIndicators++;
|
countIndicators++;
|
||||||
}
|
}
|
||||||
|
@ -1402,37 +1407,42 @@ export class IndicatorsComponent extends IndicatorStakeholderBaseComponent imple
|
||||||
let indexIndicator: number = 0;
|
let indexIndicator: number = 0;
|
||||||
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[subcategoryIndex].numbers.forEach(section => {
|
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[subcategoryIndex].numbers.forEach(section => {
|
||||||
section.indicators.forEach(indicator => {
|
section.indicators.forEach(indicator => {
|
||||||
indicator.indicatorPaths.forEach(indicatorPath => {
|
|
||||||
indicators[indexIndicator] = {
|
indicators[indexIndicator] = {
|
||||||
"type": indicator.type, "name": indicator.name, "jsonPath": indicatorPath.jsonPath,
|
"indicatorPaths": indicator.indicatorPaths.map(path => {
|
||||||
|
return {
|
||||||
|
jsonPath: path.jsonPath,
|
||||||
|
url: this.indicatorUtils.getNumberUrl(path.source, this.indicatorUtils.getFullUrl(this.stakeholder, path))
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"type": indicator.type, "name": indicator.name,
|
||||||
"description": indicator.description, "additionalDescription": indicator.additionalDescription,
|
"description": indicator.description, "additionalDescription": indicator.additionalDescription,
|
||||||
"visibility": indicator.visibility, "width": indicator.width, "height": indicator.height,
|
"visibility": indicator.visibility, "width": indicator.width, "height": indicator.height,
|
||||||
"url": this.indicatorUtils.getNumberUrl(indicatorPath.source, this.indicatorUtils.getFullUrl(this.stakeholder, indicatorPath)),
|
|
||||||
"sectionTitle": section.title,
|
"sectionTitle": section.title,
|
||||||
"sectionType": section.type,
|
"sectionType": section.type,
|
||||||
"sectionIndex": index
|
"sectionIndex": index
|
||||||
};
|
};
|
||||||
indexIndicator++;
|
indexIndicator++;
|
||||||
});
|
});
|
||||||
});
|
|
||||||
index++;
|
index++;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[subcategoryIndex].charts.forEach(section => {
|
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[subcategoryIndex].charts.forEach(section => {
|
||||||
section.indicators.forEach(indicator => {
|
section.indicators.forEach(indicator => {
|
||||||
indicator.indicatorPaths.forEach(indicatorPath => {
|
|
||||||
indicators[indexIndicator] = {
|
indicators[indexIndicator] = {
|
||||||
|
"indicatorPaths": indicator.indicatorPaths.map(path => {
|
||||||
|
return {
|
||||||
|
url: this.getUrlByStakeHolder(path)
|
||||||
|
}
|
||||||
|
}),
|
||||||
"type": indicator.type, "name": indicator.name,
|
"type": indicator.type, "name": indicator.name,
|
||||||
"description": indicator.description, "additionalDescription": indicator.additionalDescription,
|
"description": indicator.description, "additionalDescription": indicator.additionalDescription,
|
||||||
"visibility": indicator.visibility, "width": indicator.width, "height": indicator.height,
|
"visibility": indicator.visibility, "width": indicator.width, "height": indicator.height,
|
||||||
"url": this.getUrlByStakeHolder(indicatorPath),
|
|
||||||
"sectionTitle": section.title,
|
"sectionTitle": section.title,
|
||||||
"sectionType": section.type,
|
"sectionType": section.type,
|
||||||
"sectionIndex": index
|
"sectionIndex": index
|
||||||
};
|
};
|
||||||
indexIndicator++;
|
indexIndicator++;
|
||||||
});
|
});
|
||||||
});
|
|
||||||
index++;
|
index++;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue