[Slim-Checkins] r33824 - in /7.7/trunk/platforms/readynas/addon_template: SQUEEZEBOX.html SQUEEZEBOX.js SQUEEZEBOX_HANDLER.pl language/en-us/SQUEEZEBOX.str

[email protected] Mon, 13 Feb 2012 14:05:25 -0000
Newsgroups gmane.music.equipment.slimdevices.cvs
Message-ID <[email protected]>
Author: mherger
Date: Mon Feb 13 06:05:24 2012
New Revision: 33824

URL: http://svn.slimdevices.com/slim?rev=33824&view=rev
Log:
Bug: n/a
Description: add cleanup options to ReadyNAS web UI

Modified:
    7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.html
    7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.js
    7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX_HANDLER.pl
    7.7/trunk/platforms/readynas/addon_template/language/en-us/SQUEEZEBOX.str

Modified: 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.html
URL: http://svn.slimdevices.com/slim/7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.html?rev=33824&r1=33823&r2=33824&view=diff
==============================================================================
--- 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.html (original)
+++ 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.html Mon Feb 13 06:05:24 2012
@@ -1,2 +1,10 @@
 <!-- User defined content -->
-<p><span id="sbwebui"><a href="" target="_blank">Free Your Music!</a></span> - <span id="LABEL_ACCESS_LMS"></span></p>
+<p><span id="sbwebui"><a href="" target="_blank">Free Your Music!</a></span> - <span id="LABEL_ACCESS_LMS" /></p>
+
+<hr style="height:1px;margin-bottom:10px">
+
+<form name="squeezebox_cleanup">
+	<div><input type="checkbox" name="cleanup_prefs"> <span id="LABEL_CLEANUP_PREFS" /></div>
+	<div style="margin-bottom:5px"><input type="checkbox" name="cleanup_cache"> <span id="LABEL_CLEANUP_CACHE" /></div>
+	<input type="button" id="BUTTON_CLEANUP_DO" onclick="SQUEEZEBOX_cleanup()" />
+</form>

Modified: 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.js
URL: http://svn.slimdevices.com/slim/7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.js?rev=33824&r1=33823&r2=33824&view=diff
==============================================================================
--- 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.js (original)
+++ 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX.js Mon Feb 13 06:05:24 2012
@@ -242,3 +242,19 @@
   }
 }
 
+// custom callback to remove Squeezebox prefs/cache etc.
+self.SQUEEZEBOX_cleanup = function() 
+{
+	var prefs = document.forms.squeezebox_cleanup.cleanup_prefs.checked;
+	var cache = document.forms.squeezebox_cleanup.cleanup_cache.checked;
+
+	showProgressBar('wait');
+
+	$.ajax({
+		url: '/addons/SQUEEZEBOX/SQUEEZEBOX_HANDLER.pl?OPERATION=cleanup&command=' + (prefs ? 'prefs|' : '') + (cache ? 'cache|' : ''),
+		cache: false,
+		complete: function(jqXHR, textStatus) {
+			showProgressBar('default');
+		}
+	});
+}

Modified: 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX_HANDLER.pl
URL: http://svn.slimdevices.com/slim/7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX_HANDLER.pl?rev=33824&r1=33823&r2=33824&view=diff
==============================================================================
--- 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX_HANDLER.pl (original)
+++ 7.7/trunk/platforms/readynas/addon_template/SQUEEZEBOX_HANDLER.pl Mon Feb 13 06:05:24 2012
@@ -43,30 +43,17 @@
   }
 }
 
+# handle Squeezebox cleanup requests
+elsif ($operation eq 'cleanup') {
+	run_cleanup($command);
+}
+
 print $xml_payload;
   
 
 sub Show_SQUEEZEBOX_xml
 {
   my $xml_payload = "<payload><content>" ;
-
-  # check if service is running or not 
-  my $enabled = GetServiceStatus("SQUEEZEBOX");
-
-  # get SQUEEZEBOX_RUNTIME_SECS parameter from /etc/default_services
-  my $run_time = GetValueFromServiceFile("SQUEEZEBOX_RUNTIME_SECS");
-
-  if( $run_time eq "not_found" )
-  {
-    # set run_time to a default value
-    $run_time = "60";
-  }
-
-  my $enabled_disabled = "disabled";
-     $enabled_disabled = "enabled" if( $enabled );
-
-  # return run_time value for HTML
-  $xml_payload .= "<SQUEEZEBOX_RUNTIME_SECS><value>$run_time</value><enable>$enabled_disabled</enable></SQUEEZEBOX_RUNTIME_SECS>"; 
 
   $xml_payload .= "</content><warning>No Warnings</warning><error>No Errors</error></payload>";
   
@@ -76,33 +63,40 @@
 
 sub Modify_SQUEEZEBOX_xml 
 {
-  my $run_time  = $in{"SQUEEZEBOX_RUNTIME_SECS"};
-  my $SPOOL;
   my $xml_payload;
   
-  $run_time = "60" if( $run_time eq "" );
-  
-  $SPOOL .= "
-if grep -q SQUEEZEBOX_RUNTIME_SECS /etc/default/services; then
-  sed -i 's/SQUEEZEBOX_RUNTIME_SECS=.*/SQUEEZEBOX_RUNTIME_SECS=${run_time}/' /etc/default/services
-else
-  echo 'SQUEEZEBOX_RUNTIME_SECS=${run_time}' >> /etc/default/services
-fi
-";
- 
   if( $in{SWITCH} eq "YES" ) 
   {
     $xml_payload = Toggle_Service_xml("SQUEEZEBOX", $enabled);
   }
   else
   {
-    spool_file("${ORDER_SERVICE}_SQUEEZEBOX", $SPOOL);
-    empty_spool();
-
     $xml_payload = _build_xml_set_payload_sync();
   }
   return $xml_payload;
 }
 
+# custom handler to run Squeezebox cleanup tool
+sub run_cleanup 
+{
+	my $command = shift;
+	
+	my $params = '';
+	
+	if ($command =~ /prefs/) {
+		$params .= ' --prefs';
+	}
+
+	if ($command =~ /cache/) {
+		$params .= ' --cache';
+	}
+	
+	if ($params) {
+		my $SPOOL = "cd /usr/share/squeezeboxserver && ./cleanup.pl $params\n";
+		$SPOOL = "echo '$params' > /tmp/test.txt\n";
+		spool_file("${ORDER_SERVICE}_SQUEEZEBOX", $SPOOL);
+		empty_spool();
+	}
+}
 
 1;

Modified: 7.7/trunk/platforms/readynas/addon_template/language/en-us/SQUEEZEBOX.str
URL: http://svn.slimdevices.com/slim/7.7/trunk/platforms/readynas/addon_template/language/en-us/SQUEEZEBOX.str?rev=33824&r1=33823&r2=33824&view=diff
==============================================================================
--- 7.7/trunk/platforms/readynas/addon_template/language/en-us/SQUEEZEBOX.str (original)
+++ 7.7/trunk/platforms/readynas/addon_template/language/en-us/SQUEEZEBOX.str Mon Feb 13 06:05:24 2012
@@ -1,2 +1,5 @@
 LABEL_SERVICE_SQUEEZEBOX_INFO::::<b>Logitech Media Server</b> - Logitech Media Server is a cross-platform streaming media server that supports a wide range of formats, including AAC, AIFF, FLAC, Ogg Vorbis, MP3, WAV, and WMA.
-LABEL_ACCESS_LMS::::Access Logitech Media Server
+LABEL_ACCESS_LMS::::Access Logitech Media Server
+BUTTON_CLEANUP_DO::::Run Cleanup
+LABEL_CLEANUP_CACHE::::Clean cache folder, including media library database, artwork cache etc.
+LABEL_CLEANUP_PREFS::::Delete preference files