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
188 lines
12 KiB
JSON
188 lines
12 KiB
JSON
[
|
|
{
|
|
"id": "F001",
|
|
"description": "Create en/msp/billing-settings.json with all keys for the 17 billing/tax settings components (~480 keys organized under tabs, general, quoting, tax, payments, serviceCategories, serviceTypes, serviceCatalog, products, quickAddService, quickAddProduct, clientTaxSettings, common, import, validation, errors, toast groups)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F002",
|
|
"description": "Update ROUTE_NAMESPACES in packages/core/src/lib/i18n/config.ts to add 'msp/billing-settings' to the '/msp/settings' entry",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F003",
|
|
"description": "Wire useTranslation('msp/billing-settings') in BillingSettings.tsx -- tab labels (General/Quoting/Tax/Payments), card titles and descriptions for all sections (Default Currency, Invoice Numbering, Zero-Dollar Invoices, Credit Expiration, Renewal Automation, Quote Numbering, Tax Regions, Payment Settings), loading text",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F004",
|
|
"description": "Wire useTranslation in DefaultCurrencySettings.tsx -- currency select label, placeholder, toast success message, error fallback strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F005",
|
|
"description": "Wire useTranslation in ZeroDollarInvoiceSettings.tsx -- handling option labels (Create as Draft / Create and Finalize), invoice handling select label/placeholder, suppress toggle label, help text descriptions, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F006",
|
|
"description": "Wire useTranslation in CreditExpirationSettings.tsx -- enable toggle label, help text, expiration period label/help, notification days label/placeholder/help, save button, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F007",
|
|
"description": "Wire useTranslation in RenewalAutomationSettings.tsx -- policy option labels (Create ticket/Queue only), due date action label/help, board/status select labels and dynamic placeholders (Loading boards.../Select board/Loading statuses.../Select status/Select a board first), status scoping help text, save/saving button, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F008",
|
|
"description": "Wire useTranslation in ServiceCategoriesSettings.tsx -- page heading, table column titles (Name/Description/Order/Actions), action menu items (Edit/Delete), Add/Import buttons",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F009",
|
|
"description": "Wire ServiceCategoriesSettings.tsx dialog strings -- add/edit dialog title, field labels (Category Name/Description/Display Order), placeholders, display order help text, validation error ('Category name is required'), cancel/create/update buttons, toast messages (created/updated/deleted), import dialog title and content, conflict resolution dialog strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F010",
|
|
"description": "Wire useTranslation in ServiceTypeSettings.tsx -- card title/description, table columns (Name/Billing Method/Description/Order/Actions), billing method display labels (Fixed/Hourly/Usage), loading state, Add/Import buttons, action menu items (Edit/Delete)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F011",
|
|
"description": "Wire ServiceTypeSettings.tsx dialog and validation strings -- add/edit dialog title, field labels (Name/Description/Billing Method/Display Order), placeholders, required-fields validation prompt, display order help text with used-orders list, delete confirmation dialog (with in-use error handling), import dialog and conflict resolution strings, toast messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F012",
|
|
"description": "Wire useTranslation in ServiceCatalogManager.tsx -- page heading, table columns (Service Name/Service Type/Billing Method/Pricing/Unit/Tax Rate/Actions), filter placeholders (All Service Types/All Billing Methods), loading state, action menu items (Edit/Delete)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F013",
|
|
"description": "Wire ServiceCatalogManager.tsx edit dialog strings -- dialog title, field labels (Service Name/Service Type/Billing Method/Description/Pricing/Unit of Measure/Tax Rate/SKU/Inventory Count/Seat Limit/License Term), pricing section header with rate type labels (Monthly/Per Hour/Usage), + Add Currency button, Remove button, pricing help text, save/cancel buttons, error messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F014",
|
|
"description": "Wire useTranslation in ProductsManager.tsx -- page heading, table columns (Product/SKU/Type/Category/Label/Pricing/Tax Rate/Active/Actions), action menu items (Edit/Restore/Archive/Delete), filter option labels (All Statuses/Active/Inactive/All Categories/All Types), search placeholder, loading state, Add Product button",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F015",
|
|
"description": "Wire ProductsManager.tsx confirmation dialog strings -- archive confirmation (with product name interpolation), permanent delete dialog (checking/can-delete/cannot-delete messages with associations list, archive-instead suggestion), error messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F016",
|
|
"description": "Wire useTranslation in QuickAddService.tsx -- dialog title, field labels (Service Name/Service Type/Billing Method/Description/Tax Rate), pricing section (rate type labels, + Add Currency, Remove, help text), validation error list header and individual messages, cancel/save buttons",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F017",
|
|
"description": "Wire QuickAddService.tsx conditional field labels and validation -- Unit of Measure label/placeholder/help (usage-based), Hardware fields (SKU/Inventory Count), Software License fields (Seat Limit/License Term), hardware/license validation errors, tax rate loading placeholder, error messages, toast",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F018",
|
|
"description": "Wire useTranslation in QuickAddProduct.tsx -- dialog title (Add/Edit Product), all field labels (Product Name/Type/SKU/Category/Label/Vendor/Manufacturer/Cost/Billing Method/Pricing/Tax Rate/Active/Unit of Measure/License?/License Term/Description), pricing section strings, validation errors, cancel/create/save buttons, error messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F019",
|
|
"description": "Wire useTranslation in TaxSourceSettings.tsx -- card title, tooltip content, card description, radio option labels and descriptions (Internal/External), external workflow numbered steps, accounting system note, cancel/save buttons, saving state, loading state, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F020",
|
|
"description": "Wire useTranslation in TaxRegionsManager.tsx -- card title, Add Tax Region button, table columns (Code/Name/Status/Actions), status badges (Active/Inactive), action menu items (Edit/Activate/Deactivate), activate/deactivate toast messages, loading state, dialog title (Add/Edit), field labels (Region Code/Region Name/Active), placeholders, cancel/save buttons, saving state, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F021",
|
|
"description": "Wire useTranslation in TaxThresholdEditor.tsx -- section heading, tooltip content, Add Bracket button, table columns (Min Amount/Max Amount/Rate/Actions), 'No limit' label, action menu items (Edit/Delete), bracket issues alert title, loading/empty states, calculation preview labels (title, Amount, taxable, Total Tax, Effective)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F022",
|
|
"description": "Wire TaxThresholdEditor.tsx dialog strings -- add/edit dialog title, field labels (Min Amount/Max Amount/Rate), max amount help text ('leave empty for no limit'), placeholders, delete confirmation dialog (with bracket range interpolation, last-bracket warning), cancel/save/delete buttons, saving/deleting states, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F023",
|
|
"description": "Wire useTranslation in TaxComponentEditor.tsx -- section heading, tooltip content, Add Component button, table columns (Seq/Name/Rate/Compound/Date Range/Actions), compound badges (Yes/No), date range display labels (Always/Any/Ongoing), loading/empty states, calculation preview labels (title with base amount, compound label, Total Tax, Effective)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F024",
|
|
"description": "Wire TaxComponentEditor.tsx dialog strings -- add/edit dialog title, field labels (Name/Rate/Sequence/Compound Tax toggle with description/Start Date/End Date), placeholders, delete confirmation (with component name interpolation), cancel/save/delete buttons, saving/deleting states, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F025",
|
|
"description": "Wire useTranslation in TaxHolidayManager.tsx -- section heading (with optional tax rate name interpolation), tooltip content, Add Holiday button, table columns (Start Date/End Date/Description/Status/Actions), status badges (Active/Upcoming/Expired), status summary labels, loading/empty states",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F026",
|
|
"description": "Wire TaxHolidayManager.tsx dialog strings -- add/edit dialog title, field labels (Start Date/End Date/Description), placeholder, delete confirmation (with description and date range interpolation), cancel/save/delete buttons, saving/deleting states, toast messages, error strings",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F027",
|
|
"description": "Wire useTranslation in TaxSettingsForm.tsx -- page title, loading state, no-settings-found message, Create Default Tax Settings button, error/success dismissible messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F028",
|
|
"description": "Wire TaxSettingsForm.tsx tax exempt card -- card title, description, toggle label/tooltip, exempt/not-exempt status text, certificate field label/placeholder/help, exempt alert content, cancel/save buttons, saving state, toast messages",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F029",
|
|
"description": "Wire TaxSettingsForm.tsx advanced tax options card -- card title/description, reverse charge toggle label/tooltip/status, tax source override label/tooltip, select options (Use Tenant Default/Alga PSA Calculates Tax/Accounting Package Calculates Tax), effective source description (with override indicator), override-not-available alert with billing settings link, reset/update buttons, updating state",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F030",
|
|
"description": "Generate fr/msp/billing-settings.json translations for all keys in F001",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F031",
|
|
"description": "Generate es/msp/billing-settings.json translations for all keys",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F032",
|
|
"description": "Generate de/msp/billing-settings.json translations for all keys",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F033",
|
|
"description": "Generate nl/msp/billing-settings.json translations for all keys",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F034",
|
|
"description": "Generate it/msp/billing-settings.json translations for all keys (with Italian accent audit)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F035",
|
|
"description": "Generate pl/msp/billing-settings.json translations for all keys",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F036",
|
|
"description": "Run `node scripts/generate-pseudo-locales.cjs` to regenerate xx/ and yy/ pseudo-locale files from updated English source (do NOT hand-edit pseudo-locales)",
|
|
"implemented": true
|
|
},
|
|
{
|
|
"id": "F037",
|
|
"description": "Run `node scripts/validate-translations.cjs` and resolve any key parity, interpolation variable, or accent issues across all 9 locales (exit code 0 required)",
|
|
"implemented": true
|
|
}
|
|
]
|