diff --git a/src/main/java/org/olat/modules/fo/export/FinishCallback.java b/src/main/java/org/olat/modules/fo/export/FinishCallback.java index 08f91424678d1ba9bc3c2f17226715cf3ce33cbd..513b04dc3effa01610795ad0e9febd3c90b2f017 100644 --- a/src/main/java/org/olat/modules/fo/export/FinishCallback.java +++ b/src/main/java/org/olat/modules/fo/export/FinishCallback.java @@ -63,26 +63,25 @@ public class FinishCallback implements StepRunnerCallback { mailService = CoreSpringFactory.getImpl(MailManager.class); } - @Override public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) { - FOCourseNode node = (FOCourseNode)runContext.get(SendMailStepForm.FORUM); + FOCourseNode targetNode = (FOCourseNode)runContext.get(SendMailStepForm.FORUM); ICourse course = (ICourse)runContext.get(SendMailStepForm.ICOURSE); CourseEnvironment courseEnv = course.getCourseEnvironment(); - Forum chosenforum = node.loadOrCreateForum(courseEnv); - Message msg = (Message)runContext.get(SendMailStepForm.MESSAGE_TO_MOVE); - msg = forumManager.getMessageById(msg.getKey()); + Forum chosenforum = targetNode.loadOrCreateForum(courseEnv); + Message msgToMove = (Message)runContext.get(SendMailStepForm.MESSAGE_TO_MOVE); + msgToMove = forumManager.getMessageById(msgToMove.getKey()); Message parentMessage = (Message)runContext.get(SendMailStepForm.PARENT_MESSAGE); if (parentMessage!= null) { parentMessage = forumManager.getMessageById(parentMessage.getKey()); } - if (msg.getParentKey() == null && msg.getThreadtop() == null) { - msg = forumManager.createOrAppendThreadInAnotherForum(msg, chosenforum, parentMessage); + if (msgToMove.getParentKey() == null && msgToMove.getThreadtop() == null) { + forumManager.createOrAppendThreadInAnotherForum(msgToMove, chosenforum, parentMessage); } else { - msg = forumManager.moveMessageToAnotherForum(msg, chosenforum, parentMessage); + forumManager.moveMessageToAnotherForum(msgToMove, chosenforum, parentMessage); } DBFactory.getInstance().commit();//commit before sending event - if ((Boolean)runContext.get(SendMailStepForm.SENDMAIL)) { + if (((Boolean)runContext.get(SendMailStepForm.SENDMAIL)).booleanValue()) { sendMail(ureq, wControl, runContext); } return StepsMainRunController.DONE_MODIFIED; diff --git a/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_de.properties index 23762952375720e3f3a46e700f8bfc0b5e10ae80..a183d309e4cd209cc419011b662d9063846dda21 100644 --- a/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/fo/export/_i18n/LocalStrings_de.properties @@ -3,8 +3,8 @@ step.select.forum=Forum ausw\u00E4hlen step.select.thread=Diskussionsfaden ausw\u00E4hlen step.select.comment=Kommentar ausw\u00E4hlen step.send.mail=Mail verschicken -forum.select=select -forum.forum=forum +forum.select=Ausw\u00E4hlen +forum.forum=Forum forum.thread=Diskussionsfaden forum.comment=Beitrag many.children.move=\n{0} Antworten werden mitverschoben. diff --git a/src/main/java/org/olat/modules/fo/ui/MessageListController.java b/src/main/java/org/olat/modules/fo/ui/MessageListController.java index 614812011b441eaba5e9848481ff974d6a8a3cc9..68894a3e09d1a56b260067bfa40d4ed2b5684099 100644 --- a/src/main/java/org/olat/modules/fo/ui/MessageListController.java +++ b/src/main/java/org/olat/modules/fo/ui/MessageListController.java @@ -37,6 +37,7 @@ import org.olat.core.commons.services.mark.MarkResourceStat; import org.olat.core.commons.services.mark.MarkingService; import org.olat.core.commons.services.mark.impl.ui.MarkedEvent; import org.olat.core.commons.services.mark.impl.ui.UnmarkedEvent; +import org.olat.core.commons.services.notifications.SubscriptionContext; import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.commons.services.vfs.VFSRepositoryService; import org.olat.core.dispatcher.mapper.Mapper; @@ -207,7 +208,7 @@ public class MessageListController extends BasicController implements GenericEve mainVC = createVelocityContainer("threadview"); mainVC.contextPut("threadMode", Boolean.TRUE); mainVC.contextPut("thumbMapper", thumbnailMapper); - mainVC.contextPut("guestOnly", new Boolean(guestOnly)); + mainVC.contextPut("guestOnly", Boolean.valueOf(guestOnly)); messageTableCtrl = new ForumMessageListController(ureq, getWindowControl(), forum, false, true, true); listenTo(messageTableCtrl); @@ -557,7 +558,7 @@ public class MessageListController extends BasicController implements GenericEve orderedList.add(message.getMessage()); } List<MessageNode> children = message.getChildren(); - if(children.size() > 0) { + if(!children.isEmpty()) { if(children.size() > 1) { Collections.sort(children); } @@ -816,8 +817,8 @@ public class MessageListController extends BasicController implements GenericEve private void doDeliverAttachment(UserRequest ureq, String cmd) { MediaResource res = null; try { - int index = cmd.lastIndexOf("_"); - String attachmentPosition = cmd.substring(cmd.indexOf("_") + 1, index); + int index = cmd.lastIndexOf('_'); + String attachmentPosition = cmd.substring(cmd.indexOf('_') + 1, index); String messageKey = cmd.substring(index + 1); int position = Integer.parseInt(attachmentPosition); @@ -1284,7 +1285,7 @@ public class MessageListController extends BasicController implements GenericEve mainVC.contextPut("mode", "one"); mainVC.contextPut("threadMode", Boolean.FALSE); - if(backupViews != null && backupViews.size() > 0) { + if(backupViews != null && !backupViews.isEmpty()) { List<MessageView> oneView = new ArrayList<>(1); oneView.add(backupViews.get(0)); mainVC.contextPut("messages", oneView); @@ -1315,7 +1316,7 @@ public class MessageListController extends BasicController implements GenericEve mainVC.contextPut("mode", "one"); mainVC.contextPut("threadMode", Boolean.FALSE); - if(backupViews != null && backupViews.size() > 0) { + if(backupViews != null && !backupViews.isEmpty()) { List<MessageView> oneView = new ArrayList<>(1); for(MessageView message:backupViews) { if(message.getKey().equals(messageKey)) { @@ -1323,7 +1324,7 @@ public class MessageListController extends BasicController implements GenericEve } } mainVC.contextPut("messages", oneView); - if(oneView.size() > 0) { + if(!oneView.isEmpty()) { messageTableCtrl.setSelectView(oneView.get(0)); } else { showWarning("error.message.deleted"); @@ -1409,18 +1410,11 @@ public class MessageListController extends BasicController implements GenericEve // starting thread runContext.put(SendMailStepForm.START_THREADTOP, message.getThreadtop() == null ? message : message.getThreadtop()); // get start course - PropertyManager propertyManager = PropertyManager.getInstance(); - Long forumResourceableId = forum.getResourceableId(); - Property forumproperty = propertyManager.getPropertyByLongValue(forumResourceableId, FOCourseNode.FORUM_KEY); - if (forumproperty != null) { - Long resourcetypeId = forumproperty.getResourceTypeId(); - String resourcetypeName = forumproperty.getResourceTypeName(); - OLATResourceable olatResourceable = olatManager.findResourceable(resourcetypeId, resourcetypeName); - RepositoryEntry startCourse = repositoryManager.lookupRepositoryEntry(olatResourceable, false); - if (startCourse != null) { - runContext.put(SendMailStepForm.START_COURSE, startCourse); - } + RepositoryEntry courseEntry = getStartCourse(); + if(courseEntry != null) { + runContext.put(SendMailStepForm.START_COURSE, courseEntry); } + listenTo(exportCtrl); getWindowControl().pushAsModalDialog(exportCtrl.getInitialComponent()); } else { @@ -1428,6 +1422,31 @@ public class MessageListController extends BasicController implements GenericEve } } + private RepositoryEntry getStartCourse() { + PropertyManager propertyManager = PropertyManager.getInstance(); + Long forumResourceableId = forum.getResourceableId(); + Property forumproperty = propertyManager.getPropertyByLongValue(forumResourceableId, FOCourseNode.FORUM_KEY); + if (forumproperty != null) { + Long resourcetypeId = forumproperty.getResourceTypeId(); + String resourcetypeName = forumproperty.getResourceTypeName(); + OLATResourceable olatResourceable = olatManager.findResourceable(resourcetypeId, resourcetypeName); + RepositoryEntry startCourse = repositoryManager.lookupRepositoryEntry(olatResourceable, false); + if (startCourse != null) { + return startCourse; + } + } + SubscriptionContext ctx = foCallback.getSubscriptionContext(); + if(ctx != null && "CourseModule".equals(ctx.getResName())) { + OLATResourceable olatResourceable = OresHelper.createOLATResourceableInstance("CourseModule", ctx.getResId()); + RepositoryEntry startCourse = repositoryManager.lookupRepositoryEntry(olatResourceable, false); + if (startCourse != null) { + return startCourse; + } + } + + return null; + } + private void doFinalizeMove(UserRequest ureq, MessageView messageToMove, Long parentMessageKey) { if (foCallback.mayEditMessageAsModerator()) { Message message = forumManager.getMessageById(messageToMove.getKey()); @@ -1445,12 +1464,8 @@ public class MessageListController extends BasicController implements GenericEve } private void doOpenVisitingCard(UserRequest ureq, Identity creator) { - ControllerCreator userInfoMainControllerCreator = new ControllerCreator() { - @Override - public Controller createController(UserRequest lureq, WindowControl lwControl) { - return new UserInfoMainController(lureq, lwControl, creator, true, false); - } - }; + ControllerCreator userInfoMainControllerCreator = (lureq, lwControl) + -> new UserInfoMainController(lureq, lwControl, creator, true, false); //wrap the content controller into a full header layout ControllerCreator layoutCtrlr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, userInfoMainControllerCreator); PopupBrowserWindow pbw = getWindowControl().getWindowBackOffice().getWindowManager().createNewPopupBrowserWindowFor(ureq, layoutCtrlr); diff --git a/src/main/java/org/olat/modules/fo/ui/_content/threadview.html b/src/main/java/org/olat/modules/fo/ui/_content/threadview.html index 75db1e12db6de48a999dc14a642858236aea4c64..660a24241b09973652e5302fe9e15d8e3b15bb42 100644 --- a/src/main/java/org/olat/modules/fo/ui/_content/threadview.html +++ b/src/main/java/org/olat/modules/fo/ui/_content/threadview.html @@ -146,9 +146,8 @@ #if($r.available("exile_${message.key}")) <div class="btn-group"> - <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> - <i class="o_icon o_icon-fw o_icon_actions"></i> - <span class="caret"></span> + <button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown"> + <i class="o_icon o_icon-fw o_icon_actions"> </i><span class="caret"> </span> </button> <ul class="dropdown-menu dropdown-menu-right"> #if($r.available("split_${message.key}"))