index.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. define([
  2. 'jquery',
  3. '/api/config',
  4. '/common/hyperscript.js',
  5. '/common/common-feedback.js',
  6. '/customize/messages.js',
  7. '/customize/application_config.js',
  8. '/common/outer/local-store.js',
  9. '/customize/pages.js'
  10. ], function ($, Config, h, Feedback, Msg, AppConfig, LocalStore, Pages) {
  11. var urlArgs = Config.requireConf.urlArgs;
  12. var isAvailableType = function (x) {
  13. if (!Array.isArray(AppConfig.availablePadTypes)) { return true; }
  14. return AppConfig.availablePadTypes.indexOf(x) !== -1;
  15. };
  16. var checkRegisteredType = function (x) {
  17. // Return true if we're registered or if the app is not registeredOnly
  18. if (LocalStore.isLoggedIn()) { return true; }
  19. if (!Array.isArray(AppConfig.registeredOnlyTypes)) { return true; }
  20. return AppConfig.registeredOnlyTypes.indexOf(x) === -1;
  21. };
  22. return function () {
  23. var showingMore = false;
  24. var icons = [
  25. [ 'pad', Msg.main_richTextPad],
  26. [ 'code', Msg.main_codePad],
  27. [ 'slide', Msg.main_slidePad],
  28. [ 'sheet', Msg.main_sheetPad],
  29. [ 'poll', Msg.main_pollPad],
  30. [ 'kanban', Msg.main_kanbanPad],
  31. [ 'whiteboard', Msg.main_whiteboardPad],
  32. [ 'drive', LocalStore.isLoggedIn() ? Msg.main_yourCryptDrive : Msg.main_localPads]
  33. ].filter(function (x) {
  34. return isAvailableType(x[0]) && checkRegisteredType(x[0]);
  35. })
  36. .map(function (x, i) {
  37. var s = 'div.bs-callout.cp-callout-' + x[0];
  38. if (i > 8) { s += '.cp-more.cp-hidden'; }
  39. var icon = AppConfig.applicationsIcon[x[0]];
  40. var font = icon.indexOf('cptools') === 0 ? 'cptools' : 'fa';
  41. return h('a', [
  42. { href: '/'+ x[0] +'/' },
  43. h(s, [
  44. h('i.' + font + '.' + icon),
  45. h('div.pad-button-text', [ h('h4', x[1]) ])
  46. ])
  47. ]);
  48. });
  49. var more = icons.length < 9? undefined: h('div.bs-callout.cp-callout-more', [
  50. h('div.cp-callout-more-lessmsg.cp-hidden', [
  51. "see less ",
  52. h('i.fa.fa-caret-up')
  53. ]),
  54. h('div.cp-callout-more-moremsg', [
  55. "see more ",
  56. h('i.fa.fa-caret-down')
  57. ]),
  58. {
  59. onclick: function () {
  60. if (showingMore) {
  61. $('.cp-more, .cp-callout-more-lessmsg').addClass('cp-hidden');
  62. $('.cp-callout-more-moremsg').removeClass('cp-hidden');
  63. } else {
  64. $('.cp-more, .cp-callout-more-lessmsg').removeClass('cp-hidden');
  65. $('.cp-callout-more-moremsg').addClass('cp-hidden');
  66. }
  67. showingMore = !showingMore;
  68. }
  69. }
  70. ]);
  71. var _link = h('a', {
  72. href: "https://opencollective.com/cryptpad/contribute",
  73. target: '_blank',
  74. rel: 'noopener',
  75. });
  76. var crowdFunding = AppConfig.disableCrowdfundingMessages ? undefined : h('button', [
  77. Msg.crowdfunding_button
  78. ]);
  79. $(crowdFunding).click(function () {
  80. _link.click();
  81. Feedback.send('HOME_SUPPORT_CRYPTPAD');
  82. });
  83. var blocks = h('div.container',[
  84. h('div.row.justify-content-sm-center',[
  85. h('div.col-12.col-sm-4.cp-index-block.cp-index-block-host', h('div', [
  86. Pages.setHTML(h('span'), Msg.home_host),
  87. h('div.cp-img-container', [
  88. h('img.agpl', {
  89. src: "/customize/images/AGPL.png",
  90. title: Msg.home_host_agpl
  91. }),
  92. h('a.img', {
  93. href: 'https://blog.cryptpad.fr/2018/11/13/CryptPad-receives-NGI-Startup-Award/',
  94. target: '_blank'
  95. }, h('img.ngi', {
  96. src: "/customize/images/ngi.png",
  97. title: Msg.home_ngi
  98. }))
  99. ])
  100. ])),
  101. h('div.col-12.col-sm-4.cp-index-block.cp-index-block-product', h('div', [
  102. Msg.home_product
  103. ])),
  104. h('div.col-12.col-sm-4.cp-index-block.cp-index-block-help', h('div', [
  105. Msg.crowdfunding_home1,
  106. h('br'),
  107. Msg.crowdfunding_home2,
  108. h('br'),
  109. crowdFunding,
  110. _link
  111. ])),
  112. ])
  113. ]);
  114. return [
  115. h('div#cp-main', [
  116. Pages.infopageTopbar(),
  117. h('div.container.cp-container', [
  118. h('div.row', [
  119. h('div.cp-title.col-12.col-sm-6', [
  120. h('img', { src: '/customize/cryptpad-new-logo-colors-logoonly.png?' + urlArgs }),
  121. h('h1', 'CryptPad'),
  122. h('p', Msg.main_catch_phrase)
  123. ]),
  124. h('div.col-12.col-sm-6', [
  125. icons,
  126. more
  127. ])
  128. ]),
  129. //blocks,
  130. /*h('div.row', [
  131. h('div.cp-crowdfunding', [
  132. crowdFunding
  133. ])
  134. ])*/
  135. ]),
  136. ]),
  137. //Pages.infopageFooter(),
  138. ];
  139. };
  140. });