-
Nextcloud Settings
+ Nextcloud Settings
@@ -205,6 +209,73 @@
@@ -284,6 +355,7 @@
M.Tooltip.init(tooltips, {});
let drops = document.querySelectorAll('.dropdown-trigger');
M.Dropdown.init(drops, { constrainWidth: false, coverTrigger: false, alignment: 'right', onOpenStart: () => $('#setting-trigger').addClass('active'), onCloseEnd: () => $('#setting-trigger').removeClass('active') });
+
setInterval(update_status, 500);
listeners();
@@ -297,7 +369,7 @@
var elems = document.querySelectorAll('.collapsible');
M.Collapsible.init(elems, { accordion: true });
var modals = document.querySelectorAll('.modal:not(#modal-loading)');
- M.Modal.init(modals, {});
+ M.Modal.init(modals, { dismissible: false });
let loadingModals = document.querySelectorAll('#modal-loading');
M.Modal.init(loadingModals, { dismissible: false });
@@ -385,7 +457,14 @@
function listeners() {
$('#save-nextcloud-settings').click(sendNextcloudSettings);
$('#trigger-nextcloud-settings').click(getNextcloudSettings)
+ $('#trigger-backup-settings').click(getBackupSettings)
$('#btn-backup-now').click(backupNow)
+
+ $('#save-backup-settings').click(sendBackupSettings);
+ $('#cron-drop-day-month').on('input', function() {
+ $('#cron-drop-day-month-read').val($(this).val());
+ });
+
}
@@ -449,7 +528,7 @@
$.post('./api/new-backup')
.done(() => {
M.toast({ html: 'check_box Command send !', classes: "green" });
- }).fail((error)=>{
+ }).fail((error) => {
console.log(error);
M.toast({ html: 'warning Can\'t send command !', classes: "red" });
})
@@ -458,6 +537,94 @@
})
}
+ function getBackupSettings() {
+ loadingModal.open();
+ $.get('./api/backup-settings', (data) => {
+ if (data == {}) {
+ data = {
+ cron_base: "0",
+ cron_hour: "00:00",
+ cron_weekday: "0",
+ cron_month_day: "1"
+ }
+ }
+
+ changeSelect('#cron-drop-settings', data.cron_base);
+ $('#cron-drop-settings').change(updateDropVisibility);
+
+ let timepicker = document.querySelector('#timepicker');
+ $('#timepicker').val(data.cron_hour);
+ $('#timepicker + label').removeClass("active");
+ $('#timepicker + label').addClass("active");
+ if (M.Timepicker.getInstance(timepicker) != null)
+ M.Timepicker.getInstance(timepicker).destroy();
+ M.Timepicker.init(timepicker, { defaultTime: data.cron_hour, twelveHour: false, container: 'body' });
+ $('#cron-drop-day-month-read').val(data.cron_month_day);
+ $('#cron-drop-day-month').val(data.cron_month_day);
+ $('#cron-drop-day-month-read + label').removeClass("active");
+ $('#cron-drop-day-month-read + label').addClass("active");
+
+ changeSelect('#cron-drop-day', data.cron_weekday);
+ updateDropVisibility();
+ loadingModal.close();
+ });
+
+ }
+
+ function updateDropVisibility() {
+ let cronBase = $("#cron-drop-settings").val();
+
+ switch (cronBase) {
+ case "3":
+ $('#timepicker').parent().parent().removeClass("hide");
+ $('#cron-drop-day').parent().parent().parent().addClass("hide");
+ $('#cron-drop-day-month').parent().parent().parent().removeClass("hide");
+
+ break;
+ case "2":
+ $('#timepicker').parent().parent().removeClass("hide");
+ $('#cron-drop-day').parent().parent().parent().removeClass("hide");
+ $('#cron-drop-day-month').parent().parent().parent().addClass("hide");
+ break;
+ case "1":
+ $('#timepicker').parent().parent().removeClass("hide");
+ $('#cron-drop-day').parent().parent().parent().addClass("hide");
+ $('#cron-drop-day-month').parent().parent().parent().addClass("hide");
+ break;
+ case "0":
+ $('#timepicker').parent().parent().addClass("hide");
+ $('#cron-drop-day').parent().parent().parent().addClass("hide");
+ $('#cron-drop-day-month').parent().parent().parent().addClass("hide");
+ break;
+ }
+ }
+
+ function sendBackupSettings() {
+ let cron_month_day = $('#cron-drop-day-month').val();
+ let cron_weekday = $('#cron-drop-day').val();
+ let cron_hour = $('#timepicker').val();
+ let cron_base = $('#cron-drop-settings').val();
+ loadingModal.open();
+ $.post('./api/backup-settings', { cron_base: cron_base, cron_hour: cron_hour, cron_weekday: cron_weekday, cron_month_day: cron_month_day })
+ .done(() => {
+ M.toast({ html: 'check_box Backup settings saved !', classes: "green" });
+ M.Modal.getInstance(document.querySelector('#modal-settings-backup')).close();
+ }).fail(()=>{
+ M.toast({ html: 'warning Can\'t save backup settings !', classes: "red" });
+ }).always(()=>{
+ loadingModal.close();
+ });
+ }
+
+ function changeSelect(selector, value) {
+ let selectBaseRaw = document.querySelector(selector);
+
+ if (M.FormSelect.getInstance(selectBaseRaw) != null)
+ M.FormSelect.getInstance(selectBaseRaw).destroy();
+ $(selector + ' option[selected]').removeAttr('selected');
+ $(selector + ' option[value=' + value + ']').attr('selected', "true");
+ M.FormSelect.init(selectBaseRaw, {});
+ }