Production release February 2024 [CONNECT] #34
|
@ -1,8 +1,8 @@
|
||||||
<aside id="sidebar_main" class="uk-visible@m">
|
<div id="sidebar_main" uk-sticky="end: .sidebar_main_swipe;" [attr.offset]="offset" class="uk-visible@m">
|
||||||
<div sidebar-content>
|
<div sidebar-content>
|
||||||
<ng-container *ngTemplateOutlet="menu; context: {mobile: false}"></ng-container>
|
<ng-container *ngTemplateOutlet="menu; context: {mobile: false}"></ng-container>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</div>
|
||||||
<div class="uk-hidden@m">
|
<div class="uk-hidden@m">
|
||||||
<div id="sidebar_offcanvas" #sidebar_offcanvas [attr.uk-offcanvas]="'overlay: true'">
|
<div id="sidebar_offcanvas" #sidebar_offcanvas [attr.uk-offcanvas]="'overlay: true'">
|
||||||
<div class="uk-offcanvas-bar uk-padding-remove">
|
<div class="uk-offcanvas-bar uk-padding-remove">
|
||||||
|
|
|
@ -30,6 +30,7 @@ export class SideBarComponent implements OnInit, AfterViewInit, OnDestroy, OnCha
|
||||||
@Input() queryParamsHandling;
|
@Input() queryParamsHandling;
|
||||||
@ViewChild("nav") nav: ElementRef;
|
@ViewChild("nav") nav: ElementRef;
|
||||||
@ViewChild("sidebar_offcanvas") sidebar_offcanvas: ElementRef;
|
@ViewChild("sidebar_offcanvas") sidebar_offcanvas: ElementRef;
|
||||||
|
public offset: number;
|
||||||
public properties = properties;
|
public properties = properties;
|
||||||
private subscriptions: any[] = [];
|
private subscriptions: any[] = [];
|
||||||
private init: boolean = false;
|
private init: boolean = false;
|
||||||
|
@ -45,6 +46,9 @@ export class SideBarComponent implements OnInit, AfterViewInit, OnDestroy, OnCha
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
if (typeof document !== "undefined") {
|
||||||
|
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height'));
|
||||||
|
}
|
||||||
this.setActiveMenuItem();
|
this.setActiveMenuItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -888,7 +888,7 @@ export class ParsingFunctions {
|
||||||
counts.push({name: 'downloads', icon: 'download', value: element.count, order: 1});
|
counts.push({name: 'downloads', icon: 'download', value: element.count, order: 1});
|
||||||
measure.downloads = element.count;
|
measure.downloads = element.count;
|
||||||
}
|
}
|
||||||
if (element.id == 'influence_alt') {
|
if (element.id == 'influence_alt' || element.id == 'citation_count') {
|
||||||
bip.push({name: 'citations', icon: 'cite', value: element.score, order: 2});
|
bip.push({name: 'citations', icon: 'cite', value: element.score, order: 2});
|
||||||
measure.citations = element.score;
|
measure.citations = element.score;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,30 @@
|
||||||
<aside *ngIf="stakeholder" id="sidebar_main">
|
<div class="uk-flex">
|
||||||
<div sidebar-content>
|
<aside *ngIf="stakeholder" uk-sticky="end: .sidebar_main_swipe;" [attr.offset]="offset" id="sidebar_main">
|
||||||
<div class="back">
|
<div sidebar-content>
|
||||||
<a [routerLink]="'/admin/' + stakeholder.alias" class="uk-flex uk-flex-middle uk-flex-center">
|
<div class="back">
|
||||||
<div class="uk-width-auto">
|
<a [routerLink]="'/admin/' + stakeholder.alias" class="uk-flex uk-flex-middle uk-flex-center">
|
||||||
<icon name="west" [flex]="true" ratio="1.3"></icon>
|
<div class="uk-width-auto">
|
||||||
</div>
|
<icon name="west" [flex]="true" ratio="1.3"></icon>
|
||||||
<span class="uk-width-expand uk-text-truncate uk-margin-left hide-on-close">Indicators</span>
|
</div>
|
||||||
</a>
|
<span class="uk-width-expand uk-text-truncate uk-margin-left hide-on-close">Indicators</span>
|
||||||
</div>
|
</a>
|
||||||
<div class="menu_section uk-margin-large-top">
|
</div>
|
||||||
<ul class="uk-list uk-nav uk-nav-default" transition-group [id]="'topics'"
|
<div class="menu_section uk-margin-large-top">
|
||||||
uk-nav="duration: 400">
|
<ul class="uk-list uk-nav uk-nav-default" transition-group [id]="'topics'"
|
||||||
<li *ngFor="let topic of stakeholder.topics; let i=index" class="uk-parent" [class.uk-active]="topicIndex === i"
|
uk-nav="duration: 400">
|
||||||
transition-group-item>
|
<li *ngFor="let topic of stakeholder.topics; let i=index" class="uk-parent" [class.uk-active]="topicIndex === i"
|
||||||
<a [routerLink]="'/admin/'+stakeholder.alias + '/indicators/' + topic.alias"
|
transition-group-item>
|
||||||
[title]="topic.name" class="uk-visible-toggle uk-flex uk-flex-middle">
|
<a [routerLink]="'/admin/'+stakeholder.alias + '/indicators/' + topic.alias"
|
||||||
<div *ngIf="topic.icon" class="uk-width-auto">
|
[title]="topic.name" class="uk-visible-toggle uk-flex uk-flex-middle">
|
||||||
<icon class="menu-icon" [svg]="topic.icon" ratio="0.9" [flex]="true"></icon>
|
<div *ngIf="topic.icon" class="uk-width-auto">
|
||||||
</div>
|
<icon class="menu-icon" [svg]="topic.icon" ratio="0.9" [flex]="true"></icon>
|
||||||
<span [class.hide-on-close]="topic.icon"
|
</div>
|
||||||
class="uk-width-expand uk-text-truncate uk-margin-small-left">
|
<span [class.hide-on-close]="topic.icon"
|
||||||
|
class="uk-width-expand uk-text-truncate uk-margin-small-left">
|
||||||
{{topic.name}}
|
{{topic.name}}
|
||||||
</span>
|
</span>
|
||||||
<span class="uk-margin-xsmall-left hide-on-close" [class.uk-invisible-hover]="topicIndex !== i"
|
<span class="uk-margin-xsmall-left hide-on-close" [class.uk-invisible-hover]="topicIndex !== i"
|
||||||
(click)="$event.stopPropagation();$event.preventDefault()">
|
(click)="$event.stopPropagation();$event.preventDefault()">
|
||||||
<a class="uk-link-reset uk-flex uk-flex-middle">
|
<a class="uk-link-reset uk-flex uk-flex-middle">
|
||||||
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(topic.visibility)"
|
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(topic.visibility)"
|
||||||
ratio="0.6"></icon>
|
ratio="0.6"></icon>
|
||||||
|
@ -90,17 +91,17 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
<span class="uk-nav-parent-icon hide-on-close"></span>
|
<span class="uk-nav-parent-icon hide-on-close"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul *ngIf="isBrowser || topicIndex === i" class="uk-nav-sub" [id]="'categories-' + i.toString()"
|
<ul *ngIf="isBrowser || topicIndex === i" class="uk-nav-sub" [id]="'categories-' + i.toString()"
|
||||||
transition-group>
|
transition-group>
|
||||||
<li *ngFor="let category of topic.categories; let j=index" transition-group-item class="uk-visible-toggle"
|
<li *ngFor="let category of topic.categories; let j=index" transition-group-item class="uk-visible-toggle"
|
||||||
[class.uk-active]="categoryIndex == j">
|
[class.uk-active]="categoryIndex == j">
|
||||||
<a (click)="chooseCategory(j)" [title]="category.name">
|
<a (click)="chooseCategory(j)" [title]="category.name">
|
||||||
<div class="uk-flex uk-flex-middle uk-width-1-1">
|
<div class="uk-flex uk-flex-middle uk-width-1-1">
|
||||||
<span class="uk-width-expand uk-text-truncate">{{category.name}}</span>
|
<span class="uk-width-expand uk-text-truncate">{{category.name}}</span>
|
||||||
<span class="uk-margin-xsmall-left hide-on-close" [class.uk-invisible-hover]="categoryIndex !== j"
|
<span class="uk-margin-xsmall-left hide-on-close" [class.uk-invisible-hover]="categoryIndex !== j"
|
||||||
(click)="$event.stopPropagation();$event.preventDefault()">
|
(click)="$event.stopPropagation();$event.preventDefault()">
|
||||||
<a class="uk-link-reset uk-flex uk-flex-middle">
|
<a class="uk-link-reset uk-flex uk-flex-middle">
|
||||||
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(category.visibility)"
|
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(category.visibility)"
|
||||||
ratio="0.6"></icon>
|
ratio="0.6"></icon>
|
||||||
|
@ -164,34 +165,34 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li *ngIf="isCurator">
|
||||||
|
<a (click)="editCategoryOpen(); $event.preventDefault()" class="uk-flex uk-flex-middle">
|
||||||
|
<icon name="add" [flex]="true"></icon>
|
||||||
|
<span class="hide-on-close">Create new category</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li *ngIf="isCurator" class="hide-on-close">
|
||||||
|
<a (click)="editTopicOpen(-1); $event.preventDefault()">
|
||||||
|
<div class="uk-flex uk-flex-middle">
|
||||||
|
<div class="uk-width-auto">
|
||||||
|
<icon class="menu-icon" name="add" [flex]="true"></icon>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
<span class="uk-width-expand uk-text-truncate uk-margin-small-left hide-on-close">Create new topic</span>
|
||||||
</li>
|
|
||||||
<li *ngIf="isCurator">
|
|
||||||
<a (click)="editCategoryOpen(); $event.preventDefault()" class="uk-flex uk-flex-middle">
|
|
||||||
<icon name="add" [flex]="true"></icon>
|
|
||||||
<span class="hide-on-close">Create new category</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li *ngIf="isCurator" class="hide-on-close">
|
|
||||||
<a (click)="editTopicOpen(-1); $event.preventDefault()">
|
|
||||||
<div class="uk-flex uk-flex-middle">
|
|
||||||
<div class="uk-width-auto">
|
|
||||||
<icon class="menu-icon" name="add" [flex]="true"></icon>
|
|
||||||
</div>
|
</div>
|
||||||
<span class="uk-width-expand uk-text-truncate uk-margin-small-left hide-on-close">Create new topic</span>
|
</a>
|
||||||
</div>
|
</li>
|
||||||
</a>
|
</ul>
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</aside>
|
||||||
</aside>
|
<div #pageContent *ngIf="stakeholder && filters" page-content>
|
||||||
<div #pageContent *ngIf="stakeholder && filters" page-content>
|
<div actions>
|
||||||
<div actions>
|
<div *ngIf="stakeholder.topics.length > 0" class="uk-flex uk-flex-center uk-margin-medium-top uk-flex-right@m uk-width-1-1">
|
||||||
<div *ngIf="stakeholder.topics.length > 0" class="uk-flex uk-flex-center uk-margin-medium-top uk-flex-right@m uk-width-1-1">
|
|
||||||
<button class="uk-button uk-button-primary uk-flex uk-flex-middle">
|
<button class="uk-button uk-button-primary uk-flex uk-flex-middle">
|
||||||
<icon name="visibility" [flex]="true"></icon>
|
<icon name="visibility" [flex]="true"></icon>
|
||||||
<span class="uk-margin-small-left uk-margin-small-right">Preview</span>
|
<span class="uk-margin-small-left uk-margin-small-right">Preview</span>
|
||||||
|
@ -216,17 +217,17 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul *ngIf="stakeholder.topics.length > 0 && stakeholder.topics[topicIndex].categories.length > 0 && stakeholder.topics[topicIndex].categories[categoryIndex]"
|
<ul *ngIf="stakeholder.topics.length > 0 && stakeholder.topics[topicIndex].categories.length > 0 && stakeholder.topics[topicIndex].categories[categoryIndex]"
|
||||||
transition-group class="uk-tab uk-margin-xsmall-top" [id]="'subCategories'">
|
transition-group class="uk-tab uk-margin-xsmall-top" [id]="'subCategories'">
|
||||||
<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 class="uk-visible-toggle uk-flex" [class.uk-active]="subCategoryIndex === i" transition-group-item>
|
<li class="uk-visible-toggle uk-flex" [class.uk-active]="subCategoryIndex === i" transition-group-item>
|
||||||
<a (click)="chooseSubcategory(i)">
|
<a (click)="chooseSubcategory(i)">
|
||||||
<span class="uk-text-uppercase">{{subCategory.name}}</span>
|
<span class="uk-text-uppercase">{{subCategory.name}}</span>
|
||||||
</a>
|
</a>
|
||||||
<span class="uk-flex uk-flex-column uk-flex-center uk-margin-small-left"
|
<span class="uk-flex uk-flex-column uk-flex-center uk-margin-small-left"
|
||||||
[class.uk-invisible-hover]="subCategoryIndex !== i"
|
[class.uk-invisible-hover]="subCategoryIndex !== i"
|
||||||
(click)="$event.stopPropagation();$event.preventDefault()">
|
(click)="$event.stopPropagation();$event.preventDefault()">
|
||||||
<a class="uk-link-reset uk-flex uk-flex-middle">
|
<a class="uk-link-reset uk-flex uk-flex-middle">
|
||||||
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(subCategory.visibility)"
|
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(subCategory.visibility)"
|
||||||
ratio="0.6"></icon>
|
ratio="0.6"></icon>
|
||||||
|
@ -306,24 +307,26 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
|
</li>
|
||||||
|
</ng-template>
|
||||||
|
<li *ngIf="isCurator">
|
||||||
|
<a (click)="editSubCategoryOpen(); $event.preventDefault()" class="uk-flex uk-flex-middle">
|
||||||
|
<icon name="add" [flex]="true"></icon>
|
||||||
|
<span class="uk-text-uppercase">Create new subcategory</span>
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ng-template>
|
</ul>
|
||||||
<li *ngIf="isCurator">
|
</div>
|
||||||
<a (click)="editSubCategoryOpen(); $event.preventDefault()" class="uk-flex uk-flex-middle">
|
<div inner>
|
||||||
<icon name="add" [flex]="true"></icon>
|
<input #file id="import-file" type="file" class="uk-hidden"
|
||||||
<span class="uk-text-uppercase">Create new subcategory</span>
|
(change)="indicators.fileChangeEvent($event, this.index)"/>
|
||||||
</a>
|
<indicators #indicators [topicIndex]="topicIndex" [categoryIndex]="categoryIndex"
|
||||||
</li>
|
[subcategoryIndex]="subCategoryIndex" [user]="user"
|
||||||
</ul>
|
[stakeholder]="stakeholder" [changed]="change.asObservable()"></indicators>
|
||||||
</div>
|
</div>
|
||||||
<div inner>
|
|
||||||
<input #file id="import-file" type="file" class="uk-hidden"
|
|
||||||
(change)="indicators.fileChangeEvent($event, this.index)"/>
|
|
||||||
<indicators #indicators [topicIndex]="topicIndex" [categoryIndex]="categoryIndex"
|
|
||||||
[subcategoryIndex]="subCategoryIndex" [user]="user"
|
|
||||||
[stakeholder]="stakeholder" [changed]="change.asObservable()"></indicators>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<modal-alert #deleteModal classTitle="uk-background-primary uk-light" (alertOutput)="deleteElement()"
|
<modal-alert #deleteModal classTitle="uk-background-primary uk-light" (alertOutput)="deleteElement()"
|
||||||
[overflowBody]="false">
|
[overflowBody]="false">
|
||||||
<div [class.uk-invisible]="loading" class="uk-position-relative">
|
<div [class.uk-invisible]="loading" class="uk-position-relative">
|
||||||
|
|
|
@ -38,6 +38,7 @@ export class TopicComponent implements OnInit, OnDestroy, AfterViewInit, IDeacti
|
||||||
private topicSubscriptions: any[] = [];
|
private topicSubscriptions: any[] = [];
|
||||||
private subscriptions: any[] = [];
|
private subscriptions: any[] = [];
|
||||||
public properties: EnvProperties = properties;
|
public properties: EnvProperties = properties;
|
||||||
|
public offset: number;
|
||||||
public stakeholderUtils: StakeholderUtils = new StakeholderUtils();
|
public stakeholderUtils: StakeholderUtils = new StakeholderUtils();
|
||||||
public loading: boolean = false;
|
public loading: boolean = false;
|
||||||
public stakeholder: Stakeholder;
|
public stakeholder: Stakeholder;
|
||||||
|
@ -95,6 +96,9 @@ export class TopicComponent implements OnInit, OnDestroy, AfterViewInit, IDeacti
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
|
if (typeof document !== "undefined") {
|
||||||
|
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height'));
|
||||||
|
}
|
||||||
let subscription: Subscription;
|
let subscription: Subscription;
|
||||||
this.subscriptions.push(this.topicIndexSubject.asObservable().subscribe(index => {
|
this.subscriptions.push(this.topicIndexSubject.asObservable().subscribe(index => {
|
||||||
this.topicChanged(() => {
|
this.topicChanged(() => {
|
||||||
|
|
Loading…
Reference in New Issue