[Monitor Dashboard | Trunk]: Add notifications to all levels. Save safeResourceUrl to a map

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@58694 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2020-05-13 15:10:44 +00:00
parent a08453d950
commit 3bf624d4a2
6 changed files with 69 additions and 18 deletions

View File

@ -38,10 +38,10 @@
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editTopicOpen(i); hide(element)">Edit</a></li>
<li><a (click)="toggleTopicStatus(topic); hide(element)">
{{topic.isActive ? 'Deactivate' : 'Activate'}}</a>
{{topic.isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleTopicAccess(topic); hide(element)">
{{topic.isPublic?'Unpublish':'Publish'}}</a>
{{topic.isPublic?'Private':'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteTopicOpen(i); hide(element)">Delete</a></li>

View File

@ -206,7 +206,7 @@ export class StakeholderComponent implements OnInit, OnDestroy, IDeactivateCompo
];
this.stakeholderService.toggleStatus(this.properties.monitorServiceAPIURL, path).subscribe(isActive => {
topic.isActive = isActive;
UIkit.notification('Topic has been successfully ' + (isActive?'activated':'deactivated'), {
UIkit.notification('Topic has been successfully changed to ' + (isActive ? 'active' : 'inactive'), {
status: 'success',
timeout: 3000,
pos: 'top-left'

View File

@ -116,10 +116,10 @@
<ul class="uk-nav uk-dropdown-nav">
<!--<li><a (click)="editChartIndicatorOpen(indicator._id)">Edit</a></li>-->
<li><a (click)="toggleIndicatorStatus(number._id, indicator);hide(element)">
{{indicator.isActive ? 'Deactivate' : 'Activate'}}</a>
{{indicator.isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleIndicatorAccess(number._id, indicator);hide(element)">
{{indicator.isPublic ? 'Unpublish' : 'Publish'}}</a>
{{indicator.isPublic ? 'Private' : 'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteIndicatorOpen(number, indicator._id, 'number');hide(element)">Delete</a>
@ -218,10 +218,10 @@
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editChartIndicatorOpen(chart, indicator._id);hide(element)">Edit</a></li>
<li><a (click)="toggleIndicatorStatus(chart._id, indicator);hide(element)">
{{indicator.isActive ? 'Deactivate' : 'Activate'}}</a>
{{indicator.isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleIndicatorAccess(chart._id, indicator);hide(element)">
{{indicator.isPublic ? 'Unpublish' : 'Publish'}}</a>
{{indicator.isPublic ? 'Private' : 'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteIndicatorOpen(chart, indicator._id);hide(element)">Delete</a></li>
@ -259,8 +259,9 @@
</i>
<div>{{(indicator.isActive) ? 'Active' : 'Inactive'}}</div>
</div>
<iframe *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source !== 'image'"
[src]="indicator.indicatorPaths[0].safeResourceUrl"
<iframe *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source !== 'image' &&
safeUrls.get(indicatorUtils.getFullUrl(indicator.indicatorPaths[0]))"
[src]="safeUrls.get(indicatorUtils.getFullUrl(indicator.indicatorPaths[0]))"
class="uk-width-1-1 uk-height-medium"></iframe>
<div *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source === 'image'">
<img class="uk-width-1-1 uk-height-medium" [src]="indicator.indicatorPaths[i].url">

View File

@ -15,7 +15,7 @@ import {FormArray, FormBuilder, FormControl, FormGroup, Validators} from "@angul
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
import {StatisticsService} from "../utils/services/statistics.service";
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class";
import {DomSanitizer} from "@angular/platform-browser";
import {DomSanitizer, SafeResourceUrl} from "@angular/platform-browser";
import {StakeholderService} from "../services/stakeholder.service";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {Subscriber} from "rxjs";
@ -69,6 +69,9 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
* Toggles
*/
public grid: boolean = true;
/** Safe Urls*/
public safeUrls: Map<string, SafeResourceUrl> = new Map<string, SafeResourceUrl>([]);
private subscriptions: any[] = [];
private urlSubscriptions: any[] = [];
@ViewChild('editModal') editModal: AlertModal;
@ -224,7 +227,11 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.displayCharts.forEach(section => {
section.indicators.forEach(indicator => {
indicator.indicatorPaths.forEach(indicatorPath => {
indicatorPath.safeResourceUrl = this.getSecureUrlByStakeHolder(indicatorPath);
let url = this.indicatorUtils.getFullUrl(indicatorPath);
if (!this.safeUrls.get('url')) {
indicatorPath.safeResourceUrl = this.getSecureUrlByStakeHolder(indicatorPath);
this.safeUrls.set(url, indicatorPath.safeResourceUrl);
}
});
})
});
@ -475,8 +482,18 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
this.filterCharts();
this.indicatorFb = null;
UIkit.notification('Section has been successfully saved', {
status: 'success',
timeout: 3000,
pos: 'top-left'
});
}, error => {
this.indicatorFb = null;
UIkit.notification(error.error.message, {
status: 'danger',
timeout: 3000,
pos: 'top-left'
});
});
}
@ -549,6 +566,17 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.numbers.find(section => section._id === this.section._id).indicators.splice(this.index, 1);
this.filterNumbers();
}
UIkit.notification('Indicator has been successfully deleted', {
status: 'success',
timeout: 3000,
pos: 'top-left'
});
}, error => {
UIkit.notification(error.error.message, {
status: 'danger',
timeout: 3000,
pos: 'top-left'
});
});
}
@ -563,6 +591,17 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
];
this.stakeholderService.toggleStatus(this.properties.monitorServiceAPIURL, path).subscribe(isActive => {
indicator.isActive = isActive;
UIkit.notification('Indicator has been successfully changed to ' + (isActive?'active':'inactive'), {
status: 'success',
timeout: 3000,
pos: 'top-left'
});
}, error => {
UIkit.notification(error.error.message, {
status: 'danger',
timeout: 3000,
pos: 'top-left'
});
});
}
@ -577,6 +616,17 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
];
this.stakeholderService.toggleAccess(this.properties.monitorServiceAPIURL, path).subscribe(isPublic => {
indicator.isPublic = isPublic;
UIkit.notification('Indicator has been successfully changed to ' + (isPublic?'public':'private'), {
status: 'success',
timeout: 3000,
pos: 'top-left'
});
}, error => {
UIkit.notification(error.error.message, {
status: 'danger',
timeout: 3000,
pos: 'top-left'
});
});
}

View File

@ -21,10 +21,10 @@
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editTopicOpen(); hide(element)">Edit</a></li>
<li><a (click)="toggleTopicStatus(); hide(element)">
{{stakeholder.topics[topicIndex].isActive ? 'Deactivate' : 'Activate'}}</a>
{{stakeholder.topics[topicIndex].isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleTopicAccess(); hide(element)">
{{stakeholder.topics[topicIndex].isPublic?'Unpublish':'Publish'}}</a>
{{stakeholder.topics[topicIndex].isPublic?'Private':'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteTopicOpen(); hide(element)">Delete</a></li>
@ -52,10 +52,10 @@
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editCategoryOpen(i); hide(element)">Edit</a></li>
<li><a (click)="toggleCategoryStatus(i); hide(element)">
{{category.isActive ? 'Deactivate' : 'Activate'}}</a>
{{category.isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleCategoryAccess(i); hide(element)">
{{category.isPublic?'Unpublish':'Publish'}}</a>
{{category.isPublic?'Private':'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteCategoryOpen(i); hide(element)">Delete</a></li>
@ -81,10 +81,10 @@
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editSubCategoryOpen(j); hide(element)">Edit</a></li>
<li><a (click)="toggleSubcategoryStatus(j); hide(element)">
{{subcategory.isActive ? 'Deactivate' : 'Activate'}}</a>
{{subcategory.isActive ? 'Inactive' : 'Active'}}</a>
</li>
<li><a (click)="toggleSubcategoryAccess(j); hide(element)">
{{subcategory.isPublic?'Unpublish':'Publish'}}</a>
{{subcategory.isPublic?'Private':'Public'}}</a>
</li>
<hr class="uk-nav-divider">
<li><a (click)="deleteSubcategoryOpen(j); hide(element)">Delete</a></li>

View File

@ -486,7 +486,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
private toggleStatus(element: Topic | Category | SubCategory, path: string[]) {
this.stakeholderService.toggleStatus(this.properties.monitorServiceAPIURL, path).subscribe(isActive => {
element.isActive = isActive;
UIkit.notification(StringUtils.capitalize(this.type) + ' has been successfully ' + (isActive ? 'activated' : 'deactivated'), {
UIkit.notification(StringUtils.capitalize(this.type) + ' has been successfully changed to ' + (isActive ? 'active' : 'inactive'), {
status: 'success',
timeout: 3000,
pos: 'top-left'