1
0

uiSettings.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var Settings = (function() {
  2. var displayed = false,
  3. currentPage = null,
  4. pages = {
  5. services: "services",
  6. display: "display",
  7. privacy: "privacy"
  8. },
  9. spawn = function() {
  10. document.getElementById(R.id.settings.wrapper).classList.remove(R.klass.hidden);
  11. displayed = true;
  12. },
  13. setVisiblePage = function(page) {
  14. if (currentPage) {
  15. document.getElementById(R.id.settings.wrapper).classList.remove("display-" +currentPage);
  16. document.getElementById("setting-menu-" +currentPage).classList.remove(R.klass.selected);
  17. document.getElementById(R.id.settings.services.addSection).classList.add(R.klass.hidden);
  18. }
  19. document.getElementById(R.id.settings.wrapper).classList.add("display-" +page);
  20. document.getElementById("setting-menu-" +page).classList.add(R.klass.selected);
  21. currentPage = page;
  22. },
  23. close = function() {
  24. };
  25. document.getElementById(R.id.settings.menu.list).addEventListener("click", function(e) {
  26. for (var target = e.target; e.currentTarget !== target && target; target = target.parentNode) {
  27. if (target.dataset && target.dataset["target"]) {
  28. for (var i in pages) {
  29. if (pages[i] === target.dataset["target"]) {
  30. setVisiblePage(pages[i]);
  31. return;
  32. }
  33. }
  34. }
  35. }
  36. });
  37. //document.getElementById(R.id.settings.closeButton).addEventListener("click", close);
  38. document.getElementById(R.id.settings.services.addButton).addEventListener("click", function(e) {
  39. e.preventDefault();
  40. document.getElementById(R.id.settings.services.addSection).classList.remove(R.klass.hidden);
  41. return false;
  42. });
  43. document.getElementById(R.id.settings.services.serviceAddConfirm).addEventListener("click", function(e) {
  44. e.preventDefault();
  45. document.location.href = document.getElementById(R.id.settings.services.serviceProviderList).value;
  46. return false;
  47. });
  48. return {
  49. /** @type {function(string=)} */
  50. display: function(page) {
  51. if (!displayed)
  52. spawn();
  53. setVisiblePage(page || pages.services);
  54. return this;
  55. },
  56. /** @type {function(boolean)} */
  57. setClosable: function(closable) {
  58. return this;
  59. },
  60. pages: pages
  61. };
  62. })();