Repository navigation
Conversation
- opened on its own, an application shows its tables and views as cards on a 12-column grid that narrows on smaller screens - each person can give a card full, two thirds, half or one third of the width, and reset it to the default - the layout is kept per user in this browser; when the browser refuses to store it, it applies to the current visit only and says so Signed-off-by: Remko <remko@conduction.nl> Assisted-by: ClaudeCode:claude-opus-5-5
NcActions with a menu name is named after that name, not after its aria-label, so the test finds the menu in the card's toolbar instead. Signed-off-by: Remko <remko@conduction.nl> Assisted-by: ClaudeCode:claude-opus-5-5
| export function getGridCellStyle(span) { | ||
| return { | ||
| '--context-grid-span': span, | ||
| '--context-grid-span-medium': Math.min(span, GRID_COLUMNS_MEDIUM), |
There was a problem hiding this comment.
🟢 Minor — on the 6-column breakpoint, "One third" leaves a hole and "Half" goes full width
Math.min(span, 6) turns 12, 8 and 6 into full width and 4 into 4. Two one-third cards (4 + 4) don't fit in 6 columns, so each one sits on its own row next to a 2-column gap.
Impact: gaps and skewed proportions on medium screens.
Suggested fix: halve the span (12/8/6/4 → 6/4/3/2), and update the Cypress expectation that pins the current behaviour.
| border-bottom: 1px solid var(--color-border); | ||
| } | ||
|
|
||
| @media (max-width: 900px) { |
There was a problem hiding this comment.
🟢 Minor — the breakpoints follow the viewport, not the space the grid actually has
Opened on its own, the application keeps its navigation (about 300 px) open. At a 1100 px viewport the grid has about 800 px and still gets 12 columns, so "One third" cards hold full tables in about 250 px.
Impact: cramped cards while the screen counts as wide.
Suggested fix: container-type: inline-size on .context__grid, with @container rules instead of @media.
| this.loading = true | ||
| this.contextResources = [] | ||
| this.resourceViewSettings = {} | ||
| this.layout = loadContextLayout(this.activeContextId) |
There was a problem hiding this comment.
🟢 Minor — any reload throws away a layout edit in progress
reload() sets draftLayout = null on the next line, and it runs on every context-signature change (for example a resource added in another tab).
Impact: unsaved widths are lost without notice.
Suggested fix: only reset the draft when the application id changes.
|
|
||
| <div v-if="!selectedMenuItem && isStandalone" class="resources"> | ||
| <div v-for="resource in contextResources" :key="resource.key"> | ||
| <div v-if="!selectedMenuItem && isStandalone" class="context__layout-toolbar" data-cy="context-layout-toolbar"> |
There was a problem hiding this comment.
🟢 Minor — "Edit layout" shows when there is nothing to lay out
The toolbar also renders when contextResources is empty, for example an application with only grid pages.
Impact: an edit button over an empty page.
Suggested fix: add && contextResources.length > 0.
| window.localStorage.removeItem(getStorageKey(contextId)) | ||
| return | ||
| } | ||
| window.localStorage.setItem(getStorageKey(contextId), JSON.stringify(layout)) |
There was a problem hiding this comment.
🟢 Minor (question) — the layout is kept per browser, not per user
The PR says so openly, so this is a check on the product choice. Nextcloud user preferences would let the layout follow the person to other devices. Stored keys are also never cleaned up after an application or resource is deleted.
Impact: the layout doesn't follow the user to other devices; stale keys accumulate.
Suggested fix: confirm that browser-only storage is intended; if so, consider pruning unknown resource keys on load.
Opened on its own, an application now shows its tables and views as cards on a grid, and each person can choose how wide each card is.
What changes
🖼️ Screenshots
🏁 Checklist
/backport to stableX.X🤖 AI (if applicable)