diff --git a/VERSION b/VERSION
index 42cf0675..15b989e3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.15.2
+1.16.0
diff --git a/composer.lock b/composer.lock
index e2b6eb60..6857910e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -16590,12 +16590,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "70eb886a27427421cf1bd612067810c9fb1cbb5c"
+ "reference": "23b2141a1db97b4e3278510ed9e74a16361619b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/70eb886a27427421cf1bd612067810c9fb1cbb5c",
- "reference": "70eb886a27427421cf1bd612067810c9fb1cbb5c",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/23b2141a1db97b4e3278510ed9e74a16361619b1",
+ "reference": "23b2141a1db97b4e3278510ed9e74a16361619b1",
"shasum": ""
},
"conflict": {
@@ -16934,6 +16934,7 @@
"league/commonmark": "<2.6",
"league/flysystem": "<1.1.4|>=2,<2.1.1",
"league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
+ "leantime/leantime": "<3.3",
"lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
"libreform/libreform": ">=2,<=2.0.8",
"librenms/librenms": "<2017.08.18",
@@ -16958,7 +16959,7 @@
"mantisbt/mantisbt": "<=2.26.3",
"marcwillmann/turn": "<0.3.3",
"matyhtf/framework": "<3.0.6",
- "mautic/core": "<4.4.13|>=5,<5.1.1",
+ "mautic/core": "<4.4.13|>=5.0.0.0-alpha,<5.1.1",
"mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
"maximebf/debugbar": "<1.19",
"mdanter/ecc": "<2",
@@ -17457,7 +17458,7 @@
"type": "tidelift"
}
],
- "time": "2025-02-18T20:05:22+00:00"
+ "time": "2025-02-21T23:05:15+00:00"
},
{
"name": "sebastian/cli-parser",
diff --git a/src/ApiPlatform/NormalizePropertyNameCollectionFactory.php b/src/ApiPlatform/NormalizePropertyNameCollectionFactory.php
index 33a4ef90..c6a8220e 100644
--- a/src/ApiPlatform/NormalizePropertyNameCollectionFactory.php
+++ b/src/ApiPlatform/NormalizePropertyNameCollectionFactory.php
@@ -65,7 +65,7 @@ class NormalizePropertyNameCollectionFactory implements PropertyNameCollectionFa
$camelized = u($property)->camel()->toString();
//If the camelized version exists, remove it from the collection
- $index = array_search($camelized, $properties);
+ $index = array_search($camelized, $properties, true);
if ($index !== false) {
unset($properties[$index]);
}
diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf
index 4c24893c..b17243bc 100644
--- a/translations/messages.de.xlf
+++ b/translations/messages.de.xlf
@@ -779,18 +779,10 @@ Der Benutzer wird alle Zwei-Faktor-Authentifizierungmethoden neu einrichten müs
Löschen
-
-
- Part-DB1\templates\AdminPages\_attachments.html.twig:41
- Part-DB1\templates\Parts\edit\_attachments.html.twig:38
- Part-DB1\templates\Parts\info\_attachments_info.html.twig:35
- Part-DB1\src\DataTables\AttachmentDataTable.php:159
- Part-DB1\templates\Parts\edit\_attachments.html.twig:38
- Part-DB1\src\DataTables\AttachmentDataTable.php:159
-
+
- attachment.external
- Extern
+ attachment.external_only
+ Nur Extern
@@ -805,7 +797,7 @@ Der Benutzer wird alle Zwei-Faktor-Authentifizierungmethoden neu einrichten müs
Thumbnail des Dateianhanges
-
+ Part-DB1\templates\AdminPages\_attachments.html.twig:52Part-DB1\templates\Parts\edit\_attachments.html.twig:50
@@ -815,8 +807,8 @@ Der Benutzer wird alle Zwei-Faktor-Authentifizierungmethoden neu einrichten müs
Part-DB1\templates\Parts\info\_attachments_info.html.twig:45
- attachment.view
- Anzeigen
+ attachment.view_local
+ Lokale Datei anzeigen
@@ -2118,14 +2110,14 @@ Subelemente werden beim Löschen nach oben verschoben.
Vorschaubild
-
+ Part-DB1\templates\Parts\info\_attachments_info.html.twig:67Part-DB1\templates\Parts\info\_attachments_info.html.twig:50
- attachment.download
- Herunterladen
+ attachment.download_local
+ Lokale Datei downloaden
@@ -12319,5 +12311,35 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
Profil gespeichert!
+
+
+ entity.export.flash.error.no_entities
+ Es gibt keine Entitäten zu exportieren!
+
+
+
+
+ attachment.table.internal_file
+ Interne Datei
+
+
+
+
+ attachment.table.external_link
+ Externer link
+
+
+
+
+ attachment.view_external.view_at
+ Auf %host% anzeigen
+
+
+
+
+ attachment.view_external
+ Externe Version anzeigen
+
+
diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf
index 41388de3..276c49f4 100644
--- a/translations/messages.en.xlf
+++ b/translations/messages.en.xlf
@@ -242,7 +242,7 @@
part.info.timetravel_hint
- Please note that this feature is experimental, so the info may not be correct.]]>
+ This is how the part appeared before %timestamp%. <i>Please note that this feature is experimental, so the info may not be correct.</i>
@@ -731,10 +731,10 @@
user.edit.tfa.disable_tfa_message
- all active two-factor authentication methods of the user and delete the backup codes!
-
-The user will have to set up all two-factor authentication methods again and print new backup codes!
-Only do this if you are absolutely sure about the identity of the user (seeking help), otherwise the account could be compromised by an attacker!]]>
+ This will disable <b>all active two-factor authentication methods of the user</b> and delete the <b>backup codes</b>!
+<br>
+The user will have to set up all two-factor authentication methods again and print new backup codes! <br><br>
+<b>Only do this if you are absolutely sure about the identity of the user (seeking help), otherwise the account could be compromised by an attacker!</b>
@@ -885,9 +885,9 @@ The user will have to set up all two-factor authentication methods again and pri
entity.delete.message
-
-Sub elements will be moved upwards.]]>
+ This can not be undone!
+<br>
+Sub elements will be moved upwards.
@@ -1441,7 +1441,7 @@ Sub elements will be moved upwards.]]>
homepage.github.text
- GitHub project page]]>
+ Source, downloads, bug reports, to-do-list etc. can be found on <a href="%href%" class="link-external" target="_blank">GitHub project page</a>
@@ -1463,7 +1463,7 @@ Sub elements will be moved upwards.]]>
homepage.help.text
- GitHub page]]>
+ Help and tips can be found in Wiki the <a href="%href%" class="link-external" target="_blank">GitHub page</a>
@@ -1705,7 +1705,7 @@ Sub elements will be moved upwards.]]>
email.pw_reset.fallback
- %url% and enter the following info]]>
+ If this does not work for you, go to <a href="%url%">%url%</a> and enter the following info
@@ -1735,7 +1735,7 @@ Sub elements will be moved upwards.]]>
email.pw_reset.valid_unit %date%
- %date%.]]>
+ The reset token will be valid until <i>%date%</i>.
@@ -3578,8 +3578,8 @@ Sub elements will be moved upwards.]]>
tfa_google.disable.confirm_message
-
-Also note that without two-factor authentication, your account is no longer as well protected against attackers!]]>
+ If you disable the Authenticator App, all backup codes will be deleted, so you may need to reprint them.<br>
+Also note that without two-factor authentication, your account is no longer as well protected against attackers!
@@ -3599,7 +3599,7 @@ Also note that without two-factor authentication, your account is no longer as w
tfa_google.step.download
- Google Authenticator oder FreeOTP Authenticator)]]>
+ Download an authenticator app (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> oder <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>)
@@ -3841,8 +3841,8 @@ Also note that without two-factor authentication, your account is no longer as w
tfa_trustedDevices.explanation
- all computers here.]]>
+ When checking the second factor, the current computer can be marked as trustworthy, so no more two-factor checks on this computer are needed.
+If you have done this incorrectly or if a computer is no longer trusted, you can reset the status of <i>all </i>computers here.
@@ -5313,7 +5313,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
label_options.lines_mode.help
- Twig documentation and Wiki for more information.]]>
+ If you select Twig here, the content field is interpreted as Twig template. See <a href="https://twig.symfony.com/doc/3.x/templates.html">Twig documentation</a> and <a href="https://docs.part-db.de/usage/labels.html#twig-mode">Wiki</a> for more information.
@@ -9388,25 +9388,25 @@ Element 3
filter.parameter_value_constraint.operator.<
-
+ Typ. Value <filter.parameter_value_constraint.operator.>
- ]]>
+ Typ. Value >filter.parameter_value_constraint.operator.<=
-
+ Typ. Value <=filter.parameter_value_constraint.operator.>=
- =]]>
+ Typ. Value >=
@@ -9514,7 +9514,7 @@ Element 3
parts_list.search.searching_for
- %keyword%]]>
+ Searching parts with keyword <b>%keyword%</b>
@@ -10174,13 +10174,13 @@ Element 3
project.builds.number_of_builds_possible
- %max_builds% builds of this project.]]>
+ You have enough stocked to build <b>%max_builds%</b> builds of this project.project.builds.check_project_status
- "%project_status%". You should check if you really want to build the project with this status!]]>
+ The current project status is <b>"%project_status%"</b>. You should check if you really want to build the project with this status!
@@ -10282,7 +10282,7 @@ Element 3
entity.select.add_hint
- to create nested structures, e.g. "Node 1->Node 1.1"]]>
+ Use -> to create nested structures, e.g. "Node 1->Node 1.1"
@@ -10306,13 +10306,13 @@ Element 3
homepage.first_steps.introduction
- documentation or start to creating the following data structures:]]>
+ Your database is still empty. You might want to read the <a href="%url%">documentation</a> or start to creating the following data structures:homepage.first_steps.create_part
- create a new part.]]>
+ Or you can directly <a href="%url%">create a new part</a>.
@@ -10324,7 +10324,7 @@ Element 3
homepage.forum.text
- discussion forum]]>
+ For questions about Part-DB use the <a href="%href%" class="link-external" target="_blank">discussion forum</a>
@@ -10978,7 +10978,7 @@ Element 3
parts.import.help_documentation
- documentation for more information on the file format.]]>
+ See the <a href="%link%">documentation</a> for more information on the file format.
@@ -11158,7 +11158,7 @@ Element 3
part.filter.lessThanDesired
-
+ In stock less than desired (total amount < min. amount)
@@ -11970,13 +11970,13 @@ Please note, that you can not impersonate a disabled user. If you try you will g
part.merge.confirm.title
- %other% into %target%?]]>
+ Do you really want to merge <b>%other%</b> into <b>%target%</b>?part.merge.confirm.message
- %other% will be deleted, and the part will be saved with the shown information.]]>
+ <b>%other%</b> will be deleted, and the part will be saved with the shown information.
@@ -12322,25 +12322,25 @@ Please note, that you can not impersonate a disabled user. If you try you will g
-
+ attachment.table.internal_fileInternal file
-
+ attachment.table.external_linkExternal link
-
+ attachment.view_external.view_atView at %host%
-
+ attachment.view_externalView external version
diff --git a/yarn.lock b/yarn.lock
index 7c0b8ac5..e87cf3c8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2085,9 +2085,9 @@
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
"@types/node@*":
- version "22.13.4"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.4.tgz#3fe454d77cd4a2d73c214008b3e331bfaaf5038a"
- integrity sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==
+ version "22.13.5"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.5.tgz#23add1d71acddab2c6a4d31db89c0f98d330b511"
+ integrity sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==
dependencies:
undici-types "~6.20.0"
@@ -2629,7 +2629,7 @@ cacache@^15.0.5:
tar "^6.0.2"
unique-filename "^1.1.1"
-call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1:
+call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
@@ -3501,9 +3501,9 @@ duplexer@^0.1.2:
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
electron-to-chromium@^1.5.73:
- version "1.5.102"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz#81a452ace8e2c3fa7fba904ea4fed25052c53d3f"
- integrity sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==
+ version "1.5.103"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.103.tgz#3d02025bc16e96e5edb3ed3ffa2538a11ae682dc"
+ integrity sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA==
emoji-regex@^7.0.1:
version "7.0.3"
@@ -3639,7 +3639,7 @@ es-module-lexer@^1.2.1:
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21"
integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==
-es-object-atoms@^1.0.0:
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
@@ -3933,16 +3933,16 @@ get-caller-file@^2.0.1:
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044"
- integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
dependencies:
- call-bind-apply-helpers "^1.0.1"
+ call-bind-apply-helpers "^1.0.2"
es-define-property "^1.0.1"
es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
+ es-object-atoms "^1.1.1"
function-bind "^1.1.2"
- get-proto "^1.0.0"
+ get-proto "^1.0.1"
gopd "^1.2.0"
has-symbols "^1.1.0"
hasown "^2.0.2"