aboutsummaryrefslogtreecommitdiffstats
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
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
-rw-r--r--phpBB/language/en/common.php2
-rw-r--r--phpBB/language/en/viewtopic.php2
-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
-rw-r--r--phpBB/viewtopic.php1
6 files changed, 68 insertions, 2 deletions
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 94edddc6f5..19b801e585 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -476,7 +476,7 @@ $lang = array_merge($lang, array(
'POST_SUBJECT' => 'Post subject',
'POST_TIME' => 'Post time',
'POST_TOPIC' => 'Post a new topic',
- 'POST_UNAPPROVED' => 'This post is waiting for approval',
+ 'POST_UNAPPROVED' => 'Post awaiting approval:',
'PREVIEW' => 'Preview',
'PREVIOUS' => 'Previous', // Used in pagination
'PREVIOUS_STEP' => 'Previous',
diff --git a/phpBB/language/en/viewtopic.php b/phpBB/language/en/viewtopic.php
index f47f8a076b..1460490672 100644
--- a/phpBB/language/en/viewtopic.php
+++ b/phpBB/language/en/viewtopic.php
@@ -35,6 +35,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
+ 'APPROVE' => 'Approve',
'ATTACHMENT' => 'Attachment',
'ATTACHMENT_FUNCTIONALITY_DISABLED' => 'The attachments feature has been disabled.',
@@ -49,6 +50,7 @@ $lang = array_merge($lang, array(
'CODE' => 'Code',
'DELETE_TOPIC' => 'Delete topic',
+ 'DISAPPROVE' => 'Disapprove',
'DOWNLOAD_NOTICE' => 'You do not have the required permissions to view the files attached to this post.',
'EDITED_TIMES_TOTAL' => array(
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;
+});
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 8a95851b7e..1ce80568b6 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -1534,6 +1534,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
'U_YIM' => $user_cache[$poster_id]['yim'],
'U_JABBER' => $user_cache[$poster_id]['jabber'],
+ 'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&amp;p={$row['post_id']}&amp;f=$forum_id"),
'U_REPORT' => ($auth->acl_get('f_report', $forum_id)) ? append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $row['post_id']) : '',
'U_MCP_REPORT' => ($auth->acl_get('m_report', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $forum_id . '&amp;p=' . $row['post_id'], true, $user->session_id) : '',
'U_MCP_APPROVE' => ($auth->acl_get('m_approve', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&amp;mode=approve_details&amp;f=' . $forum_id . '&amp;p=' . $row['post_id'], true, $user->session_id) : '',