mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-10-26 07:46:31 +01:00
fix for broken GPM + fix for intermitten ajax error
Signed-off-by: Andy Miller <rhuk@mac.com>
This commit is contained in:
@@ -13,8 +13,15 @@ const DOMBehaviors = {
|
||||
|
||||
preventUnload() {
|
||||
let selector = '[name="task"][value^="save"], [data-delete-action], [data-flex-safe-action]';
|
||||
if ($._data(window, 'events') && ($._data(window, 'events').beforeunload || []).filter((event) => event.namespace === '_grav').length) {
|
||||
return;
|
||||
// jQuery 3.x removed $._data, use $._data only if available (jQuery < 3.0)
|
||||
// or check with jQuery's internal data store for jQuery >= 3.0
|
||||
try {
|
||||
const hasData = typeof $._data === 'function';
|
||||
if (hasData && $._data(window, 'events') && ($._data(window, 'events').beforeunload || []).filter((event) => event.namespace === '_grav').length) {
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
// $._data not available in jQuery 3.x+, continue with adding event handler
|
||||
}
|
||||
|
||||
// Allow some elements to leave the page without native confirmation
|
||||
@@ -33,8 +40,15 @@ const DOMBehaviors = {
|
||||
preventClickAway() {
|
||||
let selector = 'a[href]:not([href^="#"]):not([target="_blank"]):not([href^="javascript:"])';
|
||||
|
||||
if ($._data($(selector).get(0), 'events') && ($._data($(selector).get(0), 'events').click || []).filter((event) => event.namespace === '_grav')) {
|
||||
return;
|
||||
// jQuery 3.x removed $._data, use $._data only if available (jQuery < 3.0)
|
||||
try {
|
||||
const hasData = typeof $._data === 'function';
|
||||
const element = $(selector).get(0);
|
||||
if (element && hasData && $._data(element, 'events') && ($._data(element, 'events').click || []).filter((event) => event.namespace === '_grav')) {
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
// $._data not available in jQuery 3.x+, continue with adding event handler
|
||||
}
|
||||
|
||||
// Prevent clicking away if the form state is dirty
|
||||
|
||||
@@ -7,7 +7,18 @@ import { Instance as Update } from './index';
|
||||
// Dashboard update and Grav update
|
||||
$(document).on('click.remodal', '[data-remodal-id="update-grav"] [data-remodal-action="confirm"]', () => {
|
||||
const element = $('#grav-update-button');
|
||||
element.html(`${translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT} ${formatBytes(Update.payload.grav.assets['grav-update'].size)}..`);
|
||||
|
||||
// Safely get the file size with fallback
|
||||
let sizeText = '';
|
||||
if (Update.payload &&
|
||||
Update.payload.grav &&
|
||||
Update.payload.grav.assets &&
|
||||
Update.payload.grav.assets['grav-update'] &&
|
||||
Update.payload.grav.assets['grav-update'].size) {
|
||||
sizeText = ` ${formatBytes(Update.payload.grav.assets['grav-update'].size)}`;
|
||||
}
|
||||
|
||||
element.html(`${translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT}${sizeText}..`);
|
||||
|
||||
element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user