diff options
-rw-r--r-- | inc/actions.php | 20 | ||||
-rw-r--r-- | inc/lang/en/lang.php | 2 | ||||
-rw-r--r-- | inc/template.php | 34 | ||||
-rw-r--r-- | lib/scripts/subscriptions.js | 6 | ||||
-rw-r--r-- | lib/tpl/default/_subscription.css | 21 | ||||
-rw-r--r-- | lib/tpl/default/design.css | 13 | ||||
-rw-r--r-- | lib/tpl/default/style.ini | 7 |
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 |