[Slim-Checkins] r10701 - in /trunk/server: ./ HTML/EN/settings/ HTML/EN/settings/player/ Slim/Web/ Slim/Web/Settings/Player/

kdf at svn.slimdevices.com kdf at svn.slimdevices.com
Thu Nov 16 00:47:41 PST 2006


Author: kdf
Date: Thu Nov 16 00:47:41 2006
New Revision: 10701

URL: http://svn.slimdevices.com?rev=10701&view=rev
Log:
Bug: 3267
Description: rudimentary handling of http players for settings pages.  When pages have no valid prefs for the type of player, a simple warning is shown on the page.  ideally, we'll need a method to reset the pulldown to show only the settings pages that are valid for a given player type


Modified:
    trunk/server/HTML/EN/settings/footer.html
    trunk/server/HTML/EN/settings/player/basic.html
    trunk/server/HTML/EN/settings/player/display.html
    trunk/server/HTML/EN/settings/player/menu.html
    trunk/server/HTML/EN/settings/player/remote.html
    trunk/server/Slim/Web/Settings.pm
    trunk/server/Slim/Web/Settings/Player/Display.pm
    trunk/server/Slim/Web/Settings/Player/Menu.pm
    trunk/server/Slim/Web/Settings/Player/Remote.pm
    trunk/server/strings.txt

Modified: trunk/server/HTML/EN/settings/footer.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/settings/footer.html?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/HTML/EN/settings/footer.html (original)
+++ trunk/server/HTML/EN/settings/footer.html Thu Nov 16 00:47:41 2006
@@ -1,6 +1,7 @@
 <!-- Begin settingsfooter.html -->
-
+[% IF prefs %]
 	[% IF NOT nosubmit %]<p><input name="submit" type="submit" class="stdclick" value="[% "SAVE_SETTINGS" | string %]"></p>[% END %]
+[% END %]
 
 [% IF versionInfo %]<p>
 

Modified: trunk/server/HTML/EN/settings/player/basic.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/settings/player/basic.html?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/HTML/EN/settings/player/basic.html (original)
+++ trunk/server/HTML/EN/settings/player/basic.html Thu Nov 16 00:47:41 2006
@@ -36,6 +36,7 @@
 	
 	</div>
 	
+	[% IF prefs.exists('playingDisplayModes') %]
 	<div class="settingSection">
 	
 		<div class="groupHead">[% "SETUP_PLAYINGDISPLAYMODE" | string | upper %]</div>
@@ -63,7 +64,9 @@
 		</table>
 	
 	</div>
+	[% END %]
 
+	[% IF prefs.exists('visualModes') %]
 	<div class="settingSection">
 	
 		<div class="groupHead">[% "SETUP_VISUALIZERMODE" | string | upper %]</div>
@@ -90,7 +93,9 @@
 		</table>
 	
 	</div>
+	[% END %]
 
+	[% IF prefs.exists('screensaver') %]
 	<div class="settingSection">
 	
 		<div class="groupHead">[% "SCREENSAVERS" | string | upper %]</div>
@@ -171,5 +176,6 @@
 		[% END %] 
 	
 	</div>
+	[% END %]
 
 [% PROCESS settings/footer.html %]

Modified: trunk/server/HTML/EN/settings/player/display.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/settings/player/display.html?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/HTML/EN/settings/player/display.html (original)
+++ trunk/server/HTML/EN/settings/player/display.html Thu Nov 16 00:47:41 2006
@@ -1,5 +1,5 @@
 [% PROCESS settings/header.html %]
-
+[% IF prefs %]
 	[% IF prefs.exists('powerOnBrightness') %]
 	<div class="settingSection">
 	
@@ -259,4 +259,5 @@
 	</div>
 	[% END %]
 
+[% END %]
 [% PROCESS settings/footer.html %]

Modified: trunk/server/HTML/EN/settings/player/menu.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/settings/player/menu.html?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/HTML/EN/settings/player/menu.html (original)
+++ trunk/server/HTML/EN/settings/player/menu.html Thu Nov 16 00:47:41 2006
@@ -1,6 +1,6 @@
 [% PROCESS settings/header.html %]
 [% nosubmit = 1 %]
-
+[% IF prefs %]
 	<div class="settingSection">
 
 		<div class="groupHead">[% "SETUP_GROUP_MENUITEMS" | string | upper %]</div>
@@ -55,4 +55,5 @@
 	<p><input name="addItems" type="submit" class="stdclick" value="[% "ADD" | string %]"></p>
 	</div>
 
+[% END %]
 [% PROCESS settings/footer.html %]

Modified: trunk/server/HTML/EN/settings/player/remote.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/settings/player/remote.html?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/HTML/EN/settings/player/remote.html (original)
+++ trunk/server/HTML/EN/settings/player/remote.html Thu Nov 16 00:47:41 2006
@@ -1,4 +1,5 @@
 [% PROCESS settings/header.html %]
+[% IF prefs %]
 	<div class="settingSection">
 	
 		<div class="groupHead">[% "SETUP_GROUP_IRSETS" | string | upper %]</div>
@@ -28,5 +29,5 @@
 		</select>
 
 	</div>
-
+[% END %]
 [% PROCESS settings/footer.html %]

Modified: trunk/server/Slim/Web/Settings.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings.pm?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings.pm (original)
+++ trunk/server/Slim/Web/Settings.pm Thu Nov 16 00:47:41 2006
@@ -69,7 +69,7 @@
 sub _handleChanges {
 	my ($class, $client, $prefs, $paramRef) = @_;
 	
-	$paramRef->{'warning'} = Slim::Utils::Strings::string('SETTINGS_CHANGED').'<br>'.join('<br>',@{$prefs});
+	$paramRef->{'warning'} .= Slim::Utils::Strings::string('SETTINGS_CHANGED').'<br>'.join('<br>',@{$prefs});
 }
 
 1;

Modified: trunk/server/Slim/Web/Settings/Player/Display.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings/Player/Display.pm?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings/Player/Display.pm (original)
+++ trunk/server/Slim/Web/Settings/Player/Display.pm Thu Nov 16 00:47:41 2006
@@ -51,70 +51,73 @@
 				scrollRate scrollRateDouble
 			);
 		}
+
+		# If this is a settings update
+		if ($paramRef->{'submit'}) {
+	
+			for my $pref (@prefs) {
+	
+				# parse indexed array prefs.
+				if ($pref eq 'activeFont' || $pref eq 'idleFont') {
+	
+					$client->prefDelete($pref);
+	
+					my $i = 0;
+	
+					while (defined $paramRef->{$pref.$i}) {
+	
+						if ($paramRef->{$pref.$i} eq "-1") {
+							last;
+						}
+	
+						$client->prefPush($pref,$paramRef->{$pref.$i});
+	
+						$i++;
+					}
+				} else {
+				
+					$client->prefSet($pref, $paramRef->{$pref} ) if defined $paramRef->{$pref};
+				}
+				
+				if ($pref eq 'doublesize') {
+					$client->textSize($paramRef->{'doublesize'});
+				}
+			}
+			
+	
+		}
+	
+		# Load any option lists for dynamic options.
+		$paramRef->{'brightnessOptions' } = { %{Slim::Web::Setup::getBrightnessOptions($client)} };
+		$paramRef->{'maxBrightness' }     = $client->maxBrightness;
+		$paramRef->{'fontOptions'}        = { %{Slim::Web::Setup::getFontOptions($client)} };
+	
+		# Set current values for prefs
+		# load into prefs hash so that web template can detect exists/!exists
+		for my $pref (@prefs) {
+	
+			if ($pref eq 'activeFont' || $pref eq 'idleFont') {
+	
+				$paramRef->{'prefs'}->{$pref} = [$client->prefGetArray($pref)];
+	
+				push @{$paramRef->{'prefs'}->{$pref}},"-1";
+	
+			} elsif ($pref eq 'doubleSize') {
+				
+				$paramRef->{'prefs'}->{$pref} = $client->textSize;
+				
+			} else {
+	
+				$paramRef->{'prefs'}->{$pref} = $client->prefGet($pref);
+			}
+		}
+
 	} else {
 		# non-SD player, so no applicable display settings
-	}
-	
-	# If this is a settings update
-	if ($paramRef->{'submit'}) {
-
-		for my $pref (@prefs) {
-
-			# parse indexed array prefs.
-			if ($pref eq 'activeFont' || $pref eq 'idleFont') {
-
-				$client->prefDelete($pref);
-
-				my $i = 0;
-
-				while (defined $paramRef->{$pref.$i}) {
-
-					if ($paramRef->{$pref.$i} eq "-1") {
-						last;
-					}
-
-					$client->prefPush($pref,$paramRef->{$pref.$i});
-
-					$i++;
-				}
-			} else {
-			
-				$client->prefSet($pref, $paramRef->{$pref} ) if defined $paramRef->{$pref};
-			}
-			
-			if ($pref eq 'doublesize') {
-				$client->textSize($paramRef->{'doublesize'});
-			}
-		}
+		$paramRef->{'warning'} = Slim::Utils::Strings::string('SETUP_NO_PREFS');
 		
-
 	}
 
-	# Load any option lists for dynamic options.
-	$paramRef->{'brightnessOptions' } = { %{Slim::Web::Setup::getBrightnessOptions($client)} };
-	$paramRef->{'maxBrightness' }     = $client->maxBrightness;
-	$paramRef->{'fontOptions'}        = { %{Slim::Web::Setup::getFontOptions($client)} };
-
-	# Set current values for prefs
-	# load into prefs hash so that web template can detect exists/!exists
-	for my $pref (@prefs) {
-
-		if ($pref eq 'activeFont' || $pref eq 'idleFont') {
-
-			$paramRef->{'prefs'}->{$pref} = [$client->prefGetArray($pref)];
-
-			push @{$paramRef->{'prefs'}->{$pref}},"-1";
-
-		} elsif ($pref eq 'doubleSize') {
-			
-			$paramRef->{'prefs'}->{$pref} = $client->textSize;
-			
-		} else {
-
-			$paramRef->{'prefs'}->{$pref} = $client->prefGet($pref);
-		}
-	}
-	
 	return $class->SUPER::handler($client, $paramRef);
 }
 

Modified: trunk/server/Slim/Web/Settings/Player/Menu.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings/Player/Menu.pm?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings/Player/Menu.pm (original)
+++ trunk/server/Slim/Web/Settings/Player/Menu.pm Thu Nov 16 00:47:41 2006
@@ -27,67 +27,75 @@
 sub handler {
 	my ($class, $client, $paramRef) = @_;
 
-	my @prefs = ('menuItem');
+	if ($client->isPlayer()) {
 
-	# If this is a settings update
-	my $i;
-	for ($i = $client->prefGetArrayMax('menuItem'); $i >= 0; $i--) {
-		if (exists $paramRef->{'Action' . $i}) {
-
-			my $newval = $paramRef->{'Action' . $i};
-			my $tempItem = $client->prefGet('menuItem',$i);
-			if (defined $newval) {
-				if ($newval eq 'Remove') {
-				
-					$client->prefDelete('menuItem',$i);
-				} elsif ($newval eq 'Up' && $i > 0) {
+		my @prefs = ('menuItem');
+	
+		# If this is a settings update
+		my $i;
+		for ($i = $client->prefGetArrayMax('menuItem'); $i >= 0; $i--) {
+			if (exists $paramRef->{'Action' . $i}) {
+	
+				my $newval = $paramRef->{'Action' . $i};
+				my $tempItem = $client->prefGet('menuItem',$i);
+				if (defined $newval) {
+					if ($newval eq 'Remove') {
 					
-					$client->prefSet('menuItem',$client->prefGet('menuItem',$i - 1),$i);
-					$client->prefSet('menuItem',$tempItem,$i - 1);
-				} elsif ($newval eq 'Down' && $i < $client->prefGetArrayMax('menuItem')) {
-				
-					$client->prefSet('menuItem',$client->prefGet('menuItem',$i + 1),$i);
-					$client->prefSet('menuItem',$tempItem,$i + 1);
+						$client->prefDelete('menuItem',$i);
+					} elsif ($newval eq 'Up' && $i > 0) {
+						
+						$client->prefSet('menuItem',$client->prefGet('menuItem',$i - 1),$i);
+						$client->prefSet('menuItem',$tempItem,$i - 1);
+					} elsif ($newval eq 'Down' && $i < $client->prefGetArrayMax('menuItem')) {
+					
+						$client->prefSet('menuItem',$client->prefGet('menuItem',$i + 1),$i);
+						$client->prefSet('menuItem',$tempItem,$i + 1);
+					}
 				}
 			}
 		}
+		
+		if ($client->prefGetArrayMax('menuItem') < 0) {
+			$client->prefSet('menuItem','NOW_PLAYING',0);
+		}
+		
+		if ($paramRef->{'removeItems'}) {
+			for ($i = $client->prefGetArrayMax('menuItem'); $i >= 0; $i--) {
+				if ($paramRef->{'menuItemRemove' . $i}) {
+					$client->prefDelete('menuItem',$i);
+				}
+			}
+		}
+		
+		if ($paramRef->{'addItems'}) {
+			
+			for my $i (0..$paramRef->{'nonMenuItems'}) {
+				if ($paramRef->{'nonMenuItemAdd' . $i}) {
+					$client->prefPush('menuItem',$paramRef->{'nonMenuItemAdd' . $i});
+				}
+			}
+	
+			for my $i (0..$paramRef->{'pluginItems'}) {
+			
+				if (exists $paramRef->{'pluginItemAdd' . $i}) {
+					$client->prefPush('menuItem',$paramRef->{'pluginItemAdd' . $i});
+				}
+			}
+	
+		}
+	
+		Slim::Buttons::Home::updateMenu($client);
+	
+		$paramRef->{'menuItems'}     = [ $client->prefGetArray('menuItem') ];
+		$paramRef->{'menuItemNames'} = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} $client->prefGetArray('menuItem') };
+		$paramRef->{'nonMenuItems'}  = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} Slim::Buttons::Home::unusedMenuOptions($client) };
+		$paramRef->{'pluginItems'}   = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} Slim::Utils::PluginManager::unusedPluginOptions($client) };
+
+	} else {
+		# non-SD player, so no applicable display settings
+		$paramRef->{'warning'} = Slim::Utils::Strings::string('SETUP_NO_PREFS');
 	}
 	
-	if ($client->prefGetArrayMax('menuItem') < 0) {
-		$client->prefSet('menuItem','NOW_PLAYING',0);
-	}
-	
-	if ($paramRef->{'removeItems'}) {
-		for ($i = $client->prefGetArrayMax('menuItem'); $i >= 0; $i--) {
-			if ($paramRef->{'menuItemRemove' . $i}) {
-				$client->prefDelete('menuItem',$i);
-			}
-		}
-	}
-	
-	if ($paramRef->{'addItems'}) {
-		
-		for my $i (0..$paramRef->{'nonMenuItems'}) {
-			if ($paramRef->{'nonMenuItemAdd' . $i}) {
-				$client->prefPush('menuItem',$paramRef->{'nonMenuItemAdd' . $i});
-			}
-		}
-
-		for my $i (0..$paramRef->{'pluginItems'}) {
-		
-			if (exists $paramRef->{'pluginItemAdd' . $i}) {
-				$client->prefPush('menuItem',$paramRef->{'pluginItemAdd' . $i});
-			}
-		}
-
-	}
-
-	Slim::Buttons::Home::updateMenu($client);
-
-	$paramRef->{'menuItems'}     = [ $client->prefGetArray('menuItem') ];
-	$paramRef->{'menuItemNames'} = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} $client->prefGetArray('menuItem') };
-	$paramRef->{'nonMenuItems'}  = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} Slim::Buttons::Home::unusedMenuOptions($client) };
-	$paramRef->{'pluginItems'}   = { map {$_ => Slim::Web::Setup::menuItemName($client, $_)} Slim::Utils::PluginManager::unusedPluginOptions($client) };
 
 	return $class->SUPER::handler($client, $paramRef);
 }

Modified: trunk/server/Slim/Web/Settings/Player/Remote.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings/Player/Remote.pm?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings/Player/Remote.pm (original)
+++ trunk/server/Slim/Web/Settings/Player/Remote.pm Thu Nov 16 00:47:41 2006
@@ -29,49 +29,55 @@
 
 	my @prefs = ();
 
-	if (scalar(keys %{Slim::Hardware::IR::mapfiles()}) > 1) {  
-		push @prefs, 'irmap';  
-	}
-
+	if ($client->isPlayer()) {
+		if (scalar(keys %{Slim::Hardware::IR::mapfiles()}) > 1) {  
+			push @prefs, 'irmap';  
+		}
 	
-	# If this is a settings update
-	if ($paramRef->{'submit'}) {
-
-		my @changed = ();
-		for my $pref (@prefs) {
-
-			# parse indexed array prefs.
-			if ($paramRef->{$pref} ne $client->prefGet($pref)) {
-				push @changed, $pref;
+		
+		# If this is a settings update
+		if ($paramRef->{'submit'}) {
+	
+			my @changed = ();
+			for my $pref (@prefs) {
+	
+				# parse indexed array prefs.
+				if ($paramRef->{$pref} ne $client->prefGet($pref)) {
+					push @changed, $pref;
+				}
+				
+				$client->prefSet($pref, $paramRef->{$pref} ) if defined $paramRef->{$pref};
+	
 			}
 			
-			$client->prefSet($pref, $paramRef->{$pref} ) if defined $paramRef->{$pref};
-
+			$client->prefDelete('disabledirsets');
+			
+			my @irsets = keys %{Slim::Hardware::IR::irfiles($client)};
+			for my $i (0 .. (scalar(@irsets)-1)) {
+			
+				if ($paramRef->{'irsetlist'.$i}) {
+					$client->prefPush('disabledirsets',$paramRef->{'irsetlist'.$i});
+				}
+				Slim::Hardware::IR::loadIRFile($irsets[$i]);
+			}
+			
+			$class->_handleChanges($client, \@changed, $paramRef);
+		}
+	
+		$paramRef->{'irmapOptions'}   = { %{Slim::Hardware::IR::mapfiles()}};
+		$paramRef->{'irsetlist'}      = { map {$_ => Slim::Hardware::IR::irfileName($_)} sort(keys %{Slim::Hardware::IR::irfiles($client)})};
+		$paramRef->{'disabledirsets'} = { map {$_ => 1} $client->prefGetArray('disabledirsets')};
+	
+		# Set current values for prefs
+		# load into prefs hash so that web template can detect exists/!exists
+		for my $pref (@prefs) {
+			
+			$paramRef->{'prefs'}->{$pref} = $client->prefGet($pref);
 		}
 		
-		$client->prefDelete('disabledirsets');
-		
-		my @irsets = keys %{Slim::Hardware::IR::irfiles($client)};
-		for my $i (0 .. (scalar(@irsets)-1)) {
-		
-			if ($paramRef->{'irsetlist'.$i}) {
-				$client->prefPush('disabledirsets',$paramRef->{'irsetlist'.$i});
-			}
-			Slim::Hardware::IR::loadIRFile($irsets[$i]);
-		}
-		
-		$class->_handleChanges($client, \@changed, $paramRef);
-	}
-
-	$paramRef->{'irmapOptions'}   = { %{Slim::Hardware::IR::mapfiles()}};
-	$paramRef->{'irsetlist'}      = { map {$_ => Slim::Hardware::IR::irfileName($_)} sort(keys %{Slim::Hardware::IR::irfiles($client)})};
-	$paramRef->{'disabledirsets'} = { map {$_ => 1} $client->prefGetArray('disabledirsets')};
-
-	# Set current values for prefs
-	# load into prefs hash so that web template can detect exists/!exists
-	for my $pref (@prefs) {
-		
-		$paramRef->{'prefs'}->{$pref} = $client->prefGet($pref);
+	} else {
+		# non-SD player, so no applicable display settings
+		$paramRef->{'warning'} = Slim::Utils::Strings::string('SETUP_NO_PREFS');
 	}
 
 	return $class->SUPER::handler($client, $paramRef);

Modified: trunk/server/strings.txt
URL: http://svn.slimdevices.com/trunk/server/strings.txt?rev=10701&r1=10700&r2=10701&view=diff
==============================================================================
--- trunk/server/strings.txt (original)
+++ trunk/server/strings.txt Thu Nov 16 00:47:41 2006
@@ -4072,6 +4072,12 @@
 	SV	Inställning for %s är ändrad.
 	ZH_CN	%s设置已更改。
 
+SETTINGS_CHANGED
+	EN	The following settings were changed:
+
+SETUP_NO_PREFS
+	EN	There are no settings for this player on this page
+
 SETUP_PASSWORD_CHANGED
 	DE	Das Passwort wurde geändert.
 	DA	Kodeordet er nu ændret.



More information about the checkins mailing list