From 8a28456f759747fc34aaf9a6589102fcace3acb6 Mon Sep 17 00:00:00 2001 From: Callum Macrae Date: Sat, 16 Jul 2011 17:53:22 +0100 Subject: [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 --- .../styles/prosilver/template/viewtopic_body.html | 10 ++++- phpBB/styles/prosilver/theme/common.css | 4 ++ phpBB/styles/script.js | 51 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) (limited to 'phpBB/styles') 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 @@

{postrow.MINI_POST_IMG}{postrow.MINI_POST_IMG}{L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} » {postrow.POST_DATE}

+

- {UNAPPROVED_IMG} {L_POST_UNAPPROVED}
+ + {UNAPPROVED_IMG} {L_POST_UNAPPROVED}   +   + + + {S_FORM_TOKEN} +
{REPORTED_IMG} {L_POST_REPORTED}

+
{postrow.MESSAGE}
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; +}); -- cgit v1.2.1