Compare commits
No commits in common. 'znc-1.8.2' and 'e8baab6b7fce5f21bc9c4b6d14731a5f9863e7d4' have entirely different histories.
znc-1.8.2
...
e8baab6b7f
@ -1,8 +1,6 @@
|
||||
<? I18N znc-blockuser ?>
|
||||
<input type="hidden" name="embed_blockuser_presented" value="1"/>
|
||||
<input type="hidden" name="embed_blockuser_old" value="<? VAR Blocked ?>"/>
|
||||
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="embed_blockuser_block" id="opt_embed_blockuser_block" value="1" class="cmn-toggle cmn-toggle-round-flat"<? IF Blocked ?> checked="checked"<? ENDIF ?><? IF Self ?> disabled="disabled"<? ENDIF ?> />
|
||||
<div class="checkboxSwitch">
|
||||
<input type="checkbox" name="embed_blockuser_block" id="opt_embed_blockuser_block" value="1"<? IF Blocked ?> checked="checked"<? ENDIF ?><? IF Self ?> disabled="disabled"<? ENDIF ?> />
|
||||
<label for="opt_embed_blockuser_block"></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,32 +1,35 @@
|
||||
<? I18N znc-cert ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><? FORMAT "Certificate" ?></div>
|
||||
<div class="panel-heading">Cert</div>
|
||||
<div class="panel-body">
|
||||
<? IF Cert ?>
|
||||
<? SETBLOCK DELLINK ?><a href="<? VAR URIPrefix TOP ?><? VAR ModPath ?>delete"><? FORMAT "here" "TRANSLATORS: this text is inserted into `click here` in the other string"?></a><? ENDSETBLOCK ?>
|
||||
<div class="alert alert-success"><? FORMAT "You already have a certificate set, use the form below to overwrite the current certificate. Alternatively click {1} to delete your certificate." "DELLINK ESC=" "TRANSLATORS: {1} is `here`, translateable in the other string" ?></div>
|
||||
<p>You already have a certificate set, use the form below to overwrite the current certificate. Alternatively click <a href="<? VAR ModPath ?>delete">here</a> to <a href="<? VAR ModPath ?>delete">delete</a> your certificate.</p>
|
||||
<? ELSE ?>
|
||||
<div class="alert alert-danger"><? FORMAT "You do not have a certificate yet." ?></div>
|
||||
<p>You do not have a cert.</p>
|
||||
<? ENDIF ?>
|
||||
|
||||
<form class="form-horizontal" method="post" action="<? VAR URIPrefix TOP ?><? VAR ModPath ?>update">
|
||||
<form class="form-horizontal" method="post" action="<? VAR ModPath ?>update">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<div class="form-group">
|
||||
<label for="inputPEM" class="col-sm-2 control-label"><? FORMAT "PEM File:" ?></label>
|
||||
<h3>Certificate</h3>
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputPEM" class="col-sm-2 control-label">PEM File</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea class="form-control" rows="5" name="cert"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="<? FORMAT "Update" ?>" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="Update" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<? INC Footer.tmpl ?>
|
@ -1,49 +1,49 @@
|
||||
<? I18N znc-certauth ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><? FORMAT "Add a key" ?></div>
|
||||
<div class="panel-heading">Cert Auth</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal" method="post" action="<? VAR URIPrefix TOP ?><? VAR ModPath ?>add">
|
||||
<form class="form-horizontal" method="post" action="<? VAR ModPath ?>add">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<h3>Add A Note</h3>
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputKey" class="col-sm-2 control-label"><? FORMAT "Key:" ?></label>
|
||||
<label for="inputKey" class="col-sm-2 control-label">Key:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputKey" name="key" size="40">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="Add Key" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<? IF !KeyLoop ?>
|
||||
<p class="text-center"><? FORMAT "You have no keys." ?></p>
|
||||
<p>You have no keys.</p>
|
||||
<? ELSE ?>
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><? FORMAT CTX="web" "Key" ?></td>
|
||||
<td>Key</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? LOOP KeyLoop ?>
|
||||
<tr>
|
||||
<td><a href="<? VAR ModPath ?>delete?key=<? VAR Key ESC=URL,HTML ?>" class="btn btn-danger btn-xs"><? FORMAT "del" ?></a></td>
|
||||
<td>[<a href="<? VAR ModPath ?>delete?key=<? VAR Key ESC=URL,HTML ?>">del</a>]</td>
|
||||
<td><? VAR Key ?></td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<? ENDIF ?>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="<? FORMAT "Add Key" ?>" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,6 +1 @@
|
||||
<? I18N znc-lastseen ?>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputLastseen" name="<? FORMAT "Last login time:" ?>" value="<? VAR LastSeen DEFAULT="- unknown -" ?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<h6>Last Login Time: <b><? VAR LastSeen DEFAULT="No Data..." ?></b><h6>
|
||||
|
@ -1,58 +1,62 @@
|
||||
<? I18N znc-notes ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><? FORMAT "Add A Note" ?></div>
|
||||
<div class="panel-heading">Notes</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal" method="post" action="<? VAR URIPrefix TOP ?><? VAR ModPath ?>addnote">
|
||||
<form class="form-horizontal" method="post" action="<? VAR ModPath ?>addnote">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
|
||||
<h3>Add A Note</h3>
|
||||
<hr>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputKey" class="col-sm-2 control-label"><? FORMAT "Key:" ?></label>
|
||||
<label for="inputKey" class="col-sm-2 control-label">Key:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputKey" name="key" size="8">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputNote" class="col-sm-2 control-label"><? FORMAT "Note:" ?></label>
|
||||
<label for="inputNote" class="col-sm-2 control-label">Note:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputNote" name="note" size="40">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="Add Note" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<? IF !NotesLoop ?>
|
||||
<div class="alert alert-warning"><? FORMAT "You have no notes to display." ?></div>
|
||||
<p>You have no notes to display.</p>
|
||||
<? ELSE ?>
|
||||
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><? FORMAT "Key" ?></td>
|
||||
<td><? FORMAT "Note" ?></td>
|
||||
<td></td>
|
||||
<td>Key</td>
|
||||
<td>Note</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? LOOP NotesLoop ?>
|
||||
<tr>
|
||||
<td><a href="<? VAR ModPath TOP ?>delnote?key=<? VAR Key ESC=URL,HTML ?>" class="btn btn-danger btn-xs"></a></td>
|
||||
<td><? VAR Key ?></td>
|
||||
<td><? VAR Note ?></td>
|
||||
<td><a href="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>delnote?key=<? VAR Key ESC=URL,HTML ?>" class="btn btn-danger btn-xs"><? FORMAT "[del]" ?></a></td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<? ENDIF ?>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="add" value="<? FORMAT "Add Note" ?>" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
@ -1,26 +1,26 @@
|
||||
<? I18N znc-perform ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><? FORMAT "Perform" ?></div>
|
||||
<div class="panel-heading">Perform</div>
|
||||
<div class="panel-body">
|
||||
<form method="post" action="<? VAR URIPrefix TOP ?><? VAR ModPath ?>">
|
||||
<form method="post" action="<? VAR ModPath ?>">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputperformCommands" class="col-sm-2 control-label"><? FORMAT "Perform commands:" ?></label>
|
||||
<label for="inputperformCommands" class="col-sm-2 control-label">Commands:</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type="text" class="form-control" id="inputperformCommands" name="perform" cols="70" rows="5" class="monospace"><? LOOP PerformLoop ?><? VAR Perform ?><? ENDLOOP ?></textarea>
|
||||
<div class="alert alert-info help-block"><? FORMAT "Commands sent to the IRC server on connect, one per line." ?></div>
|
||||
<div class="alert alert-info help-block">Commands sent to the IRC server on connect, one per line.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="save" value="<? FORMAT "Save" ?>" />
|
||||
</div>
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="save" value="Save" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,77 +0,0 @@
|
||||
<? I18N znc-sasl ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><? FORMAT "SASL" ?></div>
|
||||
<form class="form-horizontal" action="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>" method="post">
|
||||
<div class="panel-body">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputSASLUsername" class="col-sm-2 control-label"><? FORMAT "Username:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputSASLUsername" name="username" maxlength="128" placeholder="<? FORMAT "Please enter a username." ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputSASLPassword" class="col-sm-2 control-label"><? FORMAT "Password:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputSASLPassword" name="username" placeholder="<? FORMAT "Please enter a password." ?>" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputSASLUsername" class="col-sm-2 control-label"><? FORMAT "Options" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="require_auth" id="opt_require_auth" class="cmn-toggle cmn-toggle-round-flat" value="1"<? IF RequireAuth ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="opt_require_auth"></label>
|
||||
<span class="help-block"><? FORMAT "Connect only if SASL authentication succeeds." ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputMechanismsDescription" class="col-sm-2 control-label"><? FORMAT "Mechanisms" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<table class="data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><? FORMAT "Name" ?></th>
|
||||
<th><? FORMAT "Description" ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? LOOP MechanismLoop SORTASC=Name ?>
|
||||
<tr class="<? IF __EVEN__ ?>evenrow<? ELSE ?>oddrow<? ENDIF ?>">
|
||||
<td><? VAR Name ?></td>
|
||||
<td><? VAR Description ?></td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<label for="inputMechanisms" class="col-sm-2 control-label"><? FORMAT "Selected mechanisms and their order:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputMechanisms" name="mechanisms" value="<? VAR Mechanisms ?>">
|
||||
<script>
|
||||
$("#inputMechanisms").selectize({
|
||||
plugins: ["drag_drop"],
|
||||
delimiter: " ",
|
||||
options: [<? LOOP MechanismLoop SORTASC=Name ?>{value:"<? VAR Name ?>",text:"<? VAR Name ?>"},<? ENDLOOP ?>],
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" name="save" value="<? FORMAT "Save" ?>" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
@ -1,138 +0,0 @@
|
||||
function floodprotection_change() {
|
||||
var protection = document.getElementById('floodprotection_checkbox');
|
||||
var rate = document.getElementById('floodrate');
|
||||
var burst = document.getElementById('floodburst');
|
||||
if (protection.checked) {
|
||||
rate.removeAttribute('disabled');
|
||||
burst.removeAttribute('disabled');
|
||||
} else {
|
||||
rate.disabled = 'disabled';
|
||||
burst.disabled = 'disabled';
|
||||
}
|
||||
}
|
||||
|
||||
function serverlist_init($) {
|
||||
function serialize() {
|
||||
var text = "";
|
||||
$("#servers_tbody > tr").each(function() {
|
||||
var host = $(".servers_row_host", $(this)).val();
|
||||
var port = $(".servers_row_port", $(this)).val();
|
||||
var ssl = $(".servers_row_ssl", $(this)).is(":checked");
|
||||
var pass = $(".servers_row_pass", $(this)).val();
|
||||
if (host == undefined) return;
|
||||
text += host;
|
||||
text += " ";
|
||||
if (ssl) text += "+";
|
||||
text += port;
|
||||
text += " ";
|
||||
text += pass;
|
||||
text += "\n";
|
||||
});
|
||||
$("#servers_text").val(text);
|
||||
}
|
||||
function add_row(host, port, ssl, pass) {
|
||||
var row = $("<tr/>");
|
||||
function delete_row() {
|
||||
row.remove();
|
||||
serialize();
|
||||
}
|
||||
row.append(
|
||||
$("<td/>").append($("<input/>").attr({"type":"text"})
|
||||
.addClass("form-control servers_row_host").val(host)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"number"})
|
||||
.addClass("form-control servers_row_port").val(port)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"checkbox"})
|
||||
.addClass("servers_row_ssl").prop("checked", ssl)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"text"})
|
||||
.addClass("form-control servers_row_pass").val(pass)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"button"})
|
||||
.addClass("btn btn-danger").val("X").click(delete_row))
|
||||
);
|
||||
$("input", row).change(serialize);
|
||||
$("#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
|
||||
});
|
||||
|
||||
$("#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/>").attr({"type":"text"})
|
||||
.addClass("form-control servers_row_host").val(host)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"number"})
|
||||
.addClass("form-control servers_row_port").val(port)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"checkbox"})
|
||||
.addClass("servers_row_ssl").prop("checked", ssl)),
|
||||
$("<td/>").append($("<input/>").attr({"type":"button"})
|
||||
.addClass("btn btn-danger").val("X").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();
|
||||
})();
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
<? I18N znc-webadmin ?>
|
||||
<? SETBLOCK Encoding_Placeholder ?><span class="encoding-placeholder-big text-success"> <span class="encoding-placeholder"></span> </span><? ENDSETBLOCK ?>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_legacy" value="legacy" <? IF EncodingUtf == "legacy" ?>checked="checked"<? ENDIF ?> <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<span class="help-block" for="encoding_utf_legacy"><? FORMAT "Don't ensure any encoding at all (legacy mode, not recommended)" ?></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_send" value="send" <? IF EncodingUtf == "send" ?>checked="checked"<? ENDIF ?> <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<span class="help-block" for="encoding_utf_send"><? FORMAT "Try to parse as UTF-8 and as {1}, send as UTF-8 (recommended)" "Encoding_Placeholder ESC=" ?></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_receive" value="receive" <? IF EncodingUtf == "receive" ?>checked="checked"<? ENDIF ?> <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<span class="help-block" for="encoding_utf_receive"><? FORMAT "Try to parse as UTF-8 and as {1}, send as {1}" "Encoding_Placeholder ESC=" ?></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="encoding_utf" id="encoding_utf_simple" value="simple" <? IF EncodingUtf == "simple" ?>checked="checked"<? ENDIF ?> <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
<span class="help-block" for="encoding_utf_simple"><? FORMAT "Parse and send as {1} only" "Encoding_Placeholder ESC=" ?></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="test-text">
|
||||
<input class="form-control" type="text" name="encoding" placeholder="<? FORMAT "E.g. <code>UTF-8</code>, or <code>ISO-8859-15</code>" ?>" value="<? VAR Encoding ?>" list="encoding_list" <? IF EncodingDisabled ?>disabled="disabled"<? ENDIF ?> />
|
||||
</div>
|
||||
|
||||
<datalist id="encoding_list">
|
||||
<? LOOP EncodingLoop ?>
|
||||
<option value="<? VAR Encoding ?>"/>
|
||||
<? ENDLOOP ?>
|
||||
</datalist>
|
||||
|
||||
<script type="text/javascript">
|
||||
function updateEncodingText() {
|
||||
var value = jQuery("input[name=encoding]").val();
|
||||
jQuery(".encoding-placeholder").each(function(index, element) {
|
||||
jQuery(element).text(value);
|
||||
});
|
||||
}
|
||||
jQuery("input[name=encoding]").on("keyup change input", updateEncodingText);
|
||||
updateEncodingText();
|
||||
|
||||
function updateEncodingLegacy() {
|
||||
var disabled = jQuery("input:radio[name=encoding_utf]:checked").val() == "legacy";
|
||||
jQuery("input[name=encoding]").prop("disabled", disabled);
|
||||
}
|
||||
|
||||
jQuery("input:radio[name=encoding_utf]").change(updateEncodingLegacy);
|
||||
updateEncodingLegacy();
|
||||
</script>
|
@ -1,70 +1,60 @@
|
||||
<? I18N znc-webadmin ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">List of Users</div>
|
||||
<div class="panel-body">
|
||||
<?IF !UserLoop?>
|
||||
<div class="alert alert-warning">
|
||||
<? FORMAT "There are no users defined. Click <a href="{1}adduser">here</a> if you would like to add one." "ModPath TOP" ?>
|
||||
<div class="panel-body">
|
||||
<?IF !UserLoop?>
|
||||
<div class="alert alert-warning">
|
||||
There are no users defined. Click <a href="adduser">here</a> if you would like to add one.
|
||||
</div>
|
||||
<?ELSE?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-md-offset-8">
|
||||
<div class="input-group custom-search-form" style=".custom-search-form{margin-top:5px;}">
|
||||
<input class="form-control" id="system-search" name="q" placeholder="Search..." required>
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default">
|
||||
<span class="fa fa-search"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<?ELSE?>
|
||||
|
||||
<div class="table">
|
||||
<input type="text" class="form-control input-lg" id="inputSearch" onkeyup="UserSearch()" placeholder="Search..." title="Type in a user">
|
||||
<br>
|
||||
<table class="table table-bordered table-hover" id="users">
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th><a href="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>adduser" class="btn btn-default btn-xs"><? FORMAT "Add" ?></a></th>
|
||||
<th><? FORMAT "Username" ?></th>
|
||||
<th><? FORMAT "Networks" ?></th>
|
||||
<th><? FORMAT "Clients" ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?LOOP UserLoop SORTASC=Username ?>
|
||||
<tr class="<?IF __EVEN__?>evenrow<?ELSE?>oddrow<?ENDIF?>">
|
||||
<td>
|
||||
<span class="nowrap">
|
||||
<a href="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>edituser?user=<?VAR Username ESC=URL?>" class="btn btn-primary btn-xs"><? FORMAT "Edit" ?></a>
|
||||
<a href="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>adduser?clone=<? VAR Username ESC=URL ?>" alt="Clone <? VAR Username ESC=URL ?>" class="btn btn-warning btn-xs"><? FORMAT "Clone" ?></a>
|
||||
<? IF !IsSelf ?><a href="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>deluser?user=<?VAR Username ESC=URL?>" class="btn btn-danger btn-xs"><? FORMAT "Delete" ?></a><? ENDIF ?>
|
||||
</span>
|
||||
</td>
|
||||
<td><? VAR Username ?></td>
|
||||
<td><? VAR Networks ?></td>
|
||||
<td><? VAR Clients ?></td>
|
||||
</tr>
|
||||
<?ENDLOOP?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?ENDIF?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<table class="table table-bordered table-hover table-striped table-list-search">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Action</td>
|
||||
<td>Username</td>
|
||||
<td>Networks</td>
|
||||
<td>Clients</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?LOOP UserLoop SORTASC=Username ?>
|
||||
<tr class="<?IF __EVEN__?>evenrow<?ELSE?>oddrow<?ENDIF?>">
|
||||
<td>
|
||||
<span class="nowrap">
|
||||
<a href="edituser?user=<?VAR Username ESC=URL?>" class="btn btn-primary btn-xs">Edit</a>
|
||||
<a href="adduser?clone=<? VAR Username ESC=URL ?>" alt="Clone <? VAR Username ESC=URL ?>" class="btn btn-warning btn-xs">Clone</a>
|
||||
<? IF !IsSelf ?><a href="deluser?user=<?VAR Username ESC=URL?>" class="btn btn-danger btn-xs">Delete</a><? ENDIF ?>
|
||||
</span>
|
||||
</td>
|
||||
<td><? VAR Username ?></td>
|
||||
<td><? VAR Networks ?></td>
|
||||
<td><? VAR Clients ?></td>
|
||||
</tr>
|
||||
<?ENDLOOP?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?ENDIF?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function UserSearch() {
|
||||
var input, filter, table, tr, td, i;
|
||||
input = document.getElementById("inputSearch");
|
||||
filter = input.value.toUpperCase();
|
||||
table = document.getElementById("users");
|
||||
tr = table.getElementsByTagName("tr");
|
||||
for (i = 0; i < tr.length; i++) {
|
||||
td = tr[i].getElementsByTagName("td")[1];
|
||||
if (td) {
|
||||
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
|
||||
tr[i].style.display = "";
|
||||
} else {
|
||||
tr[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">$(document).ready(function(){var e=$(".list-group-item.active");$("#system-search").keyup(function(){var e=this;var t=$(".table-list-search tbody");var n=$(".table-list-search tbody tr");$(".search-sf").remove();n.each(function(r,i){var s=$(i).text().toLowerCase();var o=$(e).val().toLowerCase();if(o!=""){$(".search-query-sf").remove();t.prepend('<tr class="search-query-sf"><td colspan="6"><strong>Searching for: "'+$(e).val()+'"</strong></td></tr>')}else{$(".search-query-sf").remove()}if(s.indexOf(o)==-1){n.eq(r).hide()}else{$(".search-sf").remove();n.eq(r).show()}});if(n.children(":visible").length==0){t.append('<tr class="search-sf"><td class="text-muted" colspan="6">No entries found.</td></tr>')}})})</script>
|
||||
|
||||
</script>
|
||||
<? INC Footer.tmpl ?>
|
@ -1,298 +1,242 @@
|
||||
<? I18N znc-webadmin ?>
|
||||
<? INC Header.tmpl ?>
|
||||
|
||||
<div class="container col-md-10 col-md-offset-1">
|
||||
<div class="panel with-nav-tabs panel-default">
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#listenporttab" data-toggle="tab"><? FORMAT "Listen Port(s)" ?></a></li>
|
||||
<li><a href="#settingstab" data-toggle="tab"><? FORMAT "Settings" ?></a></li>
|
||||
<li><a href="#globalmodtab" data-toggle="tab"><? FORMAT "Global Modules" ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="tab-content">
|
||||
<!--Listen Port -->
|
||||
<div class="tab-pane fade in active" id="listenporttab">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><? FORMAT "Port" ?></th>
|
||||
<th><? FORMAT "BindHost" ?></th>
|
||||
<th><? FORMAT "SSL" ?></th>
|
||||
<th><? FORMAT "IPv4" ?></th>
|
||||
<th><? FORMAT "IPv6" ?></th>
|
||||
<th><? FORMAT "IRC" ?></th>
|
||||
<th><? FORMAT "HTTP" ?></th>
|
||||
<th><? FORMAT "URIPrefix" ?></th>
|
||||
<th><? FORMAT "Delete" ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<? LOOP ListenLoop ?>
|
||||
<div class="container">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Settings</div>
|
||||
<div class="panel-body">
|
||||
<h3>Listen Port(s)</h3>
|
||||
<hr>
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><? VAR Port ?></td>
|
||||
<td><? VAR BindHost DEFAULT=** ?></td>
|
||||
<td>Port</td>
|
||||
<td>BindHost</td>
|
||||
<td>SSL</td>
|
||||
<td>IPv4</td>
|
||||
<td>IPv6</td>
|
||||
<td>IRC</td>
|
||||
<td>Web</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<? LOOP ListenLoop ?>
|
||||
<tr>
|
||||
<td><? VAR Port ?></td>
|
||||
<td><? VAR BindHost DEFAULT=** ?></td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" disabled="disabled" id="<? VAR IsSSL ?>" <? IF IsSSL ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsSSL ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" disabled="disabled" id="<? VAR IsIPV4 ?>" <? IF IsIPV4 ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIPV4 ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsIPV6 ?>" disabled="disabled" <? IF IsIPV6 ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIPV6 ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsIRC ?>" disabled="disabled" <? IF IsIRC ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIRC ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsWeb ?>" disabled="disabled" <? IF IsWeb ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsWeb ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<? IF SuggestDeletion ?>
|
||||
<form action="del_listener" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<input name="host" type="hidden" value="<? VAR BindHost ?>"/>
|
||||
<input name="port" type="hidden" value="<? VAR Port ?>"/>
|
||||
<input name="ipv4" type="hidden" value="<? VAR IsIPV4 ?>"/>
|
||||
<input name="ipv6" type="hidden" value="<? VAR IsIPV6 ?>"/>
|
||||
<input type="submit" class="btn btn-danger btn-xs" value="Del"/>
|
||||
</form>
|
||||
<? ENDIF ?>
|
||||
</td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
<tr>
|
||||
<form action="add_listener" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" disabled="disabled" id="<? VAR IsSSL ?>" <? IF IsSSL ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsSSL ?>"></label>
|
||||
</div>
|
||||
<input type="number" class="form-control" name="port" min="1" max="65535" class="number" maxlength="5" placeholder="Port 1 to 65535"/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="form-control" name="host" value="*"/>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" disabled="disabled" id="<? VAR IsIPV4 ?>" <? IF IsIPV4 ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIPV4 ?>"></label>
|
||||
<input type="checkbox" id="ssl"/>
|
||||
<label for="ssl"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsIPV6 ?>" disabled="disabled" <? IF IsIPV6 ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIPV6 ?>"></label>
|
||||
<input type="checkbox" id="ipv4" name="ipv4" checked="checked"/>
|
||||
<label for="ipv4"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsIRC ?>" disabled="disabled" <? IF IsIRC ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsIRC ?>"></label>
|
||||
<input type="checkbox" id="ipv6" name="ipv6" checked="checked"/>
|
||||
<label for="ipv6"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="<? VAR IsHTTP ?>" disabled="disabled" <? IF IsHTTP ?>checked="checked"<? ENDIF ?>/>
|
||||
<label for="<? VAR IsHTTP ?>"></label>
|
||||
<input type="checkbox" id="irc" name="irc" checked="checked"/>
|
||||
<label for="irc"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td><? VAR URIPrefix ?></td>
|
||||
<td>
|
||||
<? IF SuggestDeletion ?>
|
||||
<form action="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>del_listener" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<input name="host" type="hidden" value="<? VAR BindHost ?>"/>
|
||||
<input name="port" type="hidden" value="<? VAR Port ?>"/>
|
||||
<input name="ssl" type="hidden" value="<? VAR IsSSL ?>"/>
|
||||
<input name="ipv4" type="hidden" value="<? VAR IsIPV4 ?>"/>
|
||||
<input name="ipv6" type="hidden" value="<? VAR IsIPV6 ?>"/>
|
||||
<input type="submit" class="btn btn-danger btn-xs" value="<? FORMAT "Del" ?>"/>
|
||||
</form>
|
||||
<? ELSE ?>
|
||||
<input name="unavailable" type="text" disabled="disabled" title="<? FORMAT "To delete port which you use to access webadmin itself, either connect to webadmin via another port, or do it in IRC (/znc DelPort)" ?>" value="<? FORMAT "Current" ?>" />
|
||||
<? ENDIF ?>
|
||||
</td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
<tr>
|
||||
<form action="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>add_listener" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<td>
|
||||
<input type="number" class="form-control" name="port" min="1" max="65535" class="number" maxlength="5" placeholder="Port 1 to 65535"/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="form-control" name="host" value="*"/>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="ssl" name="ssl" checked="checked"/>
|
||||
<label for="ssl"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="ipv4" name="ipv4" checked="checked"/>
|
||||
<label for="ipv4"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="ipv6" name="ipv6" checked="checked"/>
|
||||
<label for="ipv6"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="irc" name="irc" checked="checked"/>
|
||||
<label for="irc"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="web" name="web" checked="checked"/>
|
||||
<label for="web"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td><input type="text" class="form-control" name="uriprefix" value="/"></td>
|
||||
<td><input type="submit" class="btn btn-primary btn-xs" value="<? FORMAT "Add" ?>"/></td>
|
||||
</form>
|
||||
</tr>
|
||||
</table>
|
||||
</div><!--Listen Port -->
|
||||
|
||||
<!-- Settings -->
|
||||
<div class="tab-pane fade" id="settingstab">
|
||||
<form class="form-horizontal" action="<? VAR URIPrefix TOP ?><? VAR ModPath TOP ?>settings" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<input type="hidden" name="submitted" value="1" />
|
||||
<div class="form-group">
|
||||
<label for="inputSkins" class="col-sm-2 control-label"><? FORMAT "Skin:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control" id="inputSkins" name="skin">
|
||||
<? LOOP SkinLoop ?>
|
||||
<option value="<? VAR Name ?>"<? IF Checked ?> selected="selected"<? ENDIF ?>><? IF Name == "_default_" ?><? FORMAT "Default" ?><? ELSE ?><? VAR Name ?><? ENDIF ?></option>
|
||||
<? ENDLOOP ?>
|
||||
</select>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" id="web" name="web" checked="checked"/>
|
||||
<label for="web"></label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><input type="submit" class="btn btn-primary btn-xs" value="Add"/></td>
|
||||
</form>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<form class="form-horizontal" action="settings" method="post">
|
||||
<? INC _csrf_check.tmpl ?>
|
||||
<input type="hidden" name="submitted" value="1" />
|
||||
<h3>Settings</h3>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label for="inputSkins" class="col-sm-2 control-label">Skin(s):</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control" id="inputSkins" name="skin">
|
||||
<? LOOP SkinLoop ?>
|
||||
<option value="<? VAR Name ?>"<? IF Checked ?> selected="selected"<? ENDIF ?>><? IF Name == "_default_" ?>Default<? ELSE ?><? VAR Name ?><? ENDIF ?></option>
|
||||
<? ENDLOOP ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputStatusPrefix" class="col-sm-2 control-label"><? FORMAT "Status Prefix:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputStatusPrefix" value="<? VAR StatusPrefix ?>" placeholder="<? FORMAT "The prefix for the status and module queries." ?>"/>
|
||||
<div class="alert alert-info help-block"><? FORMAT "Default for new users only." ?></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputmaxBufferSize" class="col-sm-2 control-label"><? FORMAT "Maximum Buffer Size:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputmaxBufferSize" name="maxbufsize" value="<? VAR MaxBufferSize ?>" placeholder="<? FORMAT "Sets the global Max Buffer Size a user can have." ?>"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputConnectDelay" class="col-sm-2 control-label"><? FORMAT "Connect Delay:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputConnectDelay" name="connectdelay" value="<? VAR ConnectDelay ?>" placeholder="<? FORMAT "The time between connection attempts to IRC servers, in seconds. This affects the connection between ZNC and the IRC server; not the connection between your IRC client and ZNC." ?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputServerThrottle" class="col-sm-2 control-label"><? FORMAT "Server Throttle:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputServerThrottle" name="serverthrottle" value="<? VAR ServerThrottle ?>" placeholder="<? FORMAT "The minimal time between two connect attempts to the same hostname, in seconds. Some servers refuse your connection if you reconnect too fast." ?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputAnonIPLimit" class="col-sm-2 control-label"><? FORMAT "Anonymous Connection Limit per IP:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputAnonIPLimit" name="anoniplimit" value="<? VAR AnonIPLimit ?>" placeholder="<? FORMAT "Limits the number of unidentified connections per IP." ?>" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputprotectWeb" class="col-sm-2 control-label"><? FORMAT "Protect Web Sessions:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="protectwebsessions" id="protectwebsessions_checkbox" class="cmn-toggle cmn-toggle-round-flat"<? IF ProtectWebSessions ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="protectwebsessions_checkbox"></label>
|
||||
<div class="alert alert-info help-block"><? FORMAT "Disallow IP changing during each web session" ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputhideversion" class="col-sm-2 control-label"><? FORMAT "Hide ZNC Version:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="hideversion" id="hideversion_checkbox" class="cmn-toggle cmn-toggle-round-flat"<? IF HideVersion ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="hideversion_checkbox"></label>
|
||||
<div class="alert alert-info help-block"><? FORMAT "Hide version number from non-ZNC users" ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputStatusPrefix" class="col-sm-2 control-label">Status Prefix:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="inputStatusPrefix" value="<? VAR StatusPrefix ?>" placeholder="The prefix for the status and module queries."/>
|
||||
<div class="alert alert-info help-block">Default for new users only.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputmaxBufferSize" class="col-sm-2 control-label">Maximum Buffer Size:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputmaxBufferSize" name="maxbufsize" value="<? VAR MaxBufferSize ?>" placeholder="Sets the global Max Buffer Size a user can have."/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputConnectDelay" class="col-sm-2 control-label">Connect Delay:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputConnectDelay" name="connectdelay" value="<? VAR ConnectDelay ?>" placeholder="The time every connection will be delayed, in seconds. Some servers refuse your connection if you reconnect too fast. This affects the connection between ZNC and the IRC server; not the connection between your IRC client and ZNC. "/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputServerThrottle" class="col-sm-2 control-label">Server Throttle:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputServerThrottle" name="serverthrottle" value="<? VAR ServerThrottle ?>" placeholder="The time between two connect attempts to the same hostname." />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputauthonlyviamodule" class="col-sm-2 control-label"><? FORMAT "Auth Only Via Module:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="authonlyviamodule" id="authonlyviamodule_checkbox" class="cmn-toggle cmn-toggle-round-flat"<? IF AuthOnlyViaModule ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="authonlyviamodule_checkbox"></label>
|
||||
<div class="alert alert-info help-block"><? FORMAT "Allow user authentication by external modules only" ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputAnonIPLimit" class="col-sm-2 control-label">Anonymous IP Limit:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number" class="form-control" id="inputAnonIPLimit" name="anoniplimit" value="<? VAR AnonIPLimit ?>" placeholder="Limits the number of unidentified connections per IP." />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputMOTD" class="col-sm-2 control-label"><? FORMAT "MOTD:" ?></label>
|
||||
<div class="col-sm-10">
|
||||
<textarea class="form-control" id="inputMOTD" name="motd" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea>
|
||||
<div class="alert alert-info help-block"><? FORMAT "“Message of the Day”, sent to all ZNC users on connect." ?></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputprotectWeb" class="col-sm-2 control-label">Protect Web Sessions:</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="checkboxSwitch">
|
||||
<input type="checkbox" class="form-control" name="protectwebsessions" id="protectwebsessions_checkbox"<? IF ProtectWebSessions ?> checked="checked"<? ENDIF ?> />
|
||||
<label for="protectwebsessions_checkbox"></label>
|
||||
<div class="alert alert-info help-block">Disallow IP changing during each web session</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- Settings -->
|
||||
|
||||
<!-- Global Module Settings -->
|
||||
<div class="tab-pane fade" id="globalmodtab">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><? FORMAT "Name" ?></th>
|
||||
<th><? FORMAT "Arguments" ?></th>
|
||||
<th><? FORMAT "Description" ?></th>
|
||||
<th><? FORMAT "Loaded by networks" ?></th>
|
||||
<th><? FORMAT "Loaded by users" ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? LOOP ModuleLoop ?>
|
||||
<tr class="<? IF __EVEN__ ?>evenrow<? ELSE ?>oddrow<? ENDIF ?>">
|
||||
<td>
|
||||
<div class="switch">
|
||||
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" class="cmn-toggle cmn-toggle-round-flat" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> />
|
||||
<label for="lm_<? VAR Name ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<label for="lm_<? VAR Name ?>">
|
||||
<? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>" target="_blank"><? VAR Name ?></a>
|
||||
<? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
|
||||
</td>
|
||||
<td class="mod_args">
|
||||
<input type="text" class="form-control" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
|
||||
<? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
|
||||
<? IF ArgsHelpText ?> data-toggle="tooltip" data-placement="top" data-original-title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
|
||||
</td>
|
||||
<td class="mod_descr"><? VAR Description ?></td>
|
||||
<td>
|
||||
<? IF CanBeLoadedByNetwork ?>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" name="loaded_by_network" id="loaded_by_net_<? VAR Name ?>" value="<? VAR Name ?>"<? IF LoadedByAllNetworks ?> checked="checked" <? ENDIF ?> class="sr-only" disabled="disabled" />
|
||||
<? ENDIF ?>
|
||||
<label for="loaded_by_net_<? VAR Name ?>"></label>
|
||||
</div>
|
||||
<? IF LoadedBySomeNetworks && !LoadedByAllNetworks ?>
|
||||
<script type="text/javascript">document.getElementById("loaded_by_net_<? VAR Name ?>").indeterminate = true;</script>
|
||||
<? ENDIF ?>
|
||||
</td>
|
||||
<td>
|
||||
<? IF CanBeLoadedByUser ?>
|
||||
<div class="checkboxSwitchMini">
|
||||
<input type="checkbox" name="loaded_by_user" id="loaded_by_user_<? VAR Name ?>" value="<? VAR Name ?>"<? IF LoadedByAllNetworks ?> checked="checked" <? ENDIF ?> class="sr-only" disabled="disabled" />
|
||||
<? ENDIF ?>
|
||||
<label for="loaded_by_user_<? VAR Name ?>"></label>
|
||||
</div>
|
||||
<? IF LoadedBySomeUsers && !LoadedByAllUsers ?>
|
||||
<script type="text/javascript">document.getElementById("loaded_by_user_<? VAR Name ?>").indeterminate = true;</script>
|
||||
<? ENDIF ?>
|
||||
</td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div><!-- Global Module Settings -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-footer text-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" value="<? FORMAT "Save" ?>" />
|
||||
<div class="form-group">
|
||||
<label for="inputMOTD" class="col-sm-2 control-label">MOTD:</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type="text" class="form-control" id="inputMOTD" name="motd" cols="70" rows="5" class="monospace"><? LOOP MOTDLoop ?><? VAR Line ?><? ENDLOOP ?></textarea>
|
||||
<div class="alert alert-info help-block">"Message of the Day", sent to all ZNC users on connect.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="inputBindHosts" class="col-sm-2 control-label">BindHosts:</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type="text" class="form-control" id="inputBindHosts" name="bindhosts" rows="5">
|
||||
<? LOOP BindHostLoop ?>
|
||||
<? VAR BindHost ?>
|
||||
<? ENDLOOP ?>
|
||||
</textarea>
|
||||
<div class="alert alert-info help-block">One host name or IP entry per line.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h3>Global Modules</h3>
|
||||
<hr>
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Status</td>
|
||||
<td>Name</td>
|
||||
<td>Arguments</td>
|
||||
<td>Description</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<? LOOP ModuleLoop ?>
|
||||
<tr class="<? IF __EVEN__ ?>evenrow<? ELSE ?>oddrow<? ENDIF ?>">
|
||||
<td>
|
||||
<div class="checkboxSwitch">
|
||||
<input type="checkbox" name="loadmod" id="lm_<? VAR Name ?>" value="<? VAR Name ?>"<? IF Checked ?> checked="checked"<? ENDIF ?><? IF Disabled ?> disabled="disabled"<? ENDIF ?> />
|
||||
<label for="lm_<? VAR Name ?>"></label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<label for="lm_<? VAR Name ?>">
|
||||
<? IF Wiki ?><a href="http://wiki.znc.in/<? VAR Wiki ?>" target="_blank"><? VAR Name ?></a>
|
||||
<? ELSE ?> <? VAR Name ?> <? ENDIF ?></label>
|
||||
</td>
|
||||
<td class="mod_args">
|
||||
<input type="text" class="form-control" name="modargs_<? VAR Name ?>" value="<? VAR Args ?>"
|
||||
<? IF !HasArgs ?> disabled="disabled"<? ENDIF ?>
|
||||
<? IF ArgsHelpText ?> data-toggle="tooltip" data-placement="top" data-original-title="<? VAR ArgsHelpText ?>"<? ENDIF ?> />
|
||||
</td>
|
||||
<td class="mod_descr"><? VAR Description ?></td>
|
||||
</tr>
|
||||
<? ENDLOOP ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
<input class="btn btn-danger" type="reset" value="Reset">
|
||||
<input class="btn btn-success" type="submit" value="Save" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<? INC Footer.tmpl ?>
|
||||
</div>
|
||||
|
||||
<? INC Footer.tmpl ?>
|
Before Width: | Height: | Size: 30 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -1,38 +0,0 @@
|
||||
<? INC DocType.tmpl ?>
|
||||
<? ADDROW CSSLoop HREF=/skinfiles/Superhero/bootstrap.min.css ?>
|
||||
<? ADDROW CSSLoop HREF=/skinfiles/_default_/font-awesome.min.css ?>
|
||||
<? ADDROW JSLoop HREF=/skinfiles/_default_/jquery.min.js ?>
|
||||
<? ADDROW JSLoop HREF=/skinfiles/_default_/bootstrap.min.js ?>
|
||||
<? ADDROW FAVLOOP HREF=/skinfiles/_default_/favicon.ico ?>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>ZNC — <? VAR Title DEFAULT="Web Frontend" ?></title>
|
||||
<? LOOP FAVLOOP ?>
|
||||
<?IF HREF?><link rel="shortcut icon" href="<? VAR URIPrefix TOP ?><? VAR HREF ?>"><?ENDIF?>
|
||||
<?ENDLOOP?>
|
||||
<? LOOP CSSLoop ?>
|
||||
<?IF HREF?><link rel="stylesheet" type="text/css" href="<? VAR URIPrefix TOP ?><? VAR HREF ?>" /><?ENDIF?>
|
||||
<?ENDLOOP?>
|
||||
<? LOOP JSLoop ?>
|
||||
<?IF HREF?><script type="text/javascript" src="<? VAR URIPrefix TOP ?><? VAR HREF ?>"></script><?ENDIF?>
|
||||
<?ENDLOOP?>
|
||||
<? INC ExtraHeader.tmpl ?>
|
||||
</head>
|
||||
<body>
|
||||
<? INC Navbar.tmpl ?>
|
||||
<? INC Banner.tmpl ?>
|
||||
<? INC MessageBar.tmpl ?>
|
||||
<? INC LoginBar.tmpl ?>
|
||||
<? REM ?>
|
||||
In your subpage (module page or static page) you'll probably want to do something like this...
|
||||
<? INC Header.tmpl ?>
|
||||
This is my <b>super</b> cool sub page!
|
||||
<? INC Footer.tmpl ?>
|
||||
If you'd like to add your own local css file to be included after the global main.css, you can make your own Header.tmpl like so...
|
||||
<? ADDROW CSSLoop HREF=/pub/your_local.css ?>
|
||||
<? ADDROW JSLoop HREF=/pub/your_local.js ?>
|
||||
<? INC BaseHeader.tmpl ?>
|
||||
<? ENDREM ?>
|
||||
<? INC BreadCrumbs.tmpl ?>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue