[Monitor Dashboard]: 1. Change menus. 2. Fix visibility edit options. 3. add page_content_header on css

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@59729 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2020-10-31 16:02:30 +00:00
parent d83f8ca0b2
commit 0d59ccee27
13 changed files with 359 additions and 337 deletions

View File

@ -253,8 +253,8 @@ export class AppComponent implements OnInit, OnDestroy {
this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, "<i uk-icon=\"image\"></i>")); this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, "<i uk-icon=\"image\"></i>"));
this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, "<i uk-icon=\"users\"></i>")); this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, "<i uk-icon=\"users\"></i>"));
this.specialSideBarMenuItem = new MenuItem("back", "Manage profiles", "", "/admin", false, [], null, {}); this.specialSideBarMenuItem = new MenuItem("back", "Manage profiles", "", "/admin", false, [], null, {});
this.specialSideBarMenuItem.icon = '<span class="uk-icon-button uk-icon portal-button " >' + arrow_left.data + '</span>'; // '<span class="uk-icon-button uk-icon portal-button " uk-icon="chevron-left"></span>'; this.specialSideBarMenuItem.icon = '<span class="uk-icon-button small uk-icon uk-button-secondary">' + arrow_left.data + '</span>'; // '<span class="uk-icon-button uk-icon portal-button " uk-icon="chevron-left"></span>';
this.specialSideBarMenuItem.customClass = 'uk-text-uppercase uk-text-bold uk-text-secondary';
} }
this.userMenuItems = []; this.userMenuItems = [];
/* if (Session.isPortalAdministrator(this.user)) { /* if (Session.isPortalAdministrator(this.user)) {

View File

@ -81,8 +81,8 @@
</div> </div>
</div> </div>
</div> </div>
<div class="md-card-dropdown uk-inline clickable visibilityMenuIcon"> <div class="md-card-dropdown uk-inline clickable visibility">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get(stakeholder.visibility)" <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get(stakeholder.visibility)"
(click)="$event.stopPropagation();$event.preventDefault()"></i> (click)="$event.stopPropagation();$event.preventDefault()"></i>
<div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false"> <div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav"> <ul class="uk-nav uk-dropdown-nav">
@ -91,9 +91,9 @@
<a <a
*ngIf="stakeholder.visibility != v.value" *ngIf="stakeholder.visibility != v.value"
(click)="$event.stopPropagation();changeStakeholderStatus(stakeholder,v.value);hide(element);$event.preventDefault()"> (click)="$event.stopPropagation();changeStakeholderStatus(stakeholder,v.value);hide(element);$event.preventDefault()">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}}</a> <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}}</a>
<a *ngIf="stakeholder.visibility == v.value"> <a *ngIf="stakeholder.visibility == v.value">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}} <icon <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}} <icon
customClass="uk-text-secondary uk-float-right" [ratio]="0.5" customClass="uk-text-secondary uk-float-right" [ratio]="0.5"
name="bullet"></icon></a> name="bullet"></icon></a>
</li> </li>

View File

@ -1,16 +1,18 @@
<ng-template #selected_filters_pills let-margin="margin"> <ng-template #selected_filters_pills let-margin="margin">
<!-- <div class="uk-grid uk-grid-small uk-text-small" uk-grid>--> <!-- <div class="uk-grid uk-grid-small uk-text-small" uk-grid>-->
<span *ngIf="periodFilter.selectedFromAndToValues.length > 0" class="uk-grid-margin" > <span *ngIf="periodFilter.selectedFromAndToValues.length > 0" class="uk-grid-margin">
<a (click)="clearPeriodFilter()" [class]="((loading)?' uk-disabled':' ')+' uk-link-text '"> <span class="selectedFilterLabel" [class.uk-margin-small-left]="margin" title="Remove {{periodFilter.selectedFromAndToValues}}"> <a (click)="clearPeriodFilter()" [class]="((loading)?' uk-disabled':' ')+' uk-link-text '"> <span
class="selectedFilterLabel" [class.uk-margin-small-left]="margin"
title="Remove {{periodFilter.selectedFromAndToValues}}">
<i uk-icon="close"></i> <i uk-icon="close"></i>
<span class="uk-margin-small-left">{{periodFilter.selectedFromAndToValues}}</span> <span class="uk-margin-small-left">{{periodFilter.selectedFromAndToValues}}</span>
</span></a> </span></a>
</span> </span>
<ng-container *ngFor="let filter of filters "> <ng-container *ngFor="let filter of filters ">
<ng-container *ngIf="filter.countSelectedValues > 0"> <ng-container *ngIf="filter.countSelectedValues > 0">
<ng-container *ngFor="let value of filter.values; let i = index; let end = last; "> <ng-container *ngFor="let value of filter.values; let i = index; let end = last; ">
<ng-container *ngIf="value.selected"> <ng-container *ngIf="value.selected">
<span class="uk-grid-margin" > <span class="uk-grid-margin">
<!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span --> <!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span -->
<span class="selectedFilterLabel " [class.uk-margin-small-left]="margin" [title]="'Remove '+value.name" <span class="selectedFilterLabel " [class.uk-margin-small-left]="margin" [title]="'Remove '+value.name"
(click)="value.selected = false; filter.radioValue=''; filter.countSelectedValues= (click)="value.selected = false; filter.radioValue=''; filter.countSelectedValues=
@ -32,71 +34,65 @@
</a> </a>
</span> </span>
</span> </span>
</ng-container>
</ng-container> </ng-container>
</ng-container> </ng-container>
</ng-container> </ng-container>
<!-- </div>--> </ng-container>
<!-- </div>-->
</ng-template> </ng-template>
<div id="page_content" [class.greyOut]="filterToggle" (click)=" (filterToggle)?filterToggle = false:filterToggle"> <div id="page_content" [class.greyOut]="filterToggle" (click)=" (filterToggle)?filterToggle = false:filterToggle">
<div> <div *ngIf="activeTopic && activeTopic.categories.length > 1" id="page_content_header">
<div class="uk-navbar-container uk-navbar-transparent uk-sticky uk-sticky-fixed" style="top: 100px; position: <div class="uk-margin-large-left">
fixed; width: 100%"> <nav class=" ">
<div class="uk-margin-large-left"> <div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class="">
<nav class=" "> <ul
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class=""> class="customTabs uk-tab ">
<ul *ngIf="activeTopic && activeTopic.categories.length > 1" <ng-template ngFor [ngForOf]="activeTopic.categories" let-category let-i="index">
class="customTabs uk-tab "> <li *ngIf="isPublicOrIsMember(category.visibility)"
<ng-template ngFor [ngForOf]="activeTopic.categories" let-category let-i="index"> [class.uk-active]="category.alias ===
<li *ngIf="isPublicOrIsMember(category.visibility)"
[class.uk-active]="category.alias ===
activeCategory.alias"> activeCategory.alias">
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias, category.alias)" <a (click)="navigateTo(stakeholder.alias,activeTopic.alias, category.alias)"
class="uk-margin-remove-bottom uk-h4" class="uk-margin-remove-bottom uk-h4"
><span class="title">{{category.name}}</span></a> ><span class="title">{{category.name}}</span></a>
</li>
</ng-template>
</ul>
</div>
</nav>
<ul *ngIf="activeCategory && countSubCategoriesToShow(activeCategory) > 1"
class="uk-subnav uk-subnav-pill subCategoriesTabs ">
<ng-template ngFor [ngForOf]="activeCategory.subCategories" let-subCategory let-i="index">
<li *ngIf="isPublicOrIsMember(subCategory.visibility)"
[ngClass]="(subCategory.alias === activeSubCategory.alias)?'uk-active':''">
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias,activeCategory.alias, subCategory.alias)"
class="uk-margin-remove-bottom uk-h3"
><span>{{subCategory.name}}</span></a>
</li> </li>
</ng-template> </ng-template>
</ul> </ul>
<div *ngIf="countSelectedFilters() > 0" class="uk-grid uk-grid-small uk-margin-bottom">
<span class="uk-grid-margin">Filters: </span>
<ng-container *ngTemplateOutlet="selected_filters_pills; context: {margin:true}"></ng-container>
</div>
</div> </div>
</nav>
<ul *ngIf="activeCategory && countSubCategoriesToShow(activeCategory) > 1"
class="uk-subnav uk-subnav-pill subCategoriesTabs ">
<ng-template ngFor [ngForOf]="activeCategory.subCategories" let-subCategory let-i="index">
<li *ngIf="isPublicOrIsMember(subCategory.visibility)"
[ngClass]="(subCategory.alias === activeSubCategory.alias)?'uk-active':''">
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias,activeCategory.alias, subCategory.alias)"
class="uk-margin-remove-bottom uk-h3"
><span>{{subCategory.name}}</span></a>
</li>
</ng-template>
</ul>
<div *ngIf="countSelectedFilters() > 0" class="uk-grid uk-grid-small uk-margin-bottom">
<span class="uk-grid-margin">Filters: </span>
<ng-container *ngTemplateOutlet="selected_filters_pills; context: {margin:true}"></ng-container>
</div>
</div> </div>
<div id="page_content_inner" class="" [style.margin-top.px]="(24+ </div>
(activeCategory && <div id="page_content_inner" class="">
activeCategory.subCategories.length > 1?40:0)+(activeTopic && <div class=" indicators">
activeTopic.categories.length > 1?20:0)+(countSelectedFilters() <div *ngIf="privateStakeholder">
> 0?40:0))"> <div class="uk-text-center uk-height-medium">
<div class=" indicators"> <div class="uk-h3 "><i>
<div *ngIf="privateStakeholder"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px">
<div class="uk-text-center uk-height-medium"> <path d="M0 0h24v24H0z" fill="none"/>
<div class="uk-h3 "><i> <path
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"> d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/>
<path d="M0 0h24v24H0z" fill="none"/> </svg>
<path </i>
d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/> Private data
</svg>
</i>
Private data
</div>
<div class="uk-text-large "></div>
</div> </div>
<div class="uk-text-large "></div>
</div> </div>
<div *ngIf="!privateStakeholder"> </div>
<div *ngIf="!privateStakeholder">
<div <div
*ngIf="(activeSubCategory && (activeSubCategory.charts.length == 0 || *ngIf="(activeSubCategory && (activeSubCategory.charts.length == 0 ||
(activeSubCategory.charts.length == 1 && activeSubCategory.charts[0].indicators.length == 0))) (activeSubCategory.charts.length == 1 && activeSubCategory.charts[0].indicators.length == 0)))
@ -183,7 +179,8 @@
{{indicatorPath.type}} {{indicatorPath.type}}
</button> </button>
</div> </div>
<div *ngIf="properties.environment == 'development'">Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of <div *ngIf="properties.environment == 'development'">
Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of
{{countSelectedFilters()}}</div> {{countSelectedFilters()}}</div>
<iframe *ngIf="chartsActiveType.get(i + '-' + j).source !== 'image'" <iframe *ngIf="chartsActiveType.get(i + '-' + j).source !== 'image'"
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl" [src]="chartsActiveType.get(i + '-' + j).safeResourceUrl"
@ -201,24 +198,23 @@
</ng-template> </ng-template>
</div> </div>
</div> </div>
<div *ngIf="!loading && !privateStakeholder && activeSubCategory" <div *ngIf="!loading && !privateStakeholder && activeSubCategory"
class="uk-width-1-1 uk-text-center uk-text-muted"> class="uk-width-1-1 uk-text-center uk-text-muted">
<span>Send us your <a [href]="mailText" target="_self" (click)="mailMe()">feedback</a>.</span> <span>Send us your <a [href]="mailText" target="_self" (click)="mailMe()">feedback</a>.</span>
</div> </div>
</div> </div>
</div>
</div>
<div *ngIf="stakeholder" class="uk-margin-xlarge-top">
<bottom *ngIf="properties" [darkBackground]="false"
[centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
</div> </div>
</div> </div>
<div *ngIf="stakeholder" class="uk-margin-xlarge-top">
<bottom *ngIf="properties" [darkBackground]="false"
[centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
</div>
</div> </div>
<!--(click)="filterToggle= !filterToggle" <!--(click)="filterToggle= !filterToggle"
[style.display]="(filterToggle?'none':'inherit')"--> [style.display]="(filterToggle?'none':'inherit')"-->
<div *ngIf="stakeholder && !privateStakeholder" href="#style_switcher" uk-toggle="" id="filters_switcher_toggle" > <div *ngIf="stakeholder && !privateStakeholder" href="#style_switcher" uk-toggle="" id="filters_switcher_toggle">
<i class=" uk-text-muted"> <i class=" uk-text-muted">
<svg style="margin-top: 8px;" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" <svg style="margin-top: 8px;" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"
viewBox="0 0 20 20" viewBox="0 0 20 20"
@ -226,31 +222,34 @@
<g> <g>
<path d="M0,0h24 M24,24H0" fill="none"/> <path d="M0,0h24 M24,24H0" fill="none"/>
<path <path
d="M4.25,5.61C6.57,8.59,10,13,10,13v5c0,1.1,0.9,2,2,2h0c1.1,0,2-0.9,2-2v-5c0,0,3.43-4.41,5.75-7.39 C20.26,4.95,19.79,4,18.95,4H5.04C4.21,4,3.74,4.95,4.25,5.61z"/> d="M4.25,5.61C6.57,8.59,10,13,10,13v5c0,1.1,0.9,2,2,2h0c1.1,0,2-0.9,2-2v-5c0,0,3.43-4.41,5.75-7.39 C20.26,4.95,19.79,4,18.95,4H5.04C4.21,4,3.74,4.95,4.25,5.61z"/>
<path d="M0,0h24v24H0V0z" fill="none"/> <path d="M0,0h24v24H0V0z" fill="none"/>
</g> </g>
</svg> </svg>
</i> </i>
</div> </div>
<div *ngIf="stakeholder && !privateStakeholder" id="style_switcher" class=" uk-offcanvas filters_switcher" <div *ngIf="stakeholder && !privateStakeholder" id="style_switcher" class=" uk-offcanvas filters_switcher"
uk-offcanvas="flip:true" mode="slide" overlay="" style="z-index:982;" > uk-offcanvas="flip:true" mode="slide" overlay="" style="z-index:982;">
<div class="uk-offcanvas-bar offcanvas-white"> <div class="uk-offcanvas-bar offcanvas-white">
<div class="uk-float-right" > <div class="uk-float-right">
<button class="uk-offcanvas-close uk-close uk-icon" type="button" uk-close=""></button> <button class="uk-offcanvas-close uk-close uk-icon" type="button" uk-close=""></button>
</div> </div>
<div class="uk-padding"> <div class="uk-padding">
<div class="uk-grid uk-flex uk-flex-middle"><div class="uk-h4 ">Filters</div><a *ngIf="countSelectedFilters() > 1" <div class="uk-grid uk-flex uk-flex-middle">
class=" portal-link uk-width-1-2" (click)="clearAll()"> Clear All </a></div> <div class="uk-h4 ">Filters</div>
<a *ngIf="countSelectedFilters() > 1"
class=" portal-link uk-width-1-2" (click)="clearAll()"> Clear All </a></div>
<div class="uk-grid uk-grid-small uk-text-small" uk-grid> <div class="uk-grid uk-grid-small uk-text-small" uk-grid>
<ng-container *ngTemplateOutlet="selected_filters_pills; context: {margin:false}"></ng-container> <ng-container *ngTemplateOutlet="selected_filters_pills; context: {margin:false}"></ng-container>
</div> </div>
<div class="uk-margin-small-top"><i class="uk-text-muted uk-text-small"> If your filter selection cannot be applied to a chart, that chart will appear grayed-out.</i></div> <div class="uk-margin-small-top"><i class="uk-text-muted uk-text-small"> If your filter selection cannot be
applied to a chart, that chart will appear grayed-out.</i></div>
<ul class="uk-list uk-list-divider uk-margin-medium"> <ul class="uk-list uk-list-divider uk-margin-medium">
<li> <li>
<range-filter [filter]="periodFilter" yearMin="2000" yearMax="2020" [mandatoryRange]="true" <range-filter [filter]="periodFilter" yearMin="2000" yearMax="2020" [mandatoryRange]="true"
(onFilterChange)="filter()"></range-filter> (onFilterChange)="filter()"></range-filter>
</li> </li>
<ng-container *ngFor="let filter of filters "> <ng-container *ngFor="let filter of filters ">
<li *ngIf="filter.values.length >0"> <li *ngIf="filter.values.length >0">
@ -262,7 +261,7 @@
</div> </div>
</div> </div>
</div> </div>
<ng-template #description let-indicator="indicator"> <ng-template #description let-indicator="indicator">
<span class="descriptionIcon" <span class="descriptionIcon"

View File

@ -504,16 +504,16 @@
<!--</modal-alert>--> <!--</modal-alert>-->
<ng-template #visibilityOptions let-indicator="indicator" > <ng-template #visibilityOptions let-indicator="indicator" >
<span class="uk-invisible-hover uk-padding-remove" (click)="$event.stopPropagation();$event.preventDefault()"> <span class="uk-invisible-hover uk-padding-remove" (click)="$event.stopPropagation();$event.preventDefault()">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get(indicator.visibility)" class="clickable visibilityMenuIcon"></i> <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get(indicator.visibility)" class="clickable visibility"></i>
<div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false"> <div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav"> <ul class="uk-nav uk-dropdown-nav">
<li *ngFor="let v of stakeholderUtils.visibility" [class.selectedVisibility]="v.value == indicator.visibility"> <li *ngFor="let v of stakeholderUtils.visibility" [class.selectedVisibility]="v.value == indicator.visibility">
<a <a
*ngIf="indicator.visibility != v.value" *ngIf="indicator.visibility != v.value"
(click)="$event.stopPropagation();toggleIndicatorStatus(indicator._id, indicator,v.value);hide(element);$event.preventDefault()"> (click)="$event.stopPropagation();toggleIndicatorStatus(indicator._id, indicator,v.value);hide(element);$event.preventDefault()">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}}</a> <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}}</a>
<a *ngIf="indicator.visibility == v.value"> <a *ngIf="indicator.visibility == v.value">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}} <icon <i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}} <icon
customClass="uk-text-secondary uk-float-right" [ratio]="0.5" customClass="uk-text-secondary uk-float-right" [ratio]="0.5"
name="bullet"></icon></a> name="bullet"></icon></a>
</li> </li>

View File

@ -1,52 +1,38 @@
<aside id="sidebar_main"> <aside id="sidebar_main">
<div id="sidebar_content"> <div id="sidebar_content">
<!--<div *ngIf="stakeholder" class="sidebar_main_header uk-margin-remove-bottom uk-text-center">
<img *ngIf="properties.environment =='beta' || properties.environment =='development'" class="badge"
[src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')"
[alt]="properties.environment">
<div class="uk-position-relative uk-margin-small-top">
&lt;!&ndash; <div *ngIf="!stakeholder.defaultId" class="uk-badge default">Default</div>&ndash;&gt;
&lt;!&ndash; <img class="logo" *ngIf="stakeholder.logoUrl" [src]="stakeholder.logoUrl">&ndash;&gt;
&lt;!&ndash; <div class="uk-margin-top" *ngIf="!stakeholder.logoUrl" >{{stakeholder.name}}</div>&ndash;&gt;
<a [href]="properties.domain + properties.baseLink"><div class="portalLogo logo" ></div></a>
</div>
</div>-->
<div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class="menu_section uk-margin-top"> <div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class="menu_section uk-margin-top">
<div class="uk-text-center"> <div class="uk-text-center">
<a [routerLink]="'/admin/' + stakeholder.alias" class="uk-h5 uk-link-heading"> <a [routerLink]="'/admin/' + stakeholder.alias"
class="uk-link-heading uk-text-uppercase uk-flex uk-flex-middle uk-flex-center">
<span class="" uk-icon="icon:close;ratio:1.8"></span> <span class="" uk-icon="icon:close;ratio:1.8"></span>
<span class="uk-margin-left">Indicators</span> <span *ngIf="open" class="uk-margin-left">Indicators</span>
</a> </a>
</div> </div>
<ul class="uk-list"> <div class="menu_section uk-margin-xlarge-top">
<li class="submenu_trigger"> <ul class="uk-list">
<li class="submenu_trigger"> <ng-template ngFor [ngForOf]="stakeholder.topics" let-topic let-i="index">
<ul class="uk-nav-default"> <li class="uk-visible-toggle"
<ng-template ngFor [ngForOf]="stakeholder.topics" let-topic let-i="index"> [class.uk-active]="topicIndex == i">
<li <a [routerLink]="'/admin/'+stakeholder.alias + '/indicators/' + topic.alias"
[title]="topic.name+': '+(topic.isActive?'Active':'Inactive')+', '+(topic.isPublic?'Public':'Private')" class="uk-flex uk-flex-middle">
class="uk-margin-top uk-margin-small-right uk-visible-toggle" <span *ngIf="topic.icon"></span>
[class.uk-active]="topicIndex == i" <div class="uk-width-expand uk-position-relative uk-flex uk-flex-middle"
[class.uk-text-bold]="topicIndex == i"> [class.uk-flex-center]="open">
<a [routerLink]="'/admin/'+stakeholder.alias + '/indicators/' + topic.alias" class="uk-flex"> <span>
<span *ngIf="topic.icon" class="menu_icon">
<!-- <span [innerHTML]="satinizeHTML(topic.icon)"></span>-->
</span>
<div class="menu_title uk-width-expand uk-text-center">
<ng-container *ngTemplateOutlet="visibilityOptions; context: <ng-container *ngTemplateOutlet="visibilityOptions; context:
{i:i, type: 'topic', {i:i, type: 'topic', visibility: stakeholder.topics[i].visibility}">
visibility: stakeholder.topics[i].visibility}"></ng-container> </ng-container>
{{topic.name}} </span>
</div> <span class="uk-text-truncate" [class.uk-width-3-5]="!open">{{topic.name}}</span>
<div class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()"> <span class="uk-invisible-hover color"
<i class=" onHover" uk-icon="more-vertical"></i> (click)="$event.stopPropagation();$event.preventDefault()">
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false" <span class="uk-icon uk-position-center-right" uk-icon="more-vertical"></span>
class="uk-padding-remove-horizontal"> <div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav uk-list"> <ul class="uk-nav uk-dropdown-nav uk-list">
<li><a (click)="editTopicOpen(i); hide(element)">Edit</a></li> <li><a (click)="editTopicOpen(i); hide(element)">Edit</a></li>
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v> <ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
<li *ngIf="topic.visibility != v.value"><a (click)="toggleTopicStatus(i, v.value); <li *ngIf="topic.visibility != v.value"><a (click)="toggleTopicStatus(i, v.value);
hide(element)"> hide(element)">
{{'Make ' + v.label.toLowerCase()}}</a> {{'Make ' + v.label.toLowerCase()}}</a>
</li> </li>
</ng-template> </ng-template>
@ -59,22 +45,22 @@
</li> </li>
</ul> </ul>
</div> </div>
</div> </span>
</a> </div>
</li> </a>
</ng-template>
<li class="uk-text-center uk-margin-top uk-visible-toggle">
<span (click)="editTopicOpen(-1); $event.preventDefault()">
<!-- <span class="menu_icon"><i class="material-icons">add</i></span>-->
<span
class="menu_icon uk-icon-button portal-icon-button icon-button-small"><i
uk-icon="icon:plus; ratio:0.7"></i></span>
<span class="uk-hidden-hover"> Create new topic</span>
</span>
</li> </li>
</ul> </ng-template>
</li> <li class="uk-margin-top" [class.uk-visible-toggle]="open">
</ul> <span (click)="editTopicOpen(-1); $event.preventDefault()"
class="clickable uk-flex uk-flex-middle uk-flex-center">
<span class="uk-icon-button small portal-icon-button" [class.uk-margin-left]="open">
<icon name="add"></icon>
</span>
<span class="uk-hidden-hover space" [class.uk-hidden]="!open"> Create new topic</span>
</span>
</li>
</ul>
</div>
</div> </div>
</div> </div>
<div *ngIf="!isSmallScreen" id="sidebar_switcher_toggle" class="clickable " <div *ngIf="!isSmallScreen" id="sidebar_switcher_toggle" class="clickable "
@ -84,29 +70,25 @@
</div> </div>
</aside> </aside>
<div id="page_content"> <div id="page_content">
<div *ngIf="stakeholder" <div *ngIf="stakeholder" id="page_content_header">
class="uk-navbar-container uk-sticky uk-sticky-fixed"
style="top: 100px; position: fixed; width: 100%">
<div class="uk-margin-large-left"> <div class="uk-margin-large-left">
<nav class=" "> <nav class=" ">
<div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class=""> <div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class="">
<ul *ngIf="stakeholder.topics[topicIndex] && stakeholder.topics[topicIndex].categories.length > 0" <ul *ngIf="stakeholder.topics[topicIndex] && stakeholder.topics[topicIndex].categories.length > 0"
class="customTabs uk-tab admin uk-flex uk-flex-middle"> class="customTabs uk-tab ignore admin uk-flex uk-flex-middle">
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories" let-category let-i="index"> <ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories" let-category let-i="index">
<li class="uk-visible-toggle" <li class="uk-visible-toggle uk-flex uk-flex-middle"
[class.uk-active]="category.alias === stakeholder.topics[topicIndex].categories[categoryIndex].alias"> [class.uk-active]="category.alias === stakeholder.topics[topicIndex].categories[categoryIndex].alias">
<a (click)="toggleCategory(i)" <ng-container *ngTemplateOutlet="visibilityOptions; context:
class="uk-margin-remove-bottom uk-h4" {i:i, type: 'cat',
> visibility: stakeholder.topics[topicIndex].categories[i].visibility}">
<ng-container *ngTemplateOutlet="visibilityOptions; context: </ng-container>
{i:i, type: 'cat', <a (click)="toggleCategory(i)">
visibility: stakeholder.topics[topicIndex].categories[i].visibility}"></ng-container>
<span class="title"> {{category.name}}</span> <span class="title"> {{category.name}}</span>
<span class="uk-invisible-hover" </a>
(click)="$event.stopPropagation();$event.preventDefault()"> <span class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()">
<i class=" onHover" uk-icon="more-vertical"></i> <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" <div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false">
class="uk-padding-remove-horizontal">
<ul class="uk-nav uk-dropdown-nav"> <ul class="uk-nav uk-dropdown-nav">
<li><a (click)="editCategoryOpen(i); hide(element)">Edit</a></li> <li><a (click)="editCategoryOpen(i); hide(element)">Edit</a></li>
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v> <ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
@ -122,14 +104,14 @@
</ul> </ul>
</div> </div>
</span> </span>
</a>
</li> </li>
</ng-template> </ng-template>
<li> <li class="uk-visible-toggle">
<span href="#" (click)="editCategoryOpen();$event.preventDefault()" class="uk-visible-toggle clickable"> <span (click)="editCategoryOpen(); $event.preventDefault()" class="clickable">
<span class="menu_icon uk-icon-button portal-icon-button icon-button-small"><i <span class="uk-icon-button small portal-icon-button">
uk-icon="icon:plus; ratio:0.7"></i></span> <icon name="add"></icon>
<span class="uk-hidden-hover uk-te"> Create new category</span> </span>
<span class="uk-hidden-hover space">Create new category</span>
</span> </span>
</li> </li>
</ul> </ul>
@ -137,58 +119,57 @@
</nav> </nav>
<ul *ngIf=" stakeholder.topics[topicIndex].categories[categoryIndex] && <ul *ngIf=" stakeholder.topics[topicIndex].categories[categoryIndex] &&
stakeholder.topics[topicIndex].categories[categoryIndex].subCategories.length > 0" stakeholder.topics[topicIndex].categories[categoryIndex].subCategories.length > 0"
class="uk-subnav uk-subnav-pill subCategoriesTabs admin"> class="uk-subnav uk-subnav-pill subCategoriesTabs ignore admin uk-flex uk-flex-middle">
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[categoryIndex].subCategories" <ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[categoryIndex].subCategories"
let-subCategory let-i="index"> let-subCategory let-i="index">
<li <li [class.uk-active]="(subCategory.alias ===
[class.uk-active]="(subCategory.alias ===
stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[subCategoryIndex].alias)" stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[subCategoryIndex].alias)"
class=" uk-visible-toggle uk-flex uk-flex-middle"> class="uk-visible-toggle uk-position-relative uk-padding-remove-horizontal">
<ng-container *ngTemplateOutlet="visibilityOptions; context: <span>
{i:i, type: 'sub', <ng-container *ngTemplateOutlet="visibilityOptions; context:
visibility: stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].visibility}"></ng-container> {i:i, type: 'sub',
<a (click)="chooseSubcategory(categoryIndex, i);$event.preventDefault()" visibility: stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].visibility}">
class="uk-margin-remove-bottom" </ng-container>
><span>{{subCategory.name}}</span> <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>
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false">
<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>
<li *ngIf="subCategory.visibility != v.value"><a (click)="toggleSubcategoryStatus(i, v.value);
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>
</a>
<span class="uk-invisible-hover"
(click)="$event.stopPropagation();$event.preventDefault()">
<i class=" onHover" uk-icon="more-vertical"></i>
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 5; delay-hide: 0; flip: false"
class="uk-padding-remove-horizontal">
<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>
<li *ngIf="subCategory.visibility != v.value"><a (click)="toggleSubcategoryStatus(i, v.value);
hide(element)">
{{'Make ' + v.label.toLowerCase()}}</a>
</li> </li>
</ng-template> </ul>
<hr *ngIf="!stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].defaultId" </div>
class="uk-nav-divider"> </span>
<li *ngIf="!stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[i].defaultId"><a </span>
(click)="deleteSubcategoryOpen(i, 'delete'); hide(element)">Delete</a>
</li>
</ul>
</div>
</span>
</li> </li>
</ng-template> </ng-template>
<li> <li class="uk-visible-toggle ignore">
<span href="#" (click)="editSubCategoryOpen();$event.preventDefault()" <span (click)="editSubCategoryOpen(); $event.preventDefault()" class="clickable">
class="uk-padding-remove uk-visible-toggle clickable"> <span class="uk-icon-button small portal-icon-button">
<span class="menu_icon uk-icon-button portal-icon-button icon-button-small"><i <icon name="add"></icon>
uk-icon="icon:plus; ratio:0.7"></i></span> </span>
<span class="uk-hidden-hover"> Create new sub category</span> <span class="uk-hidden-hover space">Create new subcategory</span>
</span> </span>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="page_content_inner" style="margin-top: 40px;"> <div id="page_content_inner">
<indicators *ngIf="stakeholder" [properties]="properties" <indicators *ngIf="stakeholder" [properties]="properties"
[topicIndex]="topicIndex" [topicIndex]="topicIndex"
[categoryIndex]="categoryIndex" [categoryIndex]="categoryIndex"
@ -221,24 +202,27 @@
<ng-template #visibilityOptions let-type="type" let-i="i" let-visibility="visibility"> <ng-template #visibilityOptions let-type="type" let-i="i" let-visibility="visibility">
<span class="uk-invisible-hover uk-padding-remove" (click)="$event.stopPropagation();$event.preventDefault()"> <span class="uk-invisible-hover visibility small" (click)="$event.stopPropagation();$event.preventDefault()">
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get(visibility)" <span class="clickable">
class="clickable visibilityMenuIcon"></i> <icon [name]="stakeholderUtils.visibilityIcon.get(visibility)" [ratio]="0.5"></icon>
<div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false"> </span>
<ul class="uk-nav uk-dropdown-nav"> <div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false">
<li *ngFor="let v of stakeholderUtils.visibility" <ul class="uk-nav uk-dropdown-nav">
[class.selectedVisibility]="v.value == visibility"> <li *ngFor="let v of stakeholderUtils.visibility">
<a <a *ngIf="visibility != v.value"
*ngIf="visibility != v.value" (click)="$event.stopPropagation();toggleStatusByIndex(i, v.value, type);hide(element);$event.preventDefault()">
(click)="$event.stopPropagation();toggleStatusByIndex(i, v.value, type);hide(element);$event.preventDefault()"> <icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" ratio="0.8"></icon>
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}}</a> <span> {{v.label}}</span>
<a *ngIf="visibility == v.value"> </a>
<i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}} <a *ngIf="visibility == v.value" class="uk-position-relative">
<icon <icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" [ratio]="0.8"></icon>
customClass="uk-text-secondary uk-float-right" [ratio]="0.5" <span> {{v.label}}</span>
name="bullet"></icon></a> <span class="uk-position-center-right">
</li> <icon customClass="uk-text-secondary" [ratio]="0.5" name="bullet"></icon>
</ul> </span>
</div> </a>
</span> </li>
</ul>
</div>
</span>
</ng-template> </ng-template>

View File

@ -201,6 +201,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
this.stakeholder._id, this.stakeholder._id,
this.stakeholder.topics[index]._id this.stakeholder.topics[index]._id
]; ];
console.log('here')
this.toggleStatus(this.stakeholder.topics[index], path, visibility); this.toggleStatus(this.stakeholder.topics[index], path, visibility);
} }

View File

@ -15,7 +15,7 @@ import {InputModule} from "../openaireLibrary/dashboard/sharedComponents/input/i
import {ClickModule} from "../openaireLibrary/utils/click/click.module"; import {ClickModule} from "../openaireLibrary/utils/click/click.module";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard"; import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service"; import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {preview, bullet} from "../openaireLibrary/utils/icons/icons"; import {preview, bullet, add, earth, lock, group} from "../openaireLibrary/utils/icons/icons";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module"; import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
@NgModule({ @NgModule({
@ -36,6 +36,6 @@ import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
}) })
export class TopicModule { export class TopicModule {
constructor(private iconsService: IconsService) { constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([preview, bullet]); this.iconsService.registerIcons([preview, bullet, add, earth, lock, group]);
} }
} }

View File

@ -35,10 +35,10 @@ export class StakeholderUtils {
{icon: 'brightness_1', value: false, label: 'Inactive'}, {icon: 'brightness_1', value: false, label: 'Inactive'},
]; ];
isPublicIcon: Map<Visibility, string> = new Map<Visibility, string> ([ visibilityIcon: Map<Visibility, string> = new Map<Visibility, string> ([
["PUBLIC", 'world'], ["PUBLIC", 'earth'],
["PRIVATE", 'lock'], ["PRIVATE", 'lock'],
["RESTRICTED", 'users'] ["RESTRICTED", 'group']
]); ]);
isActiveIcon: string = 'brightness_1'; isActiveIcon: string = 'brightness_1';

View File

@ -5,18 +5,38 @@
text-align: left; text-align: left;
} }
.sidebar_main_swipe.sidebar_mini .uk-dropdown {
min-width: auto;
}
.uk-dropdown > ul { .uk-dropdown > ul {
padding: 0 !important; padding: 0 !important;
} }
.uk-dropdown-nav > li > a, .uk-dropdown-nav > li:hover > a { .uk-dropdown-nav > li > a, .uk-dropdown-nav > li:hover > a {
padding: 4px 10px; padding: 3px 10px;
color: var(--text-color); color: rgb(var(--text-color));
font-weight: 400 !important; font-weight: 400 !important;
font-size: var(--small-font-size); font-size: var(--xs-font-size);
font-family: "Open Sans", sans-serif;
}
.uk-dropdown-nav > li, .uk-dropdown-nav > li > a {
position: relative;
}
.uk-dropdown-nav > li:hover::before {
content: "";
width: 100%;
height: 100%;
position: absolute;
left: 0;
background-color: var(--secondary-color);
opacity: 0.3;
} }
.uk-dropdown .uk-nav-divider { .uk-dropdown .uk-nav-divider {
margin: 4px 10px; margin: 3px 10px;
border-color: var(--secondary-color); border-color: var(--secondary-color);
} }

View File

@ -25,52 +25,78 @@
left: 0; left: 0;
z-index: 981; z-index: 981;
background: #fff; background: #fff;
transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
transition-property: width;
} }
.sidebar_main_swipe.sidebar_mini #sidebar_switcher_toggle { .sidebar_main_swipe.sidebar_mini #sidebar_switcher_toggle {
left: calc(var(--sidebar-mini-width) + 0px); left: var(--sidebar-mini-width);
} }
.sidebar_main_swipe #sidebar_switcher_toggle { .sidebar_main_swipe #sidebar_switcher_toggle {
left: calc(var(--sidebar-width) + 0px); left: var(--sidebar-width);
} }
#sidebar_main .menu_section > ul > li > a, #sidebar_main .menu_section > ul > li > ul > li > a { #sidebar_main .menu_section {
min-height: 30vh;
}
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li {
padding: 5px 0;
}
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li > a, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li > a {
display: block;
font-size: var(--sidebar-font-size); font-size: var(--sidebar-font-size);
color: rgba(0, 0, 0, .7); color: rgba(var(--text-color), 0.5);
} }
#sidebar_main .menu_section > ul > li > a:hover, #sidebar_main .menu_section > ul > li > ul > li > a:hover{ #sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li:hover > a, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li:hover > a {
color: var(--secondary-color); color: var(--secondary-color);
} }
#sidebar_main .menu_section > ul li.current_section > a, #sidebar_main .menu_section > ul li.current_section > ul > li.current_section > a {
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) li.uk-active > a, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li.uk-active > a {
color: var(--primary-color); color: var(--primary-color);
font-weight: 700;
} }
#sidebar_switcher_toggle { #sidebar_switcher_toggle {
top: 320px !important; top: 50%;
transform: translateY(-50%);
position: fixed; position: fixed;
background: #ffffff; background: #ffffff;
border: 1px solid var(--portal-dark-color); border: 1px solid rgb(var(--text-color));
border-left: 0; border-left: 0;
cursor: pointer; cursor: pointer;
padding: 0 4px; padding: 0 4px;
width: 10px; width: 10px;
height: 66px; height: 66px;
z-index: 981; z-index: 981;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
transition-property: left;
} }
.sidebar_main_swipe #page_content { .sidebar_main_swipe #page_content {
padding-left: var(--sidebar-width); padding-left: var(--sidebar-width);
padding-top: var(--header-height); padding-top: var(--header-height);
transition: 0.5s; transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
} }
/*Sidebar close*/ /*Sidebar close*/
.sidebar_main_swipe:not(.sidebar_main_active):not(.sidebar_mini) #page_content { .sidebar_main_swipe:not(.sidebar_main_active):not(.sidebar_mini) #page_content {
padding-left: 0; padding-left: 0;
transition: 0.5s;
} }
.sidebar_main_swipe:not(.sidebar_main_active):not(.sidebar_mini) #sidebar_main #sidebar_content { .sidebar_main_swipe:not(.sidebar_main_active):not(.sidebar_mini) #sidebar_main #sidebar_content {
@ -86,18 +112,18 @@
.sidebar_main_swipe.sidebar_mini #page_content { .sidebar_main_swipe.sidebar_mini #page_content {
padding-left: var(--sidebar-mini-width); padding-left: var(--sidebar-mini-width);
transition: 0.5s; transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
} }
.sidebar_mini #sidebar_main #sidebar_content { .sidebar_mini #sidebar_main #sidebar_content {
width: var(--sidebar-mini-width); width: var(--sidebar-mini-width);
} }
#sidebar_main .menu_section > ul > li > a {
display: block;
}
#sidebar_main #sidebar_content { #sidebar_main #sidebar_content {
border-right: 1px solid var(--portal-dark-color); border-right: 1px solid rgb(var(--text-color));
} }
#page_content { #page_content {
@ -105,6 +131,19 @@
background-color: var(--background-color); background-color: var(--background-color);
} }
#page_content_header + #page_content_inner {
margin-top: 100px;
}
#page_content_header {
position: fixed;
background: var(--background-color);
top: var(--header-height);
z-index: 980;
width: 100%;
height: 100px;
}
#page_content_inner { #page_content_inner {
padding: 90px; padding: 90px;
} }

View File

@ -1,12 +1,11 @@
.uk-subnav-pill, .uk-tab { .uk-subnav-pill:not(.ignore), .uk-tab:not(.ignore) {
flex-wrap: nowrap; flex-wrap: nowrap;
overflow-x: auto; overflow-x: auto;
} }
.uk-subnav-pill > * > a, .uk-subnav>*>a:first-child { .uk-subnav-pill > * > a, .uk-subnav>*>a:first-child, .uk-subnav-pill > * > span > a {
color: currentColor !important; color: currentColor !important;
font-size: 13px; font-size: 13px;
text-transform: none;
opacity: 0.5; opacity: 0.5;
border-radius: 40px; border-radius: 40px;
border: 1px solid currentColor !important; border: 1px solid currentColor !important;
@ -14,31 +13,63 @@
line-height: 18px; line-height: 18px;
} }
.uk-tab > * > a { .uk-subnav-pill > * > *, .uk-subnav > * > *:first-child {
color: currentColor !important; text-transform: none;
opacity: 0.5; font-size: var(--font-size);
color: rgb(var(--text-color));
} }
.uk-subnav-pill > li > a:hover { .uk-subnav-pill > li > a:hover, .uk-subnav-pill > li > span > a:hover {
border-color: var(--secondary-color); border-color: var(--secondary-color);
color: var(--secondary-color) !important; color: var(--secondary-color) !important;
background-color: var(--contrast-color); background-color: var(--contrast-color);
opacity: 1; opacity: 1;
} }
.uk-subnav-pill > li.uk-active > a { .uk-subnav-pill > li.uk-active > a, .uk-subnav-pill > li.uk-active > span > a {
opacity: 1; opacity: 1;
border-color: var(--primary-color); border-color: var(--primary-color) !important;
color: var(--contrast-color) !important; color: var(--contrast-color) !important;
background-color: var(--primary-color); background-color: var(--primary-color);
font-weight: bold; font-weight: bold;
} }
.uk-tab > li > a {
color: rgb(var(--text-color), 0.5) !important;
font-size: var(--small-font-size);
font-family: "Open Sans", sans-serif !important;
text-transform: capitalize;
}
.uk-tab > li:hover > a { .uk-tab > li:hover > a {
color: var(--secondary-color); color: var(--secondary-color) !important;
opacity: 1;
} }
.uk-tab > li.uk-active > a { .uk-tab > li.uk-active > a {
opacity: 1; color: var(--primary-color) !important;
font-weight: 700;
}
.customTabs.uk-tab > li > a, .customTabs.uk-tab > li.uk-active > a,.customTabs.uk-tab > li > a:focus, .customTabs.uk-tab > li > a:hover {
border: 0 transparent !important;
}
.subCategoriesTabs > li > a{
font-size: 13px;
}
.uk-tab.customTabs::before {
border-bottom: none !important;
}
/*dashboard tabs*/
.customTabs.uk-tab.admin > li.uk-active > a .title {
border-bottom: 3px solid var(--portal-main-color);
margin-left: 3px;
}
.uk-subnav-pill.subCategoriesTabs.admin > li.uk-active > a{
border: 1px solid var(--primary-color);
background-color: var(--primary-color);
} }

View File

@ -1,17 +1,22 @@
:root { :root {
--font-size: 16px; --font-size: 16px;
--text-color: #1A1A1A; --text-color: 26,26,26;
--muted-color: #4D4D4D; --muted-color: #4D4D4D;
--xs-font-size: 12px;
--small-font-size: 14px; --small-font-size: 14px;
--large-font-size: 18px; --large-font-size: 18px;
} }
body { body {
color: var(--text-color); color: rgb(var(--text-color));
font-size: var(--font-size); font-size: var(--font-size);
font-family: "Open Sans", sans-serif; font-family: "Open Sans", sans-serif;
} }
.color {
color: rgb(var(--text-color));
}
.uk-text-small { .uk-text-small {
font-size: var(--small-font-size); font-size: var(--small-font-size);
} }
@ -23,3 +28,9 @@ body {
.uk-text-muted { .uk-text-muted {
color: var(--muted-color); color: var(--muted-color);
} }
.uk-logo {
font-family: "Roboto", sans-serif;
font-size: 24px;
color: rgb(var(--text-color));
}

View File

@ -65,7 +65,7 @@
/*Sidebar*/ /*Sidebar*/
/*Style*/ /*Style*/
/*#sidebar_main .menu_section > ul li.current_section > a {*/ /*#sidebar_main .menu_section > ul li.uk-active > a {*/
/* font-size: var(--sidebar-font-size);*/ /* font-size: var(--sidebar-font-size);*/
/* color: rgba(0,0,0,.7);*/ /* color: rgba(0,0,0,.7);*/
/*}*/ /*}*/
@ -84,7 +84,7 @@
} }
/*Sidebar Rotation*/ /*Sidebar Rotation*/
.stakeholderPage #sidebar_main .menu_section > ul > li.current_section { .stakeholderPage #sidebar_main .menu_section > ul > li.uk-active {
width: 150px; width: 150px;
height: 100%; height: 100%;
transition: 0.70s; transition: 0.70s;
@ -110,7 +110,8 @@
/*margin-right: auto;*/ /*margin-right: auto;*/
/*margin-left: auto;*/ /*margin-left: auto;*/
} }
.sidebar_mini #sidebar_main .menu_section > ul > li.current_section{
.stakeholderPage.sidebar_mini #sidebar_main .menu_section > ul > li.uk-active{
-webkit-transform: rotate(0deg); -webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg); -moz-transform: rotate(0deg);
-o-transform: rotate(0deg); -o-transform: rotate(0deg);
@ -118,60 +119,13 @@
transform: rotate(0deg); transform: rotate(0deg);
width: inherit; width: inherit;
height: inherit; height: inherit;
margin: 0;
margin: 0px 0px;
} }
.stakeholderPage #sidebar_main #sidebar_content, .stakeholderPage #sidebar_switcher_toggle { .stakeholderPage #sidebar_main #sidebar_content, .stakeholderPage #sidebar_switcher_toggle {
border-color: var(--monitor-portal-color); border-color: var(--monitor-portal-color);
} }
/*tabs
*/
.customTabs.uk-tab > li > a, .customTabs.uk-tab > li.uk-active > a,.customTabs.uk-tab > li > a:focus, .customTabs.uk-tab > li > a:hover {
border: 0 transparent !important;
}
.customTabs.uk-tab > li.uk-active > a,.customTabs.uk-tab > li > a:focus, .customTabs.uk-tab > li > a:hover {
color: var(--secondary-color) !important
}
.customTabs >li a{
font-size: 14px;
text-transform: capitalize;
}
.subCategoriesTabs >li a{
font-size: 13px;
text-transform: capitalize;
}
.customTabs > li.uk-active a {
font-weight:bold;
}
.uk-tab.customTabs::before {
border-bottom: none !important;
}
/*dashboard tabs*/
.customTabs.uk-tab.admin > li.uk-active > a .title {
color: var(--primary-color) !important;
border-bottom: 3.5px solid var(--portal-main-color);
}
.customTabs.uk-tab.admin > li > a:hover .uk-icon, .uk-nav-default > li > a:hover .uk-icon{
color: #646464 !important;
}
.customTabs.uk-tab.admin > li:not(.uk-active) > a.title:focus, .customTabs.uk-tab.admin > li:not(.uk-active) > a:hover,
uk-nav-default > li:not(.uk-active) > a.title:focus, .uk-nav-default > li:not(.uk-active) > a:hover{
color: var(--secondary-color) !important
}
.uk-subnav-pill.subCategoriesTabs.admin > li.uk-active > a{
border: 1px solid var(--primary-color);
background-color: var(--primary-color);
}
/* Section Tools*/ /* Section Tools*/
.dashboard .section { .dashboard .section {
@ -257,40 +211,23 @@ uk-nav-default > li:not(.uk-active) > a.title:focus, .uk-nav-default > li:not(.u
height: 250px; height: 250px;
} }
li.selectedVisibility::before a, li.selectedVisibility a::before, li.selectedVisibility::after a, li.selectedVisibility a, .selectedVisibility{
background-color:var(--secondary-color);
background:blue;
opacity: 0.5;
}
li.selectedVisibility{
position: relative;
}
li.selectedVisibility::before {
content: "";
width: 100%;
height: 100%;
position: absolute;
left: 0;
background-color: var(--secondary-color);
opacity: 0.3;
}
.uk-modal .large-modal {
width: 800px;
}
.tm-header .uk-navbar-container{ .tm-header .uk-navbar-container{
background-color: var(--background-color) !important; background-color: var(--background-color) !important;
box-shadow: none !important; box-shadow: none !important;
} }
.visibilityMenuIcon{ .visibility {
border-right: 1px solid var(--secondary-color); border-right: 1px solid var(--secondary-color);
border-bottom: 1px solid var(--secondary-color); border-bottom: 1px solid var(--secondary-color);
padding: 0px 2px 3px 0px; padding: 10px 8px;
margin-right: 4px;
color: rgba(var(--text-color), 0.5);
} }
.visibility.small {
padding: 3px 2px;
}
.descriptionIcon{ .descriptionIcon{
position: absolute; position: absolute;
bottom: 3px; bottom: 3px;