[Monitor Dashboard]: 1. Finish manage stakeholders. 2. Remove logos.

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@59732 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2020-11-01 15:41:56 +00:00
parent 0d59ccee27
commit 3b094da655
22 changed files with 447 additions and 377 deletions

View File

@ -20,7 +20,7 @@ import {properties} from "../environments/environment";
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit, OnDestroy {
properties: EnvProperties = properties;
properties: EnvProperties = properties;
user: User;
params: BehaviorSubject<Params> = new BehaviorSubject<Params>(null);
hasSidebar: boolean = false;
@ -40,9 +40,9 @@ export class AppComponent implements OnInit, OnDestroy {
logoSmallUrl: null,
position: 'center',
badge: false,
stickyAnimation : false
stickyAnimation: false
};
userMenuItems: MenuItem[] = [new MenuItem("", "My profile", "", "", false, [], [], {})];
adminMenuItems: MenuItem[] = [];
stakeholder: Stakeholder = null;
@ -104,7 +104,7 @@ export class AppComponent implements OnInit, OnDestroy {
});
this.layoutService.setOpen(false);
this.subscriptions.push(this.params.subscribe(params => {
if(this.paramsResolved) {
if (this.paramsResolved) {
this.loading = true;
this.layoutService.setSmallScreen((this.innerWidth && this.innerWidth < 1219));
this.layoutService.setOpen(!(this.innerWidth && this.innerWidth < 1219));
@ -319,6 +319,18 @@ export class AppComponent implements OnInit, OnDestroy {
return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user) || (this.stakeholder && Session.isManager(this.stakeholder.type, this.stakeholder.alias, this.user)));
}
private resolvePageInner() {
if(document !== undefined) {
let header = document.getElementById('pager_header_content');
let inner = document.getElementById('page_content_inner');
if(header) {
inner.setAttribute('style', '{margin-top:' + header.offsetHeight+ '}');
} else {
inner.setAttribute('style', '{margin-top:' + 0 + '}');
}
}
}
public isPublicOrIsMember(visibility: Visibility): boolean {
if (visibility == "PRIVATE") {
return false;

View File

@ -1,5 +1,5 @@
<div id="page_content">
<div id="page_content_inner">
<div page-content>
<div inner>
<div *ngIf="stakeholder">
<div class="form-header">
<div class="uk-flex uk-flex-middle uk-child-width-1-1 uk-child-width-1-2@m uk-grid" uk-grid>

View File

@ -10,6 +10,7 @@ import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module
import {ReactiveFormsModule} from "@angular/forms";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {EditStakeholderModule} from "./edit-stakeholder/edit-stakeholder.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
@NgModule({
declarations: [GeneralComponent],
@ -21,7 +22,8 @@ import {EditStakeholderModule} from "./edit-stakeholder/edit-stakeholder.module"
LoadingModule,
AlertModalModule,
ReactiveFormsModule,
EditStakeholderModule
EditStakeholderModule,
PageContentModule
],
providers: [
AdminDashboardGuard, PreviousRouteRecorder,

View File

@ -0,0 +1,21 @@
.uk-card {
min-height: 270px;
}
.uk-card-body {
padding-top: 75px;
}
.uk-card-default .name {
margin-left: auto;
margin-right: auto;
}
.uk-card-default .uk-card-title .logo {
display: inline-block;
max-width: 80%;
}
.uk-card-default .uk-card-title .logo > img {
max-height: 60px;
}

View File

@ -1,14 +1,13 @@
<div id="page_content">
<div id="page_content_inner">
<div *ngIf="isCurator()">
<ul class="uk-tab customTabs admin" uk-tab>
<li [class.uk-active]="tab === 'managers'"><a (click)="changeTab('all')"><span class="title">All</span></a></li>
<li [class.uk-active]="tab === 'members'"><a (click)="changeTab('templates')"><span class="title">Profile templates</span></a></li>
<li [class.uk-active]="tab === 'members'"><a (click)="changeTab('profiles')"><span class="title">Profiles</span></a></li>
</ul>
</div>
<div class="uk-padding-small md-bg-white" uk-grid>
<div page-content>
<div header>
<ul *ngIf="isCurator()" class="uk-tab customTabs admin" uk-tab>
<li [class.uk-active]="tab === 'managers'"><a (click)="changeTab('all')"><span class="title">All</span></a></li>
<li [class.uk-active]="tab === 'members'"><a (click)="changeTab('templates')"><span class="title">Profile templates</span></a>
</li>
<li [class.uk-active]="tab === 'members'"><a (click)="changeTab('profiles')"><span
class="title">Profiles</span></a></li>
</ul>
<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('status')"
@ -18,113 +17,117 @@
</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 class="material-icons">search</i></span>
<div dashboard-input [formInput]="filters.get('keyword')" label="Locate profile"></div>
<div dashboard-input [formInput]="filters.get('keyword')" label="Locate profile" icon="search"></div>
</div>
</div>
</div>
<div *ngIf="tab != 'profiles' && isCurator()" class="uk-margin-top">
<h6 class="main">Profile Templates</h6>
<div class = "uk-child-width-1-4@m uk-child-width-1-3@s uk-grid-match uk-grid-small"
uk-grid>
<loading *ngIf="loading"></loading>
<ng-template ngFor [ngForOf]="displayDefaultStakeholders" let-stakeholder let-i="index">
<ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
</ng-template>
<div *ngIf="!loading && isCurator()">
<ng-container *ngTemplateOutlet="newBox; context:
</div>
<div inner>
<div *ngIf="loading" class="uk-margin-medium-top uk-padding-large">
<loading></loading>
</div>
<div *ngIf="!loading">
<div *ngIf="tab != 'profiles' && isCurator()" class="uk-margin-medium-top">
<h6 class="uk-text-bold">Profile Templates</h6>
<div class="uk-grid uk-child-width-1-4@m uk-child-width-1-3@s uk-grid-match" uk-grid
uk-height-match="target: .name;">
<ng-template ngFor [ngForOf]="displayDefaultStakeholders" let-stakeholder let-i="index">
<ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
</ng-template>
<div *ngIf="!loading && isCurator()">
<ng-container *ngTemplateOutlet="newBox; context:
{text:'Create a new default profile.', isDefault:true}"></ng-container>
</div>
</div>
</div>
</div>
</div>
<div *ngIf="tab != 'templates' && isManager()" class="uk-margin-top">
<h6 class="">Profiles</h6>
<div class="uk-grid-match uk-grid-small uk-child-width-1-4@m uk-child-width-1-3@s"
uk-grid>
<loading *ngIf="loading"></loading>
<ng-template ngFor [ngForOf]="displayStakeholders" let-stakeholder let-i="index">
<ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
</ng-template>
<div *ngIf="!loading && isCurator()">
<ng-container *ngTemplateOutlet="newBox; context:
<div *ngIf="tab != 'templates' && isManager()" class="uk-margin-large-top">
<h6 class="uk-text-bold">Profiles</h6>
<div class="uk-grid uk-grid-match uk-child-width-1-4@m uk-child-width-1-3@s" uk-grid uk-grid
uk-height-match="target: .name;">
<ng-template ngFor [ngForOf]="displayStakeholders" let-stakeholder let-i="index">
<ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
</ng-template>
<div *ngIf="!loading && isCurator()">
<ng-container *ngTemplateOutlet="newBox; context:
{text:'Create a new profile by selecting the type (Funder, Organization, Research Initiative or Project) and '+
' select indicators based on a default or a blank profile.', isDefault:false}"></ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<ng-template #stakeholderBox let-stakeholder="stakeholder" >
<div>
<div *ngIf="stakeholder" class="uk-card uk-card-default">
<div class="uk-padding-small uk-padding-remove-bottom">
<div class="md-card-toolbar-actions uk-float-right" >
<div class="md-card-dropdown uk-inline clickable">
<i uk-icon="more-vertical"
(click)="$event.stopPropagation();$event.preventDefault()"></i>
<div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav">
<li><a (click)="$event.stopPropagation();editStakeholder(stakeholder, !stakeholder.defaultId);hide(element);$event.preventDefault()">Edit</a>
</li>
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
<li *ngIf="stakeholder.visibility != v.value"><a (click)="changeStakeholderStatus(stakeholder, v.value);
<ng-template #stakeholderBox let-stakeholder="stakeholder">
<div *ngIf="stakeholder">
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<div class="uk-position-top-right uk-margin-small-right uk-margin-small-top clickable">
<i uk-icon="more-vertical"
(click)="$event.stopPropagation();$event.preventDefault()"></i>
<div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav">
<li><a
(click)="$event.stopPropagation();editStakeholder(stakeholder, !stakeholder.defaultId);hide(element);$event.preventDefault()">Edit</a>
</li>
<ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
<li *ngIf="stakeholder.visibility != v.value"><a (click)="changeStakeholderStatus(stakeholder, v.value);
hide(element)">
{{'Make ' + v.label.toLowerCase()}}</a>
</li>
</ng-template>
<hr *ngIf="isProfileManager(stakeholder)" class="uk-nav-divider">
<li *ngIf="isProfileManager(stakeholder)"><a
(click)="$event.stopPropagation();deleteStakeholderOpen(stakeholder);hide(element);$event.preventDefault()">Delete</a>
</li>
</ul>
</div>
</div>
</div>
<div class="md-card-dropdown uk-inline clickable visibility">
<i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get(stakeholder.visibility)"
(click)="$event.stopPropagation();$event.preventDefault()"></i>
<div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
<ul class="uk-nav uk-dropdown-nav">
<li *ngFor="let v of stakeholderUtils.visibility" [class.selectedVisibility]="v.value ==
stakeholder.visibility">
<a
*ngIf="stakeholder.visibility != v.value"
(click)="$event.stopPropagation();changeStakeholderStatus(stakeholder,v.value);hide(element);$event.preventDefault()">
<i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}}</a>
<a *ngIf="stakeholder.visibility == v.value">
<i [attr.uk-icon]="stakeholderUtils.visibilityIcon.get( v.value)"></i> {{v.label}} <icon
customClass="uk-text-secondary uk-float-right" [ratio]="0.5"
name="bullet"></icon></a>
{{'Make ' + v.label.toLowerCase()}}</a>
</li>
</ul>
</div>
</ng-template>
<hr *ngIf="isProfileManager(stakeholder)" class="uk-nav-divider">
<li *ngIf="isProfileManager(stakeholder)"><a
(click)="$event.stopPropagation();deleteStakeholderOpen(stakeholder);hide(element);$event.preventDefault()">Delete</a>
</li>
</ul>
</div>
</div>
<div class="uk-padding-small">
<a class="" [routerLink]="stakeholder.alias">
<div class="uk-flex uk-flex-center">
{{stakeholder.name}}
</div>
</a>
<div class="uk-position-top-left uk-margin-small-left uk-margin-small-top clickable visibility">
<span class="clickable color">
<icon [name]="stakeholderUtils.visibilityIcon.get(stakeholder.visibility)"></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="stakeholder.visibility != v.value"
(click)="$event.stopPropagation();changeStakeholderStatus(stakeholder,v.value);hide(element);$event.preventDefault()">
<icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" ratio="0.8"></icon>
<span> {{v.label}}</span>
</a>
<a *ngIf="stakeholder.visibility == v.value">
<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>
</div>
<a class="uk-display-block uk-text-center uk-card-title" [routerLink]="stakeholder.alias">
<div class="name uk-width-2-3@l">
{{stakeholder.name}}
</div>
<div *ngIf="stakeholder.logoUrl" class="logo uk-margin-medium-top">
<img *ngIf="stakeholder.isUpload" [src]="properties.utilsService + '/download/' + stakeholder.logoUrl">
<img *ngIf="!stakeholder.isUpload" [src]="stakeholder.logoUrl">
</div>
</a>
</div>
</div>
</ng-template>
<ng-template #newBox let-text="text" let-isDefault="isDefault" >
<ng-template #newBox let-text="text" let-isDefault="isDefault">
<div *ngIf="!loading">
<div class="uk-card uk-card-default clickable" (click)="editStakeholder(null, isDefault)">
<div class="uk-card-body">
<div>
<div class="uk-width-1-1">
{{text}}
</div>
<div class="uk-width-1-1 uk-flex uk-flex-center">
<i class="material-icons md-48" uk-icon="plus"></i>
</div>
</div>
<div class="uk-card uk-card-default uk-text-center uk-card-body clickable" (click)="editStakeholder(null, isDefault)">
<div class="uk-text-small uk-text-muted">
{{text}}
</div>
<div class="uk-margin-medium-top">
<span class="uk-text-secondary">
<icon name="add" [ratio]="3"></icon>
</span>
</div>
</div>
</div>
@ -133,6 +136,6 @@
id="edit_modal" [large]="true"
(alertOutput)="editStakeholderComponent.save(callback)"
[okDisabled]="editStakeholderComponent.disabled">
<edit-stakeholder #editStakeholderComponent [maxHeight]="'70vh'"></edit-stakeholder>
<edit-stakeholder #editStakeholderComponent></edit-stakeholder>
</modal-alert>
<modal-alert #deleteStakeholderModal (alertOutput)="deleteStakeholder()"></modal-alert>

View File

@ -17,7 +17,8 @@ declare var UIkit;
@Component({
selector: 'home',
templateUrl: "./manageStakeholders.component.html"
templateUrl: "./manageStakeholders.component.html",
styleUrls: ['manageStakeholders.component.css']
})
export class ManageStakeholdersComponent implements OnInit, OnDestroy {
@ -52,8 +53,9 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
@ViewChild('editStakeholderModal') editStakeholderModal: AlertModal;
@ViewChild('deleteStakeholderModal') deleteStakeholderModal: AlertModal;
@ViewChild('editStakeholderComponent') editStakeholderComponent: EditStakeholderComponent;
tab:"all" | "templates" | "profiles" = "all";
tab: "all" | "templates" | "profiles" = "all";
constructor(private stakeholderService: StakeholderService,
private userManagementService: UserManagementService,
private propertiesService: EnvironmentSpecificService,
@ -100,7 +102,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
hide(element: any) {
UIkit.dropdown(element).hide();
}
private buildFilters() {
this.filters = this.fb.group({
@ -115,7 +117,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
this.onKeywordChange(value);
}));
}
onStatusChange(value) {
this.displayDefaultStakeholders = this.filterStatus(this.defaultStakeholders, value);
this.displayStakeholders = this.filterStatus(this.stakeholders, value);
@ -125,7 +127,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
this.displayDefaultStakeholders = this.filterByKeyword(this.defaultStakeholders, value);
this.displayStakeholders = this.filterByKeyword(this.stakeholders, value);
}
private filterStatus(stakeholders: Stakeholder[], value): Stakeholder[] {
if (value === 'all') {
return stakeholders;
@ -138,8 +140,10 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
if (value === null || value === '') {
return stakeholders;
} else {
return stakeholders.filter(stakeholder => (
stakeholder.index_id && stakeholder.index_id.toLowerCase().includes(value.toLowerCase())) ||
return stakeholders.filter(stakeholder =>
stakeholder.name && stakeholder.name.toLowerCase().includes(value.toLowerCase()) ||
stakeholder.type && stakeholder.type.toLowerCase().includes(value.toLowerCase()) ||
stakeholder.index_id && stakeholder.index_id.toLowerCase().includes(value.toLowerCase()) ||
stakeholder.index_shortName && stakeholder.index_shortName.toLowerCase().includes(value.toLowerCase()) ||
stakeholder.index_name && stakeholder.index_name.toLowerCase().includes(value.toLowerCase())
);
@ -207,7 +211,8 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
}
});
}
changeStakeholderStatus(stakeholder: Stakeholder, visibility:Visibility) {
changeStakeholderStatus(stakeholder: Stakeholder, visibility: Visibility) {
let path = [
stakeholder._id
];
@ -215,6 +220,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
stakeholder.isActive = isActive;
});
}
toggleStakeholderStatus(stakeholder: Stakeholder) {
let path = [
stakeholder._id
@ -232,19 +238,24 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
stakeholder.isPublic = isPublic;
});
}
public isManager(): boolean {
return this.isCurator() || (Session.isKindOfMonitorManager(this.user));
}
public isProfileManager(stakeholder:Stakeholder): boolean {
public isProfileManager(stakeholder: Stakeholder): boolean {
return this.isCurator() || (Session.isManager(stakeholder.type, stakeholder.alias, this.user));
}
public isCurator(): boolean {
return this.isAdmin() || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user);
}
public isAdmin(): boolean {
return Session.isPortalAdministrator(this.user);
}
changeTab(tab:"all" | "templates" | "profiles"){
changeTab(tab: "all" | "templates" | "profiles") {
this.tab = tab;
}
}

View File

@ -11,8 +11,9 @@ import {ReactiveFormsModule} from "@angular/forms";
import {EditStakeholderModule} from "../general/edit-stakeholder/edit-stakeholder.module";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {bullet} from "../openaireLibrary/utils/icons/icons";
import {add, bullet, earth, group, lock, search} from "../openaireLibrary/utils/icons/icons";
import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
@NgModule({
declarations: [ManageStakeholdersComponent],
@ -25,7 +26,8 @@ import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
AlertModalModule,
ReactiveFormsModule,
EditStakeholderModule,
IconsModule
IconsModule,
PageContentModule
],
providers: [
LoginGuard, PreviousRouteRecorder,
@ -34,6 +36,6 @@ import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
})
export class ManageStakeholdersModule {
constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([bullet]);
this.iconsService.registerIcons([bullet, search, earth, group, lock, add]);
}
}

View File

@ -40,43 +40,41 @@
</ng-container>
<!-- </div>-->
</ng-template>
<div id="page_content" [class.greyOut]="filterToggle" (click)=" (filterToggle)?filterToggle = false:filterToggle">
<div *ngIf="activeTopic && activeTopic.categories.length > 1" id="page_content_header">
<div class="uk-margin-large-left">
<nav class=" ">
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class="">
<ul
class="customTabs uk-tab ">
<ng-template ngFor [ngForOf]="activeTopic.categories" let-category let-i="index">
<li *ngIf="isPublicOrIsMember(category.visibility)"
[class.uk-active]="category.alias ===
<div page-content [class.greyOut]="filterToggle" (click)=" (filterToggle)?filterToggle = false:filterToggle">
<div *ngIf="activeTopic && activeTopic.categories.length > 1" header>
<nav class=" ">
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class="">
<ul
class="customTabs uk-tab ">
<ng-template ngFor [ngForOf]="activeTopic.categories" let-category let-i="index">
<li *ngIf="isPublicOrIsMember(category.visibility)"
[class.uk-active]="category.alias ===
activeCategory.alias">
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias, category.alias)"
class="uk-margin-remove-bottom uk-h4"
><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>
</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>
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias, category.alias)"
class="uk-margin-remove-bottom uk-h4"
><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>
</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 id="page_content_inner" class="">
<div id="page_content_inner" inner>
<div class=" indicators">
<div *ngIf="privateStakeholder">
<div class="uk-text-center uk-height-medium">

View File

@ -21,12 +21,13 @@ import {ClickModule} from "../openaireLibrary/utils/click/click.module";
import {BottomModule} from "../openaireLibrary/sharedComponents/bottom.module";
import {RangeFilterModule} from "../openaireLibrary/utils/rangeFilter/rangeFilter.module";
import {SearchFilterModule} from "../openaireLibrary/searchPages/searchUtils/searchFilter.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule, ErrorMessagesModule,
HelperModule, Schema2jsonldModule, SEOServiceModule, MonitorRoutingModule, SideBarModule, InputModule,
UserMiniModule, ClickModule, BottomModule, RangeFilterModule, SearchFilterModule
UserMiniModule, ClickModule, BottomModule, RangeFilterModule, SearchFilterModule, PageContentModule
],
declarations: [
MonitorComponent

View File

@ -69,24 +69,23 @@
<span class="uk-position-center" *ngIf="open" uk-icon="icon: chevron-left; ratio:1.5"></span>
</div>
</aside>
<div id="page_content">
<div *ngIf="stakeholder" id="page_content_header">
<div class="uk-margin-large-left">
<nav class=" ">
<div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class="">
<ul *ngIf="stakeholder.topics[topicIndex] && stakeholder.topics[topicIndex].categories.length > 0"
class="customTabs uk-tab ignore admin uk-flex uk-flex-middle">
<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">
<ng-container *ngTemplateOutlet="visibilityOptions; context:
<div *ngIf="stakeholder" page-content>
<div header>
<nav class=" ">
<div *ngIf="stakeholder && stakeholder.topics[topicIndex]" class="">
<ul *ngIf="stakeholder.topics[topicIndex] && stakeholder.topics[topicIndex].categories.length > 0"
class="customTabs uk-tab ignore admin uk-flex uk-flex-middle">
<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">
<ng-container *ngTemplateOutlet="visibilityOptions; context:
{i:i, type: 'cat',
visibility: stakeholder.topics[topicIndex].categories[i].visibility}">
</ng-container>
<a (click)="toggleCategory(i)">
<span class="title"> {{category.name}}</span>
</a>
<span class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()">
</ng-container>
<a (click)="toggleCategory(i)">
<span class="title"> {{category.name}}</span>
</a>
<span class="uk-invisible-hover" (click)="$event.stopPropagation();$event.preventDefault()">
<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">
<ul class="uk-nav uk-dropdown-nav">
@ -104,27 +103,27 @@
</ul>
</div>
</span>
</li>
</ng-template>
<li class="uk-visible-toggle">
</li>
</ng-template>
<li class="uk-visible-toggle">
<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>
</span>
</li>
</ul>
</div>
</nav>
<ul *ngIf=" stakeholder.topics[topicIndex].categories[categoryIndex] &&
</li>
</ul>
</div>
</nav>
<ul *ngIf=" stakeholder.topics[topicIndex].categories[categoryIndex] &&
stakeholder.topics[topicIndex].categories[categoryIndex].subCategories.length > 0"
class="uk-subnav uk-subnav-pill subCategoriesTabs ignore admin uk-flex uk-flex-middle">
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[categoryIndex].subCategories"
let-subCategory let-i="index">
<li [class.uk-active]="(subCategory.alias ===
class="uk-subnav uk-subnav-pill subCategoriesTabs ignore admin uk-flex uk-flex-middle">
<ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[categoryIndex].subCategories"
let-subCategory let-i="index">
<li [class.uk-active]="(subCategory.alias ===
stakeholder.topics[topicIndex].categories[categoryIndex].subCategories[subCategoryIndex].alias)"
class="uk-visible-toggle uk-position-relative uk-padding-remove-horizontal">
class="uk-visible-toggle uk-position-relative uk-padding-remove-horizontal">
<span>
<ng-container *ngTemplateOutlet="visibilityOptions; context:
{i:i, type: 'sub',
@ -137,7 +136,7 @@
<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">
<div #element uk-dropdown="mode: click; pos: bottom-right; offset: 10; 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>
@ -156,21 +155,20 @@
</div>
</span>
</span>
</li>
</ng-template>
<li class="uk-visible-toggle ignore">
</li>
</ng-template>
<li class="uk-visible-toggle ignore">
<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>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="page_content_inner">
<indicators *ngIf="stakeholder" [properties]="properties"
<div inner>
<indicators [properties]="properties"
[topicIndex]="topicIndex"
[categoryIndex]="categoryIndex"
[subcategoryIndex]="subCategoryIndex"></indicators>

View File

@ -17,11 +17,12 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {preview, bullet, add, earth, lock, group} from "../openaireLibrary/utils/icons/icons";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
@NgModule({
imports: [
CommonModule, TopicRoutingModule, ClickModule, RouterModule, FormsModule, AlertModalModule,
ReactiveFormsModule, InputModule, IconsModule
ReactiveFormsModule, InputModule, IconsModule, PageContentModule
],
declarations: [
TopicComponent, IndicatorsComponent

View File

@ -1,9 +1,7 @@
<div id="page_content">
<div *ngIf="loading" class="uk-section">
<div *ngIf="loading" page-content>
<div inner>
<loading></loading>
</div>
<div *ngIf="!loading && alias" class="uk-padding">
<dashboard-users [id]="alias" [name]="name" [type]="type" [link]="link"></dashboard-users>
</div>
</div>
<dashboard-users *ngIf="!loading && alias" [id]="alias" [name]="name" [type]="type" [link]="link"></dashboard-users>

View File

@ -5,9 +5,10 @@ import {UsersRoutingModule} from "./users-routing.module";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {DashboardUsersModule} from "../openaireLibrary/dashboard/users/dashboard-users.module";
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
@NgModule({
imports: [CommonModule, UsersRoutingModule, DashboardUsersModule, LoadingModule],
imports: [CommonModule, UsersRoutingModule, DashboardUsersModule, LoadingModule, PageContentModule],
declarations: [UsersComponent],
exports: [UsersComponent],
providers: [AdminDashboardGuard]

View File

@ -8,6 +8,17 @@
padding: 19px 25px;
}
.uk-card-body .uk-card-title {
font-size: var(--font-size);
font-family: "Roboto", sans-serif;
font-weight: 700;
color: var(--muted-color) !important;
}
.uk-card-body a.uk-card-title:hover, .uk-card-body a.uk-card-title:active, .uk-card-body a.uk-card-title:focus {
color: var(--secondary-color) !important;
}
.uk-card .uk-grid-divider>:not(.uk-first-column)::before {
border-left: 1px solid currentColor;
opacity: 0.2;

View File

@ -5,7 +5,7 @@
text-align: left;
}
.sidebar_main_swipe.sidebar_mini .uk-dropdown {
.sidebar_main_swipe.sidebar_mini #sidebar_content .uk-dropdown {
min-width: auto;
}
@ -16,24 +16,14 @@
.uk-dropdown-nav > li > a, .uk-dropdown-nav > li:hover > a {
padding: 3px 10px;
color: rgb(var(--text-color));
color: var(--text-color);
font-weight: 400 !important;
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-nav > li:hover {
background-color: rgba(var(--secondary-color-rgb), 0.3);
}
.uk-dropdown .uk-nav-divider {

View File

@ -53,7 +53,7 @@
#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);
color: rgba(var(--text-color), 0.5);
color: rgba(var(--text-color-rgb), 0.5);
}
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li:hover > a, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li:hover > a {
@ -70,7 +70,7 @@
transform: translateY(-50%);
position: fixed;
background: #ffffff;
border: 1px solid rgb(var(--text-color));
border: 1px solid var(--text-color);
border-left: 0;
cursor: pointer;
padding: 0 4px;
@ -123,7 +123,7 @@
}
#sidebar_main #sidebar_content {
border-right: 1px solid rgb(var(--text-color));
border-right: 1px solid var(--text-color);
}
#page_content {
@ -131,21 +131,27 @@
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;
width: calc(100% - var(--sidebar-width) - 180px);
padding: 0 90px;
transition-property: width;
transition: 0.5s;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
}
.sidebar_mini #page_content_header{
width: calc(100vw - var(--sidebar-mini-width) - 200px);
}
#page_content_inner {
padding: 90px;
padding: 50px 90px 90px;
}
navbar > * {

View File

@ -16,7 +16,7 @@
.uk-subnav-pill > * > *, .uk-subnav > * > *:first-child {
text-transform: none;
font-size: var(--font-size);
color: rgb(var(--text-color));
color: var(--text-color);
}
.uk-subnav-pill > li > a:hover, .uk-subnav-pill > li > span > a:hover {
@ -35,7 +35,7 @@
}
.uk-tab > li > a {
color: rgb(var(--text-color), 0.5) !important;
color: rgb(var(--text-color-rgb), 0.5) !important;
font-size: var(--small-font-size);
font-family: "Open Sans", sans-serif !important;
text-transform: capitalize;
@ -62,8 +62,6 @@
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;

View File

@ -1,6 +1,7 @@
:root {
--font-size: 16px;
--text-color: 26,26,26;
--text-color: #1A1A1A;
--text-color-rgb: 26,26,26;
--muted-color: #4D4D4D;
--xs-font-size: 12px;
--small-font-size: 14px;
@ -8,13 +9,13 @@
}
body {
color: rgb(var(--text-color));
color: var(--text-color);
font-size: var(--font-size);
font-family: "Open Sans", sans-serif;
}
.color {
color: rgb(var(--text-color));
color: var(--text-color) !important;
}
.uk-text-small {
@ -26,11 +27,11 @@ body {
}
.uk-text-muted {
color: var(--muted-color);
color: var(--muted-color) !important;
}
.uk-logo {
font-family: "Roboto", sans-serif;
font-size: 24px;
color: rgb(var(--text-color));
color: var(--text-color);
}

View File

@ -4,11 +4,15 @@
--portal-dark-color: #7c9144;
--primary-color: var(--theme-primary-color);
--secondary-color: var(--theme-secondary-color);
--primary-color-rgb: var(--theme-primary-color-rgb);
--secondary-color-rgb: var(--theme-secondary-color-rgb);
--contrast-color: white;
/* Portable Variables*/
--theme-primary-color: #222080;
--theme-secondary-color: #4686E5;
--theme-secondary-color: #4686e5;
--theme-primary-color-rgb: 34,31,128;
--theme-secondary-color-rgb: 70,134,229;
--openaire-main-color: #313179;
--explore-portal-color: #D95F2D;
--provide-portal-color: #37C7E9;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,66 +1,74 @@
:root {
--portal-main-color: #8DCA26;
--portal-main-contrast: white;
--portal-dark-color: #7c9144;
--portal-main-color: #8DCA26;
--portal-main-contrast: white;
--portal-dark-color: #7c9144;
}
.stakeholderPage {
--primary-color: var(--theme-secondary-color);
--secondary-color: var(--theme-secondary-color);
--primary-color: var(--theme-secondary-color);
--secondary-color: var(--theme-secondary-color);
--primary-color-rgb: var(--theme-secondary-color-rgb);
--secondary-color-rgb: var(--theme-secondary-color-rgb);
}
/*Stakeholder Specific*/
.publicationsSearchForm{
background-image: none;
.publicationsSearchForm {
background-image: none;
}
.stakeholderPage #page_content > div, .stakeholderPage #page_content .uk-navbar-container{
background-color: #F9FBFC !important;
box-shadow: none;
.stakeholderPage #page_content > div, .stakeholderPage #page_content .uk-navbar-container {
background-color: #F9FBFC !important;
box-shadow: none;
}
/*.stakeholderPage #header_main, .stakeholderPage .uk-sticky.uk-navbar-container {*/
/* background: #F9FBFC !important;*/
/*}*/
.stakeholderPage #page_content_inner {
background-image: url(/assets/monitor-shapes-bg.svg);
background-size: cover;
background-repeat: no-repeat;
background-position: top;
background-attachment: fixed;
background-image: url(/assets/monitor-shapes-bg.svg);
background-size: cover;
background-repeat: no-repeat;
background-position: top;
background-attachment: fixed;
}
/*General*/
.stakeholderPage {
background: #F9FBFC !important;
background: #F9FBFC !important;
}
#style_switcher .uk-offcanvas-bar {
box-sizing: border-box;
padding: 16px;
box-sizing: border-box;
padding: 16px;
}
#style_switcher_toggle {
top: 320px !important;
position: fixed;
height: 36px;
/*background: #fff;*/
background-color: rgb(255, 255, 255);
border-radius: 4px 0 0 4px;
cursor: pointer;
padding: 0 8px;
box-shadow: -2px 2px 5px rgba(0,0,0,.26);
box-sizing: border-box;
/*z-index: 981;*/
top: 320px !important;
position: fixed;
height: 36px;
/*background: #fff;*/
background-color: rgb(255, 255, 255);
border-radius: 4px 0 0 4px;
cursor: pointer;
padding: 0 8px;
box-shadow: -2px 2px 5px rgba(0, 0, 0, .26);
box-sizing: border-box;
/*z-index: 981;*/
}
#filters_switcher_toggle {
top: 320px !important;
position: fixed;
height: 36px;
background-color: var(--secondary-color);
border-radius: 4px 0 0 4px;
cursor: pointer;
padding: 0 2px;
box-shadow: -2px 2px 5px rgba(0,0,0,.26);
box-sizing: border-box;
/*z-index: 981;*/
right: 0;
top: 320px !important;
position: fixed;
height: 36px;
background-color: var(--secondary-color);
border-radius: 4px 0 0 4px;
cursor: pointer;
padding: 0 2px;
box-shadow: -2px 2px 5px rgba(0, 0, 0, .26);
box-sizing: border-box;
/*z-index: 981;*/
right: 0;
}
/*Sidebar*/
@ -70,166 +78,170 @@
/* color: rgba(0,0,0,.7);*/
/*}*/
/*Sidebar Header logo */
#sidebar_main .sidebar_main_header .portalLogo{
background: url("/assets/logo-large-monitor.png") no-repeat;
background-size: contain ;
margin-left: 35px;
margin-top: 5px;
height:50px;
#sidebar_main .sidebar_main_header .portalLogo {
background: url("/assets/common-assets/logo-large-monitor.png") no-repeat;
background-size: contain;
margin-left: 35px;
margin-top: 5px;
height: 50px;
}
.sidebar_mini #sidebar_main .sidebar_main_header .portalLogo{
background: url("/assets/logo-small-monitor.png") no-repeat !important;
background-size: 50px 50px !important;
.sidebar_mini #sidebar_main .sidebar_main_header .portalLogo {
background: url("/assets/common-assets/logo-small-monitor.png") no-repeat;
background-size: contain;
margin-right: 15px;
margin-left: 15px;
}
/*Sidebar Rotation*/
.stakeholderPage #sidebar_main .menu_section > ul > li.uk-active {
width: 150px;
height: 100%;
transition: 0.70s;
-webkit-transition: 0.70s;
-moz-transition: 0.70s;
-ms-transition: 0.70s;
-o-transition: 0.70s;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
margin: 63px auto 63px auto;
}
.stakeholderPage #sidebar_main .menu_section > ul > li {
transition: 0.70s;
-webkit-transition: 0.70s;
-moz-transition: 0.70s;
-ms-transition: 0.70s;
-o-transition: 0.70s;
/*display: block;*/
/*text-align: center;*/
/*margin-right: auto;*/
/*margin-left: auto;*/
width: 150px;
height: 100%;
transition: 0.70s;
-webkit-transition: 0.70s;
-moz-transition: 0.70s;
-ms-transition: 0.70s;
-o-transition: 0.70s;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
margin: 63px auto 63px auto;
}
.stakeholderPage.sidebar_mini #sidebar_main .menu_section > ul > li.uk-active{
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
width: inherit;
height: inherit;
margin: 0;
.stakeholderPage #sidebar_main .menu_section > ul > li {
transition: 0.70s;
-webkit-transition: 0.70s;
-moz-transition: 0.70s;
-ms-transition: 0.70s;
-o-transition: 0.70s;
/*display: block;*/
/*text-align: center;*/
/*margin-right: auto;*/
/*margin-left: auto;*/
}
.stakeholderPage.sidebar_mini #sidebar_main .menu_section > ul > li.uk-active {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
width: inherit;
height: inherit;
margin: 0;
}
.stakeholderPage #sidebar_main #sidebar_content, .stakeholderPage #sidebar_switcher_toggle {
border-color: var(--monitor-portal-color);
border-color: var(--monitor-portal-color);
}
/* Section Tools*/
.dashboard .section {
padding-top: 10px;
padding-bottom: 10px;
padding-right: 10px;
border: rgba(0, 0, 0, 0) solid 1px;
position: relative;
padding-top: 10px;
padding-bottom: 10px;
padding-right: 10px;
border: rgba(0, 0, 0, 0) solid 1px;
position: relative;
}
.dashboard .section .tools {
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, -100%);
display: none;
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, -100%);
display: none;
}
.dashboard .section:not(.list-view) {
border: white solid 1px;
border: white solid 1px;
}
.dashboard .section:not(.list-view):hover {
border: var(--secondary-color) solid 1px;
border: var(--secondary-color) solid 1px;
}
.dashboard .section:not(.list-view):hover .tools {
display: block;
width: 50px;
background: var(--secondary-color) ;
color: white;
-webkit-clip-path: polygon(15% 0%, 100% 0, 100% 100%, 0% 100%);
clip-path: polygon(20% 0%, 80% 0, 100% 100%, 0% 100%);
display: block;
width: 50px;
background: var(--secondary-color);
color: white;
-webkit-clip-path: polygon(15% 0%, 100% 0, 100% 100%, 0% 100%);
clip-path: polygon(20% 0%, 80% 0, 100% 100%, 0% 100%);
}
.dashboard .section:not(.list-view):hover .tools a{
color: white;
.dashboard .section:not(.list-view):hover .tools a {
color: white;
}
.dashboard .section:hover .tools .actions a:last-child {
margin-left: 3px
;
margin-left: 3px;
}
/* New section*/
.dashboard .new-section {
padding-top: 10px;
padding-bottom: 10px;
padding-right: 10px;
border: #cecece dashed 2px;
background-color: white;
min-height: 100px;
position: relative;
padding-top: 10px;
padding-bottom: 10px;
padding-right: 10px;
border: #cecece dashed 2px;
background-color: white;
min-height: 100px;
position: relative;
}
.dashboard .new-section .tools {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.dashboard .new-section .tools .md-btn {
background-color: var(--secondary-color);
position: relative;
min-width: 40px;
min-height: 40px;
border-radius: 50%;
background-color: var(--secondary-color);
position: relative;
min-width: 40px;
min-height: 40px;
border-radius: 50%;
}
.dashboard .new-section .tools .md-btn .material-icons {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin: 0;
}
/*Search */
#searchFormPanel{
margin-top: 30px;
height: 250px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin: 0;
}
.tm-header .uk-navbar-container{
background-color: var(--background-color) !important;
box-shadow: none !important;
/*Search */
#searchFormPanel {
margin-top: 30px;
height: 250px;
}
.tm-header .uk-navbar-container {
background-color: var(--background-color) !important;
box-shadow: none !important;
}
.visibility {
border-right: 1px solid var(--secondary-color);
border-bottom: 1px solid var(--secondary-color);
padding: 10px 8px;
margin-right: 4px;
color: rgba(var(--text-color), 0.5);
border-right: 1px solid rgba(var(--secondary-color-rgb), 0.5);
border-bottom: 1px solid rgba(var(--secondary-color-rgb), 0.5);
padding: 10px 8px;
margin-right: 4px;
color: rgba(var(--text-color-rgb), 0.5);
}
.visibility.small {
padding: 3px 2px;
padding: 3px 2px;
}
.descriptionIcon{
position: absolute;
bottom: 3px;
left: 3px;
}
.descriptionIcon {
position: absolute;
bottom: 3px;
left: 3px;
}