header.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. var m = require('mithril');
  2. var _dbs = require('./dbs');
  3. // __ __ __
  4. // / / / /__ ____ _____/ /__ _____
  5. // / /_/ / _ \/ __ `/ __ / _ \/ ___/
  6. // / __ / __/ /_/ / /_/ / __/ /
  7. // /_/ /_/\___/\__,_/\__,_/\___/_/
  8. module.exports = {
  9. view: function(vn){
  10. return m('header', [
  11. m('h1', 'Ethica'),
  12. m('nav', {'id':"menus"}, [
  13. m(_RouteMenu),
  14. m(_LangMenu)
  15. ])
  16. ]);
  17. }
  18. }
  19. var _RouteMenu = {
  20. view: function(){
  21. // create ul dom
  22. return m('ul', {id:"routes"}, [
  23. m('li', m('a', {'href':'#!/inline'}, "inline")),
  24. m('li', m('a', {'href':'#!/tree'}, "tree")),
  25. ]
  26. );
  27. }
  28. }
  29. // __ __ ___
  30. // / / ____ _____ ____ _/ |/ /__ ____ __ __
  31. // / / / __ `/ __ \/ __ `/ /|_/ / _ \/ __ \/ / / /
  32. // / /___/ /_/ / / / / /_/ / / / / __/ / / / /_/ /
  33. // /_____/\__,_/_/ /_/\__, /_/ /_/\___/_/ /_/\__,_/
  34. // /____/
  35. var _LangMenu = {
  36. view: function(){
  37. // create ul dom
  38. return m('ul', {id:"languages"}, _dbs.langs.map(function(lang){
  39. // create li dom for each lank link
  40. return m('li',
  41. // create a dom
  42. m('a', {
  43. 'lang':lang.lc,
  44. 'href':'/?lang='+lang.lc,
  45. onclick:function(e){
  46. e.preventDefault();
  47. // console.log('click lang', e);
  48. var lang = e.target.getAttribute('lang');
  49. console.log(lang);
  50. if(lang != _dbs.lang){
  51. // change url variable
  52. // change db
  53. _dbs.lang = lang;
  54. // redraw UI
  55. // m.redraw();
  56. }
  57. return false;
  58. }
  59. }, lang.label)
  60. );
  61. })
  62. );
  63. }
  64. }