Advertisement
gavin19

Sidebar toggle 3

Nov 11th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. modules['collapsibleSidebar'] = {
  2.     moduleID: 'collapsibleSidebar',
  3.     moduleName: 'Collapsible Sidebar',
  4.     category: 'UI',
  5.     description: 'Provides a link to hide/show the sidebar.',
  6.     options: {
  7.         collapseByDefault: {
  8.             type: 'boolean',
  9.             value: 'false',
  10.             description: 'Collapse sidebar by default.'
  11.         },
  12.     },
  13.     isEnabled: function() {
  14.         return RESConsole.getModulePrefs(this.moduleID);
  15.     },
  16.     include: Array(/https?:\/\/([a-z]+).reddit.com\/[\?]*/i),
  17.     exclude: Array(/https?:\/\/([a-z]+).reddit.com\/prefs+/i, /https?:\/\/([a-z]+).reddit.com\/message\/[-\w\.]+/i, /https?:\/\/([a-z]+).reddit.com\/[-\w\.\/]*\/submit\/?/i, /https?:\/\/([a-z]+).reddit.com\/submit\/?/i),
  18.     isMatchURL: function() {
  19.         return RESUtils.isMatchURL(this.moduleID);
  20.     },
  21.     go: function() {
  22.         if ((this.isEnabled()) && (this.isMatchURL())) {
  23.             var header = document.querySelector('#header');
  24.             var collapseButton = document.createElement('div');
  25.             collapseButton.setAttribute('id', 'collapseButton');
  26.             collapseButton.setAttribute('class', 'sideVisible');
  27.             collapseButton.setAttribute('style', 'cursor:pointer;position:absolute;bottom:0;right:0;font-size:20px;');
  28.             collapseButton.innerHTML = '▶';
  29.             collapseButton.addEventListener('click', function() {
  30.                 modules['collapsibleSidebar'].toggleSidebar();
  31.             });
  32.             header.appendChild(collapseButton);
  33.             if (this.options.collapseByDefault.value === true) {
  34.                 this.toggleSidebar(true);
  35.             }
  36.         }
  37.     },
  38.     toggleSidebar: function(state) {
  39.         var sideSpcr;
  40.         var sidebarButton = document.querySelector('#collapseButton');
  41.         var side = document.querySelector('.side');
  42.        
  43.         document.querySelectorAll('.side .spacer #ad-frame')[0].parentNode.setAttribute('sideadframe','');
  44.         if (state || collapseButton.className.match(/sideVisible/)) {
  45.             sidebarButton.innerHTML = '◀';
  46.             sidebarButton.className = 'sideHidden';
  47.             sideSpcr = document.querySelectorAll('.side .spacer:not([sideadframe])');
  48.             for (var i = 0, len = sideSpcr.length; i < len; i += 1) {
  49.                 sideSpcr[i].style.display = 'none';
  50.             }
  51.         }
  52.         else {
  53.             sidebarButton.innerHTML = '&#x25B6;';
  54.             sidebarButton.className = 'sideVisible';
  55.             sideSpcr = document.querySelectorAll('.side .spacer:not([sideadframe])');
  56.             for (var i = 0, len = sideSpcr.length; i < len; i += 1) {
  57.                 sideSpcr[i].style.display = 'block';
  58.             }
  59.         }
  60.     }
  61. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement