Commit Graph

29 Commits

Author SHA1 Message Date
bcf078baac update 2026-02-27 21:43:15 +01:00
1cbbc76a17 feat: cache-bust assets, fix XSS and filemtime error handling, clean up users filters
- 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>
2026-02-27 21:40:17 +01:00
bfff05a61b fix: include languages.pl content when saving categories to shopPRO
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>
2026-02-27 19:27:39 +01:00
a2a7934de6 fix: export per-integration name/description to shopPRO with global fallback
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>
2026-02-27 19:20:24 +01:00
ff5a9cef97 feat: add category assignment translation keys
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>
2026-02-27 19:15:28 +01:00
f1b5ba90bd fix: address code quality issues in category assignment modal
- 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>
2026-02-27 19:14:07 +01:00
f5b9f81077 feat: add category assignment column, modal, and JS to marketplace offers view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 19:07:07 +01:00
72b9de7ad2 fix: use short class names in MarketplaceController (add use imports)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 19:05:12 +01:00
da5864d5a2 feat: register category AJAX routes and update MarketplaceController constructor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 19:02:27 +01:00
7fd29e9758 feat: add categoriesJson, productCategoriesJson, saveProductCategoriesJson to MarketplaceController
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 18:59:28 +01:00
d7306be80f feat: add ShopProClient::fetchCategories() method 2026-02-27 18:56:16 +01:00
cad7ff5f94 feat: move content tabs between form fields and images section 2026-02-27 18:27:57 +01:00
33be5affa3 fix: whitelist integration_id against known integrations in product update 2026-02-27 18:26:34 +01:00
5d192427ec feat: add content_tabs translation key 2026-02-27 18:24:02 +01:00
a70b327960 feat: add per-integration content tabs to product edit form with CSS and JS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 18:21:56 +01:00
571f0a990f feat: load and save per-integration content in product edit/update
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 18:18:12 +01:00
d51353e5cc feat: save per-integration name/short_description/description on product import 2026-02-27 18:15:54 +01:00
7b25e2e507 feat: add findIntegrationTranslations and upsertIntegrationTranslation to ProductRepository 2026-02-27 18:14:56 +01:00
5b64bb872b feat: add findIntegrationTranslations and upsertIntegrationTranslation to ProductRepository
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 18:13:44 +01:00
86a74bec93 docs: add inline comments to product_integration_translations migration 2026-02-27 18:12:58 +01:00
bf71b01419 fix: remove redundant FK indexes from product_integration_translations migration 2026-02-27 18:11:16 +01:00
e1f25bbc8f feat: add product_integration_translations table and migrate marianek.pl data 2026-02-27 18:09:43 +01:00
ab26debbb8 Remove temporary Swagger index HTML file and add script to fix GS1 brand names for all products in the database. 2026-02-26 20:16:42 +01:00
1b3ac356af feat: Update TODO.md with additional tasks for shopPRO integration and product management 2026-02-25 00:27:49 +01:00
12f0c262c8 Add initial HTML template for MojeGS1 application with Cookiebot and Google Analytics integration 2026-02-24 23:32:19 +01:00
18d0019c28 feat: Add IntegrationRepository and ShopProClient for managing integrations and fetching products from shopPRO API 2026-02-23 23:28:55 +01:00
b312dc56e3 feat: Add API documentation and permissions configuration 2026-02-22 23:16:37 +01:00
b67542d159 feat: Implement user authentication and database migration system
- 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.
2026-02-21 17:51:34 +01:00
92bbe82614 chore: initialize orderPRO with docs, i18n and scss asset pipeline 2026-02-19 01:27:51 +01:00