- Ergänzungen in ccm-sci-publications, insbesondere InternetArticle (Felder für URL, URN, DOI)
- aplaws-item.jsp in ccm-sci-bundle korrigiert, enthielt noch Referenzen auf com.arsdigita.london.navigation statt auf com.arsdigita.navigation git-svn-id: https://svn.libreccm.org/ccm/trunk@1246 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
d0b104fbfa
commit
aae314f4d9
|
|
@ -4,8 +4,8 @@
|
|||
version="1.2">
|
||||
|
||||
<jsp:directive.page
|
||||
import="com.arsdigita.london.navigation.NavigationModel,
|
||||
com.arsdigita.london.navigation.cms.CMSNavigationModel"/>
|
||||
import="com.arsdigita.navigation.NavigationModel,
|
||||
com.arsdigita.navigation.cms.CMSNavigationModel"/>
|
||||
|
||||
<jsp:declaration>
|
||||
NavigationModel model = new CMSNavigationModel();
|
||||
|
|
@ -15,25 +15,25 @@
|
|||
title="APLAWS" cache="true">
|
||||
|
||||
<define:component name="categoryPath"
|
||||
classname="com.arsdigita.london.navigation.ui.category.Path"/>
|
||||
classname="com.arsdigita.navigation.ui.category.Path"/>
|
||||
<jsp:scriptlet>
|
||||
((com.arsdigita.london.navigation.ui.category.Path)categoryPath)
|
||||
((com.arsdigita.navigation.ui.category.Path)categoryPath)
|
||||
.setModel(model);
|
||||
</jsp:scriptlet>
|
||||
<define:component name="categoryMenu"
|
||||
classname="com.arsdigita.london.navigation.ui.category.Menu"/>
|
||||
classname="com.arsdigita.navigation.ui.category.Menu"/>
|
||||
<jsp:scriptlet>
|
||||
((com.arsdigita.london.navigation.ui.category.Menu)categoryMenu)
|
||||
((com.arsdigita.navigation.ui.category.Menu)categoryMenu)
|
||||
.setModel(model);
|
||||
</jsp:scriptlet>
|
||||
<define:component name="itemXML"
|
||||
classname="com.arsdigita.cms.dispatcher.ContentPanel"/>
|
||||
|
||||
<define:component name="relatedItems"
|
||||
classname="com.arsdigita.london.navigation.ui.RelatedItems"/>
|
||||
classname="com.arsdigita.navigation.ui.RelatedItems"/>
|
||||
|
||||
<define:component name="assignedTerms"
|
||||
classname="com.arsdigita.aplaws.ui.AssignedItemTerms"/>
|
||||
classname="com.arsdigita.bundle.ui.AssignedItemTerms"/>
|
||||
</define:page>
|
||||
|
||||
<show:all/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
||||
name="ccm-sci-publications"
|
||||
prettyName="OpenCCM Content Types"
|
||||
version="6.6.1"
|
||||
version="6.6.2"
|
||||
release="1"
|
||||
webapp="ROOT">
|
||||
<ccm:dependencies>
|
||||
|
|
|
|||
|
|
@ -32,8 +32,10 @@ object type InternetArticle extends Publication {
|
|||
String[0..1] issn = ct_internet_article.issn VARCHAR(9);
|
||||
Date[0..1] lastAccessed = ct_internet_article.last_accessed DATE;
|
||||
Date[0..1] publicationDate = ct_internet_article.publicationDate DATE;
|
||||
|
||||
|
||||
String[0..1] url = ct_internet_article.url VARCHAR(2048);
|
||||
String[0..1] urn = ct_internet_article.urn VARCHAR(2048);
|
||||
String[0..1] doi = ct_internet_article.doi VARCHAR(2048);
|
||||
|
||||
reference key (ct_internet_article.internet_article_id);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,13 +27,19 @@ object type Publication extends ContentPage {
|
|||
Integer[0..1] yearOfPublication = ct_publications.year INTEGER;
|
||||
String[0..1] abstract = ct_publications.abstract VARCHAR(4096);
|
||||
String[0..1] misc = ct_publications.misc VARCHAR(4096);
|
||||
//The reviewed property has been moved for performance reasons. It
|
||||
//The reviewed property has been moved here for performance reasons. It
|
||||
//is necessary to have access to this property from a data query
|
||||
//over all publications of a person. Since this property was only
|
||||
//available on some types, it was not possible to use joins *and*
|
||||
//get publications of *all* types. But exactly this use case appears on
|
||||
//several points.
|
||||
Boolean[0..1] reviewed = ct_publications.reviewed BIT ;
|
||||
Boolean[0..1] reviewed = ct_publications.reviewed BIT;
|
||||
//This property is for internal use only. It updated automatically when
|
||||
//an author is added or removed. It contains a string with the names
|
||||
//of all authors of the publications and is used for efficient queries
|
||||
//(ordering by publications by their authors requires joins or subqueries
|
||||
//without this field)
|
||||
String[0..1] authorsStr = ct_publications.authors VARCHAR(2048);
|
||||
|
||||
reference key (ct_publications.publication_id);
|
||||
}
|
||||
|
|
@ -193,10 +199,11 @@ query getPublicationsForAuthorWithAuthors {
|
|||
ct_publications_authorship.person_id,
|
||||
ct_publications.year,
|
||||
ct_publications.reviewed,
|
||||
(select array_to_string(array (select cms_persons.surname || ', ' || cms_persons.givenname
|
||||
from cms_persons
|
||||
join ct_publications_authorship on cms_persons.person_id = ct_publications_authorship.person_id
|
||||
where ct_publications_authorship.publication_id = cms_pages.item_id), '; ')) as authors
|
||||
ct_publications.authors
|
||||
//(select array_to_string(array (select cms_persons.surname || ', ' || cms_persons.givenname
|
||||
// from cms_persons
|
||||
// join ct_publications_authorship on cms_persons.person_id = ct_publications_authorship.person_id
|
||||
// where ct_publications_authorship.publication_id = cms_pages.item_id order by ct_publications_authorship.authorship_order), '; ')) as authors
|
||||
from cms_pages
|
||||
join ct_publications on cms_pages.item_id = ct_publications.publication_id
|
||||
join ct_publications_authorship on ct_publications.publication_id = ct_publications_authorship.publication_id
|
||||
|
|
@ -207,7 +214,7 @@ query getPublicationsForAuthorWithAuthors {
|
|||
authorId = ct_publications_authorship.person_id;
|
||||
title = cms_pages.title;
|
||||
year = ct_publications.year;
|
||||
authors = authors;
|
||||
authors = ct_publications.authors;
|
||||
reviewed = ct_publications.reviewed;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -157,6 +157,14 @@ public class AuthorshipCollection extends DomainCollection {
|
|||
this.rewind();
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return (String) m_dataCollection.getDataObject().get(GenericPerson.SURNAME);
|
||||
}
|
||||
|
||||
public String getGivenName() {
|
||||
return (String) m_dataCollection.getDataObject().get(GenericPerson.GIVENNAME);
|
||||
}
|
||||
|
||||
public GenericPerson getAuthor() {
|
||||
return new GenericPerson(m_dataCollection.getDataObject());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ public class InternetArticle extends Publication {
|
|||
public static final String ISSN = "issn";
|
||||
public static final String LAST_ACCESSED = "lastAccessed";
|
||||
public static final String PUBLICATION_DATE = "publicationDate";
|
||||
public static final String URL = "url";
|
||||
public static final String URN = "urn";
|
||||
public static final String DOI = "doi";
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.InternetArticle";
|
||||
|
||||
|
|
@ -155,4 +158,28 @@ public class InternetArticle extends Publication {
|
|||
public void setPublicationDate(Date pubDate) {
|
||||
set(PUBLICATION_DATE, pubDate);
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return (String) get(URL);
|
||||
}
|
||||
|
||||
public void setUrl(final String url) {
|
||||
set(URL, url);
|
||||
}
|
||||
|
||||
public String getUrn() {
|
||||
return (String) get(URN);
|
||||
}
|
||||
|
||||
public void setUrn(final String urn) {
|
||||
set(URN, urn);
|
||||
}
|
||||
|
||||
public String getDoi() {
|
||||
return (String) get(DOI);
|
||||
}
|
||||
|
||||
public void setDoi(final String doi) {
|
||||
set(DOI, doi);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ public class Publication extends ContentPage {
|
|||
public final static String ABSTRACT = "abstract";
|
||||
public final static String MISC = "misc";
|
||||
public final static String AUTHORS = "authors";
|
||||
private final static String AUTHORS_STR = "authorsStr"; //authorsStr is an interal field only for use in data queries, and is updated automatically
|
||||
public final static String EDITOR = "editor";
|
||||
public final static String AUTHOR_ORDER = "authorOrder";
|
||||
public final static String SERIES = "series";
|
||||
|
|
@ -195,6 +196,8 @@ public class Publication extends ContentPage {
|
|||
|
||||
link.set(EDITOR, editor);
|
||||
link.set(AUTHOR_ORDER, Integer.valueOf((int) getAuthors().size()));
|
||||
|
||||
updateAuthorsStr();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -205,6 +208,32 @@ public class Publication extends ContentPage {
|
|||
public void removeAuthor(final GenericPerson author) {
|
||||
Assert.exists(author, GenericPerson.class);
|
||||
remove(AUTHORS, author);
|
||||
|
||||
updateAuthorsStr();
|
||||
}
|
||||
|
||||
public void swapWithPreviousAuthor(final GenericPerson author) {
|
||||
getAuthors().swapWithPrevious(author);
|
||||
updateAuthorsStr();
|
||||
}
|
||||
|
||||
public void swapWithNextAuthor(final GenericPerson author) {
|
||||
getAuthors().swapWithNext(author);
|
||||
updateAuthorsStr();
|
||||
}
|
||||
|
||||
protected void updateAuthorsStr() {
|
||||
final AuthorshipCollection authors = getAuthors();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
while(authors.next()) {
|
||||
if (builder.length() > 0) {
|
||||
builder.append("; ");
|
||||
}
|
||||
builder.append(authors.getSurname());
|
||||
builder.append(", ");
|
||||
builder.append(authors.getGivenName());
|
||||
}
|
||||
set(AUTHORS_STR, builder.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -42,32 +42,45 @@ public class InternetArticlePropertiesStep extends PublicationPropertiesStep {
|
|||
|
||||
public static Component getInternetArticlePropertySheet(
|
||||
ItemSelectionModel itemModel) {
|
||||
DomainObjectPropertySheet sheet = (DomainObjectPropertySheet) PublicationPropertiesStep.
|
||||
DomainObjectPropertySheet sheet =
|
||||
(DomainObjectPropertySheet) PublicationPropertiesStep.
|
||||
getPublicationPropertySheet(itemModel);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.place"),
|
||||
InternetArticle.PLACE);
|
||||
|
||||
InternetArticle.PLACE);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.number"),
|
||||
InternetArticle.NUMBER);
|
||||
InternetArticle.NUMBER);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.number_of_pages"),
|
||||
InternetArticle.NUMBER_OF_PAGES);
|
||||
InternetArticle.NUMBER_OF_PAGES);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.edition"),
|
||||
InternetArticle.EDITION);
|
||||
InternetArticle.EDITION);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.issn"),
|
||||
InternetArticle.ISSN);
|
||||
InternetArticle.ISSN);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.lastAccessed"),
|
||||
InternetArticle.LAST_ACCESSED);
|
||||
InternetArticle.LAST_ACCESSED);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.url"),
|
||||
InternetArticle.URL);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.urn"),
|
||||
InternetArticle.URN);
|
||||
|
||||
sheet.add(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.doi"),
|
||||
InternetArticle.DOI);
|
||||
|
||||
return sheet;
|
||||
}
|
||||
|
|
@ -101,8 +114,8 @@ public class InternetArticlePropertiesStep extends PublicationPropertiesStep {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void addSteps(final ItemSelectionModel itemModel,
|
||||
final AuthoringKitWizard parent) {
|
||||
protected void addSteps(final ItemSelectionModel itemModel,
|
||||
final AuthoringKitWizard parent) {
|
||||
super.addSteps(itemModel, parent);
|
||||
|
||||
addStep(new InternetArticleOrganizationStep(itemModel, parent),
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ public class InternetArticlePropertyForm
|
|||
ParameterData data = event.getParameterData();
|
||||
String value = (String) data.getValue();
|
||||
|
||||
if(value.isEmpty()) {
|
||||
if (value.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -143,6 +143,24 @@ public class InternetArticlePropertyForm
|
|||
pubDateParam);
|
||||
pubDate.setYearRange(1900, today.get(Calendar.YEAR) + 2);
|
||||
add(pubDate);
|
||||
|
||||
add(new Label((String) PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.url").localize()));
|
||||
ParameterModel urlModel = new StringParameter(InternetArticle.URL);
|
||||
TextField url = new TextField(urlModel);
|
||||
add(url);
|
||||
|
||||
add(new Label((String) PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.urn").localize()));
|
||||
ParameterModel urnModel = new StringParameter(InternetArticle.URN);
|
||||
TextField urn = new TextField(urnModel);
|
||||
add(urn);
|
||||
|
||||
add(new Label((String) PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.internetarticle.doi").localize()));
|
||||
ParameterModel doiModel = new StringParameter(InternetArticle.DOI);
|
||||
TextField doi = new TextField(doiModel);
|
||||
add(doi);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -159,6 +177,9 @@ public class InternetArticlePropertyForm
|
|||
data.put(InternetArticle.ISSN, article.getISSN());
|
||||
data.put(InternetArticle.LAST_ACCESSED,
|
||||
article.getLastAccessed());
|
||||
data.put(InternetArticle.URL, article.getUrl());
|
||||
data.put(InternetArticle.URN, article.getUrn());
|
||||
data.put(InternetArticle.DOI, article.getDoi());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -180,6 +201,9 @@ public class InternetArticlePropertyForm
|
|||
article.setISSN(issn);
|
||||
article.setLastAccessed(
|
||||
(Date) data.get(InternetArticle.LAST_ACCESSED));
|
||||
article.setUrl((String) data.get(InternetArticle.URL));
|
||||
article.setUrn((String) data.get(InternetArticle.URN));
|
||||
article.setDoi((String) data.get(InternetArticle.DOI));
|
||||
|
||||
article.save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -435,10 +435,10 @@ public class PublicationAuthorsTable
|
|||
publication.removeAuthor(author);
|
||||
} else if (column.getHeaderKey().toString().equals(TABLE_COL_UP)) {
|
||||
s_log.info("UP");
|
||||
authors.swapWithPrevious(author);
|
||||
publication.swapWithPreviousAuthor(author);
|
||||
} else if (column.getHeaderKey().toString().equals(TABLE_COL_DOWN)) {
|
||||
s_log.info("DOWN");
|
||||
authors.swapWithNext(author);
|
||||
publication.swapWithNextAuthor(author);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ publication.ui.internetarticle.organization.remove=Remove
|
|||
publications.ui.monograph.reviewed=Reviewed
|
||||
publications.ui.monograph.reviewed.yes=Yes
|
||||
publications.ui.monograph.reviewed.no=No
|
||||
publications.ui.internetarticle.lastAccessed=Date of last access
|
||||
publications.ui.internetarticle.lastAccessed=Date of last access/Date of last edit
|
||||
publications.ui.invalid_isbn=The ISBN entered is invalid
|
||||
publications.ui.invalid_issn=The ISSN entered is invalid
|
||||
publications.ui.journal.lastYearOfPublication=Last year of publication
|
||||
|
|
@ -378,3 +378,6 @@ publications.ui.orgaunits.title=Lists of publications
|
|||
publications.ui.orgaunits.description=Add this publication to the list of publications of an organization(al unit)
|
||||
genericorganizationalunit.ui.publications.description=List of publications
|
||||
genericorganizationalunit.ui.publications.title=List of publications
|
||||
publications.ui.internetarticle.url=URL
|
||||
publications.ui.internetarticle.urn=URN
|
||||
publications.ui.internetarticle.doi=DOI
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ publication.ui.internetarticle.organization.remove=Entfernen
|
|||
publications.ui.monograph.reviewed=Begutachtet
|
||||
publications.ui.monograph.reviewed.yes=Ja
|
||||
publications.ui.monograph.reviewed.no=Nein
|
||||
publications.ui.internetarticle.lastAccessed=Letztes Zugriffsdatum
|
||||
publications.ui.internetarticle.lastAccessed=Letztes Zugriffsdatum/Datum der letzten \u00c4nderung
|
||||
publications.ui.invalid_isbn=Die eingegebene ISBN ist fehlerhaft.
|
||||
publications.ui.invalid_issn=Die eingegebene ISSN ist fehlerhaft.
|
||||
publications.ui.journal.lastYearOfPublication=Letztes Jahr der Ver\u00f6ffentlichung
|
||||
|
|
@ -377,3 +377,6 @@ publications.ui.orgaunits.title=Publikationslisten
|
|||
publications.ui.orgaunits.description=Diese Publikation der Publikationsliste einer Organisation(seinheit) hinzuf\u00fcgen
|
||||
genericorganizationalunit.ui.publications.description=Publikationsliste
|
||||
genericorganizationalunit.ui.publications.title=Publikationsliste
|
||||
publications.ui.internetarticle.url=URL
|
||||
publications.ui.internetarticle.urn=URN
|
||||
publications.ui.internetarticle.doi=DOI
|
||||
|
|
|
|||
Loading…
Reference in New Issue