var nodebb_admin = (function(nodebb_admin) { var themes = {}; themes.render = function(bootswatch) { var themeFrag = document.createDocumentFragment(), themeEl = document.createElement('li'), themeContainer = document.querySelector('#content .themes'), numThemes = bootswatch.themes.length; for(var x=0;x' + '
' + '
' + ' ' + '' + '
' + '

' + theme.name + '

' + '

' + theme.description + '

' + '
' + '
'; themeFrag.appendChild(themeEl.cloneNode(true)); } themeContainer.innerHTML = ''; themeContainer.appendChild(themeFrag); } nodebb_admin.themes = themes; return nodebb_admin; }(nodebb_admin || {})); (function() { var scriptEl = document.createElement('script'); scriptEl.src = 'http://api.bootswatch.com?callback=nodebb_admin.themes.render'; document.body.appendChild(scriptEl); var themeContainer = document.querySelector('#content .themes'); themeContainer.addEventListener('click', function(e) { if (e.target.hasAttribute('data-action')) { switch(e.target.getAttribute('data-action')) { case 'preview': var cssSrc = $(e.target).parents('li').attr('data-css'), cssEl = document.getElementById('base-theme'); cssEl.href = cssSrc; break; case 'use': var parentEl = $(e.target).parents('li'), cssSrc = parentEl.attr('data-css'), cssName = parentEl.attr('data-theme'); socket.emit('api:config.set', { key: 'theme:id', value: 'bootswatch:' + cssName }); socket.emit('api:config.set', { key: 'theme:src', value: cssSrc }); break; } } }, false); var revertEl = document.getElementById('revert_theme'); revertEl.addEventListener('click', function() { bootbox.confirm('Are you sure you wish to remove the custom theme and restore the NodeBB default theme?', function(confirm) { if (confirm) { nodebb_admin.remove('theme:id'); nodebb_admin.remove('theme:src'); } }); }, false); })();