2018-05-05 12:40:41 +00:00
|
|
|
{% extends "base.html" %}
|
|
|
|
{% block content %}
|
2022-08-15 08:50:29 +00:00
|
|
|
<link rel="stylesheet" href="/inc/codemirror/lib/codemirror.css">
|
|
|
|
<link rel="stylesheet" href="/inc/codemirror/addon/dialog/dialog.css">
|
|
|
|
<link rel="stylesheet" href="/inc/codemirror/addon/fold/foldgutter.css">
|
|
|
|
<script src="/inc/codemirror/lib/codemirror.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/search/search.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/search/searchcursor.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/search/jump-to-line.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/search/matchesonscrollbar.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/search/match-highlighter.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/dialog/dialog.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/edit/matchbrackets.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/edit/closebrackets.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/comment/comment.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/wrap/hardwrap.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/fold/foldcode.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/fold/foldgutter.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/fold/brace-fold.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/fold/comment-fold.js"></script>
|
|
|
|
<script src="/inc/codemirror/addon/scroll/annotatescrollbar.js"></script>
|
|
|
|
<script src="/inc/codemirror/mode/nginx.js"></script>
|
|
|
|
<script src="/inc/codemirror/mode/haproxy.js"></script>
|
|
|
|
<script src="/inc/codemirror/keymap/sublime.js"></script>
|
2021-01-03 14:49:18 +00:00
|
|
|
<script src="/inc/configshow.js"></script>
|
2022-04-23 17:40:27 +00:00
|
|
|
{% if is_serv_protected and role > 2 %}
|
2022-04-15 09:49:00 +00:00
|
|
|
<meta http-equiv="refresh" content="0; url=/app/hapservers.py?service={{service}}">
|
|
|
|
{% else %}
|
2018-05-05 12:40:41 +00:00
|
|
|
<center>
|
2020-05-07 15:25:32 +00:00
|
|
|
{% if selects|length == 0 %}
|
|
|
|
{% include 'include/getstarted.html' %}
|
2020-05-07 16:28:32 +00:00
|
|
|
{% else %}
|
2018-05-05 12:40:41 +00:00
|
|
|
<p>
|
2019-12-04 13:38:07 +00:00
|
|
|
<form action="{{ action }}" method="post">
|
2020-07-03 12:18:52 +00:00
|
|
|
<input type="hidden" id="service" value="{{service|default('haproxy', true)}}" />
|
2022-01-16 13:50:53 +00:00
|
|
|
{% include 'include/select.html' %}
|
2022-04-15 09:49:00 +00:00
|
|
|
{% if service == 'nginx' or service == 'apache' %}
|
2022-01-16 13:50:53 +00:00
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="Show running config" onclick="showConfigFiles()">Open</a>
|
|
|
|
{% else %}
|
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="Show running config" onclick="showConfig()">Open</a>
|
|
|
|
{% endif %}
|
2022-04-15 09:49:00 +00:00
|
|
|
{% if service != 'keepalived' and service != 'apache' %}
|
2020-04-07 18:16:12 +00:00
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="View stat" onclick="openStats()">Stat</a>
|
|
|
|
{% endif %}
|
2022-04-15 09:49:00 +00:00
|
|
|
{% if service != 'keepalived' and service != 'nginx' and service != 'apache' %}
|
2018-09-27 04:28:10 +00:00
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="Show map" onclick="showMap()">Map</a>
|
2020-02-05 08:15:57 +00:00
|
|
|
{% endif %}
|
2021-07-01 07:19:23 +00:00
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="Compare configs" onclick="showCompareConfigs()">Compare</a>
|
|
|
|
{% if role <= 3 %}
|
|
|
|
<a class="ui-button ui-widget ui-corner-all" title="Show versions" onclick="openVersions()">Versions</a>
|
2018-05-05 12:40:41 +00:00
|
|
|
{% endif %}
|
2022-11-20 07:48:15 +00:00
|
|
|
{% if role <= 2 %}
|
|
|
|
<a href="/app/servers.py#backup" class="ui-button ui-widget ui-corner-all" title="Git">Git</a>
|
|
|
|
{% endif %}
|
2018-05-05 12:40:41 +00:00
|
|
|
</form>
|
|
|
|
</p>
|
2022-01-16 13:50:53 +00:00
|
|
|
<div id="ajax-config_file_name"></div>
|
2020-05-07 16:28:32 +00:00
|
|
|
{% endif %}
|
2021-01-03 14:49:18 +00:00
|
|
|
|
|
|
|
{% if stderr or error %}
|
|
|
|
{% include 'include/errors.html' %}
|
2018-05-06 19:58:52 +00:00
|
|
|
{% endif %}
|
2021-01-03 14:49:18 +00:00
|
|
|
|
2018-05-05 12:40:41 +00:00
|
|
|
{% if config %}
|
2020-09-17 05:26:54 +00:00
|
|
|
{% if role <= 3 %}
|
2022-01-16 13:50:53 +00:00
|
|
|
<h4>Config {% if config_file_name != 'undefined' %}{{config_file_name.replace('92', '/')}}{%endif%} from {{ serv }}</h4>
|
2021-01-03 14:49:18 +00:00
|
|
|
</center>
|
|
|
|
<form action="config.py" name="saveconfig" id="saveconfig" method="post">
|
|
|
|
<input type="hidden" value="{{ serv }}" name="serv">
|
|
|
|
<input type="hidden" value="{{ cfg }}.old" name="oldconfig">
|
|
|
|
<input type="hidden" value="{{ token }}" name="token">
|
|
|
|
<input type="hidden" value="{{ service }}" name="service">
|
2022-01-16 13:50:53 +00:00
|
|
|
<input type="hidden" value="{{ config_file_name }}" name="config_file_name">
|
2021-01-03 14:49:18 +00:00
|
|
|
<div style="margin-left: 23%;width: 60%;">
|
|
|
|
<textarea name="config" id="config_text_area" class="config" rows="35" cols="100">{{ config }}</textarea>
|
|
|
|
</div>
|
|
|
|
<p>
|
2021-07-01 07:19:23 +00:00
|
|
|
<center>
|
2022-01-16 13:50:53 +00:00
|
|
|
<a href="config.py?service={{service}}&serv={{serv}}&showConfig" class="ui-button ui-widget ui-corner-all" title="Return to configuration view">Back</a>
|
2021-10-03 18:46:19 +00:00
|
|
|
{% if service != 'keepalived' %}
|
2021-09-14 06:02:05 +00:00
|
|
|
<button type="submit" value="test" name="save" class="btn btn-default" title="Check config without saving the config">Check config</button>
|
2021-07-01 07:19:23 +00:00
|
|
|
{% endif %}
|
2021-09-14 06:02:05 +00:00
|
|
|
<button type="submit" value="save" name="save" class="btn btn-default" title="Save config without reloading the service">Save</button>
|
2022-08-15 08:50:29 +00:00
|
|
|
{% if is_restart|int == 0 %}
|
2021-07-01 07:19:23 +00:00
|
|
|
<button type="submit" value="" name="" class="btn btn-default">Save and restart</button>
|
2022-08-15 08:50:29 +00:00
|
|
|
{% endif %}
|
2021-07-01 07:19:23 +00:00
|
|
|
<button type="submit" value="reload" name="save" class="btn btn-default">Save and reload</button>
|
|
|
|
{% if service != 'keepalived' %}
|
|
|
|
<div class="alert alert-info alert-two-rows"><b>Note:</b> When reconfiguring the master server, the slave will be reconfigured automatically</div>
|
|
|
|
{% endif %}
|
|
|
|
</center>
|
2021-01-03 14:49:18 +00:00
|
|
|
</p>
|
|
|
|
</form>
|
2018-05-05 12:40:41 +00:00
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
</center>
|
2019-09-26 15:48:56 +00:00
|
|
|
<script>
|
2022-09-02 14:12:28 +00:00
|
|
|
if (cur_url[1].split('&')[2] == 'showMap') {
|
2022-11-20 07:48:15 +00:00
|
|
|
showMap();
|
2019-09-26 15:48:56 +00:00
|
|
|
}
|
2020-02-05 08:15:57 +00:00
|
|
|
if (cur_url[1].split('&')[1] == 'showCompare' || cur_url[1].split('&')[2] == 'showCompare') {
|
2022-11-20 07:48:15 +00:00
|
|
|
showCompareConfigs();
|
2019-09-26 15:48:56 +00:00
|
|
|
}
|
2020-03-27 21:16:04 +00:00
|
|
|
if (cur_url[1].split('&')[2] == 'showConfig') {
|
2022-11-20 07:48:15 +00:00
|
|
|
showConfig();
|
2022-01-16 13:50:53 +00:00
|
|
|
}
|
|
|
|
if (cur_url[1].split('&')[2] == 'showConfigFiles') {
|
|
|
|
showConfigFiles();
|
|
|
|
}
|
2022-04-27 18:10:26 +00:00
|
|
|
if (cur_url[1].split('&')[3].split('=')[0] == 'findInConfig') {
|
|
|
|
var words = findGetParameter('findInConfig');
|
|
|
|
waitForElm('#finding_words_from').then((elm) => {
|
|
|
|
$('#find_p').show();
|
|
|
|
$('#words').val(words);
|
|
|
|
findInConfig(words);
|
|
|
|
});
|
|
|
|
}
|
2022-01-16 13:50:53 +00:00
|
|
|
if (cur_url[1].split('&')[3].split('=')[0] == 'config_file_name') {
|
|
|
|
showConfigFilesForEditing();
|
|
|
|
}
|
2020-06-25 05:35:34 +00:00
|
|
|
if (cur_url[1].split('&')[0] == 'service=haproxy' || cur_url[1].split('&')[0] == 'service=None') {
|
2021-03-03 13:47:42 +00:00
|
|
|
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("config_text_area"),
|
2022-08-15 08:50:29 +00:00
|
|
|
{
|
|
|
|
mode: "haproxy",
|
|
|
|
lineNumbers: true,
|
|
|
|
lineWrapping: true,
|
|
|
|
autocapitalize: true,
|
|
|
|
autocorrect: true,
|
|
|
|
spellcheck: true,
|
|
|
|
autoCloseBrackets: true,
|
|
|
|
keyMap: "sublime",
|
|
|
|
matchBrackets: true,
|
|
|
|
foldGutter: true,
|
|
|
|
showCursorWhenSelecting: true,
|
|
|
|
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter", "breakpoints"],
|
|
|
|
highlightSelectionMatches: {showToken: /\w/, annotateScrollbar: true}
|
|
|
|
});
|
2020-06-25 05:35:34 +00:00
|
|
|
} else {
|
2021-03-03 13:47:42 +00:00
|
|
|
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("config_text_area"),
|
2022-08-15 08:50:29 +00:00
|
|
|
{
|
|
|
|
mode: "nginx",
|
|
|
|
lineNumbers: true,
|
|
|
|
lineWrapping: true,
|
|
|
|
autocapitalize: true,
|
|
|
|
autocorrect: true,
|
|
|
|
spellcheck: true,
|
|
|
|
autoCloseBrackets: true,
|
|
|
|
keyMap: "sublime",
|
|
|
|
matchBrackets: true,
|
|
|
|
foldGutter: true,
|
|
|
|
showCursorWhenSelecting: true,
|
|
|
|
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter", "breakpoints"],
|
|
|
|
highlightSelectionMatches: {showToken: /\w/, annotateScrollbar: true}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
myCodeMirror.on("gutterClick", function(cm, n) {
|
|
|
|
var info = cm.lineInfo(n);
|
|
|
|
cm.setGutterMarker(n, "breakpoints", info.gutterMarkers ? null : makeMarker());
|
|
|
|
});
|
|
|
|
|
|
|
|
function makeMarker() {
|
|
|
|
var marker = document.createElement("div");
|
|
|
|
marker.style.color = "#822";
|
|
|
|
marker.innerHTML = "●";
|
|
|
|
return marker;
|
2020-06-25 05:35:34 +00:00
|
|
|
}
|
2020-06-15 18:35:23 +00:00
|
|
|
</script>
|
|
|
|
<style>
|
|
|
|
.CodeMirror {
|
2021-03-03 13:47:42 +00:00
|
|
|
line-height: 1.2em;
|
|
|
|
height: 70%;
|
2020-06-15 18:35:23 +00:00
|
|
|
}
|
|
|
|
</style>
|
|
|
|
<script>
|
|
|
|
myCodeMirror.refresh();
|
2022-09-02 14:12:28 +00:00
|
|
|
$(document).bind('keydown', 'ctrl+s', function (){
|
|
|
|
$("[type='submit'][value='save']").click();
|
|
|
|
});
|
|
|
|
$(document).bind('keydown', 'ctrl+d', function (){
|
|
|
|
$("[type='submit'][value='test']").click();
|
|
|
|
});
|
|
|
|
$(document).bind('keydown', 'ctrl+e', function (){
|
|
|
|
$("[type='submit'][value='reload']").click();
|
|
|
|
});
|
|
|
|
{% if is_restart|int == 0 %}
|
|
|
|
$(document).bind('keydown', 'ctrl+r', function (){
|
|
|
|
$("[type='submit'][value='restart']").click();
|
|
|
|
});
|
|
|
|
{% endif %}
|
2019-09-26 15:48:56 +00:00
|
|
|
</script>
|
2022-04-15 09:49:00 +00:00
|
|
|
{% endif %}
|
2019-12-04 13:38:07 +00:00
|
|
|
{% endblock %}
|