fix: dashboard cleanup + header/PHPCS/i18n improvements#272
fix: dashboard cleanup + header/PHPCS/i18n improvements#272rubenvdlinde wants to merge 6 commits into
Conversation
Before: 1540 errors across 47 lib/ files After: 393 errors across 45 lib/ files Remaining violations are non-auto-fixable (named-parameter rewrites, operator !/=== FALSE swaps, implicit truthy, inline-if rewrites) and need human or reviewer judgment.
Adds two coverage reports produced by /opsx-coverage-scan:
- coverage-report.pilot.{md,json} — 2026-04-20 file-level pilot run (PHP
only, 89 files, ~180 Bucket 1 candidates estimated)
- coverage-report.{md,json} — 2026-04-20 full per-method pass (PHP + Vue/TS,
764 PHP methods + 318 frontend units classified; 678 Bucket 1, 96 Bucket
2a / 7 clusters, 206 Bucket 2b / 9 clusters, 73 Bucket 3b, 115 Bucket 4
findings across 3 ADR rules)
Read-only — no code changes. Feeds the /opsx-annotate and /opsx-reverse-spec
retrofit commands.
- docs/development.md: document local Greenmail setup for mail-driven flows (case intake from citizen email, behandelaar notifications). Includes IMAP/SMTP config + seed-mail.sh pointer to the shared openregister stack. - l10n: sync en/nl strings — add "All cases active", "Case Map", "Cases by status"; drop 4 stale case-type template strings.
Broken l10n/nl.js entries with unescaped quotes caused a JavaScript parse error that silently failed OC.L10N.register(), so ALL Procest translations fell back to English regardless of user language setting. The stale entries were cleaned up in 51edd53; this commit fills in the remaining coverage gaps that made the dashboard appear half-translated. l10n additions (nl.js, en.js, en.json): - Widget titles: Deadline Alerts, Task Due Reminders, Stalled Cases, Case Map, SLA Compliance, Work Queue, Map - Empty states: No items found, No task reminders, All cases active, No SLA targets - Action labels: View all, View all deadline alerts - Lowercase "Open cases" / "Cases by status" aliases to match bundle output Source fixes (require rebuild): - Dashboard.vue: wrap hardcoded 'CASE'/'TASK' badges in t() and pass :empty-label="t(...)" to the 5 CnStatsBlock KPI widgets so their default 'No items found' string becomes translatable - dashboardHelpers.js, doorlooptijdHelpers.js: wrap 'Unknown' fallback strings in t() (imports translate from @nextcloud/l10n) Build config: - webpack.config.js: add scss/sass-loader rule — needed for the new CnCard component from @conduction/nextcloud-vue which uses <style lang="scss">; procest had no SCSS rule and built fine until CnCard was added upstream - package.json: add sass-loader to devDependencies
- Collapse duplicate DEFAULT_LAYOUT entries that rendered every top-row widget twice - Add missing </template> for #widget-case-map slot - Drop redundant card border/background/padding from DeadlineAlerts, TaskDueReminders, StalledCases (CnDashboardPage already wraps each widget) - Remove inner overflow-y on __list containers to fix double scrollbar - Fix broken NcAppNavigationItem nesting between Map and Voorstellen in MainMenu - Document seed-cases.sh in development.md
|
Hey @rubenvdlinde, Code Input detected this PR has a merge conflict. Some of the conflicts of this PR can be resolved with a semantic merge driver. Code Input can do that automatically: https://codeinput.com/r/IEkxPeAZXGu Let me know if you need more help with this conflict or how Code Input works. |
|
Branch too stale to rebase. Same situation as #306 — |
|
Superseded by #420 — the |
Summary
Mixed bag of fixes accumulated on this branch:
Test plan