[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