Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/js/commands
File: open.js
/**
[0] Fix | Delete
* @class elFinder command "open"
[1] Fix | Delete
* Enter folder or open files in new windows
[2] Fix | Delete
*
[3] Fix | Delete
* @author Dmitry (dio) Levashov
[4] Fix | Delete
**/
[5] Fix | Delete
(elFinder.prototype.commands.open = function() {
[6] Fix | Delete
"use strict";
[7] Fix | Delete
var fm = this.fm,
[8] Fix | Delete
self = this;
[9] Fix | Delete
this.alwaysEnabled = true;
[10] Fix | Delete
this.noChangeDirOnRemovedCwd = true;
[11] Fix | Delete
[12] Fix | Delete
this._handlers = {
[13] Fix | Delete
dblclick : function(e) {
[14] Fix | Delete
var arg = e.data && e.data.file? [ e.data.file ]: void(0);
[15] Fix | Delete
if (self.getstate(arg) === 0) {
[16] Fix | Delete
e.preventDefault();
[17] Fix | Delete
fm.exec('open', arg);
[18] Fix | Delete
}
[19] Fix | Delete
},
[20] Fix | Delete
'select enable disable reload' : function(e) { this.update(e.type == 'disable' ? -1 : void(0)); }
[21] Fix | Delete
};
[22] Fix | Delete
[23] Fix | Delete
this.shortcuts = [{
[24] Fix | Delete
pattern : 'ctrl+down numpad_enter'+(fm.OS != 'mac' && ' enter')
[25] Fix | Delete
}];
[26] Fix | Delete
[27] Fix | Delete
this.getstate = function(select) {
[28] Fix | Delete
var sel = this.files(select),
[29] Fix | Delete
cnt = sel.length,
[30] Fix | Delete
filter = function(files) {
[31] Fix | Delete
var fres = true;
[32] Fix | Delete
return jQuery.grep(files, function(file) {
[33] Fix | Delete
fres = fres && file.mime == 'directory' || ! file.read ? false : true;
[34] Fix | Delete
return fres;
[35] Fix | Delete
});
[36] Fix | Delete
};
[37] Fix | Delete
[38] Fix | Delete
return cnt == 1
[39] Fix | Delete
? (sel[0].read ? 0 : -1)
[40] Fix | Delete
: (cnt && !fm.UA.Mobile) ? (jQuery.grep(sel, function(file) { return file.mime == 'directory' || ! file.read ? false : true;}).length == cnt ? 0 : -1) : -1;
[41] Fix | Delete
};
[42] Fix | Delete
[43] Fix | Delete
this.exec = function(hashes, cOpts) {
[44] Fix | Delete
var dfrd = jQuery.Deferred().fail(function(error) { error && fm.error(error); }),
[45] Fix | Delete
files = this.files(hashes),
[46] Fix | Delete
cnt = files.length,
[47] Fix | Delete
thash = (typeof cOpts == 'object')? cOpts.thash : false,
[48] Fix | Delete
opts = this.options,
[49] Fix | Delete
into = opts.into || 'window',
[50] Fix | Delete
file, url, s, w, imgW, imgH, winW, winH, reg, link, html5dl, inline,
[51] Fix | Delete
selAct, cmd;
[52] Fix | Delete
[53] Fix | Delete
if (!cnt && !thash) {
[54] Fix | Delete
{
[55] Fix | Delete
return dfrd.reject();
[56] Fix | Delete
}
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
// open folder
[60] Fix | Delete
if (thash || (cnt == 1 && (file = files[0]) && file.mime == 'directory')) {
[61] Fix | Delete
if (!thash && file && !file.read) {
[62] Fix | Delete
return dfrd.reject(['errOpen', file.name, 'errPerm']);
[63] Fix | Delete
} else {
[64] Fix | Delete
if (fm.keyState.ctrlKey && (fm.keyState.shiftKey || typeof fm.options.getFileCallback !== 'function')) {
[65] Fix | Delete
if (fm.getCommand('opennew')) {
[66] Fix | Delete
return fm.exec('opennew', [thash? thash : file.hash]);
[67] Fix | Delete
}
[68] Fix | Delete
}
[69] Fix | Delete
[70] Fix | Delete
return fm.request({
[71] Fix | Delete
data : {cmd : 'open', target : thash || file.hash},
[72] Fix | Delete
notify : {type : 'open', cnt : 1, hideCnt : true},
[73] Fix | Delete
syncOnFail : true,
[74] Fix | Delete
lazy : false
[75] Fix | Delete
});
[76] Fix | Delete
}
[77] Fix | Delete
}
[78] Fix | Delete
[79] Fix | Delete
files = jQuery.grep(files, function(file) { return file.mime != 'directory' ? true : false; });
[80] Fix | Delete
[81] Fix | Delete
// nothing to open or files and folders selected - do nothing
[82] Fix | Delete
if (cnt != files.length) {
[83] Fix | Delete
return dfrd.reject();
[84] Fix | Delete
}
[85] Fix | Delete
[86] Fix | Delete
var doOpen = function() {
[87] Fix | Delete
var openCB = function(url) {
[88] Fix | Delete
var link = jQuery('<a rel="noopener">').hide().appendTo(jQuery('body'));
[89] Fix | Delete
if (fm.UA.Mobile || !inline) {
[90] Fix | Delete
if (html5dl) {
[91] Fix | Delete
if (!inline) {
[92] Fix | Delete
link.attr('download', file.name);
[93] Fix | Delete
} else {
[94] Fix | Delete
link.attr('target', '_blank');
[95] Fix | Delete
}
[96] Fix | Delete
link.attr('href', url).get(0).click();
[97] Fix | Delete
} else {
[98] Fix | Delete
wnd = window.open(url);
[99] Fix | Delete
if (!wnd) {
[100] Fix | Delete
return dfrd.reject('errPopup');
[101] Fix | Delete
}
[102] Fix | Delete
}
[103] Fix | Delete
} else {
[104] Fix | Delete
getOnly = (typeof opts.method === 'string' && opts.method.toLowerCase() === 'get');
[105] Fix | Delete
if (!getOnly
[106] Fix | Delete
&& url.indexOf(fm.options.url) === 0
[107] Fix | Delete
&& fm.customData
[108] Fix | Delete
&& Object.keys(fm.customData).length
[109] Fix | Delete
// Since playback by POST request can not be done in Chrome, media allows GET request
[110] Fix | Delete
&& !file.mime.match(/^(?:video|audio)/)
[111] Fix | Delete
) {
[112] Fix | Delete
// Send request as 'POST' method to hide custom data at location bar
[113] Fix | Delete
url = '';
[114] Fix | Delete
}
[115] Fix | Delete
if (into === 'window') {
[116] Fix | Delete
// set window size for image if set
[117] Fix | Delete
imgW = winW = Math.round(2 * screen.availWidth / 3);
[118] Fix | Delete
imgH = winH = Math.round(2 * screen.availHeight / 3);
[119] Fix | Delete
if (parseInt(file.width) && parseInt(file.height)) {
[120] Fix | Delete
imgW = parseInt(file.width);
[121] Fix | Delete
imgH = parseInt(file.height);
[122] Fix | Delete
} else if (file.dim) {
[123] Fix | Delete
s = file.dim.split('x');
[124] Fix | Delete
imgW = parseInt(s[0]);
[125] Fix | Delete
imgH = parseInt(s[1]);
[126] Fix | Delete
}
[127] Fix | Delete
if (winW >= imgW && winH >= imgH) {
[128] Fix | Delete
winW = imgW;
[129] Fix | Delete
winH = imgH;
[130] Fix | Delete
} else {
[131] Fix | Delete
if ((imgW - winW) > (imgH - winH)) {
[132] Fix | Delete
winH = Math.round(imgH * (winW / imgW));
[133] Fix | Delete
} else {
[134] Fix | Delete
winW = Math.round(imgW * (winH / imgH));
[135] Fix | Delete
}
[136] Fix | Delete
}
[137] Fix | Delete
w = 'width='+winW+',height='+winH;
[138] Fix | Delete
wnd = window.open(url, target, w + ',top=50,left=50,scrollbars=yes,resizable=yes,titlebar=no');
[139] Fix | Delete
} else {
[140] Fix | Delete
if (into === 'tabs') {
[141] Fix | Delete
target = file.hash;
[142] Fix | Delete
}
[143] Fix | Delete
wnd = window.open('about:blank', target);
[144] Fix | Delete
}
[145] Fix | Delete
[146] Fix | Delete
if (!wnd) {
[147] Fix | Delete
return dfrd.reject('errPopup');
[148] Fix | Delete
}
[149] Fix | Delete
[150] Fix | Delete
if (url === '') {
[151] Fix | Delete
var form = document.createElement("form");
[152] Fix | Delete
form.action = fm.options.url;
[153] Fix | Delete
form.method = 'POST';
[154] Fix | Delete
form.target = target;
[155] Fix | Delete
form.style.display = 'none';
[156] Fix | Delete
var params = Object.assign({}, fm.customData, {
[157] Fix | Delete
cmd: 'file',
[158] Fix | Delete
target: file.hash,
[159] Fix | Delete
_t: file.ts || parseInt(+new Date()/1000)
[160] Fix | Delete
});
[161] Fix | Delete
jQuery.each(params, function(key, val)
[162] Fix | Delete
{
[163] Fix | Delete
var input = document.createElement("input");
[164] Fix | Delete
input.name = key;
[165] Fix | Delete
input.value = val;
[166] Fix | Delete
form.appendChild(input);
[167] Fix | Delete
});
[168] Fix | Delete
[169] Fix | Delete
document.body.appendChild(form);
[170] Fix | Delete
form.submit();
[171] Fix | Delete
} else if (into !== 'window') {
[172] Fix | Delete
wnd.location = url;
[173] Fix | Delete
}
[174] Fix | Delete
jQuery(wnd).trigger('focus');
[175] Fix | Delete
}
[176] Fix | Delete
link.remove();
[177] Fix | Delete
},
[178] Fix | Delete
wnd, target, getOnly;
[179] Fix | Delete
[180] Fix | Delete
try {
[181] Fix | Delete
reg = new RegExp(fm.option('dispInlineRegex'), 'i');
[182] Fix | Delete
} catch(e) {
[183] Fix | Delete
reg = false;
[184] Fix | Delete
}
[185] Fix | Delete
[186] Fix | Delete
// open files
[187] Fix | Delete
html5dl = (typeof jQuery('<a>').get(0).download === 'string');
[188] Fix | Delete
cnt = files.length;
[189] Fix | Delete
while (cnt--) {
[190] Fix | Delete
target = 'elf_open_window';
[191] Fix | Delete
file = files[cnt];
[192] Fix | Delete
[193] Fix | Delete
if (!file.read) {
[194] Fix | Delete
return dfrd.reject(['errOpen', file.name, 'errPerm']);
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
inline = (reg && file.mime.match(reg));
[198] Fix | Delete
fm.openUrl(file.hash, !inline, openCB);
[199] Fix | Delete
}
[200] Fix | Delete
return dfrd.resolve(hashes);
[201] Fix | Delete
};
[202] Fix | Delete
[203] Fix | Delete
if (cnt > 1) {
[204] Fix | Delete
fm.confirm({
[205] Fix | Delete
title: 'openMulti',
[206] Fix | Delete
text : ['openMultiConfirm', cnt + ''],
[207] Fix | Delete
accept : {
[208] Fix | Delete
label : 'cmdopen',
[209] Fix | Delete
callback : function() { doOpen(); }
[210] Fix | Delete
},
[211] Fix | Delete
cancel : {
[212] Fix | Delete
label : 'btnCancel',
[213] Fix | Delete
callback : function() {
[214] Fix | Delete
dfrd.reject();
[215] Fix | Delete
}
[216] Fix | Delete
},
[217] Fix | Delete
buttons : (fm.getCommand('zipdl') && fm.isCommandEnabled('zipdl', fm.cwd().hash))? [
[218] Fix | Delete
{
[219] Fix | Delete
label : 'cmddownload',
[220] Fix | Delete
callback : function() {
[221] Fix | Delete
fm.exec('download', hashes);
[222] Fix | Delete
dfrd.reject();
[223] Fix | Delete
}
[224] Fix | Delete
}
[225] Fix | Delete
] : []
[226] Fix | Delete
});
[227] Fix | Delete
} else {
[228] Fix | Delete
selAct = fm.storage('selectAction') || opts.selectAction;
[229] Fix | Delete
if (selAct) {
[230] Fix | Delete
jQuery.each(selAct.split('/'), function() {
[231] Fix | Delete
var cmdName = this.valueOf();
[232] Fix | Delete
if (cmdName !== 'open' && (cmd = fm.getCommand(cmdName)) && cmd.enabled()) {
[233] Fix | Delete
return false;
[234] Fix | Delete
}
[235] Fix | Delete
cmd = null;
[236] Fix | Delete
});
[237] Fix | Delete
if (cmd) {
[238] Fix | Delete
return fm.exec(cmd.name);
[239] Fix | Delete
}
[240] Fix | Delete
}
[241] Fix | Delete
doOpen();
[242] Fix | Delete
}
[243] Fix | Delete
[244] Fix | Delete
return dfrd;
[245] Fix | Delete
};
[246] Fix | Delete
[247] Fix | Delete
}).prototype = { forceLoad : true }; // this is required command
[248] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function