CCM NG: Content Section Kategorien Tab nicht aufrufbar wenn kein Kategoriensystem gemappt ist (#2799) behoben
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5336 8810af33-2d31-482b-a856-94f89814c4df
parent
8ef7fdd42f
commit
b433a81ae7
|
|
@ -39,6 +39,7 @@ import com.arsdigita.cms.ui.BaseAdminPane;
|
|||
import com.arsdigita.cms.ui.BaseDeleteForm;
|
||||
import com.arsdigita.cms.ui.BaseTree;
|
||||
import com.arsdigita.cms.ui.VisibilityComponent;
|
||||
import com.arsdigita.globalization.GlobalizedMessage;
|
||||
import com.arsdigita.toolbox.ui.ActionGroup;
|
||||
import com.arsdigita.toolbox.ui.Section;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
|
@ -54,6 +55,7 @@ import org.libreccm.categorization.DomainRepository;
|
|||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.libreccm.core.UnexpectedErrorException;
|
||||
import org.libreccm.security.PermissionChecker;
|
||||
import org.librecms.CmsConstants;
|
||||
import org.librecms.contentsection.ContentSection;
|
||||
import org.librecms.contentsection.privileges.AdminPrivileges;
|
||||
|
||||
|
|
@ -72,6 +74,8 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
public static final String CONTEXT_SELECTED = "sel_context";
|
||||
// private static final String DEFAULT_USE_CONTEXT = "<default>";
|
||||
|
||||
private final Label noCategorySystemsLabel;
|
||||
|
||||
private final SingleSelectionModel<String> selectedCategorySystem;
|
||||
private final SingleSelectionModel<String> selectedCategory;
|
||||
|
||||
|
|
@ -156,6 +160,10 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
getAddLink(),
|
||||
getEditLink(),
|
||||
getDeleteLink()));
|
||||
|
||||
noCategorySystemsLabel = new Label(new GlobalizedMessage(
|
||||
"cms.ui.category.no_category_systems_mapped",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -165,6 +173,49 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
//page.addActionListener(new RootListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateXML(final PageState state, final Element parent) {
|
||||
|
||||
if (isVisible(state)) {
|
||||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final ContentSection section = CMS.getContext().getContentSection();
|
||||
final CategoryAdminController controller = cdiUtil
|
||||
.findBean(CategoryAdminController.class);
|
||||
final java.util.List<DomainOwnership> ownerships
|
||||
= controller
|
||||
.retrieveDomains(section);
|
||||
if (ownerships == null || ownerships.isEmpty()) {
|
||||
final Element panelElem = parent
|
||||
.newChildElement("bebop:layoutPanel",
|
||||
BEBOP_XML_NS);
|
||||
final Element bodyElem = panelElem.newChildElement("bebop:body",
|
||||
BEBOP_XML_NS);
|
||||
noCategorySystemsLabel.generateXML(state, bodyElem);
|
||||
} else {
|
||||
noCategorySystemsLabel.setVisible(state, false);
|
||||
super.generateXML(state, parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public boolean isVisible(final PageState state) {
|
||||
//
|
||||
// final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
// final ContentSection section = CMS.getContext().getContentSection();
|
||||
// final CategoryAdminController controller = cdiUtil
|
||||
// .findBean(CategoryAdminController.class);
|
||||
// final java.util.List<DomainOwnership> ownerships
|
||||
// = controller
|
||||
// .retrieveDomains(section);
|
||||
//
|
||||
// if (ownerships == null || ownerships.isEmpty()) {
|
||||
// return false;
|
||||
// } else {
|
||||
// return super.isVisible(state);
|
||||
// }
|
||||
// }
|
||||
private final class DeleteLink extends ActionLink {
|
||||
|
||||
private final Label m_alternativeLabel;
|
||||
|
|
@ -176,9 +227,9 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
|
||||
@Override
|
||||
public void generateXML(final PageState state, final Element parent) {
|
||||
|
||||
if (!isVisible(state)) {
|
||||
return;
|
||||
|
||||
if (isVisible(state)) {
|
||||
super.generateXML(state, parent);
|
||||
}
|
||||
|
||||
//Category cat = m_category.getCategory(state);
|
||||
|
|
@ -188,7 +239,7 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
//if (cat.isRoot() || !cat.getChildren().isEmpty()) {
|
||||
// m_alternativeLabel.generateXML(state, parent);
|
||||
//} else {
|
||||
super.generateXML(state, parent);
|
||||
//
|
||||
//}
|
||||
}
|
||||
|
||||
|
|
@ -228,7 +279,6 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
|
||||
@Override
|
||||
public final void process(final FormSectionEvent event)
|
||||
|
||||
throws FormProcessException {
|
||||
final PageState state = event.getPageState();
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
|
|
@ -272,7 +322,7 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
|
||||
@Override
|
||||
protected final Object initialValue(final PageState state) {
|
||||
|
||||
|
||||
final String selectedCatetoryIdStr = selectedCategory
|
||||
.getSelectedKey(state);
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
|
|
@ -318,7 +368,7 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
// }
|
||||
//
|
||||
// }
|
||||
private class UseContextSelectionModel
|
||||
private class UseContextSelectionModel
|
||||
extends ParameterSingleSelectionModel<String> {
|
||||
|
||||
public UseContextSelectionModel(final ParameterModel parameterModel) {
|
||||
|
|
@ -334,17 +384,24 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
|||
|| val.matches("\\s*")) {
|
||||
|
||||
final ContentSection section = CMS
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final CategoryAdminController controller = cdiUtil
|
||||
.findBean(CategoryAdminController.class);
|
||||
final Domain categorySystem = controller
|
||||
.retrieveDomains(section).get(0).getDomain();
|
||||
val = Long.toString(categorySystem.getObjectId());
|
||||
|
||||
state.setValue(getStateParameter(), val);
|
||||
fireStateChanged(state);
|
||||
.findBean(CategoryAdminController.class);
|
||||
final java.util.List<DomainOwnership> domainOwnerships
|
||||
= controller
|
||||
.retrieveDomains(section);
|
||||
if (domainOwnerships == null || domainOwnerships.isEmpty()) {
|
||||
val = null;
|
||||
} else {
|
||||
final Domain categorySystem = controller
|
||||
.retrieveDomains(section).get(0).getDomain();
|
||||
val = Long.toString(categorySystem.getObjectId());
|
||||
|
||||
state.setValue(getStateParameter(), val);
|
||||
fireStateChanged(state);
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,13 +64,17 @@ class CategoryTreeModelBuilder extends LockableImpl
|
|||
final Category root;
|
||||
|
||||
if (selectedCategorySystem.getSelectedKey(state) == null) {
|
||||
final ContentSection section =CMS.getContext().getContentSection();
|
||||
final ContentSection section = CMS.getContext().getContentSection();
|
||||
final CategoryAdminController controller = cdiUtil
|
||||
.findBean(CategoryAdminController.class);
|
||||
final java.util.List<DomainOwnership> ownerships
|
||||
= controller
|
||||
.retrieveDomains(section);
|
||||
root = ownerships.get(0).getDomain().getRoot();
|
||||
if (ownerships == null || ownerships.isEmpty()) {
|
||||
root = null;
|
||||
} else {
|
||||
root = ownerships.get(0).getDomain().getRoot();
|
||||
}
|
||||
} else {
|
||||
final DomainRepository domainRepo = cdiUtil
|
||||
.findBean(DomainRepository.class);
|
||||
|
|
|
|||
|
|
@ -527,3 +527,4 @@ cms.ui.permissions.table.privilege.headers.delete_assets=Delete assets
|
|||
cms.ui.permissions.table.privilege.headers.edit_asset=
|
||||
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
||||
cms.ui.permissions.table.privilege.headers.view_asset=View assets
|
||||
cms.ui.category.no_category_systems_mapped=No category systems have been assigned to this Content Section
|
||||
|
|
|
|||
|
|
@ -524,3 +524,4 @@ cms.ui.permissions.table.privilege.headers.delete_assets=Assets l\u00f6schen
|
|||
cms.ui.permissions.table.privilege.headers.edit_asset=Assets bearbeiten
|
||||
cms.ui.permissions.table.privilege.headers.use_asset=Assets verwenden
|
||||
cms.ui.permissions.table.privilege.headers.view_asset=Assets ansehen
|
||||
cms.ui.category.no_category_systems_mapped=Dieser Content Section wurden keine Kategoriensysteme zugeordnet
|
||||
|
|
|
|||
|
|
@ -486,3 +486,4 @@ cms.ui.permissions.table.privilege.headers.delete_assets=Delete assets
|
|||
cms.ui.permissions.table.privilege.headers.edit_asset=Edit assets
|
||||
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
||||
cms.ui.permissions.table.privilege.headers.view_asset=View assets
|
||||
cms.ui.category.no_category_systems_mapped=No category systems have been assigned to this Content Section
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ public class CategoryTreeModelLite implements TreeModel {
|
|||
private TreeNode buildTreeNode(final Category category) {
|
||||
return new CategoryTreeNode(category);
|
||||
}
|
||||
|
||||
|
||||
private class CategoryTreeNode implements TreeNode {
|
||||
|
||||
private final Category category;
|
||||
|
|
@ -130,7 +130,11 @@ public class CategoryTreeModelLite implements TreeModel {
|
|||
|
||||
@Override
|
||||
public Object getKey() {
|
||||
return category.getObjectId();
|
||||
if (category == null) {
|
||||
return null;
|
||||
} else {
|
||||
return category.getObjectId();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
create table CCM_CORE.THEME_DATA_FILES (
|
||||
CREATION_DATE timestamp,
|
||||
FILE_DATA blob,
|
||||
FILE_DATA oid,
|
||||
LAST_MODIFIED timestamp,
|
||||
FILE_SIZE bigint,
|
||||
TYPE varchar(255),
|
||||
|
|
@ -33,26 +33,6 @@
|
|||
);
|
||||
|
||||
|
||||
alter table CCM_CORE.THEME_DATA_FILES
|
||||
add constraint FK630m2y2p7pp487ofowbefrm89
|
||||
foreign key (FILE_ID)
|
||||
references CCM_CORE.THEME_FILES;
|
||||
|
||||
alter table CCM_CORE.theme_directories
|
||||
add constraint FKrmgyslvw22j87n4cxau5jvsou
|
||||
foreign key (FILE_ID)
|
||||
references CCM_CORE.THEME_FILES;
|
||||
|
||||
alter table CCM_CORE.THEME_FILES
|
||||
add constraint FKfsycb4bt8d0wye7r3n06ekfeu
|
||||
foreign key (PARENT_DIRECTORY_ID)
|
||||
references CCM_CORE.theme_directories;
|
||||
|
||||
alter table CCM_CORE.THEMES
|
||||
add constraint FKlat55c5l3fxbykkibrmv7qi4x
|
||||
foreign key (ROOT_DIRECTORY_ID)
|
||||
references CCM_CORE.theme_directories;
|
||||
|
||||
alter table CCM_CORE.THEME_DATA_FILES
|
||||
add constraint FK630m2y2p7pp487ofowbefrm89
|
||||
foreign key (FILE_ID)
|
||||
|
|
|
|||
Loading…
Reference in New Issue