diff --git a/src/main/java/org/olat/ims/cp/ui/CPEditMainController.java b/src/main/java/org/olat/ims/cp/ui/CPEditMainController.java index 7a1c65650326ba64e439d5d6372efc85662e1208..2fe2403e12ea68afbf12927201d38a80565f8091 100644 --- a/src/main/java/org/olat/ims/cp/ui/CPEditMainController.java +++ b/src/main/java/org/olat/ims/cp/ui/CPEditMainController.java @@ -170,7 +170,7 @@ public class CPEditMainController extends MainLayoutBasicController { String newIdentifier = treeCtr.addNewHTMLPage(); contentCtr.displayPageWithMetadataEditor(ureq, newIdentifier); } else if (event instanceof NewCPPageEvent) { - contentCtr.displayPage(ureq, ((NewCPPageEvent) event).getCPPage().getIdentifier()); + contentCtr.displayPageWithMetadataEditor(ureq, ((NewCPPageEvent) event).getCPPage().getIdentifier()); } } else if (source == contentCtr) { // event from contentController diff --git a/src/main/java/org/olat/ims/cp/ui/CPTreeController.java b/src/main/java/org/olat/ims/cp/ui/CPTreeController.java index 9126acd9ee6ceb907eed2474efa70cd61077e1ca..7eaa6876e7526a8519d7b9874e183711f5ca05a1 100644 --- a/src/main/java/org/olat/ims/cp/ui/CPTreeController.java +++ b/src/main/java/org/olat/ims/cp/ui/CPTreeController.java @@ -98,6 +98,7 @@ public class CPTreeController extends BasicController { treeCtr.setDropEnabled(true); treeCtr.setDropSiblingEnabled(true); treeCtr.setDndAcceptJSMethod("treeAcceptDrop_notWithChildren"); + treeCtr.setExpandSelectedNode(false); treeCtr.addListener(this); setLinks(); @@ -248,10 +249,7 @@ public class CPTreeController extends BasicController { String nodeIdentifier = treeModel.getIdentifierForNodeID(nodeId); CPPage page = new CPPage(nodeIdentifier, cp); page.setTitle(title); - if (page.isOrgaPage()) { - updateTree(); - } - updatePage(page); + updatePage(page); // will update also tree } /** @@ -372,17 +370,17 @@ public class CPTreeController extends BasicController { uploadCtr = null; } } else if (source == uploadCtr) { - if (event instanceof NewCPPageEvent) { - // TODO:GW Is it necessary to set component dirty? - // getInitialComponent().setDirty(true); - fireEvent(ureq, event); - } - // Dispose the cmc and the podcastFormCtr. + // Dispose the cmc and the podcastFormCtr first so modal dialog is free for metadata dialog cmc.deactivate(); removeAsListenerAndDispose(cmc); cmc = null; removeAsListenerAndDispose(uploadCtr); uploadCtr = null; + // Forward event to main controller + if (event instanceof NewCPPageEvent) { + fireEvent(ureq, event); + updateTree(); + } } else if (source == dialogCtr) { // event from dialog (really-delete-dialog) if (event != Event.CANCELLED_EVENT) {