UNPKG

rich-filemanager

Version:

Highly customizable open-source file manager

2 lines 67.9 kB
!function(a){a.richFilemanagerPlugin=function(b,c){function d(a){return A.indexOf(a)>-1}function e(b,c){if(!d(c))return!1;if("select"===c&&"folder"===b.type)return!1;if("extract"===c){var e=ka(b.attributes.name);return"file"===b.type&&"zip"===e}return"download"===c&&"folder"===b.type?x.options.allowFolderDownload===!0:"undefined"==typeof b.attributes.capabilities||a.inArray(c,b.attributes.capabilities)>-1}function f(){x.filetree.enabled&&(s.show(),p.splitter({sizeLeft:x.filetree.width,minLeft:x.filetree.minWidth,minRight:200}))}function g(){return window.opener||window.parent&&window.self!==window.parent||window.tinyMCEPopup||I.param("field_name")||I.param("CKEditor")||I.param("ImperaviElementId")}function h(a){return a.attributes.readable?("file"===a.type&&D.previewModel.applyObject(a),void("folder"!==a.type&&"parent"!==a.type||(D.previewFile(!1),D.itemsModel.loadDataList(a.id)))):(k.error(T("NOT_ALLOWED_SYSTEM")),!1)}function i(a){var b=!D.clipboardModel.enabled(),c={select:{name:T("action_select"),className:"select"},download:{name:T("action_download"),className:"download"},rename:{name:T("action_rename"),className:"rename"},move:{name:T("action_move"),className:"move"},separator1:"-----",copy:{name:T("clipboard_copy"),className:"copy"},cut:{name:T("clipboard_cut"),className:"cut"},"delete":{name:T("action_delete"),className:"delete"},extract:{name:T("action_extract"),className:"extract"},copyUrl:{name:T("copy_to_clipboard"),className:"copy-url"}};return e(a,"download")||delete c.download,e(a,"select")&&g()||delete c.select,e(a,"rename")&&x.options.browseOnly!==!0||delete c.rename,e(a,"delete")&&x.options.browseOnly!==!0||delete c["delete"],e(a,"extract")&&x.options.browseOnly!==!0||delete c.extract,e(a,"copy")&&x.options.browseOnly!==!0&&!b||delete c.copy,e(a,"move")&&x.options.browseOnly!==!0&&!b||(delete c.cut,delete c.move),c}var j={baseUrl:".",configUrl:null,config:{},callbacks:{beforeCreateImageUrl:function(a,b){return b},beforeCreatePreviewUrl:function(a,b){return b},beforeSelectItem:function(a,b){return b},afterSelectItem:function(a,b,c){},beforeSetRequestParams:function(a,b){return b},beforeSendRequest:function(a,b){return!0}}},k=this,l=a(b),m=l.children(".fm-wrapper"),n=m.find(".fm-header"),o=n.find(".fm-uploader"),p=m.children(".fm-splitter"),q=m.children(".fm-footer"),r=p.children(".fm-fileinfo"),s=p.children(".fm-filetree"),t=r.find(".view-items-wrapper"),u=r.find(".fm-preview-wrapper"),v=t.find(".view-items"),w=o.children(".fm-upload"),x=null,y="/",z=null,A=[],B=null,C=null,D=null,E=null,F=null,G=null,H=null,I=purl();(new Date).getTime();k.settings=a.extend(!0,j,c),k.write=function(b,c){var d=alertify,e=a.extend({},{reset:!0,delay:5e3,logMaxItems:5,logPosition:"bottom right",logContainerClass:"fm-log",logMessageTemplate:null,parent:document.body,onClick:void 0,unique:!1,type:"log"},c);if(e.logClass&&e.unique&&a(".fm-log").children("."+e.logClass).length>0)return d;e.reset&&d.reset(),d.parent(e.parent),d.logDelay(e.delay),d.logMaxItems(e.logMaxItems),d.logPosition(e.logPosition),d.logContainerClass(e.logContainerClass),d.logMessageTemplate(e.logMessageTemplate),d[e.type](b,e.onClick);var f=d.getLogs();return f[f.length-1]},k.error=function(b,c){return k.write(b,a.extend({},{type:"error",delay:1e4},c))},k.warning=function(b,c){return k.write(b,a.extend({},{type:"warning",delay:1e4},c))},k.success=function(b,c){return k.write(b,a.extend({},{type:"success",delay:6e3},c))},k.alert=function(a){alertify.reset().dialogContainerClass("fm-popup").alert(a)},k.confirm=function(a){alertify.reset().dialogWidth(a.width).dialogPersistent(a.persistent).dialogContainerClass("fm-popup").confirm(a.message,a.okBtn,a.cancelBtn)},k.prompt=function(a){alertify.reset().dialogWidth(a.width).dialogPersistent(a.persistent).dialogContainerClass("fm-popup").theme(a.template).prompt(a.message,a.value||"",a.okBtn,a.cancelBtn)},k.dialog=function(a){alertify.reset().dialogWidth(a.width).dialogPersistent(a.persistent).dialogContainerClass("fm-popup").dialog(a.message,a.buttons)},k.setDimensions=function(){var b=m.outerHeight(!0)-m.height(),c=a(window).height()-n.height()-q.height()-b,d=p.width()-p.children(".splitter-bar-vertical").outerWidth()-s.outerWidth();p.height(c),r.width(d)},k.console=function(){x.options.logger&&arguments&&[].unshift.call(arguments,(new Date).getTime())},k.refreshFolder=function(a){D.loadPath(D.currentPath(),a)},k.loadFolder=function(a,b){a="/"+ea(a,"/")+"/",D.loadPath(a,b)};var J=function(){var b=a.Deferred();b.then(function(){return K()}).then(function(){return M()}).then(function(a,b){return L()}).then(function(){return N()}).then(function(){O(function(){P()})}),b.resolve()},K=function(){return a.when(W("default"),W("user")).done(function(b,c){var d=b[0],e=c[0];if(void 0!==e&&null!==e&&delete e.version,x=a.extend({},d,e),x.api.connectorUrl)z=x.api.connectorUrl;else{var f=location.origin+location.pathname,g="connectors/"+x.api.lang+"/filemanager."+x.api.lang;ka(f).length>0&&(f=f.substring(0,f.lastIndexOf("/")+1)),z=f+g}})},L=function(){return za("GET",{mode:"initiate"}).done(function(b){if(b.data){var c=b.data.attributes.config;a.each(c,function(b,c){a.each(c,function(a,c){return null===c||(void 0===x[b]&&(x[b]=[]),void(x[b][a]=c))})}),c.options&&c.options.capabilities&&(x.options.capabilities=c.options.capabilities)}}).fail(function(a){k.error("Unable to perform initial request to server."),ba(a)}).then(function(b){if(b.errors)return a.Deferred().reject()})},M=function(){return E=new Q,a.ajax().then(function(){var a=I.param("langCode");return a?V(E.buildLangFileUrl(a)).done(function(){E.setLang(a)}).fail(function(){setTimeout(function(){k.error("Given language file ("+E.buildLangFileUrl(a)+") does not exist!")},500)}):void E.setLang(x.language["default"])}).then(function(){var b=E.buildLangFileUrl(E.getLang())+"?_="+(new Date).getTime();return a.ajax({type:"GET",url:b,dataType:"json"}).done(function(a){E.setTranslations(a)})}).then(function(){var b=E.getLang().substr(0,2),c=k.settings.baseUrl;return a.when(a.get(c+"/libs/cldrjs/cldr-dates/"+b+"/ca-gregorian.json"),a.get(c+"/libs/cldrjs/cldr-numbers/"+b+"/numbers.json"),a.get(c+"/libs/cldrjs/cldr-core/supplemental/likelySubtags.json"),a.get(c+"/libs/cldrjs/cldr-core/supplemental/timeData.json"),a.get(c+"/libs/cldrjs/cldr-core/supplemental/weekData.json")).fail(function(){k.error('CLDR files for "'+b+'" language do not exist!')}).then(function(){return[].slice.apply(arguments,[0]).map(function(a){return a[0]})}).then(Globalize.load).then(function(){F=Globalize(b)})})},N=function(){return a.when(Y("upload-container"),Y("upload-item")).done(function(a,b){var c=a[0],d=b[0];m.append(c).append(d)})},O=function(a){var b=[],c=[];if(b.push("/themes/"+x.options.theme+"/styles/theme.css"),x.viewer.image.lazyLoad&&b.push("/libs/lazyload/dist/lazyload.min.js"),x.customScrollbar.enabled&&(b.push("/libs/custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css"),b.push("/libs/custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js")),b.push(a),X(b),x.editor.enabled){var d=x.editor.theme;d&&"default"!==d&&c.push("/libs/CodeMirror/theme/"+d+".css"),c.push("/libs/CodeMirror/lib/codemirror.css"),c.push("/libs/CodeMirror/lib/codemirror.js"),c.push("/libs/CodeMirror/addon/selection/active-line.js"),c.push("/libs/CodeMirror/addon/display/fullscreen.css"),c.push("/libs/CodeMirror/addon/display/fullscreen.js")}x.viewer.markdownRenderer.enabled&&(c.push("/src/css/fm-markdown.css"),c.push("/libs/markdown-it/markdown-it.min.js"),c.push("/libs/markdown-it/default.min.css"),c.push("/libs/markdown-it/highlight.min.js"),c.push("/libs/markdown-it/markdown-it-footnote.min.js"),c.push("/libs/markdown-it/markdown-it-replace-link.min.js")),x.options.browseOnly||(c.push("/src/js/libs-fileupload.js"),x.upload.multiple&&c.push("/libs/jQuery-File-Upload/css/dropzone.css")),c.length&&X(c)},P=function(){G=new R,A=x.options.capabilities||["upload","select","download","rename","copy","move","delete","extract","createFolder"],x.security.readOnly&&(x.options.browseOnly=!0),x.upload.paramName||(x.upload.paramName="files");var b=[];x.options.fileSorting&&(b=x.options.fileSorting.toLowerCase().split("_")),B=b[0]||"name",C=b[1]||"asc";var c=I.param("exclusiveFolder");c&&(y="/"+c+"/",y=ja(y));var e=I.param("expandedFolder");if(e&&(H=y+e+"/",H=ja(H)),D=new S,ko.applyBindings(D),D.itemsModel.initiateLazyLoad(),D.filterModel.setName(I.param("filter")),ko.bindingHandlers.toggleNodeVisibility={init:function(b,c){var d=c();a(b).toggle(d.isExpanded())},update:function(b,c){var d=c();return d.isSliding()!==!1&&(d.isExpanded()===!1&&a(b).slideDown(x.filetree.expandSpeed,function(){d.isSliding(!1),d.isExpanded(!0)}),void(d.isExpanded()===!0&&a(b).slideUp(x.filetree.expandSpeed,function(){d.isSliding(!1),d.isExpanded(!1)})))}},ko.bindingHandlers.draggableView={init:function(a,b,c){D.ddModel.makeDraggable(b(),a)}},ko.bindingHandlers.droppableView={init:function(a,b,c){D.ddModel.makeDroppable(b(),a)}},ko.bindingHandlers.draggableTree={init:function(a,b,c){D.ddModel.makeDraggable(b(),a)}},ko.bindingHandlers.droppableTree={init:function(a,b,c){D.ddModel.makeDroppable(b(),a)}},m.mousewheel(function(b){if(!D.ddModel.dragHelper)return!0;var c,d=null;if(c=x.customScrollbar.enabled?a([t[0],s[0]]):p.children(".splitter-pane"),c.each(function(c){var e=a(this),f=e.offset().top,g=e.offset().left;if(b.offsetY>=f&&b.offsetY<=f+e.height()&&b.offsetX>=g&&b.offsetX<=g+e.width())return d=e,!1}),null===d)return!1;if(x.customScrollbar.enabled){var e=d.find(".mCSB_scrollTools_vertical"),f=1===b.deltaY?"+":"-";e.is(":visible")&&d.mCustomScrollbar("scrollTo",[f+"=250",0],{scrollInertia:500,scrollEasing:"easeOut",callbacks:!0})}else if(d[0].scrollHeight>d[0].clientHeight){var g=d.scrollTop(),h=g-200*b.deltaY;D.ddModel.isScrolling=!0,h=h<0?0:h,d.stop().animate({scrollTop:h},100,"linear",function(){D.ddModel.isScrolling=!1,D.ddModel.isScrolled=!0})}}),v.selectable({filter:"li:not(.directory-parent), tbody > tr:not(.directory-parent)",cancel:".directory-parent, thead",disabled:!x.manager.selection.enabled,appendTo:v,start:function(a,b){Ga(),D.itemsModel.isSelecting(!0)},stop:function(a,b){D.itemsModel.isSelecting(!1)},selected:function(a,b){var c=ko.dataFor(b.selected);c.selected(!0)},unselected:function(a,b){var c=ko.dataFor(b.unselected);c.selected(!1)}}),r.contextMenu({selector:".view-items",zIndex:10,build:function(b,c){var e={createFolder:{name:T("create_folder"),className:"create-folder"},paste:{name:T("clipboard_paste"),className:"paste",disabled:function(a,b){return D.clipboardModel.isEmpty()}}};return D.clipboardModel.enabled()&&x.options.browseOnly!==!0||delete e.paste,d("createFolder")&&x.options.browseOnly!==!0||delete e.createFolder,!a.isEmptyObject(e)&&{appendTo:".fm-container",items:e,reposition:!1,callback:function(a,b){switch(a){case"createFolder":D.headerModel.createFolder();break;case"paste":D.clipboardModel.paste()}}}}}),x.extras.extra_js)for(var g=0;g<x.extras.extra_js.length;g++)a.ajax({type:"GET",url:x.extras.extra_js[g],dataType:"script",async:x.extras.extra_js_async});I.param("CKEditorCleanUpFuncNum")&&(D.headerModel.closeButton(!0),D.headerModel.closeButtonOnClick=function(){parent.CKEDITOR.tools.callFunction(I.param("CKEditorCleanUpFuncNum"))}),f(),Ya(),D.treeModel.loadDataNode(D.treeModel.rootNode,!0,!0),x.customScrollbar.enabled&&(s.mCustomScrollbar({theme:x.customScrollbar.theme,scrollButtons:{enable:x.customScrollbar.button},advanced:{autoExpandHorizontalScroll:!0,updateOnContentResize:!0},callbacks:{onScrollStart:function(){D.ddModel.isScrolling=!0},onScroll:function(){D.ddModel.isScrolling=!1}},axis:"yx"}),u.mCustomScrollbar({theme:x.customScrollbar.theme,scrollButtons:{enable:x.customScrollbar.button},advanced:{autoExpandHorizontalScroll:!0,updateOnContentResize:!0,updateOnSelectorChange:".fm-preview-viewer"}}),t.mCustomScrollbar({theme:x.customScrollbar.theme,scrollButtons:{enable:x.customScrollbar.button},advanced:{autoExpandHorizontalScroll:!0,updateOnContentResize:!0,updateOnSelectorChange:".grid, .list"},callbacks:{onScrollStart:function(){D.itemsModel.continiousSelection()||(this.yStartPosition=this.mcs.top,this.yStartTime=(new Date).getTime()),D.ddModel.isScrolling=!0},onScroll:function(){D.ddModel.isScrolling=!1,D.ddModel.isScrolled=!0},whileScrolling:function(){if(x.manager.selection.enabled){var a=(new Date).getTime()-this.yStartTime;!D.itemsModel.continiousSelection()&&a>400&&(this.yStartPosition=this.mcs.top),D.itemsModel.isSelecting()&&D.itemsModel.continiousSelection(!0);var b=Math.abs(this.mcs.top)-Math.abs(this.yStartPosition);v.selectable("repositionCssHelper",b,0)}D.itemsModel.lazyLoad&&D.itemsModel.lazyLoad.handleScroll()}},axis:"y",alwaysShowScrollbar:0}));var h=document.documentElement;if(h.setAttribute("data-useragent",navigator.userAgent),x.options.logger){(new Date).getTime()}var i=l.find(".fm-loading-wrap");i.fadeOut(800,function(){k.setDimensions()}),k.setDimensions()},Q=function(){var a=null,b={},c=k.settings.baseUrl+"/languages/";this.buildLangFileUrl=function(a){return c+a+".json"},this.setLang=function(b){a=b},this.getLang=function(){return a},this.setTranslations=function(a){b=a},this.getTranslations=function(){return b},this.translate=function(a){return b[a]}},R=function(){var a={},b=this;this.push=function(c,d,e){b.removeTimer(c),a[c]=setTimeout(d,e)},this.getTimer=function(b){return a[b]},this.removeTimer=function(b){a[b]&&(clearTimeout(a[b]),delete a[b])}},S=function(){function b(a){return(!x.manager.selection.enabled||!x.manager.selection.useCtrlKey||a.ctrlKey!==!0)&&(!x.manager.dblClickOpen||"click"!==a.type)}var c=this;this.config=ko.observable(x),this.loadingView=ko.observable(!0),this.previewFile=ko.observable(!1),this.viewMode=ko.observable(x.manager.defaultViewMode),this.currentPath=ko.observable(y),this.browseOnly=ko.observable(x.options.browseOnly),this.previewModel=ko.observable(null),this.currentLang=E.getLang(),this.lg=E.getTranslations(),this.previewFile.subscribe(function(a){a||(c.previewModel.closeEditor(),c.itemsModel.descriptivePanel.rdo().id===c.previewModel.rdo().id&&c.itemsModel.descriptivePanel.render(c.previewModel.viewer.content()))}),this.isCapable=function(a){return d(a)},this.loadPath=function(a,b){var d,e=new s(a);b&&(d=D.treeModel.findByParam("id",a)),d&&e.setPreloader(D.treeModel.getPreloader(d)),e.setPreloader(c.itemsModel.getPreloader()).setDataHandler(function(a,b){d&&D.treeModel.addNodes(a,d,!0),c.itemsModel.addItems(a,b,!0),c.searchModel.clearInput()}).load(function(){return Ra(a)})},this.addElements=function(a,b,d){var e=c.treeModel.findByParam("id",b);e&&c.treeModel.addNodes(a,e,d),c.currentPath()===b&&c.itemsModel.addItems(a,b,d)},this.removeElement=function(a){var b=c.treeModel.findByParam("id",a.id);b&&b.remove();var d=c.itemsModel.findByParam("id",a.id);d&&d.remove()},this.fetchSelectedItems=function(a){var b,d;if(a===q.name)return c.itemsModel.getSelected();if(a===o.name)return c.treeModel.getSelected();if(!a)return b=c.treeModel.getSelected(),d=c.itemsModel.getSelected(),d.length>0?d:b;throw new Error("Unknown item type.")},this.fetchSelectedObjects=function(b){var d=[];return a.each(c.fetchSelectedItems(b.constructor.name),function(a,b){d.push(b.rdo)}),d};var f=function(){this.beforeLoad=function(a){},this.afterLoad=function(a,b){}},j=function(){var a=this,b=null;this.rdo=ko.observable({}),this.cdo=ko.observable({}),this.viewer={type:ko.observable("default"),isEditable:ko.observable(!1),url:ko.observable(null),pureUrl:ko.observable(null),options:ko.observable({}),content:ko.observable(null),codeMirror:ko.observable(null)},this.renderer=new L,this.editor=new M,this.rdo.subscribe(function(b){a.cdo({isFolder:"folder"===b.type,sizeFormatted:Z(b.attributes.size),createdFormatted:$(b.attributes.created),modifiedFormatted:$(b.attributes.modified),extension:"file"===b.type?ka(b.id):null,dimensions:b.attributes.width?b.attributes.width+"x"+b.attributes.height:null})}),this.editor.content.subscribe(function(b){a.editor.isInteractive()&&a.renderer.render(b)}),this.applyObject=function(d){b&&b.destroy(),c.previewFile(!1);var e=d.attributes.name,f={interactive:!1},g={type:"default",url:null,options:{}};a.rdo(d),qa(e)&&(g.type="image",g.url=Ca(d,!1,!0)),sa(e)&&x.viewer.audio.enabled===!0&&(g.type="audio",g.url=Ba(d,!0)),ra(e)&&x.viewer.video.enabled===!0&&(g.type="video",g.url=Ba(d,!0),g.options={width:x.viewer.video.playerWidth,height:x.viewer.video.playerHeight}),ua(e)&&x.viewer.opendoc.enabled===!0&&(g.type="opendoc",g.url=k.settings.baseUrl+"/libs/ViewerJS/index.html#"+Ba(d,!0),g.options={width:x.viewer.opendoc.readerWidth,height:x.viewer.opendoc.readerHeight}),va(e)&&x.viewer.google.enabled===!0&&(g.type="google",g.url="https://docs.google.com/viewer?url="+encodeURIComponent(Ba(d,!1))+"&embedded=true",g.options={width:x.viewer.google.readerWidth,height:x.viewer.google.readerHeight}),ta(e)&&x.viewer.iframe.enabled===!0&&(g.type="iframe",g.url=Ba(d,!0),g.options={width:x.viewer.iframe.readerWidth,height:x.viewer.iframe.readerHeight}),(wa(e)&&x.viewer.codeMirrorRenderer.enabled===!0||xa(e)&&x.viewer.markdownRenderer.enabled===!0)&&(g.type="renderer",g.options={is_writable:d.attributes.writable},a.renderer.setRenderer(d),f.interactive=a.renderer.renderer().interactive),a.viewer.type(g.type),a.viewer.url(g.url),a.viewer.options(g.options),a.viewer.pureUrl(Ea(d)),a.viewer.isEditable(pa(e)&&x.editor.enabled===!0),a.editor.isInteractive(f.interactive),"renderer"===g.type||a.viewer.isEditable()?Qa(d).then(function(b){a.viewer.content(b),c.previewFile(!0)}):c.previewFile(!0)},this.afterRender=function(){a.renderer.render(a.viewer.content());var c=u.find(".btn-copy-url")[0];b=new Clipboard(c),b.on("success",function(a){k.success(T("copied"))})},this.initiateEditor=function(b){var c=u.find(".fm-cm-editor-content")[0];a.editor.createInstance(a.cdo().extension,c,{readOnly:!1,styleActiveLine:!0})},this.bindToolbar=function(b){e(a.rdo(),b)&&Xa(b,{},a.rdo())},this.previewIconClass=ko.pureComputed(function(){var b=[],c=["ico"];return"default"!==a.viewer.type()&&a.viewer.url()||(b.push("grid-icon"),this.cdo().isFolder===!0?(b.push("ico_folder"),c.push("folder"),this.rdo().attributes.readable||c.push("lock")):(b.push("ico_file"),this.rdo().attributes.readable?c.push("ext",this.cdo().extension):c.push("file","lock")),b.push(c.join("_"))),b.join(" ")},this),this.closePreview=function(){c.previewFile(!1)},this.editFile=function(){var b=a.viewer.content();a.renderer.render(b),a.editor.render(b)},this.saveFile=function(){Pa(a.rdo())},this.closeEditor=function(){a.editor.enabled(!1),a.renderer.render(a.viewer.content())},this.buttonVisibility=function(b){switch(b){case"select":return e(a.rdo(),b)&&g();case"move":case"rename":case"delete":case"download":return e(a.rdo(),b)}}},n=function(){function b(a){if(null!==H){a||(a=d.rootNode);var b=d.findByFilter(function(a){return 0===H.indexOf(a.id)},a);b?(x.filetree.expandSpeed=10,d.loadDataNode(b,!1,!0)):(H=null,x.filetree.expandSpeed=200,d.setItemsFromNode(a))}}var d=this;this.selectedNode=ko.observable(null);var e=new o({attributes:{}});e.id=y,e.level=ko.observable(-1),this.rootNode=e,this.mapNodes=function(a,b){b||(b=d.rootNode),b.isRoot()||a.call(this,b);var c=b.children();if(!c||0===c.length)return null;for(var e=0,f=c.length;e<f;e++)a.call(this,c[e]),d.findByFilter(a,c[e])},this.findByParam=function(a,b,c){if(!c&&(c=d.rootNode,c[a]===b))return c;var e=c.children();if(!e||0===e.length)return null;for(var f=0,g=e.length;f<g;f++){if(e[f][a]===b)return e[f];var h=d.findByParam(a,b,e[f]);if(h)return h}return null},this.findByFilter=function(a,b){if(!b&&(b=d.rootNode,a(b)))return b;var c=b.children();if(!c||0===c.length)return null;for(var e=0,f=c.length;e<f;e++){if(a(c[e]))return c[e];var g=d.findByFilter(a,c[e]);if(g)return g}return null},this.getSelected=function(){var a=[];return d.selectedNode()&&a.push(d.selectedNode()),a},this.loadDataNode=function(a,b,e){var f=a.id,g=new s(f);g.setPreloader(d.getPreloader(a)).setDataHandler(function(b,c){d.addNodes(b,a,e)}),b&&g.setPreloader(c.itemsModel.getPreloader()).setDataHandler(function(a,b){c.itemsModel.addItems(a,b,e),c.searchModel.clearInput()}),g.load(function(){return Ra(f)})},this.getPreloader=function(a){var c=function(){};return c.prototype=Object.create(f),c.prototype.beforeLoad=function(b){a.isRoot()||a.isLoaded(!1)},c.prototype.afterLoad=function(c,e){a.isRoot()||(a.isLoaded(!0),d.expandNode(a)),b(a)},new c},this.createNode=function(a){var b=new o(a);return D.filterModel.filterItem(b),b},this.createNodes=function(b){var c=[];return a.each(b,function(a,b){c.push(d.createNode(b))}),c},this.appendNodes=function(b,c){a.isArray(c)||(c=[c]),b||(b=d.rootNode),x.filetree.foldersOnly&&(c=a.grep(c,function(a){return a.cdo.isFolder})),a.each(c,function(a,c){c.parentNode(b)});var e=b.children().concat(c);b.children(U(e))},this.addNodes=function(b,c,e){if(a.isArray(b)||(b=[b]),c){var f=d.createNodes(b);e&&c.children([]),d.appendNodes(c,f)}},this.expandNode=function(a){return a.isExpanded()===!1&&a.isLoaded()===!0&&(a.isSliding(!0),!0)},this.collapseNode=function(a){return a.isExpanded()===!0&&(a.isSliding(!0),!0)},this.toggleNode=function(a){d.collapseNode(a)||d.expandNode(a)},this.arrangeNode=function(b){var c=b.children().length;a.each(b.children(),function(a,d){d.level(b.level()+1),d.isFirstNode(0===a),d.isLastNode(a===c-1)})},this.setItemsFromNode=function(b){var d=[];a.each(b.children(),function(a,b){d.push(b.rdo)}),c.itemsModel.addItems(d,b.id,!0)},this.nodeRendered=function(b,d){a(b[1]).contextMenu({selector:".file, .directory",zIndex:100,build:function(a,b){return d.selected(!0),{appendTo:".fm-container",items:i(d.rdo),callback:function(a,b){Xa(a,b,d.rdo,c.fetchSelectedObjects(d))}}}})},this.actualizeNodeObject=function(b,c,e){var f=new RegExp("^"+c),g=b.rdo.id,h=g.replace(f,e);b.id=h,b.rdo.id=h,b.rdo.attributes.path=b.rdo.attributes.path.replace(new RegExp(g+"$"),h),b.children().length&&a.each(b.children(),function(a,b){d.actualizeNodeObject(b,c,e)})}},o=function(a){var b=this;this.id=a.id,this.rdo=a,this.cdo={isFolder:"folder"===a.type,extension:"file"===a.type?ka(a.id):null,dimensions:a.attributes.width?a.attributes.width+"x"+a.attributes.height:null,cssItemClass:"folder"===a.type?"directory":"file",hiddenByType:!1,hiddenBySearch:!1},this.visible=ko.observable(!0),this.nodeTitle=ko.observable(a.attributes.name),this.children=ko.observableArray([]),this.parentNode=ko.observable(null),this.isSliding=ko.observable(!1),this.isLoading=ko.observable(!1),this.isLoaded=ko.observable(!1),this.isExpanded=ko.observable(!1),this.selected=ko.observable(!1),this.dragHovered=ko.observable(!1),this.level=ko.observable(0),this.isFirstNode=ko.observable(!1),this.isLastNode=ko.observable(!1),this.nodeTitle.subscribe(function(a){b.rdo.attributes.name=a}),this.children.subscribe(function(a){c.treeModel.arrangeNode(b)}),this.isLoaded.subscribe(function(a){b.isLoading(!a)}),this.selected.subscribe(function(a){a?(null!==c.treeModel.selectedNode()&&c.treeModel.selectedNode().selected(!1),c.treeModel.selectedNode(b),c.itemsModel.unselectItems()):c.treeModel.selectedNode(null)}),this.switchNode=function(a){return!!a.cdo.isFolder&&(a.rdo.attributes.readable?void(a.isLoaded()?c.treeModel.toggleNode(a):b.openNode(a,!1)):(k.error(T("NOT_ALLOWED_SYSTEM")),!1))},this.mouseDown=function(a,b){a.selected(!0)},this.nodeClick=function(a,c){x.manager.dblClickOpen||b.openNode(a,!0)},this.nodeDblClick=function(a,c){x.manager.dblClickOpen&&b.openNode(a,!0)},this.openNode=function(a,b,d){"file"===a.rdo.type&&h(a.rdo),"folder"===a.rdo.type&&(!a.isLoaded()||a.isExpanded()&&x.filetree.reloadOnClick?c.treeModel.loadDataNode(a,b,!0):(c.treeModel.toggleNode(a),b&&c.treeModel.setItemsFromNode(a)))},this.remove=function(){b.parentNode().children.remove(b)},this.isRoot=function(){return b.level()===c.treeModel.rootNode.level()},this.title=ko.pureComputed(function(){return x.options.showTitleAttr?this.rdo.id:null},this),this.itemClass=ko.pureComputed(function(){var a=[];return this.selected()&&x.manager.selection.enabled&&a.push("ui-selected"),this.dragHovered()&&a.push(c.ddModel.hoveredCssClass),a.join(" ")},this),this.iconClass=ko.pureComputed(function(){var a,b=["ico"];return this.cdo.isFolder===!0?(a="ico_folder",this.isLoading()===!0?b.push("loading"):(b.push("folder"),this.rdo.attributes.readable?(this.isExpanded()||!this.isExpanded()&&this.isSliding())&&b.push("open"):b.push("lock"))):(a="ico_file",this.rdo.attributes.readable?b.push("ext",this.cdo.extension):b.push("file","lock")),a+" "+b.join("_")},this),this.switcherClass=ko.pureComputed(function(){var a=[];if(x.filetree.showLine?0===this.level()&&this.isFirstNode()&&this.isLastNode()?a.push("root"):0===this.level()&&this.isFirstNode()?a.push("roots"):this.isLastNode()?a.push("bottom"):a.push("center"):a.push("noline"),this.cdo.isFolder){var b=this.isExpanded()||!this.isExpanded()&&this.isSliding();a.push(b?"open":"close")}else a.push("docu");return a.join("_")},this),this.clusterClass=ko.pureComputed(function(){return x.filetree.showLine&&!this.isLastNode()?"line":""},this)},p=function(){var d=this;this.objects=ko.observableArray([]),this.parentItem=ko.observable(null),this.objectsSize=ko.observable(0),this.objectsNumber=ko.observable(0),this.selectedNumber=ko.observable(0),this.listSortField=ko.observable(B),this.listSortOrder=ko.observable(C),this.isSelecting=ko.observable(!1),this.continiousSelection=ko.observable(!1),this.descriptivePanel=new L,this.lazyLoad=null,this.isSelecting.subscribe(function(a){a||d.continiousSelection(!1)}),this.createItem=function(a){var b=new q(a);return D.filterModel.filterItem(b),b},this.createItems=function(b){var c=[];return a.each(b,function(a,b){c.push(d.createItem(b))}),c},this.appendItems=function(b){a.isArray(b)||(b=[b]);var c=d.objects().concat(b);d.objects(U(c))},this.addItems=function(b,e,f){a.isArray(b)||(b=[b]);var g=d.createItems(b);f?(c.currentPath(e),c.breadcrumbsModel.splitCurrent(),d.setDescriptivePanel(b),d.setItemsList(g),d.addParentItem()):d.appendItems(g)},this.loadDataList=function(a){var b=new s(a);b.setPreloader(d.getPreloader()).setDataHandler(function(a,b){d.addItems(a,b,!0),c.searchModel.clearInput()}).load(function(){return Ra(a)})},this.setItemsList=function(a){d.parentItem(null),a=U(a),d.objects(a)},this.addParentItem=function(){if(!da(c.currentPath())&&c.currentPath()!==y){var a=na(c.currentPath()),e={id:a,rdo:{id:a,type:"parent",attributes:{readable:!0,writable:!0}},dragHovered:ko.observable(!1)};e.open=function(a,c){b(c)&&d.loadDataList(e.id)},e.itemClass=ko.pureComputed(function(){var a=[];return e.dragHovered()&&a.push(c.ddModel.hoveredCssClass),a.join(" ")}),d.parentItem(e)}},this.setDescriptivePanel=function(b){d.descriptivePanel.content(null),a.each(b,function(a,b){x.manager.renderer.position&&"string"==typeof x.manager.renderer.indexFile&&b.attributes.name.toLowerCase()===x.manager.renderer.indexFile.toLowerCase()&&(d.descriptivePanel.setRenderer(b),Qa(d.descriptivePanel.rdo()).then(function(a){d.descriptivePanel.render(a)}))})},this.findByParam=function(a,b){return ko.utils.arrayFirst(d.objects(),function(c){return c[a]===b})},this.findByFilter=function(a,b){var c=!b,e=[],f=d.objects();if(!f||0===f.length)return c?null:e;for(var g=0,h=f.length;g<h;g++)if(a(f[g])){if(c)return f[g];e.push(f[g])}return c?null:e},this.sortObjects=function(){var a=U(d.objects());d.objects(a)},this.getSelected=function(){var a=d.findByFilter(function(a){return a.selected()},!0)||[];return d.selectedNumber(a.length),a},this.unselectItems=function(b){var c=x.manager.selection.enabled&&x.manager.selection.useCtrlKey&&b===!0;c||a.each(d.getSelected(),function(a,b){b.selected(!1)})},this.initiateLazyLoad=function(){x.viewer.image.lazyLoad!==!0||d.lazyLoad||(d.lazyLoad=new LazyLoad({container:r[0],callback_load:function(a){k.console("LOADED",a.getAttribute("data-original"))},callback_set:function(a){k.console("SET",a.getAttribute("data-original"))},callback_processed:function(a){k.console("PROCESSED",a+" images left")}}))},this.getPreloader=function(){var a=function(){};return a.prototype=Object.create(f),a.prototype.beforeLoad=function(a){c.loadingView(!0)},a.prototype.afterLoad=function(a,b){c.loadingView(!1),d.lazyLoad&&d.lazyLoad.update()},new a},this.objects.subscribe(function(b){var e=0,f=0;a.each(b,function(a,b){e++,"file"===b.rdo.type&&(f+=Number(b.rdo.attributes.size))}),d.objectsNumber(e),d.objectsSize(Z(f)),d.lazyLoad&&setTimeout(function(){d.lazyLoad.update()},50),v.contextMenu({selector:".file, .directory",zIndex:100,build:function(a,b){var d=ko.dataFor(a[0]);return d.selected()||(c.itemsModel.unselectItems(!1),d.selected(!0)),{appendTo:".fm-container",items:i(d.rdo),callback:function(a,b){Xa(a,b,d.rdo,c.fetchSelectedObjects(d))}}}})})},q=function(a){var d=x.viewer.image.thumbMaxWidth;a.attributes.width&&a.attributes.width<d&&(d=a.attributes.width),this.id=a.id,this.rdo=a,this.cdo={isFolder:"folder"===a.type,sizeFormatted:Z(a.attributes.size),createdFormatted:$(a.attributes.created),modifiedFormatted:$(a.attributes.modified),extension:"file"===a.type?ka(a.id):null,dimensions:a.attributes.width?a.attributes.width+"x"+a.attributes.height:null,cssItemClass:"folder"===a.type?"directory":"file",imageUrl:Ca(a,!0,!0),previewWidth:d,hiddenByType:!1,hiddenBySearch:!1},this.visible=ko.observable(!0),this.selected=ko.observable(!1),this.dragHovered=ko.observable(!1),this.lazyPreview=x.viewer.image.lazyLoad&&this.cdo.imageUrl,this.selected.subscribe(function(a){a&&null!==c.treeModel.selectedNode()&&c.treeModel.selectedNode().selected(!1)}),this.title=ko.pureComputed(function(){return x.options.showTitleAttr?this.rdo.id:null},this),this.itemClass=ko.pureComputed(function(){var a=[];return this.selected()&&x.manager.selection.enabled&&a.push("ui-selected"),this.dragHovered()&&a.push(c.ddModel.hoveredCssClass),this.cdo.cssItemClass+" "+a.join(" ")},this),this.listIconClass=ko.pureComputed(function(){var a,b=["ico"];return this.cdo.isFolder===!0?(a="ico_folder",b.push("folder"),this.rdo.attributes.readable||b.push("lock")):(a="ico_file",this.rdo.attributes.readable?b.push("ext",this.cdo.extension):b.push("file","lock")),a+" "+b.join("_")},this),this.gridIconClass=ko.pureComputed(function(){var a=[],b=["ico"];return this.cdo.imageUrl||(a.push("grid-icon"),this.cdo.isFolder===!0?(a.push("ico_folder"),b.push("folder"),this.rdo.attributes.readable||b.push("lock")):(a.push("ico_file"),this.rdo.attributes.readable?b.push("ext",this.cdo.extension):b.push("file","lock")),a.push(b.join("_"))),a.join(" ")},this),this.mouseDown=function(a,b){a.selected()||c.itemsModel.unselectItems(b.ctrlKey),c.selectionModel.unselect=a.selected(),a.selected(!0)},this.open=function(a,d){c.selectionModel.unselect&&(d.ctrlKey&&a.selected(!1),!d.ctrlKey&&x.manager.dblClickOpen&&(c.itemsModel.unselectItems(d.ctrlKey),a.selected(!0))),b(d)&&(x.options.quickSelect&&"file"===a.rdo.type&&e(a.rdo,"select")?Ha(a.rdo):h(a.rdo))},this.remove=function(){c.itemsModel.objects.remove(this)}},s=function(b){var c=this,d=[],e=[];this.setPreloader=function(a){return e.push(a),c},this.setDataHandler=function(a){return d.push(a),c},this.load=function(c){e.forEach(function(a,c,d){a.beforeLoad(b)}),c().then(function(c){c.data&&(a.each(d,function(a,d){d(c.data,b)}),a.each(e,function(a,d){d.afterLoad(b,c)}))})}},t=function(){var a=function(a){var b=this;this.column=ko.observable(a),this.order=ko.observable(c.itemsModel.listSortOrder()),this.sortClass=ko.pureComputed(function(){var a;return c.itemsModel.listSortField()===b.column()&&(a="sorted sorted-"+this.order()),a},this),this.sort=function(){var a="asc"===b.order(),d=c.itemsModel.listSortField()===b.column();b.order(d?a?"desc":"asc":c.itemsModel.listSortOrder()),c.itemsModel.listSortField(b.column()),c.itemsModel.listSortOrder(b.order()),c.itemsModel.sortObjects()}};this.thName=new a("name"),this.thType=new a("type"),this.thSize=new a("size"),this.thDimensions=new a("dimensions"), this.thModified=new a("modified")},w=function(){this.closeButton=ko.observable(!1),this.langSwitcher=a.isArray(x.language.available)&&x.language.available.length>0,this.closeButtonOnClick=function(){k.console("CLOSE button is clicked")},this.navHome=function(){c.previewFile(!1),c.itemsModel.loadDataList(y)},this.navLevelUp=function(){var a=c.previewFile()?ma(c.previewModel.rdo().id):na(c.currentPath());c.previewFile()&&c.previewFile(!1),a!==c.currentPath()&&c.itemsModel.loadDataList(a)},this.navRefresh=function(){c.previewFile()?(c.previewFile(!1),c.previewFile(!0)):c.itemsModel.loadDataList(c.currentPath())},this.displayGrid=function(){c.viewMode("grid"),c.previewFile(!1),c.itemsModel.lazyLoad&&c.itemsModel.lazyLoad.update()},this.displayList=function(){c.viewMode("list"),c.previewFile(!1)},this.switchLang=function(b){var c=b.target.value,d=E.getLang();if(c&&c.toLowerCase()!==d.toLowerCase()){var e,f=window.location.toString(),g=new RegExp("(langCode=)"+d);e=g.test(f)?f.replace(g,"$1"+c):f+(a.isEmptyObject(I.param())?"?":"#")+"langCode="+c,window.location.href=e}},this.createFolder=function(){function a(a,b){var c=b.getInputValue();return c?void za("GET",{mode:"addfolder",path:D.currentPath(),name:c}).done(function(a){a.data&&(D.addElements(a.data,D.currentPath()),b.closeDialog(),x.options.showConfirmation&&k.success(T("successful_added_folder")))}).fail(ba):void k.error(T("no_foldername"))}return d("createFolder")?void k.prompt({message:T("prompt_foldername"),value:T("default_foldername"),okBtn:{label:T("create_folder"),autoClose:!1,click:a},cancelBtn:{label:T("cancel")}}):(k.error(T("NOT_ALLOWED")),!1)}},z=function(){this.files=ko.observable(null),this.folders=ko.observable(null),this.size=ko.observable(null),this.enabled=ko.observable(!1),this.doSummarize=function(){Ua()}},A=function(){var b=this;this.name=ko.observable(null),this.setName=function(c){c&&x.filter&&a.isArray(x.filter[c])&&b.name(c)},this.getExtensions=function(){return b.name()?x.filter[b.name()]:null},this.filterItem=function(c){var d=b.getExtensions(),e=!c.cdo.hiddenBySearch;if(c.cdo.hiddenByType=!1,"file"===c.rdo.type&&a.isArray(d)){var f=ka(c.id),g=d.indexOf(f)!==-1;e=e&&g,c.cdo.hiddenByType=!g}c.visible(e)},this.filter=function(d){b.setName(d),a.each(c.itemsModel.objects(),function(a,c){b.filterItem(c)}),c.treeModel.mapNodes(function(a){b.filterItem(a)}),c.itemsModel.lazyLoad&&c.itemsModel.lazyLoad.update()},this.reset=function(){b.name(null),b.filter(null)}},F=function(){function b(){h?G.push("search",function(){d()},x.search.typingDelay):d()}function d(){var b=f.value(),d=x.search.caseSensitive?b:b.toLowerCase();if(""===b)return void(b!==g?e():k.warning(T("search_string_empty")));if(x.search.recursive){var h=c.currentPath(),i=new s(h);i.setPreloader(c.itemsModel.getPreloader()).setDataHandler(function(b,e){var g=[];x.search.caseSensitive?a.each(b,function(a,b){0===b.attributes.name.indexOf(d)&&g.push(b)}):g=b;var h=c.itemsModel.createItems(g);c.itemsModel.setItemsList(h),f.isRendered(!0)}).load(function(){return Sa(h,b)})}else a.each(c.itemsModel.objects(),function(a,b){var c=b.rdo.attributes.name;x.search.caseSensitive||(c=c.toLowerCase());var e=0===c.indexOf(d),f=!b.cdo.hiddenByType;f=f&&e,b.cdo.hiddenBySearch=!e,b.visible(f)}),f.isRendered(!0)}function e(){f.clearInput(),x.search.recursive?c.itemsModel.loadDataList(c.currentPath()):a.each(c.itemsModel.objects(),function(a,b){b.cdo.hiddenBySearch=!1,b.visible(!b.cdo.hiddenByType)})}var f=this,g="",h=!!x.search.typingDelay;this.value=ko.observable(""),this.isRendered=ko.observable(!1),this.value.subscribe(function(a){g=a},null,"beforeChange"),this.inputKeyUp=function(a,c){var d=c.which||c.keyCode,e=[16,17,18,27,37,38,39,40];if(h){if(e.indexOf(d)>-1)return;f.value(c.target.value)}(h||13===d)&&b()},this.seekItems=function(a,c){b()},this.reset=function(a,b){e()},this.clearInput=function(){g="",f.value(""),f.isRendered(!1),G.removeTimer("search")}},J=function(){function a(){e=[],b=null,f.itemsNum(0)}var b=null,e=[],f=this,g=d("copy")&&d("move");this.itemsNum=ko.observable(0),this.enabled=ko.observable(c.config().clipboard.enabled&&g),this.copy=function(){f.hasCapability("copy")&&(b="copy",e=c.fetchSelectedItems(),f.itemsNum(e.length))},this.cut=function(){f.hasCapability("cut")&&(b="cut",e=c.fetchSelectedItems(),f.itemsNum(e.length))},this.paste=function(){var d=c.currentPath();if(f.hasCapability("paste")&&!f.isEmpty())return null===b||0===e.length?void k.warning(T("clipboard_empty")):void Fa(e,function(a,c){return"cut"===b?La(c,d):"copy"===b?Ka(c,d):void 0},a)},this.clear=function(){f.hasCapability("clear")&&!f.isEmpty()&&(a(),k.success(T("clipboard_cleared")))},this.isEmpty=function(){return 0===e.length},this.hasCapability=function(a){if(!f.enabled)return!1;switch(a){case"copy":return d("copy");case"cut":return d("move");default:return!0}}},K=function(){var a=this;this.items=ko.observableArray([]),this.clean=function(){a.items([]),a.add(y,"")},this.add=function(c,d){a.items.push(new b(c,d))},this.splitPath=function(b){var c=y,d=b.replace(new RegExp("^"+y),"").split("/");for(a.clean();d.length>0;){var e=d.shift();e&&(c+=e+"/",a.add(c,e))}},this.splitCurrent=function(){a.splitPath(c.currentPath())},this.getLabel=ko.pureComputed(function(){var a=T(c.searchModel.isRendered()?"search_results":"current_folder");return a+": "},this);var b=function(a,b){var d=this;this.path=a,this.label=b,this.isRoot=a===y,this.active=a===c.currentPath(),this.itemClass=function(){var a=["nav-item"];return d.isRoot&&a.push("root"),d.active&&a.push("active"),a.join(" ")},this["goto"]=function(a,b){a.active||c.itemsModel.loadDataList(a.path)}}},L=function(){function b(a){return xa(a)?new f:wa(a)?new e:void 0}var c,d=this;this.rdo=ko.observable({}),this.content=ko.observable(null),this.renderer=ko.observable(null),this.render=function(a){d.renderer()&&d.renderer().processContent(a)},this.setRenderer=function(a){d.rdo(a),d.renderer(b(a.attributes.name))},this.setContainer=function(b){a.each(b,function(){if(a(this).hasClass("fm-renderer-container"))return c=a(this),!1}),d.renderer().processDomElements(c)};var e=function(){this.name="codeMirror",this.interactive=!1;var a=new M;this.processContent=function(b){a.render(b),d.content(b)},this.processDomElements=function(b){if(!a.instance){var c=b.find(".fm-cm-renderer-content")[0],e=ka(d.rdo().id);a.createInstance(e,c,{readOnly:"nocursor",styleActiveLine:!1,lineNumbers:!1})}}},f=function(){function b(){c.find("a").each(function(){var b=a(this).attr("href"),c=D.previewModel.editor;if(c.enabled()&&c.isInteractive())a(this).off("click"),a(this).on("click",function(){return!1});else{if(b.search("://")!==-1||ha(b,"mailto:"))return;xa(b)&&a(this).on("click",function(a){return Ta(b).then(function(a){a.data&&h(a.data)}),!1})}})}this.name="markdown",this.interactive=!0;var e=window.markdownit({html:!0,linkify:!0,typographer:!0,highlight:function(a,b){if(b&&hljs.getLanguage(b))try{return'<pre class="highlight"><code>'+hljs.highlight(b,a,!0).value+"</code></pre>"}catch(c){}return'<pre class="highlight"><code>'+e.utils.escapeHtml(a)+"</code></pre>"},replaceLink:function(a,b){if(a.search("://")!==-1||ha(a,"mailto:"))return a;var c=ha(a,"/")?y:ma(d.rdo().id),e=c+fa(a,"/");if(xa(e))return e;var f=ya("GET",{mode:"readfile",path:e});return Aa(f)}}).use(window.markdownitReplaceLink);this.processContent=function(a){var c=e.render(a);d.content(c),b()},this.processDomElements=function(a){}}},M=function(){function b(a){d.enabled(!0),d.instance.setValue(a),setTimeout(function(){d.instance.refresh()},0)}function c(a){var b=[],c="default";x.editor.codeHighlight&&("js"===a&&(b.push("/libs/CodeMirror/mode/javascript/javascript.js"),c="javascript"),"css"===a&&(b.push("/libs/CodeMirror/mode/css/css.js"),c="css"),"html"===a&&(b.push("/libs/CodeMirror/mode/xml/xml.js"),c="text/html"),"xml"===a&&(b.push("/libs/CodeMirror/mode/xml/xml.js"),c="application/xml"),"php"===a&&(b.push("/libs/CodeMirror/mode/htmlmixed/htmlmixed.js"),b.push("/libs/CodeMirror/mode/xml/xml.js"),b.push("/libs/CodeMirror/mode/javascript/javascript.js"),b.push("/libs/CodeMirror/mode/css/css.js"),b.push("/libs/CodeMirror/mode/clike/clike.js"),b.push("/libs/CodeMirror/mode/php/php.js"),c="application/x-httpd-php"),"java"===a&&(b.push("/libs/CodeMirror/mode/clike/clike.js"),c="text/x-java"),"sql"===a&&(b.push("/libs/CodeMirror/mode/sql/sql.js"),c="text/x-mysql"),"md"===a&&(b.push("/libs/CodeMirror/addon/mode/overlay.js"),b.push("/libs/CodeMirror/mode/xml/xml.js"),b.push("/libs/CodeMirror/mode/markdown/markdown.js"),b.push("/libs/CodeMirror/mode/gfm/gfm.js"),b.push("/libs/CodeMirror/mode/javascript/javascript.js"),b.push("/libs/CodeMirror/mode/css/css.js"),b.push("/libs/CodeMirror/mode/htmlmixed/htmlmixed.js"),b.push("/libs/CodeMirror/mode/clike/clike.js"),b.push("/libs/CodeMirror/mode/shell/shell.js"),b.push("/libs/CodeMirror/mode/meta.js"),c="gfm"),"sh"===a&&(b.push("/libs/CodeMirror/addon/mode/overlay.js"),b.push("/libs/CodeMirror/mode/markdown/markdown.js"),b.push("/libs/CodeMirror/mode/gfm/gfm.js"),b.push("/libs/CodeMirror/mode/javascript/javascript.js"),b.push("/libs/CodeMirror/mode/css/css.js"),b.push("/libs/CodeMirror/mode/htmlmixed/htmlmixed.js"),b.push("/libs/CodeMirror/mode/clike/clike.js"),b.push("/libs/CodeMirror/mode/meta.js"),b.push("/libs/CodeMirror/mode/shell/shell.js"),c="shell")),b.length?(b.push(function(){d.mode(c)}),X(b)):d.mode(c)}var d=this,e=null;this.instance=null,this.enabled=ko.observable(!1),this.content=ko.observable(null),this.mode=ko.observable(null),this.isInteractive=ko.observable(!1),this.mode.subscribe(function(a){a&&(d.instance.setOption("mode",a),e&&(b(e),e=null))}),this.render=function(a){d.mode()?b(a):e=a},this.createInstance=function(b,e,f){var g,h={readOnly:"nocursor",styleActiveLine:!1,viewportMargin:1/0,lineNumbers:x.editor.lineNumbers,lineWrapping:x.editor.lineWrapping,theme:x.editor.theme,matchBrackets:x.editor.matchBrackets,extraKeys:{F11:function(a){a.setOption("fullScreen",!a.getOption("fullScreen"))},Esc:function(a){a.getOption("fullScreen")&&a.setOption("fullScreen",!1)}}};g=CodeMirror.fromTextArea(e,a.extend({},h,f)),g.on("changes",function(a,b){d.content(a.getValue())}),d.instance=g,c(b)}},N=function(){function b(b){var c=a.grep(f.items,function(a,c){if("folder"===b.rdo.type||"parent"===b.rdo.type){if(ha(b.rdo.id,a.rdo.id))return!0;if(b.rdo.id===oa(a.rdo.id))return!0}return a.id===b.id});return b.rdo.attributes.writable&&0===c.length}function d(a){null!==f.hoveredItem&&f.hoveredItem.dragHovered(!1),f.hoveredItem=a,a&&a.dragHovered(!0)}function e(a,b){b?a.addClass(g):a.removeClass(g)}var f=this,g="drop-restricted",h=a("#drag-helper-template");this.items=[],this.hoveredItem=null,this.dragHelper=null,this.isScrolling=!1,this.isScrolled=!1,this.hoveredCssClass="drop-hover",this.makeDraggable=function(b,d){"file"!==b.rdo.type&&"folder"!==b.rdo.type||a(d).draggable({distance:3,cursor:"pointer",cursorAt:{left:Math.floor(h.width()/2),bottom:15},scroll:!1,appendTo:m,containment:l,refreshPositions:!1,helper:function(){var a,d;return d=c.fetchSelectedItems(b.constructor.name).length>1?"ico_multiple":"folder"===b.rdo.type?"ico_folder":"ico_file ico_ext_"+ka(b.rdo.id),a=h.children(".drag-helper").clone(),a.find(".clip").addClass(d),f.dragHelper=a,a},start:function(a,d){f.items=c.fetchSelectedItems(b.constructor.name)},drag:function(b,c){a(this).draggable("option","refreshPositions",f.isScrolling||f.isScrolled),f.isScrolled=!1},stop:function(a,b){f.items=[],f.dragHelper=null}})},this.makeDroppable=function(c,g){"folder"!==c.rdo.type&&"parent"!==c.rdo.type||a(g).droppable({tolerance:"pointer",enableExtendedEvents:c instanceof q,accept:function(a){var b=ko.dataFor(a[0]),c=b?b.rdo.type:null;return"file"===c||"folder"===c},over:function(a,f){setTimeout(function(){d(null),e(f.helper,!1),b(c)||e(f.helper,!0),d(c)},0)},out:function(a,b){d(null),e(b.helper,!1)},drop:function(a,e){return d(null),!!b(c)&&void Fa(f.items,function(a,b){return La(b.rdo,c.id)})}})}},O=function(){this.unselect=!1};this.treeModel=new n,this.itemsModel=new p,this.tableViewModel=new t,this.previewModel=new j,this.headerModel=new w,this.summaryModel=new z,this.filterModel=new A,this.searchModel=new F,this.clipboardModel=new J,this.breadcrumbsModel=new K,this.ddModel=new N,this.selectionModel=new O},T=function(a){return E.translate(a)},U=function(a){function b(a){var b,c=B;switch("list"===D.viewMode()&&(c=D.itemsModel.listSortField()),c){case"type":b=a.cdo.extension||"";break;case"size":b=a.rdo.attributes.size;break;case"modified":b=a.rdo.attributes.modified;break;case"dimensions":b=a.cdo.dimensions||"";break;default:b=a.rdo.attributes.name}return"string"==typeof b&&(f.cases||(b=b.toLowerCase()),b=b.replace(/\s+/g," ")),b}function c(a,b){for(var c=d(a.toString()),e=d(b.toString()),f=0;c[f]&&e[f];f++)if(c[f]!==e[f]){var g=Number(c[f]),h=Number(e[f]);return g==c[f]&&h==e[f]?g-h:c[f]>e[f]?1:-1}return c.length-e.length}function d(a){for(var b,c,d=[],e=0,f=-1,g=0;b=(c=a.charAt(e++)).charCodeAt(0);){var h=46==b||b>=48&&b<=57;h!==g&&(d[++f]="",g=h),d[f]+=c}return d}var e="list"===D.viewMode()?D.itemsModel.listSortOrder():C,f={natural:!0,order:"asc"===e?1:-1,cases:!1};a.sort(function(a,d){var e,g=b(a),h=b(d);return e=g===h?0:void 0===g||void 0===h?0:f.natural&&(isNaN(g)||isNaN(h))?c(g,h):g<h?-1:g>h?1:0,e*=f.order});for(var g=[],h=a.length;h--;)"folder"===a[h].rdo.type&&(g.push(a[h]),a.splice(h,1));"top"!==x.options.folderPosition&&g.reverse();for(var i=0,j=g.length;i<j;i++)"top"===x.options.folderPosition?a.unshift(g[i]):a.push(g[i]);return a},V=function(b){return a.ajax({type:"HEAD",url:b})},W=function(b){var c=null;return b="undefined"==typeof b?"user":b,c="user"===b?I.param("config")?k.settings.baseUrl+"/config/"+I.param("config"):k.settings.configUrl?k.settings.configUrl:k.settings.baseUrl+"/config/filemanager.config.json":k.settings.baseUrl+"/config/filemanager.config.default.json",a.ajax({type:"GET",url:c,dataType:"json",cache:!1,error:function(a){k.error("Given config file ("+c+") does not exist!")}})},X=function(a){for(var b=0,c=a.length;b<c;b++)"string"==typeof a[b]&&(a[b]=k.settings.baseUrl+a[b]);toast.apply(this,a)},Y=function(b,c){return a.ajax({type:"GET",url:k.settings.baseUrl+"/src/templates/"+b+".html",error:ba})},Z=function(a,b){if(!a)return"";b=b||!1;for(var c=parseFloat(a),d=parseFloat(b?1e3:1024),e=0,f=[T("unit_bytes"),T("unit_kb"),T("unit_mb"),T("unit_gb")];;){if(c<d)return c=Math.round(100*c)/100,c+" "+f[e];c/=d,e+=1}},$=function(a){var b="string"==typeof a,c="number"==typeof a&&Math.floor(a)===a;if(!b&&!c)return"";c&&a<1e10&&(a=1e3*a);var d=new Date(a);return d instanceof Date&&!isNaN(d)?F.formatDate(d,x.formatter.datetime):a},_=function(b){var c;return E.getLang()&&T(b.title)?(c=T(b.title),a.each(b.meta.arguments,function(a,b){c=c.replace("%s",b)})):c=b.title,c},aa=function(b){k.console("ERROR JSON",b),a.each(b,function(a,b){k.error(_(b)),b.meta.redirect&&(window.location.href=b.meta.redirect)})},ba=function(b){var c;if(a.isPlainObject(b)&&b.responseText){var d="application/json"===b.getResponseHeader("content-type");!b.responseJSON&&d&&(b.responseJSON=a.parseJSON(b.responseText)),a.isPlainObject(b.responseJSON)&&b.responseJSON.errors?aa(b.responseJSON.errors):c=T("ERROR_SERVER")+" "+b.responseText}else c=b;c&&(k.console("ERROR TEXT",c),k.error(c))};!function(a){a.extend({inArrayInsensitive:function(b,c,d){if("string"!=typeof b)return a.inArray.apply(this,arguments);if(c){var e=c.length;for(d=d?d<0?Math.max(0,e+d):d:0,b=b.toLowerCase();d<e;d++)if(d in c&&c[d].toLowerCase()==b)return d}return-1}})}(jQuery);var ca=function(b){var c=ka(b);if(x.security.extensions.ignoreCase){if("ALLOW_LIST"===x.security.extensions.policy&&a.inArrayInsensitive(c,x.security.extensions.restrictions)!==-1)return!0;if("DISALLOW_LIST"===x.security.extensions.policy&&a.inArrayInsensitive(c,x.security.extensions.restrictions)===-1)return!0}else{if("ALLOW_LIST"===x.security.extensions.policy&&a.inArray(c,x.security.extensions.restrictions)!==-1)return!0;if("DISALLOW_LIST"===x.security.extensions.policy&&a.inArray(c,x.security.extensions.restrictions)===-1)return!0}return!1},da=function(a){return"/"!==a.charAt(a.length-1)},ea=function(a,b){var c=new RegExp("^"+b+"+|"+b+"+$","g");return a.replace(c,"")},fa=function(a,b){var c=new RegExp("^"+b+"+","g");return a.replace(c,"")},ga=function(a,b){var c=new RegExp(b+"+$","g");return a.replace(c,"")},ha=function(a,b,c){return c=c||0,a.substr(c,b.length)===b},ia=function(b){var c=[];return a.each(b.split("/"),function(a,b){c.push(encodeURIComponent(b))}),c.join("/")},ja=function(a){return a.replace(/\\/g,"/").replace(/\/+/g,"/")},ka=function(a){return 1===a.split(".").length?"":a.split(".").pop().toLowerCase()},la=function(a){return a.lastIndexOf(".")!==-1?a.substring(0,a.lastIndexOf(".")):a},ma=function(a){return a.lastIndexOf("/")!==a.length-1?a.substr(0,a.lastIndexOf("/")+1):a},na=function(a){return a.split("/").reverse().slice(2).reverse().join("/")+"/"},oa=function(a){return a.substring(0,a.slice(0,-1).lastIndexOf("/"))+"/"},pa=function(b){return a.inArray(ka(b),x.editor.extensions)!==-1},qa=function(b){return a.inArray(ka(b),x.viewer.image.extensions)!==-1},ra=function(b){return a.inArray(ka(b),x.viewer.video.extensions)!==-1},sa=function(b){return a.inArray(ka(b),x.viewer.audio.extensions)!==-1},ta=function(b){return a.inArray(ka(b),x.viewer.iframe.extensions)!==-1},ua=function(b){return a.inArray(ka(b),x.viewer.opendoc.extensions)!==-1},va=function(b){return a.inArray(ka(b),x.viewer.google.extensions)!==-1},wa=function(b){return a.inArray(ka(b),x.viewer.codeMirrorRenderer.extensions)!==-1},xa=function(b){return a.inArray(ka(b),x.viewer.markdownRenderer.extensions)!==-1},ya=function(b,c){var d,e=x.api.requestParams;if(b=b.toUpperCase(),a.isPlainObject(e)&&(d=e[b],a.isPlainObject(d)&&!a.isEmptyObject(d))){var f=a.extend({},e.MIXED||{},d);"POST"===b&&a.isArray(c)?a.each(f,function(a,b){c.push({name:a,value:b})}):c=a.extend({},c,f)}return c