summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/actions.php20
-rw-r--r--inc/lang/en/lang.php2
-rw-r--r--inc/template.php34
-rw-r--r--lib/scripts/subscriptions.js6
-rw-r--r--lib/tpl/default/_subscription.css21
-rw-r--r--lib/tpl/default/design.css13
-rw-r--r--lib/tpl/default/style.ini7
7 files changed, 55 insertions, 48 deletions
diff --git a/inc/actions.php b/inc/actions.php
index 900409a90..1fda0584e 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -558,19 +558,21 @@ function act_export($act){
* @author Adrian Lang <lang@cosmocode.de>
*/
function act_subscription($act){
- if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
- // No post to handle, let tpl_subscribe manage the request.
- return $act;
- }
+ global $lang;
+ global $INFO;
+ global $ID;
- // Get and preprocess data.
+ // get and preprocess data.
$params = array();
foreach(array('target', 'style', 'action') as $param) {
- if (isset($_POST["subscribe_$param"])) {
- $params[$param] = $_POST["subscribe_$param"];
+ if (isset($_REQUEST["sub_$param"])) {
+ $params[$param] = $_REQUEST["sub_$param"];
}
}
+ // any action given? if not just return and show the subscription page
+ if(!$params['action']) return $act;
+
// Handle POST data, may throw exception.
trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, 'subscription_handle_post');
@@ -579,9 +581,6 @@ function act_subscription($act){
$data = $params['data'];
$action = $params['action'];
- global $lang;
- global $INFO;
-
// Perform action.
require_once DOKU_INC . 'inc/subscription.php';
if (!subscription_set($_SERVER['REMOTE_USER'], $target, $style, $data)) {
@@ -591,7 +590,6 @@ function act_subscription($act){
}
msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']),
prettyprint_id($target)), 1);
- global $ID;
act_redirect($ID, $act);
// Assure that we have valid data if act_redirect somehow fails.
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php
index b97713a75..98ded12ca 100644
--- a/inc/lang/en/lang.php
+++ b/inc/lang/en/lang.php
@@ -223,7 +223,7 @@ $lang['subscr_m_new_header'] = 'Add subscription';
$lang['subscr_m_current_header'] = 'Current subscriptions';
$lang['subscr_m_unsubscribe'] = 'Unsubscribe';
$lang['subscr_m_subscribe'] = 'Subscribe';
-
+$lang['subscr_m_receive'] = 'Receive';
$lang['subscr_style_every'] = 'email on every change';
$lang['subscr_style_digest'] = 'digest email of changes for each page';
$lang['subscr_style_list'] = 'list of changed pages since last email';
diff --git a/inc/template.php b/inc/template.php
index 6b0314b84..84fbda051 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -1366,24 +1366,21 @@ function tpl_subscribe() {
echo '<p>' . $lang['subscr_m_not_subscribed'] . '</p>';
} else {
echo '<ul>';
-
foreach($INFO['subscribed'] as $sub) {
- $form = new Doku_Form(array('class' => 'unsubscribe'));
+ echo '<li><div class="li">';
if ($sub['target'] !== $ID) {
- $stgt = '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>';
+ echo '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>';
} else {
- $stgt = '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>';
+ echo '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>';
}
$sstl = $lang['subscr_style_'.$sub['style']];
if(!$sstl) $sstl = hsc($sub['style']);
+ echo ' ('.$sstl.') ';
+
+ echo '<a href="'.wl($ID,array('do'=>'subscribe','sub_target'=>$sub['target'],'sub_style'=>$sub['style'],'sub_action'=>'unsubscribe')).'" class="unsubscribe">'.$lang['subscr_m_unsubscribe'].'</a>';
+
- $form->addElement('<li><div class="li">'.$stgt.' ('.$sstl.') ');
- $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_unsubscribe']));
- $form->addHidden('subscribe_target', $sub['target']);
- $form->addHidden('subscribe_style', $sub['style']);
- $form->addHidden('subscribe_action', 'unsubscribe');
- $form->addElement('</div></li>');
- html_form('UNSUBSCRIBE', $form);
+ echo '</div></li>';
}
echo '</ul>';
}
@@ -1403,12 +1400,15 @@ function tpl_subscribe() {
'list' => $lang['subscr_style_list'],
);
- $form = new Doku_Form(array('id' => 'subscribe'));
- $form->addElement('<p>' . 'Subscribe to' . '</p>');
- $form->addRadioSet('subscribe_target', $targets);
- $form->addElement('<p>' . 'Receive' . '</p>');
- $form->addRadioSet('subscribe_style', $styles);
- $form->addHidden('subscribe_action', 'subscribe');
+ $form = new Doku_Form(array('id' => 'subscribe__form'));
+ $form->startFieldset($lang['subscr_m_subscribe']);
+ $form->addRadioSet('sub_target', $targets);
+ $form->startFieldset($lang['subscr_m_receive']);
+ $form->addRadioSet('sub_style', $styles);
+ $form->addHidden('sub_action', 'subscribe');
+ $form->addHidden('do', 'subscribe');
+ $form->addHidden('id', $ID);
+ $form->endFieldset();
$form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe']));
html_form('SUBSCRIBE', $form);
echo '</div>';
diff --git a/lib/scripts/subscriptions.js b/lib/scripts/subscriptions.js
index 9f602dde8..2af4ee8c4 100644
--- a/lib/scripts/subscriptions.js
+++ b/lib/scripts/subscriptions.js
@@ -5,7 +5,7 @@
*/
addInitEvent(function () {
- var form = $('subscribe');
+ var form = $('subscribe__form');
if (!form) {
return;
}
@@ -31,13 +31,13 @@ addInitEvent(function () {
var inputs = form.getElementsByTagName('input');
for (var i = 0; i < inputs.length ; ++i) {
switch (inputs[i].name) {
- case 'subscribe_target':
+ case 'sub_target':
inputs[i].addEventListener('change', update_state, false);
if (inputs[i].checked) {
cur_sel = inputs[i];
}
break;
- case 'subscribe_style':
+ case 'sub_style':
styleradios[inputs[i].value] = inputs[i];
break;
}
diff --git a/lib/tpl/default/_subscription.css b/lib/tpl/default/_subscription.css
new file mode 100644
index 000000000..0792c8c21
--- /dev/null
+++ b/lib/tpl/default/_subscription.css
@@ -0,0 +1,21 @@
+/**
+ * Styles for the subscription page
+ */
+
+form#subscribe__form {
+ display: block;
+ width: 300px;
+ text-align: center;
+}
+
+form#subscribe__form fieldset {
+ text-align: left;
+ margin: 0.5em 0;
+}
+
+form#subscribe__form label {
+ display:block;
+ margin: 0 0.5em 0.5em;
+}
+
+
diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css
index 02804256c..9c3e7b119 100644
--- a/lib/tpl/default/design.css
+++ b/lib/tpl/default/design.css
@@ -834,16 +834,3 @@ div.dokuwiki div.imagemeta img.thumb {
margin-right: 0.1em;
}
-form#subscribe p {
- margin: 0.5em 0;
-}
-
-form#subscribe label {
- display:block;
- margin: 0 0.5em 0.5em;
-}
-
-form#subscribe fieldset, form#unsubscribe fieldset {
- text-align:inherit;
- margin: 0;
-}
diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini
index dfd5500fa..84d04e743 100644
--- a/lib/tpl/default/style.ini
+++ b/lib/tpl/default/style.ini
@@ -10,9 +10,10 @@ layout.css = screen
design.css = screen
style.css = screen
-media.css = screen
-_admin.css = screen
-_linkwiz.css = screen
+media.css = screen
+_admin.css = screen
+_linkwiz.css = screen
+_subscription.css = screen
rtl.css = rtl
print.css = print