Skip to content

Commit

Permalink
Item12481:
Browse files Browse the repository at this point in the history
   * remove dependency on SubscribePlugin
   * implement our own subscribe/unsubscribe rest handlers
   * added mode parameter to USERACTIONS to differentiate between short and long labels



git-svn-id: http://svn.foswiki.org/trunk/NatSkinPlugin@17162 0b4bb1d4-4e5a-0410-9cc4-b2b747904278
  • Loading branch information
MichaelDaum authored and MichaelDaum committed Dec 12, 2013
1 parent 5dc2d28 commit 3f1094c
Show file tree
Hide file tree
Showing 6 changed files with 227 additions and 93 deletions.
2 changes: 1 addition & 1 deletion data/System/NatSkinPlugin.txt
@@ -1,4 +1,4 @@
%META:TOPICINFO{author="micha" comment="save topic" date="1363520449" format="1.1" version="7"}%
%META:TOPICINFO{author="ProjectContributor" comment="save topic" date="1363520449" format="1.1" version="7"}%
---+!! The Natural Skin Plugin
%TOC%

Expand Down
25 changes: 16 additions & 9 deletions lib/Foswiki/Plugins/NatSkinPlugin.pm
Expand Up @@ -30,8 +30,8 @@ use Foswiki::Plugins::NatSkinPlugin::WebComponent ();
our $baseWeb;
our $baseTopic;

our $VERSION = '3.99_007';
our $RELEASE = '3.99_007';
our $VERSION = '3.99_008';
our $RELEASE = '3.99_008';
our $NO_PREFS_IN_TOPIC = 1;
our $SHORTDESCRIPTION = 'Support plugin for <nop>NatSkin';
our $themeEngine;
Expand Down Expand Up @@ -88,15 +88,22 @@ sub initPlugin {

Foswiki::Func::registerTagHandler('HTMLTITLE', sub {
require Foswiki::Plugins::NatSkinPlugin::HtmlTitle;
return Foswiki::Plugins::NatSkinPlugin::HtmlTitle::render(@_);;
return Foswiki::Plugins::NatSkinPlugin::HtmlTitle::render(@_);
});

if ($Foswiki::cfg{Plugins}{SubscribePlugin}{Enabled}) {
Foswiki::Func::registerTagHandler('IFSUBSCRIBED', sub {
require Foswiki::Plugins::NatSkinPlugin::Subscribe;
return Foswiki::Plugins::NatSkinPlugin::Subscribe::render(@_);;
});
}
Foswiki::Func::registerTagHandler('IFSUBSCRIBED', sub {
require Foswiki::Plugins::NatSkinPlugin::Subscribe;
return Foswiki::Plugins::NatSkinPlugin::Subscribe::render(@_);
});

Foswiki::Func::registerRESTHandler('subscribe', sub {
require Foswiki::Plugins::NatSkinPlugin::Subscribe;
return Foswiki::Plugins::NatSkinPlugin::Subscribe::restSubscribe(@_);
});
Foswiki::Func::registerRESTHandler('unsubscribe', sub {
require Foswiki::Plugins::NatSkinPlugin::Subscribe;
return Foswiki::Plugins::NatSkinPlugin::Subscribe::restSubscribe(@_);
});

Foswiki::Func::registerTagHandler('WEBCOMPONENT', sub {
return Foswiki::Plugins::NatSkinPlugin::WebComponent::render(@_);
Expand Down
9 changes: 6 additions & 3 deletions lib/Foswiki/Plugins/NatSkinPlugin/DEPENDENCIES
@@ -1,15 +1,18 @@
Foswiki::Contrib::FamFamFamContrib,>=2075,perl,Required.
Foswiki::Plugins::AutoTemplatePlugin,>=1.11,perl,Required
Foswiki::Plugins::AutoTemplatePlugin,>=2.01,perl,Required
Foswiki::Plugins::BreadCrumbsPlugin,>=4318,perl,Required
Foswiki::Plugins::CaptchaPlugin,>=2.0.0,perl,Optional
Foswiki::Plugins::DBCachePlugin,>=1,perl,Optional
Foswiki::Plugins::FilterPlugin,>=3491,perl,Required
Foswiki::Plugins::FlexWebListPlugin,>=3493,perl,Required
Foswiki::Plugins::ImagePlugin,>=2.40,perl,Required
Foswiki::Plugins::ImagePlugin,>=6307,perl,Optional
Foswiki::Plugins::JQueryPlugin,>=3740,perl,Required
Foswiki::Plugins::JQueryPlugin,>=4.91,perl,Required
Foswiki::Plugins::MimeIconPlugin,>=1,perl,Required
Foswiki::Plugins::NatEditPlugin,>=1993,perl,Required
Foswiki::Plugins::RenderPlugin,>=3644,perl,Required
Foswiki::Plugins::PageOptimizerPlugin,>=0.10,perl,Optional
Foswiki::Plugins::TopicInteractionPlugin,>=1340,perl,Required
Foswiki::Plugins::ImagePlugin,>=2.40,perl,Required
Foswiki::Plugins::WebLinkPlugin,>=1,perl,Optional
ONLYIF ( $Foswiki::Plugins::VERSION < 2.1)
Foswiki::Plugins::ZonePlugin,>=3.1,perl,Required. required for Foswiki < 1.1
26 changes: 25 additions & 1 deletion lib/Foswiki/Plugins/NatSkinPlugin/Subscribe.pm
Expand Up @@ -22,11 +22,12 @@ use warnings;

use Foswiki::Func ();
use Foswiki::Contrib::MailerContrib ();
use Error qw (:try);

sub render {
my ($session, $params, $theTopic, $theWeb) = @_;

Foswiki::Func::addToZone('skinjs', 'NATSKIN::SUBSCRIBE', <<'HERE', 'NATSKIN::JS');
Foswiki::Func::addToZone('skinjs', 'NATSKIN::SUBSCRIBE', <<'HERE', 'NATSKIN::JS, JQUERYPLUGIN::BLOCKUI');
<script src="%PUBURLPATH%/%SYSTEMWEB%/NatSkin/subscribe.js"></script>
HERE

Expand All @@ -43,4 +44,27 @@ HERE
return Foswiki::Contrib::MailerContrib::isSubscribedTo($web, $who, $topic) ? $then : $else;
}

sub restSubscribe {
my ($session, $plugin, $verb, $response) = @_;

my $request = Foswiki::Func::getRequestObject();

my $web = $session->{webName};
my $topic = $session->{topicName};

throw Error::Simple("topic does not exist")
unless Foswiki::Func::topicExists($web, $topic);

my $user = Foswiki::Func::getWikiName();

throw Error::Simple("bad subscriber")
if $user eq $Foswiki::cfg{DefaultUserWikiName};

if ($verb eq 'subscribe') {
Foswiki::Contrib::MailerContrib::changeSubscription($web, $user, $topic);
} else {
Foswiki::Contrib::MailerContrib::changeSubscription($web, $user, $topic, "-");
}
}

1;
4 changes: 3 additions & 1 deletion lib/Foswiki/Plugins/NatSkinPlugin/ThemeEngine.pm
Expand Up @@ -344,7 +344,9 @@ sub init {
}

# store session prefs
Foswiki::Func::setPreferencesValue('SKIN', join(', ', @newSkin));
my $newSkin = join(', ', @newSkin);
writeDebug("setting SKIN to '$newSkin'");
Foswiki::Func::setPreferencesValue('SKIN', $newSkin);

if ($this->{skinState}{"action"} eq 'view') {
Foswiki::Func::loadTemplate('sidebar');
Expand Down

0 comments on commit 3f1094c

Please sign in to comment.