Some checks failed
Tests / PHP 7.0 (push) Has been cancelled
Tests / PHP 7.4 (push) Has been cancelled
Tests / PHP 8.0 (push) Has been cancelled
Tests / Code Style (push) Has been cancelled
Sync Wiki / Sync Wiki to GitHub (push) Has been cancelled
Release / Build and Release (push) Has been cancelled
126 lines
3.5 KiB
JavaScript
126 lines
3.5 KiB
JavaScript
/**
|
|
* Admin Scripts
|
|
*
|
|
* @package WPALLSTARS\PluginStarterTemplate
|
|
*/
|
|
|
|
(function($) {
|
|
'use strict';
|
|
|
|
/**
|
|
* Admin functionality
|
|
*/
|
|
const WPSTAdmin = {
|
|
/**
|
|
* Initialize
|
|
*/
|
|
init: function() {
|
|
// Initialize components
|
|
this.initComponents();
|
|
|
|
// Bind events
|
|
this.bindEvents();
|
|
},
|
|
|
|
/**
|
|
* Initialize components
|
|
*/
|
|
initComponents: function() {
|
|
// Initialize any components here
|
|
},
|
|
|
|
/**
|
|
* Bind events
|
|
*/
|
|
bindEvents: function() {
|
|
// Example: Toggle sections
|
|
$('.wpst-toggle-section').on('click', this.toggleSection);
|
|
|
|
// Example: Form submission
|
|
$('#wpst-settings-form').on('submit', this.handleFormSubmit);
|
|
},
|
|
|
|
/**
|
|
* Toggle section visibility
|
|
*
|
|
* @param {Event} e Click event
|
|
*/
|
|
toggleSection: function(e) {
|
|
e.preventDefault();
|
|
|
|
const $this = $(this);
|
|
const target = $this.data('target');
|
|
|
|
$(target).slideToggle(200);
|
|
$this.toggleClass('open');
|
|
},
|
|
|
|
/**
|
|
* Handle form submission
|
|
*
|
|
* @param {Event} e Submit event
|
|
*/
|
|
handleFormSubmit: function(e) {
|
|
e.preventDefault();
|
|
|
|
const $form = $(this);
|
|
const $submitButton = $form.find('input[type="submit"]');
|
|
const formData = $form.serialize();
|
|
|
|
// Disable submit button and show loading state
|
|
$submitButton.prop('disabled', true).addClass('loading');
|
|
|
|
// Send AJAX request
|
|
$.ajax({
|
|
url: wpstData.ajaxUrl,
|
|
type: 'POST',
|
|
data: {
|
|
action: 'wpst_save_settings',
|
|
nonce: wpstData.nonce,
|
|
formData: formData
|
|
},
|
|
success: function(response) {
|
|
if (response.success) {
|
|
WPSTAdmin.showNotice('success', response.data.message);
|
|
} else {
|
|
WPSTAdmin.showNotice('error', response.data.message);
|
|
}
|
|
},
|
|
error: function() {
|
|
WPSTAdmin.showNotice('error', 'An error occurred. Please try again.');
|
|
},
|
|
complete: function() {
|
|
// Re-enable submit button and remove loading state
|
|
$submitButton.prop('disabled', false).removeClass('loading');
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Show admin notice
|
|
*
|
|
* @param {string} type Notice type (success, error, warning)
|
|
* @param {string} message Notice message
|
|
*/
|
|
showNotice: function(type, message) {
|
|
const $notice = $('<div class="wpst-notice ' + type + '"><p>' + message + '</p></div>');
|
|
|
|
// Add notice to the page
|
|
$('.wpst-notices').html($notice);
|
|
|
|
// Automatically remove notice after 5 seconds
|
|
setTimeout(function() {
|
|
$notice.fadeOut(300, function() {
|
|
$(this).remove();
|
|
});
|
|
}, 5000);
|
|
}
|
|
};
|
|
|
|
// Initialize when document is ready
|
|
$(document).ready(function() {
|
|
WPSTAdmin.init();
|
|
});
|
|
|
|
})(jQuery);
|