Projet

Général

Profil

Paste
Télécharger (2,08 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / diff / js / diff.js @ 661d64c9

1
(function ($) {
2

    
3
  "use strict";
4
  
5
  Drupal.behaviors.diffRevisions = {
6
    attach: function (context, settings) {
7
      var $rows = $('table.diff-revisions tbody tr');
8
      function updateDiffRadios() {
9
        var newTd = false;
10
        var oldTd = false;
11
        if (!$rows.length) {
12
          return true;
13
        }
14
        $rows.removeClass('selected').each(function() {
15
          var $row = $(this);
16
          $row.removeClass('selected');
17
          var $inputs = $row.find('input[type="radio"]');
18
          var $oldRadio = $inputs.filter('[name="old"]').eq(0);
19
          var $newRadio = $inputs.filter('[name="new"]').eq(0);
20
          if (!$oldRadio.length || !$newRadio.length) {
21
            return true;
22
          }
23
          if ($oldRadio.attr('checked')) {
24
            oldTd = true;
25
            $row.addClass('selected');
26
            $oldRadio.css('visibility', 'visible');
27
            $newRadio.css('visibility', 'hidden');
28
          }
29
          else if ($newRadio.attr('checked')) {
30
            newTd = true;
31
            $row.addClass('selected');
32
            $oldRadio.css('visibility', 'hidden');
33
            $newRadio.css('visibility', 'visible');
34
          }
35
          else {
36
            if (Drupal.settings.diffRevisionRadios == 'linear') {
37
              if (newTd && oldTd) {
38
                $oldRadio.css('visibility', 'visible');
39
                $newRadio.css('visibility', 'hidden');
40
              }
41
              else if (newTd) {
42
                $newRadio.css('visibility', 'visible');
43
                $oldRadio.css('visibility', 'visible');
44
              }
45
              else {
46
                $newRadio.css('visibility', 'visible');
47
                $oldRadio.css('visibility', 'hidden');
48
              }
49
            }
50
            else {
51
              $newRadio.css('visibility', 'visible');
52
              $oldRadio.css('visibility', 'visible');
53
            }
54
          }
55
        });
56
        return true;
57
      }
58
      if (Drupal.settings.diffRevisionRadios) {
59
        $rows.find('input[name="new"], input[name="old"]').click(updateDiffRadios);
60
        updateDiffRadios();
61
      }
62
    }
63
  };
64

    
65
})(jQuery);