[Monitor Dashboard]: Fix satinizer of iframe

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@57481 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2019-10-30 15:26:19 +00:00
parent b12200fd12
commit f5fce31d9f
3 changed files with 17 additions and 10 deletions

View File

@ -1,7 +1,7 @@
<!--disable_transitions --> <!--disable_transitions -->
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open"> <div class="sidebar_main_swipe" [class.sidebar_main_active]="open">
<div id="header_main"> <div id="header_main">
<nav class="uk-navbar"> <nav class="uk-light">
<a id="sidebar_main_toggle" (click)="toggleOpen()" class="sSwitch sSwitch_left"> <a id="sidebar_main_toggle" (click)="toggleOpen()" class="sSwitch sSwitch_left">
<span class="sSwitchIcon"></span> <span class="sSwitchIcon"></span>
</a> </a>
@ -17,8 +17,7 @@
</div> </div>
</nav> </nav>
</div> </div>
<dashboard-sidebar *ngIf="sideBar" [items]="sideBar.items" [name]="stakeholder.index_name" <dashboard-sidebar *ngIf="sideBar" [items]="sideBar.items" [name]="stakeholder.index_name"></dashboard-sidebar>
class="uk-width-1-5"></dashboard-sidebar>
<div *ngIf="activeSubCategory" <div *ngIf="activeSubCategory"
id="page_content" click-outside-or-esc targetId="page_content" (clickOutside)="toggleOpen($event)"> id="page_content" click-outside-or-esc targetId="page_content" (clickOutside)="toggleOpen($event)">
<div id="page_content_inner"> <div id="page_content_inner">
@ -34,7 +33,7 @@
<div class="md-card-content"> <div class="md-card-content">
<span class="uk-text-muted uk-text-small uk-margin-bottom">{{number.name}}</span> <span class="uk-text-muted uk-text-small uk-margin-bottom">{{number.name}}</span>
<h2 *ngIf="numberResults.get(i)" class="uk-margin-remove"> <h2 *ngIf="numberResults.get(i)" class="uk-margin-remove">
<span class="countUpMe">{{numberResults.get(i) | number}}</span> <span>{{numberResults.get(i) | number}}</span>
</h2> </h2>
</div> </div>
</div> </div>
@ -43,7 +42,7 @@
</div> </div>
<div class="uk-grid uk-grid-medium uk-margin-bottom" uk-height-match="target: div > div > h5"> <div class="uk-grid uk-grid-medium uk-margin-bottom" uk-height-match="target: div > div > h5">
<ng-template ngFor [ngForOf]="activeSubCategory.charts" let-chart let-i="index"> <ng-template ngFor [ngForOf]="activeSubCategory.charts" let-chart let-i="index">
<div *ngIf="chart.isActive && chart.isPublic" <div *ngIf="chart.isActive && chart.isPublic && chartsActiveType.get(i)"
[class.uk-width-1-3@m]="chart.width === 'small'" [class.uk-width-1-3@m]="chart.width === 'small'"
[class.uk-width-1-2@m]="chart.width === 'medium'" [class.uk-width-1-2@m]="chart.width === 'medium'"
[class.uk-width-1-1]="chart.width === 'large'"> [class.uk-width-1-1]="chart.width === 'large'">
@ -61,11 +60,11 @@
</button> </button>
</div> </div>
<iframe *ngIf="chartsActiveType.get(i).source !== 'fake'" <iframe *ngIf="chartsActiveType.get(i).source !== 'fake'"
[src]="getUrlByStakeHolder(chartsActiveType.get(i))" [src]="chartsActiveType.get(i).safeResourceUrl"
class="uk-width-1-1" height="300"></iframe> class="uk-width-1-1 uk-height-medium"></iframe>
<img *ngIf="chartsActiveType.get(i).source === 'fake'" <img *ngIf="chartsActiveType.get(i).source === 'fake'"
[src]="getUrlByStakeHolder(chartsActiveType.get(i))" [src]="chartsActiveType.get(i).safeResourceUrl"
class="uk-width-1-1"> class="uk-width-1-1 uk-height-medium">
</div> </div>
</div> </div>
</div> </div>

View File

@ -48,6 +48,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
private statisticsService: StatisticsService, private statisticsService: StatisticsService,
private sidebarOpenService: SidebarOpenService, private sidebarOpenService: SidebarOpenService,
private seoService: SEOService, private seoService: SEOService,
private cdr: ChangeDetectorRef,
private sanitizer: DomSanitizer) { private sanitizer: DomSanitizer) {
this.errorCodes = new ErrorCodes(); this.errorCodes = new ErrorCodes();
this.errorMessages = new ErrorMessagesComponent(); this.errorMessages = new ErrorMessagesComponent();
@ -202,9 +203,11 @@ export class MonitorComponent implements OnInit, OnDestroy {
}); });
this.activeSubCategory.charts.forEach((chart, index) => { this.activeSubCategory.charts.forEach((chart, index) => {
if (chart.indicatorPaths.length > 0) { if (chart.indicatorPaths.length > 0) {
chart.indicatorPaths[0].safeResourceUrl = this.getUrlByStakeHolder(chart.indicatorPaths[0]);
this.chartsActiveType.set(index, chart.indicatorPaths[0]); this.chartsActiveType.set(index, chart.indicatorPaths[0]);
} }
}); });
this.cdr.detectChanges();
} }
public getUrlByStakeHolder(indicatorPath: IndicatorPath) { public getUrlByStakeHolder(indicatorPath: IndicatorPath) {
@ -212,7 +215,9 @@ export class MonitorComponent implements OnInit, OnDestroy {
} }
public setActiveChart(index, type: string) { public setActiveChart(index, type: string) {
this.chartsActiveType.set(index, this.activeSubCategory.charts[index].indicatorPaths.filter(indicatorPath => indicatorPath.type === type)[0]); let activeChart = this.activeSubCategory.charts[index].indicatorPaths.filter(indicatorPath => indicatorPath.type === type)[0];
activeChart.safeResourceUrl = this.getUrlByStakeHolder(activeChart);
this.chartsActiveType.set(index, activeChart);
} }
private navigateToError() { private navigateToError() {

View File

@ -1,3 +1,5 @@
import {SafeResourceUrl} from "@angular/platform-browser";
export class Stakeholder { export class Stakeholder {
id: string; id: string;
type: string; type: string;
@ -336,6 +338,7 @@ export class IndicatorPath {
type: string; // for charts is type of chart {table, bar, column, etc} type: string; // for charts is type of chart {table, bar, column, etc}
source:string;// for numbers is the service {statistics, search, metrics} for charts is the tool {stats-tool,old,metrics, fake} source:string;// for numbers is the service {statistics, search, metrics} for charts is the tool {stats-tool,old,metrics, fake}
url: string; url: string;
safeResourceUrl: SafeResourceUrl; // initialize on front end
jsonPath:string[]; jsonPath:string[];
constructor(type: string, source:string, url: string, jsonPath:string[]){ constructor(type: string, source:string, url: string, jsonPath:string[]){
this.type = type; this.type = type;