Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- modules['collapsibleSidebar'] = {
- moduleID: 'collapsibleSidebar',
- moduleName: 'Collapsible Sidebar',
- category: 'UI',
- description: 'Provides a link to hide/show the sidebar.',
- options: {
- collapseByDefault: {
- type: 'boolean',
- value: 'false',
- description: 'Collapse sidebar by default.'
- },
- retainAdframe: {
- type: 'boolean',
- value: 'true',
- description: 'Keep the Reddit sponsored ad frame'
- }
- },
- isEnabled: function() {
- return RESConsole.getModulePrefs(this.moduleID);
- },
- include: Array(/https?:\/\/([a-z]+).reddit.com\/[\?]*/i),
- 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),
- isMatchURL: function() {
- return RESUtils.isMatchURL(this.moduleID);
- },
- go: function() {
- if ((this.isEnabled()) && (this.isMatchURL())) {
- var header = document.querySelector('#header');
- var collapseButton = document.createElement('div');
- collapseButton.setAttribute('id', 'collapseButton');
- collapseButton.setAttribute('class', 'sideVisible');
- collapseButton.setAttribute('style', 'cursor:pointer;position:absolute;bottom:0;right:0;font-size:20px;');
- collapseButton.innerHTML = '▶';
- collapseButton.addEventListener('click', function() {
- modules['collapsibleSidebar'].toggleSidebar();
- });
- header.appendChild(collapseButton);
- if (this.options.collapseByDefault.value === true) {
- this.toggleSidebar(true);
- }
- }
- },
- toggleSidebar: function(state, ad) {
- var sideSpcr;
- if ((this.options.retainAdframe.value === true)&&(collapseButton.className.match(/sideVisible/))) {
- document.querySelectorAll('.side .spacer #ad-frame')[0].parentNode.setAttribute('sideadframe','');
- };
- var sidebarButton = document.querySelector('#collapseButton');
- var side = document.querySelector('.side');
- if (state || collapseButton.className.match(/sideVisible/)) {
- sidebarButton.innerHTML = '◀';
- sidebarButton.className = 'sideHidden';
- if (this.options.retainAdframe.value === true) {
- sideSpcr = document.querySelectorAll('.side .spacer:not([sideadframe])');
- for (var i = 0, len = sideSpcr.length; i < len; i += 1) {
- sideSpcr[i].style.display = 'none';
- }
- }
- else {
- side.style.display = 'none';
- }
- }
- else {
- sidebarButton.innerHTML = '▶';
- sidebarButton.className = 'sideVisible';
- sideSpcr = document.querySelectorAll('.side .spacer:not([sideadframe])');
- for (var i = 0, len = sideSpcr.length; i < len; i += 1) {
- sideSpcr[i].style.display = 'block';
- }
- }
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement