Advertisement
gavin19

RES - Sidebar Toggle

Nov 6th, 2011
109
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(
  17.         /https?:\/\/([a-z]+).reddit.com\/[\?]*/i
  18.     ),
  19.     exclude: Array(
  20.             /https?:\/\/([a-z]+).reddit.com\/prefs+/i,
  21.             /https?:\/\/([a-z]+).reddit.com\/message\/[-\w\.]+/i,
  22.             /https?:\/\/([a-z]+).reddit.com\/[-\w\.\/]*\/submit\/?/i,
  23.             /https?:\/\/([a-z]+).reddit.com\/submit\/?/i
  24.     ),
  25.     isMatchURL: function() {
  26.         return RESUtils.isMatchURL(this.moduleID);
  27.     },
  28.     go: function() {
  29.         if ((this.isEnabled()) && (this.isMatchURL())) {
  30.             var header = document.querySelector('#header');
  31.             var collapseButton = document.createElement('div');
  32.             collapseButton.setAttribute('id', 'collapseButton');
  33.             collapseButton.setAttribute('class', 'sideVisible');
  34.             collapseButton.setAttribute('style','cursor:pointer;position:absolute;bottom:0;right:0;font-size:20px;');
  35.             collapseButton.innerHTML = '▶';
  36.             collapseButton.addEventListener('click', function() {
  37.                 modules['collapsibleSidebar'].toggleSidebar();
  38.             });
  39.             header.appendChild(collapseButton);
  40.             if(this.options.collapseByDefault.value === true){
  41.                 this.toggleSidebar(true);
  42.             };
  43.         }
  44.     },
  45.     toggleSidebar: function(state) {
  46.         var sidebarButton = document.querySelector('#collapseButton');
  47.         var side = document.querySelector('.side');
  48.    
  49.         if (state || collapseButton.className.match(/sideVisible/)) {
  50.             sidebarButton.innerHTML = '◀';
  51.             sidebarButton.className = 'sideHidden';
  52.             side.style.display = 'none';    
  53.         }
  54.         else {
  55.             sidebarButton.innerHTML = '▶';
  56.             sidebarButton.className = 'sideVisible';
  57.             side.style.display = 'block';      
  58.         }
  59.     },
  60. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement