2019-11-05 15:59:06 +01:00
|
|
|
<aside id="sidebar_main">
|
2020-10-12 14:54:57 +02:00
|
|
|
<div id="sidebar_content">
|
2020-11-04 14:30:22 +01:00
|
|
|
<div class="menu_section uk-margin-top">
|
2020-10-29 17:36:19 +01:00
|
|
|
<div class="uk-text-center">
|
2020-10-31 17:02:30 +01:00
|
|
|
<a [routerLink]="'/admin/' + stakeholder.alias"
|
|
|
|
class="uk-link-heading uk-text-uppercase uk-flex uk-flex-middle uk-flex-center">
|
2020-11-02 15:46:19 +01:00
|
|
|
<icon name="close" ratio="2"></icon>
|
2020-10-31 17:02:30 +01:00
|
|
|
<span *ngIf="open" class="uk-margin-left">Indicators</span>
|
2020-10-29 17:36:19 +01:00
|
|
|
</a>
|
|
|
|
</div>
|
2020-10-31 17:02:30 +01:00
|
|
|
<div class="menu_section uk-margin-xlarge-top">
|
|
|
|
<ul class="uk-list">
|
|
|
|
<ng-template ngFor [ngForOf]="stakeholder.topics" let-topic let-i="index">
|
|
|
|
<li class="uk-visible-toggle"
|
|
|
|
[class.uk-active]="topicIndex == i">
|
|
|
|
<a [routerLink]="'/admin/'+stakeholder.alias + '/indicators/' + topic.alias"
|
2020-11-02 15:46:19 +01:00
|
|
|
class="uk-flex uk-flex-middle" [title]="topic.name">
|
2020-10-31 17:02:30 +01:00
|
|
|
<span *ngIf="topic.icon"></span>
|
|
|
|
<div class="uk-width-expand uk-position-relative uk-flex uk-flex-middle"
|
|
|
|
[class.uk-flex-center]="open">
|
2020-11-27 10:54:57 +01:00
|
|
|
<span class="uk-flex-none">
|
2020-10-29 17:36:19 +01:00
|
|
|
<ng-container *ngTemplateOutlet="visibilityOptions; context:
|
2020-10-31 17:02:30 +01:00
|
|
|
{i:i, type: 'topic', visibility: stakeholder.topics[i].visibility}">
|
|
|
|
</ng-container>
|
|
|
|
</span>
|
2020-11-27 10:54:57 +01:00
|
|
|
<span [class.uk-text-center]="open"
|
|
|
|
[class.uk-text-truncate]="!open" [class.uk-width-3-5]="!open">{{topic.name}}</span>
|
2020-10-31 17:02:30 +01:00
|
|
|
<span class="uk-invisible-hover color"
|
|
|
|
(click)="$event.stopPropagation();$event.preventDefault()">
|
2020-11-27 10:54:57 +01:00
|
|
|
<span class="uk-icon more" uk-icon="more-vertical"></span>
|
2020-10-31 17:02:30 +01:00
|
|
|
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false">
|
2020-10-29 17:36:19 +01:00
|
|
|
<ul class="uk-nav uk-dropdown-nav uk-list">
|
|
|
|
<li><a (click)="editTopicOpen(i); hide(element)">Edit</a></li>
|
|
|
|
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
|
2020-11-03 11:04:45 +01:00
|
|
|
<li *ngIf="topic.visibility != v.value"><a (click)="changeTopicStatus(i, v.value);
|
2020-10-31 17:02:30 +01:00
|
|
|
hide(element)">
|
2020-10-29 17:36:19 +01:00
|
|
|
{{'Make ' + v.label.toLowerCase()}}</a>
|
|
|
|
</li>
|
|
|
|
</ng-template>
|
|
|
|
<hr *ngIf="!topic.defaultId" class="uk-nav-divider">
|
|
|
|
<li *ngIf="!topic.defaultId"><a (click)="deleteTopicOpen(i, 'delete'); hide(element)">Delete</a>
|
|
|
|
<!-- <ng-container *ngIf="!stakeholder.defaultId">-->
|
|
|
|
<!-- <a (click)="deleteTopicOpen(i, 'delete'); hide(element)">Delete from all profiles</a>-->
|
|
|
|
<!-- <a (click)="deleteTopicOpen(i, 'disconnect'); hide(element)">Delete and disconnect from all profiles</a>-->
|
|
|
|
<!-- </ng-container>-->
|
2020-10-23 15:58:16 +02:00
|
|
|
</li>
|
2020-10-29 17:36:19 +01:00
|
|
|
</ul>
|
|
|
|
</div>
|
2020-10-31 17:02:30 +01:00
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</a>
|
2020-10-29 17:36:19 +01:00
|
|
|
</li>
|
2020-10-31 17:02:30 +01:00
|
|
|
</ng-template>
|
|
|
|
<li class="uk-margin-top" [class.uk-visible-toggle]="open">
|
|
|
|
<span (click)="editTopicOpen(-1); $event.preventDefault()"
|
|
|
|
class="clickable uk-flex uk-flex-middle uk-flex-center">
|
2020-12-01 16:43:43 +01:00
|
|
|
<span class="uk-icon-button small portal-icon-button">
|
2020-10-31 17:02:30 +01:00
|
|
|
<icon name="add"></icon>
|
|
|
|
</span>
|
|
|
|
<span class="uk-hidden-hover space" [class.uk-hidden]="!open"> Create new topic</span>
|
|
|
|
</span>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
2020-11-04 14:37:31 +01:00
|
|
|
<div *ngIf="stakeholder && stakeholder.topics.length > 0" class="uk-position-bottom uk-margin-bottom">
|
2020-11-04 12:16:47 +01:00
|
|
|
<div class="uk-flex uk-flex-center">
|
|
|
|
<!--<a class="portal-icon-button uk-icon-button icon-button-small uk-margin-right" uk-tooltip="Help">
|
|
|
|
<i uk-icon="icon:question;ratio:0.7" class="uk-icon"></i>
|
|
|
|
</a>-->
|
2020-11-04 14:30:22 +01:00
|
|
|
<a class="portal-icon-button uk-icon-button small" uk-tooltip="Preview">
|
2020-11-04 12:16:47 +01:00
|
|
|
<icon name="preview" [ratio]="0.7"></icon>
|
|
|
|
</a>
|
|
|
|
<div #element uk-dropdown="mode: click; pos: top-left; offset: 5; delay-hide: 0; flip: false"
|
|
|
|
class="uk-padding-remove-horizontal">
|
|
|
|
<ul class="uk-nav uk-dropdown-nav">
|
|
|
|
<li><a target="_blank" [routerLink]="'/' + stakeholder.alias + '/' + stakeholder.topics[topicIndex].alias"
|
|
|
|
[queryParams]="{view: 'public'}"
|
|
|
|
(click)="hide(element)">Public view</a>
|
|
|
|
</li>
|
|
|
|
<li><a target="_blank" [routerLink]="'/' + stakeholder.alias + '/' +
|
|
|
|
stakeholder.topics[topicIndex].alias"
|
|
|
|
[queryParams]="{view: 'restricted'}"
|
|
|
|
(click)="hide(element)">Restricted view</a>
|
|
|
|
</li>
|
|
|
|
<!--<li class="disabled"><a class="uk-disabled uk-text-muted"
|
|
|
|
uk-tooltip="Note: available only in administration dashboard"
|
|
|
|
(click)="hide(element)">Private view</a>
|
|
|
|
</li>-->
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2020-10-29 17:36:19 +01:00
|
|
|
</div>
|
2020-10-12 14:54:57 +02:00
|
|
|
</div>
|
|
|
|
<div *ngIf="!isSmallScreen" id="sidebar_switcher_toggle" class="clickable "
|
2020-10-29 17:36:19 +01:00
|
|
|
(click)="toggleOpen($event)">
|
|
|
|
<span class="uk-position-center" *ngIf="!open" uk-icon="icon:chevron-right; ratio: 1.5"></span>
|
|
|
|
<span class="uk-position-center" *ngIf="open" uk-icon="icon: chevron-left; ratio:1.5"></span>
|
2019-11-04 12:50:25 +01:00
|
|
|
</div>
|
|
|
|
</aside>
|
2020-11-02 15:46:19 +01:00
|
|
|
<div *ngIf="stakeholder && filters" page-content>
|
2020-11-01 16:41:56 +01:00
|
|
|
<div header>
|
2020-11-02 15:46:19 +01:00
|
|
|
<nav>
|
2020-11-04 14:30:22 +01:00
|
|
|
<div *ngIf="stakeholder.topics.length > 0 && stakeholder.topics[topicIndex]">
|
2020-11-02 15:46:19 +01:00
|
|
|
<ul *ngIf="stakeholder.topics[topicIndex]"
|
|
|
|
class="customTabs uk-tab ignore admin uk-flex uk-flex-middle" visibility="true">
|
2020-11-01 16:41:56 +01:00
|
|
|
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories" let-category let-i="index">
|
|
|
|
<li class="uk-visible-toggle uk-flex uk-flex-middle"
|
|
|
|
[class.uk-active]="category.alias === stakeholder.topics[topicIndex].categories[categoryIndex].alias">
|
2020-11-27 10:54:57 +01:00
|
|
|
<span class="uk-flex-none">
|
|
|
|
<ng-container *ngTemplateOutlet="visibilityOptions; context:
|
2020-10-31 17:02:30 +01:00
|
|
|
{i:i, type: 'cat',
|
|
|
|
visibility: stakeholder.topics[topicIndex].categories[i].visibility}">
|
2020-11-27 10:54:57 +01:00
|
|
|
</ng-container>
|
|
|
|
</span>
|
2020-11-01 16:41:56 +01:00
|
|
|
<a (click)="toggleCategory(i)">
|
|
|
|
<span class="title"> {{category.name}}</span>
|
|
|
|
</a>
|
|
|
|
<span class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()">
|
2020-10-31 17:02:30 +01:00
|
|
|
<span class="uk-icon clickable" uk-icon="more-vertical"></span>
|
|
|
|
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false">
|
2020-10-12 14:54:57 +02:00
|
|
|
<ul class="uk-nav uk-dropdown-nav">
|
|
|
|
<li><a (click)="editCategoryOpen(i); hide(element)">Edit</a></li>
|
2020-10-23 15:58:16 +02:00
|
|
|
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
|
2020-11-03 11:04:45 +01:00
|
|
|
<li *ngIf="category.visibility != v.value"><a (click)="changeCategoryStatus(i, v.value);
|
2020-10-23 15:58:16 +02:00
|
|
|
hide(element)">
|
2020-10-29 17:36:19 +01:00
|
|
|
{{'Make ' + v.label.toLowerCase()}}</a>
|
2020-10-23 15:58:16 +02:00
|
|
|
</li>
|
|
|
|
</ng-template>
|
2020-10-29 17:36:19 +01:00
|
|
|
<hr *ngIf="!stakeholder.topics[topicIndex].categories[i].defaultId" class="uk-nav-divider">
|
2020-10-12 14:54:57 +02:00
|
|
|
<li *ngIf="!stakeholder.topics[topicIndex].categories[i].defaultId"><a
|
2020-10-29 17:36:19 +01:00
|
|
|
(click)="deleteCategoryOpen(i, 'delete'); hide(element)">Delete</a>
|
2020-10-12 14:54:57 +02:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</span>
|
2020-11-01 16:41:56 +01:00
|
|
|
</li>
|
|
|
|
</ng-template>
|
|
|
|
<li class="uk-visible-toggle">
|
2020-10-31 17:02:30 +01:00
|
|
|
<span (click)="editCategoryOpen(); $event.preventDefault()" class="clickable">
|
|
|
|
<span class="uk-icon-button small portal-icon-button">
|
|
|
|
<icon name="add"></icon>
|
|
|
|
</span>
|
|
|
|
<span class="uk-hidden-hover space">Create new category</span>
|
2020-10-12 14:54:57 +02:00
|
|
|
</span>
|
2020-11-01 16:41:56 +01:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</nav>
|
2020-11-04 14:30:22 +01:00
|
|
|
<ul *ngIf="stakeholder.topics.length > 0 && stakeholder.topics[topicIndex].categories.length > 0 && stakeholder.topics[topicIndex].categories[categoryIndex]"
|
2020-11-02 15:46:19 +01:00
|
|
|
visibility="true" class="uk-subnav uk-subnav-pill subCategoriesTabs ignore admin uk-flex uk-flex-middle">
|
2020-11-01 16:41:56 +01:00
|
|
|
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[categoryIndex].subCategories"
|
|
|
|
let-subCategory let-i="index">
|
|
|
|
<li [class.uk-active]="(subCategory.alias ===
|
2020-10-29 17:36:19 +01:00
|
|
|
stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[subCategoryIndex].alias)"
|
2020-11-01 16:41:56 +01:00
|
|
|
class="uk-visible-toggle uk-position-relative uk-padding-remove-horizontal">
|
2020-10-31 17:02:30 +01:00
|
|
|
<span>
|
2020-11-27 10:54:57 +01:00
|
|
|
<span class="uk-flex-none">
|
|
|
|
<ng-container *ngTemplateOutlet="visibilityOptions; context:
|
|
|
|
{i:i, type: 'sub',
|
|
|
|
visibility: stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].visibility}">
|
|
|
|
</ng-container>
|
|
|
|
</span>
|
2020-10-31 17:02:30 +01:00
|
|
|
<a (click)="chooseSubcategory(categoryIndex, i);$event.preventDefault()"
|
|
|
|
class="space">
|
|
|
|
<span>{{subCategory.name}}</span>
|
|
|
|
</a>
|
|
|
|
<span class="uk-invisible-hover uk-position-center-right color"
|
|
|
|
(click)="$event.stopPropagation();$event.preventDefault()">
|
|
|
|
<span class="clickable" uk-icon="more-vertical"></span>
|
2020-11-01 16:41:56 +01:00
|
|
|
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 10; delay-hide: 0; flip: false">
|
2020-10-31 17:02:30 +01:00
|
|
|
<ul class="uk-nav uk-dropdown-nav">
|
|
|
|
<li><a (click)="editSubCategoryOpen(i); hide(element)">Edit</a></li>
|
|
|
|
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
|
2020-11-03 11:04:45 +01:00
|
|
|
<li *ngIf="subCategory.visibility != v.value"><a (click)="changeSubcategoryStatus(i, v.value);
|
2020-10-31 17:02:30 +01:00
|
|
|
hide(element)">
|
|
|
|
{{'Make ' + v.label.toLowerCase()}}</a>
|
|
|
|
</li>
|
|
|
|
</ng-template>
|
|
|
|
<hr *ngIf="!stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].defaultId"
|
|
|
|
class="uk-nav-divider">
|
|
|
|
<li *ngIf="!stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].defaultId"><a
|
|
|
|
(click)="deleteSubcategoryOpen(i, 'delete'); hide(element)">Delete</a>
|
2020-10-12 14:54:57 +02:00
|
|
|
|
2020-10-23 15:58:16 +02:00
|
|
|
</li>
|
2020-10-31 17:02:30 +01:00
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</span>
|
|
|
|
</span>
|
2020-11-01 16:41:56 +01:00
|
|
|
</li>
|
|
|
|
</ng-template>
|
|
|
|
<li class="uk-visible-toggle ignore">
|
2020-10-31 17:02:30 +01:00
|
|
|
<span (click)="editSubCategoryOpen(); $event.preventDefault()" class="clickable">
|
|
|
|
<span class="uk-icon-button small portal-icon-button">
|
|
|
|
<icon name="add"></icon>
|
|
|
|
</span>
|
|
|
|
<span class="uk-hidden-hover space">Create new subcategory</span>
|
|
|
|
</span>
|
2020-11-01 16:41:56 +01:00
|
|
|
</li>
|
|
|
|
</ul>
|
2020-11-02 15:46:19 +01:00
|
|
|
<!--<div class="uk-grid uk-margin-medium" uk-grid>
|
|
|
|
<div *ngIf="filters" class="uk-width-2-3@m uk-width-1-1 uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
|
|
|
|
<div>
|
|
|
|
<div dashboard-input [formInput]="filters.get('chartType')"
|
|
|
|
type="select" [options]="[all].concat(indicatorUtils.allChartTypes)"
|
|
|
|
label="Chart Type"></div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div dashboard-input [formInput]="filters.get('status')"
|
|
|
|
type="select" [options]="[all].concat(stakeholderUtils.visibility)"
|
|
|
|
label="Status"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="uk-width-expand@m uk-width-1-1 uk-flex uk-flex-middle uk-flex-right">
|
|
|
|
<div class="uk-inline uk-width-medium">
|
|
|
|
<span class="uk-position-center-right"><i uk-icon="search" class="uk-icon"></i></span>
|
|
|
|
<div dashboard-input [formInput]="filters.get('keyword')" label="Locate indicator"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>-->
|
2020-10-12 14:54:57 +02:00
|
|
|
</div>
|
2020-11-01 16:41:56 +01:00
|
|
|
<div inner>
|
|
|
|
<indicators [properties]="properties"
|
2020-10-12 14:54:57 +02:00
|
|
|
[topicIndex]="topicIndex"
|
|
|
|
[categoryIndex]="categoryIndex"
|
2020-11-02 15:46:19 +01:00
|
|
|
[filters]="filters"
|
2020-10-29 17:36:19 +01:00
|
|
|
[subcategoryIndex]="subCategoryIndex"></indicators>
|
2020-10-12 14:54:57 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2019-12-19 12:17:32 +01:00
|
|
|
<modal-alert #deleteModal (alertOutput)="deleteElement()">
|
|
|
|
You are about to delete <span class="uk-text-bold" *ngIf="element">"{{element.name}}"</span> {{type}} permanently.
|
2020-06-23 10:33:13 +02:00
|
|
|
<div *ngIf="elementChildrenActionOnDelete == 'delete'" class="uk-text-bold">
|
|
|
|
{{getPluralTypeName()}} of all profiles based on this default {{type}}, will be deleted as well.
|
|
|
|
</div>
|
2019-12-19 12:17:32 +01:00
|
|
|
Are you sure you want to proceed?
|
|
|
|
</modal-alert>
|
2020-10-23 15:58:16 +02:00
|
|
|
|
2020-10-29 17:36:19 +01:00
|
|
|
<modal-alert #editModal (alertOutput)="saveElement()" [okDisabled]="form && (form.invalid || form.pristine)">
|
|
|
|
<div *ngIf="form" class="uk-grid uk-padding uk-padding-remove-horizontal uk-child-width-1-1" [formGroup]="form"
|
|
|
|
uk-grid>
|
|
|
|
<div dashboard-input [formInput]="form.get('name')" label="Title"></div>
|
|
|
|
<div dashboard-input [formInput]="form.get('description')"
|
2019-12-19 12:17:32 +01:00
|
|
|
label="Description" type="textarea">
|
|
|
|
</div>
|
2020-10-29 17:36:19 +01:00
|
|
|
<div *ngIf="form.get('icon')" dashboard-input [formInput]="form.get('icon')"
|
2020-06-11 12:12:30 +02:00
|
|
|
label="Icon(SVG)" type="textarea">
|
|
|
|
</div>
|
2020-10-29 17:36:19 +01:00
|
|
|
<div dashboard-input [formInput]="form.get('visibility')"
|
|
|
|
label="Status" [options]="stakeholderUtils.visibility" type="select">
|
2019-12-19 12:17:32 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</modal-alert>
|
2019-11-12 16:55:37 +01:00
|
|
|
|
2020-10-23 15:58:16 +02:00
|
|
|
|
2020-10-29 17:36:19 +01:00
|
|
|
<ng-template #visibilityOptions let-type="type" let-i="i" let-visibility="visibility">
|
2020-11-27 10:54:57 +01:00
|
|
|
<span class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()">
|
|
|
|
<span class="clickable visibility small">
|
2020-10-31 17:02:30 +01:00
|
|
|
<icon [name]="stakeholderUtils.visibilityIcon.get(visibility)" [ratio]="0.5"></icon>
|
|
|
|
</span>
|
|
|
|
<div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false">
|
|
|
|
<ul class="uk-nav uk-dropdown-nav">
|
|
|
|
<li *ngFor="let v of stakeholderUtils.visibility">
|
|
|
|
<a *ngIf="visibility != v.value"
|
|
|
|
(click)="$event.stopPropagation();toggleStatusByIndex(i, v.value, type);hide(element);$event.preventDefault()">
|
|
|
|
<icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" ratio="0.8"></icon>
|
|
|
|
<span> {{v.label}}</span>
|
|
|
|
</a>
|
|
|
|
<a *ngIf="visibility == v.value" class="uk-position-relative">
|
|
|
|
<icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" [ratio]="0.8"></icon>
|
|
|
|
<span> {{v.label}}</span>
|
|
|
|
<span class="uk-position-center-right">
|
|
|
|
<icon customClass="uk-text-secondary" [ratio]="0.5" name="bullet"></icon>
|
|
|
|
</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</span>
|
2020-10-23 15:58:16 +02:00
|
|
|
</ng-template>
|