123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /**
- * @file
- * JavaScript enhancements for "Merge Duplicate Terms" form.
- */
- (function ($) {
- /**
- * Behavior that elaborates Tableselect of duplicate terms.
- */
- Drupal.behaviors.termMergeDuplicateTableselect = {
- attach: function(context) {
- // We want to disable checkbox of a duplicate term if it is currently
- // selected as a trunk term in that group of duplicate terms, i.e. you
- // cannot (and should not) merge a term into itself.
- $('.term-merge-duplicate-trunk', context).closest(':has(.form-checkbox)').once('term-merge-duplicate-trunk', function() {
- var container = $(this);
- container.find('.term-merge-duplicate-trunk').change(function() {
- // Removing disabled from all disabled checkboxes.
- container.parents('table').find('.form-checkbox:disabled').removeAttr('disabled');
- if ($(this).is(':checked')) {
- container.find('.form-checkbox').attr('disabled', true);
- }
- });
- });
- }
- };
- /**
- * Behavior that kicks off general switch button on Duplicate terms form.
- */
- Drupal.behaviors.termMergeDuplicateGeneralSwitch = {
- attach: function (context) {
- $('.term-merge-duplicate-general-switch', context).once('term-merge-duplicate-general-switch', function() {
- var container = $(this).parents('form');
- $(this).change(function() {
- var term_branches = container.find('table:not(.sticky-header) .select-all .form-checkbox');
- if ($(this).is(':checked')) {
- term_branches.attr('checked', true).trigger({
- type: 'click',
- target: this
- });
- // For some reason the checkboxes get unchecked, we check them back.
- term_branches.attr('checked', true);
- // We also want to trigger "change" on those radio buttons, see
- // Drupal.behaviors.termMergeDuplicateTableselect for more info.
- container.find('table').find('.term-merge-duplicate-trunk:first').attr('checked', true).trigger('change');
- }
- else {
- term_branches.removeAttr('checked').trigger({
- type: 'click',
- target: this
- });
- // For some reason the checkboxes get checked, we uncheck them back.
- term_branches.removeAttr('checked');
- // We also want to trigger "change" on those radio buttons, see
- // Drupal.behaviors.termMergeDuplicateTableselect for more info.
- container.find('table').find('.term-merge-duplicate-trunk').removeAttr('checked').trigger('change');
- }
- });
- });
- }
- };
- })(jQuery);
|