[Trunk | Connect]:

1. community.component.ts: Add fields 'public thresholdDescription: number = 550;' and 'subscribers: number = 0;' and method 'public countSubscribersEvent($event)'.
2. community.component.html: 
	a. Move curatos, projects & content providers, zenodo communities inside tab 'Summary'.
	b. In tab names add class 'tab-header' and remove 'uk-text-bold'.
	c. Cut description according to 'thresholdDescription'.
3. curators.component.html: Add 'uk-inline-block' class in <a>, in order not to break name and surname of a curator into 2 lines.
4. results.component.ts: Add 'view all' link on top right corner too and change class of link to 'uk-button uk-button-text'.
5. subscribe.component.ts: Add output event when getting subscribers number (used by community.component to add margin in needed).


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-connect-portal/trunk@58616 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2020-05-06 16:08:49 +00:00
parent f5f99307f9
commit e25b10d50d
5 changed files with 89 additions and 68 deletions

View File

@ -186,7 +186,7 @@
</ng-template>
<div *ngIf="communityInfo" class="uk-section uk-padding-remove-top uk-padding-remove-bottom">
<div *ngIf="communityInfo && community" class="uk-section uk-padding-remove-top uk-padding-remove-bottom">
<div class="uk-padding-small">
<div class="uk-container uk-container-large uk-margin-top"
*ngIf="communityId">
@ -199,94 +199,43 @@
class="subtitle uk-margin-remove">
{{community.shortTitle}}
</div>
<div class="uk-margin-top">
<div *ngIf="isRouteEnabled('/curators')" class="uk-margin-top">
<curators [longView]="false" [managers]="community.managers" [communityId]="communityId"></curators>
</div>
<div>
<span *ngIf="projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)">
<span class="uk-text-muted">Projects: </span>
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
routerLinkActive="router-link-active" [routerLink]="searchLinkToProjects">
{{projectTotal|number}}
</a>
</span>
<span *ngIf="contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)"
[class]="'uk-display-inline-block '+((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)) ? 'uk-margin-left' : '')">
<span class="uk-text-muted">Content Providers: </span>
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
routerLinkActive="router-link-active" [routerLink]="searchLinkToDataProviders">
{{contentProviderTotal|number}}
</a>
</span>
<span *ngIf="projectsCalculated && contentProvidersCalculated &&
((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects))
|| (contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)))"
class="uk-icon uk-text-muted uk-margin-small-left"
title="{{buildProjectsAndContentProvidesTooltip()}}"
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
<circle cx="10.44" cy="14.42" r="1.05"></circle>
<path fill="none" stroke="#000" stroke-width="1.2" d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
</svg>
</span>
</div>
<div *ngIf="(zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0) > 0) && isRouteEnabled(shareInZenodoPage)" class="">
<span class="lowOpacityColor uk-text-muted">Linked to </span>
<a class="portal-link" [queryParams]=params routerLinkActive="router-link-active" [routerLink]="shareInZenodoPage">
<span>{{zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0)}}</span>
</a>
<span class="lowOpacityColor uk-text-muted"> Zenodo Communities</span>
<span class="uk-icon uk-text-muted uk-margin-small-left"
title="{{buildZenodoCommunitiesTooltip()}}"
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
<circle cx="10.44" cy="14.42" r="1.05"></circle>
<path fill="none" stroke="#000" stroke-width="1.2" d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
</svg>
</span>
</div>
</div>
</div>
<div>
<div class="main-tabs-div">
<ul uk-tab class="uk-text-truncate main-tabs uk-margin-remove uk-child-width-expand uk-width-3-4" uk-switcher="connect: .main-tabs-content">
<li class="uk-padding-remove">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Summary</div>
<div class="tab-header">Summary</div>
</a>
</li>
<li *ngIf="publicationTotal && publicationTotal > 0 && isEntityEnabled('publication')"
class="uk-padding-remove" (click)="show='overview'; searchResearchResults('publication', publicationTotal, publicationResults)">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Publications</div><div class="uk-margin-top number">{{publicationTotal|number}}</div>
<div class="tab-header">Publications</div><div class="number">{{publicationTotal|number}}</div>
</a>
</li>
<li *ngIf="researchDataTotal && researchDataTotal > 0 && isEntityEnabled('dataset')"
class="uk-padding-remove" (click)="show='overview'; searchResearchResults('dataset', researchDataTotal, researchDataResults)">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Research Data</div><div class="uk-margin-top number">{{researchDataTotal|number}}</div>
<div class="tab-header">Research Data</div><div class="number">{{researchDataTotal|number}}</div>
</a>
</li>
<li *ngIf="softwareTotal && softwareTotal > 0 && isEntityEnabled('software')"
class="uk-padding-remove" (click)="show='overview'; searchResearchResults('software', softwareTotal, softwareResults)">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Software</div><div class="uk-margin-top number">{{softwareTotal|number}}</div>
<div class="tab-header">Software</div><div class="number">{{softwareTotal|number}}</div>
</a>
</li>
<li *ngIf="orpTotal && orpTotal > 0 && isEntityEnabled('orp')"
class="uk-padding-remove" (click)="show='overview'; searchResearchResults('other', orpTotal, orpResults)">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Other Research</div><div class="uk-margin-top number">{{orpTotal|number}}</div></a>
<div class="tab-header">Other Research</div><div class="number">{{orpTotal|number}}</div></a>
</li>
<li *ngIf="statistics && statistics.statisticsDisplay && statistics.statisticsDisplay.isActive"
class="uk-padding-remove statistics" (click)="show='analysis'; activeTab='analytics'">
<a class="uk-width-1-1 uk-height-1-1">
<div class="uk-text-bold">Analytics</div>
<div class="uk-margin-top number">
<div class="tab-header">Analytics</div>
<div class="number">
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
<path d="M0 0h24v24H0z" fill="none"></path>
<path d="M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z"></path>
@ -300,23 +249,74 @@
<li>
<div *ngIf="community" class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding uk-inline">
<div>
<div *ngIf="isRouteEnabled('/curators')" [class]="community.managers ? 'uk-margin-small-bottom' : ''">
<curators [longView]="false" [managers]="community.managers" [communityId]="communityId"></curators>
</div>
<div [class]="community.date || subscribers ? 'uk-margin-small-bottom' : ''">
<span *ngIf="community.date" class="uk-margin-right">
<span class="lowOpacityColor uk-text-muted">Created: </span> {{community.date | date:'dd-MMM-yyyy'}}
</span>
<span>
<subscribe *ngIf="communityId" [communityId]="communityId" showNumbers=true class=""></subscribe>
<subscribe *ngIf="communityId" [communityId]="communityId" showNumbers=true (countSubscribersEvent)="countSubscribersEvent($event)"></subscribe>
</span>
</div>
<div [class]="((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)) ||
(contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)))
? 'uk-margin-small-bottom' : ''">
<span *ngIf="projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)">
<span class="uk-text-muted">Projects: </span>
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
routerLinkActive="router-link-active" [routerLink]="searchLinkToProjects">
{{projectTotal|number}}
</a>
</span>
<span *ngIf="contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)"
[class]="'uk-display-inline-block '+((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)) ? 'uk-margin-left' : '')">
<span class="uk-text-muted">Content Providers: </span>
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
routerLinkActive="router-link-active" [routerLink]="searchLinkToDataProviders">
{{contentProviderTotal|number}}
</a>
</span>
<span *ngIf="projectsCalculated && contentProvidersCalculated &&
((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects))
|| (contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)))"
class="uk-icon uk-text-muted uk-margin-small-left"
title="{{buildProjectsAndContentProvidesTooltip()}}"
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
<circle cx="10.44" cy="14.42" r="1.05"></circle>
<path fill="none" stroke="#000" stroke-width="1.2" d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
</svg>
</span>
</div>
<div *ngIf="(zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0) > 0) && isRouteEnabled(shareInZenodoPage)" class="">
<span class="lowOpacityColor uk-text-muted">Linked to </span>
<a class="portal-link" [queryParams]=params routerLinkActive="router-link-active" [routerLink]="shareInZenodoPage">
<span>{{zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0)}}</span>
</a>
<span class="lowOpacityColor uk-text-muted"> Zenodo Communities</span>
<span class="uk-icon uk-text-muted uk-margin-small-left"
title="{{buildZenodoCommunitiesTooltip()}}"
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
<circle cx="10.44" cy="14.42" r="1.05"></circle>
<path fill="none" stroke="#000" stroke-width="1.2" d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
</svg>
</span>
</div>
<div *ngIf="community.description"
[class]="'uk-margin-bottom '+ ((subscribeComponent && subscribeComponent.subscribers > 0) || community.date ? 'uk-margin-top' : '')">
<div class="uk-text-muted">Description</div>
<div *ngIf="!showAllDescription" class="">
{{community.description.substring(0, 500)}}{{community.description.length > 500 ? '...' : ''}}</div>
{{community.description.substring(0, thresholdDescription)}}{{community.description.length > thresholdDescription ? '...' : ''}}</div>
<div *ngIf="showAllDescription" class="uk-overflow-auto">
<div class="uk-height-max-medium">{{community.description}}</div>
</div>
<div *ngIf="!showAllDescription && community.description.length > 500 "
<div *ngIf="!showAllDescription && community.description.length > thresholdDescription "
class="uk-animation-fade uk-margin-small-top uk-padding uk-padding-remove-top uk-position-bottom-right">
<a (click)="showAllDescription = !showAllDescription;">Read more
</a>
@ -333,14 +333,14 @@
class="uk-width-1-3 uk-padding right-column uk-inline">
<div class="uk-margin-bottom">
<div class="uk-text-muted">Subjects</div>
<span *ngFor="let subject of community.subjects.slice(0,12) let i=index">
<span *ngFor="let subject of community.subjects.slice(0,20) let i=index">
<span *ngIf="subject != ''">
<a class="portal-link"
[queryParams]="{f0:'resultsubject',fv0:createParams(subject)}"
routerLinkActive="router-link-active" [routerLink]="searchLinkToAdvancedResults" >
<span>{{subject}}</span>
</a>
<span *ngIf="i < community.subjects.length-1 && i != 11">, </span>
<span *ngIf="i < community.subjects.length-1 && i != 19">, </span>
</span>
</span>
<div class="uk-margin-top uk-animation-fade uk-padding uk-padding-remove-top uk-position-bottom-right">

View File

@ -64,6 +64,10 @@ export class CommunityComponent {
zenodoCommunityIdS = [];
showAllSubjects = false;
showAllDescription = false;
public thresholdDescription: number = 550;
subscribers: number = 0;
// TODO Unsubscribe
public subPublications;
public subResearchData;
@ -398,4 +402,8 @@ export class CommunityComponent {
tooltipContent += "</div>";
return tooltipContent;
}
public countSubscribersEvent($event){
this.subscribers = $event.value;
}
}

View File

@ -94,7 +94,7 @@
<!-- src="../../assets/common-assets/curator-default.png" alt="Curator Photo">-->
<!-- </span>-->
<a>
<a class="uk-inline-block">
<span class="user-circle-background">
<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path

View File

@ -10,6 +10,15 @@ import {SearchResult} from "../../openaireLibrary/utils/entities/searchResult";
<div *ngIf="!results && total != 0">
<div *ngIf="showLoading" class="uk-animation-fade uk-width-1-1" role="alert"><span class="loading-gif uk-align-center"></span></div>
</div>
<div *ngIf="results != null && results.length > 0">
<div class="uk-text-right">
<div>
<a class="el-content uk-button uk-button-text" [queryParams]="{type:getresultTypeLink(resultType, true), qf:false}" routerLinkActive="router-link-active" [routerLink]="properties.searchLinkToResults">
View all {{getEntityName(resultType, true, true)}}
</a>
</div>
</div>
</div>
<div *ngIf="results != null && results.length > 0 && !showLoading">
<!--<div class="uk-margin-remove-vertical uk-grid-match uk-child-width-1-1 uk-child-width-1-1@m uk-child-width-1-1@l uk-child-width-1-1@xl uk-grid-small uk-grid uk-grid-stack" uk-grid="">
<li *ngFor="let item of results; let i = index">
@ -46,8 +55,8 @@ import {SearchResult} from "../../openaireLibrary/utils/entities/searchResult";
<div *ngIf="results != null && results.length > 0">
<div class="uk-text-right">
<div>
<a class="el-content uk-link portal-link uk-text-capitalize" [queryParams]="{type:getresultTypeLink(resultType, true), qf:false}" routerLinkActive="router-link-active" [routerLink]="properties.searchLinkToResults">
View all {{getEntityName(resultType, true, true)}} >
<a class="el-content uk-button uk-button-text" [queryParams]="{type:getresultTypeLink(resultType, true), qf:false}" routerLinkActive="router-link-active" [routerLink]="properties.searchLinkToResults">
View all {{getEntityName(resultType, true, true)}}
</a>
</div>
</div>

View File

@ -68,6 +68,7 @@ export class SubscribeComponent {
subscribed: boolean = null;
@Input() properties: EnvProperties;
subscribers: number = null;
@Output() countSubscribersEvent = new EventEmitter();
showLoginAlert: Boolean = false;
@ViewChild(AlertModal) alert;
private user: User;
@ -145,6 +146,9 @@ export class SubscribeComponent {
this._subscribeService.getNumberOfCommunitySubscribers(this.properties, this.communityId).subscribe(
res => {
this.subscribers = (res && res.value) ? res.value : 0;//(res && res.subscribers && res.subscribers.length) ? res.subscribers.length : 0;
this.countSubscribersEvent.emit({
value: this.subscribers
});
},
error => {
this.handleError("Error getting community subscribers for community with id: " + this.communityId, error);