/* InformatiQ Toolkit – Admin JS */ (function ($) { 'use strict'; /* ── Toggle switches (AJAX) ───────────────────────────────── */ $(document).on('change', '.itk-toggle-input', function () { var $input = $(this); var $row = $input.closest('.itk-toggle-row'); var option = $input.data('option'); var setting = $input.data('setting'); var value = $input.is(':checked') ? 1 : 0; $row.addClass('itk-toggle-saving'); $.post(itkAdmin.ajaxUrl, { action: 'itk_save_setting', nonce: itkAdmin.nonce, option: option, setting: setting, value: value }) .done(function (res) { if (res.success) { showFeedback($row, 'itk-toggle-saved', 'Saved'); } else { $input.prop('checked', !$input.is(':checked')); // revert showFeedback($row, 'itk-toggle-error', 'Error saving'); } }) .fail(function () { $input.prop('checked', !$input.is(':checked')); showFeedback($row, 'itk-toggle-error', 'Request failed'); }) .always(function () { $row.removeClass('itk-toggle-saving'); }); }); function showFeedback($row, cls, msg) { $row.find('.itk-feedback').remove(); var $fb = $('' + msg + ''); $row.append($fb); setTimeout(function () { $fb.fadeOut(400, function () { $(this).remove(); }); }, 2000); } /* ── Config file editor (AJAX) ────────────────────────────── */ $('#itk-save-config').on('click', function (e) { e.preventDefault(); var $btn = $(this); var file = $btn.data('file'); var content = $('#itk-config-content').val(); var $status = $('#itk-config-status'); $btn.prop('disabled', true).text('Saving…'); $status.hide(); $.post(itkAdmin.ajaxUrl, { action: 'itk_save_config_file', nonce: itkAdmin.nonce, file: file, content: content }) .done(function (res) { if (res.success) { $status.text('Saved!').css('color', '#00a32a').show(); } else { $status.text('Error: ' + (res.data || 'unknown')).css('color', '#b32d2e').show(); } }) .fail(function () { $status.text('Request failed.').css('color', '#b32d2e').show(); }) .always(function () { $btn.prop('disabled', false).text('Save File'); setTimeout(function () { $status.fadeOut(); }, 3000); }); }); })(jQuery);