[Slim-Checkins] r10633 - in /trunk/server/Slim/Web: Settings.pm Settings/Server/Basic.pm

kdf at svn.slimdevices.com kdf at svn.slimdevices.com
Wed Nov 8 20:26:27 PST 2006


Author: kdf
Date: Wed Nov  8 20:26:27 2006
New Revision: 10633

URL: http://svn.slimdevices.com?rev=10633&view=rev
Log:
Bug: 3267
Description: update for Basic setting handler. Looks for registered importers for ML/MIP/itunes setting options


Modified:
    trunk/server/Slim/Web/Settings.pm
    trunk/server/Slim/Web/Settings/Server/Basic.pm

Modified: trunk/server/Slim/Web/Settings.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings.pm?rev=10633&r1=10632&r2=10633&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings.pm (original)
+++ trunk/server/Slim/Web/Settings.pm Wed Nov  8 20:26:27 2006
@@ -46,8 +46,8 @@
 
 	$paramRef->{'page'} = $class->name;
 
-        # Needed to generate the drop down settings chooser list.
-        $paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
 
 	return Slim::Web::HTTP::filltemplatefile($class->page, $paramRef);
 }

Modified: trunk/server/Slim/Web/Settings/Server/Basic.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Settings/Server/Basic.pm?rev=10633&r1=10632&r2=10633&view=diff
==============================================================================
--- trunk/server/Slim/Web/Settings/Server/Basic.pm (original)
+++ trunk/server/Slim/Web/Settings/Server/Basic.pm Wed Nov  8 20:26:27 2006
@@ -10,6 +10,8 @@
 use strict;
 use base qw(Slim::Web::Settings);
 
+use Slim::Utils::Log;
+
 sub name {
 	return 'BASIC_SERVER_SETTINGS';
 }
@@ -19,23 +21,86 @@
 }
 
 sub handler {
-	my ($class, $client, $paramRef, $pageSetup) = @_;
+	my ($class, $client, $paramRef) = @_;
 
-	# itunes, musicmagic & moodlogic here?
 	my @prefs = qw(language audiodir playlistdir rescantype rescan);
 
-	for my $pref (@prefs) {
+	if (grep {$_ =~ 'iTunes'} keys %Slim::Music::Import::Importers) {
+		push @prefs, 'itunes';
+		$paramRef->{'itunesavailable'} = 1;
+	}
+	
+	if (grep {$_ =~ 'MusicMagic'} keys %Slim::Music::Import::Importers) {
+		push @prefs, 'musicmagic';
+		$paramRef->{'musicmagicavailable'} = 1;
+	}
+	
+	if (grep {$_ =~ 'MoodLogic'} keys %Slim::Music::Import::Importers) {
+		push @prefs, 'moodlogic';
+		$paramRef->{'moodlogicavailable'} = 1;
+	}
 
-		# If this is a settings update
-		if ($paramRef->{'submit'}) {
+	if ($paramRef->{'rescan'}) {
+		my $rescanType = ['rescan'];
 
-			Slim::Utils::Prefs::set($pref, $paramRef->{$pref});
+		if ($paramRef->{'rescantype'} eq '2wipedb') {
+
+			$rescanType = ['wipecache'];
+
+		} elsif ($paramRef->{'rescantype'} eq '3playlist') {
+
+			$rescanType = [qw(rescan playlists)];
 		}
 
+		logger('scan.scanner')->info(sprintf("Initiating scan of type: %s",join (" ",@{$rescanType})));
+
+		Slim::Control::Request::executeRequest($client, $rescanType);
+	}
+	
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		if ($paramRef->{'language'} ne Slim::Utils::Prefs::get('language')) {
+		
+			Slim::Utils::Prefs::set('language', $paramRef->{'language'});
+			Slim::Utils::PluginManager::clearPlugins();
+			Slim::Utils::Strings::init();
+			Slim::Web::Setup::initSetup();
+			Slim::Utils::PluginManager::initPlugins();
+			Slim::Music::Import->resetSetupGroups;
+
+		}
+
+		for my $pref (@prefs) {
+
+			if ($pref eq 'playlistdir' || $pref eq 'audiodir') {
+				if ($paramRef->{$pref} ne Slim::Utils::Prefs::get($pref)) {
+					
+					my ($validDir, $errMsg) = Slim::Utils::Validate::isDir($paramRef->{$pref});
+					
+					if (!$validDir && $paramRef->{$pref} ne "") {
+						$paramRef->{'warning'} .= sprintf(string("SETUP_BAD_DIRECTORY"),$paramRef->{$pref});
+	
+						delete $paramRef->{$pref};
+					}
+				}
+			}
+
+			Slim::Utils::Prefs::set($pref, $paramRef->{$pref}) if $paramRef->{$pref};
+		}
+	}
+
+	my @versions = Slim::Utils::Misc::settingsDiagString();
+	$paramRef->{'versionInfo'} = join( "<br />\n", @versions ) . "\n<p>";
+	$paramRef->{'newVersion'}  = $::newVersion;
+
+	$paramRef->{'languageoptions'} = {Slim::Utils::Strings::hash_of_languages()};
+
+	for my $pref (@prefs) {
 		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
 	}
-
-	return $class->SUPER::handler($client, $paramRef, $pageSetup);
+	
+	return $class->SUPER::handler($client, $paramRef);
 }
 
 1;



More information about the checkins mailing list