Skip to content

Commit

Permalink
Merge pull request #47649 from nextcloud/fix/footer-overlap
Browse files Browse the repository at this point in the history
fix: Fix inaccessible content on public pages due to overlapping footer
  • Loading branch information
Pytal authored Sep 6, 2024
2 parents 219f1f9 + 7594c79 commit 46340d1
Show file tree
Hide file tree
Showing 12 changed files with 49 additions and 16 deletions.
4 changes: 4 additions & 0 deletions core/Listener/BeforeTemplateRenderedListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ public function handle(Event $event): void {
Util::addScript('core', 'unsupported-browser-redirect');
}

if ($event->getResponse()->getRenderAs() === TemplateResponse::RENDER_AS_PUBLIC) {
Util::addScript('core', 'public');
}

\OC_Util::addStyle('server', null, true);

if ($event instanceof BeforeLoginTemplateRenderedEvent) {
Expand Down
2 changes: 1 addition & 1 deletion core/css/public.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/css/public.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 2 additions & 12 deletions core/css/public.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,9 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#body-public {
--footer-height: calc(var(--default-line-height) + 2 * var(--default-grid-baseline));;

&:has(.footer__legal-links),
&:has(.footer__simple-sign-up) {
--footer-height: calc(2 * var(--default-line-height) + 3 * var(--default-grid-baseline));;
}

&:has(.footer__legal-links):has(.footer__simple-sign-up) {
--footer-height: calc(3 * var(--default-line-height) + 3 * var(--default-grid-baseline));
}
--footer-height: calc(2lh + 2 * var(--default-grid-baseline)); // Set the initial value, will be updated programmatically to match the actual height

.header-end {

#header-primary-action a {
color: var(--color-primary-element-text);
}
Expand Down Expand Up @@ -51,6 +41,7 @@

#content {
min-height: var(--body-height, calc(100% - var(--footer-height)));
padding-block-end: var(--footer-height);
}

#app-content-vue {
Expand Down Expand Up @@ -89,7 +80,6 @@
align-items: center;
justify-content: center;

height: var(--footer-height);
width: calc(100% - 2 * var(--body-container-margin));
margin-inline: var(--body-container-margin);
padding-block: var(--default-grid-baseline);
Expand Down
2 changes: 1 addition & 1 deletion core/css/server.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/css/server.css.map

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions core/src/public.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/

const body = document.body
const footer = document.querySelector('footer')
let prevHeight = footer?.offsetHeight

const onResize: ResizeObserverCallback = (entries) => {
for (const entry of entries) {
const height = entry.contentRect.height
if (height === prevHeight) {
return
}
prevHeight = height
body.style.setProperty('--footer-height', `${height}px`)
}
}

if (footer) {
new ResizeObserver(onResize)
.observe(footer, {
box: 'border-box', // <footer> is border-box
})
}
2 changes: 2 additions & 0 deletions dist/core-public.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions dist/core-public.js.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors


This file is generated from multiple sources. Included packages:
- nextcloud
- version: 1.0.0
- license: AGPL-3.0-or-later
1 change: 1 addition & 0 deletions dist/core-public.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dist/core-public.js.map.license
1 change: 1 addition & 0 deletions webpack.modules.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ module.exports = {
'legacy-unified-search': path.join(__dirname, 'core/src', 'legacy-unified-search.js'),
'unsupported-browser': path.join(__dirname, 'core/src', 'unsupported-browser.js'),
'unsupported-browser-redirect': path.join(__dirname, 'core/src', 'unsupported-browser-redirect.js'),
public: path.join(__dirname, 'core/src', 'public.ts'),
},
dashboard: {
main: path.join(__dirname, 'apps/dashboard/src', 'main.js'),
Expand Down

0 comments on commit 46340d1

Please sign in to comment.