Skip to content

Commit 7c043c7

Browse files
authored
Merge pull request #98 from arduino/feature/overwrite-alerts
Overwrite alerts
2 parents 44270ff + 62101a7 commit 7c043c7

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

ui/arduino2/main.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,4 +552,5 @@ button.small .icon {
552552
border-radius: none;
553553
height: 100%;
554554
background: rgba(255, 255, 255, 0.5);
555+
font-family: inherit;
555556
}

ui/arduino2/store.js

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,31 @@ async function store(state, emitter) {
752752
log('upload-files')
753753
state.isTransferring = true
754754
emitter.emit('render')
755+
756+
// Check which files will be overwritten on the board
757+
const willOverwrite = await checkOverwrite({
758+
source: 'board',
759+
fileNames: state.selectedFiles.map(f => f.fileName),
760+
parentPath: serial.getFullPath(
761+
state.boardNavigationRoot,
762+
state.boardNavigationPath,
763+
''
764+
),
765+
})
766+
767+
if (willOverwrite.length > 0) {
768+
let message = `You are about to overwrite the following files/folders on your board:\n\n`
769+
willOverwrite.forEach(f => message += `${f.fileName}\n`)
770+
message += `\n`
771+
message += `Are you sure you want to proceed?`
772+
const confirmAction = confirm(message, 'Cancel', 'Yes')
773+
if (!confirmAction) {
774+
state.isTransferring = false
775+
emitter.emit('render')
776+
return
777+
}
778+
}
779+
755780
for (let i in state.selectedFiles) {
756781
const file = state.selectedFiles[i]
757782
const srcPath = disk.getFullPath(
@@ -793,6 +818,30 @@ async function store(state, emitter) {
793818
state.isTransferring = true
794819
emitter.emit('render')
795820

821+
// Check which files will be overwritten on the disk
822+
const willOverwrite = await checkOverwrite({
823+
source: 'disk',
824+
fileNames: state.selectedFiles.map(f => f.fileName),
825+
parentPath: disk.getFullPath(
826+
state.diskNavigationRoot,
827+
state.diskNavigationPath,
828+
''
829+
),
830+
})
831+
832+
if (willOverwrite.length > 0) {
833+
let message = `You are about to overwrite the following files/folders on your disk:\n\n`
834+
willOverwrite.forEach(f => message += `${f.fileName}\n`)
835+
message += `\n`
836+
message += `Are you sure you want to proceed?`
837+
const confirmAction = confirm(message, 'Cancel', 'Yes')
838+
if (!confirmAction) {
839+
state.isTransferring = false
840+
emitter.emit('render')
841+
return
842+
}
843+
}
844+
796845
for (let i in state.selectedFiles) {
797846
const file = state.selectedFiles[i]
798847
const srcPath = serial.getFullPath(
@@ -971,7 +1020,7 @@ async function checkOverwrite({ fileNames = [], parentPath, source }) {
9711020
let files = []
9721021
let overwrite = []
9731022
if (source === 'board') {
974-
files = getBoardFiles(parentPath)
1023+
files = await getBoardFiles(parentPath)
9751024
} else {
9761025
files = await getDiskFiles(parentPath)
9771026
}

0 commit comments

Comments
 (0)