--- a/src/pyams_skin/resources/js/myams-init.js Fri Jul 26 12:42:05 2019 +0200
+++ b/src/pyams_skin/resources/js/myams-init.js Fri Jul 26 12:42:35 2019 +0200
@@ -356,65 +356,8 @@
$(button.get(0).form).data('ams-submit-button', button);
});
- // Cancel clicks on readonly checkbox
- $(document).on('click', 'input[type="checkbox"][readonly]', function() {
- return false;
- });
-
- // Initialize custom click handlers
- $(document).on('click', '[data-ams-click-handler]', function(event) {
- var source = $(this);
- var handlers = source.data('ams-disabled-handlers');
- if ((handlers === true) || (handlers === 'click') || (handlers === 'all')) {
- return;
- }
- var data = source.data();
- if (data.amsClickHandler) {
- if ((data.amsStopPropagation === true) || (data.amsClickStopPropagation === true)) {
- event.stopPropagation();
- }
- if (data.amsClickKeepDefault !== true) {
- event.preventDefault();
- }
- var clickHandlers = data.amsClickHandler.split(/\s+/);
- for (var index=0; index < clickHandlers.length; index++) {
- var callback = ams.getFunctionByName(clickHandlers[index]);
- if (callback !== undefined) {
- callback.call(source, event, data.amsClickHandlerOptions);
- }
- }
- }
- });
-
- // Initialize custom change handlers
- $(document).on('change', '[data-ams-change-handler]', function(event) {
- var source = $(this);
- // Disable change handlers for readonly inputs
- // These change handlers are activated by IE!!!
- if (source.prop('readonly')) {
- return;
- }
- var handlers = source.data('ams-disabled-handlers');
- if ((handlers === true) || (handlers === 'change') || (handlers === 'all')) {
- return;
- }
- var data = source.data();
- if (data.amsChangeHandler) {
- if ((data.amsStopPropagation === true) || (data.amsChangeStopPropagation === true)) {
- event.stopPropagation();
- }
- if (data.amsChangeKeepDefault !== true) {
- event.preventDefault();
- }
- var changeHandlers = data.amsChangeHandler.split(/\s+/);
- for (var index=0; index < changeHandlers.length; index++) {
- var callback = ams.getFunctionByName(changeHandlers[index]);
- if (callback !== undefined) {
- callback.call(source, event, data.amsChangeHandlerOptions);
- }
- }
- }
- });
+ // Initialize main event handlers
+ ams.initHandlers(document);
// Submit form when CTRL+Enter key is pressed in textarea
$(document).on('keydown', 'textarea', function(e) {
@@ -423,54 +366,6 @@
}
});
- // Notify reset to update Select2 widgets
- $(document).on('reset', 'form', function(e) {
- var form = $(this);
- setTimeout(function() {
- $('.alert-danger, SPAN.state-error', form).not('.persistent').remove();
- $('LABEL.state-error', form).removeClass('state-error');
- $('INPUT.select2[type="hidden"]', form).each(function() {
- var input = $(this);
- var select = input.data('select2');
- var value = input.data('ams-select2-input-value');
- if (value) {
- input.select2('val', value.split(select.opts.separator));
- }
- });
- form.find('.select2').trigger('change');
- $('[data-ams-reset-callback]', form).each(function() {
- var element = $(this);
- var data = element.data();
- var callback = ams.getFunctionByName(data.amsResetCallback);
- if (callback !== undefined) {
- callback.call(form, element, data.amsResetCallbackOptions);
- }
- });
- }, 10);
- ams.form && ams.form.setFocus(form);
- });
-
- // Initialize custom reset handlers
- $(document).on('reset', '[data-ams-reset-handler]', function(e) {
- var form = $(this);
- var data = form.data();
- if (data.amsResetHandler) {
- if (data.amsResetKeepDefault !== true) {
- e.preventDefault();
- }
- var callback = ams.getFunctionByName(data.amsResetHandler);
- if (callback !== undefined) {
- callback.call(form, data.amsResetHandlerOptions);
- }
- }
- });
-
- // Initialize custom event on click
- $(document).on('click', '[data-ams-click-event]', function(e) {
- var source = $(this);
- $(e.target).trigger(source.data('ams-click-event'), source.data('ams-click-event-options'));
- });
-
// Handle update on file upload placeholder
$(document).on('change', 'input[type="file"]', function(e) {
e.preventDefault();