diff --git a/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectoryManager.groovy b/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectoryManager.groovy index 58ecba89..c868a977 100644 --- a/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectoryManager.groovy +++ b/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectoryManager.groovy @@ -163,6 +163,7 @@ class WatchedDirectoryManager { log.fine("syncing ${wd.directory}") wd.lastSync = now doPersist(wd) + eventBus.publish(new WatchedDirectorySyncEvent(directory: wd.directory, when: now)) def cb = new DirSyncCallback() fileManager.positiveTree.list(wd.directory, cb) diff --git a/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectorySyncEvent.groovy b/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectorySyncEvent.groovy new file mode 100644 index 00000000..b5d52fc6 --- /dev/null +++ b/core/src/main/groovy/com/muwire/core/files/directories/WatchedDirectorySyncEvent.groovy @@ -0,0 +1,8 @@ +package com.muwire.core.files.directories + +import com.muwire.core.Event + +class WatchedDirectorySyncEvent extends Event { + File directory + long when +} diff --git a/webui/src/main/java/com/muwire/webui/AdvancedSharingManager.java b/webui/src/main/java/com/muwire/webui/AdvancedSharingManager.java index ee4fd941..13c79349 100644 --- a/webui/src/main/java/com/muwire/webui/AdvancedSharingManager.java +++ b/webui/src/main/java/com/muwire/webui/AdvancedSharingManager.java @@ -7,6 +7,7 @@ import com.muwire.core.files.DirectoryUnsharedEvent; import com.muwire.core.files.DirectoryWatchedEvent; import com.muwire.core.files.directories.UISyncDirectoryEvent; import com.muwire.core.files.directories.WatchedDirectoryConfigurationEvent; +import com.muwire.core.files.directories.WatchedDirectorySyncEvent; public class AdvancedSharingManager { @@ -29,6 +30,10 @@ public class AdvancedSharingManager { revision++; } + public void onWatchedDirectorySyncEvent(WatchedDirectorySyncEvent e) { + revision++; + } + void sync(File dir) { revision++; diff --git a/webui/src/main/java/com/muwire/webui/MuWireClient.java b/webui/src/main/java/com/muwire/webui/MuWireClient.java index 636a314c..8f79e628 100644 --- a/webui/src/main/java/com/muwire/webui/MuWireClient.java +++ b/webui/src/main/java/com/muwire/webui/MuWireClient.java @@ -37,6 +37,7 @@ import com.muwire.core.files.FileHashingEvent; import com.muwire.core.files.FileLoadedEvent; import com.muwire.core.files.FileSharedEvent; import com.muwire.core.files.FileUnsharedEvent; +import com.muwire.core.files.directories.WatchedDirectorySyncEvent; import com.muwire.core.search.BrowseStatusEvent; import com.muwire.core.search.UIResultBatchEvent; import com.muwire.core.search.UIResultEvent; @@ -181,6 +182,7 @@ public class MuWireClient { AdvancedSharingManager advancedSharingManager = new AdvancedSharingManager(core); core.getEventBus().register(DirectoryWatchedEvent.class, advancedSharingManager); core.getEventBus().register(DirectoryUnsharedEvent.class, advancedSharingManager); + core.getEventBus().register(WatchedDirectorySyncEvent.class, advancedSharingManager); servletContext.setAttribute("searchManager", searchManager); servletContext.setAttribute("downloadManager", downloadManager);