define([ 'jquery', '/api/config', '/common/hyperscript.js', '/common/common-feedback.js', '/customize/messages.js', '/customize/application_config.js', '/common/outer/local-store.js', '/customize/pages.js' ], function ($, Config, h, Feedback, Msg, AppConfig, LocalStore, Pages) { var urlArgs = Config.requireConf.urlArgs; var isAvailableType = function (x) { if (!Array.isArray(AppConfig.availablePadTypes)) { return true; } return AppConfig.availablePadTypes.indexOf(x) !== -1; }; var checkRegisteredType = function (x) { // Return true if we're registered or if the app is not registeredOnly if (LocalStore.isLoggedIn()) { return true; } if (!Array.isArray(AppConfig.registeredOnlyTypes)) { return true; } return AppConfig.registeredOnlyTypes.indexOf(x) === -1; }; return function () { var showingMore = false; var icons = [ [ 'pad', Msg.main_richTextPad], [ 'code', Msg.main_codePad], [ 'slide', Msg.main_slidePad], [ 'poll', Msg.main_pollPad], [ 'kanban', Msg.main_kanbanPad], [ 'whiteboard', Msg.main_whiteboardPad], [ 'drive', LocalStore.isLoggedIn() ? Msg.main_yourCryptDrive : Msg.main_localPads] ].filter(function (x) { return isAvailableType(x[0]) && checkRegisteredType(x[0]); }) .map(function (x, i) { var s = 'div.bs-callout.cp-callout-' + x[0]; if (i > 2) { s += '.cp-more.cp-hidden'; } var icon = AppConfig.applicationsIcon[x[0]]; var font = icon.indexOf('cptools') === 0 ? 'cptools' : 'fa'; return h('a', [ { href: '/'+ x[0] +'/' }, h(s, [ h('i.' + font + '.' + icon), h('div.pad-button-text', [ h('h4', x[1]) ]) ]) ]); }); var more = icons.length < 4? undefined: h('div.bs-callout.cp-callout-more', [ h('div.cp-callout-more-lessmsg.cp-hidden', [ "see less ", h('i.fa.fa-caret-up') ]), h('div.cp-callout-more-moremsg', [ "see more ", h('i.fa.fa-caret-down') ]), { onclick: function () { if (showingMore) { $('.cp-more, .cp-callout-more-lessmsg').addClass('cp-hidden'); $('.cp-callout-more-moremsg').removeClass('cp-hidden'); } else { $('.cp-more, .cp-callout-more-lessmsg').removeClass('cp-hidden'); $('.cp-callout-more-moremsg').addClass('cp-hidden'); } showingMore = !showingMore; } } ]); var _link = h('a', { href: "https://opencollective.com/cryptpad/contribute", target: '_blank', rel: 'noopener', }); var crowdFunding = AppConfig.disableCrowdfundingMessages ? undefined : h('button', [ Msg.crowdfunding_button ]); $(crowdFunding).click(function () { _link.click(); Feedback.send('HOME_SUPPORT_CRYPTPAD'); }); var blocks = h('div.container',[ h('div.row.justify-content-sm-center',[ h('div.col-12.col-sm-4.cp-index-block.cp-index-block-host', h('div', [ Pages.setHTML(h('span'), Msg.home_host), h('div.cp-img-container', [ h('img.agpl', { src: "/customize/images/AGPL.png", title: Msg.home_host_agpl }), h('a.img', { href: 'https://blog.cryptpad.fr/2018/11/13/CryptPad-receives-NGI-Startup-Award/', target: '_blank' }, h('img.ngi', { src: "/customize/images/ngi.png", title: Msg.home_ngi })) ]) ])), h('div.col-12.col-sm-4.cp-index-block.cp-index-block-product', h('div', [ Msg.home_product ])), h('div.col-12.col-sm-4.cp-index-block.cp-index-block-help', h('div', [ Msg.crowdfunding_home1, h('br'), Msg.crowdfunding_home2, h('br'), crowdFunding, _link ])), ]) ]); return [ h('div#cp-main', [ Pages.infopageTopbar(), h('div.container.cp-container', [ h('div.row', [ h('div.cp-title.col-12.col-sm-6', [ h('img', { src: '/customize/cryptpad-new-logo-colors-logoonly.png?' + urlArgs }), h('h1', 'CryptPad'), h('p', Msg.main_catch_phrase) ]), h('div.col-12.col-sm-6', [ icons, more ]) ]), blocks, /*h('div.row', [ h('div.cp-crowdfunding', [ crowdFunding ]) ])*/ ]), ]), Pages.infopageFooter(), ]; }; });