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/ui
File: searchbutton.js
/**
[0] Fix | Delete
* @class elFinder toolbar search button widget.
[1] Fix | Delete
*
[2] Fix | Delete
* @author Dmitry (dio) Levashov
[3] Fix | Delete
**/
[4] Fix | Delete
jQuery.fn.elfindersearchbutton = function(cmd) {
[5] Fix | Delete
"use strict";
[6] Fix | Delete
return this.each(function() {
[7] Fix | Delete
var result = false,
[8] Fix | Delete
fm = cmd.fm,
[9] Fix | Delete
disabled = fm.res('class', 'disabled'),
[10] Fix | Delete
isopts = cmd.options.incsearch || { enable: false },
[11] Fix | Delete
sTypes = cmd.options.searchTypes,
[12] Fix | Delete
id = function(name){return fm.namespace + fm.escape(name);},
[13] Fix | Delete
toolbar= fm.getUI('toolbar'),
[14] Fix | Delete
btnCls = fm.res('class', 'searchbtn'),
[15] Fix | Delete
button = jQuery(this)
[16] Fix | Delete
.hide()
[17] Fix | Delete
.addClass('ui-widget-content elfinder-button '+btnCls)
[18] Fix | Delete
.on('click', function(e) {
[19] Fix | Delete
e.stopPropagation();
[20] Fix | Delete
}),
[21] Fix | Delete
getMenuOffset = function() {
[22] Fix | Delete
var fmNode = fm.getUI(),
[23] Fix | Delete
baseOffset = fmNode.offset(),
[24] Fix | Delete
buttonOffset = button.offset();
[25] Fix | Delete
return {
[26] Fix | Delete
top : buttonOffset.top - baseOffset.top,
[27] Fix | Delete
maxHeight : fmNode.height() - 40
[28] Fix | Delete
};
[29] Fix | Delete
},
[30] Fix | Delete
search = function() {
[31] Fix | Delete
input.data('inctm') && clearTimeout(input.data('inctm'));
[32] Fix | Delete
var val = jQuery.trim(input.val()),
[33] Fix | Delete
from = !jQuery('#' + id('SearchFromAll')).prop('checked'),
[34] Fix | Delete
mime = jQuery('#' + id('SearchMime')).prop('checked'),
[35] Fix | Delete
type = '';
[36] Fix | Delete
if (from) {
[37] Fix | Delete
if (jQuery('#' + id('SearchFromVol')).prop('checked')) {
[38] Fix | Delete
from = fm.root(fm.cwd().hash);
[39] Fix | Delete
} else {
[40] Fix | Delete
from = fm.cwd().hash;
[41] Fix | Delete
}
[42] Fix | Delete
}
[43] Fix | Delete
if (mime) {
[44] Fix | Delete
mime = val;
[45] Fix | Delete
val = '.';
[46] Fix | Delete
}
[47] Fix | Delete
if (typeSet) {
[48] Fix | Delete
type = typeSet.children('input:checked').val();
[49] Fix | Delete
}
[50] Fix | Delete
if (val) {
[51] Fix | Delete
input.trigger('focus');
[52] Fix | Delete
cmd.exec(val, from, mime, type).done(function() {
[53] Fix | Delete
result = true;
[54] Fix | Delete
}).fail(function() {
[55] Fix | Delete
abort();
[56] Fix | Delete
});
[57] Fix | Delete
[58] Fix | Delete
} else {
[59] Fix | Delete
fm.trigger('searchend');
[60] Fix | Delete
}
[61] Fix | Delete
},
[62] Fix | Delete
abort = function() {
[63] Fix | Delete
input.data('inctm') && clearTimeout(input.data('inctm'));
[64] Fix | Delete
input.val('').trigger('blur');
[65] Fix | Delete
if (result || incVal) {
[66] Fix | Delete
result = false;
[67] Fix | Delete
incVal = '';
[68] Fix | Delete
fm.lazy(function() {
[69] Fix | Delete
fm.trigger('searchend');
[70] Fix | Delete
});
[71] Fix | Delete
}
[72] Fix | Delete
},
[73] Fix | Delete
incVal = '',
[74] Fix | Delete
input = jQuery('<input type="text" size="42"/>')
[75] Fix | Delete
.on('focus', function() {
[76] Fix | Delete
// close other menus
[77] Fix | Delete
!button.hasClass('ui-state-active') && fm.getUI().click();
[78] Fix | Delete
inFocus = true;
[79] Fix | Delete
incVal = '';
[80] Fix | Delete
button.addClass('ui-state-active');
[81] Fix | Delete
fm.trigger('uiresize');
[82] Fix | Delete
opts && opts.css(getMenuOffset()).slideDown(function() {
[83] Fix | Delete
// Care for on browser window re-active
[84] Fix | Delete
button.addClass('ui-state-active');
[85] Fix | Delete
fm.toFront(opts);
[86] Fix | Delete
});
[87] Fix | Delete
})
[88] Fix | Delete
.on('blur', function() {
[89] Fix | Delete
inFocus = false;
[90] Fix | Delete
if (opts) {
[91] Fix | Delete
if (!opts.data('infocus')) {
[92] Fix | Delete
opts.slideUp(function() {
[93] Fix | Delete
button.removeClass('ui-state-active');
[94] Fix | Delete
fm.trigger('uiresize');
[95] Fix | Delete
fm.toHide(opts);
[96] Fix | Delete
});
[97] Fix | Delete
} else {
[98] Fix | Delete
opts.data('infocus', false);
[99] Fix | Delete
}
[100] Fix | Delete
} else {
[101] Fix | Delete
button.removeClass('ui-state-active');
[102] Fix | Delete
}
[103] Fix | Delete
})
[104] Fix | Delete
.appendTo(button)
[105] Fix | Delete
// to avoid fm shortcuts on arrows
[106] Fix | Delete
.on('keypress', function(e) {
[107] Fix | Delete
e.stopPropagation();
[108] Fix | Delete
})
[109] Fix | Delete
.on('keydown', function(e) {
[110] Fix | Delete
e.stopPropagation();
[111] Fix | Delete
if (e.keyCode === jQuery.ui.keyCode.ENTER) {
[112] Fix | Delete
search();
[113] Fix | Delete
} else if (e.keyCode === jQuery.ui.keyCode.ESCAPE) {
[114] Fix | Delete
e.preventDefault();
[115] Fix | Delete
abort();
[116] Fix | Delete
}
[117] Fix | Delete
}),
[118] Fix | Delete
opts, typeSet, cwdReady, inFocus;
[119] Fix | Delete
[120] Fix | Delete
if (isopts.enable) {
[121] Fix | Delete
isopts.minlen = isopts.minlen || 2;
[122] Fix | Delete
isopts.wait = isopts.wait || 500;
[123] Fix | Delete
input
[124] Fix | Delete
.attr('title', fm.i18n('incSearchOnly'))
[125] Fix | Delete
.on('compositionstart', function() {
[126] Fix | Delete
input.data('composing', true);
[127] Fix | Delete
})
[128] Fix | Delete
.on('compositionend', function() {
[129] Fix | Delete
input.removeData('composing');
[130] Fix | Delete
input.trigger('input'); // for IE, edge
[131] Fix | Delete
})
[132] Fix | Delete
.on('input', function() {
[133] Fix | Delete
if (! input.data('composing')) {
[134] Fix | Delete
input.data('inctm') && clearTimeout(input.data('inctm'));
[135] Fix | Delete
input.data('inctm', setTimeout(function() {
[136] Fix | Delete
var val = input.val();
[137] Fix | Delete
if (val.length === 0 || val.length >= isopts.minlen) {
[138] Fix | Delete
(incVal !== val) && fm.trigger('incsearchstart', {
[139] Fix | Delete
query: val,
[140] Fix | Delete
type: typeSet? typeSet.children('input:checked').val() : 'searchName'
[141] Fix | Delete
});
[142] Fix | Delete
incVal = val;
[143] Fix | Delete
if (val === '' && fm.searchStatus.state > 1 && fm.searchStatus.query) {
[144] Fix | Delete
input.val(fm.searchStatus.query).trigger('select');
[145] Fix | Delete
}
[146] Fix | Delete
}
[147] Fix | Delete
}, isopts.wait));
[148] Fix | Delete
}
[149] Fix | Delete
});
[150] Fix | Delete
[151] Fix | Delete
if (fm.UA.ltIE8) {
[152] Fix | Delete
input.on('keydown', function(e) {
[153] Fix | Delete
if (e.keyCode === 229) {
[154] Fix | Delete
input.data('imetm') && clearTimeout(input.data('imetm'));
[155] Fix | Delete
input.data('composing', true);
[156] Fix | Delete
input.data('imetm', setTimeout(function() {
[157] Fix | Delete
input.removeData('composing');
[158] Fix | Delete
}, 100));
[159] Fix | Delete
}
[160] Fix | Delete
})
[161] Fix | Delete
.on('keyup', function(e) {
[162] Fix | Delete
input.data('imetm') && clearTimeout(input.data('imetm'));
[163] Fix | Delete
if (input.data('composing')) {
[164] Fix | Delete
e.keyCode === jQuery.ui.keyCode.ENTER && input.trigger('compositionend');
[165] Fix | Delete
} else {
[166] Fix | Delete
input.trigger('input');
[167] Fix | Delete
}
[168] Fix | Delete
});
[169] Fix | Delete
}
[170] Fix | Delete
}
[171] Fix | Delete
[172] Fix | Delete
jQuery('<span class="ui-icon ui-icon-search" title="'+cmd.title+'"></span>')
[173] Fix | Delete
.appendTo(button)
[174] Fix | Delete
.on('mousedown', function(e) {
[175] Fix | Delete
e.stopPropagation();
[176] Fix | Delete
e.preventDefault();
[177] Fix | Delete
if (button.hasClass('ui-state-active')) {
[178] Fix | Delete
search();
[179] Fix | Delete
} else {
[180] Fix | Delete
input.trigger('focus');
[181] Fix | Delete
}
[182] Fix | Delete
});
[183] Fix | Delete
[184] Fix | Delete
jQuery('<span class="ui-icon ui-icon-close"></span>')
[185] Fix | Delete
.appendTo(button)
[186] Fix | Delete
.on('mousedown', function(e) {
[187] Fix | Delete
e.stopPropagation();
[188] Fix | Delete
e.preventDefault();
[189] Fix | Delete
if (input.val() === '' && !button.hasClass('ui-state-active')) {
[190] Fix | Delete
input.trigger('focus');
[191] Fix | Delete
} else {
[192] Fix | Delete
abort();
[193] Fix | Delete
}
[194] Fix | Delete
});
[195] Fix | Delete
[196] Fix | Delete
// wait when button will be added to DOM
[197] Fix | Delete
fm.bind('toolbarload', function(){
[198] Fix | Delete
var parent = button.parent();
[199] Fix | Delete
if (parent.length) {
[200] Fix | Delete
toolbar.prepend(button.show());
[201] Fix | Delete
parent.remove();
[202] Fix | Delete
// position icons for ie7
[203] Fix | Delete
if (fm.UA.ltIE7) {
[204] Fix | Delete
var icon = button.children(fm.direction == 'ltr' ? '.ui-icon-close' : '.ui-icon-search');
[205] Fix | Delete
icon.css({
[206] Fix | Delete
right : '',
[207] Fix | Delete
left : parseInt(button.width())-icon.outerWidth(true)
[208] Fix | Delete
});
[209] Fix | Delete
}
[210] Fix | Delete
}
[211] Fix | Delete
});
[212] Fix | Delete
[213] Fix | Delete
fm
[214] Fix | Delete
.one('init', function() {
[215] Fix | Delete
fm.getUI('cwd').on('touchstart click', function() {
[216] Fix | Delete
inFocus && input.trigger('blur');
[217] Fix | Delete
});
[218] Fix | Delete
})
[219] Fix | Delete
.one('open', function() {
[220] Fix | Delete
opts = (fm.api < 2.1)? null : jQuery('<div class="ui-front ui-widget ui-widget-content elfinder-button-menu elfinder-button-search-menu ui-corner-all"></div>')
[221] Fix | Delete
.append(
[222] Fix | Delete
jQuery('<div class="buttonset"></div>')
[223] Fix | Delete
.append(
[224] Fix | Delete
jQuery('<input id="'+id('SearchFromCwd')+'" name="serchfrom" type="radio" checked="checked"/><label for="'+id('SearchFromCwd')+'">'+fm.i18n('btnCwd')+'</label>'),
[225] Fix | Delete
jQuery('<input id="'+id('SearchFromVol')+'" name="serchfrom" type="radio"/><label for="'+id('SearchFromVol')+'">'+fm.i18n('btnVolume')+'</label>'),
[226] Fix | Delete
jQuery('<input id="'+id('SearchFromAll')+'" name="serchfrom" type="radio"/><label for="'+id('SearchFromAll')+'">'+fm.i18n('btnAll')+'</label>')
[227] Fix | Delete
),
[228] Fix | Delete
jQuery('<div class="buttonset elfinder-search-type"></div>')
[229] Fix | Delete
.append(
[230] Fix | Delete
jQuery('<input id="'+id('SearchName')+'" name="serchcol" type="radio" checked="checked" value="SearchName"/><label for="'+id('SearchName')+'">'+fm.i18n('btnFileName')+'</label>')
[231] Fix | Delete
)
[232] Fix | Delete
)
[233] Fix | Delete
.hide()
[234] Fix | Delete
.appendTo(fm.getUI());
[235] Fix | Delete
if (opts) {
[236] Fix | Delete
if (sTypes) {
[237] Fix | Delete
typeSet = opts.find('.elfinder-search-type');
[238] Fix | Delete
jQuery.each(cmd.options.searchTypes, function(i, v) {
[239] Fix | Delete
typeSet.append(jQuery('<input id="'+id(i)+'" name="serchcol" type="radio" value="'+fm.escape(i)+'"/><label for="'+id(i)+'">'+fm.i18n(v.name)+'</label>'));
[240] Fix | Delete
});
[241] Fix | Delete
}
[242] Fix | Delete
opts.find('div.buttonset').buttonset();
[243] Fix | Delete
jQuery('#'+id('SearchFromAll')).next('label').attr('title', fm.i18n('searchTarget', fm.i18n('btnAll')));
[244] Fix | Delete
if (sTypes) {
[245] Fix | Delete
jQuery.each(sTypes, function(i, v) {
[246] Fix | Delete
if (v.title) {
[247] Fix | Delete
jQuery('#'+id(i)).next('label').attr('title', fm.i18n(v.title));
[248] Fix | Delete
}
[249] Fix | Delete
});
[250] Fix | Delete
}
[251] Fix | Delete
opts.on('mousedown', 'div.buttonset', function(e){
[252] Fix | Delete
e.stopPropagation();
[253] Fix | Delete
opts.data('infocus', true);
[254] Fix | Delete
})
[255] Fix | Delete
.on('click', 'input', function(e) {
[256] Fix | Delete
e.stopPropagation();
[257] Fix | Delete
jQuery.trim(input.val())? search() : input.trigger('focus');
[258] Fix | Delete
})
[259] Fix | Delete
.on('close', function() {
[260] Fix | Delete
input.trigger('blur');
[261] Fix | Delete
});
[262] Fix | Delete
}
[263] Fix | Delete
})
[264] Fix | Delete
.bind('searchend', function() {
[265] Fix | Delete
input.val('');
[266] Fix | Delete
})
[267] Fix | Delete
.bind('open parents', function() {
[268] Fix | Delete
var dirs = [],
[269] Fix | Delete
volroot = fm.file(fm.root(fm.cwd().hash));
[270] Fix | Delete
[271] Fix | Delete
if (volroot) {
[272] Fix | Delete
jQuery.each(fm.parents(fm.cwd().hash), function(i, hash) {
[273] Fix | Delete
dirs.push(fm.file(hash).name);
[274] Fix | Delete
});
[275] Fix | Delete
[276] Fix | Delete
jQuery('#'+id('SearchFromCwd')).next('label').attr('title', fm.i18n('searchTarget', dirs.join(fm.option('separator'))));
[277] Fix | Delete
jQuery('#'+id('SearchFromVol')).next('label').attr('title', fm.i18n('searchTarget', volroot.name));
[278] Fix | Delete
}
[279] Fix | Delete
})
[280] Fix | Delete
.bind('open', function() {
[281] Fix | Delete
incVal && abort();
[282] Fix | Delete
})
[283] Fix | Delete
.bind('cwdinit', function() {
[284] Fix | Delete
cwdReady = false;
[285] Fix | Delete
})
[286] Fix | Delete
.bind('cwdrender',function() {
[287] Fix | Delete
cwdReady = true;
[288] Fix | Delete
})
[289] Fix | Delete
.bind('keydownEsc', function() {
[290] Fix | Delete
if (incVal && incVal.substr(0, 1) === '/') {
[291] Fix | Delete
incVal = '';
[292] Fix | Delete
input.val('');
[293] Fix | Delete
fm.trigger('searchend');
[294] Fix | Delete
}
[295] Fix | Delete
})
[296] Fix | Delete
.shortcut({
[297] Fix | Delete
pattern : 'ctrl+f f3',
[298] Fix | Delete
description : cmd.title,
[299] Fix | Delete
callback : function() {
[300] Fix | Delete
input.trigger('select').trigger('focus');
[301] Fix | Delete
}
[302] Fix | Delete
})
[303] Fix | Delete
.shortcut({
[304] Fix | Delete
pattern : 'a b c d e f g h i j k l m n o p q r s t u v w x y z dig0 dig1 dig2 dig3 dig4 dig5 dig6 dig7 dig8 dig9 num0 num1 num2 num3 num4 num5 num6 num7 num8 num9',
[305] Fix | Delete
description : fm.i18n('firstLetterSearch'),
[306] Fix | Delete
callback : function(e) {
[307] Fix | Delete
if (! cwdReady) { return; }
[308] Fix | Delete
[309] Fix | Delete
var code = e.originalEvent.keyCode,
[310] Fix | Delete
next = function() {
[311] Fix | Delete
var sel = fm.selected(),
[312] Fix | Delete
key = jQuery.ui.keyCode[(!sel.length || fm.cwdHash2Elm(sel[0]).next('[id]').length)? 'RIGHT' : 'HOME'];
[313] Fix | Delete
jQuery(document).trigger(jQuery.Event('keydown', { keyCode: key, ctrlKey : false, shiftKey : false, altKey : false, metaKey : false }));
[314] Fix | Delete
},
[315] Fix | Delete
val;
[316] Fix | Delete
if (code >= 96 && code <= 105) {
[317] Fix | Delete
code -= 48;
[318] Fix | Delete
}
[319] Fix | Delete
val = '/' + String.fromCharCode(code);
[320] Fix | Delete
if (incVal !== val) {
[321] Fix | Delete
input.val(val);
[322] Fix | Delete
incVal = val;
[323] Fix | Delete
fm
[324] Fix | Delete
.trigger('incsearchstart', { query: val })
[325] Fix | Delete
.one('cwdrender', next);
[326] Fix | Delete
} else{
[327] Fix | Delete
next();
[328] Fix | Delete
}
[329] Fix | Delete
}
[330] Fix | Delete
});
[331] Fix | Delete
[332] Fix | Delete
});
[333] Fix | Delete
};
[334] Fix | Delete
[335] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function