diff --git a/customize.dist/pages.js b/customize.dist/pages.js index 6ba39e49a..b65faffc2 100644 --- a/customize.dist/pages.js +++ b/customize.dist/pages.js @@ -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)) ); }; diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 4393d1201..6b433c805 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -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 here."; // XXX + Messages.info_privacyFlavour = "Our privacy policy describes how we treat your data."; // XXX + Messages.info_faqFlavour = "Consult our FAQ for answers to common questions."; // XXX + + var template = function (line, link) { + if (!line || !link) { return; } + var 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 = [