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,21 +54,21 @@ 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(
new Integer(600)); "com.arsdigita.cms.lifecycle.frequency", Parameter.REQUIRED,
new Integer(600));
/** /**
* Constructor. * Constructor.

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;
@ -147,7 +149,7 @@ public class PersonalPublications implements ContentGenerator {
currentTimeMillis() - start)); currentTimeMillis() - start));
logger.debug(String.format( logger.debug(String.format(
"Determined if misc group is available in %d ms", "Determined if misc group is available in %d ms",
System.currentTimeMillis() - b1)); System.currentTimeMillis() - b1));
logger.debug(String.format("Determined available groups " logger.debug(String.format("Determined available groups "
+ "in %d ms.", + "in %d ms.",
System.currentTimeMillis() System.currentTimeMillis()
@ -174,37 +176,56 @@ public class PersonalPublications implements ContentGenerator {
} }
allQuery.close(); allQuery.close();
logger.debug(String.format("12: %d ms until now...", System. logger.debug(String.format("12: %d ms until now...", System.
currentTimeMillis() - start)); currentTimeMillis() - start));
} }
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.warn(String.format("Generated publications of %d publications " logger.warn(String.format("Generated publications of %d publications "
+ "for '%s' (%s) in %d ms.", + "for '%s' (%s) in %d ms.",
overallSize, overallSize,
person.getFullName(), person.getFullName(),
person.getID().toString(), person.getID().toString(),
System.currentTimeMillis() - start)); System.currentTimeMillis() - start));
} }
} }
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();
person.getID().toString())); authorFilterBuilder.append('(');
/*if (Kernel.getConfig().languageIndependentItems()) { authorFilterBuilder.append(String.format("authorId = %s",
FilterFactory ff = query.getFilterFactory(); person.getID().toString()));
Filter filter = ff.or(). if (person.getAlias() != null) {
addFilter(ff.equals("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())). addAliasToFilter(authorFilterBuilder, person.getAlias());
addFilter(ff.and(). }
addFilter(ff.equals("language", GlobalizationHelper.LANG_INDEPENDENT)).
addFilter(ff.notIn("parent", "com.arsdigita.navigation.getParentIDsOfMatchedItems") authorFilterBuilder.append(')');
.set("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage())));
query.addFilter(filter); query.addFilter(authorFilterBuilder.toString());
} else {*/
query.addEqualsFilter("language", com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale().getLanguage()); /*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) { 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,8 +380,9 @@ 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 =
(Publication) publication); new PublicationXmlHelper(parent,
(Publication) publication);
xmlHelper.generateXml(); xmlHelper.generateXml();
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(String.format("Generated XML for publication '%s' " logger.debug(String.format("Generated XML for publication '%s' "