pages.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. define([
  2. '/common/hyperscript.js',
  3. '/common/common-language.js',
  4. '/customize/messages.js',
  5. 'jquery',
  6. ], function (h, Language, Msg, $) {
  7. var Pages = {};
  8. Pages.setHTML = function (e, html) {
  9. e.innerHTML = html;
  10. return e;
  11. };
  12. var languageSelector = function () {
  13. var options = [];
  14. var languages = Msg._languages;
  15. var selected = Msg._languageUsed;
  16. var keys = Object.keys(languages).sort();
  17. keys.forEach(function (l) {
  18. var attr = { value: l };
  19. if (selected === l) { attr.selected = 'selected'; }
  20. options.push(h('option', attr, languages[l]));
  21. });
  22. var select = h('select', {}, options);
  23. $(select).change(function () {
  24. Language.setLanguage($(select).val() || '', null, function () {
  25. window.location.reload();
  26. });
  27. });
  28. return select;
  29. };
  30. var footerCol = function (title, L, literal) {
  31. return h('div.col-6.col-sm-3', [
  32. h('ul.list-unstyled', [
  33. h('li.footer-title', {
  34. 'data-localization': title,
  35. }, title? Msg[title]: literal )
  36. ].concat(L.map(function (l) {
  37. return h('li', [ l ]);
  38. }))
  39. )
  40. ]);
  41. };
  42. var footLink = function (ref, loc, text) {
  43. var attrs = {
  44. href: ref,
  45. };
  46. if (!/^\//.test(ref)) {
  47. attrs.target = '_blank';
  48. attrs.rel = 'noopener noreferrer';
  49. }
  50. if (loc) {
  51. attrs['data-localization'] = loc;
  52. text = Msg[loc];
  53. }
  54. return h('a', attrs, text);
  55. };
  56. Pages.infopageFooter = function () {
  57. return h('footer', [
  58. h('div.container', [
  59. h('div.row', [
  60. footerCol(null, [
  61. h('div.cp-bio-foot', [
  62. h('p', Msg.main_footerText),
  63. languageSelector()
  64. ])
  65. ], ''),
  66. footerCol('footer_applications', [
  67. footLink('/drive/', 'main_drive'),
  68. footLink('/pad/', 'main_richText'),
  69. footLink('/code/', 'main_code'),
  70. footLink('/slide/', 'main_slide'),
  71. footLink('/poll/', 'main_poll'),
  72. footLink('/kanban/', 'main_kanban'),
  73. footLink('/whiteboard/', null, Msg.type.whiteboard)
  74. ]),
  75. // footerCol('footer_aboutUs', [
  76. // footLink('https://blog.cryptpad.fr', 'blog'),
  77. // footLink('https://labs.xwiki.com', null, 'XWiki Labs'),
  78. // footLink('http://www.xwiki.com', null, 'XWiki SAS'),
  79. // footLink('https://www.open-paas.org', null, 'OpenPaaS')
  80. // ]),
  81. // footerCol('footer_contact', [
  82. // footLink('https://riot.im/app/#/room/#cryptpad:matrix.org', null, 'Chat'),
  83. // footLink('https://twitter.com/cryptpad', null, 'Twitter'),
  84. // footLink('https://github.com/xwiki-labs/cryptpad', null, 'GitHub'),
  85. // footLink('/contact.html', null, 'Email')
  86. // ])
  87. ])
  88. ]),
  89. h('div.cp-version-footer', "CryptPad v2.18.0 (Sloth)")
  90. ]);
  91. };
  92. Pages.infopageTopbar = function () {
  93. var rightLinks;
  94. var username = window.localStorage.getItem('User_name');
  95. if (username === null) {
  96. rightLinks = [
  97. h('a.nav-item.nav-link.cp-login-btn', { href: '/login/'}, Msg.login_login),
  98. h('a.nav-item.nav-link.cp-register-btn', { href: '/register/'}, Msg.login_register)
  99. ];
  100. } else {
  101. rightLinks = h('a.nav-item.nav-link.cp-user-btn', { href: '/drive/' }, [
  102. h('i.fa.fa-user-circle'),
  103. " ",
  104. username
  105. ]);
  106. }
  107. var button = h('button.navbar-toggler', {
  108. 'type':'button',
  109. /*'data-toggle':'collapse',
  110. 'data-target':'#menuCollapse',
  111. 'aria-controls': 'menuCollapse',
  112. 'aria-expanded':'false',
  113. 'aria-label':'Toggle navigation'*/
  114. }, h('i.fa.fa-bars '));
  115. $(button).click(function () {
  116. if ($('#menuCollapse').is(':visible')) {
  117. return void $('#menuCollapse').slideUp();
  118. }
  119. $('#menuCollapse').slideDown();
  120. });
  121. return h('nav.navbar.navbar-expand-lg',
  122. h('a.navbar-brand', { href: '/index.html'}),
  123. button,
  124. /* h('div.collapse.navbar-collapse.justify-content-end#menuCollapse', [
  125. //h('a.nav-item.nav-link', { href: '/what-is-cryptpad.html'}, Msg.topbar_whatIsCryptpad), // Moved the FAQ
  126. h('a.nav-item.nav-link', { href: '/faq.html'}, Msg.faq_link),
  127. h('a.nav-item.nav-link', { href: 'https://blog.cryptpad.fr/'}, Msg.blog),
  128. h('a.nav-item.nav-link', { href: '/features.html'}, Msg.features),
  129. h('a.nav-item.nav-link', { href: '/privacy.html'}, Msg.privacy),
  130. h('a.nav-item.nav-link', { href: '/contact.html'}, Msg.contact),
  131. h('a.nav-item.nav-link', { href: '/about.html'}, Msg.about),
  132. ].concat(rightLinks))*/
  133. );
  134. };
  135. return Pages;
  136. });