1
0
mirror of https://github.com/misterunknown/ifm.git synced 2025-08-09 17:46:31 +02:00

Add hint before overwrite files

Signed-off-by: Marco Dickert <marco@misterunknown.de>
This commit is contained in:
Marco Dickert
2020-08-04 21:13:57 +02:00
parent e014781af4
commit f0b647c2b9
5 changed files with 57 additions and 5 deletions

View File

@@ -102,6 +102,8 @@
"upload": "Hochladen",
"upload_drop": "Dateien zum hochladen hier ablegen",
"upload_file": "Datei hochladen",
"upload_overwrite_hint": "Die folgenden Dateien würden überschrieben:",
"upload_overwrite_confirm": "Sollen die Dateien dennoch hochgeladen werden?",
"upload_remote": "Hochladen von ausserhalb",
"upload_remote_url": "Entfernte URL zum hochladen",
"username": "Benutzername",

View File

@@ -103,6 +103,8 @@
"upload": "Upload",
"upload_drop": "Drop files to upload",
"upload_file": "Upload File",
"upload_overwrite_hint": "The following files would be overwritten:",
"upload_overwrite_confirm": "Upload anyway?",
"upload_remote": "Remote Upload",
"upload_remote_url": "Remote Upload URL",
"username": "Username",

View File

@@ -951,13 +951,23 @@ function IFM(params) {
form.addEventListener( 'click', function( e ) {
if( e.target.id == 'buttonUpload' ) {
e.preventDefault();
var newfilename = form.elements.newfilename.value;
var files = Array.prototype.slice.call( form.elements.files.files );
if( files.length > 1 )
files.forEach( function( file ) {
self.uploadFile( file );
});
var existing_files = [];
if (files.length > 1)
existing_files = files.map(x => x.name).filter(item => self.fileCache.map(x => x.name).includes(item));
else
self.uploadFile( files[0], form.elements.newfilename.value );
existing_files = self.fileCache.map(x => x.name).includes(newfilename);
if (existing_files.length > 0)
self.showUploadConfirmOverwrite(files, existing_files, newfilename);
else {
if (files.length == 1)
self.uploadFile(files[0], newfilename);
else
files.forEach( function( file ) {
self.uploadFile( file );
});
}
self.hideModal();
} else if( e.target.id == 'buttonCancel' ) {
e.preventDefault();
@@ -966,6 +976,26 @@ function IFM(params) {
});
};
this.showUploadConfirmOverwrite = function(files, existing_files, newfilename="") {
self.showModal(Mustache.render(self.templates.uploadconfirmoverwrite, {files: existing_files, i18n: self.i18n}));
var form = document.forms.formUploadConfirmOverwrite;
form.addEventListener('click', function(e) {
if (e.target.id == "buttonConfirm") {
e.preventDefault();
if (files.length == 1)
self.uploadFile(files[0], newfilename);
else
files.forEach(function(file) {
self.uploadFile(file);
});
self.hideModal();
} else if (e.target.id == 'buttonCancel') {
e.preventDefault();
self.hideModal();
}
});
};
/**
* Uploads a file
*/

View File

@@ -176,6 +176,9 @@ f00bar;
f00bar;
$templates['uploadfile'] = <<<'f00bar'
@@@file:src/templates/modal.uploadfile.html@@@
f00bar;
$templates['uploadconfirmoverwrite'] = <<<'f00bar'
@@@file:src/templates/modal.uploadconfirmoverwrite.html@@@
f00bar;
$this->templates = $templates;

View File

@@ -0,0 +1,15 @@
<form id="formUploadConfirmOverwrite">
<div class="modal-body">
{{i18n.upload_overwrite_hint}}
<ul>
{{#files}}
<li>{{.}}</li>
{{/files}}
</ul>
{{i18n.upload_overwrite_confirm}}
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="buttonConfirm">{{i18n.upload}}</button>
<button class="btn btn-danger" id="buttonCancel">{{i18n.cancel}}</button>
</div>
</form>