(function ($) { "use strict"; /** * Markes changes of translations */ Drupal.behaviors.localeTranslateDirty = { attach: function () { var $form = $("#locale-translate-edit-form").once('localetranslatedirty'); if ($form.length) { // Display a notice if any row changed. $form.one('change.localeTranslateDirty', 'table', function () { var $marker = $(Drupal.theme('localeTranslateChangedWarning')).hide(); $(this).addClass('changed').before($marker); $marker.fadeIn('slow'); }); // Highlight changed row. $form.on('change.localeTranslateDirty', 'tr', function (e) { var $row = $(this), $rowToMark = $row.once('localemark'), marker = Drupal.theme('localeTranslateChangedMarker'); $row.addClass('changed'); // Add an asterisk only once if row changed. if ($rowToMark.length) { $rowToMark.find('td:first-child .form-item').append(marker); } }); } }, detach: function (context, settings, trigger) { if (trigger === 'unload') { var $form = $("#locale-translate-edit-form").removeOnce('localetranslatedirty'); if ($form.length) { $form.off('change.localeTranslateDirty'); } } } }; Drupal.theme.prototype.localeTranslateChangedMarker = function () { return '*'; }; Drupal.theme.prototype.localeTranslateChangedWarning = function () { return '
'; }; })(jQuery);