mirror of https://github.com/Aidaho12/haproxy-wi
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1304 lines
37 KiB
1304 lines
37 KiB
var awesome = "/inc/fontawesome.min.js" |
|
|
|
jQuery.expr[':'].regex = function(elem, index, match) { |
|
var matchParams = match[3].split(','), |
|
validLabels = /^(data|css):/, |
|
attr = { |
|
method: matchParams[0].match(validLabels) ? |
|
matchParams[0].split(':')[0] : 'attr', |
|
property: matchParams.shift().replace(validLabels,'') |
|
}, |
|
regexFlags = 'ig', |
|
regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags); |
|
return regex.test(jQuery(elem)[attr.method](attr.property)); |
|
} |
|
|
|
$( function() { |
|
$( "#interface" ).autocomplete({ |
|
source: function( request, response ) { |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
showif:1, |
|
serv: $("#master").val(), |
|
token: $('#token').val() |
|
}, |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
response(data.split(" ")); |
|
} |
|
} ); |
|
}, |
|
autoFocus: true, |
|
minLength: -1 |
|
}); |
|
$( "#interface-add" ).autocomplete({ |
|
source: function( request, response ) { |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
showif:1, |
|
serv: $("#master-add").val(), |
|
token: $('#token').val() |
|
}, |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
response(data.split(" ")); |
|
} |
|
} ); |
|
}, |
|
autoFocus: true, |
|
minLength: -1 |
|
}); |
|
var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; |
|
$('#create').click(function() { |
|
var hap = 0; |
|
var syn_flood = 0; |
|
if ($('#hap').is(':checked')) { |
|
hap = '1'; |
|
} |
|
if ($('#syn_flood').is(':checked')) { |
|
syn_flood = '1'; |
|
} |
|
$("#ajax").html('') |
|
if( $("#master").val() == "" || $("#slave").val() == "" || $("#interface").val() == "" || |
|
$("#vrrp-ip").val() == "") { |
|
$("#ajax").html('<div class="alert alert-danger">Please fill in all fields</div>') |
|
} else if(! $("#vrrp-ip").val().match(ipformat)) { |
|
$("#ajax").html('<div class="alert alert-danger">Please enter IP in "VRRP IP" field</div>') |
|
} else if ($("#master").val() == $("#slave").val() ){ |
|
$("#ajax").html('<div class="alert alert-danger">Master and slave must be diff servers</div>') |
|
} else { |
|
$("#ajax").html('<div class="alert alert-warning">Please don\'t close and don\'t represh page. Wait until the work is completed. This may take some time </div>'); |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
master: $('#master').val(), |
|
slave: $('#slave').val(), |
|
interface: $("#interface").val(), |
|
vrrpip: $('#vrrp-ip').val(), |
|
hap: hap, |
|
syn_flood: syn_flood, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1' || data.indexOf('alert') != '-1' || data.indexOf('FAILED') != '-1') { |
|
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>'); |
|
} else if (data.indexOf('info') != '-1' ){ |
|
$("#ajax").html('<div class="alert alert-info">'+data+'</data>'); |
|
} else if (data.indexOf('success') != '-1' ){ |
|
$('.alert-danger').remove(); |
|
$("#ajax").html('<div class="alert alert-success">'+data+'</data>'); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax").html('<div class="alert alert-info">'+data+'</data>'); |
|
} |
|
} |
|
} ); |
|
} |
|
}); |
|
$('#add-vrrp').click(function() { |
|
var kp = 0; |
|
if ($('#kp').is(':checked')) { |
|
kp = '1'; |
|
} else { |
|
kp = '0'; |
|
} |
|
$("#ajax").html('') |
|
if( $("#master-add").val() == "" || $("#slave-add").val() == "" || $("#interface-add").val() == "" || |
|
$("#vrrp-ip-add").val() == "") { |
|
$("#ajax").html('<div class="alert alert-danger">Please fill in all fields</div>') |
|
} else if(! $("#vrrp-ip-add").val().match(ipformat)) { |
|
$("#ajax").html('<div class="alert alert-danger">Please enter IP in "VRRP IP" field</div>') |
|
} else { |
|
$("#ajax").html('<div class="alert alert-warning">Please don\'t close and don\'t represh page. Wait until the work is completed. This may take some time </div>'); |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
masteradd: $('#master-add').val(), |
|
slaveadd: $('#slave-add').val(), |
|
interfaceadd: $("#interface-add").val(), |
|
vrrpipadd: $('#vrrp-ip-add').val(), |
|
kp: kp, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>'); |
|
} else if (data.indexOf('success') != '-1'){ |
|
$('.alert-danger').remove(); |
|
$("#ajax").html('<div class="alert alert-success">'+data+'</data>'); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax").html('<div class="alert alert-info">'+data+'</data>'); |
|
} |
|
} |
|
} ); |
|
} |
|
}); |
|
$('#install').click(function() { |
|
$("#ajax").html('') |
|
var syn_flood = 0; |
|
if ($('#syn_flood').is(':checked')) { |
|
syn_flood = '1'; |
|
} |
|
$("#ajax").html('<div class="alert alert-warning">Please don\'t close and don\'t represh page. Wait until the work is completed. This may take some time </div>'); |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
haproxyaddserv: $('#haproxyaddserv').val(), |
|
syn_flood: syn_flood, |
|
hapver: $('#hapver option:selected' ).val(), |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1' || data.indexOf('FAILED') != '-1') { |
|
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>'); |
|
} else if (data.indexOf('success') != '-1' ){ |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax").html('<div class="alert alert-success">'+data+'</data>'); |
|
} else if (data.indexOf('Info') != '-1' ){ |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax").html('<div class="alert alert-info">'+data+'</data>'); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax").html('<div class="alert alert-info">'+data+'</data>'); |
|
} |
|
} |
|
} ); |
|
}); |
|
$('#update_haproxy_wi').click(function() { |
|
$("#ajax-update").html('') |
|
$("#ajax-update").html('<div class="alert alert-warning">Please don\'t close and don\'t represh page. Wait until the work is completed. This may take some time </div>'); |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
update_haproxy_wi: 1, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1' || data.indexOf('Failed') != '-1') { |
|
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>'); |
|
} else if (data.indexOf('Complete!') != '-1'){ |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-success">Update was success!</data>'); |
|
} else if (data.indexOf('Unauthorized') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-danger">It is seems like you Unauthorized in the HAProxy-WI repository. How to get HAProxy-WI auth you can read <a href="https://haproxy-wi.org/installation.py" title="How to get HAProxy-WI auth">hear</a> </data>'); |
|
} else if (data.indexOf('but not installed') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-warning">You have settings for HAProxy-WI repository, but installed HAProxy-WI without repository. Please reinstall with yum or use update.sh</data>'); |
|
} else if (data.indexOf('No Match for argument') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-warning">It is seems like you do not have HAProxy-WI repository settings. Please read docs for<a href="https://haproxy-wi.org/updates.py">detail</a></data>'); |
|
} else if (data.indexOf('password for') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-warning">It is seems like you need add Apache user to sudoers. Please read docs for<a href="https://haproxy-wi.org/updates.py">detail</a></data>'); |
|
} else if (data.indexOf('No packages marked for update') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-info">It is seems like you have the lastest version HAProxy-WI</data>'); |
|
} else if (data.indexOf('Connection timed out') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-danger">Cannot connect to HAProxy-WI repository. Connection timed out</data>'); |
|
} else if (data.indexOf('--disable') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-danger">It is seems like you have problem with your repositorys.</data>'); |
|
} else if (data.indexOf('Unauthorized') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-danger">It is seems like you Unauthorized in the HAProxy-WI repository.</data>'); |
|
} else if (data.indexOf('Error: Package') != '-1') { |
|
$('.alert-danger').remove(); |
|
$('.alert-warning').remove(); |
|
$("#ajax-update").html('<div class="alert alert-danger">'+data+'</data>'); |
|
} |
|
} |
|
} ); |
|
}); |
|
$('#add-group').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
newgroup: "1", |
|
groupname: $('#new-group-add').val(), |
|
newdesc: $('#new-desc').val(), |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-group").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
var getId = new RegExp('[0-9]+'); |
|
var id = data.match(getId); |
|
$("#ajax-group").append(data); |
|
$( ".newgroup" ).addClass( "update", 1000, callbackGroup ); |
|
$('select:regex(id, group)').append('<option value='+id+'>'+$('#new-group-add').val()+'</option>').selectmenu("refresh"); |
|
$.getScript(awesome); |
|
} |
|
} |
|
} ); |
|
}); |
|
$('#add-ssh').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
var ssh_enable = 0; |
|
if ($('#new-ssh_enable').is(':checked')) { |
|
ssh_enable = '1'; |
|
} |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
new_ssh: $('#new-ssh-add').val(), |
|
new_group: $('#new-sshgroup').val(), |
|
ssh_user: $('#ssh_user').val(), |
|
ssh_pass: $('#ssh_pass').val(), |
|
ssh_enable: ssh_enable, |
|
page: cur_url[0], |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-ssh").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
var getId = new RegExp('ssh-table-[0-9]+'); |
|
var id = data.match(getId) + ''; |
|
id = id.split('-').pop();; |
|
$("#ssh_enable_table").append(data); |
|
$( ".new_ssh" ).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( ".new_ssh" ).removeClass( "update" ); |
|
}, 2500 ); |
|
$('select:regex(id, credentials)').append('<option value='+id+'>'+$('#new-ssh-add').val()+'</option>').selectmenu("refresh"); |
|
$('select:regex(id, ssh-key-name)').append('<option value='+$('#new-ssh-add').val()+'>'+$('#new-ssh-add').val()+'</option>').selectmenu("refresh"); |
|
$.getScript(awesome); |
|
$( "input[type=submit], button" ).button(); |
|
$( "input[type=checkbox]" ).checkboxradio(); |
|
$( "select" ).selectmenu(); |
|
} |
|
} |
|
} ); |
|
}); |
|
$('#add-telegram').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
newtelegram: $('#telegram-token-add').val(), |
|
chanel: $('#telegram-chanel-add').val(), |
|
telegramgroup: $('#new-telegram-group-add').val(), |
|
page: cur_url[0], |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-telegram").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$("#checker_table").append(data); |
|
$( ".newgroup" ).addClass( "update", 1000, callbackGroup ); |
|
$.getScript(awesome); |
|
$( "input[type=submit], button" ).button(); |
|
$( "input[type=checkbox]" ).checkboxradio(); |
|
$( "select" ).selectmenu(); |
|
} |
|
} |
|
} ); |
|
}); |
|
function callbackGroup() { |
|
setTimeout(function() { |
|
$( ".newgroup" ).removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
|
|
$('#add-user-button').click(function() { |
|
addUserDialog.dialog('open'); |
|
}); |
|
$('#add-group-button').click(function() { |
|
if ($('#group-add-table').css('display', 'none')) { |
|
$('#group-add-table').show("blind", "fast"); |
|
} else { |
|
$('#group-add-table').hide("blind", "fast"); |
|
} |
|
}); |
|
var addUserDialog = $( "#user-add-table" ).dialog({ |
|
autoOpen: false, |
|
resizable: false, |
|
height: "auto", |
|
width: 600, |
|
modal: true, |
|
title: "Add new user", |
|
show: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
hide: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
buttons: { |
|
"Add": function() { |
|
addUser(); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
clearTips(); |
|
} |
|
} |
|
}); |
|
var addServerDialog = $( "#server-add-table" ).dialog({ |
|
autoOpen: false, |
|
resizable: false, |
|
height: "auto", |
|
width: 600, |
|
modal: true, |
|
title: "Add new server", |
|
show: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
hide: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
buttons: { |
|
"Add": function() { |
|
addServer(); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
clearTips(); |
|
} |
|
} |
|
}); |
|
$('#add-server-button').click(function() { |
|
addServerDialog.dialog('open'); |
|
}); |
|
$('#add-ssh-button').click(function() { |
|
if ($('#ssh-add-table').css('display', 'none')) { |
|
$('#ssh-add-table').show("blind", "fast"); |
|
} |
|
}); |
|
$('#add-telegram-button').click(function() { |
|
if ($('#telegram-add-table').css('display', 'none')) { |
|
$('#telegram-add-table').show("blind", "fast"); |
|
} |
|
}); |
|
$( "#ajax-users input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateUser(id[1]) |
|
}); |
|
$( "#ajax-users select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateUser(id[1]) |
|
}); |
|
$( "#ajax-group input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateGroup(id[1]) |
|
}); |
|
$( "#ajax-servers input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateServer(id[1]) |
|
}); |
|
$( "#ajax-servers select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateServer(id[1]) |
|
}); |
|
$( "#ssh_enable_table input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSSH(id[1]) |
|
sshKeyEnableShow(id[1]) |
|
}); |
|
$( "#ssh_enable_table select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSSH(id[1]) |
|
sshKeyEnableShow(id[1]) |
|
}); |
|
$( "#settings input" ).change(function() { |
|
var id = $(this).attr('id'); |
|
var val = $(this).val(); |
|
console.log(id) |
|
console.log(val) |
|
updateSettings(id, val); |
|
}); |
|
$('#new-ssh_enable').click(function() { |
|
if ($('#new-ssh_enable').is(':checked')) { |
|
$('#ssh_pass').css('display', 'none'); |
|
} else { |
|
$('#ssh_pass').css('display', 'block'); |
|
} |
|
}); |
|
if ($('#new-ssh_enable').is(':checked')) { |
|
$('#ssh_pass').css('display', 'none'); |
|
} else { |
|
$('#ssh_pass').css('display', 'block'); |
|
} |
|
$( "#checker_table input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateTelegram(id[2]) |
|
}); |
|
$( "#checker_table select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateTelegram(id[1]) |
|
}); |
|
$('#search_ldap_user').click(function() { |
|
var valid = true; |
|
$('#error').remove(); |
|
allFields = $( [] ).add( $('#new-username') ) |
|
allFields.removeClass( "ui-state-error" ); |
|
valid = valid && checkLength( $('#new-username'), "user name", 1 ); |
|
user = $('#new-username').val() |
|
if (valid) { |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
get_ldap_email: $('#new-username').val(), |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
alert(data) |
|
$('#new-email').val(''); |
|
$('#new-password').attr('readonly', false); |
|
$('#new-password').val(''); |
|
} else { |
|
var json = $.parseJSON(data); |
|
$('.alert-danger').remove(); |
|
$('#new-email').val(json[0]); |
|
$('#new-username').val(user+'@'+json[1]); |
|
$('#new-password').val('aduser'); |
|
$('#new-password').attr('readonly', true); |
|
} |
|
} |
|
} ); |
|
clearTips(); |
|
} |
|
}); |
|
|
|
} ); |
|
|
|
function updateTips( t ) { |
|
var tips = $( ".validateTips" ); |
|
tips.text( t ).addClass( "alert-warning" ); |
|
} |
|
function clearTips() { |
|
var tips = $( ".validateTips" ); |
|
tips.html('Form fields tag "<span class="need-field">*</span>" are required.').removeClass( "alert-warning" ); |
|
allFields = $( [] ).add( $('#new-server-add') ).add( $('#new-ip') ).add( $('#new-port')).add( $('#new-username') ).add( $('#new-password') ) |
|
allFields.removeClass( "ui-state-error" ); |
|
} |
|
function checkLength( o, n, min ) { |
|
if ( o.val().length < min ) { |
|
o.addClass( "ui-state-error" ); |
|
updateTips("Filed "+n+" required"); |
|
return false; |
|
} else { |
|
return true; |
|
} |
|
} |
|
function addUser() { |
|
var valid = true; |
|
$('#error').remove(); |
|
allFields = $( [] ).add( $('#new-username') ).add( $('#new-password') ) |
|
allFields.removeClass( "ui-state-error" ); |
|
valid = valid && checkLength( $('#new-username'), "user name", 1 ); |
|
valid = valid && checkLength( $('#new-password'), "password", 1 ); |
|
var activeuser = 0; |
|
if ($('#activeuser').is(':checked')) { |
|
activeuser = '1'; |
|
} |
|
if (valid) { |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
newuser: "1", |
|
newusername: $('#new-username').val(), |
|
newpassword: $('#new-password').val(), |
|
newemail: $('#new-email').val(), |
|
newrole: $('#new-role').val(), |
|
activeuser: activeuser, |
|
page: cur_url[0], |
|
newgroupuser: $('#new-group').val(), |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-users").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#ajax-users").append(data); |
|
} |
|
} |
|
} ); |
|
clearTips(); |
|
$( "#user-add-table" ).dialog("close" ); |
|
} |
|
} |
|
function addServer() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
var valid = true; |
|
var servername = $('#new-server-add').val(); |
|
var newip = $('#new-ip').val(); |
|
var newservergroup = $('#new-server-group-add').val(); |
|
var cred = $('#credentials').val(); |
|
var typeip = 0; |
|
var enable = 0; |
|
var alert_en = 0; |
|
var metrics = 0; |
|
var active = 0; |
|
if ($('#typeip').is(':checked')) { |
|
typeip = '1'; |
|
} |
|
if ($('#enable').is(':checked')) { |
|
enable = '1'; |
|
} |
|
if ($('#alert').is(':checked')) { |
|
var alert_en = '1'; |
|
} |
|
if ($('#metrics').is(':checked')) { |
|
var metrics = '1'; |
|
} |
|
if ($('#active').is(':checked')) { |
|
var active = '1'; |
|
} |
|
allFields = $( [] ).add( $('#new-server-add') ).add( $('#new-ip') ).add( $('#new-port') ) |
|
allFields.removeClass( "ui-state-error" ); |
|
valid = valid && checkLength( $('#new-server-add'), "Hostname", 1 ); |
|
valid = valid && checkLength( $('#new-ip'), "IP", 1 ); |
|
valid = valid && checkLength( $('#new-port'), "Port", 1 ); |
|
if (valid) { |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
newserver: "1", |
|
servername: servername, |
|
newip: newip, |
|
newport: $('#new-port').val(), |
|
newservergroup: newservergroup, |
|
typeip: typeip, |
|
enable: enable, |
|
slave: $('#slavefor' ).val(), |
|
cred: cred, |
|
alert_en: alert_en, |
|
metrics: metrics, |
|
page: cur_url[0], |
|
desc: $('#desc').val(), |
|
active: active, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-servers").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#ajax-servers").append(data); |
|
$(".newserver").addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( ".newserver" ).removeClass( "update" ); |
|
}, 2500 ); |
|
$( "input[type=submit], button" ).button(); |
|
$( "input[type=checkbox]" ).checkboxradio(); |
|
$( ".controlgroup" ).controlgroup(); |
|
$( "select" ).selectmenu(); |
|
$.getScript(awesome); |
|
} |
|
} |
|
} ); |
|
clearTips(); |
|
$( "#server-add-table" ).dialog("close" ); |
|
} |
|
} |
|
function updateSettings(param, val) { |
|
$('.alert-danger').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updatesettings: param, |
|
val: val, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#"+param).parent().parent().addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#"+param ).parent().parent().removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
} |
|
} ); |
|
} |
|
function sshKeyEnableShow(id) { |
|
$('#ssh_enable-'+id).click(function() { |
|
if ($('#ssh_enable-'+id).is(':checked')) { |
|
$('#ssh_pass-'+id).css('display', 'none'); |
|
} else { |
|
$('#ssh_pass-'+id).css('display', 'block'); |
|
} |
|
}); |
|
if ($('#ssh_enable-'+id).is(':checked')) { |
|
$('#ssh_pass-'+id).css('display', 'none'); |
|
} else { |
|
$('#ssh_pass-'+id).css('display', 'block'); |
|
} |
|
} |
|
|
|
function confirmDeleteUser(id) { |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: "Are you sure you want to delete " +$('#login-'+id).val() + "?", |
|
buttons: { |
|
"Delete": function() { |
|
$( this ).dialog( "close" ); |
|
removeUser(id); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
} |
|
}); |
|
} |
|
function confirmDeleteGroup(id) { |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: "Are you sure you want to delete " +$('#name-'+id).val() + "?", |
|
buttons: { |
|
"Delete": function() { |
|
$( this ).dialog( "close" ); |
|
removeGroup(id); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
} |
|
}); |
|
} |
|
function confirmDeleteServer(id) { |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: "Are you sure you want to delete " +$('#hostname-'+id).val() + "?", |
|
buttons: { |
|
"Delete": function() { |
|
$( this ).dialog( "close" ); |
|
removeServer(id); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
} |
|
}); |
|
} |
|
function confirmDeleteSsh(id) { |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: "Are you sure you want to delete " +$('#ssh_name-'+id).val() + "?", |
|
buttons: { |
|
"Delete": function() { |
|
$( this ).dialog( "close" ); |
|
removeSsh(id); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
} |
|
}); |
|
} |
|
function confirmDeleteTelegram(id) { |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: "Are you sure you want to delete " +$('#telegram-chanel-'+id).val() + "?", |
|
buttons: { |
|
"Delete": function() { |
|
$( this ).dialog( "close" ); |
|
removeTelegram(id); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
} |
|
}); |
|
} |
|
function cloneServer(id) { |
|
$( "#add-server-button" ).trigger( "click" ); |
|
if ($('#enable-'+id).is(':checked')) { |
|
$('#enable').prop('checked', true) |
|
} else { |
|
$('#enable').prop('checked', false) |
|
} |
|
if ($('#typeip-'+id).is(':checked')) { |
|
$('#typeip').prop('checked', true) |
|
} else { |
|
$('#typeip').prop('checked', false) |
|
} |
|
if ($('#alert-'+id).is(':checked')) { |
|
$('#alert').prop('checked', true) |
|
} else { |
|
$('#alert').prop('checked', false) |
|
} |
|
if ($('#metrics-'+id).is(':checked')) { |
|
$('#metrics').prop('checked', true) |
|
} else { |
|
$('#metrics').prop('checked', false) |
|
} |
|
if ($('#active-'+id).is(':checked')) { |
|
$('#active').prop('checked', true) |
|
} else { |
|
$('#active').prop('checked', false) |
|
} |
|
$('#enable').checkboxradio("refresh"); |
|
$('#typeip').checkboxradio("refresh"); |
|
$('#alert').checkboxradio("refresh"); |
|
$('#active').checkboxradio("refresh"); |
|
$('#new-server-add').val($('#hostname-'+id).val()) |
|
$('#new-ip').val($('#ip-'+id).val()) |
|
$('#new-port').val($('#port-'+id).val()) |
|
$('#desc').val($('#desc-'+id).val()) |
|
$('#slavefor').val($('#slavefor-'+id+' option:selected').val()).change() |
|
$('#slavefor').selectmenu("refresh"); |
|
$('#credentials').val($('#credentials-'+id+' option:selected').val()).change() |
|
$('#credentials').selectmenu("refresh"); |
|
cur_url = cur_url[0].split('#')[0] |
|
if (cur_url == 'users.py') { |
|
$('#new-server-group-add').val($('#servergroup-'+id+' option:selected').val()).change() |
|
$('#new-server-group-add').selectmenu("refresh"); |
|
} |
|
} |
|
function cloneUser(id) { |
|
$( "#add-user-button" ).trigger( "click" ); |
|
if ($('#activeuser-'+id).is(':checked')) { |
|
$('#activeuser').prop('checked', true) |
|
} else { |
|
$('#activeuser').prop('checked', false) |
|
} |
|
$('#activeuser').checkboxradio("refresh"); |
|
$('#new-role').val($('#role-'+id+' option:selected').val()).change() |
|
$('#new-role').selectmenu("refresh"); |
|
cur_url = cur_url[0].split('#')[0] |
|
if (cur_url == 'users.py') { |
|
$('#new-group').val($('#usergroup-'+id+' option:selected').val()).change(); |
|
$('#new-group').selectmenu("refresh"); |
|
} |
|
} |
|
function cloneTelegram(id) { |
|
$( "#add-telegram-button" ).trigger( "click" ); |
|
$('#telegram-token-add').val($('#telegram-token-'+id).val()) |
|
$('#telegram-chanel-add').val($('#telegram-chanel-'+id).val()) |
|
} |
|
function removeUser(id) { |
|
$("#user-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
userdel: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok ") { |
|
$("#user-"+id).remove(); |
|
} |
|
} |
|
} ); |
|
} |
|
function removeServer(id) { |
|
$("#server-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
serverdel: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok ") { |
|
$("#server-"+id).remove(); |
|
} |
|
} |
|
} ); |
|
} |
|
function removeGroup(id) { |
|
$("#group-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
groupdel: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok ") { |
|
$("#group-"+id).remove(); |
|
$('select:regex(id, group) option[value='+id+']').remove(); |
|
$('select:regex(id, group)').selectmenu("refresh"); |
|
} |
|
} |
|
} ); |
|
} |
|
function removeSsh(id) { |
|
$("#ssh-table-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
sshdel: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok ") { |
|
$("#ssh-table-"+id).remove(); |
|
$('select:regex(id, credentials) option[value='+id+']').remove(); |
|
$('select:regex(id, credentials)').selectmenu("refresh"); |
|
} |
|
} |
|
} ); |
|
} |
|
function removeTelegram(id) { |
|
$("#telegram-table-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
telegramdel: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok ") { |
|
$("#telegram-table-"+id).remove(); |
|
} |
|
} |
|
} ); |
|
} |
|
function updateUser(id) { |
|
$('.alert-danger').remove(); |
|
cur_url[0] = cur_url[0].split('#')[0] |
|
console.log(cur_url[0]) |
|
if (cur_url[0] != "servers.py") { |
|
var usergroup = $('#usergroup-'+id+' option:selected' ).val(); |
|
} else { |
|
var usergroup = $('#usergroup-'+id ).val(); |
|
} |
|
var activeuser = 0; |
|
if ($('#activeuser-'+id).is(':checked')) { |
|
activeuser = '1'; |
|
} |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updateuser: $('#login-'+id).val(), |
|
email: $('#email-'+id).val(), |
|
role: $('#role-'+id).val(), |
|
usergroup: usergroup, |
|
activeuser: activeuser, |
|
id: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-users").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#user-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#user-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
} |
|
} ); |
|
} |
|
function updateGroup(id) { |
|
$('#error').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updategroup: $('#name-'+id).val(), |
|
descript: $('#descript-'+id).val(), |
|
id: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-group").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#group-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#group-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
$('select:regex(id, group) option[value='+id+']').remove(); |
|
$('select:regex(id, group)').append('<option value='+id+'>'+$('#name-'+id).val()+'</option>').selectmenu("refresh"); |
|
} |
|
} |
|
} ); |
|
} |
|
function updateServer(id) { |
|
$('.alert-danger').remove(); |
|
var typeip = 0; |
|
var enable = 0; |
|
var alert_en = 0; |
|
var metrics = 0; |
|
var active = 0; |
|
if ($('#typeip-'+id).is(':checked')) { |
|
typeip = '1'; |
|
} |
|
if ($('#enable-'+id).is(':checked')) { |
|
enable = '1'; |
|
} |
|
if ($('#alert-'+id).is(':checked')) { |
|
alert_en = '1'; |
|
} |
|
if ($('#metrics-'+id).is(':checked')) { |
|
metrics = '1'; |
|
} |
|
if ($('#active-'+id).is(':checked')) { |
|
active = '1'; |
|
} |
|
var servergroup = $('#servergroup-'+id+' option:selected' ).val(); |
|
if (cur_url[0] == "servers.py") { |
|
servergroup = $('#servergroup-'+id).val(); |
|
} |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updateserver: $('#hostname-'+id).val(), |
|
ip: $('#ip-'+id).val(), |
|
port: $('#port-'+id).val(), |
|
servergroup: servergroup, |
|
typeip: typeip, |
|
enable: enable, |
|
slave: $('#slavefor-'+id+' option:selected' ).val(), |
|
cred: $('#credentials-'+id+' option:selected').val(), |
|
id: id, |
|
metrics: metrics, |
|
alert_en: alert_en, |
|
desc: $('#desc-'+id).val(), |
|
active: active, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-servers").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#server-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#server-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
} |
|
} ); |
|
} |
|
function uploadSsh() { |
|
$('.alert-danger').remove(); |
|
if ($( "#ssh-key-name option:selected" ).val() == "Choose server" || $('#ssh_cert').val() == '') { |
|
$("#ajax-ssh").html('<div class="alert alert-danger" style="margin: 10px;">All fields must be completed</div>'); |
|
} else { |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
ssh_cert: $('#ssh_cert').val(), |
|
name: $('#ssh-key-name').val(), |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('danger') != '-1') { |
|
$("#ajax-ssh").html(data); |
|
} else if (data.indexOf('success') != '-1') { |
|
$('.alert-danger').remove(); |
|
$("#ajax-ssh").html(data); |
|
} else { |
|
$("#ajax-ssh").html('<div class="alert alert-danger">Something wrong, check and try again</div>'); |
|
} |
|
} |
|
} ); |
|
} |
|
} |
|
function updateSSH(id) { |
|
$('#error').remove(); |
|
var ssh_enable = 0; |
|
if ($('#ssh_enable-'+id).is(':checked')) { |
|
ssh_enable = '1'; |
|
} |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updatessh: 1, |
|
name: $('#ssh_name-'+id).val(), |
|
group: $('#sshgroup-'+id).val(), |
|
ssh_enable: ssh_enable, |
|
ssh_user: $('#ssh_user-'+id).val(), |
|
ssh_pass: $('#ssh_pass-'+id).val(), |
|
id: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-ssh").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#ssh-table-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#ssh-table-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
$('select:regex(id, credentials) option[value='+id+']').remove(); |
|
$('select:regex(id, ssh-key-name) option[value='+$('#ssh_name-'+id).val()+']').remove(); |
|
$('select:regex(id, credentials)').append('<option value='+id+'>'+$('#ssh_name-'+id).val()+'</option>').selectmenu("refresh"); |
|
$('select:regex(id, ssh-key-name)').append('<option value='+$('#ssh_name-'+id).val()+'>'+$('#ssh_name-'+id).val()+'</option>').selectmenu("refresh"); |
|
} |
|
} |
|
} ); |
|
} |
|
function updateTelegram(id) { |
|
$('#error').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updatetoken: $('#telegram-token-'+id).val(), |
|
updategchanel: $('#telegram-chanel-'+id).val(), |
|
updategroup: $('#telegramgroup-'+id).val(), |
|
id: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-ssh").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#telegram-table-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#telegram-table-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
} |
|
} ); |
|
} |
|
function showApacheLog(serv) { |
|
var rows = $('#rows').val() |
|
var grep = $('#grep').val() |
|
var hour = $('#time_range_out_hour').val() |
|
var minut = $('#time_range_out_minut').val() |
|
var hour1 = $('#time_range_out_hour1').val() |
|
var minut1 = $('#time_range_out_minut1').val() |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
rows1: rows, |
|
serv: serv, |
|
grep: grep, |
|
hour: hour, |
|
minut:minut, |
|
hour1: hour1, |
|
minut1: minut1, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
$("#ajax").html(data); |
|
window.history.pushState("Logs", "Logs", cur_url[0]+"?serv="+serv+"&rows1="+rows+"&grep="+grep+ |
|
'&hour='+hour+ |
|
'&minut='+minut+ |
|
'&hour1='+hour1+ |
|
'&minut1='+minut1); |
|
} |
|
} ); |
|
} |
|
function checkSshConnect(ip) { |
|
$.ajax( { |
|
url: "options.py", |
|
data: { |
|
checkSshConnect: 1, |
|
serv: ip, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
if (data.indexOf('danger') != '-1') { |
|
$("#ajax").html(data); |
|
} else { |
|
$("#ajax").html("<div class='alert alert-success' style='margin: 0;'>Connect accept<a title='Close' id='errorMess'><b>X</b></a></div>"); |
|
} |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
$('.alert-success').remove(); |
|
}); |
|
} |
|
} ); |
|
} |
|
function openChangeUserPasswordDialog(id) { |
|
changeUserPasswordDialog(id); |
|
} |
|
function changeUserPasswordDialog(id) { |
|
$( "#user-change-password-table" ).dialog({ |
|
autoOpen: true, |
|
resizable: false, |
|
height: "auto", |
|
width: 600, |
|
modal: true, |
|
title: "Change "+$('#login-'+id).val()+" password", |
|
show: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
hide: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
buttons: { |
|
"Change": function() { |
|
changeUserPassword(id, $(this)); |
|
}, |
|
Cancel: function() { |
|
$( this ).dialog( "close" ); |
|
$('#missmatchpass').hide(); |
|
} |
|
} |
|
}); |
|
} |
|
function changeUserPassword(id, d) { |
|
var pass = $('#change-password').val(); |
|
var pass2 = $('#change2-password').val(); |
|
if(pass != pass2) { |
|
$('#missmatchpass').show(); |
|
} else { |
|
$('#missmatchpass').hide(); |
|
$('#error').remove(); |
|
$.ajax( { |
|
url: "sql.py", |
|
data: { |
|
updatepassowrd: pass, |
|
id: id, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error') != '-1') { |
|
$("#ajax-users").append(data); |
|
$('#errorMess').click(function() { |
|
$('#error').remove(); |
|
$('.alert-danger').remove(); |
|
}); |
|
} else { |
|
$('.alert-danger').remove(); |
|
$("#user-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$( "#user-"+id ).removeClass( "update" ); |
|
}, 2500 ); |
|
d.dialog( "close" ); |
|
} |
|
} |
|
} ); |
|
} |
|
} |