fix(procest): dashboard + header/PHPCS/i18n cleanup (re-do of #272)#420
fix(procest): dashboard + header/PHPCS/i18n cleanup (re-do of #272)#420rubenvdlinde wants to merge 1 commit into
Conversation
…do of #272) Re-implements the still-relevant parts of #272 against current development (after the json-manifest migration): - Dashboard: remove card-in-card framing (background/border/border-radius) and inner scrollbars from the DeadlineAlerts / StalledCases / TaskDueReminders widgets so they sit cleanly inside the manifest dashboard tiles. - i18n: wrap the "Unknown" fallback labels in dashboardHelpers.js and doorlooptijdHelpers.js with t('procest', ...); add the missing dashboard translation keys (All cases active, No task reminders, SLA Compliance, View all deadline alerts) to l10n/{en,nl}.{js,json} with Dutch translations; drop four malformed extraction-artifact keys ("Case created with type \", "Case type \", "Status changed from/to \") that left l10n/en.js syntactically broken. - Headers: fix the @author email typo (dev@conductio.nl -> info@conduction.nl) in lib/ and appinfo/routes.php. Parts of #272 that are now obsolete (MainMenu.vue / Dashboard.vue nav and DEFAULT_LAYOUT changes, the duplicate-widget DEFAULT_LAYOUT fix, the "Map"/"Case Map" nav keys) were already resolved by the manifest migration and are intentionally not re-applied. The blanket phpcbf reformat from #272 is left out as out-of-scope; the codebase still has a pre-existing PHPCS baseline tracked separately.
Quality Report — ConductionNL/procest @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ❌ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 419/419 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ❌ |
Spec coverage: 5% (21 tests / 456 specs)
Quality workflow — 2026-05-12 05:45 UTC
Download the full PDF report from the workflow artifacts.
| @@ -45,12 +46,10 @@ OC.L10N.register( | |||
| "Case Type" : "Case Type", | |||
There was a problem hiding this comment.
[CONCERN] Removed artifact stubs expose pre-existing missing parameterized translation keys
The PR correctly removes four malformed extraction artifacts (e.g. "Case created with type \") that were syntactically broken and never matched any t() call. However, the source still contains parameterized t() calls that lack proper l10n entries:
src/views/cases/CaseCreateDialog.vuelines 259 & 588:t('procest', 'Case created with type \'{type}\'', { type: ... })src/views/cases/components/QuickStatusDropdown.vueline 71:t('procest', 'Status changed to \'{status}\'', { status: ... })
Neither "Case created with type '{type}'" nor "Status changed to '{status}'" appear in l10n/en.js or l10n/nl.js after this PR. The broken stubs pre-existed and were never matching anyway, so this PR does not make things worse. But now that the stubs are gone it's clearer these translations fall back to the raw English key at runtime.
Suggested fix (can be a follow-up): add the correct parameterized keys to all four l10n files with Dutch translations, e.g. "Case created with type '{type}'" : "Zaak aangemaakt met type '{type}'" and "Status changed to '{status}'" : "Status gewijzigd naar '{status}'".
WilcoLouwerse
left a comment
There was a problem hiding this comment.
Review
🟡 Concerns (1)
Reviewed by WilcoLouwerse via automated batch review.
Summary
Re-implements the still-relevant parts of #272 cleanly against current
development. The original branch (fix/header-info-email-phpcs) had 40+ merge conflicts withdevelopmentafter the json-manifest migration and couldn't be rebased — this PR supersedes #272.What was re-applied
background/border/border-radius/ fixedpadding) and innermax-heightscrollbars from theDeadlineAlerts,StalledCasesandTaskDueReminderswidgets so they render cleanly inside the manifest dashboard tiles (now a simpleflexcolumn withgap).'Unknown'fallback labels insrc/utils/dashboardHelpers.jsandsrc/utils/doorlooptijdHelpers.jswitht('procest', …); added the missing dashboard translation keys (All cases active,No task reminders,SLA Compliance,View all deadline alerts) tol10n/{en,nl}.{js,json}with human-readable Dutch."Case created with type \","Case type \","Status changed from \","Status changed to \") that actually leftl10n/en.jssyntactically broken ondevelopment; fix: dashboard cleanup + header/PHPCS/i18n improvements #272 removed these too.@authoremail typodev@conductio.nl→info@conduction.nlacrosslib/andappinfo/routes.php(matchesappinfo/info.xml).What was already resolved by the manifest migration (intentionally not re-applied)
src/navigation/MainMenu.vueandsrc/views/Dashboard.vueno longer exist — the nav-nesting fix (Map / Voorstellen) and the duplicate-widgetDEFAULT_LAYOUTconcatenation fix are moot."Map"/"Case Map"/"Cases by status"/"Open cases"/"Stalled Cases"/"Task Due Reminders"/"Deadline Alerts"/"No items found"/"No SLA targets"/"Work Queue"keys from fix: dashboard cleanup + header/PHPCS/i18n improvements #272 are either already present or not referenced by the current source, so they were skipped.phpcbfreformat from fix: dashboard cleanup + header/PHPCS/i18n improvements #272 (~100 files of whitespace churn) is out of scope — procest still carries a pre-existing PHPCS/ESLint/Stylelint baseline tracked separately, and a full reformat would conflict heavily with concurrent work.Verification
vendor/bin/phpcson the touched PHP files: no new errors (the pre-existing 118-error baseline on these files is unchanged before/after).eslinton the touched.js/.vuefiles: clean.l10n/{en,nl}.{js,json}:node --check+python3 -m json.toolall pass (andl10n/en.jsis no longer syntactically broken).src/manifest.jsonuntouched.Follow-ups (deferred)
l10nregeneration is a separate task.phpcbfcan auto-fix ~80 violations in touched-area files) — separate cleanup PR.stylelintconfig references a missingstylelint-config-recommended-scssdep ondevelopment— separate fix.