/** * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) */ public void event(UserRequest ureq, Controller source, Event event) { if (source == tableCtr) { if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { TableEvent te = (TableEvent) event; LockEntry lockToRelease = locksTableModel.getObject(te.getRowId()); dialogController = activateYesNoDialog(ureq, null, translate("lock.release.sure"), dialogController); dialogController.setUserObject(lockToRelease); } } else if (source == dialogController) { if (DialogBoxUIFactory.isYesEvent(event)) { LockEntry lockToRelease = (LockEntry) dialogController.getUserObject(); MultiUserEvent mue = new LockRemovedEvent(lockToRelease); OLATResourceable lockEntryOres = OresHelper.createOLATResourceableInstance(LockEntry.class, 0l); CoordinatorManager.getInstance() .getCoordinator() .getEventBus() .fireEventToListenersOf(mue, lockEntryOres); CoordinatorManager.getInstance() .getCoordinator() .getLocker() .releaseLockEntry(lockToRelease); lockToRelease = null; resetTableModel(); } } }
public void event(UserRequest ureq, Controller source, Event event) { if (source == tableCtr) { if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { TableEvent te = (TableEvent) event; if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) { int rowid = te.getRowId(); Identity foundIdentity = tdm.getObject(rowid); UserDeletionManager.getInstance().setIdentityAsActiv(foundIdentity); updateUserList(); } } else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) { TableMultiSelectEvent tmse = (TableMultiSelectEvent) event; if (tmse.getAction().equals(ACTION_MULTISELECT_CHOOSE)) { handleDeleteButtonEvent(ureq, tmse); } } } else if (source == deleteConfirmController) { if (DialogBoxUIFactory.isOkEvent(event)) { List<String> errors = new ArrayList<String>(); deleteIdentities(readyToDeleteIdentities, errors); if (errors.isEmpty()) { showInfo("deleted.feedback.msg"); } else { StringBuilder sb = new StringBuilder(); for (String error : errors) { if (sb.length() > 0) sb.append(", "); sb.append(error); } showWarning("error.delete", sb.toString()); } initializeContent(); } } }
/** * @see * org.olat.core.gui.control.ControllerEventListener#dispatchEvent(org.olat.core.gui.UserRequest, * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) */ public void event(UserRequest ureq, Controller source, Event event) { super.event(ureq, source, event); if (source == tableCtr) { if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { TableEvent te = (TableEvent) event; String actionid = te.getActionId(); if (actionid.equals(CMD_LAUNCH)) { int rowid = te.getRowId(); Subscriber sub = notificationListModel.getSubscriberAt(rowid); if (actionid.equals(CMD_LAUNCH)) { NotificationUIFactory.launchSubscriptionResource(ureq, getWindowControl(), sub); } } } } }
@Override public void event(UserRequest ureq, Controller source, Event event) { if (source == tableListParticipants) { if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { TableEvent tableEvent = (TableEvent) event; // open window for choosen date to manage the enrolled users or manually add if (tableEvent.getActionId().equals(DENListTableDataModel.CHANGE_ACTION)) { selectedEvent = (KalendarEvent) listTableData.getObject(tableEvent.getRowId()); List<Identity> participants = denManager.getEventParticipants(selectedEvent); participantsTableData = new DENParticipantsTableDataModel(participants); removeAsListenerAndDispose(tableManageParticipants); tableManageParticipants = denManager.createParticipantsTable( ureq, getWindowControl(), getTranslator(), participantsTableData); listenTo(tableManageParticipants); removeAsListenerAndDispose(formManageParticipants); formManageParticipants = new DENManageParticipantsForm(ureq, getWindowControl()); listenTo(formManageParticipants); participantsVC = createVelocityContainer("participants"); SimpleText dateTitle = new SimpleText( "dateTitle", translate("dates.table.subject") + ": " + selectedEvent.getSubject()); DateFormat df = new SimpleDateFormat(); SimpleText dateTimeframe = new SimpleText( "dateTimeframe", translate("dates.table.date") + ": " + df.format(selectedEvent.getBegin()) + " - " + df.format(selectedEvent.getEnd())); participantsVC.put("dateTitle", dateTitle); participantsVC.put("dateTimeframe", dateTimeframe); participantsVC.put("participantsTable", tableManageParticipants.getInitialComponent()); participantsVC.put("addParticipants", formManageParticipants.getInitialComponent()); removeAsListenerAndDispose(manageParticipantsModalCntrl); manageParticipantsModalCntrl = new CloseableModalController( getWindowControl(), "close", participantsVC, true, translate("dates.table.participant.manage")); listenTo(manageParticipantsModalCntrl); manageParticipantsModalCntrl.activate(); } } else { TableMultiSelectEvent tmse = (TableMultiSelectEvent) event; BitSet selection = tmse.getSelection(); // delete all users from the selected dates if (tmse.getAction().equals(DENListTableDataModel.DELETE_ACTION) && selection.cardinality() > 0) { removed = denManager.getSelectedEventParticipants(dateList, selection); dateList = denManager.deleteParticipants( ores, courseNode, denManager.getSelectedEventIDs(dateList, selection)); listTableData.setObjects(dateList); // send notification mail createRemovedNotificationMail(ureq, dateList.get(0).getSubject()); } else if (tmse.getAction().equals(DENListTableDataModel.MAIL_ACTION) && selection.cardinality() > 0) { // send email to all users from the selected dates List<Identity> participants = denManager.getSelectedEventParticipants(dateList, selection); createParticipantsMail(ureq, participants); } else if (selection.cardinality() == 0) { showWarning("participants.message.empty"); } } } else if (source == formManageParticipants && event == DENManageParticipantsForm.ADD_PARTICIPANTS) { // open user search controller to manually add users in date removeAsListenerAndDispose(userSearchCntrl); userSearchCntrl = new UserSearchController(ureq, getWindowControl(), true, true); listenTo(userSearchCntrl); removeAsListenerAndDispose(userSearchCMC); userSearchCMC = new CloseableModalController( getWindowControl(), "close", userSearchCntrl.getInitialComponent()); listenTo(userSearchCMC); userSearchCMC.activate(); } else if (source == userSearchCntrl) { if (event == Event.CANCELLED_EVENT) { userSearchCMC.deactivate(); } else { List<Identity> toAdd = null; added = new ArrayList<Identity>(); if (event instanceof SingleIdentityChosenEvent) { SingleIdentityChosenEvent singleEvent = (SingleIdentityChosenEvent) event; Identity choosenIdentity = singleEvent.getChosenIdentity(); toAdd = new ArrayList<Identity>(); toAdd.add(choosenIdentity); } else if (event instanceof MultiIdentityChosenEvent) { MultiIdentityChosenEvent multiEvent = (MultiIdentityChosenEvent) event; toAdd = multiEvent.getChosenIdentities(); } boolean showMessage = false; if (toAdd != null && toAdd.size() > 0) { for (Identity identity : toAdd) { status = denManager.doEnroll(identity, selectedEvent, ores, courseNode, true); if (!status.isEnrolled() && status.getErrorMessage().equals(DENStatus.ERROR_ALREADY_ENROLLED)) showMessage = true; else added.add(identity); } if (showMessage) showWarning("enrollment.warning.manual"); refreshTables(); } userSearchCMC.deactivate(); if (added.size() > 0) { // write notification mail createAddedNotificationMail(ureq, dateList.get(0).getSubject()); } } } else if (source == tableManageParticipants) { if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { TableEvent tableEvent = (TableEvent) event; // delete single user from event if (tableEvent.getActionId().equals(DENParticipantsTableDataModel.REMOVE_ACTION)) { Identity identity = participantsTableData.getEntryAt(tableEvent.getRowId()); status = denManager.cancelEnroll(identity, selectedEvent, ores, courseNode); if (!status.isCancelled()) showError(); // send notification mail else { removed.clear(); removed.add(identity); createRemovedNotificationMail(ureq, dateList.get(0).getSubject()); } refreshTables(); // write email to single user } else if (tableEvent.getActionId().equals(DENParticipantsTableDataModel.MAIL_ACTION)) { List<Identity> participants = new ArrayList<Identity>(); participants.add(participantsTableData.getEntryAt(tableEvent.getRowId())); createParticipantsMail(ureq, participants); } } } else if (source == addedNotificationCtr && event == Event.DONE_EVENT) { if (addedNotificationCtr.getMailTemplate() != null) { Identity sender = ureq.getIdentity(); MailerResult result = new MailerResult(); String metaId = UUID.randomUUID().toString().replace("-", ""); MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString()); MailBundle[] bundles = mailManager.makeMailBundles( context, added, addedNotificationCtr.getMailTemplate(), sender, metaId, result); result.append(mailManager.sendMessage(bundles)); if (addedNotificationCtr.getMailTemplate().getCpfrom()) { MailBundle ccBundles = mailManager.makeMailBundle( context, sender, addedNotificationCtr.getMailTemplate(), sender, metaId, result); result.append(mailManager.sendMessage(ccBundles)); } MailHelper.printErrorsAndWarnings(result, getWindowControl(), ureq.getLocale()); } notificationCmc.deactivate(); added.clear(); } else if (source == removedNotificationCtr && event == Event.DONE_EVENT) { if (removedNotificationCtr.getMailTemplate() != null) { // fxdiff VCRP-16: intern mail system Identity sender = ureq.getIdentity(); MailerResult result = new MailerResult(); String metaId = UUID.randomUUID().toString().replace("-", ""); MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString()); MailBundle[] bundles = mailManager.makeMailBundles( context, added, addedNotificationCtr.getMailTemplate(), sender, metaId, result); result.append(mailManager.sendMessage(bundles)); if (addedNotificationCtr.getMailTemplate().getCpfrom()) { MailBundle ccBundle = mailManager.makeMailBundle( context, sender, addedNotificationCtr.getMailTemplate(), sender, metaId, result); result.append(mailManager.sendMessage(ccBundle)); } MailHelper.printErrorsAndWarnings(result, getWindowControl(), ureq.getLocale()); } notificationCmc.deactivate(); removed.clear(); } else if (source == contactCtr) { notificationCmc.deactivate(); } }