Add type label in home page, add bottom menuItems, add contextAPI url in property files

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-connect-portal/trunk@52282 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
argiro.kokogiannaki 2018-05-30 10:24:24 +00:00
parent 7133305233
commit 3a25d0c4af
10 changed files with 223 additions and 142 deletions

View File

@ -50,7 +50,7 @@
"adminToolsAPIURL" :"https://beta.services.openaire.eu/uoa-admin-tools",
"adminToolsCommunity" :"openaire",
"contextsAPI":"https://beta.services.openaire.eu/openaire/context",
"communityAPI": "https://beta.services.openaire.eu/openaire/community/",
"communitiesAPI": "https://beta.services.openaire.eu/openaire/community/communities",

View File

@ -10,7 +10,7 @@ const routes: Routes = [
// { path: '', loadChildren: './communities/communities.module#CommunitiesModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: '', loadChildren: './communitywrapper/communityWrapper.module#CommunityWrapperModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
// { path: 'communities', loadChildren: './communities/communities.module#CommunitiesModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'my-communities', loadChildren: './my-communities/communities.module#CommunitiesModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'my-communities', loadChildren: './my-communities/communities.module#MyCommunitiesModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'monitor', loadChildren: './statistics/statistics.module#StatisticsModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'search/publication', loadChildren: './landingPages/publication/libPublication.module#LibPublicationModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'search/dataset', loadChildren: './landingPages/dataset/libDataset.module#LibDatasetModule', resolve: { envSpecific: EnvironmentSpecificResolver }},

View File

@ -112,14 +112,14 @@ export class AppComponent {
if(community == null){
this.menuItems= [];
this.bottomMenuItems =[
new MenuItem("","About","https://beta.openaire.eu/project-factsheets","",false,[],[],{}),
new MenuItem("","About","https://beta.openaire.eu/project-factsheets","",false,[],[],{}),
new MenuItem("","News - Events","https://beta.openaire.eu/news-events","",false,[],[],{}),
new MenuItem("","Blog","https://blogs.openaire.eu/","",false,[],[],{}),
new MenuItem("","Contact us","https://beta.openaire.eu/contact-us","",false,[],[],{})
];
}else{
this.menuItems = []
this.bottomMenuItems = []
}
this.showMenu = true;

View File

@ -16,12 +16,11 @@
</div>
</div>
<div *ngIf= "communitiesResults != null && communitiesResults.length > 0">
<div class="uk-container uk-margin-top uk-margin-bottom">
<div class="uk-child-width-1-3@m uk-text-center uk-grid-match " uk-grid >
<ng-container *ngFor="let item of communitiesResults; let i = index">
<div *ngIf="showCommunity(item)" class="uk-card uk-card-default uk-margin-bottom">
<div *ngIf="showCommunity(item)" class="uk-card uk-card-default uk-margin-bottom uk-padding-remove">
<span >
<div class="uk-card-media-top">
<img *ngIf= "item.logoUrl != null && item.logoUrl != '' " src="{{item.logoUrl}}" alt="{{(item.title)?item.title:item.shortTitle}} logo" class="uk-height-small uk-responsive-height ">
@ -32,9 +31,7 @@
</span>
<div class="uk-card-body">
<div>
<div *ngIf="item.status !='all'" class="uk-float-right" uk-tooltip="title: Community is hidden to registered users. It is visible only to users that have privileges to manage community; delay: 100">
<span class="uk-label uk-label-info " aria-expanded="false">Private view</span>
</div>
<h3 class="uk-card-title">
<a *ngIf="!isProduction()" [queryParams]="{communityId: item.communityId}" routerLinkActive="router-link-active" routerLink="/" target="_blank">
{{(item.title)?item.title:item.shortTitle}}</a>
@ -51,6 +48,15 @@
<h3 class="uk-card-title"><a [queryParams]="{communityId: item.communityId}" routerLinkActive="router-link-active" routerLink="/community">
{{item.shortTitle}}</a></h3>
</div-->
<div *ngIf="item.status !='all'" class="uk-float-right" uk-tooltip="title: Community is hidden to registered users. It is visible only to users that have privileges to manage community; delay: 100">
<span class="private-view-label uk-label uk-label-success " aria-expanded="false">Private view</span>
</div>
<div *ngIf="item.type =='ri'" class="" >
<span class="ri-label uk-label uk-label-info " aria-expanded="false">Research Initiative</span>
</div>
<div *ngIf="item.type !='ri'" class="" >
<span class="uk-label rc-label uk-label-warning " aria-expanded="false">Research Community</span>
</div>
<p *ngIf="item.description != null" >{{item.description}}</p>
<subscribe [communityId]="item.communityId"></subscribe>
<manage [communityId]="item.communityId"></manage>

View File

@ -1,14 +1,15 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{CommunitiesComponent} from './communities.component';
import{MyCommunitiesComponent} from './communities.component';
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: CommunitiesComponent, canActivate: [FreeGuard], canDeactivate: [PreviousRouteRecorder] }
{ path: '', component: MyCommunitiesComponent, canActivate: [FreeGuard], canDeactivate: [PreviousRouteRecorder] }
])
]

View File

@ -1,81 +1,104 @@
<div class="image-front-topbar uk-section-default uk-light" tm-header-transparent="light" tm-header-transparent-placeholder="">
<div
class="mainPageSearchForm uk-background-norepeat uk-background-cover uk-background-top-center uk-section uk-padding-remove-bottom uk-flex uk-flex-middle" uk-height-viewport="offset-top: true;offset-bottom: 20">
<div class="uk-width-1-1">
<div class="uk-position-relative">
<div class="uk-container uk-margin-medium">
<div class="tm-header-placeholder uk-margin-medium" style="height: 84px;"></div>
<div class="search_box_bg uk-grid-large uk-flex-middle uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<div data-id="page#4">
<p class="uk-text-large uk-text-center">Welcome to Research Community Dashboard! </p>
<p class="uk-text-large uk-text-center">Use a trusted partner to share, link, disseminate and monitor your research. </p>
<div class="image-front-topbar uk-section-muted uk-section-overlap uk-light" uk-scrollspy="{&quot;target&quot;:&quot;[uk-scrollspy-class]&quot;,&quot;cls&quot;:&quot;uk-animation-slide-top&quot;,&quot;delay&quot;:false}" tm-header-transparent="light" tm-header-transparent-placeholder="">
<div style=" background-color: #1e3040;" class=" mainPageSearchForm uk-background-norepeat uk-background-cover uk-background-top-center uk-background-fixed uk-section uk-section-large uk-padding-remove-bottom">
<div class="tm-header-placeholder uk-margin-remove-adjacent" style="height: 84px;"></div>
<div class="uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid uk-grid-stack" uk-grid="">
<div class="uk-width-1-1@m uk-first-column">
<h5 class="uk-margin-large uk-text-center uk-h1 uk-scrollspy-inview uk-animation-slide-top" uk-scrollspy-class="" style="">
Research Community Dashboard
</h5>
<h1 class="uk-text-center uk-h2 uk-scrollspy-inview uk-animation-slide-top" uk-scrollspy-class="" style="">
Your view to open science
</h1>
</div>
</div>
</div>
</div>
<div *ngIf= "communitiesResults != null && communitiesResults.length > 0">
<div class="uk-container uk-margin-top uk-margin-bottom">
<!--h2>Research Initiatives </h2-->
<div class="uk-child-width-1-3@m uk-text-center uk-grid-match " uk-grid >
<ng-container *ngFor="let item of communitiesResults; let i = index">
<div *ngIf="showCommunity(item) && item.type=='ri'" class="uk-card uk-card-default uk-margin-bottom">
<span >
<div class="uk-card-media-top">
<img *ngIf= "item.logoUrl != null && item.logoUrl != '' " src="{{item.logoUrl}}" alt="{{(item.title)?item.title:item.shortTitle}} logo" class="uk-height-small uk-responsive-height ">
<span *ngIf= "item.logoUrl == null || item.logoUrl == '' " class="uk-icon uk-margin-top">
<svg width="50" height="50" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="2.5"> <circle fill="none" stroke="#000" stroke-width="1.1" cx="7.7" cy="8.6" r="3.5"></circle> <path fill="none" stroke="#000" stroke-width="1.1" d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path> <path fill="none" stroke="#000" stroke-width="1.1" d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg>
</span>
</div>
</span>
<div class="uk-card-body">
<div>
<div *ngIf="item.status !='all'" class="uk-float-right" uk-tooltip="title: Community is hidden to registered users. It is visible only to users that have privileges to manage community; delay: 100">
<span class="private-view-label uk-label uk-label-success " aria-expanded="false">Private view</span>
</div>
</div>
<div *ngIf="item.type =='ri'" class="" >
<span class="ri-label uk-label uk-label-info " aria-expanded="false">Research Initiative</span>
</div>
<div *ngIf="item.type !='ri'" class="" >
<span class="uk-label rc-label uk-label-warning " aria-expanded="false">Research Community</span>
</div>
<h3 class="uk-card-title">
<a *ngIf="!isProduction()" [queryParams]="{communityId: item.communityId}" routerLinkActive="router-link-active" routerLink="/" target="_blank">
{{(item.title)?item.title:item.shortTitle}}</a>
<a *ngIf="isProduction()" href="{{'https://'+getProductionPrefix()+item.communityId+'.openaire.eu'}}" target="_blank">
{{(item.title)?item.title:item.shortTitle}}</a>
</h3>
</div>
<p *ngIf="item.description != null" >{{item.description}}</p>
<subscribe [communityId]="item.communityId"></subscribe>
<manage [communityId]="item.communityId"></manage>
</div>
</div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
<div class="uk-container uk-margin-top uk-margin-bottom">
<div class="uk-h2">My communities</div>
<div class="uk-child-width-1-3@m uk-text-center " uk-grid>
<div>
<div class="uk-card uk-card-default">
<div class="">
<img src="https://egi.eu/wp-content/uploads/2016/05/cropped-logo_site-1-300x300.png" alt="A logo goes here">
</div>
<div class="uk-card-body">
<h3 class="uk-card-title"><a [queryParams]="{community: 'egi||EGI Federation'}" routerLinkActive="router-link-active" routerLink="/community">
EGI Federation</a></h3>
<p> EGI is a federated e-Infrastructure set up to provide advanced computing services for research and innovation.
The EGI e-infrastructure is publicly-funded and comprises hundreds of data centres and cloud providers spread across Europe and worldwide.</p>
<a class="uk-button uk-button-primary"> Unsubscribe</a>
</div>
<hr>
<!--h2>Research communities </h2-->
<div class="uk-child-width-1-3@m uk-text-center uk-grid-match " uk-grid >
<ng-container *ngFor="let item of communitiesResults; let i = index">
<div *ngIf="showCommunity(item) && item.type!='ri'" class="uk-card uk-card-default uk-margin-bottom">
<span >
<div class="uk-card-media-top">
<img *ngIf= "item.logoUrl != null && item.logoUrl != '' " src="{{item.logoUrl}}" alt="{{(item.title)?item.title:item.shortTitle}} logo" class="uk-height-small uk-responsive-height ">
<span *ngIf= "item.logoUrl == null || item.logoUrl == '' " class="uk-icon uk-margin-top">
<svg width="50" height="50" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="2.5"> <circle fill="none" stroke="#000" stroke-width="1.1" cx="7.7" cy="8.6" r="3.5"></circle> <path fill="none" stroke="#000" stroke-width="1.1" d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path> <path fill="none" stroke="#000" stroke-width="1.1" d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg>
</span>
</div>
</span>
<div class="uk-card-body">
<div>
<div *ngIf="item.status !='all'" class="uk-float-right" uk-tooltip="title: Community is hidden to registered users. It is visible only to users that have privileges to manage community; delay: 100">
<span class="private-view-label uk-label uk-label-success " aria-expanded="false">Private view</span>
</div>
<div *ngIf="item.type =='ri'" class="" >
<span class="ri-label uk-label uk-label-info " aria-expanded="false">Research Initiative</span>
</div>
<div *ngIf="item.type !='ri'" class="" >
<span class="uk-label rc-label uk-label-warning " aria-expanded="false">Research Community</span>
</div>
<h3 class="uk-card-title">
<a *ngIf="!isProduction()" [queryParams]="{communityId: item.communityId}" routerLinkActive="router-link-active" routerLink="/" target="_blank">
{{(item.title)?item.title:item.shortTitle}}</a>
<a *ngIf="isProduction()" href="{{'https://'+getProductionPrefix()+item.communityId+'.openaire.eu'}}" target="_blank">
{{(item.title)?item.title:item.shortTitle}}</a>
</h3>
</div>
<p *ngIf="item.description != null" >{{item.description}}</p>
<subscribe [communityId]="item.communityId"></subscribe>
<manage [communityId]="item.communityId"></manage>
</div>
</div>
</ng-container>
</div>
</div>
<div class="uk-h2">Other communities</div>
<div class="uk-child-width-1-3@m uk-text-center " uk-grid>
<div>
<div class="uk-card uk-card-default">
<div class="uk-card-media-top">
<img src="logo.png" alt="A logo goes here">
</div>
<div class="uk-card-body">
<h3 class="uk-card-title"><a>Environment and Economy Research Community</a></h3>
<p>the national/EU node of the United Nations Sustainable Development Solutions Network sets out to build an infrastructure to gather all publications, data (in repositories and in Public Sector Information portals), and link them to EU and national funding </p>
<a class="uk-button uk-button-primary"> Subscribe</a>
</div>
</div>
</div>
<div>
<div class="uk-card uk-card-default">
<div class="uk-card-media-top">
<img src="logo.png" alt="A logo goes here">
</div>
<div class="uk-card-body">
<h3 class="uk-card-title"><a>Marine environmental science</a></h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
<a class="uk-button uk-button-primary"> Subscribe</a>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -1,66 +1,101 @@
import {Component, Input, Output, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common';
import {Title, Meta} from '@angular/platform-browser';
import {Observable} from 'rxjs/Observable';
import {Component, Input, Output, EventEmitter} from '@angular/core';
import {ViewChild, ChangeDetectionStrategy} from '@angular/core';
import {ViewEncapsulation} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common';
import {Title, Meta} from '@angular/platform-browser';
import {Observable} from 'rxjs/Observable';
import "rxjs/add/observable/zip";
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
import {ConnectHelper} from '../openaireLibrary/connect/connectHelper';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
import {CommunitiesService} from '../openaireLibrary/connect/communities/communities.service';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {Session} from '../openaireLibrary/login/utils/helper.class';
@Component({
selector: 'communities',
templateUrl: 'communities.component.html',
})
export class CommunitiesComponent {
export class MyCommunitiesComponent {
public piwiksub: any;
public subfunders: any;
public pageTitle = "OpenAIRE"
public communitiesResults = null;
properties:EnvProperties;
constructor (
private route: ActivatedRoute,
private _router: Router,
private location: Location,
private _meta: Meta,
private _title: Title,
private _piwikService:PiwikService,
private config: ConfigurationService) {
private route: ActivatedRoute,
private _router: Router,
private location: Location,
private _meta: Meta,
private _title: Title,
private _piwikService:PiwikService,
private _communitiesService:CommunitiesService,
private config: ConfigurationService) {
var description = "open access, research, research community, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
var title = "OpenAIRE Connect";
var description = "Community Dashboard";
var title = "Community Dashboard";
this._title.setTitle(title);
this._meta.updateTag({content:description},"name='description'");
this._meta.updateTag({content:description},"property='og:description'");
this._meta.updateTag({content:title},"property='og:title'");
this._meta.updateTag({content:description},"name='description'");
this._meta.updateTag({content:description},"property='og:description'");
this._meta.updateTag({content:title},"property='og:title'");
this._title.setTitle(title);
}
}
public ngOnInit() {
this.route.data
.subscribe((data: { envSpecific: EnvProperties }) => {
this.properties = data.envSpecific;
var url = data.envSpecific.baseLink+this._router.url
this._meta.updateTag({content:url},"property='og:url'");
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){
this.piwiksub = this._piwikService.trackView(this.properties, "OpenAIRE Connect", this.properties.piwikSiteId).subscribe();
}
public ngOnInit() {
this.route.data
.subscribe((data: { envSpecific: EnvProperties }) => {
this.properties = data.envSpecific;
var url = data.envSpecific.baseLink+this._router.url
this._meta.updateTag({content:url},"property='og:url'");
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.piwiksub = this._piwikService.trackView(this.properties,"OpenAIRE").subscribe();
}
this._communitiesService.getCommunities(this.properties, this.properties.communitiesAPI).subscribe(
communitiesResults => {
this.communitiesResults = communitiesResults;
//console.log(communitiesResults);
});
});
}
});
}
public ngOnDestroy() {
if(this.piwiksub){
this.piwiksub.unsubscribe();
}
}
isProduction():boolean{
return ConnectHelper.isProduction(document.location.hostname);
public ngOnDestroy() {
if(this.piwiksub){
this.piwiksub.unsubscribe();
}
}
}
getProductionPrefix():string{
return ConnectHelper.getProductionPrefix(document.location.hostname);
}
showCommunity(community):boolean{
if(community['status'] == "hidden"){
return false;
}else if(community['status'] == "manager"){
var mail = Session.getUserEmail();
if(mail == null){ // no user
return false;
}else if(Session.isCommunityCurator() || Session.isPortalAdministrator()){
return true;
}else if(community.managers.indexOf(mail)!=-1){
return true;
}
return false;
}
return true;
}
}

View File

@ -1,29 +1,36 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {RouterModule} from '@angular/router';
import {CommunitiesRoutingModule} from './communities-routing.module';
import {CommunitiesComponent} from './communities.component';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
import {SubscribeModule} from '../utils/subscribe/subscribe.module';
import {ManageModule} from '../utils/manage/manage.module';
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MyCommunitiesComponent} from './communities.component';
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
import {CommunitiesService} from '../openaireLibrary/connect/communities/communities.service';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule,
CommunitiesRoutingModule
CommunitiesRoutingModule,
SubscribeModule, ManageModule
],
declarations: [
CommunitiesComponent
MyCommunitiesComponent
],
providers: [
FreeGuard, PreviousRouteRecorder, ConfigurationService, PiwikService
providers:[
FreeGuard, PreviousRouteRecorder, ConfigurationService,
PiwikService, CommunitiesService
],
exports: [
CommunitiesComponent
MyCommunitiesComponent
]
})
export class CommunitiesModule { }
export class MyCommunitiesModule { }

View File

@ -27,3 +27,12 @@
box-sizing: border-box;
min-height: calc(100vh - 412.767px);
}
.rc-label{
color:black !important;
background-color: #FFC700 !important;
}
.private-view-label{
color:black !important;
}

View File

@ -60,7 +60,7 @@
"adminToolsCommunity" :"openaire",
"datasourcesAPI": "https://beta.services.openaire.eu/openaire/ds/search/",
"contextsAPI":"https://dev-openaire.d4science.org/openaire/context",
"communityAPI": "https://dev-openaire.d4science.org/openaire/community/",
"communitiesAPI": "https://dev-openaire.d4science.org/openaire/community/communities",