Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
375 lines
11 KiB
JSON
375 lines
11 KiB
JSON
[
|
|
{
|
|
"id": "F001",
|
|
"description": "Add translationKey field to MenuItem and NavigationSection interfaces in menuConfig.ts",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1"]
|
|
},
|
|
{
|
|
"id": "F002",
|
|
"description": "Add translationKey values to all navigationSections items (main nav: Home, Tickets, Projects, etc.)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1"]
|
|
},
|
|
{
|
|
"id": "F003",
|
|
"description": "Add translationKey values to bottomMenuItems (Settings, Support, and sub-items)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1"]
|
|
},
|
|
{
|
|
"id": "F004",
|
|
"description": "Add translationKey values to settingsNavigationSections (section titles + all items including Language, SLA)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1", "FR13"]
|
|
},
|
|
{
|
|
"id": "F005",
|
|
"description": "Add translationKey values to billingNavigationSections (section titles + 12 items)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1", "FR12"]
|
|
},
|
|
{
|
|
"id": "F006",
|
|
"description": "Add translationKey values to extensionsNavigationSections",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1"]
|
|
},
|
|
{
|
|
"id": "F007",
|
|
"description": "Sidebar.tsx: add useTranslation('msp/core') and translate item.name display via t(item.translationKey)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F008",
|
|
"description": "Sidebar.tsx: translate 'Go to dashboard' aria-label",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F009",
|
|
"description": "Sidebar.tsx: translate 'AlgaPSA Logo' alt text",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F010",
|
|
"description": "Sidebar.tsx: translate 'Expand sidebar' and 'Collapse sidebar' labels",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F011",
|
|
"description": "Sidebar.tsx: translate section titles for settings, billing, and extensions modes via t(section.translationKey)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F012",
|
|
"description": "Sidebar.tsx: translate tooltip text for collapsed sidebar items",
|
|
"implemented": true,
|
|
"prdRefs": ["FR2"]
|
|
},
|
|
{
|
|
"id": "F013",
|
|
"description": "Header.tsx: add useTranslation('msp/core') hook",
|
|
"implemented": true,
|
|
"prdRefs": ["FR3", "FR4", "FR5"]
|
|
},
|
|
{
|
|
"id": "F014",
|
|
"description": "Header.tsx QuickCreateMenu: translate 'Open quick create' aria-label, 'Quick Create' button text, 'Create' heading",
|
|
"implemented": true,
|
|
"prdRefs": ["FR3"]
|
|
},
|
|
{
|
|
"id": "F015",
|
|
"description": "Header.tsx QuickCreateMenu: translate 7 quick-create option labels and descriptions",
|
|
"implemented": true,
|
|
"prdRefs": ["FR3"]
|
|
},
|
|
{
|
|
"id": "F016",
|
|
"description": "Header.tsx JobActivityIndicator: translate all 7 strings (aria-label, title, description, active/queued/failed labels, Open Job Center)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR4"]
|
|
},
|
|
{
|
|
"id": "F017",
|
|
"description": "Header.tsx: translate breadcrumb 'Home' text and aria-label",
|
|
"implemented": true,
|
|
"prdRefs": ["FR5"]
|
|
},
|
|
{
|
|
"id": "F018",
|
|
"description": "Header.tsx: translate 'Dashboard' fallback in getMenuItemNameByPath()",
|
|
"implemented": true,
|
|
"prdRefs": ["FR5"]
|
|
},
|
|
{
|
|
"id": "F019",
|
|
"description": "Header.tsx TenantBadge: translate 'Active tenant' aria-label with interpolation",
|
|
"implemented": true,
|
|
"prdRefs": ["FR5"]
|
|
},
|
|
{
|
|
"id": "F020",
|
|
"description": "DefaultLayout.tsx: add useTranslation('msp/core') and translate AI chat interrupt dialog (4 title/message/confirm/cancel pairs)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR6"]
|
|
},
|
|
{
|
|
"id": "F021",
|
|
"description": "TrialBanner.tsx: add useTranslation('msp/core') and translate 'Premium confirmed' message",
|
|
"implemented": true,
|
|
"prdRefs": ["FR7"]
|
|
},
|
|
{
|
|
"id": "F022",
|
|
"description": "TrialBanner.tsx: translate '1 day left' / '{{count}} days left' with interpolation",
|
|
"implemented": true,
|
|
"prdRefs": ["FR7"]
|
|
},
|
|
{
|
|
"id": "F023",
|
|
"description": "TrialBanner.tsx: translate 'Premium Trial: {{daysLabel}} — confirm to keep'",
|
|
"implemented": true,
|
|
"prdRefs": ["FR7"]
|
|
},
|
|
{
|
|
"id": "F024",
|
|
"description": "TrialBanner.tsx: translate '{{tier}} Trial: {{daysLabel}}' for Stripe trials",
|
|
"implemented": true,
|
|
"prdRefs": ["FR7"]
|
|
},
|
|
{
|
|
"id": "F025",
|
|
"description": "PaymentFailedBanner.tsx: add useTranslation('msp/core') and translate banner message + portal error toast",
|
|
"implemented": true,
|
|
"prdRefs": ["FR8"]
|
|
},
|
|
{
|
|
"id": "F026",
|
|
"description": "QuickCreateDialog.tsx: add useTranslation('msp/core') and translate 7 success toast messages with interpolation",
|
|
"implemented": true,
|
|
"prdRefs": ["FR9"]
|
|
},
|
|
{
|
|
"id": "F027",
|
|
"description": "QuickCreateDialog.tsx: translate 3 dialog titles (Add New Contact/Project/Service)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR9"]
|
|
},
|
|
{
|
|
"id": "F028",
|
|
"description": "QuickCreateDialog.tsx: translate 2 error messages (Failed to load clients/service types)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR9"]
|
|
},
|
|
{
|
|
"id": "F029",
|
|
"description": "RightSidebar.tsx: add useTranslation('msp/core') and translate CE fallback 'Chat' title and enterprise-only message",
|
|
"implemented": true,
|
|
"prdRefs": ["FR10"]
|
|
},
|
|
{
|
|
"id": "F030",
|
|
"description": "PlatformNotificationBanner.tsx: add useTranslation('msp/core') and translate 'Learn More' button + 'Dismiss notification' aria-label",
|
|
"implemented": true,
|
|
"prdRefs": ["FR11"]
|
|
},
|
|
{
|
|
"id": "F031",
|
|
"description": "Add all ~80 new keys to en/msp/core.json following the established key naming convention",
|
|
"implemented": true,
|
|
"prdRefs": ["FR1-FR13"]
|
|
},
|
|
{
|
|
"id": "F032",
|
|
"description": "Generate French (fr) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F033",
|
|
"description": "Generate Spanish (es) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F034",
|
|
"description": "Generate German (de) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F035",
|
|
"description": "Generate Dutch (nl) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F036",
|
|
"description": "Generate Italian (it) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F037",
|
|
"description": "Generate Polish (pl) translations for all new keys in msp/core.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F038",
|
|
"description": "Update pseudo-locale xx/msp/core.json with all new keys (values = '11111')",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F039",
|
|
"description": "Update pseudo-locale yy/msp/core.json with all new keys (values = '55555')",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F040",
|
|
"description": "Run Italian accent audit on it/msp/core.json — fix any missing accents",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F041",
|
|
"description": "Cross-check translated nav labels against existing msp/core.json values for consistency across languages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F042",
|
|
"description": "Add 'Language' and 'SLA' settings tab keys to msp/core.json settings.tabs section",
|
|
"implemented": true,
|
|
"prdRefs": ["FR13"]
|
|
},
|
|
{
|
|
"id": "F043",
|
|
"description": "Verify billing navigation keys (nav.billing.*) are added for all 12 billing sidebar items across all languages",
|
|
"implemented": true,
|
|
"prdRefs": ["FR12"]
|
|
},
|
|
|
|
{
|
|
"id": "F050",
|
|
"description": "Create en/msp/dashboard.json with all ~110 dashboard keys following naming convention",
|
|
"implemented": true,
|
|
"prdRefs": ["FR14", "FR15", "FR16", "FR17"]
|
|
},
|
|
{
|
|
"id": "F051",
|
|
"description": "DashboardContainer.tsx: add useTranslation('msp/dashboard') and translate welcome banners (enterprise + community)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR14"]
|
|
},
|
|
{
|
|
"id": "F052",
|
|
"description": "DashboardContainer.tsx: translate 'Platform Features' heading and all 6 feature card titles + descriptions",
|
|
"implemented": true,
|
|
"prdRefs": ["FR14"]
|
|
},
|
|
{
|
|
"id": "F053",
|
|
"description": "DashboardContainer.tsx: translate knowledge base section (title, description, CTA button)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR14"]
|
|
},
|
|
{
|
|
"id": "F054",
|
|
"description": "DashboardContainer.tsx: translate 'Coming soon!' toast message",
|
|
"implemented": true,
|
|
"prdRefs": ["FR14"]
|
|
},
|
|
{
|
|
"id": "F055",
|
|
"description": "DashboardOnboardingSection.tsx: add useTranslation('msp/dashboard') and translate section headers (complete/incomplete titles, descriptions)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR15"]
|
|
},
|
|
{
|
|
"id": "F056",
|
|
"description": "DashboardOnboardingSection.tsx: translate progress ring labels ('PROGRESS', '{{completed}} of {{total}} Steps', motivational messages)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR15"]
|
|
},
|
|
{
|
|
"id": "F057",
|
|
"description": "DashboardOnboardingSection.tsx: translate step badges (NOT STARTED, IN PROGRESS, COMPLETE, BLOCKED) and step label ('STEP {{index}}')",
|
|
"implemented": true,
|
|
"prdRefs": ["FR15"]
|
|
},
|
|
{
|
|
"id": "F058",
|
|
"description": "DashboardOnboardingSection.tsx: translate action buttons (Completed, Hiding, Hide, Dismiss) and hidden steps panel",
|
|
"implemented": true,
|
|
"prdRefs": ["FR15"]
|
|
},
|
|
{
|
|
"id": "F059",
|
|
"description": "OnboardingChecklist.tsx: add useTranslation('msp/dashboard') and translate card header, progress, completion banner, and invite CTA",
|
|
"implemented": true,
|
|
"prdRefs": ["FR16"]
|
|
},
|
|
{
|
|
"id": "F060",
|
|
"description": "stepDefinitions.ts: add translationKey fields to step definitions for title, description, and CTA (5 steps x 3 fields = 15 keys)",
|
|
"implemented": true,
|
|
"prdRefs": ["FR17"]
|
|
},
|
|
{
|
|
"id": "F061",
|
|
"description": "Update ROUTE_NAMESPACES: add 'msp/dashboard' to '/msp' and '/msp/dashboard' routes",
|
|
"implemented": true,
|
|
"prdRefs": ["FR18"]
|
|
},
|
|
{
|
|
"id": "F062",
|
|
"description": "Generate French (fr) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F063",
|
|
"description": "Generate Spanish (es) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F064",
|
|
"description": "Generate German (de) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F065",
|
|
"description": "Generate Dutch (nl) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F066",
|
|
"description": "Generate Italian (it) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F067",
|
|
"description": "Generate Polish (pl) translations for all keys in msp/dashboard.json",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F068",
|
|
"description": "Create pseudo-locale xx/msp/dashboard.json with all keys (values = '11111')",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F069",
|
|
"description": "Create pseudo-locale yy/msp/dashboard.json with all keys (values = '55555')",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F070",
|
|
"description": "Run Italian accent audit on it/msp/dashboard.json — fix any missing accents",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F071",
|
|
"description": "DashboardOnboardingSection.tsx: stabilize default initialDismissedStepIds to avoid rerender loops when the prop is omitted",
|
|
"implemented": true,
|
|
"prdRefs": ["FR15"]
|
|
}
|
|
]
|