diff --git a/src/i18n/en.json b/src/i18n/en.json index 4ca6c0e..834bbf6 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -40,6 +40,7 @@ "file_save_confirm": "Do you want to save the following file:", "file_save_error": "Could not save file.", "file_save_success": "File saved.", + "file_overwrite_confirm": "File already exists. Overwrite?", "file_upload_error": "Could not upload file.", "file_upload_success": "File uploaded.", "filename": "Filename", diff --git a/src/ifm.js b/src/ifm.js index e47b637..767f192 100644 --- a/src/ifm.js +++ b/src/ifm.js @@ -1,3 +1,13 @@ +// Shows the download dialogue +window.confirmDownload = function(event, el) { + event.preventDefault(); + var filename = el.getAttribute('data-filename') || ''; + var msg = filename ? 'Are you sure to download "' + filename + '"?' : 'Start download?'; + if (window.confirm(msg)) { + window.location.href = el.getAttribute('href'); + } + return false; +} /** * IFM constructor * @@ -511,9 +521,19 @@ function IFM(params) { form.addEventListener( 'click', function( e ) { if( e.target.id == "buttonSave" ) { e.preventDefault(); - self.saveFile( document.querySelector( '#formFile input[name=filename]' ).value, self.editor.getValue() ); - self.isModalClosedByButton = true; - self.hideModal(); + let filename = document.querySelector( '#formFile input[name=filename]' ).value; + let exists = self.fileCache.map(x => x.name).indexOf(filename) !== -1; + if (exists) { + if (window.confirm(self.i18n.file_overwrite_confirm || 'Die Datei existiert bereits. Überschreiben?')) { + self.saveFile(filename, self.editor.getValue()); + self.isModalClosedByButton = true; + self.hideModal(); + } + } else { + self.saveFile(filename, self.editor.getValue()); + self.isModalClosedByButton = true; + self.hideModal(); + } } else if( e.target.id == "buttonSaveNotClose" ) { e.preventDefault(); self.saveFile( document.querySelector( '#formFile input[name=filename]' ).value, self.editor.getValue() ); diff --git a/src/templates/filetable.html b/src/templates/filetable.html index 6921868..c958d18 100644 --- a/src/templates/filetable.html +++ b/src/templates/filetable.html @@ -14,7 +14,14 @@ {{#config.download}} - + {{#type}} + {{#isDir}} + + {{/isDir}} + {{^isDir}} + + {{/isDir}} + {{/type}} {{/config.download}} {{#config.showlastmodified}}