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-94f89814c4dfpull/2/head
parent
bc0e922d00
commit
4ea04b6244
|
|
@ -39,6 +39,7 @@ import com.arsdigita.cms.ui.BaseAdminPane;
|
||||||
import com.arsdigita.cms.ui.BaseDeleteForm;
|
import com.arsdigita.cms.ui.BaseDeleteForm;
|
||||||
import com.arsdigita.cms.ui.BaseTree;
|
import com.arsdigita.cms.ui.BaseTree;
|
||||||
import com.arsdigita.cms.ui.VisibilityComponent;
|
import com.arsdigita.cms.ui.VisibilityComponent;
|
||||||
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.toolbox.ui.ActionGroup;
|
import com.arsdigita.toolbox.ui.ActionGroup;
|
||||||
import com.arsdigita.toolbox.ui.Section;
|
import com.arsdigita.toolbox.ui.Section;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
|
|
@ -54,6 +55,7 @@ import org.libreccm.categorization.DomainRepository;
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import org.libreccm.core.UnexpectedErrorException;
|
import org.libreccm.core.UnexpectedErrorException;
|
||||||
import org.libreccm.security.PermissionChecker;
|
import org.libreccm.security.PermissionChecker;
|
||||||
|
import org.librecms.CmsConstants;
|
||||||
import org.librecms.contentsection.ContentSection;
|
import org.librecms.contentsection.ContentSection;
|
||||||
import org.librecms.contentsection.privileges.AdminPrivileges;
|
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";
|
public static final String CONTEXT_SELECTED = "sel_context";
|
||||||
// private static final String DEFAULT_USE_CONTEXT = "<default>";
|
// private static final String DEFAULT_USE_CONTEXT = "<default>";
|
||||||
|
|
||||||
|
private final Label noCategorySystemsLabel;
|
||||||
|
|
||||||
private final SingleSelectionModel<String> selectedCategorySystem;
|
private final SingleSelectionModel<String> selectedCategorySystem;
|
||||||
private final SingleSelectionModel<String> selectedCategory;
|
private final SingleSelectionModel<String> selectedCategory;
|
||||||
|
|
||||||
|
|
@ -156,6 +160,10 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
getAddLink(),
|
getAddLink(),
|
||||||
getEditLink(),
|
getEditLink(),
|
||||||
getDeleteLink()));
|
getDeleteLink()));
|
||||||
|
|
||||||
|
noCategorySystemsLabel = new Label(new GlobalizedMessage(
|
||||||
|
"cms.ui.category.no_category_systems_mapped",
|
||||||
|
CmsConstants.CMS_BUNDLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -165,6 +173,49 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
//page.addActionListener(new RootListener());
|
//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 class DeleteLink extends ActionLink {
|
||||||
|
|
||||||
private final Label m_alternativeLabel;
|
private final Label m_alternativeLabel;
|
||||||
|
|
@ -177,8 +228,8 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
@Override
|
@Override
|
||||||
public void generateXML(final PageState state, final Element parent) {
|
public void generateXML(final PageState state, final Element parent) {
|
||||||
|
|
||||||
if (!isVisible(state)) {
|
if (isVisible(state)) {
|
||||||
return;
|
super.generateXML(state, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Category cat = m_category.getCategory(state);
|
//Category cat = m_category.getCategory(state);
|
||||||
|
|
@ -188,7 +239,7 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
//if (cat.isRoot() || !cat.getChildren().isEmpty()) {
|
//if (cat.isRoot() || !cat.getChildren().isEmpty()) {
|
||||||
// m_alternativeLabel.generateXML(state, parent);
|
// m_alternativeLabel.generateXML(state, parent);
|
||||||
//} else {
|
//} else {
|
||||||
super.generateXML(state, parent);
|
//
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -228,7 +279,6 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void process(final FormSectionEvent event)
|
public final void process(final FormSectionEvent event)
|
||||||
|
|
||||||
throws FormProcessException {
|
throws FormProcessException {
|
||||||
final PageState state = event.getPageState();
|
final PageState state = event.getPageState();
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
|
@ -334,17 +384,24 @@ public final class CategoryAdminPane extends BaseAdminPane<String> {
|
||||||
|| val.matches("\\s*")) {
|
|| val.matches("\\s*")) {
|
||||||
|
|
||||||
final ContentSection section = CMS
|
final ContentSection section = CMS
|
||||||
.getContext()
|
.getContext()
|
||||||
.getContentSection();
|
.getContentSection();
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final CategoryAdminController controller = cdiUtil
|
final CategoryAdminController controller = cdiUtil
|
||||||
.findBean(CategoryAdminController.class);
|
.findBean(CategoryAdminController.class);
|
||||||
final Domain categorySystem = controller
|
final java.util.List<DomainOwnership> domainOwnerships
|
||||||
.retrieveDomains(section).get(0).getDomain();
|
= controller
|
||||||
val = Long.toString(categorySystem.getObjectId());
|
.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);
|
state.setValue(getStateParameter(), val);
|
||||||
fireStateChanged(state);
|
fireStateChanged(state);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,13 +64,17 @@ class CategoryTreeModelBuilder extends LockableImpl
|
||||||
final Category root;
|
final Category root;
|
||||||
|
|
||||||
if (selectedCategorySystem.getSelectedKey(state) == null) {
|
if (selectedCategorySystem.getSelectedKey(state) == null) {
|
||||||
final ContentSection section =CMS.getContext().getContentSection();
|
final ContentSection section = CMS.getContext().getContentSection();
|
||||||
final CategoryAdminController controller = cdiUtil
|
final CategoryAdminController controller = cdiUtil
|
||||||
.findBean(CategoryAdminController.class);
|
.findBean(CategoryAdminController.class);
|
||||||
final java.util.List<DomainOwnership> ownerships
|
final java.util.List<DomainOwnership> ownerships
|
||||||
= controller
|
= controller
|
||||||
.retrieveDomains(section);
|
.retrieveDomains(section);
|
||||||
root = ownerships.get(0).getDomain().getRoot();
|
if (ownerships == null || ownerships.isEmpty()) {
|
||||||
|
root = null;
|
||||||
|
} else {
|
||||||
|
root = ownerships.get(0).getDomain().getRoot();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
final DomainRepository domainRepo = cdiUtil
|
final DomainRepository domainRepo = cdiUtil
|
||||||
.findBean(DomainRepository.class);
|
.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.edit_asset=
|
||||||
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
||||||
cms.ui.permissions.table.privilege.headers.view_asset=View 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.edit_asset=Assets bearbeiten
|
||||||
cms.ui.permissions.table.privilege.headers.use_asset=Assets verwenden
|
cms.ui.permissions.table.privilege.headers.use_asset=Assets verwenden
|
||||||
cms.ui.permissions.table.privilege.headers.view_asset=Assets ansehen
|
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.edit_asset=Edit assets
|
||||||
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
cms.ui.permissions.table.privilege.headers.use_asset=Use assets
|
||||||
cms.ui.permissions.table.privilege.headers.view_asset=View 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
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,11 @@ public class CategoryTreeModelLite implements TreeModel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getKey() {
|
public Object getKey() {
|
||||||
return category.getObjectId();
|
if (category == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return category.getObjectId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
create table CCM_CORE.THEME_DATA_FILES (
|
create table CCM_CORE.THEME_DATA_FILES (
|
||||||
CREATION_DATE timestamp,
|
CREATION_DATE timestamp,
|
||||||
FILE_DATA blob,
|
FILE_DATA oid,
|
||||||
LAST_MODIFIED timestamp,
|
LAST_MODIFIED timestamp,
|
||||||
FILE_SIZE bigint,
|
FILE_SIZE bigint,
|
||||||
TYPE varchar(255),
|
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
|
alter table CCM_CORE.THEME_DATA_FILES
|
||||||
add constraint FK630m2y2p7pp487ofowbefrm89
|
add constraint FK630m2y2p7pp487ofowbefrm89
|
||||||
foreign key (FILE_ID)
|
foreign key (FILE_ID)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue