Skip to content
Snippets Groups Projects
Commit 12aac2d5 authored by srosse's avatar srosse
Browse files

OO-974: make sure that only 1 edit controller is ever created at once

parent 588e33da
No related branches found
No related tags found
No related merge requests found
...@@ -450,6 +450,7 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -450,6 +450,7 @@ public class WeeklyCalendarController extends FormBasicController implements Act
if(affectedCal!=null) { if(affectedCal!=null) {
ThreadLocalUserActivityLogger.log(getCalLoggingAction(), getClass(), LoggingResourceable.wrap(ureq.getIdentity()), LoggingResourceable.wrap(affectedCal)); ThreadLocalUserActivityLogger.log(getCalLoggingAction(), getClass(), LoggingResourceable.wrap(ureq.getIdentity()), LoggingResourceable.wrap(affectedCal));
} }
cleanUp();
} else if (source == eventDetailsCtr) { } else if (source == eventDetailsCtr) {
if(event instanceof KalendarGUIEditEvent) { if(event instanceof KalendarGUIEditEvent) {
eventCalloutCtr.deactivate(); eventCalloutCtr.deactivate();
...@@ -467,9 +468,9 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -467,9 +468,9 @@ public class WeeklyCalendarController extends FormBasicController implements Act
eventCalloutCtr.deactivate(); eventCalloutCtr.deactivate();
} else if (source == importCalendarController) { } else if (source == importCalendarController) {
cmc.deactivate(); cmc.deactivate();
} else if(source == cmc && event == CloseableModalController.CLOSE_MODAL_EVENT){ } else if(source == cmc) {
//DO NOT DEACTIVATE AS ALREADY CLOSED BY CloseableModalController INTERNALLY
weeklyCalendar.getComponent().setDirty(true); weeklyCalendar.getComponent().setDirty(true);
cleanUp();
} else if (source == calendarConfig || source == importedCalendarConfig) { } else if (source == calendarConfig || source == importedCalendarConfig) {
if (event instanceof KalendarGUIAddEvent) { if (event instanceof KalendarGUIAddEvent) {
pushAddEventController((KalendarGUIAddEvent)event, ureq); pushAddEventController((KalendarGUIAddEvent)event, ureq);
...@@ -521,7 +522,6 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -521,7 +522,6 @@ public class WeeklyCalendarController extends FormBasicController implements Act
CalendarManagerFactory.getInstance().getCalendarManager().updateEventFrom(affectedCal, kEvent); CalendarManagerFactory.getInstance().getCalendarManager().updateEventFrom(affectedCal, kEvent);
deleteSingleYesNoController.dispose(); deleteSingleYesNoController.dispose();
weeklyCalendar.getComponent().setDirty(true); weeklyCalendar.getComponent().setDirty(true);
//TODO jquery vcMain.setDirty(true);
} }
} else if (source == deleteSequenceYesNoController) { } else if (source == deleteSequenceYesNoController) {
if (DialogBoxUIFactory.isYesEvent(event)) { if (DialogBoxUIFactory.isYesEvent(event)) {
...@@ -530,7 +530,6 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -530,7 +530,6 @@ public class WeeklyCalendarController extends FormBasicController implements Act
CalendarManagerFactory.getInstance().getCalendarManager().removeEventFrom(affectedCal, kalendarEvent); CalendarManagerFactory.getInstance().getCalendarManager().removeEventFrom(affectedCal, kalendarEvent);
deleteSequenceYesNoController.dispose(); deleteSequenceYesNoController.dispose();
weeklyCalendar.getComponent().setDirty(true); weeklyCalendar.getComponent().setDirty(true);
//TODO jquery vcMain.setDirty(true);
} }
} }
if (weeklyCalendar.getComponent().isDirty()) { if (weeklyCalendar.getComponent().isDirty()) {
...@@ -549,6 +548,13 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -549,6 +548,13 @@ public class WeeklyCalendarController extends FormBasicController implements Act
} }
} }
private void cleanUp() {
removeAsListenerAndDispose(editController);
removeAsListenerAndDispose(cmc);
editController = null;
cmc = null;
}
@Override @Override
public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
if(entries == null || entries.isEmpty()) return; if(entries == null || entries.isEmpty()) return;
...@@ -635,6 +641,8 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -635,6 +641,8 @@ public class WeeklyCalendarController extends FormBasicController implements Act
* @param kalendarWrapper * @param kalendarWrapper
*/ */
private void pushEditEventController(UserRequest ureq, KalendarEvent kalendarEvent, KalendarRenderWrapper kalendarWrapper) { private void pushEditEventController(UserRequest ureq, KalendarEvent kalendarEvent, KalendarRenderWrapper kalendarWrapper) {
if(editController != null) return;
removeAsListenerAndDispose(editController); removeAsListenerAndDispose(editController);
boolean canEdit = false; boolean canEdit = false;
...@@ -664,6 +672,8 @@ public class WeeklyCalendarController extends FormBasicController implements Act ...@@ -664,6 +672,8 @@ public class WeeklyCalendarController extends FormBasicController implements Act
} }
private void pushAddEventController(KalendarGUIAddEvent addEvent, UserRequest ureq) { private void pushAddEventController(KalendarGUIAddEvent addEvent, UserRequest ureq) {
if(editController != null) return;
KalendarRenderWrapper calendarWrapper = weeklyCalendar.getKalendarRenderWrapper(addEvent.getCalendarID()); KalendarRenderWrapper calendarWrapper = weeklyCalendar.getKalendarRenderWrapper(addEvent.getCalendarID());
// create new KalendarEvent // create new KalendarEvent
Date begin = addEvent.getStartDate(); Date begin = addEvent.getStartDate();
......
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