Jan Böhmer
1ccc3ad440
Extracted logic used by both BackupManager and UpdateExecutor to new service
2026-02-02 19:48:27 +01:00
Jan Böhmer
68ff0721ce
Merged functionality from UpdateAvailableManager and UpdateChecker
2026-02-02 18:44:44 +01:00
Jan Böhmer
6dbead6d10
Centralized git logic from InstallationTypeDetector and UpdateChecker in GitVersionInfoProvider service
2026-02-02 18:18:36 +01:00
Jan Böhmer
7ff07a7ab4
Remove Content-Security-Policy for maintenance mode
2026-02-02 17:28:35 +01:00
Jan Böhmer
1bfd36ccf5
Do not automatically give existing users the right to manage updates, but include that for new databases
2026-02-02 17:04:45 +01:00
Jan Böhmer
7e486a93c9
Added missing phpdoc structure definitions
2026-02-02 17:02:01 +01:00
Jan Böhmer
599145886b
Merge branch 'master' into feature/update-manager
2026-02-02 16:43:02 +01:00
Jan Böhmer
0826acbd52
Fixed phpunit tests
Build assets artifact / Build assets artifact (push) Has been cancelled
Docker Image Build / docker (push) Has been cancelled
Docker Image Build (FrankenPHP) / docker (push) Has been cancelled
Static analysis / Static analysis (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Has been cancelled
2026-02-01 23:11:56 +01:00
Jan Böhmer
04e8229799
Merge branch 'generic_webshop'
2026-02-01 21:35:33 +01:00
Jan Böhmer
a1396c6696
Fixed delegation logic for PartDetailDTO
2026-02-01 21:19:11 +01:00
Jan Böhmer
24f0f0d23c
Added URL handling to a few more existing info providers
2026-02-01 21:18:06 +01:00
Jan Böhmer
10acc2e130
Added logic to delegate the info retrieval logic to another provider when giving an URL
2026-02-01 20:49:50 +01:00
Sebastian Almberg
47295bda29
Add unit tests for BackupManager and UpdateExecutor
...
Tests cover:
- BackupManager: backup directory, listing, details parsing
- UpdateExecutor: lock/unlock, maintenance mode, validation, progress
2026-02-01 19:28:15 +01:00
Sebastian Almberg
f369e14f2f
Merge remote changes with PR feedback
...
Combined jbtronics' debug mode handling for composer install
with our yarn install/build steps and BackupManager refactoring.
2026-02-01 19:23:07 +01:00
Sebastian Almberg
10c192edd1
Address PR feedback: add yarn build, env vars, and BackupManager
...
Changes based on maintainer feedback from PR #1217 :
1. Add yarn install/build steps to update process
- Added yarn availability check in validateUpdatePreconditions
- Added yarn install and yarn build steps after composer install
- Added yarn rebuild to rollback process
- Updated total steps count from 12 to 14
2. Add environment variables to disable web features
- DISABLE_WEB_UPDATES: Completely disable web-based updates
- DISABLE_BACKUP_RESTORE: Disable backup restore from web UI
- Added checks in controller and template
3. Extract BackupManager service
- New service handles backup creation, listing, details, and restoration
- UpdateExecutor now delegates backup operations to BackupManager
- Cleaner separation of concerns for future reuse
4. Merge upstream/master and resolve translation conflicts
- Added Conrad info provider and generic web provider translations
- Kept Update Manager translations
2026-02-01 19:17:22 +01:00
Sebastian Almberg
6b27f3aa14
Merge upstream/master and resolve translation conflict
...
Merged new Conrad info provider and generic web provider translations
from upstream while keeping Update Manager translations.
2026-02-01 19:07:15 +01:00
Jan Böhmer
79f88c66d6
Merge branch 'generic_webshop'
2026-02-01 18:26:30 +01:00
Jan Böhmer
47c7ee9f07
Allow to extract parameters form additionalProperty JSONLD data
2026-02-01 18:24:46 +01:00
Jan Böhmer
909cab0044
Added an web page to quickly add a new part from a web URL
2026-02-01 18:18:58 +01:00
Jan Böhmer
722eb7ddab
Added settings and docs for the generic Web info provider
2026-02-01 17:47:04 +01:00
Jan Böhmer
071f6f8591
Return an empty array if no URL is provider to the Generic Web URL provider
2026-02-01 17:34:08 +01:00
Jan Böhmer
7feba634b8
Hadle if offers are nested and images are ImageObjects in JSON+LD
2026-02-01 17:20:13 +01:00
Jan Böhmer
1213f82cdf
Fix if canonical URL is relative
2026-02-01 17:11:41 +01:00
Jan Böhmer
d868225260
Properly parse JSONLD product data if it is in an array with others
2026-02-01 17:06:38 +01:00
Jan Böhmer
52be548170
Add https:// if not existing
2026-02-01 16:55:52 +01:00
Jan Böhmer
73dbe64a83
Allow to extract prices form an Amazon page
2026-02-01 16:51:26 +01:00
Jan Böhmer
b89e878871
Allow to rudimentary parse product pages, even if they do not contain JSON-LD data
2026-02-01 16:39:19 +01:00
Jan Böhmer
14981200c8
Started implementing a generic web provider which uses JSONLD data provided by a webshop page
2026-02-01 14:35:58 +01:00
Jan Böhmer
8aadc0bb53
Highlight the scanned part lot when scanning an barcode
...
Build assets artifact / Build assets artifact (push) Waiting to run
Docker Image Build / docker (push) Waiting to run
Docker Image Build (FrankenPHP) / docker (push) Waiting to run
Static analysis / Static analysis (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Waiting to run
Fixed issue #968
2026-02-01 13:13:26 +01:00
Jan Böhmer
0eba4738ed
Fixed composer.json formatting
2026-01-31 23:38:38 +01:00
Jan Böhmer
a78ca675b3
Install dev dependencies when updating a debug mode instance
...
Otherwise we run into an error message that web profiler does not exist
2026-01-31 23:36:09 +01:00
Jan Böhmer
6ac7a42cca
Require ext-zip in composer.json
2026-01-31 23:33:39 +01:00
Niklas
a355bda9da
add supplier SPN linking for BOM import ( #1209 )
...
Build assets artifact / Build assets artifact (push) Waiting to run
Docker Image Build / docker (push) Waiting to run
Docker Image Build (FrankenPHP) / docker (push) Waiting to run
Static analysis / Static analysis (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Waiting to run
* feat: add supplier SPN lookup for BOM import
Add automatic part linking via supplier part numbers (SPNs) in the
BOM importer. When a Part-DB ID is not provided, the importer now
searches for existing parts by matching supplier SPNs from the CSV
with orderdetail records in the database.
This allows automatic part linking when KiCad schematic BOMs contain
supplier information like LCSC SPN, Mouser SPN, etc., improving the
import workflow for users who track parts by supplier part numbers.
* add tests for BOM import with supplier SPN handling
2026-01-31 22:37:43 +01:00
Jan Böhmer
584643d4ca
Fixed phpstan issue
2026-01-31 22:21:59 +01:00
Jan Böhmer
2534c84039
Updated dependencies
2026-01-31 22:16:50 +01:00
Jan Böhmer
ed39710f7f
Merge branch 'conrad_provider'
...
Makes PR #1211 obsolete
2026-01-31 22:12:19 +01:00
Jan Böhmer
df3f069a76
Added translations for conrad settings
Build assets artifact / Build assets artifact (push) Has been cancelled
Docker Image Build / docker (push) Has been cancelled
Docker Image Build (FrankenPHP) / docker (push) Has been cancelled
Static analysis / Static analysis (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Has been cancelled
2026-01-31 22:11:50 +01:00
Jan Böhmer
c0babfa401
Added docs for the conrad info provider
2026-01-31 22:03:35 +01:00
Jan Böhmer
cd7cd6cdd3
Allow to retrieve (short) category info from Conrad provider
2026-01-31 21:57:05 +01:00
Jan Böhmer
6d224a4a9f
Allow to filter for languages in conrad attachments
2026-01-31 21:49:43 +01:00
Jan Böhmer
fa04fface3
Fixed bug with parameter parsing
2026-01-31 21:45:27 +01:00
Jan Böhmer
2f8553303d
Use better fields for determine the product name
2026-01-31 21:39:34 +01:00
Jan Böhmer
f168b2a83c
Reordered ConradShopIDs
2026-01-31 21:30:15 +01:00
Jan Böhmer
98937974c9
Allow to query price infos from conrad
2026-01-31 21:15:35 +01:00
Jan Böhmer
6f4dad98d9
Use parameter parsing logic from PR #1211 to handle multi parameters fine
2026-01-31 19:04:25 +01:00
Jan Böhmer
22cf04585b
Allow to retrieve datasheets from conrad
2026-01-31 18:57:00 +01:00
Jan Böhmer
6628333675
Properly handle danish and non-german swiss shop
2026-01-31 18:43:59 +01:00
Sebastian Almberg
fa4ae6345c
Add Update Manager screenshot for PR
2026-01-30 23:36:08 +01:00
Sebastian Almberg
1637fd63f4
Add backup restore feature
...
- Add restoreBackup() method to UpdateExecutor with full restore workflow
- Add getBackupDetails() to retrieve backup metadata and contents info
- Add restore controller routes (backup details API, restore action)
- Add restore button to backups table in UI
- Create backup_restore_controller.js Stimulus controller for confirmation
- Add translation strings for restore feature
The restore process:
1. Acquires lock and enables maintenance mode
2. Extracts backup to temp directory
3. Restores database (MySQL/PostgreSQL SQL or SQLite file)
4. Optionally restores config files and attachments
5. Clears and warms cache
6. Disables maintenance mode
Fix backup restore database import
The restore feature was using a non-existent doctrine:database:import
command. Now properly uses mysql/psql commands directly to import
database dumps.
Changes:
- Add EntityManagerInterface dependency to UpdateExecutor
- Use mysql command with shell input redirection for MySQL restore
- Use psql -f command for PostgreSQL restore
- Properly handle database connection parameters
- Add error handling for failed imports
2026-01-30 23:24:48 +01:00
Sebastian Almberg
0bfbbc961d
Fix update confirmation dialog not blocking form submission
...
The previous implementation used inline onsubmit handlers with return
confirmVersionChange(...), which could fail silently if any JavaScript
error occurred on the page, causing the form to submit without confirmation.
Fixes:
- Use event.preventDefault() FIRST to ensure form never submits by default
- Use DOMContentLoaded event listeners instead of inline handlers
- Properly escape translation strings using json_encode filter
- Wrap in IIFE with 'use strict' for better error handling
- Use data-attributes to identify forms and pass isDowngrade state
Fix DOMContentLoaded race condition in update form handlers
The event listener was not attaching if DOMContentLoaded had already
fired by the time the script executed. Now checks document.readyState
and attaches handlers immediately if DOM is already ready.
Added console.log statements to help debug form handler attachment.
Use Stimulus controller for update confirmation dialogs
The inline script was blocked by Content Security Policy (CSP).
Stimulus controllers are bundled with webpack and properly allowed by CSP.
- Create update_confirm_controller.js Stimulus controller
- Remove inline script from template
- Pass translation strings via data-* attributes
2026-01-30 23:24:48 +01:00