Pavel Loginov 2021-08-22 00:21:22 +06:00
parent abb52ebb8f
commit c1dd051893
7 changed files with 64 additions and 78 deletions

View File

@ -716,7 +716,7 @@ def update_db_v_5_2_4(**kwargs):
cursor.execute(sql) cursor.execute(sql)
except Exception as e: except Exception as e:
if kwargs.get('silent') != 1: if kwargs.get('silent') != 1:
if str(e) == 'duplicate column name: user_services': if str(e) == 'duplicate column name: user_services' or str(e) == '(1060, "Duplicate column name \'user_services\'")':
print('Updating... DB has been updated to version 5.2.4') print('Updating... DB has been updated to version 5.2.4')
else: else:
print("An error occurred:", e) print("An error occurred:", e)
@ -731,7 +731,7 @@ def update_db_v_5_2_4_1(**kwargs):
cursor.execute(sql) cursor.execute(sql)
except Exception as e: except Exception as e:
if kwargs.get('silent') != 1: if kwargs.get('silent') != 1:
if str(e) == 'duplicate column name: nginx_metrics' or str(e) == '(1060, "Duplicate column name \'nginx_metrics\'")': if str(e) == 'duplicate column name: nginx_metrics' or str(e) == '(1060, "Duplicate column name \'nginx_metrics\'")':
print('Updating... DB has been updated to version 5.2.4') print('Updating... DB has been updated to version 5.2.4')
else: else:
print("An error occurred:", e) print("An error occurred:", e)

View File

@ -58,7 +58,7 @@ class Server(BaseModel):
firewall_enable = IntegerField(constraints=[SQL('DEFAULT 0')]) firewall_enable = IntegerField(constraints=[SQL('DEFAULT 0')])
nginx_alert = IntegerField(constraints=[SQL('DEFAULT 0')]) nginx_alert = IntegerField(constraints=[SQL('DEFAULT 0')])
protected = IntegerField(constraints=[SQL('DEFAULT 0')]) protected = IntegerField(constraints=[SQL('DEFAULT 0')])
nginx_metrics = IntegerField(constraints=[SQL('DEFAULT 1')]) nginx_metrics = IntegerField(constraints=[SQL('DEFAULT 0')])
class Meta: class Meta:
table_name = 'servers' table_name = 'servers'

View File

@ -5,11 +5,11 @@ env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
template = env.get_template('runtimeapi.html') template = env.get_template('runtimeapi.html')
print('Content-type: text/html\n') print('Content-type: text/html\n')
funct.check_login() funct.check_login(service=1)
form = funct.form form = funct.form
try: try:
user, user_id, role, token, servers = funct.get_users_params(virt=1) user, user_id, role, token, servers, user_services = funct.get_users_params(virt=1)
servbackend = form.getvalue('servbackend') servbackend = form.getvalue('servbackend')
serv = form.getvalue('serv') serv = form.getvalue('serv')
if servbackend is None: if servbackend is None:
@ -25,5 +25,6 @@ template = template.render(h2=0,
select_id="serv", select_id="serv",
selects=servers, selects=servers,
token=token, token=token,
user_services=user_services,
servbackend=servbackend) servbackend=servbackend)
print(template) print(template)

View File

@ -5,7 +5,7 @@
<span title="{{s.0}} is started"><span class="serverUp server-status"></span></span> <span title="{{s.0}} is started"><span class="serverUp server-status"></span></span>
{% else %} {% else %}
{% if s.1.0 == 'inactive' or s.1.0 == 'failed' %} {% if s.1.0 == 'inactive' or s.1.0 == 'failed' %}
<span title="{{s.0}} is stoped"><span class="serverDown server-status"></span></span> <span title="{{s.0}} is stopped"><span class="serverDown server-status"></span></span>
{% else %} {% else %}
<span title="{{s.0}} is not installed"><span class="serverNone server-status"></span></span> <span title="{{s.0}} is not installed"><span class="serverNone server-status"></span></span>
{% endif %} {% endif %}

View File

@ -1,15 +1,14 @@
<table class="overview" style="border: none;"> <tr>
<tr style="border: none;"> <td class="padding20" style="width: 70%">Current group</td>
<td style="border: none"> <td>
<select id="newCurrentGroup" name="newCurrentGroup" > <select id="newCurrentGroup" name="newCurrentGroup" >
{% for g in groups %} {% for g in groups %}
{% if g.user_group_id|string() == group|string() %} {% if g.user_group_id|string() == group|string() %}
<option value="{{ g.user_group_id }}" selected>{{ g.groups.name }}</option> <option value="{{ g.user_group_id }}" selected>{{ g.groups.name }}</option>
{% else %} {% else %}
<option value="{{ g.user_group_id }}">{{ g.groups.name }}</option> <option value="{{ g.user_group_id }}">{{ g.groups.name }}</option>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</select> </select>
</td> </td>
</tr> </tr>
</table>

View File

@ -256,14 +256,16 @@
</div> </div>
</div> </div>
<div id="show-user-settings"> <div id="show-user-settings">
<table class="overview"> <table class="overview" id="show-user-settings-table">
<tr> <tr>
<td class="padding20" style="width: 60%">Disable alerting for this tab</td> <td class="padding20" style="width: 70%">Alerts</td>
<td><label for="disable_alert_for_tab"></label><input type="checkbox" id="disable_alert_for_tab" /> <td>
</tr> <select id="disable_alerting">
<tr class="even"> <option value="0" title="Alerts for all tabs are enabled">All alerts are enabled</option>
<td class="padding20" style="width: 60%">Disable alerting for all tabs</td> <option value="1">Disable alerting for this tab</option>
<td><label for="disable_alert_for_all"></label><input type="checkbox" id="disable_alert_for_all" /> <option value="2">Disable alerting for all tabs</option>
</select>
</td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -799,12 +799,11 @@ $( function() {
modal: true, modal: true,
title: 'User settings', title: 'User settings',
buttons: { buttons: {
Save: function() { Apply: function() {
saveUserSettings(); saveUserSettings();
$( this ).dialog( "close" ); $( this ).dialog( "close" );
}, },
"Change group": function(){ Cancel: function () {
showCurrentGroup(this);
$( this ).dialog( "close" ); $( this ).dialog( "close" );
}, },
Logout: function() { Logout: function() {
@ -815,13 +814,31 @@ $( function() {
$('#show-user-settings-button').click(function() { $('#show-user-settings-button').click(function() {
if (sessionStorage.getItem('disabled_alert') == '1') { if (sessionStorage.getItem('disabled_alert') == '1') {
$('#disable_alert_for_tab').prop('checked', true); $('#disable_alerting option[value="1"]').prop('selected', true);
$( "input[type=checkbox]" ).checkboxradio('refresh'); $('#disable_alerting').selectmenu('refresh');
} } else if (localStorage.getItem('disabled_alert') == '1') {
if (localStorage.getItem('disabled_alert') == '1') { $('#disable_alerting option[value="2"]').prop('selected', true);
$('#disable_alert_for_all').prop('checked', true); $('#disable_alerting').selectmenu('refresh');
$( "input[type=checkbox]" ).checkboxradio('refresh'); } else {
$('#disable_alerting option[value="0"]').prop('selected', true);
$('#disable_alerting').selectmenu('refresh');
} }
$.ajax( {
url: "options.py",
data: {
getcurrentusergroup: 1,
token: $('#token').val()
},
type: "POST",
success: function( data ) {
if (data.indexOf('danger') != '-1') {
$("#ajax").html(data);
} else {
$('#show-user-settings-table').append(data);
$( "select" ).selectmenu();
}
}
} );
showUserSettings.dialog('open'); showUserSettings.dialog('open');
}); });
var location = window.location.href; var location = window.location.href;
@ -969,50 +986,17 @@ $( function() {
}) })
}); });
function saveUserSettings(){ function saveUserSettings(){
if ($('#disable_alert_for_tab').is(':checked')) { if ($('#disable_alerting').val() == '0') {
localStorage.removeItem('disabled_alert');
sessionStorage.removeItem('disabled_alert');
} else if ($('#disable_alerting').val() == '1') {
sessionStorage.setItem('disabled_alert', '1'); sessionStorage.setItem('disabled_alert', '1');
} else { localStorage.removeItem('disabled_alert');
} else if ($('#disable_alerting').val() == '2') {
localStorage.setItem('disabled_alert', '1');
sessionStorage.removeItem('disabled_alert'); sessionStorage.removeItem('disabled_alert');
} }
if ($('#disable_alert_for_all').is(':checked')) { changeCurrentGroupF();
localStorage.setItem('disabled_alert', '1');
} else {
localStorage.removeItem('disabled_alert');
}
}
function showCurrentGroup(dialog_id) {
$.ajax( {
url: "options.py",
data: {
getcurrentusergroup: 1,
token: $('#token').val()
},
type: "POST",
success: function( data ) {
if (data.indexOf('danger') != '-1') {
$("#ajax").html(data);
} else {
$('.alert-danger').remove();
$('#current-user-groups-form').html(data);
$( "select" ).selectmenu();
$( "#current-user-groups-dialog" ).dialog({
width: 290,
modal: true,
title: "Change a new current group",
buttons: {
"Change": function() {
$( this ).dialog( "close" );
changeCurrentGroupF();
},
Cancel: function() {
$( this ).dialog( "close" );
$( dialog_id ).dialog("open" );
}
}
});
}
}
} );
} }
function sleep(ms) { function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms)); return new Promise(resolve => setTimeout(resolve, ms));