[Slim-Checkins] r10827 - in /trunk/server/Plugins/RSSNews: HTML/ HTML/EN/ HTML/EN/plugins/ HTML/EN/plugins/RSSNews/ HTML/EN/plugins/RSSNews/settings/ HTML/EN/plugins/RSSNews/settings/basic.html Plugin.pm Settings.pm

dsully at svn.slimdevices.com dsully at svn.slimdevices.com
Fri Dec 1 15:13:39 PST 2006


Author: dsully
Date: Fri Dec  1 15:13:39 2006
New Revision: 10827

URL: http://svn.slimdevices.com?rev=10827&view=rev
Log:
Bug: N/A
Description: Convert RSSNews

Added:
    trunk/server/Plugins/RSSNews/HTML/
    trunk/server/Plugins/RSSNews/HTML/EN/
    trunk/server/Plugins/RSSNews/HTML/EN/plugins/
    trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/
    trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/
    trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html   (with props)
    trunk/server/Plugins/RSSNews/Settings.pm   (with props)
Modified:
    trunk/server/Plugins/RSSNews/Plugin.pm

Added: trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html
URL: http://svn.slimdevices.com/trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html?rev=10827&view=auto
==============================================================================
--- trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html (added)
+++ trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html Fri Dec  1 15:13:39 2006
@@ -1,0 +1,46 @@
+[% PROCESS settings/header.html %]
+
+	<div class="settingSection">
+		<div class="groupHead">[% "PLUGIN_RSSNEWS" | string | upper %]</div>
+		<div class="groupDesc">[% "SETUP_GROUP_PLUGIN_RSSNEWS_DESC" | string %]</div>
+	</div>
+
+	<div class="settingSection">
+		<div class="prefHead">[% "SETUP_PLUGIN_RSSNEWS_ITEMS_PER_FEED" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_PLUGIN_RSSNEWS_ITEMS_PER_FEED_DESC" | string %]</div>
+
+		<input type="text" class="stdedit" name="plugin_RssNews_items_per_feed" id="plugin_RssNews_items_per_feed" value="[% prefs.plugin_RssNews_items_per_feed %]" size="5" />
+
+	</div>
+
+	<div class="settingSection">
+		<div class="prefHead">[% "SETUP_PLUGIN_RSSNEWS_FEEDS" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_PLUGIN_RSSNEWS_FEEDS_DESC" | string %]</div>
+
+		<table border="0" cellspacing="7" cellpadding="7">
+
+			<tr>
+			<td><label for="new_feed" class="stdlabel">[% "SETUP_PLUGIN_PODCAST_ADD_FEED" | string %]</label></td>
+
+			<td><input type="text" class="stdedit" name="plugin_podcast_feeds" id="new_feed" value="" size="60" /></td>
+			</tr>
+
+			<tr></tr>
+			<tr></tr>
+			<tr><td><label>[% "SETUP_PLUGIN_PODCAST_EXISTING_FEEDS" | string %]</label></td><td></td></tr>
+
+		[% FOREACH pref = prefs.feeds %]
+
+			<tr>
+			<td><label for="plugin_podcast_feeds" class="stdlabel">[% pref.1 %]</label></td>
+
+			<td><input type="text" class="stdedit" name="plugin_podcast_feeds" id="plugin_podcast_feeds" value="[% pref.0 %]" size="60" /></td>
+
+			</tr>
+
+		[% END %]
+
+		</table>
+	</div>
+
+[% PROCESS settings/footer.html %]

Propchange: trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html
------------------------------------------------------------------------------
    svn:keywords = Id Author LastChangedDate LastChangedBy

Propchange: trunk/server/Plugins/RSSNews/HTML/EN/plugins/RSSNews/settings/basic.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Modified: trunk/server/Plugins/RSSNews/Plugin.pm
URL: http://svn.slimdevices.com/trunk/server/Plugins/RSSNews/Plugin.pm?rev=10827&r1=10826&r2=10827&view=diff
==============================================================================
--- trunk/server/Plugins/RSSNews/Plugin.pm (original)
+++ trunk/server/Plugins/RSSNews/Plugin.pm Fri Dec  1 15:13:39 2006
@@ -18,6 +18,8 @@
 
 use HTML::Entities;
 use XML::Simple;
+
+use Plugins::RSSNews::Settings;
 
 use Slim::Buttons::XMLBrowser;
 use Slim::Formats::XML;
@@ -81,6 +83,8 @@
 
 	$log->info("Initializing.");
 
+	Plugins::RSSNews::Settings->new;
+
 	Slim::Buttons::Common::addMode('PLUGIN.RSS', getFunctions(), \&setMode);
 
 	my @feedURLPrefs  = Slim::Utils::Prefs::getArray("plugin_RssNews_feeds");
@@ -245,73 +249,6 @@
 	$cache->set( 'rss_opml', $opml, '10days' );
 }
 
-# for configuring via web interface
-sub setupGroup {
-	my %Group = (
-		PrefOrder => [
-			'plugin_RssNews_items_per_feed',
-			'plugin_RssNews_reset',
-			'plugin_RssNews_feeds',
-		],
-		GroupHead => 'PLUGIN_RSSNEWS',
-		GroupDesc => 'SETUP_GROUP_PLUGIN_RSSNEWS_DESC',
-		GroupLine => 1,
-		GroupSub  => 1,
-		Suppress_PrefSub  => 1,
-		Suppress_PrefLine => 1,
-	);
-
-	my %Prefs = (
-		
-		plugin_RssNews_items_per_feed => {
-			'validate'       => \&Slim::Utils::Validate::isInt,
-			'validateArgs'  => [1,undef,1],
-			'onChange'      => sub {
-				$screensaver_items_per_feed = $_[1]->{plugin_RssNews_items_per_feed}->{new};
-				Slim::Utils::Prefs::set('plugin_RssNews_items_per_feed', $screensaver_items_per_feed);
-			},
-		},
-		
-		plugin_RssNews_reset => {
-			'onChange'      => sub {
-				Slim::Utils::Prefs::set("plugin_RssNews_feeds_modified", undef);
-				Slim::Utils::Prefs::set("plugin_RssNews_feeds_version", undef);
-				revertToDefaults();
-			},
-			'inputTemplate' => 'setup_input_submit.html',
-			'changeIntro'   => 'PLUGIN_RSSNEWS_RESETTING',
-			'ChangeButton'  => 'SETUP_PLUGIN_RSSNEWS_RESET_BUTTON',
-			'dontSet'       => 1,
-			'changeMsg'     => '',
-		},
-
-		plugin_RssNews_feeds => { 
-			'isArray'          => 1,
-			'arrayAddExtra'    => 1,
-			'arrayDeleteNull'  => 1,
-			'arrayDeleteValue' => '',
-			'arrayBasicValue'  => 0,
-			'PrefSize'         => 'large',
-			'inputTemplate'    => 'setup_input_array_txt.html',
-			'PrefInTable'      => 1,
-			'showTextExtValue' => 1,
-			'externalValue'    => sub {
-				my ($client, $value, $key) = @_;
-
-				if ($key =~ /^(\D*)(\d+)$/ && ($2 < scalar(@feeds))) {
-					return $feeds[$2]->{'name'};
-				}
-
-				return '';
-			},
-			'onChange'         => \&updateFeedNames,
-			'changeMsg'        => 'SETUP_PLUGIN_RSSNEWS_FEEDS_CHANGE',
-		},
-	);
-
-	return (\%Group, \%Prefs);
-}
-
 sub updateFeedNames {
 	my @feedURLPrefs = Slim::Utils::Prefs::getArray("plugin_RssNews_feeds");
 	my @feedNamePrefs;
@@ -396,7 +333,6 @@
 		
 		updateOPMLCache( \@feeds );
 	}
-
 }
 
 ################################

Added: trunk/server/Plugins/RSSNews/Settings.pm
URL: http://svn.slimdevices.com/trunk/server/Plugins/RSSNews/Settings.pm?rev=10827&view=auto
==============================================================================
--- trunk/server/Plugins/RSSNews/Settings.pm (added)
+++ trunk/server/Plugins/RSSNews/Settings.pm Fri Dec  1 15:13:39 2006
@@ -1,0 +1,59 @@
+package Plugins::RSSNews::Settings;
+
+# SlimServer Copyright (C) 2001-2006 Slim Devices Inc.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License,
+# version 2.
+
+use strict;
+use base qw(Slim::Web::Settings);
+
+sub name {
+        return 'PLUGIN_RSSNews';
+}
+
+sub page {
+        return 'plugins/RSSNews/settings/basic.html';
+}
+
+sub handler {
+        my ($class, $client, $params) = @_;
+
+	my @prefs = qw(
+		plugin_RssNews_items_per_feed
+	);
+
+	if ($params->{'submit'}) {
+
+		# Remove empty feeds.
+		my @feeds = grep { $_ ne '' } @{$params->{'plugin_RssNews_feeds'}};
+
+		Slim::Utils::Prefs::set('plugin_RssNews_feeds', \@feeds);
+
+		Plugins::RSSNews::Plugin::updateFeedNames();
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref, $params->{$pref});
+		}
+	}
+
+	my @feeds = Slim::Utils::Prefs::getArray('plugin_RssNews_feeds');
+	my @names = Slim::Utils::Prefs::getArray('plugin_RssNews_names');
+
+	for (my $i = 0; $i < @feeds; $i++) {
+
+		push @{$params->{'prefs'}->{'feeds'}}, [ $feeds[$i], $names[$i] ];
+        }
+
+	for my $pref (@prefs) {
+
+		$params->{'prefs'}->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+
+        return $class->SUPER::handler($client, $params);
+}
+
+1;
+
+__END__

Propchange: trunk/server/Plugins/RSSNews/Settings.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: trunk/server/Plugins/RSSNews/Settings.pm
------------------------------------------------------------------------------
    svn:keywords = Id Author LastChangedDate LastChangedBy

Propchange: trunk/server/Plugins/RSSNews/Settings.pm
------------------------------------------------------------------------------
    svn:mime-type = text/plain



More information about the checkins mailing list