mirror of
https://github.com/znc/znc.git
synced 2026-05-07 05:44:41 +02:00
Make CTCP replies editor in webadmin more fancy when JS is enabled.
This commit is contained in:
@@ -12,4 +12,12 @@ table .sorted::after {
|
||||
}
|
||||
table .reverse-sorted::after {
|
||||
content:" ▴";
|
||||
}
|
||||
}
|
||||
|
||||
.ctcpreplies_row_request {
|
||||
width: 100px;
|
||||
}
|
||||
.ctcpreplies_row_response {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
|
||||
@@ -137,28 +137,89 @@ function serverlist_init($) {
|
||||
$("#servers_tbody").append(row);
|
||||
}
|
||||
|
||||
var servers_text = $("#servers_text").val();
|
||||
// Parse it
|
||||
$.each(servers_text.split("\n"), function(i, line) {
|
||||
if (line.length == 0) return;
|
||||
line = line.split(" ");
|
||||
var host = line[0];
|
||||
var port = line[1] || "6667";
|
||||
var pass = line[2] || "";
|
||||
var ssl;
|
||||
if (port.match(/^\+/)) {
|
||||
ssl = true;
|
||||
port = port.substr(1);
|
||||
} else {
|
||||
ssl = false;
|
||||
}
|
||||
add_row(host, port, ssl, pass);
|
||||
});
|
||||
$("#servers_add").click(function() {
|
||||
add_row("", 6697, true, "");
|
||||
// Not serializing, because empty host doesn't emit anything anyway
|
||||
});
|
||||
(function() {
|
||||
var servers_text = $("#servers_text").val();
|
||||
// Parse it
|
||||
$.each(servers_text.split("\n"), function(i, line) {
|
||||
if (line.length == 0) return;
|
||||
line = line.split(" ");
|
||||
var host = line[0];
|
||||
var port = line[1] || "6667";
|
||||
var pass = line[2] || "";
|
||||
var ssl;
|
||||
if (port.match(/^\+/)) {
|
||||
ssl = true;
|
||||
port = port.substr(1);
|
||||
} else {
|
||||
ssl = false;
|
||||
}
|
||||
add_row(host, port, ssl, pass);
|
||||
});
|
||||
$("#servers_add").click(function() {
|
||||
add_row("", 6697, true, "");
|
||||
// Not serializing, because empty host doesn't emit anything anyway
|
||||
});
|
||||
|
||||
$("#servers_plain").hide();
|
||||
$("#servers_js").show();
|
||||
$("#servers_plain").hide();
|
||||
$("#servers_js").show();
|
||||
})();
|
||||
}
|
||||
|
||||
function ctcpreplies_init($) {
|
||||
function serialize() {
|
||||
var text = "";
|
||||
$("#ctcpreplies_tbody > tr").each(function() {
|
||||
var request = $(".ctcpreplies_row_request", $(this)).val();
|
||||
var response = $(".ctcpreplies_row_response", $(this)).val();
|
||||
if (request.length == 0) return;
|
||||
text += request;
|
||||
text += " ";
|
||||
text += response;
|
||||
text += "\n";
|
||||
});
|
||||
$("#ctcpreplies_text").val(text);
|
||||
}
|
||||
function add_row(request, response) {
|
||||
var row = $("<tr/>");
|
||||
function delete_row() {
|
||||
row.remove();
|
||||
serialize();
|
||||
}
|
||||
row.append(
|
||||
$("<td/>").append($("<input/>").val(request)
|
||||
.addClass("ctcpreplies_row_request")
|
||||
.attr({"type":"text","list":"ctcpreplies_list"})),
|
||||
$("<td/>").append($("<input/>").val(response)
|
||||
.addClass("ctcpreplies_row_response")
|
||||
.attr({"type":"text","placeholder":"Empty value means this CTCP request will be ignored"})),
|
||||
$("<td/>").append($("<input/>").val("X")
|
||||
.attr({"type":"button"}).click(delete_row))
|
||||
);
|
||||
$("input", row).change(serialize);
|
||||
$("#ctcpreplies_tbody").append(row);
|
||||
}
|
||||
|
||||
(function() {
|
||||
var replies_text = $("#ctcpreplies_text").val();
|
||||
$.each(replies_text.split("\n"), function(i, line) {
|
||||
if (line.length == 0) return;
|
||||
var space = line.indexOf(" ");
|
||||
var request;
|
||||
var response;
|
||||
if (space == -1) {
|
||||
request = line;
|
||||
response = "";
|
||||
} else {
|
||||
request = line.substr(0, space);
|
||||
response = line.substr(space + 1);
|
||||
}
|
||||
add_row(request, response);
|
||||
});
|
||||
$("#ctcpreplies_add").click(function() {
|
||||
add_row("", "");
|
||||
});
|
||||
|
||||
$("#ctcpreplies_plain").hide();
|
||||
$("#ctcpreplies_js").show();
|
||||
})();
|
||||
}
|
||||
|
||||
@@ -92,8 +92,7 @@
|
||||
<th/>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="servers_tbody">
|
||||
</tbody>
|
||||
<tbody id="servers_tbody"/>
|
||||
</table>
|
||||
<input type="button" value="Add" id="servers_add"/>
|
||||
</div>
|
||||
|
||||
@@ -309,13 +309,44 @@
|
||||
<input type="number" name="maxquerybuffers" value="<? VAR MaxQueryBuffers ?>" class="third" min="0"
|
||||
title="Maximum number of query buffers. 0 is unlimited."/>
|
||||
</div>
|
||||
<div class="subsection half">
|
||||
|
||||
<div class="subsection half" id="ctcpreplies_plain">
|
||||
<div class="inputlabel">CTCP Replies:</div>
|
||||
<div><textarea name="ctcpreplies" cols="70" rows="3"><? LOOP CTCPLoop ?><? VAR CTCP ?>
|
||||
<div><textarea name="ctcpreplies" cols="70" rows="3" id="ctcpreplies_text"><? LOOP CTCPLoop ?><? VAR CTCP ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea></div>
|
||||
<br /><span class="info">One reply per line. Example: TIME Buy a watch!</span>
|
||||
</div>
|
||||
<div class="subsection" id="ctcpreplies_js" style="display:none">
|
||||
<div>CTCP Replies:</div>
|
||||
<div>
|
||||
<table style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Request</th>
|
||||
<th>Response</th>
|
||||
<th/>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="ctcpreplies_tbody"/>
|
||||
</table>
|
||||
<input type="button" value="Add" id="ctcpreplies_add"/>
|
||||
<datalist id="ctcpreplies_list">
|
||||
<option value="PING"/>
|
||||
<option value="FINGER"/>
|
||||
<option value="CLIENTINFO"/>
|
||||
<option value="USERINFO"/>
|
||||
<option value="VERSION"/>
|
||||
<option value="SOURCE"/>
|
||||
<option value="TIME"/>
|
||||
<option value="PAGE"/>
|
||||
<option value="DCC"/>
|
||||
<option value="UPTIME"/>
|
||||
</datalist>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">ctcpreplies_init(jQuery);</script>
|
||||
|
||||
<div class="subsection">
|
||||
<div class="inputlabel">Skin:</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user