Ticket #7009: collapsedFieldsets_by_id.diff

File collapsedFieldsets_by_id.diff, 3.6 KB (added by punteney, 16 years ago)

Updated patch for the nfa (changing "berror" to "berrors")

  • CollapsedFieldsets.js

     
    2525                collapsed_seen = true;
    2626                // Give it an additional class, used by CSS to hide it.
    2727                fs.className += ' ' + CollapsedFieldsets.collapsed_class;
     28                if(! fs.id) {
     29                    fs.id = 'django-collapsing-fieldset-'+i;   
     30                }
    2831                // (<a id="fieldsetcollapser3" class="collapse-toggle" href="#">Show</a>)
    2932                var collapse_link = document.createElement('a');
    3033                collapse_link.className = 'collapse-toggle';
    31                 collapse_link.id = 'fieldsetcollapser' + i;
    32                 collapse_link.onclick = new Function('CollapsedFieldsets.show('+i+'); return false;');
     34                collapse_link.id = 'fieldsetcollapser' + fs.id;
     35               
     36                collapse_link.onclick = new Function('CollapsedFieldsets.show("'+fs.id+'"); return false;');
    3337                collapse_link.href = '#';
    3438                collapse_link.innerHTML = gettext('Show');
    3539                var h2 = fs.getElementsByTagName('h2')[0];
     
    5357        }
    5458        return false;
    5559    },
    56     show: function(fieldset_index) {
    57         var fs = document.getElementsByTagName('fieldset')[fieldset_index];
     60    show: function(fieldset_id) {
     61        var fs = document.getElementById(fieldset_id);
    5862        // Remove the class name that causes the "display: none".
    59         fs.className = fs.className.replace(CollapsedFieldsets.collapsed_re, '');
     63        if (fs.className) {
     64            fs.className = fs.className.replace(CollapsedFieldsets.collapsed_re, '');
     65        }
    6066        // Toggle the "Show" link to a "Hide" link
    61         var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_index);
    62         collapse_link.onclick = new Function('CollapsedFieldsets.hide('+fieldset_index+'); return false;');
     67        var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_id);
     68        collapse_link.onclick = new Function('CollapsedFieldsets.hide("'+fs.id+'"); return false;');
    6369        collapse_link.innerHTML = gettext('Hide');
    6470    },
    65     hide: function(fieldset_index) {
    66         var fs = document.getElementsByTagName('fieldset')[fieldset_index];
     71    hide: function(fieldset_id) {
     72        var fs = document.getElementById(fieldset_id);
    6773        // Add the class name that causes the "display: none".
    6874        fs.className += ' ' + CollapsedFieldsets.collapsed_class;
    6975        // Toggle the "Hide" link to a "Show" link
    70         var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_index);
    71         collapse_link.onclick = new Function('CollapsedFieldsets.show('+fieldset_index+'); return false;');
     76        var collapse_link = document.getElementById('fieldsetcollapser' + fieldset_id);
     77        collapse_link.onclick = new Function('CollapsedFieldsets.show("'+fs.id+'"); return false;');
    7278        collapse_link.innerHTML = gettext('Show');
    7379    },
    7480
     
    7682        var fieldsets = document.getElementsByTagName('fieldset');
    7783        for (var i=0; i<fieldsets.length; i++) {
    7884            if (fieldsets[i].className.match(CollapsedFieldsets.collapsed_re)) {
    79                 CollapsedFieldsets.show(i);
     85                CollapsedFieldsets.show(fieldsets[i].id);
    8086            }
    8187        }
    8288    }
    83 }
     89};
    8490
    85 addEvent(window, 'load', CollapsedFieldsets.init);
     91addEvent(window, 'load', CollapsedFieldsets.init);
     92 No newline at end of file
Back to Top