1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[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
This commit is contained in:
Callum Macrae
2011-07-16 17:53:22 +01:00
committed by Igor Wiedler
parent c4aaf3ae5a
commit 8a28456f75
6 changed files with 68 additions and 2 deletions

View File

@@ -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>

View File

@@ -658,6 +658,10 @@ p.rules {
p.rules img {
vertical-align: middle;
}
p.rules strong {
vertical-align: middle;
padding-top: 5px;
}

View File

@@ -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;
});