e32ea7d0aa
Added the CUSTOM_FOOTER_TEXT and CUSTOM_FOOTER_URL environment variables. If undefined, the default translated footer will display. If only CUSTOM_FOOTER_TEXT is defined, only this defined text will display in place of the normal footer text. If only CUSTOM_FOOTER_URL is defined then the defined URL will display. If both variables are defined, the defined text will display as a link to the defined URL.
127 lines
3.3 KiB
JavaScript
127 lines
3.3 KiB
JavaScript
const html = require('choo/html');
|
|
const Component = require('choo/component');
|
|
|
|
class Footer extends Component {
|
|
constructor(name, state) {
|
|
super(name);
|
|
this.state = state;
|
|
}
|
|
|
|
update() {
|
|
return false;
|
|
}
|
|
|
|
createElement() {
|
|
const translate = this.state.translate;
|
|
|
|
// Add additional links from configuration if available
|
|
var links = [];
|
|
if (this.state != undefined && this.state.WEB_UI != undefined) {
|
|
const WEB_UI = this.state.WEB_UI;
|
|
|
|
if (WEB_UI.FOOTER_DONATE_URL != '') {
|
|
links.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.FOOTER_DONATE_URL}" target="_blank">
|
|
${translate('footerLinkDonate')}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
if (WEB_UI.FOOTER_CLI_URL != '') {
|
|
links.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.FOOTER_CLI_URL}" target="_blank">
|
|
${translate('footerLinkCli')}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
if (WEB_UI.FOOTER_DMCA_URL != '') {
|
|
links.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.FOOTER_DMCA_URL}" target="_blank">
|
|
${translate('footerLinkDmca')}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
if (WEB_UI.FOOTER_SOURCE_URL != '') {
|
|
links.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.FOOTER_SOURCE_URL}" target="_blank">
|
|
${translate('footerLinkSource')}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
} else {
|
|
links.push(html`
|
|
<li class="m-2">
|
|
<a href="https://gitlab.com/timvisee/send" target="_blank">
|
|
${translate('footerLinkSource')}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
|
|
// Defining a custom footer
|
|
var footer = [];
|
|
if (this.state != undefined && this.state.WEB_UI != undefined) {
|
|
const WEB_UI = this.state.WEB_UI;
|
|
|
|
if (WEB_UI.CUSTOM_FOOTER_URL != '' && WEB_UI.CUSTOM_FOOTER_TEXT != '') {
|
|
footer.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.CUSTOM_FOOTER_URL}" target="_blank">
|
|
${WEB_UI.CUSTOM_FOOTER_TEXT}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
else if (WEB_UI.CUSTOM_FOOTER_URL != '') {
|
|
footer.push(html`
|
|
<li class="m-2">
|
|
<a href="${WEB_UI.CUSTOM_FOOTER_URL}" target="_blank">
|
|
${WEB_UI.CUSTOM_FOOTER_URL}
|
|
</a>
|
|
</li>
|
|
`);
|
|
}
|
|
else if (WEB_UI.CUSTOM_FOOTER_TEXT != '') {
|
|
footer.push(html`
|
|
<li class="m-2">
|
|
${WEB_UI.CUSTOM_FOOTER_TEXT}
|
|
</li>
|
|
`)
|
|
}
|
|
else {
|
|
footer.push(html`
|
|
<li class="m-2">
|
|
${translate('footerText')}
|
|
</li>
|
|
`);
|
|
}
|
|
}
|
|
|
|
return html`
|
|
<footer
|
|
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-60 dark:text-grey-40 md:items-center justify-between"
|
|
>
|
|
<ul
|
|
class="flex flex-col md:flex-row items-start md:items-center md:justify-start"
|
|
>
|
|
${footer}
|
|
</ul>
|
|
<ul
|
|
class="flex flex-col md:flex-row items-start md:items-center md:justify-end"
|
|
>
|
|
${links}
|
|
</ul>
|
|
</footer>
|
|
`;
|
|
}
|
|
}
|
|
|
|
module.exports = Footer;
|