diff options
| author | Callum Macrae <callum@lynxphp.com> | 2011-07-16 17:53:22 +0100 |
|---|---|---|
| committer | Igor Wiedler <igor@wiedler.ch> | 2012-03-31 02:00:22 +0200 |
| commit | 8a28456f759747fc34aaf9a6589102fcace3acb6 (patch) | |
| tree | d82292c8ef9ef7729a740de7de0fdc548e0c86c8 /phpBB/styles | |
| parent | c4aaf3ae5a2b0a720227a0eadcb62bea5671056a (diff) | |
| download | forums-8a28456f759747fc34aaf9a6589102fcace3acb6.tar forums-8a28456f759747fc34aaf9a6589102fcace3acb6.tar.gz forums-8a28456f759747fc34aaf9a6589102fcace3acb6.tar.bz2 forums-8a28456f759747fc34aaf9a6589102fcace3acb6.tar.xz forums-8a28456f759747fc34aaf9a6589102fcace3acb6.zip | |
[ticket/10273] AJAXified approve / disapprove posts (in viewtopic).
This commit AJAXifies the moderator approval functionality, and adds it to
viewtopic instead of the MCP. This commit has involved some language changes,
which may affect fallbacks.
PHPBB3-10273
Diffstat (limited to 'phpBB/styles')
| -rw-r--r-- | phpBB/styles/prosilver/template/viewtopic_body.html | 10 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/theme/common.css | 4 | ||||
| -rw-r--r-- | phpBB/styles/script.js | 51 |
3 files changed, 64 insertions, 1 deletions
diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html index 59e464d22e..5571ce07c4 100644 --- a/phpBB/styles/prosilver/template/viewtopic_body.html +++ b/phpBB/styles/prosilver/template/viewtopic_body.html @@ -135,10 +135,18 @@ <p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF -->{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> » {postrow.POST_DATE} </p> <!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED --> + <form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}"> <p class="rules"> - <!-- IF postrow.S_POST_UNAPPROVED -->{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a><br /><!-- ENDIF --> + <!-- IF postrow.S_POST_UNAPPROVED --> + {UNAPPROVED_IMG} <strong>{L_POST_UNAPPROVED}</strong> + <input class="button2" type="button" value="{L_DISAPPROVE}" name="action[disapprove]" /> + <input class="button1" type="button" value="{L_APPROVE}" name="action[approve]" /> + <input type="hidden" name="post_id_list[]" value="{postrow.POST_ID}" /> + {S_FORM_TOKEN} + <br /><!-- ENDIF --> <!-- IF postrow.S_POST_REPORTED -->{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a><!-- ENDIF --> </p> + </form> <!-- ENDIF --> <div class="content">{postrow.MESSAGE}</div> diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css index 5cf12be1ce..6b34bb1c3d 100644 --- a/phpBB/styles/prosilver/theme/common.css +++ b/phpBB/styles/prosilver/theme/common.css @@ -658,6 +658,10 @@ p.rules { p.rules img { vertical-align: middle; +} + +p.rules strong { + vertical-align: middle; padding-top: 5px; } diff --git a/phpBB/styles/script.js b/phpBB/styles/script.js index 4e0566a9a5..b5dec2ca0a 100644 --- a/phpBB/styles/script.js +++ b/phpBB/styles/script.js @@ -86,6 +86,18 @@ function handle_refresh(data, refresh, div) } } +function parse_hidden(inputs) +{ + var end = []; + $(inputs).each(function() { + if (this.type === 'hidden') + { + end.push(this.name + '=' + this.value); + } + }); + return end.join('&'); +} + /** * This function interacts via AJAX with phpBBs confirm_box function. @@ -175,3 +187,42 @@ phpbb.ajaxify('a[href*="watch=forum"]', false, function(el, res) { }); phpbb.ajaxify('a[href*="mode=bump"]'); phpbb.ajaxify('a[href*="mark="]'); //captures topics and forums + + + +/** + * Forms have to be captured manually, as they're all different. + */ +$('input[name^="action"]').click(function(e) { + var __self = this; + var path = $(this).parents('form')[0].action.replace('&', '&'); + var action = (this.name === 'action[approve]') ? 'approve' : 'disapprove'; + var data = { + action: action, + post_id_list: [$(this).siblings('input[name="post_id_list[]"]')[0].value] + }; + $.post(path, data, function(res) { + res = JSON.parse(res); + phpbb.confirm(res.MESSAGE_TEXT, function(del) { + if (del) + { + path = res.S_CONFIRM_ACTION; + data = parse_hidden(res.S_HIDDEN_FIELDS); + $.post(path, data + '&confirm=Yes', function(res) { + console.log(res); + res = JSON.parse(res); + var alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); + + $(__self).parents((action === 'approve') ? '.rules' : '.post').remove(); + + setTimeout(function() { + alert.hide(300, function() { + alert.remove(); + }); + }, 5000); + }); + } + }); + }); + return false; +}); |
