| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- var Settings = (function() {
- var displayed = false,
- currentPage = null,
- pages = {
- services: "services",
- display: "display",
- privacy: "privacy"
- },
- spawn = function() {
- document.getElementById(R.id.settings.wrapper).classList.remove(R.klass.hidden);
- displayed = true;
- },
- setVisiblePage = function(page) {
- if (currentPage) {
- document.getElementById(R.id.settings.wrapper).classList.remove("display-" +currentPage);
- document.getElementById("setting-menu-" +currentPage).classList.remove(R.klass.selected);
- document.getElementById(R.id.settings.services.addSection).classList.add(R.klass.hidden);
- }
- document.getElementById(R.id.settings.wrapper).classList.add("display-" +page);
- document.getElementById("setting-menu-" +page).classList.add(R.klass.selected);
- currentPage = page;
- };
- document.getElementById(R.id.settings.menu.list).addEventListener("click", function(e) {
- for (var target = e.target; e.currentTarget !== target && target; target = target.parentNode) {
- if (target.dataset && target.dataset["target"]) {
- for (var i in pages) {
- if (pages[i] === target.dataset["target"]) {
- setVisiblePage(pages[i]);
- return;
- }
- }
- }
- }
- });
- document.getElementById(R.id.settings.services.addButton).addEventListener("click", function(e) {
- e.preventDefault();
- document.getElementById(R.id.settings.services.addSection).classList.remove(R.klass.hidden);
- return false;
- });
- document.getElementById(R.id.settings.services.serviceAddConfirm).addEventListener("click", function(e) {
- e.preventDefault();
- document.location.href = document.getElementById(R.id.settings.services.serviceProviderList).value;
- return false;
- });
- return {
- /** @type {function(string=)} */
- display: function(page) {
- if (!displayed)
- spawn();
- setVisiblePage(page || pages.services);
- return this;
- },
- /** @type {function(boolean)} */
- setClosable: function(closable) {
- return this;
- },
- pages: pages
- };
- })();
|