Zenodo communities:

add link to zenodo communities in community dashboard
	add link in the menu
	minor changes in zenodo page

Update content page

Invite:move  mini view to the right of the dashboard, minor layout changes


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-connect-portal/trunk@53968 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
argiro.kokogiannaki 2018-11-26 13:07:58 +00:00
parent 36c0812cab
commit 5729dfabd4
7 changed files with 144 additions and 100 deletions

View File

@ -71,9 +71,7 @@ export class AppComponent {
this._communitiesService.getCommunities(this.properties, this.properties.communitiesAPI).subscribe (
communities => {
this.userMenuItems =[ new MenuItem("","My profile","","",false,[],[],{}),
new MenuItem("","My links","","/myclaims",false,[],["/myclaims"],(data['communityId'] && typeof document !== 'undefined' && ConnectHelper.isProduction(document.location.hostname))?{}:{communityId:data['communityId']}),
];
for(var com of communities){
if((data['communityId'] && data['communityId']!="" && com.communityId == data['communityId'])
|| (ConnectHelper.getCommunityFromDomain(document.location.hostname) == com.communityId )){
@ -98,8 +96,7 @@ export class AppComponent {
{
rootItem: new MenuItem("share","Share","","",false,[],["/participate/deposit-publications","/participate/deposit-datasets","/participate/share-zenodo"],{communityId:community.communityId}),
items: [
new MenuItem("","in Zenodo","","/participate/share-zenodo",false,[],[],{communityId:community.communityId}),
new MenuItem("","in other content providers","","",false,[],[],{}),
new MenuItem("","Zenodo Communities","","/participate/share-zenodo",false,[],["/participate/share-zenodo"],{communityId:community.communityId}),
new MenuItem("","Publications","","/participate/deposit-publications",false,["publication"],["/participate/deposit-publications"],{communityId:community.communityId}),
new MenuItem("","Research Data","","/participate/deposit-datasets",false,["dataset"],["/participate/deposit-datasets"],{communityId:community.communityId})]
},
@ -123,6 +120,9 @@ export class AppComponent {
if(this.properties.showContent){
this.bottomMenuItems.push(new MenuItem("","Content Policy","","/content",false,[],[],{}));
}
this.userMenuItems =[
// new MenuItem("","My links","","/myclaims",false,[],["/myclaims"],(data['communityId'] && typeof document !== 'undefined' && ConnectHelper.isProduction(document.location.hostname))?{}:{communityId:data['communityId']}),
];
}else{
this.bottomMenuItems = [
@ -132,6 +132,10 @@ export class AppComponent {
if(this.properties.showContent){
this.bottomMenuItems.push(new MenuItem("","Content Policy","","/content",false,[],[],{}));
}
this.userMenuItems =[ new MenuItem("","My profile","","",false,[],[],{}),
new MenuItem("","My links","","/myclaims",false,[],["/myclaims"],(data['communityId'] && typeof document !== 'undefined' && ConnectHelper.isProduction(document.location.hostname))?{}:{communityId:data['communityId']}),
new MenuItem("","Invite users","","/invite",false,[],[],(data['communityId'] && typeof document !== 'undefined' && ConnectHelper.isProduction(document.location.hostname))?{}:{communityId:data['communityId']}),
];
}
this.showMenu = true;

View File

@ -1,7 +1,7 @@
<div class=" uk-section uk-margin-small-top tm-middle uk-container" id="tm-main">
<div class="uk-container uk-margin-bottom">
<div class="uk-container uk-margin-bottom uk-grid">
<div class="uk-width-expand uk-padding-remove">
<article *ngIf="communityInfo" class="uk-article ">
<div *ngIf="communityId == null || communityId == ''" class="uk-child-width-1-6@l uk-child-width-1-6@m uk-child-width-1-3@s uk-text-center uk-alert uk-alert-primary">
No community chosen
@ -51,10 +51,15 @@
</span>
<span *ngIf="community.date != null" class="uk-margin-left"> Created: {{community.date | date:'dd-MM-yyyy'}}</span>
<subscribe *ngIf="communityId != null" [communityId]="communityId" showNumbers=true class="uk-margin-left"></subscribe>
<span *ngIf="masterZenodoCommunity || zenodoCommunityIdS.length > 0 && IsRouteEnabled('/participate/share-zenodo')" class="uk-margin-left">
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/participate/share-zenodo" >
Zenodo communities <span *ngIf=" zenodoCommunityIdS.length > 0">: {{zenodoCommunityIdS.length}}</span>
</a>
</span>
</p>
</div>
<div *ngIf="communityId != null && communityId != ''" class="uk-child-width-1-6@l uk-child-width-1-6@m uk-child-width-1-3@s uk-text-center uk-grid" uk-grid="">
<div *ngIf="publicationTotal != null && IsEntityEnabled('publication')" class="uk-first-column">
<div *ngIf="publicationTotal != null && IsEntityEnabled('publication') && IsRouteEnabled('/search/find/publications')" class="uk-first-column">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/search/find/publications" ><h3 class="uk-card-title">{{publicationTotal|number}}</h3>
@ -62,7 +67,7 @@
</div>
</div>
</div>
<div *ngIf="researchDataTotal != null && IsEntityEnabled('dataset')">
<div *ngIf="researchDataTotal != null && IsEntityEnabled('dataset') && IsRouteEnabled('/search/find/datasets')">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/search/find/datasets"><h3 class="uk-card-title">{{researchDataTotal|number}}</h3>
@ -70,7 +75,7 @@
</div>
</div>
</div>
<div *ngIf="softwareTotal != null && IsEntityEnabled('software')">
<div *ngIf="softwareTotal != null && IsEntityEnabled('software') && IsRouteEnabled('/search/find/software')">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/search/find/software"><h3 class="uk-card-title">{{softwareTotal|number}}</h3>
@ -78,7 +83,7 @@
</div>
</div>
</div>
<div *ngIf="orpTotal != null && IsEntityEnabled('orp')">
<div *ngIf="orpTotal != null && IsEntityEnabled('orp') && IsRouteEnabled('/search/find/other')">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/search/find/other"><h3 class="uk-card-title">{{orpTotal|number}}</h3>
@ -86,7 +91,7 @@
</div>
</div>
</div>
<div *ngIf="projectTotal != null && IsEntityEnabled('project')">
<div *ngIf="projectTotal != null && IsEntityEnabled('project') && IsRouteEnabled('/search/find/projects')">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a routerLinkActive="router-link-active" routerLink="/search/find/projects"><h3 class="uk-card-title">{{projectTotal|number}}</h3>
@ -94,15 +99,8 @@
</div>
</div>
</div>
<!-- <div>
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div *ngIf="organizationTotal != null">
<a [queryParams]=params routerLinkActive="router-link-active" routerLink="/search/find/organizations"><h3 class="uk-card-title">{{organizationTotals}}</h3>
<p>organizations</p></a>
</div>
</div>
</div> -->
<div *ngIf="contentProviderTotal != null && IsEntityEnabled('datasource')">
<div *ngIf="contentProviderTotal != null && IsEntityEnabled('datasource') && IsRouteEnabled('/search/find/dataproviders')">
<div class="uk-card uk-card-default uk-card-small uk-card-body">
<div>
<a routerLinkActive="router-link-active" routerLink="/search/find/dataproviders"><h3 class="uk-card-title">{{contentProviderTotal|number}}</h3>
@ -112,35 +110,6 @@
</div>
</div>
<!-- <div *ngIf="communityId != null && communityId != ''" class="uk-grid-small uk-margin-medium uk-grid" uk-grid="">
<div *ngIf="IsEntityEnabled('publication')" class="uk-width-expand@m">
<h2 class="uk-h3 uk-heading-line uk-text-primary">
<span>Recent publications</span>
</h2>
<results-comp [(results)]=publicationResults [(total)]=publicationTotal resultType="publication" [community]=community [params]=params></results-comp>
</div>
<div *ngIf="IsEntityEnabled('dataset')" class="uk-width-expand@m">
<h2 class="uk-h3 uk-heading-line uk-text-primary">
<span>Recent research data</span>
</h2>
<results-comp [(results)]=researchDataResults [(total)]=researchDataTotal resultType="dataset" [community]=community [params]=params></results-comp>
</div>
<div *ngIf="IsEntityEnabled('software')" class="uk-width-expand@m">
<h2 class="uk-h3 uk-heading-line uk-text-primary">
<span>Recent software</span>
</h2>
<results-comp [(results)]=softwareResults [(total)]=softwareTotal resultType="software" [community]=community [params]=params></results-comp>
</div>
<div *ngIf="IsEntityEnabled('orp')" class="uk-width-expand@m">
<h2 class="uk-h3 uk-heading-line uk-text-primary">
<span>Recent other research products</span>
</h2>
<results-comp [(results)]=orpResults [(total)]=orpTotal resultType="other" [community]=community [params]=params></results-comp>
</div>
</div> -->
<div>
<div class="uk-margin-large-top">
<h2 class="uk-h3 uk-text-primary">
@ -167,7 +136,9 @@
</article>
</div>
<div class="uk-width-1-5@m uk-width-1-1@s uk-padding-small uk-margin-large-top">
<invite [longView]=false></invite>
</div>
</div>
<invite [longView]=false></invite>
</div>

View File

@ -17,6 +17,8 @@ import {CommunityService} from "../openaireLibrary/connect/community
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {SearchEntriesService} from '../searchEntries/searchEntries.service';
import {SearchZenodoCommunitiesService} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service';
import {ZenodoCommunitiesService} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service';
import {PiwikHelper} from '../utils/piwikHelper';
@ -52,6 +54,8 @@ export class CommunityComponent {
public communityInfo = null;
public showLoading: boolean = true;
masterZenodoCommunity = null;
zenodoCommunityIdS = [];
// TODO Unsubscribe
public subPublications;
@ -68,7 +72,9 @@ export class CommunityComponent {
private _piwikService:PiwikService,
private config: ConfigurationService,
private _communityService:CommunityService,
private _searchEntriesService:SearchEntriesService) {
private _searchEntriesService:SearchEntriesService,
private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService,
private _ΖenodoCommunitieService: ZenodoCommunitiesService) {
var description = "OpenAIRE - Connect, Community Dashboard, research community";
var title = "OpenAIRE - Connect";
@ -86,15 +92,6 @@ export class CommunityComponent {
var url = data.envSpecific.baseLink+this._router.url;
this._meta.updateTag({content:url},"property='og:url'");
// this.route.queryParams.subscribe(
// communityId => {
// this.communityId = communityId['communityId'];
// if(!this.communityId){
// this.communityId = this.route.snapshot.paramMap.get('id');
// }
// });
if (this.communityId != null && this.communityId != '') {
this._communityService.getCommunity(this.properties, this.properties.communityAPI+this.communityId).subscribe (
community => {
@ -107,16 +104,39 @@ export class CommunityComponent {
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){
this.piwiksub = this._piwikService.trackView(this.properties, community.title,PiwikHelper.siteIDs[this.communityId]).subscribe();
}
if(this.community.zenodoCommunity){
this._ΖenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities+this.community.zenodoCommunity, null).subscribe(
result => {
this.masterZenodoCommunity = result;
},
error => {
// var emptyCommunity:ZenodoCommunityInfo = new ZenodoCommunityInfo();
// emptyCommunity.id = this.masterZenodoCommunityId;
// emptyCommunity.title = this.masterZenodoCommunityId;
// this.masterZenodoCommunity = emptyCommunity;
console.log("Master Zenodo community'" + this.community.zenodoCommunity + "' couldn't be loaded");
}
);
}
this._searchZenodoCommunitiesService.searchZCommunities(this.properties,this.communityId).subscribe (
result => {
this.zenodoCommunityIdS = result;
},
error => {
console.log("list of zenodo communities couldn't be loaded");
} //this.handleError('System error retrieving community profile', error)
);
//console.log(community);
});
// this._communityService.getCommunity('https://dev-openaire.d4science.org/openaire/community/'+this.communityId).subscribe (
// community => {
// this.community = community;
// this.params = {community: encodeURIComponent('"'+community.queryId+'"')};
// //console.log(community);
// });
this._searchEntriesService.getTotal(this.properties.searchAPIURLLAst+'publications/count?format=json&fq=communityid='+this.communityId).subscribe(
publicationTotal => {
@ -220,4 +240,7 @@ export class CommunityComponent {
IsEntityEnabled(entity: string) {
return this.communityInfo.entities.some(x => x['pid'] == entity && x['isEnabled']===true);
}
IsRouteEnabled(route: string) {
return this.communityInfo.pages.some(x => x['route'] == route && x['isEnabled']===true);
}
}

View File

@ -19,12 +19,15 @@ import {InviteModule} from '../utils/subscribe/invite/invite.module';
import {ManageModule} from '../utils/manage/manage.module';
import {StatisticsModule} from "../statistics/statistics.module";
import {SearchZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunitiesService.module';
import {ZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communitiesService.module';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule,
// CommunityRoutingModule,
SubscribeModule, StatisticsModule, ManageModule, InviteModule
SubscribeModule, StatisticsModule, ManageModule, InviteModule,
SearchZenodoCommunitiesServiceModule, ZenodoCommunitiesServiceModule
],
declarations: [
CommunityComponent, ResultsComponent

View File

@ -2,11 +2,49 @@
<div class=" uk-section uk-margin-small-top tm-middle uk-container" id="tm-main">
<div class="uk-container uk-margin-bottom">
<div class="uk-article-title custom-article-title">
About OpenAIRE Connect content
Content policy
</div>
<div>
<p>The Research Community Dashboard (RCD) shows a "slice" of the OpenAIRE Graph that is relevant to the research community.</p>
<p>Relevant research results are specified by users and OpenAIRE algorithms.</p>
<div class="uk-margin-left">
<span class="uk-text-large uk-text-primary">Users </span>
<div class="uk-margin-left">
Users can "claim" that a research result is relevant for a community via the "Linking" functionality of the RCD;
<div class="uk-alert uk-alert-info">Coming soon: the community managers will be able to curate the user claims to identify and reject "wrong" claims</div>
</div>
</div>
<div class="uk-margin-left">
<span class="uk-text-large uk-text-primary">OpenAIRE algorithms </span><br>
<div class="uk-margin-left">
OpenAIRE algorithms automatically assign research results to the dashboard based on the configuration specified by the community managers. Specifically:
<ul class=" uk-list ">
<li>
<b>Content providers:</b> research results collected from the selected content providers are assigned to the community
<div class="uk-alert uk-alert-info">Coming soon: configuration of additional criteria to select subsets of research results collected from a provider</div>
</li>
<li>
<b>Projects:</b> research results linked to the selected projects are assigned to the community
<div class="uk-alert uk-alert-info">Coming soon: configuration of additional criteria to select subsets of research results linked to projects</div>
</li>
<li>
<b>Subjects:</b> research results whose keywords include at least one of the specified subjects are assigned to the community (only for RCD serving research communities)
<div class="uk-alert uk-alert-info">Coming soon: GUI support for the selection of keywords from standard subject classification vocabularies and taxonomies</div>
</li>
<li>
<b>Acknowledgment statements:</b> found in full-texts (only for RCDs serving research infrastructures/initiatives)
</ul>
</div>
</div>
</div>
<p>
In this page we will provide you information about OpenAIRE Connect content.
Comming soon...
</p>
</div>
</div>

View File

@ -5,8 +5,8 @@
Share in Zenodo
</div>
<div>
<div *ngIf="masterZenodoCommunity" class="uk-animation-fade uk-alert uk-alert-primary uk-padding-small uk-margin-large-top">
<div class="uk-text-large uk-margin-bottom" >Master Zenodo community</div>
<div *ngIf="masterZenodoCommunity" class="uk-animation-fade uk-padding-small uk-margin-large-top">
<!-- <div class="uk-text-large uk-margin-bottom" >Master Zenodo community</div> -->
<div class="uk-comment-header uk-grid-medium uk-flex-middle" uk-grid>
<div class="uk-width-auto">
@ -15,12 +15,12 @@
</a>
</div>
<div class="uk-width-expand">
<h4 class="uk-comment-title uk-margin-remove">
<a *ngIf="masterZenodoCommunity.link" class="custom-external" target="_blank" href="{{masterZenodoCommunity.link}}">
<h4 class="uk-comment-title uk-margin-remove ">
<a *ngIf="masterZenodoCommunity.link" class="custom-external uk-text-primary uk-text-large uk-text-bold" target="_blank" href="{{masterZenodoCommunity.link}}">
<span *ngIf="masterZenodoCommunity.title">{{masterZenodoCommunity.title}}</span>
<span *ngIf="!masterZenodoCommunity.title">[no name available]</span>
</a>
<div *ngIf="!masterZenodoCommunity.link">
<div *ngIf="!masterZenodoCommunity.link" class="uk-text-primary uk-text-large uk-text-bold">
<span *ngIf="masterZenodoCommunity.title">{{masterZenodoCommunity.title}}</span>
<span *ngIf="!masterZenodoCommunity.title">[no name available]</span>
</div>
@ -41,7 +41,9 @@
<div class="uk-comment-body uk-text-meta">
<p *ngIf="masterZenodoCommunity.description" [innerHtml]=masterZenodoCommunity.description></p>
</div>
<hr>
</div>
</div>
<div *ngIf="zenodoSearchUtils.status == errorCodes.LOADING "
class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">

View File

@ -154,29 +154,32 @@
<div *ngIf="!longView">
<div class="uk-width-large@m uk-width-1-1@s">
<div class="uk-card uk-card-default uk-card-body">
<div class="uk-text-center uk-text-large">
<div> Invite users to subscribe </div>
<div uk-grid>
<div class="uk-width-1-6">
<span class="uk-margin-small-right" uk-icon="social"></span>
</div>
<div class="uk-width-3-5">
<input placeholder="" type="text"
class="form-control uk-input" [(ngModel)] = "recipients" id="recipients"
required >
</div>
<div class="uk-width-1-6">
<button class="uk-button" (click)="invite()">Invite</button>
</div>
</div>
<div class="uk-width-medium uk-text-muted uk-text-small style=display:none">separate multiple emails with a comma</div>
<div class="uk-text-right">
<span class="uk-margin-small-left" uk-icon="cog"></span><span class="uk-margin-small-left uk-text-small">
<a [queryParams]="communityIdParam" routerLinkActive="router-link-active" routerLink="/invite">customise it</a>
<div class="uk-card uk-card-default uk-card-body uk-padding-small">
<div class="uk-text-center uk-text-large" uk-toggle="target: #toggle-usage; animation: uk-animation-fade" style="cursor: pointer;">
<span class="uk-margin-small-right uk-icon" >
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="social" ratio="1">
<line fill="none" stroke="#000" stroke-width="1.1" x1="13.4" y1="14" x2="6.3" y2="10.7"></line><line fill="none" stroke="#000" stroke-width="1.1" x1="13.5" y1="5.5" x2="6.5" y2="8.8"></line><circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="4.6" r="2.3"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle></svg>
</span>
Invite users</div>
<div class="uk-form uk-margin-small" id="toggle-usage" hidden="hidden">
<input placeholder="Type e-mails" type="text"
class="form-control uk-input uk-form-small uk-form" [(ngModel)] = "recipients" id="recipients"
required >
<div class="uk-width-medium uk-text-muted uk-text-small">separate with commas</div>
<div class="uk-margin-small-top uk-text-center ">
<a class=" uk-button uk-button-default uk-button-small " [queryParams]="communityIdParam" routerLinkActive="router-link-active" routerLink="/invite">
<!-- <span class="uk-margin-small-left uk-icon" >
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="cog" ratio="1"><circle fill="none" stroke="#000" cx="9.997" cy="10" r="3.31"></circle><path fill="none" stroke="#000" d="M18.488,12.285 L16.205,16.237 C15.322,15.496 14.185,15.281 13.303,15.791 C12.428,16.289 12.047,17.373 12.246,18.5 L7.735,18.5 C7.938,17.374 7.553,16.299 6.684,15.791 C5.801,15.27 4.655,15.492 3.773,16.237 L1.5,12.285 C2.573,11.871 3.317,10.999 3.317,9.991 C3.305,8.98 2.573,8.121 1.5,7.716 L3.765,3.784 C4.645,4.516 5.794,4.738 6.687,4.232 C7.555,3.722 7.939,2.637 7.735,1.5 L12.263,1.5 C12.072,2.637 12.441,3.71 13.314,4.22 C14.206,4.73 15.343,4.516 16.225,3.794 L18.487,7.714 C17.404,8.117 16.661,8.988 16.67,10.009 C16.672,11.018 17.415,11.88 18.488,12.285 L18.488,12.285 Z"></path>
</svg>
</span> -->
Customize
</a>
<button class=" uk-button uk-button-default uk-button-small " (click)="invite()">Invite</button>
</div>
</div>
</div>
</div>
</div>
</div>