add censortools to postform
This commit is contained in:
parent
25ae491ddc
commit
0e394ae25e
@ -1,13 +1,13 @@
|
||||
// call an api method
|
||||
// handler(json_object) on success
|
||||
// handler(null) on fail
|
||||
function nntpchan_apicall(url, handler, err_handler) {
|
||||
function nntpchan_apicall(url, handler, err_handler, method, data) {
|
||||
var ajax = new XMLHttpRequest();
|
||||
ajax.onreadystatechange = function() {
|
||||
if (ajax.readyState == XMLHttpRequest.DONE ) {
|
||||
var status = ajax.status;
|
||||
var j = null;
|
||||
if (status == 200) {
|
||||
if (status == 200 || status == 201) {
|
||||
// found
|
||||
try {
|
||||
j = JSON.parse(ajax.responseText);
|
||||
@ -19,8 +19,12 @@ function nntpchan_apicall(url, handler, err_handler) {
|
||||
handler(j);
|
||||
}
|
||||
};
|
||||
ajax.open("GET", url);
|
||||
ajax.send();
|
||||
var meth = method || "GET";
|
||||
ajax.open(meth, url);
|
||||
if(data)
|
||||
ajax.send(data);
|
||||
else
|
||||
ajax.send();
|
||||
}
|
||||
|
||||
// build post from json
|
||||
|
87
contrib/js/nntpchan/report.js
Normal file
87
contrib/js/nntpchan/report.js
Normal file
@ -0,0 +1,87 @@
|
||||
/** censor tools */
|
||||
|
||||
|
||||
function show_censortools() {
|
||||
var e = document.getElementById("censor-tools");
|
||||
if(e) e.checked = true;
|
||||
}
|
||||
|
||||
function nntpchan_report_thread(posthash) {
|
||||
var thread = document.getElementById(posthash);
|
||||
if (!thread) return;
|
||||
var posts = thread.getElementsByClassName("post");
|
||||
for (var idx = 0; idx < posts.length; idx ++ ) {
|
||||
var post = posts[idx];
|
||||
nntpchan_report(post.dataset.msgid);
|
||||
}
|
||||
}
|
||||
|
||||
function nntpchan_report(msgid) {
|
||||
var e = document.getElementById("modactions");
|
||||
if (!e) return;
|
||||
e.value += "delete "+msgid+"\n";
|
||||
show_censortools();
|
||||
}
|
||||
|
||||
function nntpchan_submit_censor(form, regular_url) {
|
||||
|
||||
var result = document.getElementById("nntpchan_censor_result");
|
||||
|
||||
var show_result = function(msg) {
|
||||
result.innerHTML = document.createTextNode(msg);
|
||||
}
|
||||
|
||||
var handle_result = function(j) {
|
||||
var err = j.error;
|
||||
if(err) {
|
||||
show_result("error: "+err);
|
||||
return;
|
||||
}
|
||||
var msgid = j.message_id;
|
||||
if(msgid) {
|
||||
show_result("submitted report as "+msgid);
|
||||
}
|
||||
}
|
||||
|
||||
// build url to ctl
|
||||
var parts = regular_url.split('/');
|
||||
parts[parts.length-1] = 'ctl';
|
||||
var url = parts.join('/');
|
||||
url += '?json';
|
||||
var captcha = form.captcha.value;
|
||||
if(!captcha) {
|
||||
show_result("no captcha solution provided");
|
||||
return;
|
||||
}
|
||||
var secret = document.getElementById("nntpchan_censor_secret").value;
|
||||
if(!secret) {
|
||||
show_result("no mod key provided");
|
||||
return;
|
||||
}
|
||||
var actions = document.getElementById("nntpchan_censor_actions").value;
|
||||
if(!actions) {
|
||||
show_result("no mod actions provided");
|
||||
}
|
||||
var msg = "";
|
||||
var lines = actions.split("\n");
|
||||
for (var idx = 0; idx < lines.length; idx ++ ) {
|
||||
var line = lines[idx].trim();
|
||||
if(!line) continue;
|
||||
msg += line + "\n";
|
||||
}
|
||||
if(!msg) {
|
||||
show_result("no mod actions given");
|
||||
return;
|
||||
}
|
||||
var formdata = new FormData();
|
||||
formdata.append("name", "mod#"+secret);
|
||||
formdata.append("subject", "censor");
|
||||
formdata.append("message", msg);
|
||||
formdata.append("captcha", captcha);
|
||||
formdata.append("reference", "");
|
||||
nntpchan_apicall(url, handle_result, null, "POST", formdata);
|
||||
}
|
||||
|
||||
onready(function() {
|
||||
|
||||
});
|
@ -1,4 +1,4 @@
|
||||
<div id="{{post.PostHash}}" class="{{post.CSSClass}}"
|
||||
<div id="{{post.PostHash}}" class="{{post.CSSClass}} post"
|
||||
data-frontend="{{post.Frontend}}"
|
||||
data-newsgroup="{{post.Board}}"
|
||||
data-msgid="{{post.MessageID}}"
|
||||
@ -31,6 +31,15 @@
|
||||
{{/post.IsClearnet}}
|
||||
</span>
|
||||
<div class="postreply">
|
||||
<div class="postreport">
|
||||
<label for="report_{{post.PostHash}}">[x]</label>
|
||||
<input type="checkbox" id="report_{{post.PostHash}}">
|
||||
<div style="display: none;" onclick="nntpchan_report('{{post.MessageID}}', '{{post.Reference}}')">
|
||||
<div class="mod-delete">
|
||||
[delete]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="postno" onclick="nntpchan_reply(this, '{{post.ShortHash}}');" root="{{post.Reference}}" boardname="{{post.Board}}">>>{{post.ShortHash}}</a>
|
||||
<a href="{{post.PostURL}}">[{{#i18n.Translations}}{{reply_label}}{{/i18n.Translations}}]</a>
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
- files ( bool, do we allow attachments ? )
|
||||
- csrf ( csrf token )
|
||||
}}
|
||||
<form action="{{post_url}}" enctype="multipart/form-data" name="post" method="post">
|
||||
<form action="{{post_url}}" enctype="multipart/form-data" name="post" method="post" id="postform">
|
||||
{{{csrf}}}
|
||||
<input type="hidden" name="reference" value="{{reference}}" id="postform_reference"/>
|
||||
<div id="postform-outer">
|
||||
@ -77,17 +77,46 @@
|
||||
<input type="text" name="captcha" autocomplete="off" id="captcha_solution" height="175" width="350"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<tr>
|
||||
<th>
|
||||
{{#i18n.Translations}}{{cuckoo_pow}}{{/i18n.Translations}}
|
||||
<label id="censor-toggle" for="censor-tools">[censor tools]</label>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="pow" autocomplete="off" id="miner_result" /><input id="start_miner" class="button" type="button" value="{{#i18n.Translations}}{{start_mining}}{{/i18n.Translations}}"/>
|
||||
<input type="checkbox" id="censor-tools"><div style="display: none;">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
Actions:
|
||||
</th>
|
||||
<td>
|
||||
<textarea cols=85 id="nntpchan_censor_actions"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
Secret:
|
||||
</th>
|
||||
<td>
|
||||
<input type="password" id="nntp_censor_secret"></input>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>
|
||||
<button onclick="nntpchan_submit_censor(document.getElementById('postform'), '{{post_url}}')">report</button>
|
||||
</th>
|
||||
<td>
|
||||
<div id="nntpchan_censor_result"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr> -->
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user