From f53af36929d64675b75232babd8cdd2e48694787 Mon Sep 17 00:00:00 2001 From: argirok Date: Fri, 14 Jul 2023 14:54:58 +0300 Subject: [PATCH 1/8] apply changes to projects and zenodo communities pages and queries --- src/app/community/community.component.ts | 13 ++-------- src/app/community/community.module.ts | 3 +-- src/app/deposit/deposit.component.ts | 8 ++---- src/app/deposit/deposit.module.ts | 3 +-- .../searchDataprovidersToDeposit.component.ts | 7 ++--- .../searchDataprovidersToDeposit.module.ts | 3 +-- .../utils/fetchZenodoInformation.class.ts | 24 ++--------------- .../zenodo/shareInZenodo.component.html | 22 ++++++++-------- .../deposit/zenodo/shareInZenodo.component.ts | 26 +++++-------------- .../deposit/zenodo/shareInZenodo.module.ts | 3 +-- .../simple/searchProjects.component.ts | 4 +-- 11 files changed, 32 insertions(+), 84 deletions(-) diff --git a/src/app/community/community.component.ts b/src/app/community/community.component.ts index 1e04a86..8cba6db 100644 --- a/src/app/community/community.component.ts +++ b/src/app/community/community.component.ts @@ -6,7 +6,6 @@ import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties' import {CommunityService} from "../openaireLibrary/connect/community/community.service"; import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service'; import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service'; -import {SearchZenodoCommunitiesService} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service'; import {ZenodoCommunitiesService} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service'; import {Session, User} from '../openaireLibrary/login/utils/helper.class'; import {StatisticsForDashboardComponent} from '../statistics/statistics.component'; @@ -156,7 +155,6 @@ export class CommunityComponent { private _searchCommunityDataprovidersService: SearchCommunityDataprovidersService, private _searchCommunityProjectsService: SearchCommunityProjectsService, private _searchResearchResultsService: SearchResearchResultsService, - private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService, private _zenodoCommunitieService: ZenodoCommunitiesService, private seoService: SEOService, private userManagementService: UserManagementService, @@ -221,7 +219,7 @@ export class CommunityComponent { this._title.setTitle(community.title); this.subs.push(this._piwikService.trackView(this.properties, community.title).subscribe()); if (this.community.zenodoCommunity) { - this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.community.zenodoCommunity, null).subscribe( + this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.community.zenodoCommunity).subscribe( result => { this.masterZenodoCommunity = result; }, @@ -230,14 +228,7 @@ export class CommunityComponent { } )); } - this.subs.push(this._searchZenodoCommunitiesService.searchZCommunities(this.properties, this.communityId).subscribe( - result => { - this.zenodoCommunityIdS = result; - }, - error => { - this.handleError("Error getting list of zenodo communities for community with openaire id: " + this.communityId, error); - } - )); + this.zenodoCommunityIdS = this.community.otherZenodoCommunities; } })); diff --git a/src/app/community/community.module.ts b/src/app/community/community.module.ts index 3e7e4b8..72cd036 100644 --- a/src/app/community/community.module.ts +++ b/src/app/community/community.module.ts @@ -12,7 +12,6 @@ import {InviteModule} from '../utils/subscribe/invite/invite.module'; import {ManageModule} from '../openaireLibrary/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'; import {SearchFormModule} from '../openaireLibrary/searchPages/searchUtils/searchForm.module'; import {SearchDataprovidersServiceModule} from "../openaireLibrary/connect/contentProviders/searchDataprovidersService.module"; @@ -39,7 +38,7 @@ import {NoLoadPaging} from '../openaireLibrary/searchPages/searchUtils/no-load-p imports: [ CommonModule, FormsModule, RouterModule, SubscribeModule, StatisticsModule, ManageModule, InviteModule, - SearchZenodoCommunitiesServiceModule, ZenodoCommunitiesServiceModule, SearchFormModule, SearchDataprovidersServiceModule, SearchProjectsServiceModule, + ZenodoCommunitiesServiceModule, SearchFormModule, SearchDataprovidersServiceModule, SearchProjectsServiceModule, SearchResearchResultsServiceModule, SearchResultsModule, CuratorsModule, AffiliationsModule, SEOServiceModule, MatSelectModule, EntitiesSelectionModule, TabsModule, SearchTabModule, ErrorMessagesModule, SafeHtmlPipeModule, ErrorModule, diff --git a/src/app/deposit/deposit.component.ts b/src/app/deposit/deposit.component.ts index c008b77..af7b3c5 100644 --- a/src/app/deposit/deposit.component.ts +++ b/src/app/deposit/deposit.component.ts @@ -6,9 +6,6 @@ import {ZenodoInformationClass} from "../openaireLibrary/deposit/utils/zenodoInf import {FetchZenodoInformation} from "./utils/fetchZenodoInformation.class"; import {ZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service"; import {CommunityService} from "../openaireLibrary/connect/community/community.service"; -import { - SearchZenodoCommunitiesService -} from "../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service"; import {Subscriber, Subscription} from "rxjs"; import {properties} from "../../environments/environment"; @@ -33,9 +30,8 @@ export class OpenaireDepositComponent { constructor(private route: ActivatedRoute, private _zenodoCommunitieService: ZenodoCommunitiesService, - private _communityService: CommunityService, - private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService) { - this.fetchZenodoInformation = new FetchZenodoInformation(this._zenodoCommunitieService, this._searchZenodoCommunitiesService); + private _communityService: CommunityService) { + this.fetchZenodoInformation = new FetchZenodoInformation(this._zenodoCommunitieService); } public ngOnInit() { diff --git a/src/app/deposit/deposit.module.ts b/src/app/deposit/deposit.module.ts index c4327dd..7ff01ee 100644 --- a/src/app/deposit/deposit.module.ts +++ b/src/app/deposit/deposit.module.ts @@ -9,7 +9,6 @@ import {DepositRoutingModule} from "./deposit-routing.module"; import {DepositFirstPageModule} from "../openaireLibrary/deposit/depositFirstPage.module"; import {ZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service"; -import {SearchZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service"; @NgModule({ imports: [ @@ -23,6 +22,6 @@ import {SearchZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoC OpenaireDepositComponent, ], providers: [PreviousRouteRecorder, IsRouteEnabled, - ZenodoCommunitiesService, SearchZenodoCommunitiesService] + ZenodoCommunitiesService] }) export class LibDepositModule { } diff --git a/src/app/deposit/searchDataprovidersToDeposit.component.ts b/src/app/deposit/searchDataprovidersToDeposit.component.ts index 23688ce..ce74a10 100644 --- a/src/app/deposit/searchDataprovidersToDeposit.component.ts +++ b/src/app/deposit/searchDataprovidersToDeposit.component.ts @@ -3,9 +3,6 @@ import {ActivatedRoute} from '@angular/router'; import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties'; import {ZenodoCommunitiesService} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service'; -import { - SearchZenodoCommunitiesService -} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service'; import {CommunityService} from '../openaireLibrary/connect/community/community.service'; import {ZenodoInformationClass} from '../openaireLibrary/deposit/utils/zenodoInformation.class'; @@ -31,8 +28,8 @@ export class OpenaireSearchDataprovidersToDepositComponent { constructor(private route: ActivatedRoute, private _zenodoCommunitieService: ZenodoCommunitiesService, - private _communityService: CommunityService, private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService) { - this.fetchZenodoInformation = new FetchZenodoInformation(this._zenodoCommunitieService, this._searchZenodoCommunitiesService); + private _communityService: CommunityService) { + this.fetchZenodoInformation = new FetchZenodoInformation(this._zenodoCommunitieService); } public ngOnInit() { diff --git a/src/app/deposit/searchDataprovidersToDeposit.module.ts b/src/app/deposit/searchDataprovidersToDeposit.module.ts index e72b6e7..3dcecba 100644 --- a/src/app/deposit/searchDataprovidersToDeposit.module.ts +++ b/src/app/deposit/searchDataprovidersToDeposit.module.ts @@ -9,14 +9,13 @@ import {SearchDataprovidersToDepositModule} from '../openaireLibrary/deposit/sea import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {IsRouteEnabled} from '../openaireLibrary/error/isRouteEnabled.guard'; import {ZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communitiesService.module'; -import {SearchZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunitiesService.module'; @NgModule({ imports: [ CommonModule, FormsModule, SearchDataprovidersToDepositModule, SearchDataprovidersToDepositRoutingModule, - ZenodoCommunitiesServiceModule, SearchZenodoCommunitiesServiceModule + ZenodoCommunitiesServiceModule ], declarations: [ OpenaireSearchDataprovidersToDepositComponent diff --git a/src/app/deposit/utils/fetchZenodoInformation.class.ts b/src/app/deposit/utils/fetchZenodoInformation.class.ts index 0531ca3..6d58826 100644 --- a/src/app/deposit/utils/fetchZenodoInformation.class.ts +++ b/src/app/deposit/utils/fetchZenodoInformation.class.ts @@ -1,6 +1,5 @@ import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties'; import {ZenodoCommunitiesService} from '../../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service'; -import {SearchZenodoCommunitiesService} from '../../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service'; import {ZenodoInformationClass} from '../../openaireLibrary/deposit/utils/zenodoInformation.class'; import {Subscriber} from "rxjs"; @@ -11,8 +10,7 @@ import {Injectable} from "@angular/core"; }) export class FetchZenodoInformation { private subscriptions = []; - constructor ( private _zenodoCommunitieService: ZenodoCommunitiesService, - private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService ) { } + constructor ( private _zenodoCommunitieService: ZenodoCommunitiesService ) { } public ngOnDestroy() { this.clearSubscriptions(); @@ -26,7 +24,7 @@ export class FetchZenodoInformation { }); } public getZenodoCommunityNameAndUrlById(masterZenodoCommunityId: string, properties:EnvProperties, zenodoInformation: ZenodoInformationClass){ - this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(properties, properties.zenodoCommunities+masterZenodoCommunityId, null).subscribe( + this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(properties, properties.zenodoCommunities+masterZenodoCommunityId).subscribe( result => { console.info("getZenodoCommunityNameAndUrlById", result); var masterZenodoCommunity = result; @@ -38,22 +36,4 @@ export class FetchZenodoInformation { } )); } - - public searchNumberOfZCommunities(communityId: string, properties: EnvProperties, zenodoInformation: ZenodoInformationClass) { - this.subscriptions.push(this._searchZenodoCommunitiesService.searchZCommunities(properties,communityId).subscribe ( - result => { - console.info("searchNumberOfZCommunities", result); - - var CommunityIds = result; - var totalResults = CommunityIds.length; - if(totalResults > 0) { - zenodoInformation.shareInZenodoUrl = properties.shareInZenodoPage; - console.info(zenodoInformation.shareInZenodoUrl); - } - }, - error => { - console.error("list of zenodo communities couldn't be loaded"); - } - )); - } } diff --git a/src/app/deposit/zenodo/shareInZenodo.component.html b/src/app/deposit/zenodo/shareInZenodo.component.html index ee11d3b..656dd2d 100644 --- a/src/app/deposit/zenodo/shareInZenodo.component.html +++ b/src/app/deposit/zenodo/shareInZenodo.component.html @@ -95,36 +95,36 @@
-
-
- - {{communities[this.communityIds[i]['zenodoid']].title}} +

- {{communities[this.communityIds[i]['zenodoid']].title}} - [no name available] + href="{{communities[this.communityIds[i]].link}}"> + {{communities[this.communityIds[i]].title}} + [no name available]

- Last update: {{communities[this.communityIds[i]['zenodoid']].date | date:'yyyy/MM/dd'}} + Last update: {{communities[this.communityIds[i]].date | date:'yyyy/MM/dd'}}
-

+

- diff --git a/src/app/deposit/zenodo/shareInZenodo.component.ts b/src/app/deposit/zenodo/shareInZenodo.component.ts index 5d1e452..25467cc 100644 --- a/src/app/deposit/zenodo/shareInZenodo.component.ts +++ b/src/app/deposit/zenodo/shareInZenodo.component.ts @@ -3,9 +3,6 @@ import {ActivatedRoute, Router} from '@angular/router'; import {Meta, Title} from '@angular/platform-browser'; import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties'; import {ZenodoCommunitiesService} from '../../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service'; -import { - SearchZenodoCommunitiesService -} from '../../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service'; import {CommunityService} from '../../openaireLibrary/connect/community/community.service'; import {CommunityInfo} from '../../openaireLibrary/connect/community/communityInfo'; import {SearchUtilsClass} from '../../openaireLibrary/searchPages/searchUtils/searchUtils.class'; @@ -58,7 +55,6 @@ export class ShareInZenodoComponent { private _title: Title, private _zenodoCommunitieService: ZenodoCommunitiesService, private _communityService: CommunityService, - private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService, private helper: HelperService, private _piwikService: PiwikService, private seoService: SEOService) { @@ -86,7 +82,7 @@ export class ShareInZenodoComponent { this.community = community; this.masterZenodoCommunityId = this.community.zenodoCommunity; if (this.masterZenodoCommunityId) { - this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.masterZenodoCommunityId, null).subscribe( + this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.masterZenodoCommunityId).subscribe( result => { this.masterZenodoCommunity = result; @@ -98,22 +94,14 @@ export class ShareInZenodoComponent { )); } this.zenodoSearchUtils.status = this.errorCodes.LOADING; - this.subs.push(this._searchZenodoCommunitiesService.searchZCommunities(this.properties, this.communityId).subscribe( - result => { - this.communityIds = result; + this.communityIds = this.community.otherZenodoCommunities; this.zenodoSearchUtils.totalResults = this.communityIds.length; if (this.communityIds.length == 0) { this.zenodoSearchUtils.status = this.errorCodes.NONE; } this.getCommunities() - }, - error => { - //console.error("list of zenodo communities couldn't be loaded"); - this.handleError("Error getting list of zenodo communities for community with openaire id: " + this.communityId, error); - this.zenodoSearchUtils.status = this.errorCodes.ERROR; - } //this.handleError('System error retrieving community profile', error) - )); + } })); @@ -154,8 +142,8 @@ export class ShareInZenodoComponent { })); } - getZenodoCommunityById(zenodoid, openaireId) { - this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + zenodoid, openaireId).subscribe( + getZenodoCommunityById(zenodoid) { + this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + zenodoid).subscribe( result => { this.communities[zenodoid] = result; this.zenodoCommunitiesLoadedCount++; @@ -176,7 +164,7 @@ export class ShareInZenodoComponent { this.zenodoSearchUtils.status = this.errorCodes.DONE; } //console.error("Zenodo community'"+zenodoid+"' couldn't be loaded"); - this.handleError("Error getting Zenodo community with id: " + zenodoid + " and openaire id: " + openaireId, error); + this.handleError("Error getting Zenodo community with id: " + zenodoid, error); } )); @@ -190,7 +178,7 @@ export class ShareInZenodoComponent { this.page = $event.value; for (let i = (this.page - 1) * this.size; i < this.communityIds.length && i < this.page * this.size; i++) { if (!this.communities[this.communityIds[i]["zenodoid"]]) { - this.getZenodoCommunityById(this.communityIds[i]["zenodoid"], this.communityIds[i]["id"]); + this.getZenodoCommunityById(this.communityIds[i]); } } } diff --git a/src/app/deposit/zenodo/shareInZenodo.module.ts b/src/app/deposit/zenodo/shareInZenodo.module.ts index 7de4c02..12e2201 100644 --- a/src/app/deposit/zenodo/shareInZenodo.module.ts +++ b/src/app/deposit/zenodo/shareInZenodo.module.ts @@ -7,7 +7,6 @@ import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard' import {ShareInZenodoComponent} from './shareInZenodo.component'; import {ShareInZenodoRoutingModule} from './shareInZenodo-routing.module'; import {ZenodoCommunitiesServiceModule} from '../../openaireLibrary/connect/zenodoCommunities/zenodo-communitiesService.module'; -import {SearchZenodoCommunitiesServiceModule} from '../../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunitiesService.module'; import {RouterModule} from "@angular/router"; import {HelperModule} from "../../openaireLibrary/utils/helper/helper.module"; @@ -21,7 +20,7 @@ import {LoadingModule} from 'src/app/openaireLibrary/utils/loading/loading.modul @NgModule({ imports: [ - CommonModule, ShareInZenodoRoutingModule, ZenodoCommunitiesServiceModule, SearchZenodoCommunitiesServiceModule, + CommonModule, ShareInZenodoRoutingModule, ZenodoCommunitiesServiceModule, RouterModule, HelperModule, LoadingModule, PiwikServiceModule, Schema2jsonldModule, SEOServiceModule, BreadcrumbsModule, NoLoadPaging, IconsModule ], diff --git a/src/app/searchPages/simple/searchProjects.component.ts b/src/app/searchPages/simple/searchProjects.component.ts index 1dadae2..2037eb0 100644 --- a/src/app/searchPages/simple/searchProjects.component.ts +++ b/src/app/searchPages/simple/searchProjects.component.ts @@ -122,8 +122,8 @@ export class OpenaireSearchProjectsComponent { if(this.allResults) { this.subscriptions.push(this._searchProjectsService.searchProjects(this.properties, this.communityId).subscribe( data => { - this.originalFilters = this.createFilters(data).slice(); //copy array - this.allResults = this.parseResults(data); + this.originalFilters = this.createFilters(data.content).slice(); //copy array + this.allResults = this.parseResults(data.content); this.filters = this.searchPage.prepareFiltersToShow(this.originalFilters, this.allResults.length); this.filterResults(); }, From 8aae6d6d8085535f6f297fea1cb4bb2a08aad134 Mon Sep 17 00:00:00 2001 From: argirok Date: Mon, 17 Jul 2023 12:09:49 +0300 Subject: [PATCH 2/8] Deposit: show zenodo communities page if there is main OR other related communities --- src/app/deposit/deposit.component.ts | 2 +- .../deposit/searchDataprovidersToDeposit.component.ts | 2 +- src/app/deposit/zenodo/shareInZenodo.component.html | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/app/deposit/deposit.component.ts b/src/app/deposit/deposit.component.ts index af7b3c5..1939465 100644 --- a/src/app/deposit/deposit.component.ts +++ b/src/app/deposit/deposit.component.ts @@ -40,7 +40,7 @@ export class OpenaireDepositComponent { if(community) { this.communityId = community.communityId let masterZenodoCommunityId = community.zenodoCommunity; - if (masterZenodoCommunityId) { + if (masterZenodoCommunityId || (community.otherZenodoCommunities && community.otherZenodoCommunities.length > 0)) { this.zenodoInformation.shareInZenodoUrl = this.properties.shareInZenodoPage; } else { this.zenodoInformation.url = this.properties.zenodo; diff --git a/src/app/deposit/searchDataprovidersToDeposit.component.ts b/src/app/deposit/searchDataprovidersToDeposit.component.ts index ce74a10..e7ccca5 100644 --- a/src/app/deposit/searchDataprovidersToDeposit.component.ts +++ b/src/app/deposit/searchDataprovidersToDeposit.component.ts @@ -38,7 +38,7 @@ export class OpenaireSearchDataprovidersToDepositComponent { if(community) { this.communityId = community.communityId; let masterZenodoCommunityId = community.zenodoCommunity; - if (masterZenodoCommunityId) { + if (masterZenodoCommunityId || (community.otherZenodoCommunities && community.otherZenodoCommunities.length > 0)) { this.zenodoInformation.shareInZenodoUrl = this.properties.shareInZenodoPage; } else { this.zenodoInformation.url = this.properties.zenodo; diff --git a/src/app/deposit/zenodo/shareInZenodo.component.html b/src/app/deposit/zenodo/shareInZenodo.component.html index 656dd2d..707bc41 100644 --- a/src/app/deposit/zenodo/shareInZenodo.component.html +++ b/src/app/deposit/zenodo/shareInZenodo.component.html @@ -76,7 +76,6 @@
-
-
Other related Zenodo communities
+
Other related Zenodo communities
+
Related Zenodo communities
+
Date: Wed, 19 Jul 2023 14:21:39 +0300 Subject: [PATCH 3/8] use methods isPublic, isRestricted, isPrivate instead of using the previous checks and add validateStatus method --- src/app/app.component.ts | 4 ++-- src/app/communities/communities.component.ts | 4 ++-- .../communities/searchCommunities.component.ts | 16 +++++++++------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 2d1bb0b..9db53ea 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -458,7 +458,7 @@ export class AppComponent implements OnInit, OnDestroy { this.communityId = null; this.configurationService.initPortal(this.properties, "connect"); this.buildConnectMenu(true); - if (this.community && this.community.status == "manager") { + if (this.community && this.community.isRestricted()) { if (!this.user) { if (typeof location !== 'undefined' && location.pathname.indexOf("user-info") == -1) { this.router.navigate(['/user-info'], { @@ -473,7 +473,7 @@ export class AppComponent implements OnInit, OnDestroy { this.router.navigate(['/'], {queryParamsHandling: "merge"}); } } - } else if (this.community && this.community.status == "hidden") { + } else if (this.community && (this.community.isPrivate())) { this.router.navigate([this.properties.errorLink]); } else { this.router.navigate(['/'], this.community && this.community.status ? {queryParamsHandling: "merge"} : {}); diff --git a/src/app/communities/communities.component.ts b/src/app/communities/communities.component.ts index ad7b2ed..ab39211 100644 --- a/src/app/communities/communities.component.ts +++ b/src/app/communities/communities.component.ts @@ -174,7 +174,7 @@ export class CommunitiesComponent implements OnInit, OnDestroy, AfterViewInit { let showCommunity: boolean = true; community.isSubscribed = Session.isSubscribedTo('community', community.communityId, this.user); - if (community['status'] == "hidden" || community['status'] == "manager") { + if (community.isPrivate() || community.isRestricted()) { showCommunity = false; } if (showCommunity) { @@ -192,7 +192,7 @@ export class CommunitiesComponent implements OnInit, OnDestroy, AfterViewInit { } hasPermission(communityInfo: CommunityInfo) { - return communityInfo.status === "all" || (communityInfo.status === "manager" && communityInfo.isManager); + return communityInfo.isPublic() || (communityInfo.isRestricted() && communityInfo.isManager); } private sort(results: CommunityInfo[]) { diff --git a/src/app/searchPages/communities/searchCommunities.component.ts b/src/app/searchPages/communities/searchCommunities.component.ts index 52c46df..125f76e 100644 --- a/src/app/searchPages/communities/searchCommunities.component.ts +++ b/src/app/searchPages/communities/searchCommunities.component.ts @@ -175,9 +175,9 @@ export class SearchCommunitiesComponent { private showCommunities() { let ret: CommunityInfo[] = []; for (let result of this.results) { - if (result.status == 'hidden' && result.isManager) { + if (result.isPrivate() && result.isManager) { ret.push(result); - } else if (result.status == "manager" || result.status == "all") { + } else if (result.isRestricted() || result.isPublic()) { ret.push(result); } } @@ -284,6 +284,7 @@ export class SearchCommunitiesComponent { if (params[filterId]) { values = (StringUtils.URIDecode(params[filterId])).split(/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/, -1); } + console.log(filterId + ": " +values) if (filterId == 'type') { for (let i = 0; i < this.results.length; i++) { if (values.length == 0) { @@ -302,19 +303,20 @@ export class SearchCommunitiesComponent { if (values.length == 0) { results.push(this.results[i]); } else { + // console.log(this.results[i].status, this.results[i].isPublic(),this.results[i].isRestricted(), this.results[i].isPrivate() ) for (let value of values) { if (value.replace(/["']/g, "") == 'public') { - if (this.results[i].status === 'all') { + if (this.results[i].isPublic()) { results.push(this.results[i]); break; } } else if (value.replace(/["']/g, "") == 'restricted') { - if (this.results[i].status === 'manager') { + if (this.results[i].isRestricted()) { results.push(this.results[i]); break; } } else if (value.replace(/["']/g, "") == 'private') { - if (this.results[i].status === 'hidden') { + if (this.results[i].isPrivate()) { results.push(this.results[i]); break; } @@ -381,9 +383,9 @@ export class SearchCommunitiesComponent { } } } else if (this.filters[i].filterId == 'access') { - if (results[k].status === 'all') { + if (results[k].isPublic()) { this.filters[i].values[0].number++; - } else if (results[k].status === 'manager') { + } else if (results[k].isRestricted()) { this.filters[i].values[1].number++; } else if (this.user) { this.filters[i].values[2].number++; From b978fb087baa45b22b5e98ff509d69250eca5ce0 Mon Sep 17 00:00:00 2001 From: argirok Date: Wed, 19 Jul 2023 14:37:26 +0300 Subject: [PATCH 4/8] my communities: change status check --- .../browseCommunity/browse-community.component.html | 4 ++-- src/app/my-communities/my-communities.component.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/communities/browseCommunity/browse-community.component.html b/src/app/communities/browseCommunity/browse-community.component.html index 18c5309..414d5ae 100644 --- a/src/app/communities/browseCommunity/browse-community.component.html +++ b/src/app/communities/browseCommunity/browse-community.component.html @@ -12,12 +12,12 @@ class="uk-text-background uk-text-small uk-position-top-left uk-padding-small uk-text-uppercase uk-text-bold"> Member
-
restricted
-
private diff --git a/src/app/my-communities/my-communities.component.ts b/src/app/my-communities/my-communities.component.ts index 868357f..fe7cd56 100644 --- a/src/app/my-communities/my-communities.component.ts +++ b/src/app/my-communities/my-communities.component.ts @@ -97,7 +97,7 @@ export class MyCommunitiesComponent { } hasPermission(communityInfo: CommunityInfo) { - return communityInfo.status === "all" || (communityInfo.status === "manager" && communityInfo.isManager); + return communityInfo.isPublic() || (communityInfo.isRestricted() && communityInfo.isManager); } public getCommunities() { @@ -122,10 +122,10 @@ export class MyCommunitiesComponent { communitiesResults.forEach((community, index) => { let showCommunity: boolean = true; community.isManager = Session.isCommunityCurator(this.user) || Session.isPortalAdministrator(this.user) || Session.isManager('community', community.communityId, this.user); - if (community['status'] == "hidden") { + if (community.isPrivate()) { showCommunity = false; } else { - if(!community.isManager && community['status'] == "manager") { + if(!community.isManager && community.isRestricted()) { showCommunity = false; } } From 6824746d8a009f95184aa85d96c0a6eb954bf091 Mon Sep 17 00:00:00 2001 From: argirok Date: Fri, 6 Oct 2023 15:30:10 +0300 Subject: [PATCH 5/8] use new community API for filters and paging --- .../simple/searchProjects.component.ts | 121 ++++++++---------- 1 file changed, 53 insertions(+), 68 deletions(-) diff --git a/src/app/searchPages/simple/searchProjects.component.ts b/src/app/searchPages/simple/searchProjects.component.ts index 447b340..17d7a13 100644 --- a/src/app/searchPages/simple/searchProjects.component.ts +++ b/src/app/searchPages/simple/searchProjects.component.ts @@ -1,8 +1,6 @@ import {Component, ViewChild} from '@angular/core'; import {ActivatedRoute} from '@angular/router'; - import {AdvancedField, Filter, Value} from '../../openaireLibrary/searchPages/searchUtils/searchHelperClasses.class'; - import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes'; import {ErrorMessagesComponent} from '../../openaireLibrary/utils/errorMessages.component'; import {SearchFields} from '../../openaireLibrary/utils/properties/searchFields'; @@ -14,6 +12,7 @@ import {CommunityService} from "../../openaireLibrary/connect/community/communit import {Subscriber} from "rxjs"; import {NewSearchPageComponent} from "../../openaireLibrary/searchPages/searchUtils/newSearchPage.component"; import {SearchResult} from "../../openaireLibrary/utils/entities/searchResult"; +import {StringUtils} from "../../openaireLibrary/utils/string-utils.class"; @Component({ selector: 'openaire-search-projects', @@ -50,8 +49,9 @@ export class OpenaireSearchProjectsComponent { private errorMessages: ErrorMessagesComponent; public columnNames = ['Project', 'GrantId', 'Funder']; public results =[]; - public originalFilters =[]; + public originalFunders =[]; public filters =[]; + selectedFunder = null; public searchUtils:SearchUtilsClass = new SearchUtilsClass(); subscriptions = []; public searchFields:SearchFields = new SearchFields(); @@ -64,7 +64,6 @@ export class OpenaireSearchProjectsComponent { private communityId: string = ''; customFilter: SearchCustomFilter = null; initialLoad = true; - public allResults =[]; @ViewChild(NewSearchPageComponent, { static: true }) searchPage: NewSearchPageComponent; public fieldIds: string[] = this.searchFields.PROJECT_ADVANCED_FIELDS; public fieldIdsMap= this.searchFields.PROJECT_FIELDS; @@ -88,14 +87,15 @@ export class OpenaireSearchProjectsComponent { this.subscriptions.push(this.route.queryParams.subscribe(params => { let page = (params['page'] === undefined) ? 1 : +params['page']; this.searchUtils.page = (page <= 0) ? 1 : page; + this.selectedFunder = params["funder"]?StringUtils.unquote(params["funder"]):null; this.searchUtils.validateSize(params['size']); - this.keyword = decodeURIComponent(params['fv0']?params['fv0']:(params['keyword']?params['keyword']:'')); this.selectedFields = []; this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap, this.customFilter, params, "project"); if(this.initialLoad) { this.initialLoad = false; this._getResults(); + this._getCommunityFunders(); }else{ this._getResults(); } @@ -119,73 +119,60 @@ export class OpenaireSearchProjectsComponent { this.disableForms = true; this.disableRefineForms = true; this.enableSearchView = false; - if(this.allResults) { - this.subscriptions.push(this._searchProjectsService.searchProjects(this.properties, this.communityId).subscribe( - data => { - this.originalFilters = this.createFilters(data.content).slice(); //copy array - this.allResults = this.parseResults(data.content); - this.filters = this.searchPage.prepareFiltersToShow(this.originalFilters, this.allResults.length); - this.filterResults(); - }, - err => { - this.handleError("Error getting projects for community with id: " + this.communityId, err); - this.searchUtils.status = this.errorMessages.getErrorCode(err.status); - this.enableSearchView = true; - } - )); - }else{ - this.filters = this.searchPage.prepareFiltersToShow(this.originalFilters, this.allResults.length); - this.filterResults(); - } + this.subscriptions.push(this._searchProjectsService.searchProjectsWithPaging(this.properties, this.communityId, this.searchUtils.page, this.searchUtils.size, this.searchUtils.keyword, this.selectedFunder, "name" ).subscribe( + data => { + this.searchUtils.totalResults = data['totalElements']; + this.filters = this.selectedFunder?this.createFilters([this.selectedFunder]):this.createFilters(this.originalFunders); + this.results = this.parseResults(data.content); + this.oldTotalResults = data['totalElements']; + this.searchUtils.totalResults = data['totalElements']; + this.searchUtils.status = this.results.length == 0 ? this.errorCodes.NONE: this.errorCodes.DONE; + this.disableForms = false; + this.disableRefineForms = false; + this.enableSearchView = true; + this.searchUtils.refineStatus = this.errorCodes.DONE; + }, + err => { + this.handleError("Error getting projects for community with id: " + this.communityId, err); + this.searchUtils.status = this.errorMessages.getErrorCode(err.status); + this.enableSearchView = true; + } + )); + } private createFilters(data):Filter[] { - let length = Array.isArray(data) ? data.length : 1; - - var filter_names=["Funder"]; - var filter_ids=["funder"]; - var filter_original_ids = ["funder"]; - - var value_names=[]; - var value_original_ids=[]; - var funders = new Set(); var value_name = []; var value_original_id = []; - let i; - for(i=0; i 0) { + if(value_name.length > 0) { var values: Value[] = []; - for (var j = 0; j < value_names[i].length; j++) { - var value: Value = {name: value_names[i][j], id: value_original_ids[i][j], number: j, selected: false} + for (var j = 0; j < value_name.length; j++) { + var value: Value = {name: value_name[j], id:value_name[j], number: 0, selected: this.selectedFunder == value_name[j] } values.push(value); } var filter: Filter = { - title: filter_names[i], - filterId: filter_ids[i], - originalFilterId: filter_original_ids[i], + title: "Funder", + filterId: "funder", + originalFilterId: "funder", values: values, - countSelectedValues: 0, + countSelectedValues: this.selectedFunder?1:0, "filterOperator": 'or', valueIsExact: true, filterType: "checkbox" }; filters.push(filter); } - } + return filters; } @@ -203,33 +190,31 @@ export class OpenaireSearchProjectsComponent { } return results; } - filterResults(){ - let results = this.allResults.filter(value => { return value.title.name && value.title.name.toLowerCase().indexOf(this.keyword.toLowerCase()) !=-1 || value.acronym && value.acronym.toLowerCase().indexOf(this.keyword.toLowerCase()) !=-1}); - let funderFilterValues = []; + getFunderFilterValue(){ for(let filter of this.filters){ if(filter.countSelectedValues > 0){ for(let value of filter.values){ if(value.selected) { - funderFilterValues.push(value.name); + return value.name; } } } } - if(funderFilterValues.length > 0) { - results = results.filter(value => { - return funderFilterValues.indexOf(value.funderShortname) != -1 - }); - } - this.oldTotalResults = results.length; - this.searchUtils.totalResults = results.length; - this.results = results.slice((this.searchUtils.page - 1) * this.searchUtils.size, this.searchUtils.page *this.searchUtils.size ); - this.searchUtils.status = this.results.length == 0 ? this.errorCodes.NONE: this.errorCodes.DONE; - this.disableForms = false; - this.disableRefineForms = false; - this.enableSearchView = true; - this.searchUtils.refineStatus = this.errorCodes.DONE; + return null; + } private handleError(message: string, error) { console.error("Projects simple Search Page: "+message, error); } + + public _getCommunityFunders() { + this.subscriptions.push(this._searchProjectsService.getProjectFunders(this.properties, this.communityId).subscribe( + data => { + this.originalFunders = data + }, + err => { + } + )); + } + } From 42d6aaf6eb1d6068ad9dc7b0dbf0407a217cfb75 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Fri, 6 Oct 2023 15:39:32 +0300 Subject: [PATCH 6/8] Connect | develop: environments/: Added property swhURL --- src/environments/environment.beta.ts | 1 + src/environments/environment.prod.ts | 1 + src/environments/environment.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/environments/environment.beta.ts b/src/environments/environment.beta.ts index 5a048ad..15a3979 100644 --- a/src/environments/environment.beta.ts +++ b/src/environments/environment.beta.ts @@ -35,6 +35,7 @@ export let properties: EnvProperties = { cordisURL: "http://cordis.europa.eu/projects/", openDoarURL: "http://v2.sherpa.ac.uk/id/repository/", r3DataURL: "http://service.re3data.org/repository/", + swhURL: "https://archive.softwareheritage.org/", fairSharingURL: "https://fairsharing.org/", eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/", sherpaURL: "http://sherpa.ac.uk/romeo/issn/", diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 47cf8df..40df9fc 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -35,6 +35,7 @@ export let properties: EnvProperties = { cordisURL: "http://cordis.europa.eu/projects/", openDoarURL: "http://v2.sherpa.ac.uk/id/repository/", r3DataURL: "http://service.re3data.org/repository/", + swhURL: "https://archive.softwareheritage.org/", fairSharingURL: "https://fairsharing.org/", eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/", sherpaURL: "http://sherpa.ac.uk/romeo/issn/", diff --git a/src/environments/environment.ts b/src/environments/environment.ts index f666938..34a2835 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -40,6 +40,7 @@ export let properties: EnvProperties = { cordisURL: 'http://cordis.europa.eu/projects/', openDoarURL: 'http://v2.sherpa.ac.uk/id/repository/', r3DataURL: 'http://service.re3data.org/repository/', + swhURL: "https://archive.softwareheritage.org/", fairSharingURL: "https://fairsharing.org/", eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/", sherpaURL: 'http://sherpa.ac.uk/romeo/issn/', From bfcbaa6b7b6cb84dee405dd6b5daf76be0684b1e Mon Sep 17 00:00:00 2001 From: argirok Date: Fri, 6 Oct 2023 17:28:37 +0300 Subject: [PATCH 7/8] Browse projects with new API: get results for the first load, after loading the funders --- src/app/searchPages/simple/searchProjects.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/searchPages/simple/searchProjects.component.ts b/src/app/searchPages/simple/searchProjects.component.ts index 17d7a13..177e87d 100644 --- a/src/app/searchPages/simple/searchProjects.component.ts +++ b/src/app/searchPages/simple/searchProjects.component.ts @@ -94,7 +94,6 @@ export class OpenaireSearchProjectsComponent { this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap, this.customFilter, params, "project"); if(this.initialLoad) { this.initialLoad = false; - this._getResults(); this._getCommunityFunders(); }else{ this._getResults(); @@ -211,6 +210,7 @@ export class OpenaireSearchProjectsComponent { this.subscriptions.push(this._searchProjectsService.getProjectFunders(this.properties, this.communityId).subscribe( data => { this.originalFunders = data + this._getResults(); }, err => { } From bd85954ece92adf5a5332ad1c12e88d3d65c14cc Mon Sep 17 00:00:00 2001 From: argirok Date: Fri, 6 Oct 2023 17:51:26 +0300 Subject: [PATCH 8/8] commit libraries --- src/app/openaireLibrary | 2 +- src/assets/openaire-theme | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/openaireLibrary b/src/app/openaireLibrary index f679385..5e4aaab 160000 --- a/src/app/openaireLibrary +++ b/src/app/openaireLibrary @@ -1 +1 @@ -Subproject commit f6793857253fa5ca79e9576b25d0f8d0f67d3835 +Subproject commit 5e4aaab04f89446f956d524469ef2a856f556de5 diff --git a/src/assets/openaire-theme b/src/assets/openaire-theme index 2df4b37..ac458b5 160000 --- a/src/assets/openaire-theme +++ b/src/assets/openaire-theme @@ -1 +1 @@ -Subproject commit 2df4b377a3e89b7dd26a011a2e1e1f07fdcedf2a +Subproject commit ac458b5a6d156167d7b6c9005ef1f9cfac75d3ae