export customizable footer links for use in the 'about menu'

pull/1/head
ansuz 5 years ago
parent a5e019d904
commit 30f6e92312

@ -64,6 +64,12 @@ define([
Pages.versionString = "CryptPad v3.18.1 (Smilodon's revenge)";
// used for the about menu
Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined;
Pages.privacyLink = footLink(AppConfig.privacy, 'privacy');
Pages.githubLink = footLink('https://github.com/xwiki-labs/cryptpad', null, 'GitHub');
Pages.faqLink = footLink('/faq.html', 'faq_link');
Pages.infopageFooter = function () {
return h('footer', [
h('div.container', [
@ -74,24 +80,14 @@ define([
languageSelector()
])
], ''),
/*footerCol('footer_applications', [
footLink('/drive/', 'main_drive'),
footLink('/pad/', 'main_richText'),
footLink('/code/', 'main_code'),
footLink('/slide/', 'main_slide'),
footLink('/poll/', 'main_poll'),
footLink('/kanban/', 'main_kanban'),
footLink('/whiteboard/', null, Msg.type.whiteboard)
]),*/
footerCol('footer_product', [
footLink('https://cryptpad.fr/what-is-cryptpad.html', 'topbar_whatIsCryptpad'),
footLink('/faq.html', 'faq_link'),
footLink('https://github.com/xwiki-labs/cryptpad', null, 'GitHub'),
footLink('/what-is-cryptpad.html', 'topbar_whatIsCryptpad'),
Pages.faqLink,
Pages.githubLink,
footLink('https://opencollective.com/cryptpad/contribute/', 'footer_donate'),
]),
footerCol('footer_aboutUs', [
/*footLink('https://blog.cryptpad.fr', 'blog'),
footLink('https://labs.xwiki.com', null, 'XWiki Labs'),*/
/*footLink('https://blog.cryptpad.fr', 'blog'), */
footLink('http://www.xwiki.com', null, 'XWiki SAS'),
footLink('https://www.open-paas.org', null, 'OpenPaaS'),
footLink('/about.html', 'footer_team'),
@ -99,15 +95,9 @@ define([
]),
footerCol('footer_legal', [
footLink('/terms.html', 'footer_tos'),
footLink(AppConfig.privacy, 'privacy'),
AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined,
Pages.privacyLink,
Pages.imprintLink,
]),
/*footerCol('footer_contact', [
footLink('https://riot.im/app/#/room/#cryptpad:matrix.org', null, 'Chat'),
footLink('https://twitter.com/cryptpad', null, 'Twitter'),
footLink('https://github.com/xwiki-labs/cryptpad', null, 'GitHub'),
footLink('/contact.html', null, 'Email')
])*/
])
]),
h('div.cp-version-footer', Pages.versionString)
@ -150,13 +140,9 @@ define([
h('a.navbar-brand', { href: '/index.html'}),
button,
h('div.collapse.navbar-collapse.justify-content-end#menuCollapse', [
//h('a.nav-item.nav-link', { href: '/what-is-cryptpad.html'}, Msg.topbar_whatIsCryptpad), // Moved the FAQ
//h('a.nav-item.nav-link', { href: '/faq.html'}, Msg.faq_link),
h('a.nav-item.nav-link', { href: 'https://blog.cryptpad.fr/'}, Msg.blog),
h('a.nav-item.nav-link', { href: '/features.html'}, Msg.pricing),
h('a.nav-item.nav-link', { href: '/privacy.html'}, Msg.privacy),
//h('a.nav-item.nav-link', { href: '/contact.html'}, Msg.contact),
//h('a.nav-item.nav-link', { href: '/about.html'}, Msg.about),
].concat(rightLinks))
);
};

@ -2303,29 +2303,47 @@ define([
var priv = metadataMgr.getPrivateData();
var origin = priv.origin;
Messages.help_faq = "Review our list of frequently asked questions"; // XXX
var faqLine = h('p',
h('a', {
target: '_blank',
rel: 'noreferrer noopener',
href: origin + '/faq.html',
}, Messages.help_faq)
);
// XXX link to the most recent changelog/release notes
// XXX FAQ
// XXX GitHub
// XXX privacy policy
// XXX legal notice
var content = h('div', [
// CryptPad version number
// TODO link to the most recent changelog/release notes
// https://github.com/xwiki-labs/cryptpad/releases/latest/ ?
var note = function (content) {
return h('span.cp-info-menu-description', content);
};
Messages.info_imprintFlavour = "Legally mandated information about this service's operators can be found <a>here</a>."; // XXX
Messages.info_privacyFlavour = "Our <a>privacy policy</a> describes how we treat your data."; // XXX
Messages.info_faqFlavour = "Consult our <a>FAQ</a> for answers to common questions."; // XXX
var template = function (line, link) {
if (!line || !link) { return; }
var p = $('<p>').html(line)[0];
var model = link.cloneNode(true);
var sub = link.cloneNode(true);
/* This is a hack to make relative URLs point to the main domain
instead of the sandbox domain. It will break if the admins have specified
some less common URL formats for their customizable links, such as if they've
used a protocal-relative absolute URL. The URL API isn't quite safe to use
because of IE (thanks, Bill). */
var href = sub.getAttribute('href');
if (/^\//.test(href)) { sub.setAttribute('href', origin + href); }
var a = p.querySelector('a');
if (!a) { return; }
sub.innerText = a.innerText;
p.replaceChild(sub, a);
return p;
};
var legalLine = template(Messages.info_imprintFlavour, Pages.imprintLink);
var privacyLine = template(Messages.info_privacyFlavour, Pages.privacyLink);
var faqLine = template(Messages.info_faqFlavour, Pages.faqLink);
var content = h('div.cp-info-menu-container', [
h('h6', Pages.versionString),
// First point users to our FAQ
h('hr'),
legalLine,
privacyLine,
faqLine,
// Link to the support ticket form in case their
// question isn't answered by the FAQ
//supportLine,
]);
var buttons = [

Loading…
Cancel
Save