From: Frank Naegler Date: Fri, 24 Mar 2017 11:12:43 +0000 (+0100) Subject: [BUGFIX] Avoid warning dialog when closing records with dateTime fields X-Git-Tag: TYPO3_8-7-0~158 X-Git-Url: http://git.typo3.org/Packages/TYPO3.CMS.git/commitdiff_plain/99f54d42536acf90616e5deae5ed2e754b1c478d [BUGFIX] Avoid warning dialog when closing records with dateTime fields In case a record contains a DateTimePicker field, the validation is triggered to early and mark each DateTime field as changed. This patch fix this wrong behavior. Resolves: #80008 Releases: master Change-Id: I9a2d81c6cf5b544d5a6f08f43fd2fea86b415d6a Reviewed-on: https://review.typo3.org/52140 Tested-by: TYPO3com Tested-by: Joerg Kummer Reviewed-by: Georg Ringer Tested-by: Georg Ringer Reviewed-by: Andreas Fernandez Tested-by: Andreas Fernandez --- diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/DateTimePicker.js b/typo3/sysext/backend/Resources/Public/JavaScript/DateTimePicker.js index 6fbb0e0fa1df..1a053b18e4f5 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/DateTimePicker.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/DateTimePicker.js @@ -173,6 +173,7 @@ define(['jquery'], function($) { } $hiddenField.val(value); } + $(document).trigger('formengine.dp.change', [$(this)]); }); }); } diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js index e1e246db0024..a4c9c3551bfc 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js @@ -729,6 +729,9 @@ define(['jquery', $input.val($(this).attr('data-original-language-value')).trigger('change'); $input.data('last-l10n-state', $(this).val()); } + }).on('formengine.dp.change', function(event, $field) { + FormEngine.Validation.validate(); + FormEngine.Validation.markFieldAsChanged($field); }); }; diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js index feba8af35288..ac9f619beb1c 100644 --- a/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js +++ b/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js @@ -21,14 +21,13 @@ define(['jquery', 'TYPO3/CMS/Backend/FormEngine', 'moment'], function ($, FormEn /** * The main FormEngineValidation object * - * @type {{rulesSelector: string, inputSelector: string, markerSelector: string, dateTimeSelector: string, groupFieldHiddenElement: string, relatedFieldSelector: string, errorClass: string, lastYear: number, lastDate: number, lastTime: number, refDate: Date, USmode: number, passwordDummy: string}} + * @type {{rulesSelector: string, inputSelector: string, markerSelector: string, groupFieldHiddenElement: string, relatedFieldSelector: string, errorClass: string, lastYear: number, lastDate: number, lastTime: number, refDate: Date, USmode: number, passwordDummy: string}} * @exports TYPO3/CMS/Backend/FormEngineValidation */ var FormEngineValidation = { rulesSelector: '[data-formengine-validation-rules]', inputSelector: '[data-formengine-input-params]', markerSelector: '.t3js-formengine-validation-marker', - dateTimeSelector: '.t3js-datetimepicker', groupFieldHiddenElement: '.t3js-formengine-field-group input[type=hidden]', relatedFieldSelector: '[data-relatedfieldname]', errorClass: 'has-error', @@ -51,14 +50,7 @@ define(['jquery', 'TYPO3/CMS/Backend/FormEngine', 'moment'], function ($, FormEn // Bind to field changes $(document).on('change', FormEngineValidation.rulesSelector, function() { FormEngineValidation.validate(); - var $paletteField = $(this).closest('.t3js-formengine-palette-field'); - $paletteField.addClass('has-change'); - }); - - $(document).on('dp.change', FormEngineValidation.dateTimeSelector, function(event) { - FormEngineValidation.validate(); - var $paletteField = $(this).closest('.t3js-formengine-palette-field'); - $paletteField.addClass('has-change'); + FormEngineValidation.markFieldAsChanged($(this)); }); }); @@ -539,6 +531,16 @@ define(['jquery', 'TYPO3/CMS/Backend/FormEngine', 'moment'], function ($, FormEn $(document).trigger('t3-formengine-postfieldvalidation'); }; + /** + * Helper function to mark a field as changed. + * + * @param {Object} $field + */ + FormEngineValidation.markFieldAsChanged = function($field) { + var $paletteField = $field.closest('.t3js-formengine-palette-field'); + $paletteField.addClass('has-change'); + }; + /** * Helper function to get clean trimmed array from comma list *