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)"; 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 () { Pages.infopageFooter = function () {
return h('footer', [ return h('footer', [
h('div.container', [ h('div.container', [
@ -74,24 +80,14 @@ define([
languageSelector() 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', [ footerCol('footer_product', [
footLink('https://cryptpad.fr/what-is-cryptpad.html', 'topbar_whatIsCryptpad'), footLink('/what-is-cryptpad.html', 'topbar_whatIsCryptpad'),
footLink('/faq.html', 'faq_link'), Pages.faqLink,
footLink('https://github.com/xwiki-labs/cryptpad', null, 'GitHub'), Pages.githubLink,
footLink('https://opencollective.com/cryptpad/contribute/', 'footer_donate'), footLink('https://opencollective.com/cryptpad/contribute/', 'footer_donate'),
]), ]),
footerCol('footer_aboutUs', [ footerCol('footer_aboutUs', [
/*footLink('https://blog.cryptpad.fr', 'blog'), /*footLink('https://blog.cryptpad.fr', 'blog'), */
footLink('https://labs.xwiki.com', null, 'XWiki Labs'),*/
footLink('http://www.xwiki.com', null, 'XWiki SAS'), footLink('http://www.xwiki.com', null, 'XWiki SAS'),
footLink('https://www.open-paas.org', null, 'OpenPaaS'), footLink('https://www.open-paas.org', null, 'OpenPaaS'),
footLink('/about.html', 'footer_team'), footLink('/about.html', 'footer_team'),
@ -99,15 +95,9 @@ define([
]), ]),
footerCol('footer_legal', [ footerCol('footer_legal', [
footLink('/terms.html', 'footer_tos'), footLink('/terms.html', 'footer_tos'),
footLink(AppConfig.privacy, 'privacy'), Pages.privacyLink,
AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined, 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) h('div.cp-version-footer', Pages.versionString)
@ -150,13 +140,9 @@ define([
h('a.navbar-brand', { href: '/index.html'}), h('a.navbar-brand', { href: '/index.html'}),
button, button,
h('div.collapse.navbar-collapse.justify-content-end#menuCollapse', [ 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: 'https://blog.cryptpad.fr/'}, Msg.blog),
h('a.nav-item.nav-link', { href: '/features.html'}, Msg.pricing), 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: '/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)) ].concat(rightLinks))
); );
}; };

@ -2303,29 +2303,47 @@ define([
var priv = metadataMgr.getPrivateData(); var priv = metadataMgr.getPrivateData();
var origin = priv.origin; var origin = priv.origin;
Messages.help_faq = "Review our list of frequently asked questions"; // XXX // TODO link to the most recent changelog/release notes
var faqLine = h('p', // https://github.com/xwiki-labs/cryptpad/releases/latest/ ?
h('a', {
target: '_blank', var note = function (content) {
rel: 'noreferrer noopener', return h('span.cp-info-menu-description', content);
href: origin + '/faq.html', };
}, Messages.help_faq)
); 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
// XXX link to the most recent changelog/release notes Messages.info_faqFlavour = "Consult our <a>FAQ</a> for answers to common questions."; // XXX
// XXX FAQ
// XXX GitHub var template = function (line, link) {
// XXX privacy policy if (!line || !link) { return; }
// XXX legal notice var p = $('<p>').html(line)[0];
var model = link.cloneNode(true);
var content = h('div', [ var sub = link.cloneNode(true);
// CryptPad version number
/* 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), h('h6', Pages.versionString),
// First point users to our FAQ h('hr'),
legalLine,
privacyLine,
faqLine, faqLine,
// Link to the support ticket form in case their
// question isn't answered by the FAQ
//supportLine,
]); ]);
var buttons = [ var buttons = [

Loading…
Cancel
Save