1. env-properties.json: Add 'searchLinkToOrp', 'searchLinkToOrps', 'searchLinkToAdvancedOrps' for Other Research Products.

2. Add 'Other Research Products' in menu.
3. Add routing paths for landing, search, advanced search page of Other Research Products.
4. Add 'Other Research Products' tab in '/search/find'.
5. searchResult.component.ts, refineFieldResults.service.ts, searchFields.ts, ISVocabularies.service.ts: Add cases for 'Other Research Products'.


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@52816 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2018-07-25 13:27:22 +00:00
parent 2bc93bba6f
commit 4b7b13f8c7
11 changed files with 118 additions and 11 deletions

View File

@ -12,6 +12,7 @@ import {SearchComponent} from './searchPages/find/search.component';
import {PublicationComponent} from './landingPages/publication/publication.component'; import {PublicationComponent} from './landingPages/publication/publication.component';
import {DatasetComponent} from './landingPages/dataset/dataset.component'; import {DatasetComponent} from './landingPages/dataset/dataset.component';
import {SoftwareComponent} from './landingPages/software/software.component'; import {SoftwareComponent} from './landingPages/software/software.component';
import {OrpComponent} from './landingPages/orp/orp.component';
import {DataProviderComponent} from './landingPages/dataProvider/dataProvider.component'; import {DataProviderComponent} from './landingPages/dataProvider/dataProvider.component';
import {ProjectComponent} from './landingPages/project/project.component'; import {ProjectComponent} from './landingPages/project/project.component';
import {OrganizationComponent} from './landingPages/organization/organization.component'; import {OrganizationComponent} from './landingPages/organization/organization.component';
@ -26,6 +27,7 @@ import {DepositPublicationsResultComponent} from './deposit/publications/deposit
import {SearchDatasetsComponent} from './searchPages/simple/searchDatasets.component'; import {SearchDatasetsComponent} from './searchPages/simple/searchDatasets.component';
import {SearchPublicationsComponent} from './searchPages/simple/searchPublications.component'; import {SearchPublicationsComponent} from './searchPages/simple/searchPublications.component';
import {SearchSoftwareComponent} from './searchPages/simple/searchSoftware.component'; import {SearchSoftwareComponent} from './searchPages/simple/searchSoftware.component';
import {SearchOrpsComponent} from './searchPages/simple/searchOrps.component';
import {SearchDataprovidersComponent} from './searchPages/simple/searchDataproviders.component'; import {SearchDataprovidersComponent} from './searchPages/simple/searchDataproviders.component';
import {SearchProjectsComponent} from './searchPages/simple/searchProjects.component'; import {SearchProjectsComponent} from './searchPages/simple/searchProjects.component';
import {SearchOrganizationsComponent} from './searchPages/simple/searchOrganizations.component'; import {SearchOrganizationsComponent} from './searchPages/simple/searchOrganizations.component';
@ -60,6 +62,7 @@ const routes: Routes = [
{ path: 'search/publication', component: PublicationComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/publication', component: PublicationComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/dataset', component: DatasetComponent, resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/dataset', component: DatasetComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/software', component: SoftwareComponent, resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/software', component: SoftwareComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/other', component: OrpComponent, resolve: { envSpecific: EnvironmentSpecificResolver }},
{ path: 'search/project', component: ProjectComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/project', component: ProjectComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/dataprovider', component: DataProviderComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/dataprovider', component: DataProviderComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/organization', component: OrganizationComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/organization', component: OrganizationComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
@ -72,6 +75,7 @@ const routes: Routes = [
{ path: 'search/find/publications', component: SearchPublicationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver }, canActivate: [ ] }, { path: 'search/find/publications', component: SearchPublicationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver }, canActivate: [ ] },
{ path: 'search/find/datasets', component:SearchDatasetsComponent, resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/find/datasets', component:SearchDatasetsComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/find/software', component:SearchSoftwareComponent, resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/find/software', component:SearchSoftwareComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/find/other', component:SearchOrpsComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/find/projects', component:SearchProjectsComponent, resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/find/projects', component:SearchProjectsComponent, resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/find/dataproviders', component:SearchDataprovidersComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/find/dataproviders', component:SearchDataprovidersComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/find/organizations', component:SearchOrganizationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/find/organizations', component:SearchOrganizationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
@ -84,6 +88,7 @@ const routes: Routes = [
{ path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/datasets', component: AdvancedSearchDatasetsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/datasets', component: AdvancedSearchDatasetsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/software', component: AdvancedSearchSoftwareComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/software', component: AdvancedSearchSoftwareComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/other', component: AdvancedSearchOrpsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/organizations',component: AdvancedSearchOrganizationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/organizations',component: AdvancedSearchOrganizationsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },
{ path: 'search/advanced/projects', component: AdvancedSearchProjectsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } }, { path: 'search/advanced/projects', component: AdvancedSearchProjectsComponent , resolve: { envSpecific: EnvironmentSpecificResolver } },

View File

@ -64,6 +64,7 @@ export class AppComponent {
items: [new MenuItem("","Publications","","/search/find/publications",false,["publication"],["/search/find/publications"],{}), items: [new MenuItem("","Publications","","/search/find/publications",false,["publication"],["/search/find/publications"],{}),
new MenuItem("","Research Data","","/search/find/datasets",false,["dataset"],["/search/find/datasets"],{}), new MenuItem("","Research Data","","/search/find/datasets",false,["dataset"],["/search/find/datasets"],{}),
new MenuItem("","Software","","/search/find/software",false,["software"],["/search/find/software"],{}), new MenuItem("","Software","","/search/find/software",false,["software"],["/search/find/software"],{}),
new MenuItem("","Other Research Products","","/search/find/other",false,["orp"],["/search/find/other"],{}),
new MenuItem("","Projects","","/search/find/projects/",false,["project"],["/search/find/projects"],{}), new MenuItem("","Projects","","/search/find/projects/",false,["project"],["/search/find/projects"],{}),
new MenuItem("","Content Providers","","/search/find/dataproviders",false,["datasource"],["/search/find/dataproviders"],{}), new MenuItem("","Content Providers","","/search/find/dataproviders",false,["datasource"],["/search/find/dataproviders"],{}),
new MenuItem("","Organizations","","/search/find/organizations/",false,["organization"],["/search/find/organizations"],{}) new MenuItem("","Organizations","","/search/find/organizations/",false,["organization"],["/search/find/organizations"],{})

View File

@ -16,6 +16,7 @@ import {MainSearchModule} from './searchPages/find/mainSearch.module';
import {PublicationModule} from './landingPages/publication/publication.module'; import {PublicationModule} from './landingPages/publication/publication.module';
import {DatasetModule} from './landingPages/dataset/dataset.module'; import {DatasetModule} from './landingPages/dataset/dataset.module';
import {SoftwareModule} from './landingPages/software/software.module'; import {SoftwareModule} from './landingPages/software/software.module';
import {OrpModule} from './landingPages/orp/orp.module';
import {DataProviderModule} from './landingPages/dataProvider/dataProvider.module'; import {DataProviderModule} from './landingPages/dataProvider/dataProvider.module';
import {ProjectModule} from './landingPages/project/project.module'; import {ProjectModule} from './landingPages/project/project.module';
import {OrganizationModule} from './landingPages/organization/organization.module'; import {OrganizationModule} from './landingPages/organization/organization.module';
@ -30,6 +31,7 @@ import {DepositPublicationsResultsModule} from './deposit/publications/depositPu
import {SearchPublicationsModule} from './searchPages/simple/searchPublications.module'; import {SearchPublicationsModule} from './searchPages/simple/searchPublications.module';
import {SearchDatasetsModule} from './searchPages/simple/searchDatasets.module'; import {SearchDatasetsModule} from './searchPages/simple/searchDatasets.module';
import {SearchSoftwareModule} from './searchPages/simple/searchSoftware.module'; import {SearchSoftwareModule} from './searchPages/simple/searchSoftware.module';
import {SearchOrpsModule} from './searchPages/simple/searchOrps.module';
import {SearchDataProvidersModule} from './searchPages/simple/searchDataProviders.module'; import {SearchDataProvidersModule} from './searchPages/simple/searchDataProviders.module';
import {SearchProjectsModule} from './searchPages/simple/searchProjects.module'; import {SearchProjectsModule} from './searchPages/simple/searchProjects.module';
import {SearchOrganizationsModule} from './searchPages/simple/searchOrganizations.module'; import {SearchOrganizationsModule} from './searchPages/simple/searchOrganizations.module';
@ -37,6 +39,7 @@ import {SearchOrganizationsModule} from './searchPages/simple/searchOrganization
import {AdvancedSearchPublicationsModule} from './searchPages/advanced/advancedSearchPublications.module'; import {AdvancedSearchPublicationsModule} from './searchPages/advanced/advancedSearchPublications.module';
import {AdvancedSearchDatasetsModule} from './searchPages/advanced/advancedSearchDatasets.module'; import {AdvancedSearchDatasetsModule} from './searchPages/advanced/advancedSearchDatasets.module';
import {AdvancedSearchSoftwareModule} from './searchPages/advanced/advancedSearchSoftware.module'; import {AdvancedSearchSoftwareModule} from './searchPages/advanced/advancedSearchSoftware.module';
import {AdvancedSearchOrpsModule} from './searchPages/advanced/advancedSearchOrps.module';
import {AdvancedSearchDataProvidersModule} from './searchPages/advanced/advancedSearchDataProviders.module'; import {AdvancedSearchDataProvidersModule} from './searchPages/advanced/advancedSearchDataProviders.module';
import {AdvancedSearchProjectsModule} from './searchPages/advanced/advancedSearchProjects.module'; import {AdvancedSearchProjectsModule} from './searchPages/advanced/advancedSearchProjects.module';
import {AdvancedSearchOrganizationsModule} from './searchPages/advanced/advancedSearchOrganizations.module'; import {AdvancedSearchOrganizationsModule} from './searchPages/advanced/advancedSearchOrganizations.module';
@ -73,9 +76,9 @@ import { AppRoutingModule } from './app-routing.module';
MainSearchModule, MainSearchModule,
ErrorModule, ErrorModule,
DepositDatasetsModule,DepositDatasetsResultsModule, DepositBySubjectResultsModule,DepositPublicationsModule , DepositPublicationsResultsModule, DepositDatasetsModule,DepositDatasetsResultsModule, DepositBySubjectResultsModule,DepositPublicationsModule , DepositPublicationsResultsModule,
SearchPublicationsModule,SearchDatasetsModule, SearchSoftwareModule, SearchDataProvidersModule, SearchProjectsModule, SearchOrganizationsModule, SearchPublicationsModule,SearchDatasetsModule, SearchSoftwareModule, SearchOrpsModule, SearchDataProvidersModule, SearchProjectsModule, SearchOrganizationsModule,
AdvancedSearchPublicationsModule,AdvancedSearchDatasetsModule, AdvancedSearchSoftwareModule, AdvancedSearchDataProvidersModule, AdvancedSearchProjectsModule, AdvancedSearchOrganizationsModule, AdvancedSearchPublicationsModule,AdvancedSearchDatasetsModule, AdvancedSearchSoftwareModule, AdvancedSearchOrpsModule, AdvancedSearchDataProvidersModule, AdvancedSearchProjectsModule, AdvancedSearchOrganizationsModule,
PublicationModule, DatasetModule, DataProviderModule, OrganizationModule, ProjectModule, SoftwareModule, PublicationModule, DatasetModule, DataProviderModule, OrganizationModule, ProjectModule, SoftwareModule, OrpModule,
EntityRegistriesModule, CompatibleDataProvidersModule, JournalsModule, EntityRegistriesModule, CompatibleDataProvidersModule, JournalsModule,
JournalsTableModule, EntityRegistriesTableModule, CompatibleDataProvidersTableModule, JournalsTableModule, EntityRegistriesTableModule, CompatibleDataProvidersTableModule,
ClaimsAdminModule, MyClaimsModule, ClaimsByTokenModule, LinkingGenericModule, DirectLinkingModule, ClaimsAdminModule, MyClaimsModule, ClaimsByTokenModule, LinkingGenericModule, DirectLinkingModule,

View File

@ -11,6 +11,7 @@ import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module'; import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module'; import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {SoftwareServiceModule} from '../../services/softwareService.module'; import {SoftwareServiceModule} from '../../services/softwareService.module';
import {OrpsServiceModule} from '../../services/orpsService.module';
import {ProjectsServiceModule} from '../../services/projectsService.module'; import {ProjectsServiceModule} from '../../services/projectsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module'; import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {OrganizationsServiceModule} from '../../services/organizationsService.module'; import {OrganizationsServiceModule} from '../../services/organizationsService.module';
@ -22,7 +23,7 @@ import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, FormsModule, RouterModule, CommonModule, FormsModule, RouterModule,
DataProvidersServiceModule, DatasetsServiceModule, SoftwareServiceModule, ProjectsServiceModule, DataProvidersServiceModule, DatasetsServiceModule, SoftwareServiceModule, OrpsServiceModule, ProjectsServiceModule,
PublicationsServiceModule, OrganizationsServiceModule, PublicationsServiceModule, OrganizationsServiceModule,
BrowseEntitiesModule, SearchFormModule, SearchResultsModule, PiwikServiceModule BrowseEntitiesModule, SearchFormModule, SearchResultsModule, PiwikServiceModule

View File

@ -8,7 +8,7 @@
<div class="uk-width-1-1 "> <div class="uk-width-1-1 ">
<div class="uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle generalSearchForm"> <div class="uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle generalSearchForm">
<div class="uk-width-1-1"> <div class="uk-width-1-1">
<search-form [(keyword)]=keyword (keywordChange)="keywordChanged($event)" placeholderText="Search for research results, software, projects, content providers, organizations in OpenAIRE information space"></search-form> <search-form [(keyword)]=keyword (keywordChange)="keywordChanged($event)" placeholderText="Search for research results, software, other research products, projects, content providers, organizations in OpenAIRE information space"></search-form>
<a *ngIf = "advancedSearchLink && advancedSearchLink.length > 0" routerLinkActive="router-link-active" class="uk-float-right uk-light" [routerLink]=advancedSearchLink >Advanced search for {{activeTab}}<span class="uk-icon"> <a *ngIf = "advancedSearchLink && advancedSearchLink.length > 0" routerLinkActive="router-link-active" class="uk-float-right uk-light" [routerLink]=advancedSearchLink >Advanced search for {{activeTab}}<span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-right" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg> <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-right" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg>
</span> </span>
@ -40,6 +40,13 @@
</a> </a>
</li> </li>
<li *ngIf="showOrps" (click)="searchOrps()" [class]="activeTab == 'other research products'?'uk-active':''">
<a>
Other Research Products
<span [class]="(fetchOrps.searchUtils.status != errorCodes.LOADING && keyword.length > 0)?'uk-badge uk-badge-notification':''"> {{((fetchOrps.searchUtils.status != errorCodes.LOADING && keyword.length > 0)? (fetchOrps.searchUtils.totalResults | number) :'')}}</span>
</a>
</li>
<li *ngIf="showProjects" (click)="searchProjects()" [class]="activeTab == 'projects'?'uk-active':''"> <li *ngIf="showProjects" (click)="searchProjects()" [class]="activeTab == 'projects'?'uk-active':''">
<a> <a>
Projects Projects
@ -88,6 +95,13 @@
<span *ngIf = "fetchSoftware.searchUtils.status != errorCodes.LOADING && keyword.length > 0" class="uk-badge uk-badge-notification"> {{((keyword.length > 0)? (fetchSoftware.searchUtils.totalResults | number) :'')}}</span> <span *ngIf = "fetchSoftware.searchUtils.status != errorCodes.LOADING && keyword.length > 0" class="uk-badge uk-badge-notification"> {{((keyword.length > 0)? (fetchSoftware.searchUtils.totalResults | number) :'')}}</span>
</a> </a>
</li> </li>
<li *ngIf="showOrps" (click)="searchOrps()" [class]="activeTab == 'other research products'?'uk-active':''">
<a>
Other Research Products
<span *ngIf = "fetchOrps.searchUtils.status == errorCodes.LOADING && keyword.length > 0" class="uk-icon-spinner uk-icon-spin"></span>
<span *ngIf = "fetchOrps.searchUtils.status != errorCodes.LOADING && keyword.length > 0" class="uk-badge uk-badge-notification"> {{((keyword.length > 0)? (fetchOrps.searchUtils.totalResults | number) :'')}}</span>
</a>
</li>
<li *ngIf="showProjects" (click)="searchProjects()" [class]="activeTab == 'projects'?'uk-active':''"> <li *ngIf="showProjects" (click)="searchProjects()" [class]="activeTab == 'projects'?'uk-active':''">
<a> <a>
Projects Projects
@ -175,6 +189,25 @@
<!--/li> <!--/li>
<li--> <li-->
</div> </div>
<div *ngIf = "activeTab=='other research products' && showOrps" >
<div *ngIf = "keyword.length > 0 && activeTab=='other research products'" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchOrps.searchUtils.totalResults> 10">
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchOrps" class="uk-button uk-button-text">
View all {{fetchOrps.searchUtils.totalResults | number}} results
</a>
</div>
<search-result [(results)]="fetchOrps.results"
[(status)]= "fetchOrps.searchUtils.status" showLoading = true
type="other" urlParam="orpId" [(properties)]=properties>
</search-result>
</div>
<div *ngIf = "keyword.length == 0 && activeTab=='other research products'" class ="uk-animation-fade">
<browse-entities [(properties)]=properties entityName="other" baseUrl="/search/find/other" [refineFields]=searchFields.RESULT_REFINE_FIELDS></browse-entities>
</div>
<!--/li>
<li-->
</div>
<div *ngIf = "activeTab=='projects' && showProjects"> <div *ngIf = "activeTab=='projects' && showProjects">
<div *ngIf = "keyword.length > 0 && activeTab=='projects'" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0 && activeTab=='projects'" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults> 10"> <div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults> 10">

View File

@ -13,6 +13,7 @@ import {FetchDataproviders} from '../../utils/fetchEntitiesClasses/fe
import {FetchProjects} from '../../utils/fetchEntitiesClasses/fetchProjects.class'; import {FetchProjects} from '../../utils/fetchEntitiesClasses/fetchProjects.class';
import {FetchDatasets} from '../../utils/fetchEntitiesClasses/fetchDatasets.class'; import {FetchDatasets} from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class'; import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class';
import {FetchOrps} from '../../utils/fetchEntitiesClasses/fetchOrps.class';
import {FetchOrganizations} from '../../utils/fetchEntitiesClasses/fetchOrganizations.class'; import {FetchOrganizations} from '../../utils/fetchEntitiesClasses/fetchOrganizations.class';
import {SearchPublicationsService} from '../../services/searchPublications.service'; import {SearchPublicationsService} from '../../services/searchPublications.service';
@ -20,6 +21,7 @@ import {SearchDataprovidersService} from '../../services/searchDataproviders.s
import {SearchProjectsService} from '../../services/searchProjects.service'; import {SearchProjectsService} from '../../services/searchProjects.service';
import {SearchDatasetsService} from '../../services/searchDatasets.service'; import {SearchDatasetsService} from '../../services/searchDatasets.service';
import {SearchSoftwareService} from '../../services/searchSoftware.service'; import {SearchSoftwareService} from '../../services/searchSoftware.service';
import {SearchOrpsService} from '../../services/searchOrps.service';
import {SearchOrganizationsService} from '../../services/searchOrganizations.service'; import {SearchOrganizationsService} from '../../services/searchOrganizations.service';
import {SearchFields, FieldDetails} from '../../utils/properties/searchFields'; import {SearchFields, FieldDetails} from '../../utils/properties/searchFields';
@ -41,6 +43,7 @@ export class SearchComponent {
public reloadPublications: boolean; public reloadPublications: boolean;
public reloadDatasets: boolean; public reloadDatasets: boolean;
public reloadSoftware: boolean; public reloadSoftware: boolean;
public reloadOrps: boolean;
public reloadProjects: boolean; public reloadProjects: boolean;
public reloadDataproviders: boolean; public reloadDataproviders: boolean;
public reloadOrganizations: boolean; public reloadOrganizations: boolean;
@ -51,6 +54,7 @@ export class SearchComponent {
public publications:string[]; public publications:string[];
public datasets:string[]; public datasets:string[];
public software:string[]; public software:string[];
public orps:string[];
public projectsTab:string[]; public projectsTab:string[];
public dataproviders:string[]; public dataproviders:string[];
public organizations:string[]; public organizations:string[];
@ -61,6 +65,7 @@ export class SearchComponent {
public linkToSearchDataproviders = ""; public linkToSearchDataproviders = "";
public linkToSearchDatasets = ""; public linkToSearchDatasets = "";
public linkToSearchSoftware = ""; public linkToSearchSoftware = "";
public linkToSearchOrps = "";
public linkToSearchOrganizations = ""; public linkToSearchOrganizations = "";
public fetchPublications : FetchPublications; public fetchPublications : FetchPublications;
@ -68,6 +73,7 @@ export class SearchComponent {
public fetchProjects : FetchProjects; public fetchProjects : FetchProjects;
public fetchDatasets: FetchDatasets; public fetchDatasets: FetchDatasets;
public fetchSoftware: FetchSoftware; public fetchSoftware: FetchSoftware;
public fetchOrps: FetchOrps;
public fetchOrganizations: FetchOrganizations; public fetchOrganizations: FetchOrganizations;
public searchFields:SearchFields = new SearchFields(); public searchFields:SearchFields = new SearchFields();
@ -77,19 +83,21 @@ export class SearchComponent {
public publicationsSize:any = null; public publicationsSize:any = null;
public datasetsSize:any = null; public datasetsSize:any = null;
public softwareSize:any = null; public softwareSize:any = null;
public oprsSize:any = null;
public fundersSize:any = null; public fundersSize:any = null;
public projectsSize:any = null; public projectsSize:any = null;
public datasourcesSize:any = null; public datasourcesSize:any = null;
showPublications:boolean= false; showPublications:boolean= false;
showDatasets:boolean= false; showDatasets:boolean= false;
showSoftware:boolean=false; showSoftware:boolean=false;
showOrps:boolean=false;
showProjects:boolean= false; showProjects:boolean= false;
showDataProviders:boolean= false; showDataProviders:boolean= false;
showOrganizations:boolean= false; showOrganizations:boolean= false;
advancedSearchLink:string ="/search/advanced/publications"; advancedSearchLink:string ="/search/advanced/publications";
properties: EnvProperties; properties: EnvProperties;
public subPub;public subData;public subProjects;public subOrg; public subDataPr; public subPub;public subData; public subSoftware; public subOrps; public subProjects;public subOrg; public subDataPr;
constructor ( private route: ActivatedRoute, constructor ( private route: ActivatedRoute,
private _router: Router, private _router: Router,
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
@ -97,6 +105,7 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
private _searchProjectsService: SearchProjectsService, private _searchProjectsService: SearchProjectsService,
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _searchSoftwareService: SearchSoftwareService, private _searchSoftwareService: SearchSoftwareService,
private _searchOrpsService: SearchOrpsService,
private _searchOrganizationsService: SearchOrganizationsService, private _searchOrganizationsService: SearchOrganizationsService,
private _refineFieldResultsService:RefineFieldResultsService, private _refineFieldResultsService:RefineFieldResultsService,
private location: Location, private location: Location,
@ -109,6 +118,7 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
this.fetchProjects = new FetchProjects(this._searchProjectsService); this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.fetchDatasets = new FetchDatasets( this._searchDatasetsService); this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
this.fetchSoftware = new FetchSoftware(this._searchSoftwareService); this.fetchSoftware = new FetchSoftware(this._searchSoftwareService);
this.fetchOrps = new FetchOrps( this._searchOrpsService);
this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService); this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService);
} }
@ -145,6 +155,8 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
this.showOrganizations = showEntity["organization"]; this.showOrganizations = showEntity["organization"];
this.showDataProviders = showEntity["datasource"]; this.showDataProviders = showEntity["datasource"];
this.showSoftware = showEntity["software"]; this.showSoftware = showEntity["software"];
this.showOrps = true;//showEntity["other"];
this.sub = this.route.queryParams.subscribe(params => { this.sub = this.route.queryParams.subscribe(params => {
this.keyword = (params['keyword'])?params['keyword']:""; this.keyword = (params['keyword'])?params['keyword']:"";
@ -160,6 +172,9 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
}else if(this.showSoftware){ }else if(this.showSoftware){
this.activeTab = "software"; this.activeTab = "software";
this.searchSoftware(); this.searchSoftware();
}else if(this.showOrps){
this.activeTab = "other research products";
this.searchOrps();
}else if(this.showProjects){ }else if(this.showProjects){
this.activeTab = "projects"; this.activeTab = "projects";
this.searchProjects(); this.searchProjects();
@ -192,6 +207,12 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
if(this.subData){ if(this.subData){
this.subData.unsubscribe(); this.subData.unsubscribe();
} }
if(this.subSoftware){
this.subSoftware.unsubscribe();
}
if(this.subOrps){
this.subOrps.unsubscribe();
}
if(this.subProjects){ if(this.subProjects){
this.subProjects.unsubscribe(); this.subProjects.unsubscribe();
} }
@ -227,6 +248,8 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
} }
} }
public searchSoftware() { public searchSoftware() {
console.info("searchOrps: reload: "+ this.reloadSoftware, this.fetchSoftware.searchUtils.status);
this.activeTab = "software"; this.activeTab = "software";
this.advancedSearchLink ="/search/advanced/software"; this.advancedSearchLink ="/search/advanced/software";
if(this.reloadSoftware && if(this.reloadSoftware &&
@ -237,6 +260,18 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
this.linkToSearchSoftware = this.properties.searchLinkToSoftware;// + "?keyword=" + this.keyword; this.linkToSearchSoftware = this.properties.searchLinkToSoftware;// + "?keyword=" + this.keyword;
} }
} }
public searchOrps() {
console.info("searchOrps: reload: "+ this.reloadOrps, this.fetchOrps.searchUtils.status);
this.activeTab = "other research products";
this.advancedSearchLink ="/search/advanced/other";
if(this.reloadOrps &&
this.fetchOrps.searchUtils.status != this.errorCodes.NONE &&
this.fetchOrps.searchUtils.status != this.errorCodes.ERROR) {
this.reloadOrps = false;
this.fetchOrps.getResultsByKeyword(this.keyword, 1, 10,this.properties);
this.linkToSearchOrps =this.properties.searchLinkToOrps;
}
}
public searchProjects() { public searchProjects() {
this.activeTab = "projects"; this.activeTab = "projects";
this.advancedSearchLink ="/search/advanced/projects"; this.advancedSearchLink ="/search/advanced/projects";
@ -293,6 +328,9 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
if(this.activeTab == "software") { if(this.activeTab == "software") {
this.searchSoftware(); this.searchSoftware();
} }
if(this.activeTab == "other research products") {
this.searchOrps();
}
if(this.activeTab == "organizations") { if(this.activeTab == "organizations") {
this.searchOrganizations(); this.searchOrganizations();
} }
@ -339,7 +377,7 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
if(this.activeTab != "software" && this.showSoftware){ if(this.activeTab != "software" && this.showSoftware){
this.fetchSoftware.searchUtils.status = this.errorCodes.LOADING; this.fetchSoftware.searchUtils.status = this.errorCodes.LOADING;
this.fetchSoftware.results = []; this.fetchSoftware.results = [];
this.subData = this._searchSoftwareService.numOfSearchSoftware(this.keyword,this.properties).subscribe( this.subSoftware = this._searchSoftwareService.numOfSearchSoftware(this.keyword,this.properties).subscribe(
data => { data => {
this.fetchSoftware.searchUtils.totalResults = data; this.fetchSoftware.searchUtils.totalResults = data;
this.fetchSoftware.searchUtils.status = this.errorCodes.DONE; this.fetchSoftware.searchUtils.status = this.errorCodes.DONE;
@ -360,6 +398,23 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
} }
); );
} }
if(this.activeTab != "other research products" && this.showOrps){
this.fetchOrps.searchUtils.status = this.errorCodes.LOADING;
this.fetchOrps.results = [];
this.subOrps = this._searchOrpsService.numOfSearchOrps(this.keyword,this.properties).subscribe(
data => {
this.fetchOrps.searchUtils.totalResults = data;
this.fetchOrps.searchUtils.status = this.errorCodes.DONE;
if(this.fetchOrps.searchUtils.totalResults == 0) {
this.fetchOrps.searchUtils.status = this.errorCodes.NONE;
}
},
err => {
console.log(err);
this.fetchOrps.searchUtils.status = this.errorCodes.ERROR;
}
);
}
if(this.activeTab != "projects" && this.showProjects){ if(this.activeTab != "projects" && this.showProjects){
this.fetchProjects.searchUtils.status = this.errorCodes.LOADING; this.fetchProjects.searchUtils.status = this.errorCodes.LOADING;
this.fetchProjects.results = []; this.fetchProjects.results = [];
@ -407,6 +462,7 @@ public subPub;public subData;public subProjects;public subOrg; public subDataPr;
this.reloadPublications = true; this.reloadPublications = true;
this.reloadDatasets = true; this.reloadDatasets = true;
this.reloadSoftware = true; this.reloadSoftware = true;
this.reloadOrps = true;
this.reloadProjects = true; this.reloadProjects = true;
this.reloadDataproviders = true; this.reloadDataproviders = true;
this.reloadOrganizations = true; this.reloadOrganizations = true;

View File

@ -37,6 +37,9 @@ export class SearchResultComponent {
} else if(this.type == "software") { } else if(this.type == "software") {
this.linkToAdvancedSearchPage = this.properties.searchLinkToAdvancedSoftware; this.linkToAdvancedSearchPage = this.properties.searchLinkToAdvancedSoftware;
this.urlParam = "softwareId"; this.urlParam = "softwareId";
} else if(this.type == "other") {
this.linkToAdvancedSearchPage = this.properties.searchLinkToAdvancedOrps;
this.urlParam = "orpId";
} else if(this.type == "project") { } else if(this.type == "project") {
this.linkToAdvancedSearchPage = this.properties.searchLinkToAdvancedProjects; this.linkToAdvancedSearchPage = this.properties.searchLinkToAdvancedProjects;
this.urlParam = "projectId"; this.urlParam = "projectId";

View File

@ -64,6 +64,8 @@ export class RefineFieldResultsService {
suffix="datasets/"; suffix="datasets/";
} else if(entityType == "software"){ } else if(entityType == "software"){
suffix="software/"; suffix="software/";
} else if(entityType == "other"){
suffix="other/";
}else if(entityType == "organization"){ }else if(entityType == "organization"){
suffix="organizations/"; suffix="organizations/";
}else if(entityType == "dataprovider"){ }else if(entityType == "dataprovider"){

View File

@ -101,6 +101,7 @@ export class EnvProperties {
searchLinkToProject; searchLinkToProject;
searchLinkToDataProvider; searchLinkToDataProvider;
searchLinkToDataset; searchLinkToDataset;
searchLinkToOrp;
searchLinkToOrganization; searchLinkToOrganization;
//Search pages //Search pages
searchLinkToPublications; searchLinkToPublications;
@ -108,6 +109,7 @@ export class EnvProperties {
searchLinkToProjects; searchLinkToProjects;
searchLinkToDatasets; searchLinkToDatasets;
searchLinkToSoftware; searchLinkToSoftware;
searchLinkToOrps;
searchLinkToOrganizations; searchLinkToOrganizations;
searchLinkToCompatibleDataProviders; searchLinkToCompatibleDataProviders;
searchLinkToCompatibleDataProvidersTable; searchLinkToCompatibleDataProvidersTable;
@ -121,6 +123,7 @@ export class EnvProperties {
searchLinkToAdvancedProjects; searchLinkToAdvancedProjects;
searchLinkToAdvancedDatasets; searchLinkToAdvancedDatasets;
searchLinkToAdvancedSoftware; searchLinkToAdvancedSoftware;
searchLinkToAdvancedOrps;
searchLinkToAdvancedDataProviders; searchLinkToAdvancedDataProviders;
searchLinkToAdvancedOrganizations; searchLinkToAdvancedOrganizations;
searchLinkToAdvancedPeople; searchLinkToAdvancedPeople;

View File

@ -137,7 +137,7 @@ export class SearchFields {
constructor (){ constructor (){
} }
getFieldName(fieldId:string,fieldType:string):string{ getFieldName(fieldId:string,fieldType:string):string{
if(fieldType == "publication" || fieldType == "dataset" || fieldType == "software"){ if(fieldType == "publication" || fieldType == "dataset" || fieldType == "software" || fieldType == "other"){
return this.RESULT_FIELDS[fieldId].name; return this.RESULT_FIELDS[fieldId].name;
}else if(fieldType == "project"){ }else if(fieldType == "project"){
return this.PROJECT_FIELDS[fieldId].name; return this.PROJECT_FIELDS[fieldId].name;

View File

@ -33,10 +33,10 @@ export class ISVocabulariesService {
vocabulary = "dnet:dataCite_resource.json"; vocabulary = "dnet:dataCite_resource.json";
return this.getVocabularyFromService(vocabulary, properties); return this.getVocabularyFromService(vocabulary, properties);
}else if ( field == "type" && (entity == "software")){ }else if ( field == "type" && (entity == "software" || entity == "other")){
return Observable.of([]); return Observable.of([]);
}else if( field == "access" && (entity == "publication" || entity == "dataset" || entity == "software" )){ }else if( field == "access" && (entity == "publication" || entity == "dataset" || entity == "software" || entity == "other")){
// file= "accessMode.json"; // file= "accessMode.json";
// return this.getVocabularyFromFile(file); // return this.getVocabularyFromFile(file);
vocabulary = "dnet:access_modes.json"; vocabulary = "dnet:access_modes.json";