diff --git a/index.html b/index.html
index 478cac5..97f4b02 100644
--- a/index.html
+++ b/index.html
@@ -199,6 +199,14 @@
+
diff --git a/js/common/dialogs.js b/js/common/dialogs.js
index 74bb077..1b71b90 100644
--- a/js/common/dialogs.js
+++ b/js/common/dialogs.js
@@ -241,6 +241,26 @@ class MessageModal extends GenericModal {
}
}
+class InputModal extends GenericModal {
+ _handleOkButton(event) {
+ this._returnValue(this._getElement('inputValueField').value);
+ }
+
+ async open(message, defaultValue="") {
+ let p = super.open();
+ const cancelButton = this._currentModal.querySelector("button.cancel-button");
+ this._addDialogElement('cancelButton', cancelButton, 'click', this._closeModal);
+ const okButton = this._currentModal.querySelector("button.ok-button");
+ this._addDialogElement('okButton', okButton, 'click', this._handleOkButton);
+ const inputValueField = this._currentModal.querySelector("#inputvalue");
+ this._addDialogElement('inputValueField', inputValueField);
+ this._setElementValue('inputValueField', defaultValue);
+ this._currentModal.querySelector("#message").innerHTML = message;
+
+ return p;
+ }
+}
+
class ProgressDialog extends GenericModal {
async open() {
let p = super.open();
@@ -424,5 +444,6 @@ export {
UnsavedDialog,
DiscoveryModal,
ProgressDialog,
- DeviceInfoModal
+ DeviceInfoModal,
+ InputModal
};
\ No newline at end of file
diff --git a/js/common/file_dialog.js b/js/common/file_dialog.js
index 3e05266..b96b609 100644
--- a/js/common/file_dialog.js
+++ b/js/common/file_dialog.js
@@ -1,4 +1,4 @@
-import {GenericModal, ProgressDialog, ButtonValueDialog} from './dialogs.js';
+import {GenericModal, ProgressDialog, ButtonValueDialog, InputModal} from './dialogs.js';
import {readUploadedFileAsArrayBuffer} from './utilities.js';
import {saveAs} from 'file-saver';
import JSZip from 'jszip';
@@ -321,6 +321,11 @@ class FileDialog extends GenericModal {
return selectedItems > 1;
}
+ async _prompt(message, defaultValue="") {
+ const inputModal = new InputModal("input");
+ return await inputModal.open(message, defaultValue);
+ }
+
_updateToolbar() {
this._setElementEnabled('delButton', this._canPerformWritableFileOperation());
this._setElementEnabled('renameButton', !this._multipleItemsSelected() && this._canPerformWritableFileOperation());
@@ -653,7 +658,8 @@ class FileDialog extends GenericModal {
return;
}
oldName = oldName[0];
- let newName = prompt("Enter a new folder name", oldName);
+ let newName = await this._prompt("Enter a new name", oldName);
+
// If cancelled, do nothing
if (!newName) {
return;
@@ -688,7 +694,7 @@ class FileDialog extends GenericModal {
async _handleNewFolderButton() {
if (this._readOnlyMode) return;
// prompt for new folder name
- let folderName = prompt("Enter a new folder name");
+ let folderName = await this._prompt("Enter a new folder name");
// If cancelled, do nothing
if (!folderName) {
return;
diff --git a/package-lock.json b/package-lock.json
index 74421cf..16d3732 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,12 +9,11 @@
"version": "0.0.0",
"dependencies": {
"@adafruit/ble-file-transfer-js": "adafruit/ble-file-transfer-js#1.0.4",
- "@adafruit/circuitpython-repl-js": "adafruit/circuitpython-repl-js#3.2.4",
+ "@adafruit/circuitpython-repl-js": "adafruit/circuitpython-repl-js#3.2.5",
"@codemirror/lang-python": "^6.2.1",
"@fortawesome/fontawesome-free": "^7.1.0",
- "@rollup/rollup-linux-x64-gnu": "4.54.0",
- "@xterm/addon-fit": "^0.10.0",
- "@xterm/addon-web-links": "^0.11.0",
+ "@xterm/addon-fit": "^0.11.0",
+ "@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^5.5.0",
"chart.js": "^4.5.1",
"codemirror": "^6.0.2",
@@ -41,7 +40,8 @@
},
"node_modules/@adafruit/circuitpython-repl-js": {
"version": "3.2.4",
- "resolved": "git+ssh://git@github.com/adafruit/circuitpython-repl-js.git#1bd2db05082d245afeb17bb1ffb2d66b7833f1ce",
+ "resolved": "git+ssh://git@github.com/adafruit/circuitpython-repl-js.git#1d14bb66f89853d23584668d403b464af6bc890d",
+ "integrity": "sha512-fbqARP9IXm0L0PzeR6WVPulhD32oHYI4Pj5iJaFyqAgDLLGJIUJjtDhDnkVfwzO0D8wYFMi1UTXo5JenYzpKRw==",
"license": "MIT"
},
"node_modules/@codemirror/autocomplete": {
@@ -1247,29 +1247,22 @@
"license": "MIT"
},
"node_modules/@xterm/addon-fit": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz",
- "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==",
- "license": "MIT",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.11.0.tgz",
+ "integrity": "sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g==",
+ "license": "MIT"
},
"node_modules/@xterm/addon-web-links": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-web-links/-/addon-web-links-0.11.0.tgz",
- "integrity": "sha512-nIHQ38pQI+a5kXnRaTgwqSHnX7KE6+4SVoceompgHL26unAxdfP6IPqUTSYPQgSwM56hsElfoNrrW5V7BUED/Q==",
- "license": "MIT",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@xterm/addon-web-links/-/addon-web-links-0.12.0.tgz",
+ "integrity": "sha512-4Smom3RPyVp7ZMYOYDoC/9eGJJJqYhnPLGGqJ6wOBfB8VxPViJNSKdgRYb8NpaM6YSelEKbA2SStD7lGyqaobw==",
+ "license": "MIT"
},
"node_modules/@xterm/xterm": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
"integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==",
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/asynckit": {
"version": "0.4.0",
diff --git a/package.json b/package.json
index e94e115..5ff5ff0 100644
--- a/package.json
+++ b/package.json
@@ -15,11 +15,11 @@
},
"dependencies": {
"@adafruit/ble-file-transfer-js": "adafruit/ble-file-transfer-js#1.0.4",
- "@adafruit/circuitpython-repl-js": "adafruit/circuitpython-repl-js#3.2.4",
+ "@adafruit/circuitpython-repl-js": "adafruit/circuitpython-repl-js#3.2.5",
"@codemirror/lang-python": "^6.2.1",
"@fortawesome/fontawesome-free": "^7.1.0",
- "@xterm/addon-fit": "^0.10.0",
- "@xterm/addon-web-links": "^0.11.0",
+ "@xterm/addon-fit": "^0.11.0",
+ "@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^5.5.0",
"chart.js": "^4.5.1",
"codemirror": "^6.0.2",