Preliminary migration of FTL libs for sci-publications

pull/1/head
Jens Pelzetter 2019-12-22 11:36:10 +01:00
parent e9b221af9d
commit a1fe0a4dd8
15 changed files with 961 additions and 1 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
.project
.settings
/sci-types-project/target/ /sci-types-project/target/
/scientificcms/target/ /scientificcms/target/
/sci-publications/nbproject/ /sci-publications/nbproject/

3
sci-publications/.gitignore vendored 100644
View File

@ -0,0 +1,3 @@
.classpath
.factorypath
target

View File

@ -0,0 +1,17 @@
<#import "/ccm-cms/content-item.ftl" as ContentItem>
<#--filedoc
Functions for publications of the types ArticleInCollectedVolume.
ArticleInJournal and InProceedings.
-->
<#--doc
Constructs the link to the detail view for the article.
@param article The article to use.
@return The link to the detail view of the article.
-->
<#function getHref article>
<#return ContentItem.generateContentItemLink(article.uuid)>
</#function>

View File

@ -0,0 +1,118 @@
<#--filedoc
Functions for processing the authors of a publication.
-->
<#--doc
Constructs the link the homepage of the author.
@param author The author to use.
@param keyId The `keyId` of the contact entry providing the link to the homepage.
@return The link to the homepage of the author.
-->
<#function getLink author keyId>
<#return author["./contacts/contact/contactentries[./keyId = '${keyId}']/value"]>
</#function>
<#--doc
Determines if an author has a link to a homepage.
@param author The author to use.
@param keyId The `keyId` of the contact entry providing the link to the homepage.
@return `true` if the author has a link to a homepage, `false` otherwise.
-->
<#function hasLink author keyId>
<#return (author["./contacts/contact/contactentries[./keyId = '${keyId}']"]?size > 0)>
</#function>
<#--doc
Gets the ID of the author.
@param author The author to use.
@return The ID of the author.
-->
<#function getId author>
<#return author["./masterVersion/id"] + "_" + author["./@name"]>
</#function>
<#--doc
Gets the position of the author in the sequence of authors.
@param author The author to use.
@return The position of the author.
-->
<#function getPosition author>
<#return author["./position()"]>
</#function>
<#--doc
Determines if the author is the last author in the sequence.
@param author The author to use.
@return `true` if the author is the last in the sequence, `false`otherwise.
-->
<#function isLast author>
<#return author["./last()"]>
</#function>
<#--doc
Determines if the author has a surname.
@param author The author to use.
@return `true` if the author has a surname, `false`otherwise.
-->
<#function hasSurname author>
<#return (author["./surname"]?size > 0)>
</#function>
<#--doc
Gets the surname of the author.
@param author The author to use.
@return The surname of the author.
-->
<#function getSurname author>
<#return author.surname>
</#function>
<#--doc
Determines if the author has a givnen name.
@param author The author to use.
@return `true` if the author has a given name, `false`otherwise.
-->
<#function hasGivenName author>
<#return (author.givenName??)>
</#function>
<#--doc
Gets the given name of the author.
@param author The author to use.
@return The given name of the author.
-->
<#function getGivenName author>
<#return author.givenName>
</#function>
<#--doc
Determines if the author is an editor.
@param author The author to use.
@return `true` if the author an editor, `false`otherwise.
-->
<#function isEditor author>
<#return author.isEditor>
</#function>

View File

@ -0,0 +1,16 @@
<#import "/ccm-cms/content-item.ftl" as ContentItem>
<#--doc
Functions for the processing collected volumes.
-->
<#--doc
Constructs the the link to the detail view to a collected volume.
@param collectedVolume The Collected Volume to use.
@return The link to the detail view of the Collected Volume.
-->
<#function getHref collectedVolume>
<#return ContentItem.generateContentItemLink(collectedVolume.uuid)>
</#function>

View File

@ -0,0 +1,59 @@
<#--filedoc
Funtions for processing the export links for publications.
-->
<#--doc
Gets the export links of a publication.
@param item The publication item to use.
@return A sequence of the export links of the publication.
-->
<#function getExportLinks item>
<#return item.publicationExportLinks>
</#function>
<#--doc
Determines if the provided publication item has export links.
@param item The publication item to use.
@return `true` if the publication item has export links, `false` otherwise.
-->
<#function hasExportLinks item>
<#return (item.publicationExportLinks?size > 0)>
</#function>
<#--doc
Constructs the URL for the export link.
@param exportLink The export link to use (as returned by `getExportLinks`).
@return The URL of the export link.
-->
<#function getHref exportLink>
<#return "${dispatcherPrefix}/scipublications/export/?format=${exportLink.formatKey}&publication=${exportLink.publicationId}">
</#function>
<#--doc
Gets the format key of an export link.
@param exportLink The export link to use (as returned by `getExportLinks`).
@return The key for the format provided by the export link.
-->
<#function getFormatKey exportLink>
<#return exportLink.formatKey>
</#function>
<#--doc
Gets the format name of an export link.
@param exportLink The export link to use (as returned by `getExportLinks`).
@return The of the export format provided by the export link.
-->
<#function getFormatName exportLink>
<#return exportLink.formatName>
</#function>

View File

@ -0,0 +1,63 @@
<#import "/ccm-cms/content-item.ftl" as ContentItem>
<#--filedoc
Functions for processing the the data of Journals.
-->
<#--doc
Gets the value of the `firstYear` property of the journal.
@param journal The journal to use.
@return The value of the `firstYear` property of the Journal.
-->
<#function getFirstYear(journal)>
<#return journal.firstYear>
</#function>
<#--doc
Constructs the link to the detail view of the journal.
@param journal The journal to use.
@return The URL of the detail view of the Journal.
-->
<#function getHref journal>
<#return ContentItem.generateContentItemLink(journal.uuid)>
</#function>
<#--doc
Gets the ISSN of the Journal.
@param journal The journal to use.
@return The ISSN of the Journal.
-->
<#function getIssn journal>
<#return journal.issn>
</#function>
<#--doc
Gets the value of the `lastYear` property of the journal.
@param journal The journal to use.
@return The value of the `firstYear` property of the Journal.
-->
<#function getLastYear(journal)>
<#return journal.lastYear>
</#function>
<#--doc
Gets the title of the Journal.
@param journal The journal to use.
@return The title of the journal.
-->
<#function getTitle journal>
<#return journal.title>
</#function>

View File

@ -0,0 +1,49 @@
<#--filedoc
Functions for processing library signatures.
-->
<#--doc
Gets the library of the signature.
@param signature The signature to use.
@return The library of the signature.
-->
<#function getLibrary signature>
<#return signature.library>
</#function>
<#--doc
Gets the libray specific signature.
@param signature The signature to use.
@return The signature associated with the book for the a specific library.
-->
<#function getSignature signature>
<#return signature.signature>
</#function>
<#--doc
Gets the link to the library.
@param signature The signature to use.
@return The link to the library of the signature.
-->
<#function getLibraryLink signature>
<#return signature.libraryLink>
</#function>
<#--doc
Gets the value of `misc` property to the signature.
@param signature The signature to use.
@return The value of `misc` of the signature.
-->
<#function getMisc signature>
<#return signature.misc>
</#function>

View File

@ -0,0 +1,14 @@
<#--filedoc
Functions for processing the orderer of an expertise.
-->
<#--doc
Gets the name of the orderer.
@param orderer The orderer to use.
@return The name of the orderer.
-->
<#function getName orderer>
<#return orderer.title>
</#function>

View File

@ -0,0 +1,28 @@
<#import "/ccm-cms/content-item.ftl" as ContentItem>
<#--filedoc
Functions for processing Proceedings items.
-->
<#--doc
Gets the URL of the detail view of the proceedings item.
@param proceedings The proceedings item to use.
@return The URL of the detail view of the proceedings.
-->
<#function getHref proceedings>
<#return ContentItem.generateContentItemLink(proceedings.uuid)>
</#function>
<#--doc
Gets the URL of the detail of a paper (InProceedings item) of a proceedings
publication.
@param paper The InProceedings item to use.
@return The URL of the detail view of the paper.
-->
<#function getPaperHref paper>
<#return ContentItem.generateContentItemLink(paper.uuid)>
</#function>

View File

@ -0,0 +1,501 @@
<#--filedoc
Commons functions for publication types. Some functions in this
module will only work for specific publication types.
-->
<#--doc
Gets the assigned terms of an publication.
@param item The publication item to use.
@param domain The domain to use.
@return The assigned terms.
-->
<#function getAssignedTermsDomains item domain>
<#return item.terms.assignedTerms.domain"]>
</#function>
<#--doc
Gets the authors of the publication.
@param item The publication item to use.
@return A sequence of the authors of the publication. The authors can
be further processed by the functions provided by the `authors` library.
-->
<#function getAuthors item>
<#return item.authors>
</#function>
<#--doc
Gets the publisher of an publication.
@param item The publication item to use.
@return The publisher of the publication. The `publisher` library
provides functions for processing the publisher.
-->
<#function getPublisher item>
<#return item.publisher>
</#function>
<#--doc
Gets the value of the `yearOfPublication` property of the publication.
@param item The publication item to use.
@return The value of the `yearOfPublication` property of the publication.
-->
<#function getYearOfPublication item>
<#return item.yearOfPublication>
</#function>
<#--doc
Gets the value of the `numberOfPages` property of the publication.
@param item The publication item to use.
@return The value of the `numberOfPages` property of the publication.
-->
<#function getNumberOfPages item>
<#return item.numberOfPages>
</#function>
<#--doc
Gets the value of the `numberOfVolumes` property of the publication.
@param item The publication item to use.
@return The value of the `numberOfVolumes` property of the publication.
-->
<#function getNumberOfVolumes item>
<#return item.numberOfVolumes>
</#function>
<#--doc
Gets the value of the `volume` property of the publication.
@param item The publication item to use.
@return The value of the `volume` property of the publication.
-->
<#function getVolume item>
<#return item.volume>
</#function>
<#--doc
Gets the value of the `edition` property of the publication.
@param item The publication item to use.
@return The value of the `edition` property of the publication.
-->
<#function getEdition item>
<#return item.edition>
</#function>
<#--doc
Gets the value of the `isbn` property of the publication.
@param item The publication item to use.
@return The value of the `isbn` property of the publication.
-->
<#function getIsbn item>
<#return item.isbn>
</#function>
<#--doc
Gets the value of the `languageOfPublication` property of the publication.
@param item The publication item to use.
@return The value of the `languageOfPublication` property of the publication.
-->
<#function getLanguageOfPublication item>
<#return item.languageOfPublication>
</#function>
<#--doc
Gets the series associated with publication.
@param item The publication item to use.
@return A sequence of series associated with the publication. The `series`
module provides functions for processing the returned data.
-->
<#function getSeries item>
<#return item.series>
</#function>
<#--doc
Gets the value of the `reviewed` property of the publication.
@param item The publication item to use.
@return The value of the `reviewed` property of the publication.
-->
<#function isReviewed item>
<#return item.reviewed>
</#function>
<#--doc
Gets the value of the `abstract` property of the publication.
@param item The publication item to use.
@return The value of the `abstract` property of the publication.
-->
<#function getAbstract item>
<#return item.abstract>
</#function>
<#--doc
Gets the value of the `misc` property of the publication.
@param item The publication item to use.
@return The value of the `misc` property of the publication.
-->
<#function getMisc item>
<#return item.misc>
</#function>
<#--doc
Determines if the publication has a value of the `languageOfPublicatiopn` property.
@param item The publication item to use.
@return `true` if the publication has a value for the `languageOfPublication`.
-->
<#function hasPlace item>
<#return (item.place??>
</#function>
<#--doc
Gets the value of the `place` property of the publication.
@param item The publication item to use.
@return The value of the `place` property of the publication.
-->
<#function getPlace item>
<#return item.place>
</#function>
<#--doc
Gets the value of the `pagesFrom` property of the publication.
@param item The publication item to use.
@depcrecated Use getStartPage
@return The value of the `getPagesFrom` property of the publication.
-->
<#function getPagesFrom item>
<#return getStartPage(item)>
</#function>
<#--doc
Gets the value of the `startPage` property of the publication.
@param item The publication item to use.
@return The value of the `startPage` property of the publication.
-->
<#function getStartPage item>
<#return item.startPage>
</#function>
<#--doc
Gets the value of the `pagesTo` property of the publication.
@param item The publication item to use.
@depcrecated Use getEndPage
@return The value of the `pagesTo` property of the publication.
-->
<#function getPagesTo item>
<#return getEndPage(item)>
</#function>
<#--doc
Gets the value of the `endPage` property of the publication.
@param item The publication item to use.
@return The value of the `endPage` property of the publication.
-->
<#function getEndPage item>
<#return item.endPage>
</#function>
<#--doc
Gets the value of the `number` property of the publication.
@param item The publication item to use.
@return The value of the `number` property of the publication.
-->
<#function getNumber item>
<#return item.number>
</#function>
<#--doc
Gets the value of the `yearFirstPublished` property of the publication.
@param item The publication item to use.
@return The value of the `yearFirstPublished` property of the publication.
-->
<#function getYearFirstPublished item>
<#return item.yearFirstPublished>
</#function>
<#--doc
Gets the library signatures of the publication.
@param item The publication item to use.
@return A sequence of the library signatures associated with the
publication. The `librarySignatures` module provides functions for
processing library signatures.
-->
<#function getLibrarySignatures item>
<#return item.librarysignatures>
</#function>
<#--doc
Gets the organizations associated with the publication.
@param item The publication item to use.
@return A sequence of organizations associated with the publication.
-->
<#function getOrganization item>
<#return item.organization>
</#function>
<#--doc
Gets the orderer of the publication.
@param item The publication item to use.
@return A sequence or the orderers (organizations) of the publication.
-->
<#function getOrderer item>
<#return item.orderer>
</#function>
<#--doc
Gets the value of the `issn` property of the publication.
@param item The publication item to use.
@return The value of the `issn` property of the publication.
-->
<#function getIssn item>
<#return item.issn>
</#function>
<#--doc
Gets the value of the `lastAccesed` property of the publication.
@param item The publication item to use.
@return The value of the `lastAccessed` property of the publication.
-->
<#function getLastAccessed item>
<#return item.lastAccessed>
</#function>
<#--doc
Gets the value of the `url` property of the publication.
@param item The publication item to use.
@return The value of the `url` property of the publication.
-->
<#function getUrl item>
<#return item.url>
</#function>
<#--doc
Gets the value of the `urn` property of the publication.
@param item The publication item to use.
@return The value of the `urn` property of the publication.
-->
<#function getUrn item>
<#return item.urn>
</#function>
<#--doc
Gets the value of the `doi` property of the publication.
@param item The publication item to use.
@return The value of the `doi` property of the publication.
-->
<#function getDoi item>
<#return item.doi>
</#function>
<#--doc
Gets the value of the `issue` property of the publication.
@param item The publication item to use.
@return The value of the `issue` property of the publication.
-->
<#function getIssue item>
<#return item.issue>
</#function>
<#--doc
Gets the journal associated with a publication.
@param item The publication item to use.
@return The Jornal associated with the the publication. The `journal`
module provides function for processing the journal.
-->
<#function getJournal item>
<#return item.journal>
</#function>
<#--doc
Gets the collected volume associated with a publication.
@param item The publication item to use.
@return The collected volume associated with the publication. The
`collected-volume` module provides functions for processing the
collected volume.
-->
<#function getCollectedVolume item>
<#return item.collectedVolume>
</#function>
<#--doc
Gets the value of the `chapter` property of the publication.
@param item The publication item to use.
@return The value of the `chapter` property of the publication.
-->
<#function getChapter item>
<#return item.chapter>
</#function>
<#--doc
Gets the value of the `nameOfConference` property of the publication.
@param item The publication item to use.
@return The value of the `nameOfConference` property of the publication.
-->
<#function getNameOfConference item>
<#return item.nameOfConference>
</#function>
<#--doc
Gets the value of the `placeOfConference` property of the publication.
@param item The publication item to use.
@return The value of the `placeOfConference` property of the publication.
-->
<#function getPlaceOfConference item>
<#return item.placeOfConference>
</#function>
<#--doc
Gets the value of the `dateFromOfConference` property of the publication.
@param item The publication item to use.
@return The value of the `dateFromOfConference` property of the publication.
-->
<#function getDateFromOfConference item>
<#return item.dateFromOfConference>
</#function>
<#--doc
Gets the value of the `dateToOfConference` property of the publication.
@param item The publication item to use.
@return The value of the `dateToOfConference` property of the publication.
-->
<#function getDateToOfConference item>
<#return item.dateToOfConference>
</#function>
<#--doc
Gets the Proceedings item associated with a InProceedings publication
@param item The publication item to use.
@return The Proceedings item associated with a InProceedings publication.
-->
<#function getProceedings item>
<#return item.proceedings>
</#function>
<#--doc
Gets the articles of a CollectedVolume, item or Journal.
@param item The publication item to use.
@return A sequence of articles.
-->
<#function getArticles item>
<#return item.articles>
</#function>
<#--doc
Gets the papers of a Proceedings papers
@param item The publication item to use.
@return A sequence of InProccedings items.
-->
<#function getProceedingsPapers item>
<#return item.papers>
</#function>
<#--doc
Gets the volumes of a series.
@param item The series to use.
@return A sequence of the publications in the series.
-->
<#function getSeriesVolumes item>
<#return item.volumes"]>
</#function>
<#--doc
Gets the value of the `event` property of the publication.
@param item The publication item to use.
@return The value of the `event` property of the publication.
-->
<#function getEvent item>
<#return item.event>
</#function>
<#--doc
Gets the value of the `dateOfTalk` property of the publication.
@param item The publication item to use.
@return The value of the `dateOfTalk` property of the publication.
-->
<#function getDateOfTalk item>
<#return item.dateOfTalk>
</#function>

View File

@ -0,0 +1,25 @@
<#--filedoc
Functions for processing publishers.
-->
<#--doc
Gets the name of a publisher.
@param publisher The publisher to use.
@return The name of the publisher.
-->
<#function getName publisher>
<#return publisher.publisherName>
</#function>
<#--doc
Gets the place of the publisher.
@param publisher The publisher to use.
@return The place of the publisher.
-->
<#function getPlace publisher>
<#return publisher.place>
</#function>

View File

@ -0,0 +1,61 @@
<#import "/ccm-cms/content-item.ftl" as ContentItem>
<#--filedoc
Functions for processing Series items.
-->
<#--doc
Gets the filters for the volumes list of the series.
@param series The series to use
@return A sequence of the filters for the list of volumes of the series.
-->
<#function getFilters series>
<#return series.filters>
</#function>
<#--doc
Constructs the link to the details view of a series.
@param series The series to use.
@return The link to the detail view of the series.
-->
<#function getLink series>
<#return ContentItem.generateContentItemLink(series)>
</#function>
<#--doc
Gets the name of the series.
@param series The series to use.
@return The name of the series.
-->
<#function getName series>
<#return series.title>
</#function>
<#--doc
Gets the volumes of the series.
@param series The series to use.
@return A sequence of the volumes of the series.
-->
<#function getVolume series>
<#return series.volume>
</#function>
<#--doc
Gets the link to the detail view of volume of a series.
@param volume The volume to use.
@return The link to the detail view of the volume.
-->
<#function getVolumeHref volume>
<#return ContentItem.generateContentItemLink(volume)>
</#function>

View File

@ -1 +1,3 @@
.classpath
.factorypath
target target

View File

@ -1 +1,3 @@
.classpath
.factorypath
target target