diff --git a/packages/modules/file-uploader/package.json b/packages/modules/file-uploader/package.json index ce73af28f8..d9b4aa1a08 100644 --- a/packages/modules/file-uploader/package.json +++ b/packages/modules/file-uploader/package.json @@ -1,7 +1,7 @@ { "name": "@mendix/file-uploader", "moduleName": "File Uploader module", - "version": "2.4.2", + "version": "2.5.0", "copyright": "© Mendix Technology BV 2025. All rights reserved.", "license": "Apache-2.0", "private": true, diff --git a/packages/pluggableWidgets/file-uploader-web/CHANGELOG.md b/packages/pluggableWidgets/file-uploader-web/CHANGELOG.md index 4da6ae9129..9ca4c7658a 100644 --- a/packages/pluggableWidgets/file-uploader-web/CHANGELOG.md +++ b/packages/pluggableWidgets/file-uploader-web/CHANGELOG.md @@ -6,25 +6,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## [2.5.0] - 2026-06-24 + ### Fixed - We fixed an issue where validation errors could not be dismissed and persisted after uploading a valid file. - We fixed an issue where the dropzone turned grey without explanation when the file limit was reached. A message now appears below the dropzone stating "Maximum file count of X reached." + - We fixed an issue where dropping more files than allowed rejected the entire batch. Only the excess files are now rejected; the rest upload normally. + - We fixed an issue where files rejected due to the total file limit had no way to recover. They now show a retry button that becomes enabled when capacity is available. ### Added - We added a new "Maximum concurrent uploads" property to control how many files upload simultaneously. Files beyond this limit wait in a queue and upload automatically as slots free up. + - We added a new "File limit reached" text property to customize the message shown when the upload limit is reached. + - We added a new "Upload queued" text property to customize the message shown on files that are waiting to upload. + - We added a new "Retry button" text property to customize the tooltip on the retry button shown on rejected files. ### Changed - The "Maximum number of files" property is now optional. Leaving it empty or setting it to 0 means unlimited files are allowed. The default behavior is now unlimited (no cap). + - Files now upload in a queue rather than being marked as errors when too many are dropped at once. Queued files show a "Waiting..." state while they wait for a concurrent slot. + - Files in the list are now ordered with successful uploads above rejected files. ## [2.4.2] - 2026-04-23 diff --git a/packages/pluggableWidgets/file-uploader-web/package.json b/packages/pluggableWidgets/file-uploader-web/package.json index 145b9f840f..1ebc5ad775 100644 --- a/packages/pluggableWidgets/file-uploader-web/package.json +++ b/packages/pluggableWidgets/file-uploader-web/package.json @@ -1,7 +1,7 @@ { "name": "@mendix/file-uploader-web", "widgetName": "FileUploader", - "version": "2.4.2", + "version": "2.5.0", "description": "Upload files via drag-and-drop or file dialog. Supports multiple file uploads and image preview thumbnails.", "copyright": "© Mendix Technology BV 2025. All rights reserved.", "license": "Apache-2.0", @@ -19,7 +19,8 @@ "packagePath": "com.mendix.widget.web", "marketplace": { "minimumMXVersion": "10.22.0.68245", - "appName": "File Uploader" + "appName": "File Uploader", + "appNumber": 235351 }, "testProject": { "githubUrl": "https://github.com/mendix/testProjects", @@ -28,6 +29,7 @@ "scripts": { "add-nf-defaults": "node nf-defaults.mjs add", "build": "pluggable-widgets-tools build:web", + "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "echo \"Skipping this e2e test\"", diff --git a/packages/pluggableWidgets/file-uploader-web/src/package.xml b/packages/pluggableWidgets/file-uploader-web/src/package.xml index 40bbc01825..c1c2e27fb6 100644 --- a/packages/pluggableWidgets/file-uploader-web/src/package.xml +++ b/packages/pluggableWidgets/file-uploader-web/src/package.xml @@ -1,6 +1,6 @@ - + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 518715ab69..237e589eae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -388,7 +388,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 11.11.0 - version: 11.11.0(patch_hash=bb9cc00a197b74e954d35983c6c1fd892a250083c7a610e5fc5437797fff573b)(@jest/transform@30.3.0)(@jest/types@30.4.1)(@swc/core@1.15.41)(@types/babel__core@7.20.5)(@types/node@24.12.4)(canvas@3.2.3)(eslint@9.39.4(jiti@2.6.1))(jest-util@30.4.1)(prettier@3.8.4)(react-dom@18.3.1(react@18.3.1))(react-native@0.86.0(@babel/core@7.29.7)(@types/react@19.2.17)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 11.11.0(patch_hash=bb9cc00a197b74e954d35983c6c1fd892a250083c7a610e5fc5437797fff573b)(@jest/transform@30.3.0)(@jest/types@30.4.1)(@swc/core@1.15.41)(@types/babel__core@7.20.5)(@types/node@24.12.4)(canvas@3.2.3)(eslint@9.39.4(jiti@2.6.1))(jest-util@30.4.1)(picomatch@4.0.4)(prettier@3.8.4)(react-dom@18.3.1(react@18.3.1))(react-native@0.86.0(@babel/core@7.29.7)(@types/react@19.2.17)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1686,7 +1686,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 11.11.0 - version: 11.11.0(patch_hash=bb9cc00a197b74e954d35983c6c1fd892a250083c7a610e5fc5437797fff573b)(@jest/transform@30.3.0)(@jest/types@30.4.1)(@swc/core@1.15.41)(@types/babel__core@7.20.5)(@types/node@24.12.4)(canvas@3.2.3)(eslint@9.39.4(jiti@2.6.1))(jest-util@30.4.1)(picomatch@4.0.4)(prettier@3.8.4)(react-dom@18.3.1(react@18.3.1))(react-native@0.86.0(@babel/core@7.29.7)(@types/react@19.2.17)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 11.11.0(patch_hash=bb9cc00a197b74e954d35983c6c1fd892a250083c7a610e5fc5437797fff573b)(@jest/transform@30.3.0)(@jest/types@30.4.1)(@swc/core@1.15.41)(@types/babel__core@7.20.5)(@types/node@24.12.4)(canvas@3.2.3)(eslint@9.39.4(jiti@2.6.1))(jest-util@30.4.1)(prettier@3.8.4)(react-dom@18.3.1(react@18.3.1))(react-native@0.86.0(@babel/core@7.29.7)(@types/react@19.2.17)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1843,10 +1843,10 @@ importers: version: 0.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) brandi: specifier: ^5.0.0 - version: 5.0.0 + version: 5.1.0 brandi-react: specifier: ^5.0.0 - version: 5.0.0(brandi@5.0.0)(react@18.3.1) + version: 5.1.0(brandi@5.1.0)(react@18.3.1) classnames: specifier: ^2.5.1 version: 2.5.1