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

OO-2043: better event handling if a resource is deleted

parent 48485491
No related branches found
No related tags found
No related merge requests found
...@@ -297,7 +297,8 @@ public class ConfirmDeletePermanentlyController extends FormBasicController { ...@@ -297,7 +297,8 @@ public class ConfirmDeletePermanentlyController extends FormBasicController {
allOk = false; allOk = false;
errorList.add(errors); errorList.add(errors);
} else { } else {
fireEvent(ureq, new EntryChangedEvent(reloadedEntry, getIdentity(), Change.deleted, "delete")); EntryChangedEvent e = new EntryChangedEvent(reloadedEntry, getIdentity(), Change.deleted, "delete");
ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
} }
} }
} }
......
...@@ -43,6 +43,8 @@ import org.olat.core.util.StringHelper; ...@@ -43,6 +43,8 @@ import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryService; import org.olat.repository.RepositoryService;
import org.olat.repository.controllers.EntryChangedEvent;
import org.olat.repository.controllers.EntryChangedEvent.Change;
import org.olat.resource.references.ReferenceInfos; import org.olat.resource.references.ReferenceInfos;
import org.olat.resource.references.ReferenceManager; import org.olat.resource.references.ReferenceManager;
import org.olat.util.logging.activity.LoggingResourceable; import org.olat.util.logging.activity.LoggingResourceable;
...@@ -134,7 +136,7 @@ public class ConfirmDeleteSoftlyController extends FormBasicController { ...@@ -134,7 +136,7 @@ public class ConfirmDeleteSoftlyController extends FormBasicController {
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(deleteButton == source) { if(deleteButton == source) {
if(validateFormLogic(ureq)) { if(validateFormLogic(ureq)) {
doCompleteDelete(); doCompleteDelete(ureq);
fireEvent(ureq, Event.DONE_EVENT); fireEvent(ureq, Event.DONE_EVENT);
} }
} }
...@@ -150,8 +152,8 @@ public class ConfirmDeleteSoftlyController extends FormBasicController { ...@@ -150,8 +152,8 @@ public class ConfirmDeleteSoftlyController extends FormBasicController {
fireEvent(ureq, Event.CANCELLED_EVENT); fireEvent(ureq, Event.CANCELLED_EVENT);
} }
private void doCompleteDelete() { private void doCompleteDelete(UserRequest ureq) {
boolean allOk = deleteEntries(rows); boolean allOk = deleteEntries(ureq, rows);
if(allOk) { if(allOk) {
showInfo("info.entry.deleted"); showInfo("info.entry.deleted");
} else { } else {
...@@ -159,7 +161,7 @@ public class ConfirmDeleteSoftlyController extends FormBasicController { ...@@ -159,7 +161,7 @@ public class ConfirmDeleteSoftlyController extends FormBasicController {
} }
} }
private boolean deleteEntries(List<RepositoryEntry> entries) { private boolean deleteEntries(UserRequest ureq, List<RepositoryEntry> entries) {
boolean allOk = true; boolean allOk = true;
for(RepositoryEntry entry:entries) { for(RepositoryEntry entry:entries) {
RepositoryEntry reloadedEntry = repositoryService.loadByKey(entry.getKey()); RepositoryEntry reloadedEntry = repositoryService.loadByKey(entry.getKey());
...@@ -167,6 +169,9 @@ public class ConfirmDeleteSoftlyController extends FormBasicController { ...@@ -167,6 +169,9 @@ public class ConfirmDeleteSoftlyController extends FormBasicController {
reloadedEntry = repositoryService.deleteSoftly(reloadedEntry, getIdentity(), false); reloadedEntry = repositoryService.deleteSoftly(reloadedEntry, getIdentity(), false);
ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_TRASH, getClass(), ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_TRASH, getClass(),
LoggingResourceable.wrap(reloadedEntry, OlatResourceableType.genRepoEntry)); LoggingResourceable.wrap(reloadedEntry, OlatResourceableType.genRepoEntry));
EntryChangedEvent e = new EntryChangedEvent(reloadedEntry, getIdentity(), Change.deleted, "delete");
ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
} }
} }
return allOk; return allOk;
......
...@@ -69,7 +69,7 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -69,7 +69,7 @@ public class OverviewAuthoringController extends BasicController implements Acti
private final boolean isOlatAdmin; private final boolean isOlatAdmin;
private final boolean isGuestOnly; private final boolean isGuestOnly;
private boolean favoritDirty, myDirty; private boolean favoritDirty, myDirty, deletedDirty;
private final EventBus eventBus; private final EventBus eventBus;
public OverviewAuthoringController(UserRequest ureq, WindowControl wControl) { public OverviewAuthoringController(UserRequest ureq, WindowControl wControl) {
...@@ -122,6 +122,9 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -122,6 +122,9 @@ public class OverviewAuthoringController extends BasicController implements Acti
if(myEntriesCtrl != null && !myEntriesCtrl.getI18nName().equals(ece.getSource())) { if(myEntriesCtrl != null && !myEntriesCtrl.getI18nName().equals(ece.getSource())) {
myDirty = true; myDirty = true;
} }
if(deletedEntriesCtrl != null && !deletedEntriesCtrl.getI18nName().equals(ece.getSource())) {
deletedDirty = true;
}
} }
} }
} }
...@@ -276,10 +279,10 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -276,10 +279,10 @@ public class OverviewAuthoringController extends BasicController implements Acti
WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl());
deletedEntriesCtrl = new AuthorDeletedListController(ureq, bwControl, "search.deleted", searchParams, false); deletedEntriesCtrl = new AuthorDeletedListController(ureq, bwControl, "search.deleted", searchParams, false);
listenTo(deletedEntriesCtrl); listenTo(deletedEntriesCtrl);
} else if(myDirty) { } else if(deletedDirty) {
deletedEntriesCtrl.reloadRows(); deletedEntriesCtrl.reloadRows();
} }
myDirty = false; deletedDirty = false;
currentCtrl = deletedEntriesCtrl; currentCtrl = deletedEntriesCtrl;
addToHistory(ureq, deletedEntriesCtrl); addToHistory(ureq, deletedEntriesCtrl);
......
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