aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/styles
diff options
context:
space:
mode:
authorCallum Macrae <callum@lynxphp.com>2011-07-16 17:53:22 +0100
committerIgor Wiedler <igor@wiedler.ch>2012-03-31 02:00:22 +0200
commit8a28456f759747fc34aaf9a6589102fcace3acb6 (patch)
treed82292c8ef9ef7729a740de7de0fdc548e0c86c8 /phpBB/styles
parentc4aaf3ae5a2b0a720227a0eadcb62bea5671056a (diff)
downloadforums-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.html10
-rw-r--r--phpBB/styles/prosilver/theme/common.css4
-rw-r--r--phpBB/styles/script.js51
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> &raquo; {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> &nbsp;
+ <input class="button2" type="button" value="{L_DISAPPROVE}" name="action[disapprove]" /> &nbsp;
+ <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('&amp;', '&');
+ 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;
+});