Verschiedene BugFixes und Formtierungen

git-svn-id: https://svn.libreccm.org/ccm/trunk@1326 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-12-09 14:27:48 +00:00
parent 6152ff491e
commit 4b8b30bf80
6 changed files with 77 additions and 43 deletions

View File

@ -21,13 +21,13 @@ package com.arsdigita.cms.lifecycle;
import com.arsdigita.runtime.AbstractConfig; import com.arsdigita.runtime.AbstractConfig;
// import com.arsdigita.runtime.CCMResourceManager; // import com.arsdigita.runtime.CCMResourceManager;
// import com.arsdigita.util.UncheckedWrapperException; // import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.IntegerParameter; import com.arsdigita.util.parameter.IntegerParameter;
import com.arsdigita.util.parameter.Parameter; import com.arsdigita.util.parameter.Parameter;
// import com.arsdigita.util.parameter.StringParameter; // import com.arsdigita.util.parameter.StringParameter;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
/** /**
* LifecycleConfig * LifecycleConfig
* *
@ -37,7 +37,6 @@ import org.apache.log4j.Logger;
public class LifecycleConfig extends AbstractConfig { public class LifecycleConfig extends AbstractConfig {
private static final Logger s_log = Logger.getLogger(LifecycleConfig.class); private static final Logger s_log = Logger.getLogger(LifecycleConfig.class);
private static LifecycleConfig s_conf; private static LifecycleConfig s_conf;
/** /**
@ -55,20 +54,20 @@ public class LifecycleConfig extends AbstractConfig {
return s_conf; return s_conf;
} }
/** /**
* How long do we wait (in seconds) after system startup before we start * How long do we wait (in seconds) after system startup before we start
* processing lifecycles? * processing lifecycles?
*/ */
private IntegerParameter m_delay = new IntegerParameter private IntegerParameter m_delay = new IntegerParameter(
("com.arsdigita.cms.lifecycle.delay", Parameter.REQUIRED, "com.arsdigita.cms.lifecycle.delay", Parameter.REQUIRED,
new Integer(60)); new Integer(60));
/** /**
* How often (in seconds) does the system look for pending items to make * 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. * live and live items to expire? A value of 0 disables LC background thread.
*/ */
private IntegerParameter m_frequency = new IntegerParameter private IntegerParameter m_frequency =
("com.arsdigita.cms.lifecycle.frequency", Parameter.REQUIRED, new IntegerParameter(
"com.arsdigita.cms.lifecycle.frequency", Parameter.REQUIRED,
new Integer(600)); new Integer(600));
/** /**

View File

@ -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.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.example=60
com.arsdigita.cms.lifecycle.delay.format=[integer] com.arsdigita.cms.lifecycle.delay.format=[integer]
com.arsdigita.cms.lifecycle.frequency.title=Frequency 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.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 com.arsdigita.cms.lifecycle.frequency.example=600

View File

@ -39,7 +39,6 @@ import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.form.Option; import com.arsdigita.bebop.form.Option;
import com.arsdigita.bebop.form.Select;
import com.arsdigita.bebop.form.SingleSelect; import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.form.Submit; import com.arsdigita.bebop.form.Submit;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;

View File

@ -82,7 +82,7 @@ public final class KernelConfig extends AbstractConfig {
private final Parameter m_languageIndependentItems = new BooleanParameter private final Parameter m_languageIndependentItems = new BooleanParameter
("waf.kernel.language_independent_items", Parameter.REQUIRED, Boolean.FALSE); ("waf.kernel.language_independent_items", Parameter.REQUIRED, Boolean.FALSE);
private final Parameter m_languageIndependentCode = new StringParameter private final Parameter m_languageIndependentCode = new StringParameter
("waf.kernel.languages_independent_code", Parameter.OPTIONAL, ("waf.kernel.language_independent_code", Parameter.OPTIONAL,
"--"); "--");
public KernelConfig() { public KernelConfig() {

View File

@ -9,7 +9,6 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitPersonCollection;
import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.GenericPersonContactCollection; import com.arsdigita.cms.contenttypes.GenericPersonContactCollection;
import com.arsdigita.cms.contenttypes.SciProject; import com.arsdigita.cms.contenttypes.SciProject;
import com.arsdigita.cms.util.LanguageUtil;
import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObject;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.globalization.GlobalizationHelper; import com.arsdigita.globalization.GlobalizationHelper;
@ -700,8 +699,13 @@ public class PersonalProjects implements ContentGenerator {
public int compare(final SciProject project1, public int compare(final SciProject project1,
final SciProject project2) { final SciProject project2) {
int ret = project2.getBegin().compareTo(project1.getBegin()); int ret = 0;
if (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()); ret = project2.getEnd().compareTo(project1.getBegin());
} }
if (ret == 0) { if (ret == 0) {

View File

@ -8,6 +8,8 @@ import com.arsdigita.cms.contenttypes.ui.PublicationXmlHelper;
import com.arsdigita.cms.contenttypes.ui.panels.Paginator; import com.arsdigita.cms.contenttypes.ui.panels.Paginator;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator; import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.kernel.Kernel;
import com.arsdigita.persistence.DataQuery; import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.SessionManager;
@ -191,20 +193,39 @@ public class PersonalPublications implements ContentGenerator {
private void applyAuthorFilter(final GenericPerson person, private void applyAuthorFilter(final GenericPerson person,
final DataQuery query, final DataQuery query,
final boolean addOrders) { final boolean addOrders) {
query.addFilter(String.format("authorId = %s", final StringBuilder authorFilterBuilder = new StringBuilder();
authorFilterBuilder.append('(');
authorFilterBuilder.append(String.format("authorId = %s",
person.getID().toString())); person.getID().toString()));
/*if (Kernel.getConfig().languageIndependentItems()) { if (person.getAlias() != null) {
FilterFactory ff = query.getFilterFactory(); 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(). Filter filter = ff.or().
addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())). addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())).
addFilter(ff.and(). addFilter(ff.and().
addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)). addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)).
addFilter(ff.notIn("parent", "com.arsdigita.navigation.getParentIDsOfMatchedItems") addFilter(ff.notIn("parent", "com.arsdigita.navigation.getParentIDsOfMatchedItems")
.set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()))); .set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())));
query.addFilter(filter); query.addFilter(filter);*/
} else {*/ query.addFilter(
query.addEqualsFilter("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()); 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) { if (addOrders) {
final String[] orders = config.getOrder().split(","); final String[] orders = config.getOrder().split(",");
for (String order : orders) { 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<String, List<String>> getGroupsConfig() { private Map<String, List<String>> getGroupsConfig() {
final String conf = config.getPublictionGroups(); final String conf = config.getPublictionGroups();
@ -350,7 +380,8 @@ public class PersonalPublications implements ContentGenerator {
/*final XmlGenerator generator = new XmlGenerator(publication); /*final XmlGenerator generator = new XmlGenerator(publication);
generator.setItemElemName("publications", ""); generator.setItemElemName("publications", "");
generator.generateXML(state, parent, "");*/ generator.generateXML(state, parent, "");*/
final PublicationXmlHelper xmlHelper = new PublicationXmlHelper(parent, final PublicationXmlHelper xmlHelper =
new PublicationXmlHelper(parent,
(Publication) publication); (Publication) publication);
xmlHelper.generateXml(); xmlHelper.generateXml();
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {