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.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();
}
}

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.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

View File

@ -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;

View File

@ -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() {

View File

@ -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) {

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.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<String> availableGroups = new ArrayList<String>();
@ -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<String, List<String>> 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' "