- Add ?ver=<filemtime> cache-busting to CSS/JS assets in app and auth layouts
- Use ?: 0 fallback on filemtime() to prevent E_WARNING when files are missing
- Escape security_information output with $e() to fix XSS vulnerability (show.php:91)
- Wrap product image metadata in __meta container, move storage path into <details>
- Add table--details CSS class and th { white-space: nowrap } rule
- Remove redundant sort, sort_dir, per_page filter dropdowns from users list
- Add 10 as a per-page option in users list
- Clean up completed items from TODO.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
shopPRO's products/update clears ALL language fields (name, description,
short_description, etc.) for any language not included in the payload.
Sending only {"categories":[...]} wiped them out.
saveProductCategoriesJson() now:
1. Looks up the local orderPRO product via findMappedProductId()
2. Loads per-integration translation (with global fallback)
3. Includes languages.pl in the payload alongside categories
Also adds ProductRepository to MarketplaceController constructor.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mapProductPayload() now receives the per-integration translation row for
the target integration. For name, short_description, and description it
uses the integration-specific value when set (non-null), and falls back
to the global product_translations value otherwise.
loadIntegrationTranslation() helper fetches the row from
product_integration_translations for the given product+integration pair.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add marketplace.fields.categories, marketplace.actions.assign_categories,
and marketplace.category_modal section with all modal UI strings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add btn--sm class to assign-categories button
- Force DOM reflow in openModal() so CSS transition fires correctly
- Clear treeEl.innerHTML at start of renderTree() to prevent stale tree
on rapid double-click (race between two parallel fetch pairs)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Refactored AuthService to use UserRepository for user authentication.
- Added .env file for environment configuration.
- Created migration system with Migrator and ConnectionFactory classes.
- Added database migration files for creating users table.
- Implemented settings controller for managing database migrations.
- Developed user repository for user data handling.
- Created users controller for user management interface.
- Added frontend standards and migration documentation.
- Introduced reusable UI components and jQuery alerts module.