+
+
+
@@ -393,7 +396,7 @@
0"
[tabTitle]="openaireEntities.OTHER" [tabNumber]="fetchOrps.searchUtils.totalResults"
[tabId]="'other'">
-
0 ? fetchDmps.searchUtils.totalResults : ''" [tabId]="'dmps'">
+
0 ? fetchDmps.searchUtils.totalResults : ''" [tabId]="'dmps'">
@@ -405,245 +408,30 @@
-
-
-
-
-
-
- No summary information available
-
-
-
-
-
-
-
Partners
-
-
-
thresholdOrganizations && !lessBtnOrganizations"
- class="uk-text-center">
-
- View all
-
-
-
-
-
-
-
-
-
-
-
-
0">
-
-
-
-
+
+
+
+ 0">
+
-
0">
-
-
-
-
+
0">
-
-
-
-
+
0">
-
-
-
-
+
-
+
-
-
-
-
- -
-
-
-
-
-
-
-
Usage by
-
UsageCounts
-
-
-
-
-
-
-
- |
-
- Downloads
- |
- = 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
- title="{{totalDownloads | number}}">
- {{formatNumber(totalDownloads)}}
- |
-
-
-
-
- |
-
- Views
- |
- = 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
- title="{{totalViews | number}}">
- {{formatNumber(totalViews)}}
- |
-
-
-
-
-
-
-
-
- -
-
-
-
-
= 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
- title="{{totalDownloads | number}}">{{formatNumber(totalDownloads)}}
-
Downloads
-
-
-
= 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
- title="{{totalViews | number}}">{{formatNumber(totalViews)}}
-
Views
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Powered by
-
-
-
-
-
+
0 || fetchDatasets.searchUtils.totalResults > 0
|| fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)">
-
-
Statistics
-
-
-
-
-
Produced
- {{openaireEntities.RESULTS}} per year
-
-
-
-
-
-
-
Access mode of
- {{openaireEntities.RESULTS}}
-
-
-
-
-
-
-
- {{openaireEntities.RESULTS}} per datasource
-
-
-
-
-
-
+
@@ -661,6 +449,183 @@
+
+
+
+
+
+
+
+
+
+
+ Summary
+
+
+
+
+
0">
+
+ {{openaireEntities.PUBLICATIONS}}
+
+
+
+
+
0">
+
+ {{openaireEntities.DATASETS}}
+
+
+
+
+
0">
+
+ {{openaireEntities.SOFTWARE}}
+
+
+
+
+
0">
+
+ {{openaireEntities.OTHER}}
+
+
+
+
+
+
+ DMPs
+
+
+
+
+
0 || fetchDatasets.searchUtils.totalResults > 0
+ || fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)">
+
+ Statistics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0">
+
+
+
+ 0">
+
+
+
+ 0">
+
+
+
+ 0">
+
+
+
+
+
+
+
+ 0 || fetchDatasets.searchUtils.totalResults > 0
+ || fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)">
+
+
+
+
+
+
@@ -673,51 +638,11 @@
-
+
-
-
-
-
-
-
-
-
-
- No reports available
-
-
-
+
threshold"> ...
+
+
+
+
+
+
+
+
+ No summary information available
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Statistics
+
+
+
+
+
Produced
+ {{openaireEntities.RESULTS}} per year
+
+
+
+
+
+
+
Access mode of
+ {{openaireEntities.RESULTS}}
+
+
+
+
+
+
+
+ {{openaireEntities.RESULTS}} per datasource
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
Usage by
+
UsageCounts
+
+
+
+
+
+
+
+ |
+
+ Downloads
+ |
+ = 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
+ title="{{totalDownloads | number}}">
+ {{formatNumber(totalDownloads)}}
+ |
+
+
+
+
+ |
+
+ Views
+ |
+ = 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
+ title="{{totalViews | number}}">
+ {{formatNumber(totalViews)}}
+ |
+
+
+
+
+
+
+
+
+ -
+
+
+
+
= 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
+ title="{{totalDownloads | number}}">{{formatNumber(totalDownloads)}}
+
Downloads
+
+
+
= 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
+ title="{{totalViews | number}}">{{formatNumber(totalViews)}}
+
Views
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Powered by
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No reports available
+
+
+
+
diff --git a/landingPages/project/project.component.ts b/landingPages/project/project.component.ts
index a90cab4f..b94eafa8 100644
--- a/landingPages/project/project.component.ts
+++ b/landingPages/project/project.component.ts
@@ -31,6 +31,8 @@ import {Option} from "../../sharedComponents/input/input.component";
import {OpenaireEntities} from "../../utils/properties/searchFields";
import {MetricsService} from '../../services/metrics.service';
import {NumberUtils} from '../../utils/number-utils.class';
+import {LayoutService} from '../../dashboard/sharedComponents/sidebar/layout.service';
+import {FullScreenModalComponent} from '../../utils/modal/full-screen-modal/full-screen-modal.component';
declare var ResizeObserver;
@@ -85,8 +87,11 @@ export class ProjectComponent {
// @ViewChild('statisticsModal') statisticsModal;
// @ViewChild('linkProjectModal') linkProjectModal;
@ViewChild('embedResultsModal') embedResultsModal;
+ @ViewChild('embedResultsFsModal') embedResultsFsModal: FullScreenModalComponent;
@ViewChild('downloadReportModal') downloadReportModal;
- @ViewChild('addThisModal') addThisModal
+ @ViewChild('downloadReportFsModal') downloadReportFsModal: FullScreenModalComponent;
+ @ViewChild('addThisModal') addThisModal;
+ @ViewChild('addThisFsModal') addThisFsModal: FullScreenModalComponent;
// Request results for publications, research data and software only the one time (first time tab is clicked)
private reloadPublications: boolean = true;
@@ -166,6 +171,19 @@ export class ProjectComponent {
properties: EnvProperties;
public openaireEntities = OpenaireEntities;
+ public isMobile: boolean = false;
+ public mobileContent: "info" | "metrics" | "actions" = "info";
+ public tabMobile: string = "";
+ public viewAllMobile: string = "";
+ // Full screen modals for small screens (mobile)
+ @ViewChild('summaryFsModal') summaryFsModal: FullScreenModalComponent;
+ @ViewChild('publicationsFsModal') publicationsFsModal: FullScreenModalComponent;
+ @ViewChild('datasetsFsModal') datasetsFsModal: FullScreenModalComponent;
+ @ViewChild('softwareFsModal') softwareFsModal: FullScreenModalComponent;
+ @ViewChild('otherFsModal') otherFsModal: FullScreenModalComponent;
+ @ViewChild('dmpsFsModal') dmpsFsModal: FullScreenModalComponent;
+ @ViewChild('statisticsFsModal') statisticsFsModal: FullScreenModalComponent;
+
constructor(private route: ActivatedRoute,
private _router: Router,
private _location: Location,
@@ -180,24 +198,25 @@ export class ProjectComponent {
private htmlService: HtmlProjectReportService,
private indexInfoService: IndexInfoService,
private metricsService: MetricsService,
- private cdr: ChangeDetectorRef) {}
+ private cdr: ChangeDetectorRef,
+ private layoutService: LayoutService) {}
ngOnInit() {
-
- this.properties = properties;
- if (typeof document !== 'undefined') {
- this.subscriptions.push(this.indexInfoService.getLastIndexDate(this.properties).subscribe(lastIndexUpdate => {
- if (lastIndexUpdate) {
- this.indexUpdateDate = new Date(lastIndexUpdate);
- }
- }));
- }
- //this.getDivContents();
- this.getPageContents();
- this.updateUrl(this.properties.domain + this.properties.baseLink + this._router.url);
- this.seoService.createLinkForCanonicalURL(this.properties.domain +this.properties.baseLink + this._router.url);
-
-
+ this.subscriptions.push(this.layoutService.isMobile.subscribe(isMobile => {
+ this.isMobile = isMobile;
+ }));
+ this.properties = properties;
+ if (typeof document !== 'undefined') {
+ this.subscriptions.push(this.indexInfoService.getLastIndexDate(this.properties).subscribe(lastIndexUpdate => {
+ if (lastIndexUpdate) {
+ this.indexUpdateDate = new Date(lastIndexUpdate);
+ }
+ }));
+ }
+ //this.getDivContents();
+ this.getPageContents();
+ this.updateUrl(this.properties.domain + this.properties.baseLink + this._router.url);
+ this.seoService.createLinkForCanonicalURL(this.properties.domain +this.properties.baseLink + this._router.url);
this.subscriptions.push(this.route.queryParams.subscribe(params => {
this.stickyHeader = false;
this.metricsClicked = false;
@@ -585,6 +604,13 @@ export class ProjectComponent {
}
}
+ public viewAllOrganizationsMobileClicked() {
+ this.summaryFsModal.title += " - Partners";
+ this.summaryFsModal.back = true;
+ this.lessBtnOrganizations = true;
+ this.viewAllMobile = "organizations";
+ }
+
public openOrganizationsModal() {
this.organizationsModal.cancelButton = false;
this.organizationsModal.okButton = false;
@@ -973,6 +999,16 @@ export class ProjectComponent {
];
}
+ public viewAllDescriptionClicked() {
+ if(this.isMobile) {
+ this.summaryFsModal.title += " - Description";
+ this.summaryFsModal.back = true;
+ this.viewAllMobile = "description";
+ } else {
+ this.openDescriptionModal();
+ }
+ }
+
public openDescriptionModal() {
this.descriptionModal.alertFooter = false;
this.descriptionModal.alertTitle = "Description";
@@ -990,6 +1026,21 @@ export class ProjectComponent {
return formatted.number + formatted.size;
}
+ public cancelSummaryClicked() {
+ this.summaryFsModal.title = "Summary";
+ this.summaryFsModal.back = false;
+ this.lessBtnOrganizations = false;
+ this.viewAllMobile = "";
+ }
+
+ public openFsModal(fsModal: FullScreenModalComponent, title: string) {
+ fsModal.title = title;
+ fsModal.okButton = false;
+ fsModal.stayOpenInBack = true;
+ fsModal.open();
+ this.tabMobile = title;
+ }
+
public getMetricsTooltip(value: string) {
if (value == 'downloads') {
return "
Downloads provided by UsageCounts ";
diff --git a/landingPages/project/project.module.ts b/landingPages/project/project.module.ts
index 5e4c6762..18f201ea 100644
--- a/landingPages/project/project.module.ts
+++ b/landingPages/project/project.module.ts
@@ -32,6 +32,7 @@ import {IconsModule} from "../../utils/icons/icons.module";
import {InputModule} from "../../sharedComponents/input/input.module";
import {IconsService} from "../../utils/icons/icons.service";
import {graph, link, link_to, open_access} from "../../utils/icons/icons";
+import {FullScreenModalModule} from '../../utils/modal/full-screen-modal/full-screen-modal.module';
@NgModule({
imports: [
@@ -41,7 +42,8 @@ import {graph, link, link_to, open_access} from "../../utils/icons/icons";
SearchResearchResultsServiceModule, ProjectServiceModule,
Schema2jsonldModule, SEOServiceModule, HelperModule,
LandingHeaderModule, MatSelectModule, FeedbackModule, AltMetricsModule,
- TabsModule, SearchTabModule, LoadingModule, IconsModule, InputModule
+ TabsModule, SearchTabModule, LoadingModule, IconsModule, InputModule,
+ FullScreenModalModule
],
declarations: [
ProjectComponent
diff --git a/landingPages/result/resultLanding.component.html b/landingPages/result/resultLanding.component.html
index 0947b2c5..8a7259bf 100644
--- a/landingPages/result/resultLanding.component.html
+++ b/landingPages/result/resultLanding.component.html
@@ -472,12 +472,13 @@
[entityType]="getTypeName()" [types]="resultLandingInfo.types"
[date]="resultLandingInfo.dateofacceptance" [embargoEndDate]="resultLandingInfo.embargoEndDate"
[publisher]="resultLandingInfo.publisher" [journal]="resultLandingInfo.journal"
- [languages]="resultLandingInfo.languages" [programmingLanguages]="resultLandingInfo.programmingLanguages">
+ [languages]="resultLandingInfo.languages" [programmingLanguages]="resultLandingInfo.programmingLanguages"
+ [isMobile]="true">
0" class="uk-margin-small-top">
-
+
0 && !viewAllMobile" class="uk-margin-small-top">
@@ -849,7 +850,7 @@
[otherSubjects]="resultLandingInfo.otherSubjects"
[classifiedSubjects]="resultLandingInfo.classifiedSubjects"
[eoscSubjects]="resultLandingInfo.eoscSubjects"
- [isMobile]="isMobile"
+ [isMobile]="isMobile">
[viewAllSubjects]="viewAllMobile=='subjects'"
[viewAllClassifiedSubjects]="viewAllMobile=='classifiedSubjects'"
(viewAllClicked)="viewAllSubjectsMobileClicked($event)">
@@ -1023,7 +1024,7 @@
Citations
- {{resultLandingInfo.measure.citations | number}}
+ {{formatNumber(resultLandingInfo.measure.citations)}}
|
@@ -1130,7 +1131,7 @@
Citations
- {{resultLandingInfo.measure.citations}}
+ {{formatNumber(resultLandingInfo.measure.citations)}}
|
@@ -1192,7 +1193,7 @@
-
+
= 1000 ? 'cls: uk-active' : 'cls: uk-invisible'"
title="{{resultLandingInfo.measure.downloads | number}}">{{formatNumber(resultLandingInfo.measure.downloads)}}
diff --git a/utils/authors/showAuthors.component.ts b/utils/authors/showAuthors.component.ts
index daf87fb3..215c835c 100644
--- a/utils/authors/showAuthors.component.ts
+++ b/utils/authors/showAuthors.component.ts
@@ -88,18 +88,27 @@ import {properties} from "../../../../environments/environment";
-
+
+
+
+
+
+
+
+
+
`
})
export class ShowAuthorsComponent {
+ @Input() isMobile: boolean = false;
@Input() authors: Author[];
@Input() isSticky: boolean = false;
@Input() authorsLimit: number = 7;
@@ -137,10 +146,16 @@ export class ShowAuthorsComponent {
}
public openAuthorsModal() {
- this.authorsModal.cancelButton = false;
- this.authorsModal.okButton = false;
- this.authorsModal.alertTitle = "Authors";
- this.authorsModal.open();
+ if (this.isMobile) {
+ this.authorsModal.okButton = false;
+ this.authorsModal.title = "Authors";
+ this.authorsModal.open();
+ } else {
+ this.authorsModal.cancelButton = false;
+ this.authorsModal.okButton = false;
+ this.authorsModal.alertTitle = "Authors";
+ this.authorsModal.open();
+ }
}
copyToClipboard(element: HTMLInputElement) {
diff --git a/utils/authors/showAuthors.module.ts b/utils/authors/showAuthors.module.ts
index a9cd2e12..f98f42e5 100644
--- a/utils/authors/showAuthors.module.ts
+++ b/utils/authors/showAuthors.module.ts
@@ -5,10 +5,11 @@ import {RouterModule} from '@angular/router';
import {ShowAuthorsComponent} from './showAuthors.component';
import {AlertModalModule} from "../modal/alertModal.module";
+import {FullScreenModalModule} from "../modal/full-screen-modal/full-screen-modal.module";
@NgModule({
imports: [
- CommonModule, FormsModule, RouterModule, AlertModalModule
+ CommonModule, FormsModule, RouterModule, AlertModalModule, FullScreenModalModule
],
declarations: [
ShowAuthorsComponent
diff --git a/utils/entity-actions/entity-actions.component.ts b/utils/entity-actions/entity-actions.component.ts
index d5ac6736..d80daab1 100644
--- a/utils/entity-actions/entity-actions.component.ts
+++ b/utils/entity-actions/entity-actions.component.ts
@@ -38,8 +38,10 @@ import {EnvProperties} from "../properties/env-properties";
Deposit
-
+
Embed
@@ -92,6 +94,7 @@ export class EntityActionsComponent implements OnInit {
@ViewChild('downloadReportModal') downloadReportModal;
@ViewChild('addThisModal') addThisModal;
properties: EnvProperties = properties;
+ openaireEntities = OpenaireEntities;
/* Embed */