diff --git a/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig.java b/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig.java index dbf634660..90e3bbd29 100644 --- a/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig.java +++ b/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig.java @@ -21,13 +21,13 @@ package com.arsdigita.cms.lifecycle; import com.arsdigita.runtime.AbstractConfig; // import com.arsdigita.runtime.CCMResourceManager; // import com.arsdigita.util.UncheckedWrapperException; +import com.arsdigita.util.parameter.BooleanParameter; import com.arsdigita.util.parameter.IntegerParameter; import com.arsdigita.util.parameter.Parameter; // import com.arsdigita.util.parameter.StringParameter; import org.apache.log4j.Logger; - /** * LifecycleConfig * @@ -37,7 +37,6 @@ import org.apache.log4j.Logger; public class LifecycleConfig extends AbstractConfig { private static final Logger s_log = Logger.getLogger(LifecycleConfig.class); - private static LifecycleConfig s_conf; /** @@ -55,30 +54,30 @@ public class LifecycleConfig extends AbstractConfig { return s_conf; } - /** * How long do we wait (in seconds) after system startup before we start * processing lifecycles? */ - private IntegerParameter m_delay = new IntegerParameter - ("com.arsdigita.cms.lifecycle.delay", Parameter.REQUIRED, - new Integer(60)); + private IntegerParameter m_delay = new IntegerParameter( + "com.arsdigita.cms.lifecycle.delay", Parameter.REQUIRED, + new Integer(60)); /** * How often (in seconds) does the system look for pending items to make * live and live items to expire? A value of 0 disables LC background thread. */ - private IntegerParameter m_frequency = new IntegerParameter - ("com.arsdigita.cms.lifecycle.frequency", Parameter.REQUIRED, - new Integer(600)); - + private IntegerParameter m_frequency = + new IntegerParameter( + "com.arsdigita.cms.lifecycle.frequency", Parameter.REQUIRED, + new Integer(600)); + /** * Constructor. * Do not use it directly! */ public LifecycleConfig() { register(m_delay); - register(m_frequency); - + register(m_frequency); + loadInfo(); } @@ -99,5 +98,5 @@ public class LifecycleConfig extends AbstractConfig { s_log.debug("frequency time retrieved."); return ((Integer) get(m_frequency)).intValue(); } - + } diff --git a/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig_parameter.properties b/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig_parameter.properties index f9d926bc6..62cd97bc3 100644 --- a/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig_parameter.properties +++ b/ccm-cms/src/com/arsdigita/cms/lifecycle/LifecycleConfig_parameter.properties @@ -2,6 +2,7 @@ com.arsdigita.cms.lifecycle.delay.title=Delay com.arsdigita.cms.lifecycle.delay.purpose=How long to wait (in seconds) after system startup before start lifecycle processing A value of 0 disables LC background thread.. com.arsdigita.cms.lifecycle.delay.example=60 com.arsdigita.cms.lifecycle.delay.format=[integer] + com.arsdigita.cms.lifecycle.frequency.title=Frequency com.arsdigita.cms.lifecycle.frequency.purpose=How often (in seconds) does the system look for pending items to make them live and live items to expire. com.arsdigita.cms.lifecycle.frequency.example=600 diff --git a/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java b/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java index 52bc2ed82..bbda7428e 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java @@ -39,7 +39,6 @@ import com.arsdigita.bebop.event.ActionListener; import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.form.Option; -import com.arsdigita.bebop.form.Select; import com.arsdigita.bebop.form.SingleSelect; import com.arsdigita.bebop.form.Submit; import com.arsdigita.cms.CMS; diff --git a/ccm-core/src/com/arsdigita/kernel/KernelConfig.java b/ccm-core/src/com/arsdigita/kernel/KernelConfig.java index 1cc437aef..25a4d7467 100755 --- a/ccm-core/src/com/arsdigita/kernel/KernelConfig.java +++ b/ccm-core/src/com/arsdigita/kernel/KernelConfig.java @@ -82,7 +82,7 @@ public final class KernelConfig extends AbstractConfig { private final Parameter m_languageIndependentItems = new BooleanParameter ("waf.kernel.language_independent_items", Parameter.REQUIRED, Boolean.FALSE); private final Parameter m_languageIndependentCode = new StringParameter - ("waf.kernel.languages_independent_code", Parameter.OPTIONAL, + ("waf.kernel.language_independent_code", Parameter.OPTIONAL, "--"); public KernelConfig() { diff --git a/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java b/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java index 49e88b54f..ceebca7d6 100644 --- a/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java +++ b/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java @@ -9,7 +9,6 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitPersonCollection; import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.GenericPersonContactCollection; import com.arsdigita.cms.contenttypes.SciProject; -import com.arsdigita.cms.util.LanguageUtil; import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.globalization.GlobalizationHelper; @@ -700,8 +699,13 @@ public class PersonalProjects implements ContentGenerator { public int compare(final SciProject project1, final SciProject project2) { - int ret = project2.getBegin().compareTo(project1.getBegin()); - if (ret == 0) { + int ret = 0; + if ((project2.getBegin() != null) && (project1.getBegin() != null)) { + ret = project2.getBegin().compareTo(project1.getBegin()); + } + if ((ret == 0) + && (project2.getEnd() != null) + && (project1.getEnd() != null)) { ret = project2.getEnd().compareTo(project1.getBegin()); } if (ret == 0) { diff --git a/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java b/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java index ece683844..ea8150197 100644 --- a/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java +++ b/ccm-sci-personalpublications/src/com/arsdigita/cms/publicpersonalprofile/PersonalPublications.java @@ -8,6 +8,8 @@ import com.arsdigita.cms.contenttypes.ui.PublicationXmlHelper; import com.arsdigita.cms.contenttypes.ui.panels.Paginator; import com.arsdigita.cms.dispatcher.SimpleXMLGenerator; import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.globalization.GlobalizationHelper; +import com.arsdigita.kernel.Kernel; import com.arsdigita.persistence.DataQuery; import com.arsdigita.persistence.OID; import com.arsdigita.persistence.SessionManager; @@ -117,7 +119,7 @@ public class PersonalPublications implements ContentGenerator { groupQueries.get(MISC), state, false, - true); + true); } else { final List availableGroups = new ArrayList(); @@ -147,7 +149,7 @@ public class PersonalPublications implements ContentGenerator { currentTimeMillis() - start)); logger.debug(String.format( "Determined if misc group is available in %d ms", - System.currentTimeMillis() - b1)); + System.currentTimeMillis() - b1)); logger.debug(String.format("Determined available groups " + "in %d ms.", System.currentTimeMillis() @@ -174,37 +176,56 @@ public class PersonalPublications implements ContentGenerator { } allQuery.close(); - logger.debug(String.format("12: %d ms until now...", System. - currentTimeMillis() - start)); + logger.debug(String.format("12: %d ms until now...", System. + currentTimeMillis() - start)); } if (logger.isDebugEnabled()) { logger.warn(String.format("Generated publications of %d publications " - + "for '%s' (%s) in %d ms.", - overallSize, - person.getFullName(), - person.getID().toString(), - System.currentTimeMillis() - start)); + + "for '%s' (%s) in %d ms.", + overallSize, + person.getFullName(), + person.getID().toString(), + System.currentTimeMillis() - start)); } } private void applyAuthorFilter(final GenericPerson person, final DataQuery query, final boolean addOrders) { - query.addFilter(String.format("authorId = %s", - person.getID().toString())); - /*if (Kernel.getConfig().languageIndependentItems()) { - FilterFactory ff = query.getFilterFactory(); - Filter filter = ff.or(). - addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())). - addFilter(ff.and(). - addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)). - addFilter(ff.notIn("parent", "com.arsdigita.navigation.getParentIDsOfMatchedItems") - .set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()))); - query.addFilter(filter); - } else {*/ - query.addEqualsFilter("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()); - //} + final StringBuilder authorFilterBuilder = new StringBuilder(); + authorFilterBuilder.append('('); + authorFilterBuilder.append(String.format("authorId = %s", + person.getID().toString())); + if (person.getAlias() != null) { + addAliasToFilter(authorFilterBuilder, person.getAlias()); + } + + authorFilterBuilder.append(')'); + + query.addFilter(authorFilterBuilder.toString()); + + /*query.addFilter(String.format("authorId = %s", + person.getID().toString()));*/ + if (Kernel.getConfig().languageIndependentItems()) { + /*FilterFactory ff = query.getFilterFactory(); + Filter filter = ff.or(). + addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())). + addFilter(ff.and(). + addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)). + addFilter(ff.notIn("parent", "com.arsdigita.navigation.getParentIDsOfMatchedItems") + .set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()))); + query.addFilter(filter);*/ + query.addFilter( + String.format("(language = '%s' or language = '%s')", + GlobalizationHelper.getNegotiatedLocale(). + getLanguage(), + GlobalizationHelper.LANG_INDEPENDENT)); + } else { + query.addEqualsFilter("language", + com.arsdigita.globalization.GlobalizationHelper. + getNegotiatedLocale().getLanguage()); + } if (addOrders) { final String[] orders = config.getOrder().split(","); for (String order : orders) { @@ -213,6 +234,15 @@ public class PersonalPublications implements ContentGenerator { } } + private void addAliasToFilter(final StringBuilder builder, + final GenericPerson alias) { + builder.append(String.format("or authorId = %s", alias.getID().toString())); + + if (alias.getAlias() != null) { + addAliasToFilter(builder, alias.getAlias()); + } + } + private Map> getGroupsConfig() { final String conf = config.getPublictionGroups(); @@ -350,8 +380,9 @@ public class PersonalPublications implements ContentGenerator { /*final XmlGenerator generator = new XmlGenerator(publication); generator.setItemElemName("publications", ""); generator.generateXML(state, parent, "");*/ - final PublicationXmlHelper xmlHelper = new PublicationXmlHelper(parent, - (Publication) publication); + final PublicationXmlHelper xmlHelper = + new PublicationXmlHelper(parent, + (Publication) publication); xmlHelper.generateXml(); if (logger.isDebugEnabled()) { logger.debug(String.format("Generated XML for publication '%s' "