You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cryptpad/customize.dist/pages/index.js

151 lines
5.7 KiB
JavaScript

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(),
];
};
});