phpmyadmin/resources/js/main.ts
Maurício Meneghini Fauth 01e4a87bbd
Move resources/js/src to resources/js
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-05-22 13:43:59 -03:00

69 lines
2.3 KiB
TypeScript

import $ from 'jquery';
import { AJAX } from './modules/ajax.ts';
import {
addNoCacheToAjaxRequests,
breadcrumbScrollToTop,
dismissNotifications,
floatingMenuBar,
initializeMenuResizer
} from './modules/functions.ts';
import { KeyHandlerEvents } from './modules/keyhandler.ts';
import { PageSettings } from './modules/page_settings.ts';
import { crossFramingProtection } from './modules/cross_framing_protection.ts';
import { Indexes } from './modules/indexes.ts';
import { Config } from './modules/config.ts';
import checkNumberOfFields from './modules/functions/checkNumberOfFields.ts';
import onloadNavigation from './modules/navigation/event-loader.ts';
import { onloadFunctions, teardownFunctions } from './modules/functions/event-loader.ts';
import { ThemeColorModeToggle } from './modules/themes-manager.ts';
AJAX.registerOnload('main.js', () => AJAX.removeSubmitEvents());
$(AJAX.loadEventHandler());
/**
* Attach a generic event handler to clicks on pages and submissions of forms.
*/
$(document).on('click', 'a', AJAX.requestHandler);
$(document).on('submit', 'form', AJAX.requestHandler);
$(document).on('ajaxError', AJAX.getFatalErrorHandler());
AJAX.registerTeardown('main.js', KeyHandlerEvents.off());
AJAX.registerOnload('main.js', KeyHandlerEvents.on());
crossFramingProtection();
AJAX.registerTeardown('main.js', Config.off());
AJAX.registerOnload('main.js', Config.on());
$.ajaxPrefilter(addNoCacheToAjaxRequests);
AJAX.registerTeardown('main.js', teardownFunctions());
AJAX.registerOnload('main.js', onloadFunctions());
$(dismissNotifications());
$(initializeMenuResizer());
$(floatingMenuBar());
$(breadcrumbScrollToTop());
$(onloadNavigation());
AJAX.registerTeardown('main.js', Indexes.off());
AJAX.registerOnload('main.js', Indexes.on());
$(() => checkNumberOfFields());
AJAX.registerTeardown('main.js', () => {
PageSettings.off();
const themeColorModeToggle = document.getElementById('themeColorModeToggle') as HTMLSelectElement;
themeColorModeToggle?.removeEventListener('change', ThemeColorModeToggle);
});
AJAX.registerOnload('main.js', () => {
PageSettings.on();
const themeColorModeToggle = document.getElementById('themeColorModeToggle') as HTMLSelectElement;
themeColorModeToggle?.addEventListener('change', ThemeColorModeToggle);
});