tripal_panes.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. (function($) {
  2. Drupal.behaviors.tripal_panes = {
  3. attach: function (context, settings){
  4. // Add a close button for each pane except for the te_base
  5. $('.tripal_pane-fieldset .fieldset-legend').each(function (i) {
  6. if ($(this).parent().parent().attr('id') != 'tripal_pane-fieldset-te_base') {
  7. $(this).append('<div class="tripal_pane-fieldset-close_button"><img src="' + panes_theme_dir + '/images/close_btn.png" id="tripal-panes-close-button" class="tripal-panes-button"></div>');
  8. }
  9. });
  10. // Hide the pane when the close button is clicked
  11. $('.tripal_pane-fieldset-close_button').each(function (i) {
  12. $(this).css('float', 'right');
  13. $(this).css('cursor', 'pointer');
  14. $(this).css('margin', '0px 5px');
  15. $(this).click(function () {
  16. var fs = $(this).parent().parent().parent();
  17. var fsid = fs.attr('id');
  18. if (fsid.indexOf('tripal_pane-fieldset-') == 0) {
  19. $(fs).fadeOut(300);
  20. }
  21. });
  22. });
  23. // Move the pane to the first when its TOC item is clicked.
  24. $('.tripal_panes-toc-list-item-link').each(function (i) {
  25. $(this).click(function() {
  26. var id = '#tripal_pane-fieldset-' + $(this).attr('id');
  27. var prevObj = $(id).prev().attr('class');
  28. // If the user clicks on the te_base TOC item, open the fieldset if it's closed
  29. if (id == '#tripal_pane-fieldset-te_base') {
  30. if ($('#tripal_pane-fieldset-te_base').hasClass('collapsed')) {
  31. $('#tripal_pane-fieldset-te_base').removeClass('collapsed');
  32. $('#tripal_pane-fieldset-te_base .fieldset-wrapper').show();
  33. }
  34. else {
  35. $('#tripal_pane-fieldset-te_base').fadeTo(10, 0.3, function() {});
  36. $('#tripal_pane-fieldset-te_base').fadeTo(200, 1, function() {});
  37. }
  38. }
  39. // If the user clicks on other TOC item, move its fieldset to the top right below the te_base
  40. else {
  41. $(id).removeClass('collapsed');
  42. $(id + ' .fieldset-wrapper').show();
  43. // Hightlight the fieldset instead of moving if it's already at the top
  44. if (prevObj.indexOf('tripal-panes-content-top') == 0 && $(id).css('display') == 'block' && $('#tripal_pane-fieldset-te_base').hasClass('collapsed')) {
  45. $(id).fadeTo(10, 0.3, function() {});
  46. $(id).fadeTo(200, 1, function() {});
  47. }
  48. else {
  49. $(id).hide();
  50. var obj = $(id).detach();
  51. $('.tripal-panes-content-top').after(obj);
  52. }
  53. // Close the te_base fieldset
  54. $('#tripal_pane-fieldset-te_base .fieldset-wrapper').hide();
  55. $('#tripal_pane-fieldset-te_base').addClass('collapsed');
  56. }
  57. $(id).show(300);
  58. //}
  59. return false;
  60. });
  61. });
  62. },
  63. };
  64. })(jQuery);