Skip to content
Snippets Groups Projects
Commit 701b46c2 authored by uhensler's avatar uhensler
Browse files

OO-4569: Show edit option when sharing a question to a group / pool

parent c781ad9b
No related branches found
No related tags found
No related merge requests found
...@@ -125,6 +125,7 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -125,6 +125,7 @@ public class QuestionItemDetailsController extends BasicController implements To
private DeleteConfirmationController deleteConfirmationCtrl; private DeleteConfirmationController deleteConfirmationCtrl;
private SelectBusinessGroupController selectGroupCtrl; private SelectBusinessGroupController selectGroupCtrl;
private PoolsController selectPoolCtrl; private PoolsController selectPoolCtrl;
private ShareItemOptionController shareItemsCtrl;
private final QPoolSecurityCallback qPoolSecurityCallback; private final QPoolSecurityCallback qPoolSecurityCallback;
private final QuestionItemsSource itemSource; private final QuestionItemsSource itemSource;
...@@ -475,17 +476,15 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -475,17 +476,15 @@ public class QuestionItemDetailsController extends BasicController implements To
cmc.deactivate(); cmc.deactivate();
cleanUp(); cleanUp();
} else if(source == selectGroupCtrl) { } else if(source == selectGroupCtrl) {
cmc.deactivate();
if(event instanceof BusinessGroupSelectionEvent) { if(event instanceof BusinessGroupSelectionEvent) {
BusinessGroupSelectionEvent bge = (BusinessGroupSelectionEvent)event; BusinessGroupSelectionEvent bge = (BusinessGroupSelectionEvent)event;
List<BusinessGroup> groups = bge.getGroups(); List<BusinessGroup> groups = bge.getGroups();
if(groups.size() > 0) { if(groups.size() > 0) {
QuestionItem item = (QuestionItem)((SelectBusinessGroupController)source).getUserObject(); QuestionItem item = (QuestionItem)((SelectBusinessGroupController)source).getUserObject();
doShareItemsWithGroup(ureq, item, groups); doShareItemsToGroups(ureq, Collections.singletonList(item), groups);
metadatasCtrl.updateShares();
} }
} }
cmc.deactivate();
cleanUp();
} else if (source == selectPoolCtrl) { } else if (source == selectPoolCtrl) {
cmc.deactivate(); cmc.deactivate();
if(event instanceof QPoolSelectionEvent) { if(event instanceof QPoolSelectionEvent) {
...@@ -493,10 +492,15 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -493,10 +492,15 @@ public class QuestionItemDetailsController extends BasicController implements To
List<Pool> pools = qpe.getPools(); List<Pool> pools = qpe.getPools();
if(pools.size() > 0) { if(pools.size() > 0) {
QuestionItemShort item = (QuestionItemShort)selectPoolCtrl.getUserObject(); QuestionItemShort item = (QuestionItemShort)selectPoolCtrl.getUserObject();
doShareItemsWithPool(ureq, item, pools); doShareItemsToPools(ureq, Collections.singletonList(item), pools);
metadatasCtrl.updateShares();
} }
} }
} else if(source == shareItemsCtrl) {
if(event instanceof QPoolEvent) {
metadatasCtrl.updateShares();
fireEvent(ureq, event);
}
cmc.deactivate();
cleanUp(); cleanUp();
} else if (source == reviewActionCtrl) { } else if (source == reviewActionCtrl) {
if (QItemReviewEvent.START.equals(event.getCommand())) { if (QItemReviewEvent.START.equals(event.getCommand())) {
...@@ -559,6 +563,7 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -559,6 +563,7 @@ public class QuestionItemDetailsController extends BasicController implements To
removeAsListenerAndDispose(reviewStartCtrl); removeAsListenerAndDispose(reviewStartCtrl);
removeAsListenerAndDispose(deleteConfirmationCtrl); removeAsListenerAndDispose(deleteConfirmationCtrl);
removeAsListenerAndDispose(confirmEndOfLifeCtrl); removeAsListenerAndDispose(confirmEndOfLifeCtrl);
removeAsListenerAndDispose(shareItemsCtrl);
cmc = null; cmc = null;
copyConfirmationCtrl = null; copyConfirmationCtrl = null;
conversionConfirmationCtrl = null; conversionConfirmationCtrl = null;
...@@ -568,6 +573,7 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -568,6 +573,7 @@ public class QuestionItemDetailsController extends BasicController implements To
reviewStartCtrl = null; reviewStartCtrl = null;
deleteConfirmationCtrl = null; deleteConfirmationCtrl = null;
confirmEndOfLifeCtrl = null; confirmEndOfLifeCtrl = null;
shareItemsCtrl = null;
} }
private void doConfirmStartReview(UserRequest ureq) { private void doConfirmStartReview(UserRequest ureq) {
...@@ -748,14 +754,40 @@ public class QuestionItemDetailsController extends BasicController implements To ...@@ -748,14 +754,40 @@ public class QuestionItemDetailsController extends BasicController implements To
listenTo(cmc); listenTo(cmc);
} }
private void doShareItemsWithGroup(UserRequest ureq, QuestionItemShort item, List<BusinessGroup> groups) { private void doShareItemsToGroups(UserRequest ureq, List<QuestionItemShort> items, List<BusinessGroup> groups) {
qpoolService.shareItemsWithGroups(Collections.singletonList(item), groups, false); removeAsListenerAndDispose(shareItemsCtrl);
fireEvent(ureq, new QPoolEvent(QPoolEvent.ITEM_SHARED)); shareItemsCtrl = new ShareItemOptionController(ureq, getWindowControl(), items, groups, null);
listenTo(shareItemsCtrl);
String title;
if (groups != null && groups.size() == 1) {
title = translate("share.item.group", new String[] {groups.get(0).getName()});
} else {
title = translate("share.item.groups");
}
cmc = new CloseableModalController(getWindowControl(), translate("close"),
shareItemsCtrl.getInitialComponent(), true, title);
cmc.activate();
listenTo(cmc);
} }
private void doShareItemsWithPool(UserRequest ureq, QuestionItemShort item, List<Pool> pools) { private void doShareItemsToPools(UserRequest ureq, List<QuestionItemShort> items, List<Pool> pools) {
qpoolService.addItemsInPools(Collections.singletonList(item), pools, false); removeAsListenerAndDispose(shareItemsCtrl);
fireEvent(ureq, new QPoolEvent(QPoolEvent.ITEM_SHARED)); shareItemsCtrl = new ShareItemOptionController(ureq, getWindowControl(), items, null, pools);
listenTo(shareItemsCtrl);
String title;
if (pools != null && pools.size() == 1) {
title = translate("share.item.pool", new String[] {pools.get(0).getName()});
} else {
title = translate("share.item.pools");
}
cmc = new CloseableModalController(getWindowControl(), translate("close"),
shareItemsCtrl.getInitialComponent(), true, title);
cmc.activate();
listenTo(cmc);
} }
private void doConfirmDelete(UserRequest ureq, QuestionItem item) { private void doConfirmDelete(UserRequest ureq, QuestionItem item) {
......
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