diff options
Diffstat (limited to 'modules/simpletest/simpletest.js')
-rw-r--r-- | modules/simpletest/simpletest.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/modules/simpletest/simpletest.js b/modules/simpletest/simpletest.js new file mode 100644 index 000000000..db9352a24 --- /dev/null +++ b/modules/simpletest/simpletest.js @@ -0,0 +1,58 @@ +// $Id$ + +Drupal.behaviors.simpleTestMenuCollapse = function() { + // Adds expand-collapse functionality. + $('div.simpletest-image').click(function() { + // Toggle all of the trs. + if (!Drupal.settings.simpleTest[$(this).attr('id')].clickActive) { + Drupal.settings.simpleTest[$(this).attr('id')].clickActive = true; + var trs = $(this).parents('tbody').children().filter('.'+ Drupal.settings.simpleTest[$(this).attr('id')].testClass), trs_formatted = [], direction = Drupal.settings.simpleTest[$(this).attr('id')].imageDirection, self = $(this); + for (var i = 0; i < trs.length; i++) { + trs_formatted.push(trs[i]); + } + var toggleTrs = function(trs, action, action2) { + tr = trs[action](); + if (tr) { + $(tr)[action2](1, function() { + toggleTrs(trs, action, action2); + }); + } + else { + Drupal.settings.simpleTest[self.attr('id')].clickActive = false; + } + } + toggleTrs(trs_formatted, (direction? 'pop' : 'shift'), (direction? 'fadeOut' : 'fadeIn')); + Drupal.settings.simpleTest[$(this).attr('id')].imageDirection = !direction; + $(this).html(Drupal.settings.simpleTest.images[(direction? 0 : 1)]); + } + }); +} +Drupal.behaviors.simpleTestSelectAll = function() { + $('td.simpletest-select-all').each(function() { + var checkboxes = Drupal.settings.simpleTest['simpletest-test-group-'+ $(this).attr('id')].testNames, + checkbox = $('<input type="checkbox" class="form-checkbox" id="'+ $(this).attr('id') +'-select-all" />').change(function() { + var checked = !!($(this).attr('checked')); + for (var i = 0; i < checkboxes.length; i++) { + $('#'+ checkboxes[i]).attr('checked', checked); + } + self.data('simpletest-checked-tests', (checked? checkboxes.length : 0)); + }).data('simpletest-checked-tests', 0); + var self = $(this); + for (var i = 0; i < checkboxes.length; i++) { + $('#'+ checkboxes[i]).change(function() { + if (checkbox.attr('checked') == 'checked') { + checkbox.attr('checked', ''); + } + var data = (!self.data('simpletest-checked-tests') ? 0 : self.data('simpletest-checked-tests')) + (!!($(this).attr('checked')) ? 1 : -1); + self.data('simpletest-checked-tests', data); + if (data == checkboxes.length) { + checkbox.attr('checked', 'checked'); + } + else { + checkbox.attr('checked', ''); + } + }); + } + $(this).append(checkbox); + }); +};
\ No newline at end of file |