mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-12 01:50:48 +01:00
Merge pull request #693 from Zankaria/premade-ban-reasons
Add premade ban reasons
This commit is contained in:
commit
45f476084e
@ -688,6 +688,27 @@
|
||||
// a link to an email address or IRC chat room to appeal the ban.
|
||||
$config['ban_page_extra'] = '';
|
||||
|
||||
// Pre-configured ban reasons that pre-fill the ban form when clicked.
|
||||
// $config['premade_ban_reasons'] = array(
|
||||
// array(
|
||||
// 'reason' => 'Low-quality posting',
|
||||
// 'length' => '1d'
|
||||
// ),
|
||||
// array(
|
||||
// 'reason' => 'Off-topic',
|
||||
// 'length' => '1d'
|
||||
// ),
|
||||
// array(
|
||||
// 'reason' => 'Ban evasion',
|
||||
// 'length' => '30d'
|
||||
// ),
|
||||
// array(
|
||||
// 'reason' => 'Illegal content',
|
||||
// 'length' => ''
|
||||
// )
|
||||
//);
|
||||
$config['premade_ban_reasons'] = false;
|
||||
|
||||
// Allow users to appeal bans through vichan.
|
||||
$config['ban_appeals'] = false;
|
||||
|
||||
|
@ -1586,6 +1586,7 @@ function mod_ban_post($board, $delete, $post, $token = false) {
|
||||
'board' => $board,
|
||||
'delete' => (bool)$delete,
|
||||
'boards' => listBoards(),
|
||||
'reasons' => $config['premade_ban_reasons'],
|
||||
'token' => $security_token
|
||||
);
|
||||
|
||||
|
12
js/mod/mod_snippets.js
Normal file
12
js/mod/mod_snippets.js
Normal file
@ -0,0 +1,12 @@
|
||||
/*
|
||||
* mod_snippets.js
|
||||
*
|
||||
* Javascript snippets to be loaded when in mod mode
|
||||
*
|
||||
*/
|
||||
|
||||
function populateFormJQuery(frm, data) {
|
||||
$.each(data, function(key, value){
|
||||
$('[name='+key+']', frm).val(value);
|
||||
});
|
||||
}
|
@ -1225,3 +1225,13 @@ table.fileboard .intro a {
|
||||
div.mix {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ban-reason-table .warning-reason-table tr td:first-child {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.ban-reason-table .warning-reason-table tr:hover td {
|
||||
cursor: pointer;
|
||||
background-color: rgba(100%,100%,100%,0.2);
|
||||
}
|
||||
|
@ -16,6 +16,9 @@
|
||||
{% if not config.additional_javascript_compile %}
|
||||
{% for javascript in config.additional_javascript %}<script type="text/javascript" src="{{ config.additional_javascript_url }}{{ javascript }}"></script>{% endfor %}
|
||||
{% endif %}
|
||||
{% if mod %}
|
||||
<script type="text/javascript" src="/js/mod/mod_snippets.js"></script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if config.recaptcha %}<script src="//www.recaptcha.net/recaptcha/api.js"></script>
|
||||
<style type="text/css">{% verbatim %}
|
||||
|
@ -6,7 +6,17 @@
|
||||
{% set action = '?/ban' %}
|
||||
{% endif %}
|
||||
|
||||
<form action="{{ action }}" method="post">
|
||||
{% if reasons %}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
{% for key, reason in reasons %}
|
||||
var data_{{ key }} = '{"reason":"{{ reason.reason|escape('js') }}","message":"{{ reason.reason|escape('js') }}","length":"{{ reason.length|escape('js') }}"}';
|
||||
$('#reason-selector-id-{{ key }}').click(function() { populateFormJQuery('#ban-form-id', $.parseJSON(data_{{ key }})); });
|
||||
{% endfor %}
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
<form action="{{ action }}" method="post" id="ban-form-id">
|
||||
<input type="hidden" name="token" value="{{ token }}">
|
||||
{% if redirect %}
|
||||
<input type="hidden" name="redirect" value="{{ redirect|e }}">
|
||||
@ -41,7 +51,7 @@
|
||||
{% if post and board and not delete %}
|
||||
<tr>
|
||||
<th>
|
||||
<label for="reason">{% trans 'Message' %}</label>
|
||||
<label for="message">{% trans 'Message' %}</label>
|
||||
</th>
|
||||
<td>
|
||||
<input type="checkbox" id="public_message" name="public_message"{% if config.mod.check_ban_message %} checked{% endif %}>
|
||||
@ -93,3 +103,20 @@
|
||||
</table>
|
||||
</form>
|
||||
|
||||
{% if reasons %}
|
||||
<div style="text-align:center">
|
||||
<h3>Predefined Reasons:</h3>
|
||||
<table class="ban-reason-table">
|
||||
<tr id="reason-selector-heading">
|
||||
<th><b>Length</b></th>
|
||||
<th><b>Reason</b></th>
|
||||
</tr>
|
||||
{% for key, reason in reasons %}
|
||||
<tr id="reason-selector-id-{{ key }}">
|
||||
<td>{% if not reason.length %}forever{% else %}{{ reason.length|e }}{% endif %}</td>
|
||||
<td>{{ reason.reason|e }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
Loading…
Reference in New Issue
Block a user