diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/CompoundContentItemPanel.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/CompoundContentItemPanel.java
index f7078ed1f..1c0c09df8 100644
--- a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/CompoundContentItemPanel.java
+++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/CompoundContentItemPanel.java
@@ -200,7 +200,11 @@ public abstract class CompoundContentItemPanel
}
protected long getPaginatorEnd(final long begin, final long count) {
- return begin + count;
+ long paginatorEnd = begin + count;
+ if (paginatorEnd < 0) {
+ paginatorEnd = 0;
+ }
+ return paginatorEnd;
}
protected void createPaginatorElement(final Element parent,
@@ -373,7 +377,7 @@ public abstract class CompoundContentItemPanel
if (!isVisible(state)
|| (item == null)
|| !(item.getClass().equals(getAllowedClass()))) {
- s_log.debug("Skipping generate XML isVisible: " + isVisible(
+ s_log.warn("Skipping generate XML isVisible: " + isVisible(
state) + " item "
+ (item == null ? null : item.getOID()));
return;
diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/SelectFilter.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/SelectFilter.java
index d579eb31f..af4be49aa 100644
--- a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/SelectFilter.java
+++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/panels/SelectFilter.java
@@ -116,6 +116,11 @@ public class SelectFilter implements Filter {
for (String optionStr : options) {
optionElem = filter.newChildElement("option");
optionElem.addAttribute("label", optionStr);
+ if (propertyIsNumeric) {
+ optionElem.addAttribute("valueType", "number");
+ } else {
+ optionElem.addAttribute("valueType", "text");
+ }
}
}
diff --git a/ccm-core/src/com/arsdigita/persistence/Initializer.java b/ccm-core/src/com/arsdigita/persistence/Initializer.java
index 6ecdaa702..4a9ef2a47 100755
--- a/ccm-core/src/com/arsdigita/persistence/Initializer.java
+++ b/ccm-core/src/com/arsdigita/persistence/Initializer.java
@@ -51,7 +51,7 @@ public class Initializer extends com.arsdigita.runtime.GenericInitializer {
// Finally the files out of the database
TransactionContext txn = null;
- try {
+ try {
Session session = SessionManager.getSession();
txn = session.getTransactionContext();
txn.beginTxn();
@@ -116,6 +116,11 @@ public class Initializer extends com.arsdigita.runtime.GenericInitializer {
//}
txn.commitTxn();
+ } catch(Exception ex) {
+ //jensp 2011-06-24: There was no catch Block for this try. This is
+ //an extremly BAD practicse!!! At least there should be a log output
+ //of the execption of debugging.
+ s_log.error("An exception occured in the init(DomainInitEvent) method: ", ex);
} finally {
if (txn != null && txn.inTxn()) {
txn.abortTxn();
diff --git a/ccm-core/src/com/arsdigita/persistence/PooledConnectionSource.java b/ccm-core/src/com/arsdigita/persistence/PooledConnectionSource.java
index 0fcd29c5b..52ee478eb 100755
--- a/ccm-core/src/com/arsdigita/persistence/PooledConnectionSource.java
+++ b/ccm-core/src/com/arsdigita/persistence/PooledConnectionSource.java
@@ -121,12 +121,13 @@ public class PooledConnectionSource implements ConnectionSource {
s_connectionTags.put(result.toString(), tag(result));
m_connections.add(result);
renameThread(result);
+ /**
+ * jensp 2011-06-18: Change to prevent connections from being
+ * in "idle in transaction" state. Such connections seam to
+ * cause problems (memory etc.) with PostgreSQL.
+ */
try {
- /**
- * jensp 2011-06-18: Change to prevent connections from being
- * in "idle in transaction" state. Such connections seam to
- * cause problems (memory etc.) with PostgreSQL.
- */
+
result.setAutoCommit(false);
} catch (SQLException ex) {
s_log.warn("Failed to set autocommit to false");
diff --git a/ccm-core/src/com/arsdigita/persistence/TransactionContext.java b/ccm-core/src/com/arsdigita/persistence/TransactionContext.java
index a0e1a5187..dec1c9486 100755
--- a/ccm-core/src/com/arsdigita/persistence/TransactionContext.java
+++ b/ccm-core/src/com/arsdigita/persistence/TransactionContext.java
@@ -35,11 +35,10 @@ import org.apache.log4j.Logger;
* @author rhs@mit.edu
* @version $Id: TransactionContext.java 287 2005-02-22 00:29:02Z sskracic $
*/
-
public class TransactionContext {
- private static final Logger s_cat =
- Logger.getLogger(TransactionContext.class);
+ private static final Logger s_cat =
+ Logger.getLogger(TransactionContext.class);
private Session m_ossn;
// used in test infrastructure
com.redhat.persistence.Session m_ssn;
@@ -64,9 +63,8 @@ public class TransactionContext {
* This should be a transparent behavior change introduced as a
* performance optimization, SDM #159142.
**/
-
public void beginTxn() {
- s_cat.debug("Beginning transaction...");
+ s_cat.debug("Beginning transaction...");
// Do nothing. This is implicit now.
if (m_inTxn) {
throw new IllegalStateException("double begin");
@@ -81,8 +79,7 @@ public class TransactionContext {
*
* @post !inTxn()
**/
-
- public void commitTxn() {
+ public void commitTxn() {
s_cat.debug("Commiting transaction...");
boolean success = false;
try {
@@ -93,13 +90,18 @@ public class TransactionContext {
success = true;
m_inTxn = false;
fireCommitEvent();
- s_cat.debug("Done.");
+ s_cat.debug("Done.");
+ } catch (Exception ex) {
+ s_cat.error("Exception occured: ", ex);
} finally {
- s_cat.debug("Cleaning up...");
+ s_cat.debug("Cleaning up...");
clearAttributes();
- if (!success) { m_ossn.invalidateDataObjects(false, true); }
- if (m_inTxn) {
- s_cat.warn("Warning: Cleanup after commit was reached, but m_inTxn is true.");
+ if (!success) {
+ m_ossn.invalidateDataObjects(false, true);
+ }
+ if (m_inTxn) {
+ s_cat.warn(
+ "Warning: Cleanup after commit was reached, but m_inTxn is true.");
}
}
}
@@ -120,7 +122,9 @@ public class TransactionContext {
fireCommitEvent();
} finally {
clearAttributes();
- if (!success) { m_ossn.invalidateDataObjects(false, true); }
+ if (!success) {
+ m_ossn.invalidateDataObjects(false, true);
+ }
}
}
@@ -131,7 +135,6 @@ public class TransactionContext {
*
* @post !inTxn()
**/
-
public void abortTxn() {
s_cat.warn("Aborting transaction...");
boolean success = false;
@@ -145,7 +148,9 @@ public class TransactionContext {
}
success = true;
} finally {
- if (!success) { m_ossn.invalidateDataObjects(false, true); }
+ if (!success) {
+ m_ossn.invalidateDataObjects(false, true);
+ }
fireAbortEvent();
clearAttributes();
}
@@ -175,17 +180,16 @@ public class TransactionContext {
* before the transaction
*/
private void fireBeforeCommitEvent() {
- Assert.isTrue
- (inTxn(), "The beforeCommit event was fired outside of " +
- "the transaction");
+ Assert.isTrue(inTxn(), "The beforeCommit event was fired outside of "
+ + "the transaction");
Object listeners[] = m_listeners.toArray();
- for (int i = 0 ; i < listeners.length ; i++) {
- if (s_cat.isDebugEnabled()) {
- s_cat.debug("Firing transaction beforeCommit event");
- }
- TransactionListener listener = (TransactionListener)listeners[i];
+ for (int i = 0; i < listeners.length; i++) {
+ if (s_cat.isDebugEnabled()) {
+ s_cat.debug("Firing transaction beforeCommit event");
+ }
+ TransactionListener listener = (TransactionListener) listeners[i];
listener.beforeCommit(this);
}
}
@@ -196,22 +200,22 @@ public class TransactionContext {
* after the transaction
*/
private void fireCommitEvent() {
- Assert.isTrue
- (!inTxn(), "transaction commit event fired during transaction");
+ Assert.isTrue(!inTxn(),
+ "transaction commit event fired during transaction");
Object listeners[] = m_listeners.toArray();
m_listeners.clear();
- for (int i = 0 ; i < listeners.length ; i++) {
- if (s_cat.isDebugEnabled()) {
- s_cat.debug("Firing transaction commit event");
- }
- TransactionListener listener = (TransactionListener)listeners[i];
+ for (int i = 0; i < listeners.length; i++) {
+ if (s_cat.isDebugEnabled()) {
+ s_cat.debug("Firing transaction commit event");
+ }
+ TransactionListener listener = (TransactionListener) listeners[i];
listener.afterCommit(this);
}
- Assert.isTrue
- (!inTxn(), "transaction commit listener didn't close transaction");
+ Assert.isTrue(!inTxn(),
+ "transaction commit listener didn't close transaction");
}
/*
@@ -220,16 +224,15 @@ public class TransactionContext {
* before the transaction
*/
private void fireBeforeAbortEvent() {
- Assert.isTrue
- (inTxn(), "The beforeAbort event was fired outside of " +
- "the transaction");
+ Assert.isTrue(inTxn(), "The beforeAbort event was fired outside of "
+ + "the transaction");
Object listeners[] = m_listeners.toArray();
- for (int i = 0 ; i < listeners.length ; i++) {
- if (s_cat.isDebugEnabled()) {
- s_cat.debug("Firing transaction beforeAbort event");
- }
- TransactionListener listener = (TransactionListener)listeners[i];
+ for (int i = 0; i < listeners.length; i++) {
+ if (s_cat.isDebugEnabled()) {
+ s_cat.debug("Firing transaction beforeAbort event");
+ }
+ TransactionListener listener = (TransactionListener) listeners[i];
listener.beforeAbort(this);
}
}
@@ -240,22 +243,22 @@ public class TransactionContext {
* after the transaction
*/
private void fireAbortEvent() {
- Assert.isTrue
- (!inTxn(), "transaction abort event fired during transaction");
+ Assert.isTrue(!inTxn(),
+ "transaction abort event fired during transaction");
Object listeners[] = m_listeners.toArray();
m_listeners.clear();
- for (int i = 0 ; i < listeners.length ; i++) {
- if (s_cat.isDebugEnabled()) {
- s_cat.debug("Firing transaction abort event");
- }
- TransactionListener listener = (TransactionListener)listeners[i];
+ for (int i = 0; i < listeners.length; i++) {
+ if (s_cat.isDebugEnabled()) {
+ s_cat.debug("Firing transaction abort event");
+ }
+ TransactionListener listener = (TransactionListener) listeners[i];
listener.afterAbort(this);
}
- Assert.isTrue
- (!inTxn(), "transaction abort listener didn't close transaction");
+ Assert.isTrue(!inTxn(),
+ "transaction abort listener didn't close transaction");
}
/**
@@ -263,7 +266,6 @@ public class TransactionContext {
*
* @return True if a transaction is in progress, false otherwise.
**/
-
public boolean inTxn() {
return m_inTxn;
}
@@ -275,11 +277,10 @@ public class TransactionContext {
*
* @return The isolation level of the current transaction.
**/
-
public int getTransactionIsolation() {
try {
Connection conn = m_ossn.getConnection();
- return conn.getTransactionIsolation();
+ return conn.getTransactionIsolation();
} catch (SQLException e) {
throw PersistenceException.newInstance(e);
}
@@ -296,7 +297,7 @@ public class TransactionContext {
public void setTransactionIsolation(int level) {
try {
Connection conn = m_ossn.getConnection();
- conn.setTransactionIsolation(level);
+ conn.setTransactionIsolation(level);
} catch (SQLException e) {
throw PersistenceException.newInstance(e);
}
@@ -347,5 +348,4 @@ public class TransactionContext {
void clearAttributes() {
m_attrs.clear();
}
-
}
diff --git a/ccm-sci-personalinformationpage/pdl/com/arsdigita/content-types/PersonalInformationPage.pdl b/ccm-sci-personalinformationpage/pdl/com/arsdigita/content-types/PersonalInformationPage.pdl
index e95f4fcf1..244b0fc1a 100644
--- a/ccm-sci-personalinformationpage/pdl/com/arsdigita/content-types/PersonalInformationPage.pdl
+++ b/ccm-sci-personalinformationpage/pdl/com/arsdigita/content-types/PersonalInformationPage.pdl
@@ -5,7 +5,8 @@ import com.arsdigita.cms.*;
object type PersonalInformationPage extends ContentPage {
-
+ String homepageUrl = homepage_url VARCHAR(256);
+
reference key (ct_personal_information_pages.personal_information_page_id);
}
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java
index 3c10e8212..100fc94c3 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/AuthorshipCollection.java
@@ -53,6 +53,7 @@ public class AuthorshipCollection extends DomainCollection {
}
public Boolean isEditor() {
+ System.out.printf("isEditor?\n");
return (Boolean) m_dataCollection.get(LINKEDITOR);
}
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ArticleInJournalPropertyForm.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ArticleInJournalPropertyForm.java
index 9d880e56b..f4b724698 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ArticleInJournalPropertyForm.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ArticleInJournalPropertyForm.java
@@ -76,8 +76,8 @@ public class ArticleInJournalPropertyForm
ParameterModel volumeParam =
new IntegerParameter(ArticleInJournal.VOLUME);
TextField volume = new TextField(volumeParam);
- volume.addValidationListener(new NotNullValidationListener());
- volume.addValidationListener(new NotEmptyValidationListener());
+ //volume.addValidationListener(new NotNullValidationListener());
+ //volume.addValidationListener(new NotEmptyValidationListener());
add(volume);
add(new Label((String) PublicationGlobalizationUtil.globalize(
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationBasePanel.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationBasePanel.java
index 19c995585..76de6c46d 100644
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationBasePanel.java
+++ b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationBasePanel.java
@@ -384,7 +384,9 @@ public abstract class SciOrganizationBasePanel
Element title = projectElem.newChildElement("title");
title.setText(project.getTitle());
-
+
+ Element beginElem = projectElem.newChildElement("projectbegin");
+
if ((project.getAddendum() != null)
&& !(project.getAddendum().isEmpty())) {
Element addendum = projectElem.newChildElement("addendum");
diff --git a/ccm-sci-types-organizationwithpublications/pdl/com/arsdigita/content-types/SciOrganizationWithPublications.pdl b/ccm-sci-types-organizationwithpublications/pdl/com/arsdigita/content-types/SciOrganizationWithPublications.pdl
index 0332fad7b..5d3642ab1 100644
--- a/ccm-sci-types-organizationwithpublications/pdl/com/arsdigita/content-types/SciOrganizationWithPublications.pdl
+++ b/ccm-sci-types-organizationwithpublications/pdl/com/arsdigita/content-types/SciOrganizationWithPublications.pdl
@@ -60,3 +60,64 @@ query getAllYearsOfPublication {
}
}
+query getAllYearsOfPublicationForAuthor {
+ Integer yearOfPublication;
+
+ do {
+ select distinct ct_publications.year
+ from ct_publications join ct_publications_authorship on ct_publications.publication_id = ct_publications_authorship.publication_id
+ where person_id = :author
+ } map {
+ yearOfPublication = ct_publications.year;
+ }
+}
+
+query getAllPublicationTypes {
+
+ String objectType;
+
+ do {
+ select distinct acs_objects.object_type
+ from ct_publications join acs_objects on ct_publications.publication_id = acs_objects.object_id
+ } map {
+ objectType = acs_objects.object_type;
+ }
+}
+
+query getAllPublicationTypesForAuthor {
+
+ String objectType;
+
+ do {
+ select distinct acs_objects.object_type
+ from ct_publications join acs_objects on ct_publications.publication_id = acs_objects.object_id join ct_publications_authorship on ct_publications.publication_id = ct_publications_authorship.publication_id
+ where person_id = :author
+ } map {
+ objectType = acs_objects.object_type;
+ }
+
+}
+
+query getIdsOfPublicationsOfSciMember {
+ BigDecimal publicationId;
+
+ do {
+ select ct_publications_authorship.publication_id
+ from ct_publications_authorship
+ where ct_publications_authorship.person_id = :author
+ } map {
+ publicationId = ct_publications_authorship.publication_id;
+ }
+}
+
+query getIdsOfProjectsOfSciMember {
+ BigDecimal projectId;
+
+ do {
+ select ct_sciorga_projects.project_id
+ from ct_sciorga_projects join cms_organizationalunits_person_map on ct_sciorga_projects.project_id = cms_organizationalunits_person_map.organizationalunit_id
+ where cms_organizationalunits_person_map.person_id = :member
+ } map {
+ projectId = ct_sciorga_projects.project_id;
+ }
+}
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
index 353ef677c..d4f00f25c 100644
--- a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
@@ -142,6 +142,8 @@ public class PublicationXmlHelper {
publicationElem.addAttribute("oid", publication.getOID().toString());
publicationElem.addAttribute("version", publication.getVersion());
generateXmlElement(publicationElem, "title", publication.getTitle());
+ System.out.printf("\n\npublication.oid = '%s'", publication.getOID());
+ System.out.printf("publication.title = '%s'\n\n", publication.getTitle());
if (publication.getYearOfPublication() != null) {
Element yearElem = publicationElem.newChildElement(
"yearOfPublication");
@@ -159,7 +161,7 @@ public class PublicationXmlHelper {
return;
}
- while (authors.next()) {
+ while (authors.next()) {
Element authorsElem = publicationElem.newChildElement(
"authors");
Element linkElem = authorsElem.newChildElement("link");
@@ -189,7 +191,7 @@ public class PublicationXmlHelper {
(PublicationWithPublisher) publication;
generatePublisherXml(publicationElem, pwp);
- generateXmlElement(publicationElem, "misc", pwp.getISBN());
+ generateXmlElement(publicationElem, "isbn", pwp.getISBN());
generateXmlElement(publicationElem, "volume", pwp.getVolume());
generateXmlElement(publicationElem,
"numberOfVolumes",
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciMemberDemoPanel.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciMemberDemoPanel.java
new file mode 100644
index 000000000..bec7137d0
--- /dev/null
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciMemberDemoPanel.java
@@ -0,0 +1,270 @@
+package com.arsdigita.cms.contenttypes.ui;
+
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.cms.ContentItem;
+import com.arsdigita.xml.Element;
+import com.arsdigita.cms.contenttypes.SciMember;
+import com.arsdigita.persistence.DataCollection;
+import com.arsdigita.persistence.DataQuery;
+import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.persistence.Session;
+import com.arsdigita.domain.DomainCollection;
+import com.arsdigita.cms.contenttypes.Publication;
+import com.arsdigita.cms.contenttypes.ui.panels.Filter;
+import com.arsdigita.cms.contenttypes.ui.panels.TextFilter;
+import com.arsdigita.cms.contenttypes.ui.panels.SelectFilter;
+import com.arsdigita.cms.contenttypes.ui.panels.CollectionSortField;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.LinkedHashMap;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class SciMemberDemoPanel extends CompoundContentItemPanel {
+
+ private static final Logger logger = Logger.getLogger(
+ SciMemberDemoPanel.class);
+ private static final String SHOW_PUBLICATIONS = "publications";
+ private static final String SHOW_PROJECTS = "projects";
+ private static final String TITLE = "title";
+ private static final String AUTHORS = "authors";
+ private static final String YEAR_OF_PUBLICATION = "yearOfPublication";
+ private static final String YEAR_ASC = "yearAsc";
+ private static final String YEAR_DESC = "yearDesc";
+ private static final String TYPE = "type";
+ private String show;
+ private final Map filters =
+ new LinkedHashMap();
+ private final Map sortFields =
+ new LinkedHashMap();
+ private String sortByKey;
+
+ public SciMemberDemoPanel() {
+ filters.put(TITLE, new TextFilter(TITLE, TITLE));
+ filters.put(AUTHORS, new TextFilter(AUTHORS, "authors.surname"));
+ SelectFilter yearFilter = new SelectFilter(YEAR_OF_PUBLICATION,
+ YEAR_OF_PUBLICATION,
+ true,
+ true,
+ true,
+ true);
+ filters.put(YEAR_OF_PUBLICATION, yearFilter);
+ SelectFilter typeFilter = new SelectFilter(TYPE,
+ "objectType",
+ false,
+ true,
+ true,
+ false);
+ filters.put(TYPE, typeFilter);
+ sortFields.put(TITLE,
+ new CollectionSortField(TITLE, "title"));
+ sortFields.put(YEAR_ASC,
+ new CollectionSortField(YEAR_ASC, "year asc"));
+ sortFields.put(YEAR_DESC,
+ new CollectionSortField(YEAR_DESC, "year desc"));
+ }
+
+ @Override
+ protected String getDefaultShowParam() {
+ return "publications";
+ }
+
+ @Override
+ protected Class extends ContentItem> getAllowedClass() {
+ return SciMember.class;
+ }
+
+ protected void generatePublicationsXml(final SciMember member,
+ final Element parent,
+ final PageState state) {
+
+ Element controls = parent.newChildElement("filterControls");
+ controls.addAttribute("customName", "sciOrganizationPublications");
+ controls.addAttribute("show", show);
+
+ DataQuery yearQuery =
+ SessionManager.getSession().retrieveQuery(
+ "com.arsdigita.cms.contenttypes.getAllYearsOfPublicationForAuthor");
+ yearQuery.setParameter("author", member.getID());
+ ((SelectFilter) filters.get(YEAR_OF_PUBLICATION)).setDataQuery(yearQuery,
+ "yearOfPublication");
+ DataQuery typeQuery =
+ SessionManager.getSession().retrieveQuery(
+ "com.arsdigita.cms.contenttypes.getAllPublicationTypesForAuthor");
+ typeQuery.setParameter("author", member.getID());
+ ((SelectFilter) filters.get(TYPE)).setDataQuery(typeQuery, "objectType");
+
+ DataCollection publicationsData = (DataCollection) member.get(
+ "publication");
+ DomainCollection publications = new DomainCollection(publicationsData);
+// publications.addOrder("yearOfPublication desc");
+
+ applyPublicationsFilter(publications, state.getRequest());
+ applyPublicationSortFields(publications, state.getRequest());
+
+ long pageNumber = getPageNumber(state);
+ long pageCount = getPageCount(publications.size());
+ long begin = getPaginatorBegin(pageNumber);
+ long count = getPaginatorCount(begin, publications.size());
+ long end = getPaginatorEnd(begin, count);
+ pageNumber = normalizePageNumber(pageCount, pageNumber);
+
+ generatePublicationFiltersXml(controls);
+ generatePublicationSortFieldsXml(controls);
+ createPaginatorElement(parent, pageNumber, pageCount, begin, end, count,
+ publications.size());
+ System.out.printf("\n\n\npublications.size = %d\n", publications.size());
+ if ((publications.size() <= 1) || publications.isEmpty()) {
+ return;
+ }
+
+ if (publications.size() == 1) {
+ publications.setRange((int) begin, (int) end);
+ } else {
+ publications.setRange((int) begin + 1, (int) end);
+ }
+
+ while (publications.next()) {
+ /*Publication publication = (Publication) DomainObjectFactory.
+ newInstance(publications.getDomainObject().getOID());*/
+ PublicationXmlHelper xmlHelper =
+ new PublicationXmlHelper(parent,
+ (Publication) publications.
+ getDomainObject());
+ xmlHelper.generateXml();
+ }
+ }
+
+ protected void generateProjectsXml(final SciMember member,
+ final Element parent,
+ final PageState state) {
+ /*DataCollection projectsData = (DataCollection) member.get("project");
+ DomainCollection projects = new DomainCollection(projectsData);
+ projects.addOrder("title");
+
+ long pageNumber = getPageNumber(state);
+ long pageCount = getPageCount(projects.size());
+ long begin = getPaginatorBegin(pageNumber);
+ long count = getPaginatorCount(begin, projects.size());
+ long end = getPaginatorEnd(begin, count);
+ pageNumber = normalizePageNumber(pageCount, pageNumber);
+
+ createPaginatorElement(parent, pageNumber, pageCount, begin, end, count,
+ projects.size());*/
+ }
+
+ protected void generatePublicationFiltersXml(final Element element) {
+ final Element filterElement = element.newChildElement("filters");
+
+ for (Map.Entry filterEntry : filters.entrySet()) {
+ filterEntry.getValue().generateXml(filterElement);
+ }
+ }
+
+ protected void generatePublicationSortFieldsXml(final Element element) {
+ final Element sortFieldsElement = element.newChildElement("sortFields");
+ sortFieldsElement.addAttribute("sortBy", sortByKey);
+ for (Map.Entry sortField : sortFields.
+ entrySet()) {
+ sortField.getValue().generateXml(sortFieldsElement);
+ }
+ }
+
+ protected void applyPublicationsFilter(final DomainCollection publications,
+ final HttpServletRequest request) {
+ for (Map.Entry filterEntry : filters.entrySet()) {
+ String value = request.getParameter(
+ filterEntry.getValue().getLabel());
+
+ if ((value != null) && !(value.trim().isEmpty())) {
+ filterEntry.getValue().setValue(value);
+ }
+ }
+
+ final StringBuilder filterBuilder = new StringBuilder();
+ for (Map.Entry filterEntry : filters.entrySet()) {
+ if ((filterEntry.getValue().getFilter() == null)
+ || (filterEntry.getValue().getFilter().isEmpty())) {
+ continue;
+ }
+
+ if (filterBuilder.length() > 0) {
+ filterBuilder.append(" AND ");
+ }
+ filterBuilder.append(filterEntry.getValue().getFilter());
+ logger.debug(String.format("filters: %s", filterBuilder));
+ if (filterBuilder.length() > 0) {
+ publications.addFilter(filterBuilder.toString());
+ }
+ }
+ }
+
+ protected void applyPublicationSortFields(
+ final DomainCollection publications,
+ final HttpServletRequest request) {
+ sortByKey = request.getParameter("sort");
+ if (!sortFields.containsKey(sortByKey)) {
+ sortByKey = new ArrayList(sortFields.keySet()).get(0);
+ }
+
+ publications.addOrder(sortFields.get(sortByKey).getField());
+ }
+
+ protected void generateAvailableDataXml(final SciMember member,
+ final Element element,
+ final PageState state) {
+ Session session = SessionManager.getSession();
+ DataQuery hasPublicationsQuery =
+ session.retrieveQuery(
+ "com.arsdigita.cms.contenttypes.getIdsOfPublicationsOfSciMember");
+ hasPublicationsQuery.setParameter("author", member.getID().toString());
+
+ if (hasPublicationsQuery.size() > 0) {
+ element.newChildElement("publications");
+ }
+ hasPublicationsQuery.close();
+
+ DataQuery hasProjectsQuery = session.retrieveQuery(
+ "com.arsdigita.cms.contenttypes.getIdsOfProjectsOfSciMember");
+ hasProjectsQuery.setParameter("member", member.getID().toString());
+
+ if (hasProjectsQuery.size() > 0) {
+ element.newChildElement("projects");
+ }
+ hasProjectsQuery.close();
+
+ }
+
+ public void generateDataXml(final SciMember member,
+ final Element element,
+ final PageState state) {
+ show = getShowParam(state);
+
+ if (SHOW_PUBLICATIONS.equals(show)) {
+ generatePublicationsXml(member, element, state);
+ } else if (SHOW_PROJECTS.equals(show)) {
+ generateProjectsXml(member, element, state);
+ }
+
+ }
+
+ @Override
+ public void generateXML(final ContentItem item,
+ final Element element,
+ final PageState state) {
+ Element content = generateBaseXML(item, element, state);
+
+ SciMember member = (SciMember) item;
+ Element availableData = content.newChildElement("availableData");
+
+ if (!(isShowOnlyDefault())) {
+ generateAvailableDataXml(member, availableData, state);
+ }
+
+ generateDataXml(member, content, state);
+ }
+}
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
index f16c28638..d12918f87 100644
--- a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
@@ -131,7 +131,7 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
}
public void setDisplayWorkingPapers(final boolean displayWorkingPapers) {
- this.displayWorkingPapers = displayWorkingPapers;
+ this.displayWorkingPapers = displayWorkingPapers;
}
@Override
diff --git a/ccm-zes-aplaws/bundles/devel/cfg/integration.properties b/ccm-zes-aplaws/bundles/devel/cfg/integration.properties
index 2ccd3b08f..79cd57b7e 100644
--- a/ccm-zes-aplaws/bundles/devel/cfg/integration.properties
+++ b/ccm-zes-aplaws/bundles/devel/cfg/integration.properties
@@ -14,7 +14,7 @@ waf.dispatcher.default_expiry=3600
;
waf.kernel.data_permission_check_enabled=false
waf.kernel.primary_user_identifier=email
-; if you activate screen_name, forum loader doesn't work.
+; if you activate screen_name, forum loader does not work.
; waf.kernel.primary_user_identifier=screen_name
waf.kernel.supported_languages=de,en
@@ -137,7 +137,7 @@ waf.admin.password=nge2015
waf.admin.password.question=12345
waf.admin.password.answer=6
-waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/zes-test?user\=zes&password\=zes47web
+waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/zes?user\=zes&password\=zes47web&stringtype\=unspecified
; waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/zes-testupd?user\=zes&password\=zes47web
waf.runtime.jdbc_pool_size=30