Files
haproxy-wi/app/static/js/backup.js
Aidaho 9c5bc5ca4b v7.3.1.0: Refactor error handling and improve README.md readability
The error handling has been refactored in the Roxywi overview and routes files to raise and return more comprehensive exceptions. Unnecessary commented out JSON parsing code in the service installation file has been removed for better code clarity. Aside from these, various minor grammar and formatting fixes have been made to the README.md to improve readability.
2024-06-16 12:27:47 +03:00

449 lines
12 KiB
JavaScript

$( function() {
$("#backup_tabs").tabs();
$('#add-backup-button').click(function() {
addBackupDialog.dialog('open');
});
let backup_tabel_title = $( "#backup-add-table-overview" ).attr('title');
let addBackupDialog = $( "#backup-add-table" ).dialog({
autoOpen: false,
resizable: false,
height: "auto",
width: 600,
modal: true,
title: backup_tabel_title,
show: {
effect: "fade",
duration: 200
},
hide: {
effect: "fade",
duration: 200
},
buttons: {
"Add": function () {
addBackup(this);
},
Cancel: function () {
$(this).dialog("close");
clearTips();
}
}
});
$('#add-backup-s3-button').click(function() {
addS3BackupDialog.dialog('open');
});
let s3_backup_tabel_title = $( "#s3-backup-add-table-overview" ).attr('title');
let addS3BackupDialog = $( "#s3-backup-add-table" ).dialog({
autoOpen: false,
resizable: false,
height: "auto",
width: 600,
modal: true,
title: s3_backup_tabel_title,
show: {
effect: "fade",
duration: 200
},
hide: {
effect: "fade",
duration: 200
},
buttons: {
"Add": function () {
addS3Backup(this);
},
Cancel: function () {
$(this).dialog("close");
clearTips();
}
}
});
$('#add-git-button').click(function() {
addGitDialog.dialog('open');
});
let git_tabel_title = $( "#git-add-table-overview" ).attr('title');
let addGitDialog = $( "#git-add-table" ).dialog({
autoOpen: false,
resizable: false,
height: "auto",
width: 600,
modal: true,
title: git_tabel_title,
show: {
effect: "fade",
duration: 200
},
hide: {
effect: "fade",
duration: 200
},
buttons: {
"Add": function () {
addGit(this);
},
Cancel: function () {
$(this).dialog("close");
clearTips();
}
}
});
$('#git-init').click(function() {
if ($('#git-init').is(':checked')) {
$('.git-init-params').show();
} else {
$('.git-init-params').hide();
}
});
$( "#ajax-backup-table input" ).change(function() {
let id = $(this).attr('id').split('-');
updateBackup(id[2])
});
$( "#ajax-backup-table select" ).on('selectmenuchange',function() {
let id = $(this).attr('id').split('-');
updateBackup(id[2])
});
$("#backup_tabs ul li").click(function() {
$('.menu li ul li').each(function () {
$(this).find('a').css('border-left', '0px solid var(--right-menu-blue-rolor)');
$(this).find('a').css('padding-left', '20px')
$(this).children(".backup").css('padding-left', '30px');
$(this).children(".backup").css('border-left', '4px solid var(--right-menu-blue-rolor)');
});
});
});
function loadBackup() {
$.ajax({
url: "/app/server/backup",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('danger') != '-1' || data.indexOf('unique') != '-1' || data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$('#backup').html(data);
$.getScript('/app/static/js/backup.js');
$("select").selectmenu();
$.getScript(awesome);
}
}
});
}
function addBackup(dialog_id) {
let valid = true;
toastr.clear();
let allFields = $([]).add($('#backup-server')).add($('#rserver')).add($('#rpath')).add($('#backup-time')).add($('#backup-credentials'));
allFields.removeClass("ui-state-error");
valid = valid && checkLength($('#backup-server'), "backup server ", 1);
valid = valid && checkLength($('#rserver'), "remote server", 1);
valid = valid && checkLength($('#rpath'), "remote path", 1);
valid = valid && checkLength($('#backup-time'), "backup time", 1);
valid = valid && checkLength($('#backup-credentials'), "backup credentials", 1);
if (valid) {
$.ajax({
url: "/app/server/backup/create",
data: {
server: $('#backup-server').val(),
rserver: $('#rserver').val(),
rpath: $('#rpath').val(),
type: $('#backup-type').val(),
time: $('#backup-time').val(),
cred: $('#backup-credentials').val(),
description: $('#backup-description').val(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else if (data.indexOf('info: ') != '-1') {
toastr.clear();
toastr.info(data);
} else if (data.indexOf('warning: ') != '-1') {
toastr.clear();
toastr.warning(data);
} else {
common_ajax_action_after_success(dialog_id, 'newbackup', 'ajax-backup-table', data);
$("select").selectmenu();
}
}
});
}
}
function addS3Backup(dialog_id) {
let valid = true;
toastr.clear();
allFields = $([]).add($('#s3-backup-server')).add($('#s3_server')).add($('#s3_bucket')).add($('#s3_secret_key')).add($('#s3_access_key'))
allFields.removeClass("ui-state-error");
valid = valid && checkLength($('#s3-backup-server'), "backup server ", 1);
valid = valid && checkLength($('#s3_server'), "S3 server", 1);
valid = valid && checkLength($('#s3_bucket'), "S3 bucket", 1);
valid = valid && checkLength($('#s3_secret_key'), "S3 secret key", 1);
valid = valid && checkLength($('#s3_access_key'), "S3 access key", 1);
if (valid) {
$.ajax({
url: "/app/server/s3backup/create",
data: {
s3_backup_server: $('#s3-backup-server').val(),
s3_server: $('#s3_server').val(),
s3_bucket: $('#s3_bucket').val(),
s3_secret_key: $('#s3_secret_key').val(),
s3_access_key: $('#s3_access_key').val(),
time: $('#s3-backup-time').val(),
description: $('#s3-backup-description').val(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error: ') != '-1') {
toastr.error(data);
} else if (data.indexOf('info: ') != '-1') {
toastr.clear();
toastr.info(data);
} else if (data.indexOf('warning: ') != '-1') {
toastr.clear();
toastr.warning(data);
} else {
common_ajax_action_after_success(dialog_id, 'newbackup', 'ajax-backup-s3-table', data);
$("select").selectmenu();
}
}
});
}
}
function addGit(dialog_id) {
let valid = true;
toastr.clear();
allFields = $([]).add($('#git-server')).add($('#git-service')).add($('#git-time')).add($('#git-credentials')).add($('#git-branch'))
allFields.removeClass("ui-state-error");
valid = valid && checkLength($('#git-server'), "Server ", 1);
valid = valid && checkLength($('#git-service'), "Service", 1);
valid = valid && checkLength($('#git-credentials'), "Credentials", 1);
valid = valid && checkLength($('#git-branch'), "Branch name", 1);
let git_init = 0;
if ($('#git-init').is(':checked')) {
git_init = '1';
}
if (valid) {
$.ajax({
url: "/app/server/git/create",
data: {
server: $('#git-server').val(),
git_service: $('#git-service').val(),
git_init: git_init,
git_repo: $('#git-repo').val(),
git_branch: $('#git-branch').val(),
time: $('#git-time').val(),
cred: $('#git-credentials').val(),
description: $('#git-description').val(),
git_deljob: 0,
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else if (data.indexOf('success: ') != '-1') {
common_ajax_action_after_success(dialog_id, 'newgit', 'ajax-git-table', data);
$("select").selectmenu();
} else if (data.indexOf('info: ') != '-1') {
toastr.clear();
toastr.info(data);
} else if (data.indexOf('warning: ') != '-1') {
toastr.clear();
toastr.warning(data);
}
}
});
}
}
function confirmDeleteBackup(id) {
$("#dialog-confirm").dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
title: delete_word + " " + $('#backup-server-' + id).val() + "?",
buttons: [{
text: delete_word,
click: function () {
$(this).dialog("close");
removeBackup(id);
}
}, {
text: cancel_word,
click: function () {
$(this).dialog("close");
}
}]
});
}
function confirmDeleteS3Backup(id) {
$("#dialog-confirm").dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
title: delete_word + " " + $('#backup-s3-server-' + id).val() + "?",
buttons: [{
text: delete_word,
click: function () {
$(this).dialog("close");
removeS3Backup(id);
}
}, {
text: cancel_word,
click: function () {
$(this).dialog("close");
}
}]
});
}
function confirmDeleteGit(id) {
$("#dialog-confirm").dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
title: delete_word + " " + $('#git-server-' + id).text() + "?",
buttons: [{
text: delete_word,
click: function () {
$(this).dialog("close");
removeGit(id);
}
}, {
text: cancel_word,
click: function () {
$(this).dialog("close");
}
}]
});
}
function cloneBackup(id) {
$( "#add-backup-button" ).trigger( "click" );
$('#rserver').val($('#backup-rserver-'+id).val())
$('#rpath').val($('#backup-rpath-'+id).val())
$('#backup-type').val($('#backup-type-'+id+' option:selected').val()).change()
$('#backup-type').selectmenu("refresh");
$('#backup-time').val($('#backup-time-'+id+' option:selected').val()).change()
$('#backup-time').selectmenu("refresh");
$('#backup-credentials').val($('#backup-credentials-'+id+' option:selected').val()).change()
$('#backup-credentials').selectmenu("refresh");
}
function cloneS3Backup(id) {
$( "#add-backup-s3-button" ).trigger( "click" );
$('#s3_server').val($('#s3-server-'+id).text())
$('#s3_bucket').val($('#bucket-'+id).text())
$('#s3-backup-description').val($('#s3-backup-description--'+id).text())
$('#s3-backup-server').val($('#backup-s3-server-'+id).text()).change();
$('#s3-backup-server').selectmenu("refresh");
$('#s3-backup-time').val($('#s3-backup-time-'+id).text()).change();
$('#s3-backup-time').selectmenu("refresh");
}
function removeBackup(id) {
$("#backup-table-" + id).css("background-color", "#f2dede");
$.ajax({
url: "/app/server/backup/delete",
data: {
deljob: id,
cred: $('#backup-credentials-' + id).val(),
server: $('#backup-server-' + id).text(),
rserver: $('#backup-rserver-' + id).val(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('ok') != '-1') {
$("#backup-table-" + id).remove();
} else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
toastr.error(data);
}
}
});
}
function removeS3Backup(id) {
$("#backup-table-s3-" + id).css("background-color", "#f2dede");
$.ajax({
url: "/app/server/s3backup/delete",
data: {
dels3job: id,
s3_bucket: $('#bucket-' + id).text(),
s3_backup_server: $('#backup-s3-server-' + id).text(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('ok') != '-1') {
$("#s3-backup-table-" + id).remove();
} else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
toastr.error(data);
}
}
});
}
function removeGit(id) {
$("#git-table-" + id).css("background-color", "#f2dede");
$.ajax({
url: "/app/server/git/delete",
data: {
git_backup: id,
git_deljob: 1,
git_init: 0,
repo: 0,
branch: 0,
time: 0,
cred: $('#git-credentials-id-' + id).text(),
server: $('#git-server-id-' + id).text(),
git_service: $('#git-service-id-' + id).text(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('ok') != '-1') {
$("#git-table-" + id).remove();
} else if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
toastr.error(data);
}
}
});
}
function updateBackup(id) {
toastr.clear();
if ($("#backup-type-" + id + " option:selected").val() == "-------" || $('#backup-rserver-' + id).val() == '' || $('#backup-rpath-' + id).val() == '') {
toastr.error('All fields must be completed');
} else {
$.ajax({
url: "/app/server/backup/update",
data: {
backupupdate: id,
server: $('#backup-server-' + id).text(),
rserver: $('#backup-rserver-' + id).val(),
rpath: $('#backup-rpath-' + id).val(),
type: $('#backup-type-' + id).val(),
time: $('#backup-time-' + id).val(),
cred: $('#backup-credentials-' + id).val(),
description: $('#backup-description-' + id).val(),
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') {
toastr.error(data);
} else {
toastr.clear();
$("#backup-table-" + id).addClass("update", 1000);
setTimeout(function () {
$("#backup-table-" + id).removeClass("update");
}, 2500);
}
}
});
}
}