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:
@@ -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",
|
||||
|
@@ -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",
|
||||
|
40
src/ifm.js
40
src/ifm.js
@@ -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
|
||||
*/
|
||||
|
@@ -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;
|
||||
|
||||
|
15
src/templates/modal.uploadconfirmoverwrite.html
Normal file
15
src/templates/modal.uploadconfirmoverwrite.html
Normal 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>
|
Reference in New Issue
Block a user