Journal Landing Pages Technology

This page documents the implementation of the journal landing pages module.

Overview
The journal landing pages aspect of the DSpace XMLUI module provides a view onto Dryad data by integrated journal, including journal metadata, a search filter, recently published data packages, and download activity for data files.

Page banner
​The journal landing page's banner region uses a DryadJournalConcept to supply information about the displayed journal. The following items are included in the order below when data is available:


 * Journal name
 * journalConcept.getFullName
 * Journal description
 * journalConcept.getDescription
 * Dryad member name
 * journalConcept.getMemberName
 * Dryad sponsor​
 * journalConcept.getSponsorName
 * Dryad integration
 * journalConcept.getIntegrated
 * Dryad submission timeline
 * journalConcept.getAllowReviewWorkflow
 * Data embargo
 * journalConcept.getAllowEmbargo
 * Metadata hidden
 * journalConcept.getPublicationBlackout
 * Data package submission count
 * DryadJournalStats.getArchivedPackagesCount

Journal statistics
One to three tabs are displayed in the "Browse for data" region of the page, depending on the journal's deposit history and the download activity of users. The following tabs are displayed if data is available for a journal:


 * Recently published
 * most recent data packages submitted for the journal
 * Popular (all-time)
 * most downloaded data files for the journal
 * Popular (year)
 * most downloaded data files for the journal in the year preceding the page view
 * Popular (month)
 * most downloaded data files for the journal in month preceding the page view

Look up your journal
The journal lookup page (/pages/journalLookup) has been updated with links that point to the journal landing pages.

XMLUI aspect
The journal-landing module is made available to a running Dryad instance via the XMLUI module's aspect chain, as configured in dspace/config/xmlui.xconf. The journal-landing module's sitemap and i18n messages are located in dspace/modules/xmlui/src/main/resources/aspects/JournalLandingPage. The sitemap is configured to match requests with the pattern "journal/*", where {1} is a journal's ISSN.

The primary pipeline configured in JournalLandingPage/sitemap.xmap consists of an action that validates input and calls a Cocoon transformer to update the DRI document with page regions and statistics available from the database.

A secondary pipeline in the sitemap is used to return page fragments containing information on data-file download activity from the SOLR statistics core. These SOLR requests are handled in parallel, as requests to the download pipeline are made asynchronously from the browser once the page has loaded.

Debugging
The landing pages sitemap supports adding "DRI/" before "journal/" in the page URL to return the DRI document underlying the landing page and the page fragments for downloads.

Module landing-pages
The Java classes called by the landing page's pipeline are located in dspace/modules/journal-landing. The implemented classes are:


 * org.datadryad.api.DryadJournalStats
 * utility class to collect DSpace item information from the database and to construct SOLR subqueries
 * dspace.app.xmlui.aspect.journal.landing.ValidateRequest
 * validate request parameters to pipeline and confirm that an integrated journal exists for the requested ISSN
 * dspace.app.xmlui.aspect.journal.landing.JournalStats
 * create a DRI document with the banner, search, and stats regions for a landing page, as well as page metadata to add standard navigation features
 * dspace.app.xmlui.aspect.journal.landing.JournalDownloads
 * ​create a DRI document with data for one tab's HTML fragment

Mirage theme
The journal-landing module uses the XMLUI theming aspect for presentation, and adds an XSL stylesheet to the Mirage theme at dspace/modules/xmlui/src/main/resources/webapp/themes/Mirage/lib/xsl/aspect/JournalLandingPage/. The JS file dryad-pages.js includes a handler for the landing page's tabs.

Journal lookup
The data for the journal lookup pages that links entries to their landing pages is currently pulled from file ./dspace/modules/xmlui/src/main/webapp/static/json/journal-lookup.json.

Configuration
The landing-pages module uses the DSpace ConfigurationManager for several configurable values, including the statistics SOLR server URL, a templatized SOLR query for datafile download counts, and display counts for the landing page. These items are included under 'landing-page' in dspace/config/dspace.cfg.

Relation to DSpace
The journal landing pages module is available to DSpace by means of the xmlui aspect chain.