diff --git a/VERSION b/VERSION index ccbccc3d..eca07e4c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.0 +2.1.2 diff --git a/composer.lock b/composer.lock index 1970868e..a825af62 100644 --- a/composer.lock +++ b/composer.lock @@ -4022,16 +4022,16 @@ }, { "name": "dompdf/dompdf", - "version": "v3.1.2", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "b3493e35d31a5e76ec24c3b64a29b0034b2f32a6" + "reference": "794ec856134a73d2a69a474c5d4faa47e1e645b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/b3493e35d31a5e76ec24c3b64a29b0034b2f32a6", - "reference": "b3493e35d31a5e76ec24c3b64a29b0034b2f32a6", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/794ec856134a73d2a69a474c5d4faa47e1e645b1", + "reference": "794ec856134a73d2a69a474c5d4faa47e1e645b1", "shasum": "" }, "require": { @@ -4080,9 +4080,9 @@ "homepage": "https://github.com/dompdf/dompdf", "support": { "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v3.1.2" + "source": "https://github.com/dompdf/dompdf/tree/v3.1.1" }, - "time": "2025-09-23T03:06:41+00:00" + "time": "2025-09-20T17:30:31+00:00" }, { "name": "dompdf/php-font-lib", @@ -4945,16 +4945,16 @@ }, { "name": "jbtronics/dompdf-font-loader-bundle", - "version": "v1.1.5", + "version": "v1.1.4", "source": { "type": "git", "url": "https://github.com/jbtronics/dompdf-font-loader-bundle.git", - "reference": "83a0e50ecceefea0a63915dae758e00788fd067e" + "reference": "1b41014a2dd9e82ba6a62e61deeebe3cdc1eaf1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jbtronics/dompdf-font-loader-bundle/zipball/83a0e50ecceefea0a63915dae758e00788fd067e", - "reference": "83a0e50ecceefea0a63915dae758e00788fd067e", + "url": "https://api.github.com/repos/jbtronics/dompdf-font-loader-bundle/zipball/1b41014a2dd9e82ba6a62e61deeebe3cdc1eaf1f", + "reference": "1b41014a2dd9e82ba6a62e61deeebe3cdc1eaf1f", "shasum": "" }, "require": { @@ -4994,22 +4994,22 @@ ], "support": { "issues": "https://github.com/jbtronics/dompdf-font-loader-bundle/issues", - "source": "https://github.com/jbtronics/dompdf-font-loader-bundle/tree/v1.1.5" + "source": "https://github.com/jbtronics/dompdf-font-loader-bundle/tree/v1.1.4" }, - "time": "2025-07-25T20:29:05+00:00" + "time": "2025-07-07T20:39:34+00:00" }, { "name": "jbtronics/settings-bundle", - "version": "v3.1.1", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/jbtronics/settings-bundle.git", - "reference": "1067dd3d816cd0a6be7ac3d3989587ea05040bd4" + "reference": "7f19bac5a66533c6974948a484871087301b2a2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jbtronics/settings-bundle/zipball/1067dd3d816cd0a6be7ac3d3989587ea05040bd4", - "reference": "1067dd3d816cd0a6be7ac3d3989587ea05040bd4", + "url": "https://api.github.com/repos/jbtronics/settings-bundle/zipball/7f19bac5a66533c6974948a484871087301b2a2e", + "reference": "7f19bac5a66533c6974948a484871087301b2a2e", "shasum": "" }, "require": { @@ -5070,7 +5070,7 @@ ], "support": { "issues": "https://github.com/jbtronics/settings-bundle/issues", - "source": "https://github.com/jbtronics/settings-bundle/tree/v3.1.1" + "source": "https://github.com/jbtronics/settings-bundle/tree/v3.1.0" }, "funding": [ { @@ -5082,7 +5082,7 @@ "type": "github" } ], - "time": "2025-09-22T22:00:15+00:00" + "time": "2025-09-19T06:54:58+00:00" }, { "name": "jfcherng/php-color-output", @@ -7588,26 +7588,24 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v3.1.1", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "5e9b582660b997de205a84c02a3aac7c060900c9" + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/5e9b582660b997de205a84c02a3aac7c060900c9", - "reference": "5e9b582660b997de205a84c02a3aac7c060900c9", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", "shasum": "" }, "require": { "php": "^8" }, "require-dev": { - "infection/infection": "^0", - "nikic/php-fuzzer": "^0", - "phpunit/phpunit": "^9|^10|^11", - "vimeo/psalm": "^4|^5|^6" + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4|^5" }, "type": "library", "autoload": { @@ -7653,7 +7651,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2025-09-22T21:00:33+00:00" + "time": "2024-05-08T12:36:18+00:00" }, { "name": "paragonie/random_compat", @@ -18872,16 +18870,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.40", + "version": "11.5.39", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4102b2f9250d6dd57d1a1c8c4132b1c744b14b1c" + "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4102b2f9250d6dd57d1a1c8c4132b1c744b14b1c", - "reference": "4102b2f9250d6dd57d1a1c8c4132b1c744b14b1c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", + "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", "shasum": "" }, "require": { @@ -18905,7 +18903,7 @@ "sebastian/comparator": "^6.3.2", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.1", + "sebastian/exporter": "^6.3.0", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", "sebastian/type": "^5.1.3", @@ -18953,7 +18951,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.40" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.39" }, "funding": [ { @@ -18977,7 +18975,7 @@ "type": "tidelift" } ], - "time": "2025-09-23T06:23:40+00:00" + "time": "2025-09-14T06:20:41+00:00" }, { "name": "rector/rector", diff --git a/src/Controller/PartListsController.php b/src/Controller/PartListsController.php index 8ea218f4..b2df18c1 100644 --- a/src/Controller/PartListsController.php +++ b/src/Controller/PartListsController.php @@ -154,18 +154,13 @@ class PartListsController extends AbstractController $filter_changer($filter); } - //If we are in a post request for the tables, we only have to apply the filter form if the submit query param was set - //This saves us some time from creating this complicated term on simple list pages, where no special filter is applied - $filterForm = null; - if ($request->getMethod() !== 'POST' || $request->query->has('part_filter')) { - $filterForm = $this->createForm(PartFilterType::class, $filter, ['method' => 'GET']); - if ($form_changer !== null) { - $form_changer($filterForm); - } - - $filterForm->handleRequest($formRequest); + $filterForm = $this->createForm(PartFilterType::class, $filter, ['method' => 'GET']); + if($form_changer !== null) { + $form_changer($filterForm); } + $filterForm->handleRequest($formRequest); + $table = $this->dataTableFactory->createFromType(PartsDataTable::class, array_merge( ['filter' => $filter], $additional_table_vars), ['pageLength' => $this->tableSettings->fullDefaultPageSize, 'lengthMenu' => PartsDataTable::LENGTH_MENU]) @@ -191,7 +186,7 @@ class PartListsController extends AbstractController return $this->render($template, array_merge([ 'datatable' => $table, - 'filterForm' => $filterForm?->createView(), + 'filterForm' => $filterForm->createView(), ], $additonal_template_vars)); } diff --git a/src/Entity/Base/AbstractCompany.php b/src/Entity/Base/AbstractCompany.php index 57a3f722..947d1339 100644 --- a/src/Entity/Base/AbstractCompany.php +++ b/src/Entity/Base/AbstractCompany.php @@ -81,7 +81,7 @@ abstract class AbstractCompany extends AbstractPartsContainingDBElement /** * @var string The website of the company */ - #[Assert\Url(requireTld: false)] + #[Assert\Url] #[Groups(['full', 'company:read', 'company:write', 'import', 'extended'])] #[ORM\Column(type: Types::STRING)] #[Assert\Length(max: 255)] diff --git a/src/Entity/Parts/PartTraits/ManufacturerTrait.php b/src/Entity/Parts/PartTraits/ManufacturerTrait.php index 911a0806..5d7f8749 100644 --- a/src/Entity/Parts/PartTraits/ManufacturerTrait.php +++ b/src/Entity/Parts/PartTraits/ManufacturerTrait.php @@ -49,7 +49,7 @@ trait ManufacturerTrait /** * @var string The url to the part on the manufacturer's homepage */ - #[Assert\Url(requireTld: false)] + #[Assert\Url] #[Groups(['full', 'import', 'part:read', 'part:write'])] #[ORM\Column(type: Types::TEXT)] protected string $manufacturer_product_url = ''; diff --git a/src/Entity/PriceInformations/Orderdetail.php b/src/Entity/PriceInformations/Orderdetail.php index 8ed76a46..3709b37d 100644 --- a/src/Entity/PriceInformations/Orderdetail.php +++ b/src/Entity/PriceInformations/Orderdetail.php @@ -124,7 +124,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N /** * @var string The URL to the product on the supplier's website */ - #[Assert\Url(requireTld: false)] + #[Assert\Url] #[Groups(['full', 'import', 'orderdetail:read', 'orderdetail:write'])] #[ORM\Column(type: Types::TEXT)] protected string $supplier_product_url = ''; diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf index 06326a21..66f8fb31 100644 --- a/translations/messages.de.xlf +++ b/translations/messages.de.xlf @@ -8924,12 +8924,6 @@ Element 1 -> Element 1.2 Bauteil ändern - - - part_list.action.scrollable_hint - Scrollen Sie, um alle Aktionen anzuzeigen - - part_list.action.action.title @@ -9320,72 +9314,6 @@ Element 1 -> Element 1.2 Name des Anhangs - - - filter.bulk_import_job.label - Massenimport-Auftrag - - - - - filter.bulk_import_job.job_status - Auftragsstatus - - - - - filter.bulk_import_job.part_status_in_job - Bauteile-Status in Auftrag - - - - - filter.bulk_import_job.status.pending - Ausstehend - - - - - filter.bulk_import_job.status.in_progress - In Bearbeitung - - - - - filter.bulk_import_job.status.completed - Abgeschlossen - - - - - filter.bulk_import_job.status.stopped - Angehalten - - - - - filter.bulk_import_job.status.failed - Fehlgeschlagen - - - - - filter.bulk_import_job.part_status.pending - Ausstehend - - - - - filter.bulk_import_job.part_status.completed - Abgeschlossen - - - - - filter.bulk_import_job.part_status.skipped - Übersprungen - - filter.choice_constraint.operator.ANY @@ -10958,12 +10886,6 @@ Element 1 -> Element 1.2 Export als XML - - - part_list.action.export_xlsx - Export als Excel - - parts.import.title @@ -13559,635 +13481,5 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön Min. Vorschaubild-Breite (px) - - - info_providers.bulk_import.step1.title - Massenimport von Datenquellen – Schritt 1 - - - - - info_providers.bulk_import.parts_selected - Bauteile ausgewählt - - - - - info_providers.bulk_import.step1.global_mapping_description - Konfigurieren Sie Feldzuordnungen, die auf alle ausgewählten Teile angewendet werden sollen. Beispiel: „MPN → LCSC + Mouser” bedeutet, dass die Anbieter LCSC und Mouser anhand des MPN-Feldes jedes Teils durchsucht werden. - - - - - info_providers.bulk_import.selected_parts - Ausgewählte Bauteile - - - - - info_providers.bulk_import.field_mappings - Feldzuordnungen - - - - - info_providers.bulk_import.field_mappings_help - Legen Sie fest, welche Bauteilefelder mit welchen Informationsanbietern durchsucht werden sollen. Mehrere Zuordnungen werden kombiniert. - - - - - info_providers.bulk_import.add_mapping - Zuordnung hinzufügen - - - - - info_providers.bulk_import.search_results.title - Suchergebnisse - - - - - info_providers.bulk_import.errors - Fehler - - - - - info_providers.bulk_import.results_found - %count% Ergebnisse gefunden - - - - - info_providers.bulk_import.source_field - Bauteilefeld - - - - - info_providers.bulk_import.view_existing - Existierendes ansehen - - - - - info_providers.bulk_search.search_field - Suchfeld - - - - - info_providers.bulk_search.providers - Datenquellen - - - - - info_providers.bulk_import.actions.label - Aktionen - - - - - info_providers.bulk_search.providers.help - Wählen Sie aus, welche Datenquellen durchsucht werden sollen, wenn Bauteile dieses Feld haben. - - - - - info_providers.bulk_search.submit - Alle Bauteile suchen - - - - - info_providers.bulk_search.field.select - Wählen Sie ein Feld zum Suchen aus - - - - - info_providers.bulk_search.field.mpn - Herstellernummer (MPN) - - - - - info_providers.bulk_search.field.name - Bauteile Name - - - - - part_list.action.action.info_provider - Datenquellen - - - - - part_list.action.bulk_info_provider_import - Massenimport von Datenquellen - - - - - info_providers.bulk_import.step1.spn_recommendation - Lieferantenteilenummer (SPN) wird für bessere Ergebnisse empfohlen. Fügen Sie für jeden Lieferanten eine Zuordnung hinzu, damit dessen SPNs verwendet werden können. - - - - - info_providers.bulk_import.update_part - Bauteil aktualisieren - - - - - info_providers.bulk_import.prefetch_details - Vorabruf der Bauteiledetails - - - - - info_providers.bulk_import.prefetch_details_help - Details für alle Ergebnisse vorab abrufen. Dies dauert zwar länger, beschleunigt jedoch den Arbeitsablauf für die Aktualisierung von Bauteilen. - - - - - info_providers.bulk_import.step2.title - Massenimport von Informationsquellen - - - - - info_providers.bulk_import.step2.card_title - Massenimport für %count% Bauteile – %date% - - - - - info_providers.bulk_import.parts - Bauteile - - - - - info_providers.bulk_import.results - Ergebnisse - - - - - info_providers.bulk_import.created_at - Erstellt am - - - - - info_providers.bulk_import.status.in_progress - In Bearbeitung - - - - - info_providers.bulk_import.status.completed - Abgeschlossen - - - - - info_providers.bulk_import.status.failed - Fehlgeschlagen - - - - - info_providers.bulk_import.table.name - Name - - - - - info_providers.bulk_import.table.description - Beschreibung - - - - - info_providers.bulk_import.table.manufacturer - Hersteller - - - - - info_providers.bulk_import.table.provider - Quelle - - - - - info_providers.bulk_import.table.source_field - Bauteilefeld - - - - - info_providers.bulk_import.back - Zurück - - - - - info_providers.bulk_import.progress - Fortschritt: - - - - - info_providers.bulk_import.status.pending - Ausstehend - - - - - info_providers.bulk_import.completed - abgeschlossen - - - - - info_providers.bulk_import.skipped - übersprungen - - - - - info_providers.bulk_import.mark_completed - Als abgeschlossen markieren - - - - - info_providers.bulk_import.mark_skipped - Als übersprungen markieren - - - - - info_providers.bulk_import.mark_pending - Als ausstehend markieren - - - - - info_providers.bulk_import.skip_reason - Grund des Überspringens - - - - - info_providers.bulk_import.editing_part - Bearbeite Bauteil als Teil des Massenimports - - - - - info_providers.bulk_import.complete - Abgeschlossen - - - - - info_providers.bulk_import.existing_jobs - Existierende Aufträge - - - - - info_providers.bulk_import.job_name - Auftragsname - - - - - info_providers.bulk_import.parts_count - Bauteileanzahl - - - - - info_providers.bulk_import.results_count - Ergebnisanzahl - - - - - info_providers.bulk_import.progress_label - Fortschritt: %current%/%total% - - - - - info_providers.bulk_import.manage_jobs - Massenimportaufträge verwalten - - - - - info_providers.bulk_import.view_results - Ergebnisse anzeigen - - - - - info_providers.bulk_import.status - Status - - - - - info_providers.bulk_import.manage_jobs_description - Alle Ihre Massenimportaufträge anzeigen und verwalten. Um einen neuen Auftrag zu erstellen, wählen Sie Bauteile aus und klicken Sie auf „Massenimport von Informationsanbietern”. - - - - - info_providers.bulk_import.no_jobs_found - Es wurden keine Massenimportaufträge gefunden. - - - - - info_providers.bulk_import.create_first_job - Erstellen Sie Ihren ersten Massenimportauftrag, indem Sie mehrere Bauteile in einer Bauteiletabelle auswählen und die Option „Massenimport aus Informationsanbieter“ auswählen. - - - - - info_providers.bulk_import.confirm_delete_job - Möchten Sie diesen Auftrag wirklich löschen? - - - - - info_providers.bulk_import.job_name_template - Massenimport für %count% Teile - - - - - info_providers.bulk_import.step2.instructions.title - So verwenden Sie den Massenimport - - - - - info_providers.bulk_import.step2.instructions.description - Befolgen Sie diese Schritte, um Ihre Teile effizient zu aktualisieren: - - - - - info_providers.bulk_import.step2.instructions.step1 - Klicken Sie auf „Teil aktualisieren“, um ein Teil aus den Informationsquellen zu aktualisieren. - - - - - info_providers.bulk_import.step2.instructions.step2 - Überprüfen und ändern Sie die Teileinformationen nach Bedarf. Hinweis: Sie müssen zweimal auf „Speichern“ klicken, um die Änderungen zu speichern. - - - - - info_providers.bulk_import.step2.instructions.step3 - Klicken Sie auf „Abgeschlossen“, um den Teil als erledigt zu markieren und zu dieser Übersicht zurückzukehren. - - - - - info_providers.bulk_import.created_by - Erstellt von - - - - - info_providers.bulk_import.completed_at - Abgeschlossen am - - - - - info_providers.bulk_import.action.label - Aktion - - - - - info_providers.bulk_import.action.delete - Löschen - - - - - info_providers.bulk_import.status.active - Aktiv - - - - - info_providers.bulk_import.progress.title - Fortschritt - - - - - info_providers.bulk_import.progress.completed_text - %completed%/%total% abgeschlossen - - - - - info_providers.bulk_import.status.stopped - Angehalten - - - - - info_providers.bulk_import.action.stop - Stop - - - - - info_providers.bulk_import.confirm_stop_job - Sind sie sicher, dass sie diesen Auftrag anhalten wollen? - - - - - part.filter.in_bulk_import_job - Im Massenimport-Auftrag - - - - - part.filter.bulk_import_job_status - Status des Massenimportauftrags - - - - - part.filter.bulk_import_part_status - Status des Bauteils im Massenimport - - - - - part.edit.tab.bulk_import - Massenimportauftrag - - - - - bulk_import.status.pending - Ausstehend - - - - - bulk_import.status.in_progress - In Bearbeitung - - - - - bulk_import.status.completed - Abgeschlossen - - - - - bulk_import.status.stopped - Angehalten - - - - - bulk_import.status.failed - Fehlgeschlagen - - - - - bulk_import.part_status.pending - Ausstehend - - - - - bulk_import.part_status.completed - Abgeschlossen - - - - - bulk_import.part_status.skipped - Übersprungen - - - - - bulk_import.part_status.failed - Fehlgeschlagen - - - - - bulk_info_provider_import_job.label - Massenimport von Informationquellen - - - - - bulk_info_provider_import_job_part.label - Massenimportauftrag Bauteil - - - - - info_providers.bulk_search.priority - Priorität - - - - - info_providers.bulk_search.priority.help - Niedrigere Zahlen = höhere Priorität. Gleiche Priorität = Ergebnisse kombinieren. Unterschiedliche Prioritäten = zuerst die höchste versuchen, bei fehlenden Ergebnissen auf die niedrigere zurückgreifen. - - - - - info_providers.bulk_import.priority_system.title - Prioritätssystem - - - - - info_providers.bulk_import.priority_system.description - Lower numbers = higher priority. Same priority = combine results. Different priorities = try highest first, fallback if no results. - - - - - info_providers.bulk_import.priority_system.example - Beispiel: Priorität 1: „LCSC SPN → LCSC“, Priorität 2: „MPN → LCSC + Mouser“, Priorität 3: „Name → Alle Anbieter“ - - - - - info_providers.bulk_import.search.submit - Datenquellen - - - - - info_providers.bulk_import.research.title - Bauteile erneut suchen - - - - - info_providers.bulk_import.research.description - Erneute Suche nach Teilen unter Verwendung aktualisierter Informationen (z. B. neue MPNs). Verwendet dieselben Feldzuordnungen wie die ursprüngliche Suche. - - - - - info_providers.bulk_import.research.all_pending - Alle ausstehenden Teile erneut suchen - - - - - info_providers.bulk_import.research.part - Erneut suchen - - - - - info_providers.bulk_import.research.part_tooltip - Dieses Bauteil mit aktualisierten Informationen erneut suchen - - - - - info_providers.bulk_import.max_mappings_reached - Maximale Anzahl von Zuordnungen erreicht - - diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index a2ec2f65..b109eb6f 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -9339,6 +9339,12 @@ Element 1 -> Element 1.2 Part Status in Job + + + filter.bulk_import_job.status.any + Any Status + + filter.bulk_import_job.status.pending @@ -9369,6 +9375,12 @@ Element 1 -> Element 1.2 Failed + + + filter.bulk_import_job.part_status.any + Any Part Status + + filter.bulk_import_job.part_status.pending @@ -12392,7 +12404,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.ips.element14.apiKey.help - You can register for an API key on <a href="https://partner.element14.com/">https://partner.element14.com/</a>. + https://partner.element14.com/.]]> @@ -12404,7 +12416,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.ips.element14.storeId.help - The store domain to retrieve the data from. This decides the language and currency of results. See <a href="https://partner.element14.com/docs/Product_Search_API_REST__Description">here</a> for a list of valid domains. + here for a list of valid domains.]]> @@ -12422,7 +12434,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.ips.tme.token.help - You can get an API token and secret on <a href="https://developers.tme.eu/en/">https://developers.tme.eu/en/</a>. + https://developers.tme.eu/en/.]]> @@ -12470,7 +12482,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.ips.mouser.apiKey.help - You can register for an API key on <a href="https://eu.mouser.com/api-hub/">https://eu.mouser.com/api-hub/</a>. + https://eu.mouser.com/api-hub/.]]> @@ -12548,7 +12560,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.system.attachments - Attachments & Files + @@ -12572,7 +12584,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.system.attachments.allowDownloads.help - With this option users can download external files into Part-DB by providing an URL. <b>Attention: This can be a security issue, as it might allow users to access intranet ressources via Part-DB!</b> + Attention: This can be a security issue, as it might allow users to access intranet ressources via Part-DB!]]> @@ -12746,8 +12758,8 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.system.localization.base_currency_description - The currency that is used to store price information and exchange rates in. This currency is assumed, when no currency is set for a price information. -<b>Please note that the currencies are not converted, when changing this value. So changing the default currency after you already added price information, will result in wrong prices!</b> + Please note that the currencies are not converted, when changing this value. So changing the default currency after you already added price information, will result in wrong prices!]]> @@ -12777,7 +12789,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.misc.kicad_eda.category_depth.help - This value determines the depth of the category tree, that is visible inside KiCad. 0 means that only the top level categories are visible. Set to a value > 0 to show more levels. Set to -1, to show all parts of Part-DB inside a sigle cnategory in KiCad. + 0 to show more levels. Set to -1, to show all parts of Part-DB inside a sigle cnategory in KiCad.]]> @@ -12795,7 +12807,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.behavior.sidebar.items.help - The menus which appear at the sidebar by default. Order of items can be changed via drag & drop. + @@ -12843,7 +12855,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.behavior.table.parts_default_columns.help - The columns to show by default in part tables. Order of items can be changed via drag & drop. + @@ -12897,7 +12909,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g settings.ips.oemsecrets.sortMode.M - Completeness & Manufacturer name + @@ -13626,6 +13638,12 @@ Please note, that you can not impersonate a disabled user. If you try you will g Source Field + + + info_providers.bulk_import.create_part + Create Part + + info_providers.bulk_import.view_existing @@ -13692,6 +13710,18 @@ Please note, that you can not impersonate a disabled user. If you try you will g Bulk Info Provider Import + + + info_providers.bulk_import.clear_selections + Clear All Selections + + + + + info_providers.bulk_import.clear_row + Clear this row's selections + + info_providers.bulk_import.step1.spn_recommendation @@ -13794,18 +13824,126 @@ Please note, that you can not impersonate a disabled user. If you try you will g Source Field + + + info_providers.bulk_import.table.action + Action + + + + + info_providers.bulk_import.action.select + Select + + + + + info_providers.bulk_import.action.deselect + Deselect + + + + + info_providers.bulk_import.action.view_details + View Details + + + + + info_providers.bulk_import.no_results + No results found + + + + + info_providers.bulk_import.processing + Processing... + + + + + info_providers.bulk_import.error + Error occurred during import + + + + + info_providers.bulk_import.success + Import completed successfully + + + + + info_providers.bulk_import.partial_success + Import completed with some errors + + + + + info_providers.bulk_import.retry + Retry + + + + + info_providers.bulk_import.cancel + Cancel + + + + + info_providers.bulk_import.confirm + Confirm Import + + info_providers.bulk_import.back Back + + + info_providers.bulk_import.next + Next + + + + + info_providers.bulk_import.finish + Finish + + info_providers.bulk_import.progress Progress: + + + info_providers.bulk_import.time_remaining + Estimated time remaining: %time% + + + + + info_providers.bulk_import.details_modal.title + Part Details + + + + + info_providers.bulk_import.details_modal.close + Close + + + + + info_providers.bulk_import.details_modal.select_this_part + Select This Part + + info_providers.bulk_import.status.pending @@ -14010,6 +14148,24 @@ Please note, that you can not impersonate a disabled user. If you try you will g %completed% / %total% completed + + + info_providers.bulk_import.error.deleting_job + Error deleting job + + + + + info_providers.bulk_import.error.unknown + Unknown error + + + + + info_providers.bulk_import.error.deleting_job_with_details + Error deleting job: %error% + + info_providers.bulk_import.status.stopped @@ -14034,6 +14190,18 @@ Please note, that you can not impersonate a disabled user. If you try you will g In Bulk Import Job + + + part.filter.in_bulk_import_job.yes + Yes + + + + + part.filter.in_bulk_import_job.no + No + + part.filter.bulk_import_job_status @@ -14106,14 +14274,20 @@ Please note, that you can not impersonate a disabled user. If you try you will g Failed - + + filter.operator + Operator + + + + bulk_info_provider_import_job.label Bulk info provider import - + bulk_info_provider_import_job_part.label Bulk Import Job Part @@ -14154,6 +14328,12 @@ Please note, that you can not impersonate a disabled user. If you try you will g Search Providers + + + info_providers.bulk_import.searching + Searching + + info_providers.bulk_import.research.title @@ -14185,7 +14365,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g - + info_providers.bulk_import.max_mappings_reached Maximum number of mappings reached