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']