mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-23 23:20:57 +01:00
parent
3ac86a074a
commit
43973862dd
@ -690,6 +690,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 }}">
|
||||
@ -14,7 +24,7 @@
|
||||
{% if post and board %}
|
||||
<input type="hidden" name="delete" value="{% if delete %}1{% else %}0{% endif %}">
|
||||
{% endif %}
|
||||
|
||||
|
||||
<table>
|
||||
{% if not edit_ban %}
|
||||
<tr>
|
||||
@ -41,11 +51,11 @@
|
||||
{% 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 %}>
|
||||
<input type="text" name="message" id="message" size="35" maxlength="200" value="{{ config.mod.default_ban_message|e }}">
|
||||
<input type="checkbox" id="public_message" name="public_message"{% if config.mod.check_ban_message %} checked{% endif %}>
|
||||
<input type="text" name="message" id="message" size="35" maxlength="200" value="{{ config.mod.default_ban_message|e }}">
|
||||
<span class="unimportant">({% trans 'public; attached to post' %})</span>
|
||||
<script type="text/javascript">
|
||||
document.getElementById('message').disabled = !document.getElementById('public_message').checked;
|
||||
@ -61,7 +71,7 @@
|
||||
<label for="length">{% trans 'Length' %}</label>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="length" id="length" size="20" maxlength="40">
|
||||
<input type="text" name="length" id="length" size="20" maxlength="40">
|
||||
<span class="unimportant">(eg. "2d1h30m" or "2 days")</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -74,7 +84,7 @@
|
||||
<em>{% trans 'all boards' %}</em>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
|
||||
{% for board in boards %}
|
||||
<li>
|
||||
<input type="radio" name="board" value="{{ board.uri }}" id="ban-board-{{ board.uri }}" {% if edit_ban and current_board == board.uri %}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