Verschiedene Verbesserungen beim Anlegen neuer ContentSections und dem Zusammenspiel zwischen Sections und Kategorien.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2321 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
4a764a8b4e
commit
cba909a57d
|
|
@ -1082,6 +1082,11 @@ public class ContentSection extends Application {
|
||||||
return getDefaultSection().getBaseDataObjectType();
|
return getDefaultSection().getBaseDataObjectType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ContentSection create(final String name) {
|
||||||
|
final Category rootCategory = createRootCategory(name);
|
||||||
|
return create(name, rootCategory);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a content section of the given name using default values and
|
* Creates a content section of the given name using default values and
|
||||||
* returns it.
|
* returns it.
|
||||||
|
|
@ -1089,10 +1094,10 @@ public class ContentSection extends Application {
|
||||||
* @param name Name of the content section
|
* @param name Name of the content section
|
||||||
* @return ContentSection
|
* @return ContentSection
|
||||||
*/
|
*/
|
||||||
public static ContentSection create(final String name) {
|
public static ContentSection create(final String name, final Category rootCategory) {
|
||||||
|
|
||||||
Folder folder = createRootFolder(name);
|
Folder folder = createRootFolder(name);
|
||||||
Category category = createRootCategory(name);
|
//Category category = createRootCategory(name);
|
||||||
Group staff = createStaffGroup(name);
|
Group staff = createStaffGroup(name);
|
||||||
|
|
||||||
// Some default classes for a content section.
|
// Some default classes for a content section.
|
||||||
|
|
@ -1103,7 +1108,7 @@ public class ContentSection extends Application {
|
||||||
|
|
||||||
ContentSection section = ContentSection.create(name,
|
ContentSection section = ContentSection.create(name,
|
||||||
folder,
|
folder,
|
||||||
category,
|
rootCategory,
|
||||||
staff,
|
staff,
|
||||||
prc,
|
prc,
|
||||||
irc,
|
irc,
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,8 @@ public class ContentSectionServlet extends BaseApplicationServlet {
|
||||||
m_resolver = (ApplicationFileResolver) Classes.newInstance(resolverName);
|
m_resolver = (ApplicationFileResolver) Classes.newInstance(resolverName);
|
||||||
}
|
}
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Template path is " + m_templatePath + " with resolver " + m_resolver.getClass().getName());
|
s_log.debug("Template path is " + m_templatePath + " with resolver " + m_resolver.
|
||||||
|
getClass().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
// NEW STUFF here used to process the pages in this servlet
|
// NEW STUFF here used to process the pages in this servlet
|
||||||
|
|
@ -512,7 +513,8 @@ public class ContentSectionServlet extends BaseApplicationServlet {
|
||||||
|
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Did not find content item in cache, so trying " + "to retrieve and cache...");
|
s_log.debug("Did not find content item in cache, so trying "
|
||||||
|
+ "to retrieve and cache...");
|
||||||
}
|
}
|
||||||
//item not cached, so retreive it and cache it
|
//item not cached, so retreive it and cache it
|
||||||
item = itemResolver.getItem(section, url, ContentItem.LIVE);
|
item = itemResolver.getItem(section, url, ContentItem.LIVE);
|
||||||
|
|
@ -633,14 +635,15 @@ public class ContentSectionServlet extends BaseApplicationServlet {
|
||||||
public static ContentItem itemURLCacheGet(ContentSection section,
|
public static ContentItem itemURLCacheGet(ContentSection section,
|
||||||
final String sURL,
|
final String sURL,
|
||||||
final String lang) {
|
final String lang) {
|
||||||
final BigDecimal itemID = (BigDecimal) getItemURLCache(section)
|
final BigDecimal itemID = (BigDecimal) getItemURLCache(section).get(
|
||||||
.get(sURL + CACHE_KEY_DELIMITER + lang);
|
sURL + CACHE_KEY_DELIMITER + lang);
|
||||||
|
|
||||||
if (itemID == null) {
|
if (itemID == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
return (ContentItem) DomainObjectFactory.newInstance(new OID(ContentItem.BASE_DATA_OBJECT_TYPE, itemID));
|
return (ContentItem) DomainObjectFactory.newInstance(new OID(
|
||||||
|
ContentItem.BASE_DATA_OBJECT_TYPE, itemID));
|
||||||
} catch (DataObjectNotFoundException donfe) {
|
} catch (DataObjectNotFoundException donfe) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -652,6 +655,13 @@ public class ContentSectionServlet extends BaseApplicationServlet {
|
||||||
if (s_itemURLCacheMap == null) {
|
if (s_itemURLCacheMap == null) {
|
||||||
initializeItemURLCache();
|
initializeItemURLCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (s_itemURLCacheMap.get(section.getPath()) == null) {
|
||||||
|
final CacheTable cache = new CacheTable("ContentSectionServletItemURLCache" +
|
||||||
|
section.getID().toString());
|
||||||
|
s_itemURLCacheMap.put(section.getPath(), cache);
|
||||||
|
}
|
||||||
|
|
||||||
return (CacheTable) s_itemURLCacheMap.get(section.getPath());
|
return (CacheTable) s_itemURLCacheMap.get(section.getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,12 +27,18 @@ import com.arsdigita.bebop.SaveCancelSection;
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
import com.arsdigita.bebop.event.FormProcessListener;
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||||
import com.arsdigita.bebop.event.FormSubmissionListener;
|
import com.arsdigita.bebop.event.FormSubmissionListener;
|
||||||
|
import com.arsdigita.bebop.form.Option;
|
||||||
|
import com.arsdigita.bebop.form.SingleSelect;
|
||||||
import com.arsdigita.bebop.form.TextField;
|
import com.arsdigita.bebop.form.TextField;
|
||||||
import com.arsdigita.bebop.parameters.NotEmptyValidationListener;
|
import com.arsdigita.bebop.parameters.NotEmptyValidationListener;
|
||||||
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
||||||
|
import com.arsdigita.categorization.Category;
|
||||||
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.util.GlobalizationUtil;
|
import com.arsdigita.cms.util.GlobalizationUtil;
|
||||||
|
import com.arsdigita.domain.DomainObjectFactory;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
import com.arsdigita.persistence.SessionManager;
|
import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.persistence.TransactionContext;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Form for creating a new ContentSection. Used by the {@link ContentSectionAppManager}.
|
* Form for creating a new ContentSection. Used by the {@link ContentSectionAppManager}.
|
||||||
|
|
@ -44,6 +50,7 @@ public class ContentSectionCreateForm extends Form {
|
||||||
|
|
||||||
public final static String FORM_NAME = "ContentSectionCreateForm";
|
public final static String FORM_NAME = "ContentSectionCreateForm";
|
||||||
private final static String NEW_SECTION_NAME = "newSectionName";
|
private final static String NEW_SECTION_NAME = "newSectionName";
|
||||||
|
private final static String NEW_SECTION_ROOT_CAT = "newSectionRootCategory";
|
||||||
private final SaveCancelSection saveCancelSection;
|
private final SaveCancelSection saveCancelSection;
|
||||||
|
|
||||||
public ContentSectionCreateForm() {
|
public ContentSectionCreateForm() {
|
||||||
|
|
@ -56,6 +63,23 @@ public class ContentSectionCreateForm extends Form {
|
||||||
sectionNameField.addValidationListener(new NotEmptyValidationListener());
|
sectionNameField.addValidationListener(new NotEmptyValidationListener());
|
||||||
add(sectionNameField);
|
add(sectionNameField);
|
||||||
|
|
||||||
|
add(new Label(GlobalizationUtil.globalize("cms.ui.section.new_section_root_category")));
|
||||||
|
final SingleSelect rootCategorySelect = new SingleSelect(NEW_SECTION_ROOT_CAT);
|
||||||
|
final DataCollection categories = SessionManager.getSession().retrieve(
|
||||||
|
Category.BASE_DATA_OBJECT_TYPE);
|
||||||
|
rootCategorySelect.addOption(new Option(""));
|
||||||
|
Category current;
|
||||||
|
while (categories.next()) {
|
||||||
|
current = (Category) DomainObjectFactory.newInstance(categories.getDataObject());
|
||||||
|
if (current.isRoot()) {
|
||||||
|
rootCategorySelect.addOption(new Option(current.getID().toString(),
|
||||||
|
current.getDisplayName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rootCategorySelect.addValidationListener(new NotNullValidationListener());
|
||||||
|
rootCategorySelect.addValidationListener(new NotEmptyValidationListener());
|
||||||
|
add(rootCategorySelect);
|
||||||
|
|
||||||
saveCancelSection = new SaveCancelSection();
|
saveCancelSection = new SaveCancelSection();
|
||||||
add(saveCancelSection, ColumnPanel.FULL_WIDTH | ColumnPanel.LEFT);
|
add(saveCancelSection, ColumnPanel.FULL_WIDTH | ColumnPanel.LEFT);
|
||||||
|
|
||||||
|
|
@ -76,20 +100,24 @@ public class ContentSectionCreateForm extends Form {
|
||||||
|
|
||||||
final String newSectionName = data.getString(NEW_SECTION_NAME);
|
final String newSectionName = data.getString(NEW_SECTION_NAME);
|
||||||
|
|
||||||
// final TransactionContext tctx = SessionManager.getSession().getTransactionContext();
|
final Category rootCategory = new Category(new BigDecimal(data.getString(
|
||||||
// tctx.beginTxn();
|
NEW_SECTION_ROOT_CAT)));
|
||||||
ContentSectionSetup.setupContentSectionAppInstance(newSectionName,
|
if (!rootCategory.isRoot()) {
|
||||||
|
throw new IllegalArgumentException("The category given is not a root category.");
|
||||||
|
}
|
||||||
|
|
||||||
|
ContentSectionSetup.setupContentSectionAppInstance(
|
||||||
|
newSectionName,
|
||||||
|
rootCategory,
|
||||||
config.getDefaultRoles(),
|
config.getDefaultRoles(),
|
||||||
config.getDefaultWorkflows(),
|
config.getDefaultWorkflows(),
|
||||||
config.isPubliclyViewable(),
|
config.isPubliclyViewable(),
|
||||||
config.getItemResolverClass(),
|
config.getItemResolverClass(),
|
||||||
config.getTemplateResolverClass(),
|
config.getTemplateResolverClass(),
|
||||||
config.getContentSectionsContentTypes(),
|
config.getContentSectionsContentTypes());
|
||||||
config.getUseSectionCategories(),
|
|
||||||
config.getCategoryFileList());
|
|
||||||
// tctx.commitTxn();
|
|
||||||
|
|
||||||
data.put(NEW_SECTION_NAME, "");
|
data.put(NEW_SECTION_NAME, "");
|
||||||
|
data.put(NEW_SECTION_ROOT_CAT, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,36 @@ public final class ContentSectionSetup {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ContentSection setupContentSectionAppInstance(String name,
|
||||||
|
Category rootCategory,
|
||||||
|
List defaultRoles,
|
||||||
|
List defaultWorkflows,
|
||||||
|
Boolean isPubliclyViewable,
|
||||||
|
String itemResolverClassName,
|
||||||
|
String templateResolverClassName,
|
||||||
|
List sectionContentTypes) {
|
||||||
|
s_log.info("Creating content section on /" + name);
|
||||||
|
|
||||||
|
ContentSection section = ContentSection.create(name, rootCategory);
|
||||||
|
ContentSectionSetup setup = new ContentSectionSetup(section);
|
||||||
|
|
||||||
|
// Setup the access controls
|
||||||
|
setup.registerRoles(defaultRoles);
|
||||||
|
setup.registerWorkflowTemplates(defaultWorkflows);
|
||||||
|
setup.registerViewers(isPubliclyViewable);
|
||||||
|
setup.registerPublicationCycles();
|
||||||
|
setup.registerResolvers(itemResolverClassName, templateResolverClassName);
|
||||||
|
|
||||||
|
// setup.registerContentTypes((List)m_conf.getParameter(TYPES));
|
||||||
|
setup.registerContentTypes(sectionContentTypes);
|
||||||
|
|
||||||
|
setup.registerAlerts();
|
||||||
|
|
||||||
|
section.save();
|
||||||
|
|
||||||
|
return section;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Steps through a list of roles which are part of a staff group and
|
* Steps through a list of roles which are part of a staff group and
|
||||||
* delegates processing of each role.
|
* delegates processing of each role.
|
||||||
|
|
@ -276,7 +306,8 @@ public final class ContentSectionSetup {
|
||||||
s_log.info("Registering " + itemResolverClassName
|
s_log.info("Registering " + itemResolverClassName
|
||||||
+ " as the item resolver class");
|
+ " as the item resolver class");
|
||||||
} else {
|
} else {
|
||||||
m_section.setItemResolverClass(ContentSection.getConfig().getDefaultItemResolverClass().getName());
|
m_section.setItemResolverClass(ContentSection.getConfig().getDefaultItemResolverClass().
|
||||||
|
getName());
|
||||||
s_log.info("Registering " + itemResolverClassName
|
s_log.info("Registering " + itemResolverClassName
|
||||||
+ " as the item resolver class");
|
+ " as the item resolver class");
|
||||||
}
|
}
|
||||||
|
|
@ -286,7 +317,8 @@ public final class ContentSectionSetup {
|
||||||
s_log.info("Registering " + templateResolverClassName
|
s_log.info("Registering " + templateResolverClassName
|
||||||
+ " as the template resolver class");
|
+ " as the template resolver class");
|
||||||
} else {
|
} else {
|
||||||
m_section.setTemplateResolverClass(ContentSection.getConfig().getDefaultTemplateResolverClass().getName());
|
m_section.setTemplateResolverClass(ContentSection.getConfig().
|
||||||
|
getDefaultTemplateResolverClass().getName());
|
||||||
s_log.info("Registering " + templateResolverClassName
|
s_log.info("Registering " + templateResolverClassName
|
||||||
+ " as the template resolver class");
|
+ " as the template resolver class");
|
||||||
}
|
}
|
||||||
|
|
@ -399,7 +431,8 @@ public final class ContentSectionSetup {
|
||||||
|
|
||||||
// If this workflow should be the default or is the first one
|
// If this workflow should be the default or is the first one
|
||||||
// save it for easy access in registerContentType
|
// save it for easy access in registerContentType
|
||||||
if (m_wf == null || (workflow.containsKey("isDefault") && workflow.get("isDefault").equals("true"))) {
|
if (m_wf == null || (workflow.containsKey("isDefault") && workflow.get("isDefault").
|
||||||
|
equals("true"))) {
|
||||||
m_section.setDefaultWorkflowTemplate(wf);
|
m_section.setDefaultWorkflowTemplate(wf);
|
||||||
m_wf = wf;
|
m_wf = wf;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ public class CategoryTreeModelLite extends DataQueryTreeModel {
|
||||||
/**
|
/**
|
||||||
* Initializes with the passed in the root Category.
|
* Initializes with the passed in the root Category.
|
||||||
*
|
*
|
||||||
* @param rootCategory the root category for this TreeModel
|
* @param root the root category for this TreeModel
|
||||||
*/
|
*/
|
||||||
public CategoryTreeModelLite(Category root) {
|
public CategoryTreeModelLite(Category root) {
|
||||||
this(root,null);
|
this(root,null);
|
||||||
|
|
@ -47,7 +47,7 @@ public class CategoryTreeModelLite extends DataQueryTreeModel {
|
||||||
/**
|
/**
|
||||||
* Initializes with the passed in the root Category.
|
* Initializes with the passed in the root Category.
|
||||||
*
|
*
|
||||||
* @param rootCategory the root category for this TreeModel
|
* @param root the root category for this TreeModel
|
||||||
* @param order the field to order by
|
* @param order the field to order by
|
||||||
*/
|
*/
|
||||||
public CategoryTreeModelLite(Category root, String order) {
|
public CategoryTreeModelLite(Category root, String order) {
|
||||||
|
|
@ -57,6 +57,7 @@ public class CategoryTreeModelLite extends DataQueryTreeModel {
|
||||||
m_order = order;
|
m_order = order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
protected DataQueryTreeIterator getDataQueryTreeIterator
|
protected DataQueryTreeIterator getDataQueryTreeIterator
|
||||||
(DataQueryTreeNode node, String getSubCategories) {
|
(DataQueryTreeNode node, String getSubCategories) {
|
||||||
return new CategoryTreeIterator(node, getSubCategories, m_order);
|
return new CategoryTreeIterator(node, getSubCategories, m_order);
|
||||||
|
|
@ -69,6 +70,7 @@ public class CategoryTreeModelLite extends DataQueryTreeModel {
|
||||||
addOrder(order);
|
addOrder(order);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
public Object next() {
|
public Object next() {
|
||||||
DataQueryTreeNode node = (DataQueryTreeNode)super.next();
|
DataQueryTreeNode node = (DataQueryTreeNode)super.next();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,9 @@ public class DomainMappingAddForm extends Form {
|
||||||
throw new UncheckedWrapperException(ex);
|
throw new UncheckedWrapperException(ex);
|
||||||
}
|
}
|
||||||
context.setSize(20);
|
context.setSize(20);
|
||||||
context.addValidationListener(new NotNullValidationListener());
|
//For some purposes it is neccessary to map a domain with a null context
|
||||||
context.addValidationListener(new StringInRangeValidationListener(1, 100));
|
//context.addValidationListener(new NotNullValidationListener());
|
||||||
|
//context.addValidationListener(new StringInRangeValidationListener(1, 100));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.mapping.ui.context")));
|
add(new Label(TermGlobalizationUtil.globalize("term.domain.mapping.ui.context")));
|
||||||
add(context);
|
add(context);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,6 @@ public abstract class AbstractObjectList
|
||||||
|
|
||||||
public Element generateObjectListXML(HttpServletRequest request,
|
public Element generateObjectListXML(HttpServletRequest request,
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
final long start = System.nanoTime();
|
|
||||||
Assert.isLocked(this);
|
Assert.isLocked(this);
|
||||||
|
|
||||||
String pageNumberValue = request.getParameter("pageNumber");
|
String pageNumberValue = request.getParameter("pageNumber");
|
||||||
|
|
@ -109,11 +108,7 @@ public abstract class AbstractObjectList
|
||||||
"cannot parse page number " + pageNumber, ex);
|
"cannot parse page number " + pageNumber, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
final long loadObjectsStart = System.nanoTime();
|
|
||||||
DataCollection objects = getObjects(request, response);
|
DataCollection objects = getObjects(request, response);
|
||||||
////System.out.printf("Got objects for list in %d ms\n", (System.nanoTime() - loadObjectsStart) / 1000000);
|
|
||||||
|
|
||||||
////System.out.printf("(100) Needed %d ms until here...\n", (System.nanoTime() - start) / 1000000);
|
|
||||||
|
|
||||||
// Quasimodo: Begin
|
// Quasimodo: Begin
|
||||||
// Limit list to objects in the negotiated language and language invariant items
|
// Limit list to objects in the negotiated language and language invariant items
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,8 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
*/
|
*/
|
||||||
private final Map<String, Filter> filters =
|
private final Map<String, Filter> filters =
|
||||||
new LinkedHashMap<String, Filter>();
|
new LinkedHashMap<String, Filter>();
|
||||||
|
|
||||||
|
private CategoryFilter categoryFilter;
|
||||||
/**
|
/**
|
||||||
* The available sort fields. We use an {@link LinkedHashMap} here to
|
* The available sort fields. We use an {@link LinkedHashMap} here to
|
||||||
* preserve the insertation order.
|
* preserve the insertation order.
|
||||||
|
|
@ -175,6 +177,13 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
filters.put(label, filter);
|
filters.put(label, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CategoryFilter addCategoryFilter(final String label,
|
||||||
|
final String rootCategory) {
|
||||||
|
categoryFilter = CategoryFilter.createCategoryFilter(label, rootCategory);
|
||||||
|
|
||||||
|
return categoryFilter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a sort field option.
|
* Add a sort field option.
|
||||||
*
|
*
|
||||||
|
|
@ -238,6 +247,10 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
|
|
||||||
final DataCollection objects = super.getObjects(request, response);
|
final DataCollection objects = super.getObjects(request, response);
|
||||||
|
|
||||||
|
if ((objects != null) && (categoryFilter != null)) {
|
||||||
|
categoryFilter.applyFilter(objects);
|
||||||
|
}
|
||||||
|
|
||||||
return objects;
|
return objects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -313,6 +326,13 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
filterEntry.getValue().setValue(value);
|
filterEntry.getValue().setValue(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (categoryFilter != null) {
|
||||||
|
final String value = Globalization.decodeParameter(request, "categoryFilter");
|
||||||
|
|
||||||
|
if ((value != null) && !value.isEmpty()) {
|
||||||
|
categoryFilter.setValue(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final Element controls = content.newChildElement("filterControls");
|
final Element controls = content.newChildElement("filterControls");
|
||||||
controls.addAttribute("customName", m_customName);
|
controls.addAttribute("customName", m_customName);
|
||||||
|
|
@ -321,6 +341,9 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
||||||
filterElems.addContent(filterEntry.getValue().getXml());
|
filterElems.addContent(filterEntry.getValue().getXml());
|
||||||
}
|
}
|
||||||
|
if (categoryFilter != null) {
|
||||||
|
filterElems.addContent(categoryFilter.getXml());
|
||||||
|
}
|
||||||
|
|
||||||
if (!sortFields.isEmpty()) {
|
if (!sortFields.isEmpty()) {
|
||||||
//Look for a sort parameter. If one is found, use one to sort the data
|
//Look for a sort parameter. If one is found, use one to sort the data
|
||||||
|
|
|
||||||
|
|
@ -28,5 +28,4 @@
|
||||||
|
|
||||||
<setting id="separator"> | </setting>
|
<setting id="separator"> | </setting>
|
||||||
|
|
||||||
<setting id="includeFileNameIntoFileLinks">true</setting>
|
|
||||||
</settings>
|
</settings>
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,11 @@ public class SiteTable extends Table implements TableActionListener {
|
||||||
case 3:
|
case 3:
|
||||||
return site.getStyleDirectory();
|
return site.getStyleDirectory();
|
||||||
case 4:
|
case 4:
|
||||||
|
if (site.getRootCategory() == null) {
|
||||||
|
return "";
|
||||||
|
} else {
|
||||||
return site.getRootCategory().getDisplayName();
|
return site.getRootCategory().getDisplayName();
|
||||||
|
}
|
||||||
case 5:
|
case 5:
|
||||||
return SubsiteGlobalizationUtil.globalize("subsite.ui.edit");
|
return SubsiteGlobalizationUtil.globalize("subsite.ui.edit");
|
||||||
case 6:
|
case 6:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue