CCM NG/ccm-cms: FolderBrowser now shows up, buts needs more testing
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4561 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
82d0ceffbd
commit
0a51a89ca9
|
|
@ -186,8 +186,10 @@ public abstract class NewItemForm extends Form {
|
|||
if (isVisible(state)) {
|
||||
final ContentSection section = getContentSection(state);
|
||||
|
||||
final List<ContentType> types = section.getContentTypes();
|
||||
boolean isEmpty = types.isEmpty();
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final NewItemFormController controller = cdiUtil.findBean(
|
||||
NewItemFormController.class);
|
||||
boolean isEmpty = !controller.hasContentTypes(section);
|
||||
|
||||
createLabel.setVisible(state, !isEmpty);
|
||||
typeSelect.setVisible(state, !isEmpty);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -22,6 +22,7 @@ import com.arsdigita.kernel.KernelConfig;
|
|||
|
||||
import org.libreccm.configuration.ConfigurationManager;
|
||||
import org.libreccm.core.CcmObject;
|
||||
import org.libreccm.core.CcmObjectRepository;
|
||||
import org.libreccm.l10n.GlobalizationHelper;
|
||||
import org.libreccm.l10n.LocalizedString;
|
||||
import org.librecms.contentsection.ContentItem;
|
||||
|
|
@ -32,6 +33,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
|
@ -51,6 +53,9 @@ public class FolderBrowserController {
|
|||
@Inject
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Inject
|
||||
private CcmObjectRepository objectRepo;
|
||||
|
||||
@Inject
|
||||
private ConfigurationManager confManager;
|
||||
|
||||
|
|
@ -164,7 +169,7 @@ public class FolderBrowserController {
|
|||
final TypedQuery<CcmObject> query = entityManager.createNamedQuery(
|
||||
"Folder.findObjects", CcmObject.class);
|
||||
query.setParameter("folder", folder);
|
||||
query.setParameter(filterTerm, filterTerm);
|
||||
query.setParameter("term", filterTerm);
|
||||
|
||||
if (first > 0 && maxResults > 0) {
|
||||
query.setFirstResult(first);
|
||||
|
|
@ -174,40 +179,22 @@ public class FolderBrowserController {
|
|||
return query.getResultList();
|
||||
}
|
||||
|
||||
public int countObjects(final Folder folder) {
|
||||
return countObjects(folder, -1, -1);
|
||||
public long countObjects(final Folder folder) {
|
||||
return countObjects(folder, "%");
|
||||
}
|
||||
|
||||
public int countObjects(final Folder folder,
|
||||
final int frist,
|
||||
final int maxResults) {
|
||||
return countObjects(folder, "%", frist, maxResults);
|
||||
}
|
||||
|
||||
public int countObjects(final Folder folder,
|
||||
public long countObjects(final Folder folder,
|
||||
final String filterTerm) {
|
||||
return countObjects(folder, filterTerm, -1, -1);
|
||||
}
|
||||
|
||||
public int countObjects(final Folder folder,
|
||||
final String filterTerm,
|
||||
final int first,
|
||||
final int maxResults) {
|
||||
final TypedQuery<Integer> query = entityManager.createNamedQuery(
|
||||
"Folder.countObjects", Integer.class);
|
||||
final TypedQuery<Long> query = entityManager.createNamedQuery(
|
||||
"Folder.countObjects", Long.class);
|
||||
query.setParameter("folder", folder);
|
||||
query.setParameter(filterTerm, filterTerm);
|
||||
|
||||
if (first > 0 && maxResults > 0) {
|
||||
query.setFirstResult(first);
|
||||
query.setMaxResults(maxResults);
|
||||
}
|
||||
query.setParameter("term", filterTerm);
|
||||
|
||||
return query.getSingleResult();
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected List<FolderBrowserTableRow> getObjectRows(final Folder folder) {
|
||||
List<FolderBrowserTableRow> getObjectRows(final Folder folder) {
|
||||
final List<CcmObject> objects = findObjects(folder);
|
||||
|
||||
return objects.stream()
|
||||
|
|
@ -216,7 +203,7 @@ public class FolderBrowserController {
|
|||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
final String filterTerm) {
|
||||
final List<CcmObject> objects = findObjects(folder,
|
||||
filterTerm);
|
||||
|
|
@ -227,7 +214,7 @@ public class FolderBrowserController {
|
|||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
final int first,
|
||||
final int maxResults) {
|
||||
final List<CcmObject> objects = findObjects(folder, first, maxResults);
|
||||
|
|
@ -238,7 +225,7 @@ public class FolderBrowserController {
|
|||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
List<FolderBrowserTableRow> getObjectRows(final Folder folder,
|
||||
final String filterTerm,
|
||||
final int first,
|
||||
final int maxResults) {
|
||||
|
|
@ -297,4 +284,13 @@ public class FolderBrowserController {
|
|||
return row;
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
protected void deleteObject(final long objectId) {
|
||||
final Optional<CcmObject> object = objectRepo.findById(objectId);
|
||||
|
||||
if (object.isPresent()) {
|
||||
objectRepo.delete(object.get());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ package com.arsdigita.cms.ui.folder;
|
|||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.PaginationModelBuilder;
|
||||
import com.arsdigita.bebop.Paginator;
|
||||
import com.arsdigita.bebop.Table;
|
||||
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.librecms.contentsection.Folder;
|
||||
|
|
@ -66,9 +65,10 @@ class FolderBrowserPaginationModelBuilder implements PaginationModelBuilder {
|
|||
}
|
||||
|
||||
if (filterTerm == null) {
|
||||
return controller.countObjects(folder, first, pageSize);
|
||||
return (int) controller.countObjects(folder);
|
||||
} else {
|
||||
return controller.countObjects(folder, filter, first, pageSize);
|
||||
return (int) controller.countObjects(folder,
|
||||
filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,11 +26,9 @@ import com.arsdigita.bebop.table.TableModelBuilder;
|
|||
import com.arsdigita.util.LockableImpl;
|
||||
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.librecms.contentsection.ContentItem;
|
||||
import org.librecms.contentsection.Folder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ public class FolderManipulator extends SimpleContainer implements
|
|||
|
||||
private final ArrayParameter sourcesParam = new ArrayParameter(
|
||||
new BigDecimalParameter(SOURCES_PARAM));
|
||||
private final StringParameter actionParam = new StringParameter(ACTION_PARAM);
|
||||
private final StringParameter actionParam
|
||||
= new StringParameter(ACTION_PARAM);
|
||||
;
|
||||
/**
|
||||
* The folder in which the source items live.
|
||||
|
|
@ -136,7 +137,8 @@ public class FolderManipulator extends SimpleContainer implements
|
|||
private FilterForm filterForm;
|
||||
private final StringParameter atozFilterParam = new StringParameter(
|
||||
ATOZ_FILTER_PARAM);
|
||||
private final StringParameter filterParam = new StringParameter(FILTER_PARAM);
|
||||
private final StringParameter filterParam
|
||||
= new StringParameter(FILTER_PARAM);
|
||||
|
||||
public FolderManipulator(final FolderSelectionModel folderModel) {
|
||||
|
||||
|
|
@ -826,16 +828,18 @@ public class FolderManipulator extends SimpleContainer implements
|
|||
folderBrowser = new FolderBrowser(sourceFolderModel);
|
||||
folderBrowser.setAtoZfilterParameter(atozFilterParam);
|
||||
folderBrowser.setFilterParameter(filterParam);
|
||||
folderBrowser.setFilterForm(filterForm);
|
||||
// folderBrowser.setFilterForm(filterForm);
|
||||
folderBrowser.setFolderManipulator(FolderManipulator.this);
|
||||
paginator = new Paginator(
|
||||
(PaginationModelBuilder) folderBrowser.getModelBuilder(),
|
||||
new FolderBrowserPaginationModelBuilder(folderBrowser),
|
||||
CMSConfig.getConfig().getFolderBrowseListSize());
|
||||
folderBrowser.setPaginator(paginator);
|
||||
panel.add(paginator);
|
||||
panel.add(folderBrowser);
|
||||
|
||||
LOGGER.debug("Adding filter form...");
|
||||
filterForm = new FilterForm((FilterFormModelBuilder) folderBrowser.
|
||||
getModelBuilder());
|
||||
filterForm = new FilterForm(new FolderBrowserFilterFormModelBuilder(
|
||||
folderBrowser));
|
||||
FolderManipulator.this.add(filterForm);
|
||||
|
||||
checkboxGroup = new CheckboxGroup(sourcesParam);
|
||||
|
|
@ -886,6 +890,10 @@ public class FolderManipulator extends SimpleContainer implements
|
|||
return folderBrowser;
|
||||
}
|
||||
|
||||
public Paginator getPaginator() {
|
||||
return paginator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(final PageState state) {
|
||||
|
||||
|
|
@ -1110,7 +1118,6 @@ public class FolderManipulator extends SimpleContainer implements
|
|||
// // Save the invalid folder list
|
||||
// m_invalidFolders.set(state, invalidFolders);
|
||||
// }
|
||||
|
||||
final Label label = new Label(value.toString());
|
||||
|
||||
if (invalidFolders.contains(key.toString())) {
|
||||
|
|
|
|||
|
|
@ -56,10 +56,24 @@ import static org.librecms.CmsConstants.*;
|
|||
@Entity
|
||||
@Table(name = "CONTENT_SECTIONS", schema = DB_SCHEMA)
|
||||
@NamedQueries({
|
||||
@NamedQuery(
|
||||
name = "ContentSection.findById",
|
||||
query = "SELECT S FROM ContentSection s WHERE s.objectId = :objectId")
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "ContentSection.findByLabel",
|
||||
query = "SELECT s FROM ContentSection s WHERE s.label = :label")
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "ContentSection.findContentTypes",
|
||||
query = "SELECT t FROM ContentType t WHERE t.contentSection = :section")
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "ContentSection.countContentTypes",
|
||||
query
|
||||
= "SELECT COUNT(t) FROM ContentType t WHERE t.contentSection = :section"
|
||||
)
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "ContentSection.findPermissions",
|
||||
query = "SELECT p FROM Permission p "
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ import org.libreccm.core.CoreConstants;
|
|||
import org.libreccm.security.AuthorizationRequired;
|
||||
import org.libreccm.security.RequiresPrivilege;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.persistence.NoResultException;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
|
|
@ -66,7 +68,7 @@ public class ContentSectionRepository
|
|||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public void save(final ContentSection section) {
|
||||
if(isNew(section)) {
|
||||
if (isNew(section)) {
|
||||
section.setUuid(UUID.randomUUID().toString());
|
||||
section.setApplicationType(ContentSection.class.getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ package org.librecms.contentsection;
|
|||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.libreccm.core.UnexpectedErrorException;
|
||||
import org.libreccm.modules.InstallEvent;
|
||||
import org.libreccm.security.Role;
|
||||
import org.libreccm.web.AbstractCcmApplicationSetup;
|
||||
|
|
@ -32,8 +33,15 @@ import static org.librecms.contentsection.ContentSection.*;
|
|||
import org.librecms.contentsection.privileges.AdminPrivileges;
|
||||
import org.librecms.contentsection.privileges.AssetPrivileges;
|
||||
import org.librecms.contentsection.privileges.ItemPrivileges;
|
||||
import org.librecms.contenttypes.Article;
|
||||
import org.librecms.contenttypes.Event;
|
||||
import org.librecms.contenttypes.MultiPartArticle;
|
||||
import org.librecms.contenttypes.News;
|
||||
import org.librecms.dispatcher.MultilingualItemResolver;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.logging.Level;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
|
|
@ -47,6 +55,11 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup {
|
|||
= "org.librecms.initial_content_sections";
|
||||
private static final String DEFAULT_ITEM_RESOLVER
|
||||
= "org.librecms.default_item_resolver";
|
||||
private static final String[] DEFAULT_TYPES = new String[]{
|
||||
Article.class.getName(),
|
||||
Event.class.getName(),
|
||||
MultiPartArticle.class.getName(),
|
||||
News.class.getName()};
|
||||
|
||||
public ContentSectionSetup(final InstallEvent event) {
|
||||
super(event);
|
||||
|
|
@ -241,22 +254,61 @@ public class ContentSectionSetup extends AbstractCcmApplicationSetup {
|
|||
section.addRole(publisher);
|
||||
section.addRole(contentReader);
|
||||
|
||||
|
||||
|
||||
final String itemResolverClassName;
|
||||
if (getIntegrationProps().containsKey(String.format("%s.item_resolver",
|
||||
sectionName))) {
|
||||
itemResolverClassName = getIntegrationProps().getProperty(
|
||||
String.format("%s.item_resolver",
|
||||
sectionName));
|
||||
} else if(getIntegrationProps().containsKey("default_item_resolver")) {
|
||||
itemResolverClassName = getIntegrationProps().getProperty("default_item_resolver_name");
|
||||
} else if (getIntegrationProps().containsKey("default_item_resolver")) {
|
||||
itemResolverClassName = getIntegrationProps().getProperty(
|
||||
"default_item_resolver_name");
|
||||
} else {
|
||||
itemResolverClassName = MultilingualItemResolver.class.getName();
|
||||
}
|
||||
section.setItemResolverClass(itemResolverClassName);
|
||||
|
||||
final String[] types;
|
||||
if (getIntegrationProps().containsKey(String.format("%s.content_types",
|
||||
sectionName))) {
|
||||
final String typesStr = getIntegrationProps().getProperty(String
|
||||
.format("%s.content_types", sectionName));
|
||||
types = typesStr.split(",");
|
||||
} else if (getIntegrationProps().containsKey("default_content_types")) {
|
||||
final String typesStr = getIntegrationProps().getProperty(
|
||||
"default_content_types");
|
||||
types = typesStr.split(",");
|
||||
} else {
|
||||
types = DEFAULT_TYPES;
|
||||
}
|
||||
Arrays.stream(types).forEach(type -> addContentTypeToSection(section,
|
||||
type));
|
||||
|
||||
getEntityManager().merge(section);
|
||||
}
|
||||
|
||||
private void addContentTypeToSection(final ContentSection section,
|
||||
final String contentType) {
|
||||
final String typeClassName = contentType.trim();
|
||||
final Class<?> clazz;
|
||||
try {
|
||||
clazz = Class.forName(typeClassName);
|
||||
} catch (ClassNotFoundException ex) {
|
||||
throw new UnexpectedErrorException(String.format(
|
||||
"No class for content type '%s'.", typeClassName));
|
||||
}
|
||||
|
||||
if (ContentItem.class.isAssignableFrom(clazz)) {
|
||||
final ContentType type = new ContentType();
|
||||
type.setContentSection(section);
|
||||
type.setContentItemClass(clazz.getName());
|
||||
section.addContentType(type);
|
||||
} else {
|
||||
throw new UnexpectedErrorException(String.format(
|
||||
"The class '%s' is not a sub class of '%s'.",
|
||||
clazz.getName(),
|
||||
ContentItem.class.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,71 +68,97 @@ import static org.librecms.CmsConstants.*;
|
|||
+ "ORDER BY f.name"
|
||||
)
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "Folder.countSubFolders",
|
||||
query
|
||||
= "SELECT COUNT(f) FROM Folder f WHERE f.parentCategory = :parent "
|
||||
+ "AND LOWER(f.name) LIKE :term"
|
||||
)
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "Folder.findItems",
|
||||
query = "SELECT c.categorizedObject "
|
||||
+ "FROM Categorization c "
|
||||
+ "WHERE c.category = :folder "
|
||||
+ "AND TYPE(c.categorizedObject) IN ContentItem "
|
||||
+ "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
+ "AND c.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
+ "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
+ "OR LOWER(c.categorizedObject.name.value) LIKE :term) "
|
||||
+ "ORDER BY c.categorizedObject.name")
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "Folder.countItems",
|
||||
query = "SELECT COUNT(c).categorizedObject "
|
||||
+ "FROM Categorization c "
|
||||
+ "WHERE c.category = :folder "
|
||||
+ "AND Type(c.categorizedObject) IN ContentItem "
|
||||
+ "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
+ "AND c.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
+ "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
+ "OR LOWER(c.categorizedObject.name.value) LIKE :term)")
|
||||
,
|
||||
// @NamedQuery(
|
||||
// name = "Folder.countSubFolders",
|
||||
// query
|
||||
// = "SELECT COUNT(f) FROM Folder f WHERE f.parentCategory = :parent "
|
||||
// + "AND LOWER(f.name) LIKE :term"
|
||||
// )
|
||||
// ,
|
||||
// @NamedQuery(
|
||||
// name = "Folder.findItems",
|
||||
// query = "SELECT c.categorizedObject "
|
||||
// + "FROM Categorization c "
|
||||
// + "WHERE c.category = :folder "
|
||||
// + "AND TYPE(c.categorizedObject) IN ContentItem "
|
||||
// + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
// + "AND c.version = "
|
||||
// + "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
// + "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
// + "OR LOWER(c.categorizedObject.name.value) LIKE :term) "
|
||||
// + "ORDER BY c.categorizedObject.name")
|
||||
// ,
|
||||
// @NamedQuery(
|
||||
// name = "Folder.countItems",
|
||||
// query = "SELECT COUNT(c).categorizedObject "
|
||||
// + "FROM Categorization c "
|
||||
// + "WHERE c.category = :folder "
|
||||
// + "AND Type(c.categorizedObject) IN ContentItem "
|
||||
// + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
// + "AND c.version = "
|
||||
// + "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
// + "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
// + "OR LOWER(c.categorizedObject.name.value) LIKE :term)")
|
||||
// ,
|
||||
@NamedQuery(
|
||||
name = "Folder.findObjects",
|
||||
query = "SELECT o FROM CcmObject o "
|
||||
+ "WHERE o IN (SELECT f FROM Folder f "
|
||||
+ "WHERE f.parentCategory = :parent "
|
||||
+ "AND lower(f.name) LIKE :term) "
|
||||
+ "OR o IN (SELECT c.categorizedObject "
|
||||
+ "FROM Categorization c "
|
||||
+ "WHERE f.parentCategory = :folder "
|
||||
+ "AND LOWER(f.name) LIKE :term) "
|
||||
+ "OR o IN (SELECT i FROM ContentItem i JOIN i.categories c "
|
||||
+ "WHERE c.category = :folder "
|
||||
+ "AND TYPE(c.categorizedObject) IN ContentItem "
|
||||
+ "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
+ "AND c.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
+ "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
+ "OR LOWER(c.categorizedObject.name.value) LIKE :term)) "
|
||||
+ "ORDER BY o.displayName")
|
||||
+ "AND i.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT "
|
||||
+ "AND (LOWER(i.displayName) LIKE LOWER(:term) "
|
||||
// + "OR LOWER(i.name.values) LIKE LOWER(:term)"
|
||||
+ ")) "
|
||||
+ "ORDER BY o.displayName"
|
||||
// query = "SELECT o FROM CcmObject o "
|
||||
// + "WHERE o IN (SELECT f FROM Folder f "
|
||||
// + "WHERE f.parentCategory = :parent "
|
||||
// + "AND lower(f.name) LIKE :term) "
|
||||
// + "OR o IN (SELECT c.categorizedObject "
|
||||
// + "FROM Categorization c "
|
||||
// + "WHERE c.category = :folder "
|
||||
// + "AND TYPE(c.categorizedObject) IN ContentItem "
|
||||
// + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
// + "AND c.version = "
|
||||
// + "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
// + "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
// + "OR LOWER(c.categorizedObject.name.value) LIKE :term)) "
|
||||
// + "ORDER BY o.displayName"
|
||||
)
|
||||
,
|
||||
@NamedQuery(
|
||||
name = "Folder.countObjects",
|
||||
query = "SELECT COUNT(o) FROM CcmObject o "
|
||||
+ "WHERE o IN (SELECT f FROM Folder f "
|
||||
+ "WHERE f.parentCategory = :parent "
|
||||
+ "AND lower(f.name) LIKE :term) "
|
||||
+ "OR o IN (SELECT c.categorizedObject "
|
||||
+ "FROM Categorization c "
|
||||
+ "WHERE f.parentCategory = :folder "
|
||||
+ "AND LOWER(f.name) LIKE :term) "
|
||||
+ "OR o IN (SELECT i FROM ContentItem i JOIN i.categories c "
|
||||
+ "WHERE c.category = :folder "
|
||||
+ "AND TYPE(c.categorizedObject) IN ContentItem "
|
||||
+ "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
+ "AND c.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT"
|
||||
+ "AND (LOWER(c.categorizedObject.displayName) LIKE :term "
|
||||
+ "OR LOWER(c.categorizedObject.name.value) LIKE :term)) "
|
||||
+ "ORDER BY o.displayName")
|
||||
+ "AND i.version = "
|
||||
+ "org.librecms.contentsection.ContentItemVersion.DRAFT "
|
||||
+ "AND (LOWER(i.displayName) LIKE LOWER(:term) "
|
||||
// + "OR LOWER(i.name.values) LIKE LOWER(:term)"
|
||||
+ "))"
|
||||
// query = "SELECT COUNT(o) FROM CcmObject o "
|
||||
// + "WHERE o IN (SELECT f FROM Folder f "
|
||||
// + "WHERE f.parentCategory = :parent "
|
||||
// + "AND lower(f.name) LIKE :term) "
|
||||
// + "OR o IN (SELECT c.categorizedObject AS co "
|
||||
// + "FROM Categorization c "
|
||||
// + "WHERE c.category = :folder "
|
||||
// // + "AND TYPE(co) IN ContentItem "
|
||||
// + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' "
|
||||
// + "AND co.version = "
|
||||
// + "org.librecms.contentsection.ContentItemVersion.DRAFT "
|
||||
// + "AND ((LOWER(co.displayName) LIKE :term "
|
||||
// + "OR LOWER(co.name.value) LIKE :term)))"
|
||||
)
|
||||
})
|
||||
public class Folder extends Category implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -45,3 +45,7 @@ cms.ui.permissions.table.remove_all.header=Remove all
|
|||
cms.ui.category.select_index_item=Select index item for category
|
||||
cms.ui.category.non_option=None
|
||||
cms.ui.category.inherit_parent=Inherit Index from Parent Category
|
||||
cms.ui.authoring.no_types_registered=No types registered
|
||||
cms.ui.contents_of=Contents of
|
||||
cms.ui.new_folder=Create new folder
|
||||
cms.ui.edit_folder=Rename the current folder
|
||||
|
|
|
|||
|
|
@ -44,3 +44,7 @@ cms.ui.permissions.table.remove_all.header=Alle entfernen
|
|||
|
||||
cms.ui.category.select_index_item=Index Element f\u00fcr diese Kategorie ausw\u00e4hlen
|
||||
cms.ui.category.inherit_parent=Inherit Index from Parent Category
|
||||
cms.ui.authoring.no_types_registered=Keine Typen registiert
|
||||
cms.ui.contents_of=Inhalt von
|
||||
cms.ui.new_folder=Neuen Ordner erstellen
|
||||
cms.ui.edit_folder=Aktuellen Ordner umbenennen
|
||||
|
|
|
|||
|
|
@ -44,3 +44,7 @@ cms.ui.folder_browser=Folders
|
|||
cms.ui.permissions.table.actions.remove_all=Remove all permissions
|
||||
cms.ui.permissions.table.actions.remove_all.confirm=Are you sure to remove all permissions for this role from the current object?
|
||||
cms.ui.permissions.table.remove_all.header=Remove all
|
||||
cms.ui.authoring.no_types_registered=No types registered
|
||||
cms.ui.contents_of=Contents of
|
||||
cms.ui.new_folder=Create new folder
|
||||
cms.ui.edit_folder=Rename the current folder
|
||||
|
|
|
|||
Loading…
Reference in New Issue