diff options
Diffstat (limited to 'static/js')
-rw-r--r-- | static/js/userconf.js | 114 | ||||
-rw-r--r-- | static/js/weabotxt.js | 2 |
2 files changed, 115 insertions, 1 deletions
diff --git a/static/js/userconf.js b/static/js/userconf.js new file mode 100644 index 0000000..985090a --- /dev/null +++ b/static/js/userconf.js @@ -0,0 +1,114 @@ +var request = new XMLHttpRequest(); + +function cargarEstilos() { + var api = '/cgi/api/styles'; + request.open("GET", api, true); + request.send(); +} + +function listarEstilos(id, estilos, def) { + var select = document.getElementById(id); + + for (var i=0; i < estilos.length; i++) { + var opt = document.createElement('option'); + opt.value = estilos[i]; + opt.textContent = estilos[i]; + if (i == def) { + opt.selected = true; + } + select.appendChild(opt); + } +} + +request.onreadystatechange = function() { + if (request.readyState == 4) { + var json = JSON.parse(request.responseText); + if (json.state == "success") { + listarEstilos('stylebbs', json.bbs_styles, json.bbs_styles_default); + listarEstilos('styleib', json.ib_styles, json.ib_styles_default); + } + } +}; + +function cambiarModo(e) { + var iframe = document.getElementById('examplebbs'); + var estilo = document.getElementById('stylebbs').value; + + if (this.dataset.view == '1') { + iframe.addEventListener('load', mostrarEstilo); + iframe.src = '/static/example/bbs2.html'; + this.value = 'Ver modo frontal'; + this.dataset.view = '2'; + } else { + iframe.src = '/static/example/bbs1.html'; + this.value = 'Ver modo respuesta'; + this.dataset.view = '1'; + } +} + +function mostrarEstilo(e) { + var tipo = e.target.dataset.type; + if (e.target.tagName.toLowerCase() == 'iframe') { + var estilo = document.getElementById(('style'+tipo)).value; + var iframe = e.target; + } else { + var estilo = e.target.value; + var id = "example" + tipo; + var iframe = document.getElementById(id); + } + + var css = iframe.contentDocument.getElementById('css'); + var loc = "/static/css/"; + if (tipo == 'bbs') { + loc += 'txt/'; + } + + css.href = loc + estilo.toLowerCase() + ".css"; +} + +function cargariframe(tipo) { + var iframe = document.createElement('iframe'); + iframe.id = 'example' + tipo; + iframe.dataset.type = tipo; + iframe.addEventListener('load', cargarDatos); + iframe.src = '/static/example/' + tipo + '1.html'; + var div = document.getElementById("desc" + tipo); + div.appendChild(document.createElement("br")); + div.appendChild(iframe); +} + +function cargarDatos(e) { + var tipo = this.dataset.type; + var key = 'weabot_style_' + tipo; + if (localStorage.hasOwnProperty(key)) { + var estilo = localStorage.getItem(key); + document.getElementById(('style'+tipo)).value = estilo; + mostrarEstilo(e); + this.tabIndex = -1; + } + this.removeEventListener('load', cargarDatos); +} + +function establecerEstilo(e) { + var key = e.target.dataset.key; +} + +function init(tipo) { + cargariframe(tipo); + document.getElementById('style'+tipo).addEventListener('change', mostrarEstilo); + document.getElementById('set'+tipo).addEventListener('click', function() { + var key = 'weabot_style_' + tipo; + var estilo = document.getElementById(('style'+tipo)).value; + localStorage.setItem(key, estilo); + }); +} + +document.addEventListener("DOMContentLoaded", function() { + document.getElementById("escondeme").style.display = 'none'; + + cargarEstilos(); + + document.getElementById('switchview').addEventListener('click', cambiarModo); + init('bbs'); + init('ib'); +}); diff --git a/static/js/weabotxt.js b/static/js/weabotxt.js index 2c93105..27d3cda 100644 --- a/static/js/weabotxt.js +++ b/static/js/weabotxt.js @@ -1,4 +1,4 @@ -var style_cookie = "weabot_style_txt"; +var style_cookie = "weabot_style_bbs"; if (localStorage.hasOwnProperty(style_cookie)) { setTheme(localStorage.getItem(style_cookie)); } |