Skip to content
Snippets Groups Projects
Commit 14a785b1 authored by srosse's avatar srosse
Browse files

OO-1202: ask if the item is editable if droppped on a group or a pool

parent e1d024c0
No related branches found
No related tags found
No related merge requests found
......@@ -2022,12 +2022,6 @@
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.7</version>
<exclusions><!-- use only xmlpull -->
<exclusion>
<artifactId>xpp3</artifactId>
<groupId>xpp3_min</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>xerces</groupId>
......
......@@ -41,6 +41,7 @@ import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
import org.olat.core.gui.control.generic.dtabs.Activateable2;
import org.olat.core.gui.control.generic.modal.DialogBoxController;
import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
......@@ -93,11 +94,13 @@ public class QuestionPoolMainEditorController extends BasicController implements
private QuestionsController markedQuestionsCtrl;
private Controller presentationCtrl, sharePresentationCtrl;
private CloseableModalController cmc;
private PoolsAdminController poolAdminCtrl;
private QItemTypesAdminController typesCtrl;
private QEducationalContextsAdminController levelsCtrl;
private QLicensesAdminController licensesCtrl;
private TaxonomyAdminController taxonomyCtrl;
private ShareItemOptionController shareItemsCtrl;
private LayoutMain3ColsController columnLayoutCtr;
private QuestionPoolAdminStatisticsController adminStatisticsCtrl;
private DialogBoxController copyToMyCtrl;
......@@ -203,7 +206,23 @@ public class QuestionPoolMainEditorController extends BasicController implements
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if(event instanceof QPoolEvent) {
if(shareItemsCtrl == source) {
if(QPoolEvent.ITEM_SHARED.equals(event.getCommand())) {
List<QuestionItemShort> items = shareItemsCtrl.getItems();
if(items.size() > 0) {//can only drop one item
QuestionItemShort item = items.get(0);
if(shareItemsCtrl.getGroups() != null) {
showInfo("item.shared", item.getTitle());
} else if(shareItemsCtrl.getPools() != null) {
showInfo("item.pooled", item.getTitle());
}
}
buildShareSubTreeModel(sharesNode);
menuTree.setDirty(true);
}
cmc.deactivate();
cleanUp();
} else if(event instanceof QPoolEvent) {
if(QPoolEvent.ITEM_SHARED.equals(event.getCommand())) {
buildShareSubTreeModel(sharesNode);
menuTree.setDirty(true);
......@@ -232,9 +251,18 @@ public class QuestionPoolMainEditorController extends BasicController implements
QuestionItemShort item = (QuestionItemShort)copyToMyCtrl.getUserObject();
doCopyToMy(ureq, item);
}
} else if(cmc == source) {
cleanUp();
}
super.event(ureq, source, event);
}
private void cleanUp() {
removeAsListenerAndDispose(shareItemsCtrl);
removeAsListenerAndDispose(cmc);
shareItemsCtrl = null;
cmc = null;
}
@Override
public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
......@@ -265,11 +293,9 @@ public class QuestionPoolMainEditorController extends BasicController implements
if(node != null) {
Object userObj = node.getUserObject();
if(userObj instanceof BusinessGroup) {
qpoolService.shareItemsWithGroups(singletonList(item), singletonList((BusinessGroup)userObj), false);
showInfo("item.shared", item.getTitle());
doShareItemsOptions(ureq, singletonList(item), singletonList((BusinessGroup)userObj), null);
} else if(userObj instanceof Pool) {
qpoolService.addItemsInPools(singletonList(item), singletonList((Pool)userObj), false);
showInfo("item.pooled", item.getTitle());
doShareItemsOptions(ureq, singletonList(item), null, singletonList((Pool)userObj));
} else if(userObj instanceof QuestionItemCollection) {
qpoolService.addItemToCollection(singletonList(item), singletonList((QuestionItemCollection)userObj));
showInfo("item.collectioned", item.getTitle());
......@@ -287,6 +313,18 @@ public class QuestionPoolMainEditorController extends BasicController implements
}
}
private void doShareItemsOptions(UserRequest ureq, List<QuestionItemShort> items, List<BusinessGroup> groups, List<Pool> pools) {
removeAsListenerAndDispose(cmc);
removeAsListenerAndDispose(shareItemsCtrl);
shareItemsCtrl = new ShareItemOptionController(ureq, getWindowControl(), items, groups, pools);
listenTo(shareItemsCtrl);
cmc = new CloseableModalController(getWindowControl(), translate("close"),
shareItemsCtrl.getInitialComponent(), true, translate("share.item"));
cmc.activate();
listenTo(cmc);
}
private void doCopyToMyConfirmation(UserRequest ureq, QuestionItemShort item) {
String title = translate("copy");
String text = translate("copy.confirmation");
......
......@@ -64,6 +64,18 @@ public class ShareItemOptionController extends FormBasicController {
initForm(ureq);
}
public List<QuestionItemShort> getItems() {
return items;
}
public List<Pool> getPools() {
return pools;
}
public List<BusinessGroup> getGroups() {
return groups;
}
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment