main.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. (function($){
  2. YiiDebugToolbar = {
  3. ic : function(id, s) {
  4. id = 'collapse:' + id;
  5. var r = localStorage.getItem(id);
  6. if (null == r) {
  7. localStorage.setItem(id, true);
  8. } else if(typeof s != 'undefined'){
  9. localStorage.setItem(id, s);
  10. }
  11. return localStorage.getItem(id) == 'false' ? false : true;
  12. },
  13. init : function() {
  14. var lockedPanel = localStorage.getItem('ydtb-panel-lock');
  15. if (null != lockedPanel) {
  16. this.ic('[data-ydtb-toolbar]', false);
  17. $('div[data-ydtb-panel]').removeClass('ydtb-panel-lock');
  18. $('div[data-ydtb-panel="'+lockedPanel+'"]').addClass('ydtb-panel-lock').toggleClass('ydtb-collapse', false);
  19. $('[data-ydtb-expand-panel="'+lockedPanel+'"]').addClass('active');
  20. }
  21. $('#ydtb-toolbar').toggleClass('ydtb-collapse', this.ic('[data-ydtb-toolbar]'));
  22. $('#ydtb-toolbar').toggleClass('ydtb-slim', this.ic('.ydtb-slim'));
  23. $('[data-ydtb-data-table] tr').mouseenter(function(){
  24. $(this).addClass('ydtb-hover');
  25. }).mouseleave(function(){
  26. $(this).removeClass('ydtb-hover');
  27. });
  28. $('[data-ydtb-toggle]').bind('click', $.proxy(function(e) {
  29. var $el = $(e.currentTarget);
  30. var $target = $($el.data('ydtb-toggle'));
  31. $target.toggleClass('ydtb-collapse', !$target.hasClass('ydtb-collapse'));
  32. this.ic($el.data('ydtb-toggle'), $target.hasClass('ydtb-collapse'));
  33. localStorage.removeItem('ydtb-panel-lock');
  34. $('div[data-ydtb-panel]').removeClass('ydtb-panel-lock');
  35. }, this));
  36. $('[data-ydtb-expand-panel]').bind('click', function(){
  37. var $el = $(this);
  38. $('[data-ydtb-menu] *').removeClass('active');
  39. localStorage.removeItem('ydtb-panel-lock');
  40. $('div[data-ydtb-panel]').removeClass('ydtb-panel-lock').addClass('ydtb-collapse');
  41. $('div[data-ydtb-panel="'+$el.data('ydtb-expand-panel')+'"]').removeClass('ydtb-collapse');
  42. $el.addClass('active');
  43. });
  44. $('div[data-ydtb-panel] i[data-ydtb-icon="f"], div[data-ydtb-panel] i[data-ydtb-icon="e"]').bind('click', $.proxy(function(e) {
  45. var $target = $('#ydtb-toolbar');
  46. $target.toggleClass('ydtb-slim');
  47. this.ic('.ydtb-slim', $target.hasClass('ydtb-slim'));
  48. }, this));
  49. $('div[data-ydtb-options] i[data-ydtb-icon="t"], div[data-ydtb-options] i[data-ydtb-icon="u"]').bind('click', $.proxy(function(e) {
  50. var $target = $('#ydtb-toolbar');
  51. $target.toggleClass('ydtb-slim');
  52. this.ic('.ydtb-slim', $target.hasClass('ydtb-slim'));
  53. }, this));
  54. $('div[data-ydtb-panel] i[data-ydtb-icon="z"]').bind('click', $.proxy(function(e){
  55. var $el = $(e.currentTarget);
  56. localStorage.setItem('ydtb-panel-lock', $el.data('ydtb-panel-lock'));
  57. $('div[data-ydtb-panel]').removeClass('ydtb-panel-lock');
  58. $('div[data-ydtb-panel="'+$el.data('ydtb-panel-lock')+'"]').addClass('ydtb-panel-lock');
  59. }, this));
  60. $('div[data-ydtb-panel] i[data-ydtb-icon="h"]').bind('click', $.proxy(function(e) {
  61. $('[data-ydtb-menu] *').removeClass('active');
  62. localStorage.removeItem('ydtb-panel-lock');
  63. $('div[data-ydtb-panel]').removeClass('ydtb-panel-lock').addClass('ydtb-collapse');
  64. }));
  65. $('div[data-ydtb-tabs] ul li a').bind('click', function(e) {
  66. e.preventDefault();
  67. var $context = $(this).closest('div[data-ydtb-tabs]');
  68. $('ul li a', $context).attr('data-ydtb-tab-state', 'closed');
  69. $(this).attr('data-ydtb-tab-state', 'open');
  70. $('div[data-ydtb-tab]', $context).hide();
  71. $('div[data-ydtb-tab="'+ $(this).attr('href').replace(/^#/, '') +'"]', $context).show();
  72. }).first().click();
  73. $('div[data-ydtb-accordion-heading]').not('[data-ydtb-data-size="0"]').click(function(){
  74. var $el = $(this),
  75. $owner = $el.closest('div[data-ydtb-accordion-group]'),
  76. $body = $owner.find('div[data-ydtb-accordion-body]');
  77. $('div[data-ydtb-accordion-group]').not($owner).attr('data-ydtb-accordion-group', 'collapsed').data('ydtb-accordion-group', 'collapsed')
  78. .find('div[data-ydtb-accordion-body]').css({'height' : '0px'});
  79. if ($owner.data('ydtb-accordion-group') != 'expanded') {
  80. $body.css({'height' : ($body.find(':first-child').outerHeight() + 'px')});
  81. $owner.attr('data-ydtb-accordion-group', 'expanded').data('ydtb-accordion-group', 'expanded');
  82. } else {
  83. $owner.attr('data-ydtb-accordion-group', 'collapsed').data('ydtb-accordion-group', 'collapsed');
  84. $body.css({'height' : '0px'});
  85. }
  86. });
  87. }
  88. };
  89. $(function() {
  90. YiiDebugToolbar.init();
  91. });
  92. })( jQuery );