[umbrella]: Fix hasDashboard guard. Add publisher condition in indicator generator.
This commit is contained in:
parent
179f0c4cd2
commit
e1cc4f87aa
|
@ -18,7 +18,7 @@ import {ManageStakeholdersComponent} from "./manageStakeholders.component";
|
|||
<div page-content>
|
||||
<div header class="uk-margin-bottom">
|
||||
<sidebar-mobile-toggle class="uk-margin-top uk-hidden@m uk-display-block"></sidebar-mobile-toggle>
|
||||
<div *ngIf="stakeholderCategories.length > 2" class="uk-margin-remove-bottom uk-margin-medium-top">
|
||||
<div *ngIf="stakeholderCategories.length > 1" class="uk-margin-remove-bottom uk-margin-medium-top">
|
||||
<slider-tabs [type]="'dynamic'" (activeEmitter)="active = $event">
|
||||
<slider-tab *ngFor="let category of stakeholderCategories" [tabTitle]="category.plural"
|
||||
[tabId]="category.value" [active]="active === category.value"></slider-tab>
|
||||
|
@ -98,6 +98,7 @@ export class ManageAllComponent extends StakeholderBaseComponent implements OnIn
|
|||
} else if(!this.isCurator()) {
|
||||
this.stakeholderCategories = this.stakeholderCategories.filter(category => category.value !== 'templates');
|
||||
}
|
||||
this.active = this.stakeholderCategories[0].value;
|
||||
}));
|
||||
let data = zip(
|
||||
this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL),
|
||||
|
|
|
@ -56,7 +56,7 @@ declare var UIkit;
|
|||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<li *ngIf="i > 0 || i < umbrella.types.length - 1" class="uk-nav-divider"></li>
|
||||
<li>
|
||||
<a (click)="deleteTypeOpen(i); hide(element)">
|
||||
<div class="uk-flex uk-flex-middle">
|
||||
|
|
|
@ -768,6 +768,7 @@ export class IndicatorUtils {
|
|||
this.extractOrganization(obj, stakeholder);
|
||||
this.extractDatasource(obj, stakeholder);
|
||||
this.extractResearcher(obj, stakeholder);
|
||||
this.extractPublisher(obj, stakeholder);
|
||||
}
|
||||
|
||||
private extractFunder(obj, stakeholder: Stakeholder) {
|
||||
|
@ -849,6 +850,33 @@ export class IndicatorUtils {
|
|||
}
|
||||
}
|
||||
|
||||
private extractPublisher(obj, stakeholder: Stakeholder) {
|
||||
// works for .publisher
|
||||
if (stakeholder.type != 'publisher') {
|
||||
return;
|
||||
}
|
||||
for (let query of this.getQueryObjectName(obj) ? obj[this.getDescriptionObjectName(obj)][this.getQueryObjectName(obj)] : obj[this.getDescriptionObjectName(obj)]) {
|
||||
if (query["query"]["profile"]) {
|
||||
query["query"]["profile"] = ChartHelper.prefix + this.statsProfileParameter + ChartHelper.suffix;
|
||||
}
|
||||
if (!query["query"]["filters"]) {
|
||||
return;
|
||||
}
|
||||
for (let filter of query["query"]["filters"]) {
|
||||
for (let gfilter of filter["groupFilters"]) {
|
||||
let replacedValue = this.replaceIndexValues(gfilter["values"][0], stakeholder);
|
||||
console.log(replacedValue)
|
||||
if (replacedValue) { // don't proceed in replacement if no replaced value matches
|
||||
if (gfilter["field"].indexOf(".publisher") != -1) {
|
||||
console.log(gfilter["values"][0])
|
||||
gfilter["values"][0] = replacedValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extractDatasource(obj, stakeholder: Stakeholder) {
|
||||
// works for .datasource.name and .HostedBy datasource
|
||||
// and .datasource.id
|
||||
|
|
|
@ -16,11 +16,7 @@ export class HasDashboardGuard {
|
|||
}
|
||||
|
||||
check(path: string, alias: string, type: string, child: string): Observable<boolean> | boolean {
|
||||
let get = this.stakeholderService.getStakeholder(alias);
|
||||
if(child) {
|
||||
get = this.stakeholderService.getChildStakeholder(alias, type, child);
|
||||
}
|
||||
return get.pipe(take(1), map(stakeholder => {
|
||||
return (child?this.stakeholderService.getChildStakeholder(alias, type, child):this.stakeholderService.getStakeholder(alias)).pipe(take(1), map(stakeholder => {
|
||||
return stakeholder.standalone || (!!stakeholder && !!child);
|
||||
}),tap(authorized => {
|
||||
if(!authorized){
|
||||
|
|
Loading…
Reference in New Issue