1
0
mirror of https://github.com/misterunknown/ifm.git synced 2025-08-12 19:13:57 +02:00

improved extraction file dialog

This commit is contained in:
Marco Dickert
2017-06-28 10:22:29 +02:00
parent bb7adf6850
commit e2bafe919b
2 changed files with 30 additions and 28 deletions

29
ifm.php
View File

@@ -854,24 +854,25 @@ function IFM() {
}; };
this.extractFileDialog = function(name) { this.extractFileDialog = function(name) {
var fuckWorkarounds=""; var targetDirSuggestion="";
if(name.lastIndexOf(".") > 1) if(name.lastIndexOf(".") > 1)
fuckWorkarounds = name.substr(0,name.length-4); targetDirSuggestion = name.substr(0,name.length-4);
else fuckWorkarounds = name; else targetDirSuggestion = name;
self.showModal( '<div class="modal-body">\ self.showModal( '<form id="extractFile"><fieldset>\
<form id="extractFile">\ <div class="modal-body">\
<fieldset>\
<label>Extract '+name+' to:</label>\ <label>Extract '+name+' to:</label>\
<button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', 0);ifm.hideModal();return false;">here</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation" checked="checked"></span><span class="form-control">./</span></div>\
<button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', 1);ifm.hideModal();return false;">'+fuckWorkarounds+'/</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation"></span><span class="form-control">./'+targetDirSuggestion+'</span></div>\
<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Cancel</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation"></span><input type="text" class="form-control" placeholder="custom location" value=""></div>\
</fieldset>\ </div>\
</form>\ <div class="modal-footer">\
</div>'); <button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', \'\');ifm.hideModal();return false;">extract</button>\
<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">cancel</button>\
</div>\
</fieldset></form>');
}; };
this.extractFile = function(name, t) { this.extractFile = function(name, t) {
var td = (t == 1)? name.substr(0,name.length-4) : "";
$.ajax({ $.ajax({
url: self.IFM_SCFN, url: self.IFM_SCFN,
type: "POST", type: "POST",
@@ -879,7 +880,7 @@ function IFM() {
api: "extractFile", api: "extractFile",
dir: self.currentDir, dir: self.currentDir,
filename: name, filename: name,
targetdir: td targetdir: t
}), }),
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {

View File

@@ -386,24 +386,25 @@ function IFM() {
}; };
this.extractFileDialog = function(name) { this.extractFileDialog = function(name) {
var fuckWorkarounds=""; var targetDirSuggestion="";
if(name.lastIndexOf(".") > 1) if(name.lastIndexOf(".") > 1)
fuckWorkarounds = name.substr(0,name.length-4); targetDirSuggestion = name.substr(0,name.length-4);
else fuckWorkarounds = name; else targetDirSuggestion = name;
self.showModal( '<div class="modal-body">\ self.showModal( '<form id="extractFile"><fieldset>\
<form id="extractFile">\ <div class="modal-body">\
<fieldset>\
<label>Extract '+name+' to:</label>\ <label>Extract '+name+' to:</label>\
<button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', 0);ifm.hideModal();return false;">here</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation" value="./" checked="checked"></span><span class="form-control">./</span></div>\
<button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', 1);ifm.hideModal();return false;">'+fuckWorkarounds+'/</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation" value="./'+targetDirSuggestion+'"></span><span class="form-control">./'+targetDirSuggestion+'</span></div>\
<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Cancel</button>\ <div class="input-group"><span class="input-group-addon"><input type="radio" name="extractTargetLocation" value="custom"></span><input type="text" class="form-control" placeholder="custom location" value=""></div>\
</fieldset>\ </div>\
</form>\ <div class="modal-footer">\
</div>'); <button type="button" class="btn btn-default" onclick="ifm.extractFile(\''+ifm.JSEncode(name)+'\', \'\');ifm.hideModal();return false;">extract</button>\
<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">cancel</button>\
</div>\
</fieldset></form>');
}; };
this.extractFile = function(name, t) { this.extractFile = function(name, t) {
var td = (t == 1)? name.substr(0,name.length-4) : "";
$.ajax({ $.ajax({
url: self.IFM_SCFN, url: self.IFM_SCFN,
type: "POST", type: "POST",
@@ -411,7 +412,7 @@ function IFM() {
api: "extractFile", api: "extractFile",
dir: self.currentDir, dir: self.currentDir,
filename: name, filename: name,
targetdir: td targetdir: t
}), }),
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {