diff --git a/css/elfinder.full.css b/css/elfinder.full.css index 9f1a3a65f..927fd29e9 100644 --- a/css/elfinder.full.css +++ b/css/elfinder.full.css @@ -1,6 +1,6 @@ /*! * elFinder - file manager for web - * Version 2.1.9 (2.1-src Nightly: 6fce215) (2016-03-17) + * Version 2.1.9 (2.1-src Nightly: 0df9f09) (2016-03-19) * http://elfinder.org * * Copyright 2009-2016, Studio 42 diff --git a/css/elfinder.min.css b/css/elfinder.min.css index 6de00d5da..7f404a8d3 100644 --- a/css/elfinder.min.css +++ b/css/elfinder.min.css @@ -1,6 +1,6 @@ /*! * elFinder - file manager for web - * Version 2.1.9 (2.1-src Nightly: 6fce215) (2016-03-17) + * Version 2.1.9 (2.1-src Nightly: 0df9f09) (2016-03-19) * http://elfinder.org * * Copyright 2009-2016, Studio 42 diff --git a/js/elfinder.full.js b/js/elfinder.full.js index c79eb0555..0c48db867 100644 --- a/js/elfinder.full.js +++ b/js/elfinder.full.js @@ -1,6 +1,6 @@ /*! * elFinder - file manager for web - * Version 2.1.9 (2.1-src Nightly: 6fce215) (2016-03-17) + * Version 2.1.9 (2.1-src Nightly: 0df9f09) (2016-03-19) * http://elfinder.org * * Copyright 2009-2016, Studio 42 @@ -1179,6 +1179,9 @@ window.elFinder = function(node, opts) { this.returnBytes = function(val) { var last; if (isNaN(val)) { + if (! val) { + val = ''; + } // for ex. 1mb, 1KB val = val.replace(/b$/i, ''); last = val.charAt(val.length - 1).toLowerCase(); @@ -4878,7 +4881,7 @@ if (!Object.keys) { * * @type String **/ -elFinder.prototype.version = '2.1.9 (2.1-src Nightly: 6fce215)'; +elFinder.prototype.version = '2.1.9 (2.1-src Nightly: 0df9f09)'; @@ -11247,7 +11250,7 @@ elFinder.prototype.commands.archive = function() { } self.mime = mime; - self.prefix = ((cnt > 1)? 'Archive' : files[0].name) + '.' + fm.option('archivers')['createext'][mime]; + self.prefix = ((cnt > 1)? 'Archive' : files[0].name) + (fm.option('archivers')['createext']? '.' + fm.option('archivers')['createext'][mime] : ''); self.data = {targets : self.hashes(hashes), type : mime}; makeDfrd = $.proxy(fm.res('mixin', 'make'), self)(); dfrd.reject(); @@ -11685,7 +11688,8 @@ elFinder.prototype.commands.download = function() { zipOn = false, filter = function(hashes) { var mixed = false, - croot = ''; + croot = '', + api21 = (fm.api > 2); if (fm.searchStatus.state > 1 && fm.searchStatus.target === '') { hashes = $.map(hashes, function(h) { @@ -11697,12 +11701,12 @@ elFinder.prototype.commands.download = function() { return false; } }); - zipOn = (!mixed && fm.command('zipdl') && fm.isCommandEnabled('zipdl', croot)); + zipOn = (api21 && !mixed && fm.command('zipdl') && fm.isCommandEnabled('zipdl', croot)); } else { if (!fm.isCommandEnabled('download', hashes[0])) { return []; } - zipOn = (fm.command('zipdl') && fm.isCommandEnabled('zipdl', hashes[0])); + zipOn = (api21 && fm.command('zipdl') && fm.isCommandEnabled('zipdl', hashes[0])); } return (!zipOn)? @@ -11720,7 +11724,7 @@ elFinder.prototype.commands.download = function() { var sel = this.hashes(sel), cnt = sel.length, maxReq = this.options.maxRequests || 10, - czipdl = fm.command('zipdl'), + czipdl = (fm.api > 2)? fm.command('zipdl') : null, mixed = false, croot = ''; @@ -12388,7 +12392,11 @@ elFinder.prototype.commands.extract = function() { // Update mimes list on open/reload fm.bind('open reload', function() { mimes = fm.option('archivers')['extract'] || []; - self.variants = [['makedir', fm.i18n('cmdmkdir')], ['intohere', fm.i18n('btnCwd')]]; + if (fm.api > 2) { + self.variants = [['makedir', fm.i18n('cmdmkdir')], ['intohere', fm.i18n('btnCwd')]]; + } else { + self.variants = [['intohere', fm.i18n('btnCwd')]]; + } self.change(); }); diff --git a/js/elfinder.min.js b/js/elfinder.min.js index 6d72c928c..5cc8e369e 100644 --- a/js/elfinder.min.js +++ b/js/elfinder.min.js @@ -1,16 +1,16 @@ /*! * elFinder - file manager for web - * Version 2.1.9 (2.1-src Nightly: 6fce215) (2016-03-17) + * Version 2.1.9 (2.1-src Nightly: 0df9f09) (2016-03-19) * http://elfinder.org * * Copyright 2009-2016, Studio 42 * Licensed under a 3 clauses BSD license */ -!function(e){window.elFinder=function(t,n){var i,a,r,o=this,t=e(t),s=e("
").append(t.contents()),l=t.attr("style"),d=t.attr("id")||"",c="elfinder-"+(d||Math.random().toString().substr(2,7)),u="mousedown."+c,p="keydown."+c,h="keypress."+c,f=!0,m=!0,g="",v={path:"",url:"",tmbUrl:"",disabled:[],separator:"/",archives:[],extract:[],copyOverwrite:!0,uploadOverwrite:!0,uploadMaxSize:0,jpgQuality:100,tmb:!1},b={},y=[],w={},k={},x=[],C=[],T=[],I=new o.command(o),F="auto",S=400,M="./sounds/",P=e(document.createElement("audio")).hide().appendTo("body")[0],O="",D=function(t){var n,i,a={},r={};o.api>=2.1?(o.commandMap=t.options.uiCmdMap&&Object.keys(t.options.uiCmdMap).length?t.options.uiCmdMap:{},O!==JSON.stringify(o.commandMap)&&(O=JSON.stringify(o.commandMap),Object.keys(o.commandMap).length&&(i=o.getUI("contextmenu"),i.data("cmdMaps")||i.data("cmdMaps",{}),n=t.cwd?t.cwd.volumeid:null,n&&!i.data("cmdMaps")[n]&&(i.data("cmdMaps")[n]=o.commandMap)))):o.options.sync=0,t.init?b={}:(e.each(Object.keys(b),function(t,n){var i="directory"===b[n].mime,s=b[n].phash;o.res("class","navcollapse"),(!i||a[s]||!r[s]&&e("#"+o.navHash2Id(b[n].hash)).is(":hidden")&&e("#"+o.navHash2Id(s)).next(".elfinder-navbar-subtree").children().length>100)&&(i||s===g)&&-1===e.inArray(n,C)?(i&&!a[s]&&(a[s]=!0),delete b[n]):i&&(r[s]=!0)}),e.each(Object.keys(a),function(t,n){var i="elfinder-subtree-loaded "+o.res("class","navexpand");e("#"+o.navHash2Id(n)).removeClass(i).next(".elfinder-navbar-subtree").empty()})),g=t.cwd.hash,A(t.files),b[g]||A([t.cwd]),o.lastDir(g),o.autoSync()},A=function(e){var t,n,i=e.length;for(n=0;i>n;n++)if(t=e[n],t.name&&t.hash&&t.mime){if(!t.phash){var a="volume_"+t.name,r=o.i18n(a);a!=r&&(t.i18=r),t.volumeid&&(t.disabled&&(o.disabledCmds[t.volumeid]=t.disabled),t.tmbUrl&&(o.tmbUrls[t.volumeid]=t.tmbUrl),o.roots[t.volumeid]=t.hash)}b[t.hash]=t}},z=function(t){var n=t.keyCode,i=!(!t.ctrlKey&&!t.metaKey);f&&(e.each(k,function(e,a){a.type==t.type&&a.keyCode==n&&a.shiftKey==t.shiftKey&&a.ctrlKey==i&&a.altKey==t.altKey&&(t.preventDefault(),t.stopPropagation(),a.callback(t,o),o.debug("shortcut-exec",e+" : "+a.description))}),9!=n||e(t.target).is(":input")||t.preventDefault(),27==n&&o.clipboard().length&&o.clipboard([]))},U=new Date;return this.api=null,this.newAPI=!1,this.oldAPI=!1,this.netDrivers=[],this.OS=-1!==navigator.userAgent.indexOf("Mac")?"mac":-1!==navigator.userAgent.indexOf("Win")?"win":"other",this.UA=function(){var e=!document.uniqueID&&!window.opera&&!window.sidebar&&window.localStorage&&"undefined"==typeof window.orientation;return{ltIE6:"undefined"==typeof window.addEventListener&&"undefined"==typeof document.documentElement.style.maxHeight,ltIE7:"undefined"==typeof window.addEventListener&&"undefined"==typeof document.querySelectorAll,ltIE8:"undefined"==typeof window.addEventListener&&"undefined"==typeof document.getElementsByClassName,IE:document.uniqueID,Firefox:window.sidebar,Opera:window.opera,Webkit:e,Chrome:e&&window.chrome,Safari:e&&!window.chrome,Mobile:"undefined"!=typeof window.orientation,Touch:"undefined"!=typeof window.ontouchstart,iOS:navigator.platform.match(/^iP(?:[ao]d|hone)/)}}(),this.options=e.extend(!0,{},this._options,n||{}),n.ui&&(this.options.ui=n.ui),n.commands&&(this.options.commands=n.commands),n.uiOptions&&n.uiOptions.toolbar&&(this.options.uiOptions.toolbar=n.uiOptions.toolbar),n.uiOptions&&n.uiOptions.cwd&&n.uiOptions.cwd.listView&&n.uiOptions.cwd.listView.columns&&(this.options.uiOptions.cwd.listView.columns=n.uiOptions.cwd.listView.columns),n.uiOptions&&n.uiOptions.cwd&&n.uiOptions.cwd.listView&&n.uiOptions.cwd.listView.columnsCustomName&&(this.options.uiOptions.cwd.listView.columnsCustomName=n.uiOptions.cwd.listView.columnsCustomName),function(){var t,i=document.createElement("a");i.href=n.url,n.urlUpload&&n.urlUpload!==n.url&&(t=document.createElement("a"),t.href=n.urlUpload),(window.location.host!==i.host||t&&window.location.host!==t.host)&&(e.isPlainObject(o.options.customHeaders)||(o.options.customHeaders={}),e.isPlainObject(o.options.xhrFields)||(o.options.xhrFields={}),o.options.requestType="post",o.options.customHeaders["X-Requested-With"]="XMLHttpRequest",o.options.xhrFields.withCredentials=!0)}(),e.extend(this.options.contextmenu,n.contextmenu),this.requestType=/^(get|post)$/i.test(this.options.requestType)?this.options.requestType.toLowerCase():"get",this.customData=e.isPlainObject(this.options.customData)?this.options.customData:{},this.customHeaders=e.isPlainObject(this.options.customHeaders)?this.options.customHeaders:{},this.xhrFields=e.isPlainObject(this.options.xhrFields)?this.options.xhrFields:{},this.id=d,this.navPrefix="nav"+(elFinder.prototype.uniqueid?elFinder.prototype.uniqueid:"")+"-",this.cwdPrefix=elFinder.prototype.uniqueid?"cwd"+elFinder.prototype.uniqueid+"-":"",++elFinder.prototype.uniqueid,this.uploadURL=n.urlUpload||n.url,this.namespace=c,this.lang=this.i18[this.options.lang]&&this.i18[this.options.lang].messages?this.options.lang:"en",r="en"==this.lang?this.i18.en:e.extend(!0,{},this.i18.en,this.i18[this.lang]),this.direction=r.direction,this.messages=r.messages,this.dateFormat=this.options.dateFormat||r.dateFormat,this.fancyFormat=this.options.fancyDateFormat||r.fancyDateFormat,this.today=new Date(U.getFullYear(),U.getMonth(),U.getDate()).getTime()/1e3,this.yesterday=this.today-86400,a=this.options.UTCDate?"UTC":"",this.getHours="get"+a+"Hours",this.getMinutes="get"+a+"Minutes",this.getSeconds="get"+a+"Seconds",this.getDate="get"+a+"Date",this.getDay="get"+a+"Day",this.getMonth="get"+a+"Month",this.getFullYear="get"+a+"FullYear",this.cssClass="ui-helper-reset ui-helper-clearfix ui-widget ui-widget-content ui-corner-all elfinder elfinder-"+("rtl"==this.direction?"rtl":"ltr")+" "+this.options.cssClass,this.searchStatus={state:0,query:"",target:"",mime:""},this.storage=function(){try{return"localStorage"in window&&null!==window.localStorage?o.localStorage:o.cookie}catch(e){return o.cookie}}(),this.viewType=this.storage("view")||this.options.defaultView||"icons",this.sortType=this.storage("sortType")||this.options.sortType||"name",this.sortOrder=this.storage("sortOrder")||this.options.sortOrder||"asc",this.sortStickFolders=this.storage("sortStickFolders"),this.sortStickFolders=null===this.sortStickFolders?!!this.options.sortStickFolders:!!this.sortStickFolders,this.sortRules=e.extend(!0,{},this._sortRules,this.options.sortRules),e.each(this.sortRules,function(e,t){"function"!=typeof t&&delete o.sortRules[e]}),this.compare=e.proxy(this.compare,this),this.notifyDelay=this.options.notifyDelay>0?parseInt(this.options.notifyDelay):500,this.draggingUiHelper=null,this.draggable={appendTo:"body",addClasses:!0,distance:4,revert:!0,refreshPositions:!1,cursor:"crosshair",cursorAt:{left:50,top:47},start:function(t,n){var i,a,r=e.map(n.helper.data("files")||[],function(e){return e||null}),s=!1;for(o.draggingUiHelper=n.helper,i=r.length;i--;)if(a=r[i],b[a].locked){s=!0,n.helper.data("locked",!0);break}!s&&o.trigger("lockfiles",{files:r})},drag:function(t,n){var i=n.helper;i.data("refreshPositions")&&e(this).draggable("instance")&&(i.data("refreshPositions")>0?(e(this).draggable("option",{refreshPositions:!0}),i.data("refreshPositions",-1)):(e(this).draggable("option",{refreshPositions:!1}),i.data("refreshPositions",null)))},stop:function(t,n){var i;e(this).draggable("instance")&&e(this).draggable("option",{refreshPositions:!1}),o.draggingUiHelper=null,o.trigger("focus").trigger("dragstop"),n.helper.data("droped")||(i=e.map(n.helper.data("files")||[],function(e){return e||null}),o.trigger("unlockfiles",{files:i}),o.trigger("selectfiles",{files:i}))},helper:function(t){var n,i,a,r=this.id?e(this):e(this).parents("[id]:first"),s=e('| '+X.name+" | "+Y()+"
n:n>t,r=l?n>t:n&&t>n;(a||r)&&d()}).on("touchend",function(){i.data("startX")&&d()}),t.UA.Mobile&&(i.data("defWidth",a.width()),e(window).on("resize",function(){var e=a.parent().width()/2;i.data("defWidth")>e?a.width(e):a.width(i.data("defWidth")),i.data("width",a.width())}))}t.one("open",function(){setTimeout(function(){a.trigger("resize")},150)})}}),this},e.fn.elfinderoverlay=function(t){if(this.filter(":not(.elfinder-overlay)").each(function(){t=e.extend({},t),e(this).addClass("ui-front ui-widget-overlay elfinder-overlay").hide().mousedown(function(e){e.preventDefault(),e.stopPropagation()}).data({cnt:0,show:"function"==typeof t.show?t.show:function(){},hide:"function"==typeof t.hide?t.hide:function(){}})}),"show"==t){var n=this.eq(0),i=n.data("cnt")+1,a=n.data("show");n.data("cnt",i),n.is(":hidden")&&(n.show(),a())}if("hide"==t){var n=this.eq(0),i=n.data("cnt")-1,r=n.data("hide");n.data("cnt",i),0==i&&n.is(":visible")&&(n.hide(),r())}return this},e.fn.elfinderpanel=function(t){return this.each(function(){var n=e(this).addClass("elfinder-panel ui-state-default ui-corner-all"),i="margin-"+("ltr"==t.direction?"left":"right");t.one("load",function(){var e=t.getUI("navbar");n.css(i,parseInt(e.outerWidth(!0))),e.on("resize",function(){n.is(":visible")&&n.css(i,parseInt(e.outerWidth(!0)))})})})},e.fn.elfinderpath=function(t){return this.each(function(){var n="",i="",a=[],r=e(this).addClass("elfinder-path").html(" ").on("click","a",function(i){var r=e(this).attr("href").substr(5);i.preventDefault(),r!=t.cwd().hash&&(n?t.exec("search",n,{target:r,mime:a.join(" ")}):t.exec("open",r))}).prependTo(t.getUI("statusbar").show());t.bind("open searchend parents",function(){var o=[];n="",i="",a=[],e.each(t.parents(t.cwd().hash),function(e,n){o.push(''+t.escape(t.file(n).name)+"")}),r.html(o.join(t.option("separator")))}).bind("searchstart",function(e){e.data&&(n=e.data.query||"",i=e.data.target||"",a=e.data.mimes||[])}).bind("search",function(){var n=[],a="";i?(e.each(t.parents(i),function(e,i){n.push(''+t.escape(t.file(i).name)+"")}),a=n.join(t.option("separator"))):a=t.i18n("btnAll"),r.html(t.i18n("searcresult")+": "+a)})})},e.fn.elfinderplaces=function(t,n){return this.each(function(){var i={},a="class",r=t.res(a,"navdir"),o=t.res(a,"navcollapse"),s=t.res(a,"navexpand"),l=t.res(a,"hover"),d=t.res(a,"treeroot"),c=t.res(a,"adroppable"),u=t.res("tpl","placedir"),p=t.res("tpl","perms"),h=e(t.res("tpl","navspinner")),f="places"+(n.suffix?n.suffix:""),m=null,g=function(e){return e.substr(6)},v=function(e){return"place-"+e},b=function(){var n=[],a=[];n=e.map(S.children().find("[id]"),function(e){return g(e.id)}),e.each(n.reverse(),function(e,t){a.push(t+"#"+i[t].name)}),t.storage(f,a.join(","))},y=function(n,i){return e(u.replace(/\{id\}/,v(n?n.hash:i)).replace(/\{name\}/,t.escape(n?n.name:i)).replace(/\{cssclass\}/,n?(t.UA.Touch?"elfinder-touch ":"")+t.perms2class(n):"").replace(/\{permissions\}/,!n||n.read&&n.write?"":p).replace(/\{title\}/,n&&n.path?t.escape(n.path):"").replace(/\{symlink\}/,"").replace(/\{style\}/,""))},w=function(e){var n,a;return"directory"!==e.mime?!1:(a=e.hash,t.files().hasOwnProperty(a)||t.trigger("tree",{tree:[e]}),n=y(e,a),e.notfound&&n.addClass("ui-state-disabled"),i[a]=e,S.prepend(n),F.addClass(o),!0)},k=function(t){var n,a=null;return i[t]&&(delete i[t],n=e("#"+v(t)),n.length&&(a=n.text(),n.parent().remove(),S.children().length||(F.removeClass(o),M.removeClass(s),S.slideToggle(!1)))),a},x=function(n){var i=e("#"+v(n)),a=i.parent(),r=a.prev("div"),o="ui-state-hover",s=t.getUI("contextmenu");m&&clearTimeout(m),r.length&&(s.find(":first").data("placesHash",n),i.addClass(o),a.insertBefore(r),r=a.prev("div"),m=setTimeout(function(){i.removeClass(o),s.find(":first").data("placesHash")===n&&s.hide().empty()},1500)),r.length||(i.removeClass(o),s.hide().empty())},C=function(t,n){var a=t.hash,r=e("#"+v(n||a)),o=y(t,a);return r.length>0?(t.notfound&&o.addClass("ui-state-disabled"),r.parent().replaceWith(o),i[a]=t,!0):!1},T=function(){e.each(i,function(n,i){var a=t.file(n)||i,o=y(a,n),s=null;return a||o.hide(),S.children().length&&(e.each(S.children(),function(){var t=e(this);return a.name.localeCompare(t.children("."+r).text())<0?s=!o.insertBefore(t):void 0}),null!==s)?!0:(!e("#"+v(n)).length&&S.append(o),void 0)}),b()},I=y({hash:"root-"+t.namespace,name:t.i18n(n.name,"places"),read:!0,write:!0}),F=I.children("."+r).addClass(d).click(function(e){e.stopPropagation(),F.hasClass(o)&&(M.toggleClass(s),S.slideToggle(),t.storage("placesState",M.hasClass(s)?1:0))}).append(e('').on("click",function(e){e.stopPropagation(),S.empty(),T()})),S=I.children("."+t.res(a,"navsubtree")).sortable({appendTo:"body",revert:!1,helper:function(n){var i=e(n.target).parent();return i.children().removeClass("ui-state-hover"),e('
').append(e('').show().append(i.clone()))},stop:function(t,n){var i=e(n.item[0]),a=M.offset().top,r=M.offset().left,o=M.width(),s=M.height(),l=t.pageX,d=t.pageY;l>r&&r+o>l&&d>a&&d+s>d||(k(g(i.children(":first").attr("id"))),b())},update:function(){b()}}),M=e(this).addClass(t.res(a,"tree")+" elfinder-places ui-corner-all").hide().append(I).appendTo(t.getUI("navbar")).on("mouseenter mouseleave","."+r,function(t){e(this).toggleClass("ui-state-hover","mouseenter"==t.type)}).on("click","."+r,function(n){var i=e(this);return i.data("longtap")?(n.stopPropagation(),void 0):(t.exec("open",i.attr("id").substr(6)),void 0)}).on("contextmenu","."+r+":not(."+d+")",function(n){var i=e(this),a=i.attr("id").substr(6);n.preventDefault(),t.trigger("contextmenu",{raw:[{label:t.i18n("moveUp"),icon:"up",remain:!0,callback:function(){x(a),b()}},"|",{label:t.i18n("rmFromPlaces"),icon:"rm",callback:function(){k(a),b()}}],x:n.pageX,y:n.pageY}),i.addClass("ui-state-hover"),t.getUI("contextmenu").children().on("mouseenter",function(){i.addClass("ui-state-hover")}),t.bind("closecontextmenu",function(){i.removeClass("ui-state-hover")})}).droppable({tolerance:"pointer",accept:".elfinder-cwd-file-wrapper,.elfinder-tree-dir,.elfinder-cwd-file",hoverClass:t.res("class","adroppable"),classes:{"ui-droppable-hover":t.res("class","adroppable")},over:function(n,a){var r=a.helper,o=e.map(r.data("files"),function(e){return"directory"!==t.file(e).mime||i[e]?null:e});n.stopPropagation(),r.data("dropover",r.data("dropover")+1),o.length>0?r.addClass("elfinder-drag-helper-plus"):e(this).removeClass(c),t.trigger("unlockfiles",{files:r.data("files"),helper:r})},out:function(n,i){var a=i.helper;n.stopPropagation(),a.removeClass("elfinder-drag-helper-move elfinder-drag-helper-plus").data("dropover",Math.max(a.data("dropover")-1,0)),e(this).removeData("dropover").removeClass(c),t.trigger("unlockfiles",{files:a.data("files"),helper:a})},drop:function(n,a){var r=a.helper,o=!0;e.each(r.data("files"),function(e,n){var a=t.file(n);a&&"directory"==a.mime&&!i[a.hash]?w(a):o=!1}),b(),o&&r.hide()}}).on("touchstart","."+r+":not(."+d+")",function(n){var i=e(this).attr("id").substr(6),a=e(this).addClass(l).data("longtap",null).data("tmlongtap",setTimeout(function(){a.data("longtap",!0),t.trigger("contextmenu",{raw:[{label:t.i18n("rmFromPlaces"),icon:"rm",callback:function(){k(i),b()}}],x:n.originalEvent.touches[0].pageX,y:n.originalEvent.touches[0].pageY})},500))}).on("touchmove touchend","."+r+":not(."+d+")",function(t){clearTimeout(e(this).data("tmlongtap")),"touchmove"==t.type&&e(this).removeClass(l)});e(this).on("regist",function(t,n){var a=!1;e.each(n,function(e,t){t&&"directory"==t.mime&&!i[t.hash]&&w(t)&&(a=!0)}),a&&b()}),t.one("load",function(){var n,a;t.oldAPI||(M.show().parent().show(),i={},n=e.map((t.storage(f)||"").split(","),function(e){return e||null}),e.each(n,function(e,t){var n=t.split("#");i[n[0]]=n[1]?n[1]:n[0]}),t.trigger("placesload",{dirs:i,storageKey:f},!0),a=Object.keys(i),a.length&&(F.prepend(h),t.request({data:{cmd:"info",targets:a},preventDefault:!0}).done(function(n){var a={};e.each(n.files,function(e,t){var n=t.hash;a[n]=t}),e.each(i,function(e,t){w(a[e]||{hash:e,name:t,mime:"directory",notfound:!0})}),t.storage("placesState")>0&&F.click()}).always(function(){h.remove()})),t.change(function(t){var n=!1;e.each(t.data.changed,function(e,t){i[t.hash]&&("directory"!==t.mime?k(t.hash)&&(n=!0):C(t)&&(n=!0))}),n&&b()}).bind("rename",function(t){var n=!1;t.data.removed&&e.each(t.data.removed,function(e,i){t.data.added[e]&&C(t.data.added[e],i)&&(n=!0)}),n&&b()}).bind("rm paste",function(t){var n=[],i=!1;t.data.removed&&e.each(t.data.removed,function(e,t){var i=k(t);i&&n.push(i)}),n.length&&(i=!0),t.data.added&&n.length&&e.each(t.data.added,function(t,i){1!==e.inArray(i.name,n)&&"directory"==i.mime&&w(i)}),i&&b()}).bind("sync",function(){var n=Object.keys(i);n.length&&(F.prepend(h),t.request({data:{cmd:"info",targets:n},preventDefault:!0}).done(function(n){var a={},r=!1,o=t.cwd().hash;e.each(n.files||[],function(e,n){var i=n.hash;a[i]=n,t.files().hasOwnProperty(n.hash)||t.trigger("tree",{tree:[n]})}),e.each(i,function(e,t){!t.notfound!=!!a[e]?t.phash===o||a[e]&&"directory"!==a[e].mime?k(e)&&(r=!0):C(a[e]||{hash:e,name:t.name,mime:"directory",notfound:!0})&&(r=!0):a[e]&&a[e].phash!=o&&C(a[e])}),r&&b()}).always(function(){h.remove()}))}))})})},e.fn.elfindersearchbutton=function(t){return this.each(function(){var n=!1,i=t.fm,a=function(e){return i.namespace+e},r=i.getUI("toolbar"),o=i.res("class","searchbtn"),s=e(this).hide().addClass("ui-widget-content elfinder-button "+o),l=function(){u&&u.slideUp();var r=e.trim(c.val()),o=!e("#"+a("SearchFromAll")).prop("checked"),s=e("#"+a("SearchMime")).prop("checked");o&&(o=e("#"+a("SearchFromVol")).prop("checked")?i.root(i.cwd().hash):i.cwd().hash),s&&(s=r,r="."),r?t.exec(r,o,s).done(function(){n=!0,c.focus()}).fail(function(){d()}):i.trigger("searchend")},d=function(){u&&u.slideUp(),c.val(""),n&&(n=!1,i.trigger("searchend"))},c=e('').focus(function(){u&&u.slideDown()}).blur(function(){u&&(u.data("infocus")?u.data("infocus",!1):u.slideUp())}).appendTo(s).keypress(function(e){e.stopPropagation()}).keydown(function(e){e.stopPropagation(),13==e.keyCode&&l(),27==e.keyCode&&(e.preventDefault(),d())}),u=i.api<2.1?null:e('').append(e('').append(e('"),e('"),e('")),e('').append(e('"),e('"))).hide().css("overflow","hidden").appendTo(s);e('').appendTo(s).click(l),e('').appendTo(s).click(d),e(function(){u&&(u.find("div.buttonset").buttonset(),e("#"+a("SearchFromAll")).next("label").attr("title",i.i18n("searchTarget",i.i18n("btnAll"))),e("#"+a("SearchMime")).next("label").attr("title",i.i18n("searchMime")),u.find("input").on("mousedown",function(){u.data("infocus",!0) -}).on("click",function(){e.trim(c.val())&&l()}))}),r.on("load",function(){var e=s.parent();if(e.length){if(r.children("."+o).remove(),r.prepend(s.show()),e.remove(),i.UA.ltIE7){var t=s.children("ltr"==i.direction?".ui-icon-close":".ui-icon-search");t.css({right:"",left:parseInt(s.width())-t.outerWidth(!0)})}i.resize()}}),i.select(function(){c.blur()}).bind("searchend",function(){c.val("")}).bind("open parents",function(){var t=[],n=i.file(i.root(i.cwd().hash));n&&(e.each(i.parents(i.cwd().hash),function(e,n){t.push(i.file(n).name)}),e("#"+a("SearchFromCwd")).next("label").attr("title",i.i18n("searchTarget",t.join(i.option("separator")))),e("#"+a("SearchFromVol")).next("label").attr("title",i.i18n("searchTarget",n.name)))}).shortcut({pattern:"ctrl+f f3",description:t.title,callback:function(){c.select().focus()}})})},e.fn.elfindersortbutton=function(t){return this.each(function(){var n=t.fm,i=t.name,a="class",r=n.res(a,"disabled"),o=n.res(a,"hover"),s="elfinder-button-menu-item",l=s+"-selected",d=l+"-asc",c=l+"-desc",u=e(this).addClass("ui-state-default elfinder-button elfinder-menubutton elfiner-button-"+i).attr("title",t.title).append('').hover(function(){!u.hasClass(r)&&u.toggleClass(o)}).click(function(e){u.hasClass(r)||(e.stopPropagation(),p.is(":hidden")&&t.fm.getUI().click(),p.slideToggle(100))}),p=e('').hide().appendTo(u).on("mouseenter mouseleave","."+s,function(){e(this).toggleClass(o)}).on("click","."+s,function(e){e.preventDefault(),e.stopPropagation(),f()}),h=function(){p.children(":not(:last)").removeClass(l+" "+d+" "+c).filter('[rel="'+n.sortType+'"]').addClass(l+" "+("asc"==n.sortOrder?d:c)),p.children(":last").toggleClass(l,n.sortStickFolders)},f=function(){p.hide()};e.each(n.sortRules,function(t){p.append(e('| {0} | {1} | {2} |