news/plugins/admin/themes/grav/app/dashboard/backup.js

42 lines
1.4 KiB
JavaScript

import $ from 'jquery';
import { translations } from 'grav-config';
import request from '../utils/request';
import { Instances as Charts } from './chart';
$('[data-backup][data-ajax*="backup/"]').on('click', function() {
let element = $(this);
let url = element.data('ajax');
const inDropdown = element.closest('.dropdown-menu');
(inDropdown.length ? inDropdown : element)
.closest('.button-group').find('> button:first')
.attr('disabled', 'disabled')
.find('> .fa').removeClass('fa-life-ring').addClass('fa-spin fa-refresh');
request(url, (/* response */) => {
if (Charts && Charts.backups) {
Charts.backups.updateData({ series: [0, 100] });
Charts.backups.element.find('.numeric').html(`0 <em>${translations.PLUGIN_ADMIN.DAYS.toLowerCase()}</em>`);
}
(inDropdown.length ? inDropdown : element)
.closest('.button-group').find('> button:first')
.removeAttr('disabled')
.find('> .fa').removeClass('fa-spin fa-refresh').addClass('fa-life-ring');
});
});
$('[data-backup][data-ajax*="backupDelete"]').on('click', function() {
let element = $(this);
let url = element.data('ajax');
const tr = element.closest('tr');
tr.addClass('deleting');
request(url, (response) => {
if (response.status === 'success') {
tr.remove();
} else {
tr.removeClass('deleting');
}
});
});