diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 2c2f407b3..bca1bb42d 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -353,10 +353,12 @@ class PreferenceController extends Zend_Controller_Action public function rescanWatchDirectoryAction() { - $dirs = Application_Model_MusicDir::getWatchedDirs(); - foreach ($dirs as $dir) { - $res = Application_Model_MusicDir::addWatchedDir($dir->getDirectory()); - } + $dir = Application_Model_MusicDir::getDirByPath($this->getRequest()->getParam("dir")); + $id = $dir->getId(); + $data = array(); + $data['directory'] = $dir->getDirectory(); + $data['id'] = $id; + Application_Model_RabbitMq::SendMessageToMediaMonitor('rescan_watch', $data); die(); } diff --git a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml index f4478adcc..21cb6b0a4 100644 --- a/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml @@ -20,7 +20,7 @@
- Rescan +
element->getElement('watchedFolder') ?> @@ -39,7 +39,10 @@ 0): ?>
- getExistsFlag())?"":""?>getDirectory();?> + getExistsFlag())?"":""?>getDirectory();?> + + +
diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 35f5ce7c3..7270d201c 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -2027,12 +2027,23 @@ label span { -moz-border-radius: 4px; font-size:13px; } + #watched-folder-section dd.block-display.selected-item .ui-icon { position:absolute; top:4px; right:5px; cursor:pointer; } + +#watched-folder-section dd.block-display.selected-item .ui-icon.ui-icon-refresh { + position:absolute; + top:4px; + right:20px; + cursor:pointer; + background-image:url(redmond/images/ui-icons_ffffff_256x240.png); + background-position: -128px -63px; +} + #watched-folder-section dd.block-display.selected-item .ui-icon:hover { background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png) } diff --git a/airtime_mvc/public/js/airtime/preferences/musicdirs.js b/airtime_mvc/public/js/airtime/preferences/musicdirs.js index f8eda175d..7c9f6083e 100644 --- a/airtime_mvc/public/js/airtime/preferences/musicdirs.js +++ b/airtime_mvc/public/js/airtime/preferences/musicdirs.js @@ -78,14 +78,15 @@ function setWatchedDirEvents() { }); }); - $('#watchedFolder-rescan').click(function(){ - $.get("/Preference/rescan-watch-directory", {format: "json"}); + $('.selected-item').find('.ui-icon-refresh').click(function(){ + var folder = $(this).prev().text(); + $.get("/Preference/rescan-watch-directory", {format: "json", dir: folder}); }); $('.selected-item').find('.ui-icon-close').click(function(){ if(confirm("Are you sure you want to remove the watched folder?")){ var row = $(this).parent(); - var folder = $(this).prev().text(); + var folder = row.find('#folderPath').text(); url = "/Preference/remove-watch-directory"; @@ -124,4 +125,5 @@ $(document).ready(function() { show: 'mouseover', hide: 'mouseout' }); + }); diff --git a/python_apps/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py b/python_apps/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py index 54c0a6170..998446596 100644 --- a/python_apps/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py +++ b/python_apps/media-monitor/airtimefilemonitor/airtimemediamonitorbootstrap.py @@ -109,9 +109,9 @@ class AirtimeMediaMonitorBootstrap(): if os.path.exists(self.mmc.timestamp_file): """find files that have been modified since the last time media-monitor process started.""" time_diff_sec = time.time() - os.path.getmtime(self.mmc.timestamp_file) - command = "find %s -iname '*.ogg' -o -iname '*.mp3' -type f -readable -mmin -%d" % (dir, time_diff_sec/60+1) + command = "find '%s' -iname '*.ogg' -o -iname '*.mp3' -type f -readable -mmin -%d" % (dir, time_diff_sec/60+1) else: - command = "find %s -iname '*.ogg' -o -iname '*.mp3' -type f -readable" % dir + command = "find '%s' -iname '*.ogg' -o -iname '*.mp3' -type f -readable" % dir self.logger.debug(command) stdout = self.mmc.exec_command(command) diff --git a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py index be301c958..2ce2e0c78 100644 --- a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py +++ b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py @@ -84,6 +84,9 @@ class AirtimeNotifier(Notifier): self.logger.info("Removing watch on: %s wd %s", watched_directory, wd) mm.wm.rm_watch(wd, rec=True) + elif m['event_type'] == "rescan_watch": + self.bootstrap.sync_database_to_filesystem(str(m['id']), m['directory']) + elif m['event_type'] == "change_stor": storage_directory = self.config.storage_directory new_storage_directory = m['directory']