Skip to content

fix(procest): dashboard + header/PHPCS/i18n cleanup (re-do of #272)#420

Open
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/dashboard-header-phpcs-i18n
Open

fix(procest): dashboard + header/PHPCS/i18n cleanup (re-do of #272)#420
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/dashboard-header-phpcs-i18n

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

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 with development after the json-manifest migration and couldn't be rebased — this PR supersedes #272.

What was re-applied

  • Dashboard widgets — removed the card-in-card framing (background / border / border-radius / fixed padding) and inner max-height scrollbars from the DeadlineAlerts, StalledCases and TaskDueReminders widgets so they render cleanly inside the manifest dashboard tiles (now a simple flex column with gap).
  • i18n — wrapped the 'Unknown' fallback labels in src/utils/dashboardHelpers.js and src/utils/doorlooptijdHelpers.js with t('procest', …); added the missing dashboard translation keys (All cases active, No task reminders, SLA Compliance, View all deadline alerts) to l10n/{en,nl}.{js,json} with human-readable Dutch.
  • PHPCS / l10n hygiene — dropped four malformed extraction-artifact keys ("Case created with type \", "Case type \", "Status changed from \", "Status changed to \") that actually left l10n/en.js syntactically broken on development; fix: dashboard cleanup + header/PHPCS/i18n improvements #272 removed these too.
  • Headers — fixed the @author email typo dev@conductio.nlinfo@conduction.nl across lib/ and appinfo/routes.php (matches appinfo/info.xml).

What was already resolved by the manifest migration (intentionally not re-applied)

  • src/navigation/MainMenu.vue and src/views/Dashboard.vue no longer exist — the nav-nesting fix (Map / Voorstellen) and the duplicate-widget DEFAULT_LAYOUT concatenation fix are moot.
  • The "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.
  • The blanket phpcbf reformat 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/phpcs on the touched PHP files: no new errors (the pre-existing 118-error baseline on these files is unchanged before/after).
  • eslint on the touched .js / .vue files: clean.
  • l10n/{en,nl}.{js,json}: node --check + python3 -m json.tool all pass (and l10n/en.js is no longer syntactically broken).
  • src/manifest.json untouched.

Follow-ups (deferred)

  • procest's overall translation files are missing ~600 source keys vs. the current code — full l10n regeneration is a separate task.
  • Pre-existing PHPCS baseline (phpcbf can auto-fix ~80 violations in touched-area files) — separate cleanup PR.
  • stylelint config references a missing stylelint-config-recommended-scss dep on development — separate fix.

…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.
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 0e11566

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.

Comment thread l10n/en.js
@@ -45,12 +46,10 @@ OC.L10N.register(
"Case Type" : "Case Type",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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.vue lines 259 & 588: t('procest', 'Case created with type \'{type}\'', { type: ... })
  • src/views/cases/components/QuickStatusDropdown.vue line 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}'".

Copy link
Copy Markdown

@WilcoLouwerse WilcoLouwerse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

🟡 Concerns (1)

Reviewed by WilcoLouwerse via automated batch review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants