/**
* Default elFinder config
*
* @type Object
* @autor Dmitry (dio) Levashov
*/
elFinder.prototype._options = {
/**
* URLs of 3rd party libraries CDN
*
* @type Object
*/
cdns : {
// for editor etc.
ace : 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12',
codemirror : 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.61.1',
ckeditor : 'https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.16.1',
ckeditor5 : 'https://cdn.ckeditor.com/ckeditor5/28.0.0',
tinymce : 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.7.1',
simplemde : 'https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2',
fabric : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.2.0',
fabric16 : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7',
tui : 'https://uicdn.toast.com',
// for quicklook etc.
hls : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.2/hls.min.js',
dash : 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/3.2.2/dash.all.min.js',
flv : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.5.0/flv.min.js',
videojs : 'https://cdnjs.cloudflare.com/ajax/libs/video.js/7.12.1',
prettify : 'https://cdn.jsdelivr.net/gh/google/code-prettify@f1c3473acd1e8ea8c8c1a60c56e89f5cdd06f915/loader/run_prettify.js',
psd : 'https://cdnjs.cloudflare.com/ajax/libs/psd.js/3.2.0/psd.min.js',
rar : 'https://cdn.jsdelivr.net/gh/nao-pon/rar.js@6cef13ec66dd67992fc7f3ea22f132d770ebaf8b/rar.min.js',
zlibUnzip : 'https://cdn.jsdelivr.net/gh/imaya/zlib.js@0.3.1/bin/unzip.min.js', // need check unzipFiles() in quicklook.plugins.js when update
zlibGunzip : 'https://cdn.jsdelivr.net/gh/imaya/zlib.js@0.3.1/bin/gunzip.min.js',
bzip2 : 'https://cdn.jsdelivr.net/gh/nao-pon/bzip2.js@0.8.0/bzip2.js',
marked : 'https://cdnjs.cloudflare.com/ajax/libs/marked/2.0.3/marked.min.js',
sparkmd5 : 'https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js',
jssha : 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/3.2.0/sha.min.js',
amr : 'https://cdn.jsdelivr.net/gh/yxl/opencore-amr-js@dcf3d2b5f384a1d9ded2a54e4c137a81747b222b/js/amrnb.js',
tiff : 'https://cdn.jsdelivr.net/gh/seikichi/tiff.js@545ede3ee46b5a5bc5f06d65954e775aa2a64017/tiff.min.js'
},
/**
* Connector url. Required!
*
* @type String
*/
url : '',
/**
* Ajax request type.
*
* @type String
* @default "get"
*/
requestType : 'get',
/**
* Use CORS to connector url
*
* @type Boolean|null true|false|null(Auto detect)
*/
cors : null,
/**
* Array of header names to return parrot out in HTTP headers received from the server
*
* @type Array
*/
parrotHeaders : [],
/**
* Maximum number of concurrent connections on request
*
* @type Number
* @default 3
*/
requestMaxConn : 3,
/**
* Transport to send request to backend.
* Required for future extensions using websockets/webdav etc.
* Must be an object with "send" method.
* transport.send must return jQuery.Deferred() object
*
* @type Object
* @default null
* @example
* transport : {
* init : function(elfinderInstance) { },
* send : function(options) {
* var dfrd = jQuery.Deferred();
* // connect to backend ...
* return dfrd;
* },
* upload : function(data) {
* var dfrd = jQuery.Deferred();
* // upload ...
* return dfrd;
* }
*
* }
**/
transport : {},
/**
* URL to upload file to.
* If not set - connector URL will be used
*
* @type String
* @default ''
*/
urlUpload : '',
/**
* Allow to drag and drop to upload files
*
* @type Boolean|String
* @default 'auto'
*/
dragUploadAllow : 'auto',
/**
* Confirmation dialog displayed at the time of overwriting upload
*
* @type Boolean
* @default true
*/
overwriteUploadConfirm : true,
/**
* Max size of chunked data of file upload
*
* @type Number
* @default 10485760(10MB)
*/
uploadMaxChunkSize : 10485760,
/**
* Regular expression of file name to exclude when uploading folder
*
* @type Object
* @default { win: /^(?:desktop\.ini|thumbs\.db)$/i, mac: /^\.ds_store$/i }
*/
folderUploadExclude : {
win: /^(?:desktop\.ini|thumbs\.db)$/i,
mac: /^\.ds_store$/i
},
/**
* Timeout for upload using iframe
*
* @type Number
* @default 0 - no timeout
*/
iframeTimeout : 0,
/**
* Data to append to all requests and to upload files
*
* @type Object
* @default {}
*/
customData : {},
/**
* Event listeners to bind on elFinder init
*
* @type Object
* @default {}
*/
handlers : {},
/**
* Any custom headers to send across every ajax request
*
* @type Object
* @default {}
*/
customHeaders : {},
/**
* Any custom xhrFields to send across every ajax request
*
* @type Object
* @default {}
*/
xhrFields : {},
/**
* Interface language
*
* @type String
* @default "en"
*/
lang : 'en',
/**
* Base URL of elfFinder library starting from Manager HTML
* Auto detect when empty value
*
* @type String
* @default ""
*/
baseUrl : '',
/**
* Base URL of i18n js files
* baseUrl + "js/i18n/" when empty value
*
* @type String
* @default ""
*/
i18nBaseUrl : '',
/**
* Base URL of worker js files
* baseUrl + "js/worker/" when empty value
*
* @type String
* @default ""
*/
workerBaseUrl : '',
/**
* Auto load required CSS
* `false` to disable this function or
* CSS URL Array to load additional CSS files
*
* @type Boolean|Array
* @default true
*/
cssAutoLoad : true,
/**
* Theme to load
* {"themeid" : "Theme CSS URL"} or
* {"themeid" : "Theme manifesto.json URL"} or
* Theme manifesto.json Object
* {
* "themeid" : {
* "name":"Theme Name",
* "cssurls":"Theme CSS URL",
* "author":"Author Name",
* "email":"Author Email",
* "license":"License",
* "link":"Web Site URL",
* "image":"Screen Shot URL",
* "description":"Description"
* }
* }
*
* @type Object
*/
themes : {},
/**
* Theme id to initial theme
*
* @type String|Null
*/
theme : null,
/**
* Maximum value of error dialog open at the same time
*
* @type Number
*/
maxErrorDialogs : 5,
/**
* Additional css class for filemanager node.
*
* @type String
*/
cssClass : '',
/**
* Active commands list. '*' means all of the commands that have been load.
* If some required commands will be missed here, elFinder will add its
*
* @type Array
*/
commands : ['*'],
// Available commands list
//commands : [
// 'archive', 'back', 'chmod', 'colwidth', 'copy', 'cut', 'download', 'duplicate', 'edit', 'extract',
// 'forward', 'fullscreen', 'getfile', 'help', 'home', 'info', 'mkdir', 'mkfile', 'netmount', 'netunmount',
// 'open', 'opendir', 'paste', 'places', 'quicklook', 'reload', 'rename', 'resize', 'restore', 'rm',
// 'search', 'sort', 'up', 'upload', 'view', 'zipdl'
//],
/**
* Commands options.
*
* @type Object
**/
commandsOptions : {
// // configure shortcuts of any command
// // add `shortcuts` property into each command
// any_command_name : {
// shortcuts : [] // for disable this command's shortcuts
// },
// any_command_name : {
// shortcuts : function(fm, shortcuts) {
// // for add `CTRL + E` for this command action
// shortcuts[0]['pattern'] += ' ctrl+e';
// return shortcuts;
// }
// },
// any_command_name : {
// shortcuts : function(fm, shortcuts) {
// // for full customize of this command's shortcuts
// return [ { pattern: 'ctrl+e ctrl+down numpad_enter' + (fm.OS != 'mac' && ' enter') } ];
// }
// },
// "getfile" command options.
getfile : {
onlyURL : false,
// allow to return multiple files info
multiple : false,
// allow to return filers info
folders : false,
// action after callback (""/"close"/"destroy")
oncomplete : '',
// action when callback is fail (""/"close"/"destroy")
onerror : '',
// get path before callback call
getPath : true,
// get image sizes before callback call
getImgSize : false
},
open : {
// HTTP method that request to the connector when item URL is not valid URL.
// If you set to "get" will be displayed request parameter in the browser's location field
// so if you want to conceal its parameters should be given "post".
// Nevertheless, please specify "get" if you want to enable the partial request by HTTP Range header.
method : 'post',
// Where to open into : 'window'(default), 'tab' or 'tabs'
// 'tabs' opens in each tabs
into : 'window',
// Default command list of action when select file
// String value that is 'Command Name' or 'Command Name1/CommandName2...'
selectAction : 'open'
},
opennew : {
// URL of to open elFinder manager
// Default '' : Origin URL
url : '',
// Use search query of origin URL
useOriginQuery : true
},
// "upload" command options.
upload : {
// Open elFinder upload dialog: 'button' OR Open system OS upload dialog: 'uploadbutton'
ui : 'button'
},
// "download" command options.
download : {
// max request to download files when zipdl disabled
maxRequests : 10,
// minimum count of files to use zipdl
minFilesZipdl : 2
},
// "quicklook" command options.
quicklook : {
autoplay : true,
width : 450,
height : 300,
// ControlsList of HTML5 audio/video preview
// see https://googlechrome.github.io/samples/media/controlslist.html
mediaControlsList : '', // e.g. 'nodownload nofullscreen noremoteplayback'
// Show toolbar of PDF preview (with <embed> tag)
pdfToolbar : true,
// Maximum lines to preview at initial
textInitialLines : 100,
// Maximum lines to preview by prettify
prettifyMaxLines : 300,
// quicklook window must be contained in elFinder node on window open (true|false)
contain : false,
// preview window into NavDock (0 : undocked | 1 : docked(show) | 2 : docked(hide))
docked : 0,
// Docked preview height ('auto' or Number of pixel) 'auto' is setted to the Navbar width
dockHeight : 'auto',
// media auto play when docked
dockAutoplay : false,
// Google Maps API key (Require Maps JavaScript API)
googleMapsApiKey : '',
// Google Maps API Options
googleMapsOpts : {
maps : {},
kml : {
suppressInfoWindows : false,
preserveViewport : false
}
},
// ViewerJS (https://viewerjs.org/) Options
// To enable this you need to place ViewerJS on the same server as elFinder and specify that URL in `url`.
viewerjs : {
url: '', // Example '/ViewerJS/index.html'
mimes: ['application/pdf', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation'],
pdfNative: true // Use Native PDF Viewer first
},
// MIME types to CAD-Files and 3D-Models online viewer on sharecad.org
// Example ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile']
sharecadMimes : [],
// MIME types to use Google Docs online viewer
// Example ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf']
googleDocsMimes : [],
// MIME types to use Microsoft Office Online viewer
// Example ['application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
// These MIME types override "googleDocsMimes"
officeOnlineMimes : [],
// File size threshold when using the dim command for obtain the image size necessary to image preview
getDimThreshold : '200K',
// Max filesize to show filenames of the zip/tar/gzip/bzip file
unzipMaxSize : '50M',
// MIME-Type regular expression that does not check empty files
mimeRegexNotEmptyCheck : /^application\/vnd\.google-apps\./
},
// "edit" command options.
edit : {
// dialog width, integer(px) or integer+'%' (example: 650, '80%' ...)
dialogWidth : void(0),
// dialog height, integer(px) or integer+'%' (example: 650, '80%' ...)
dialogHeight : void(0),
// list of allowed mimetypes to edit of text files
// if empty - any text files can be edited
mimes : [],
// MIME-types to unselected as default of "File types to enable with "New file"" in preferences
mkfileHideMimes : [],
// MIME-types of text file to make empty file
makeTextMimes : ['text/plain', 'text/css', 'text/html'],
// Use the editor stored in the browser
// This value allowd overwrite with user preferences
useStoredEditor : false,
// Open the maximized editor window
// This value allowd overwrite with user preferences
editorMaximized : false,
// edit files in wysisyg's
editors : [
// {
// /**
// * editor info
// * @type Object
// */
// info : { name: 'Editor Name' },
// /**
// * files mimetypes allowed to edit in current wysisyg
// * @type Array
// */
// mimes : ['text/html'],
// /**
// * HTML element for editing area (optional for text editor)
// * @type String
// */
// html : '<textarea></textarea>',
// /**
// * Initialize editing area node (optional for text editor)
// *
// * @param String dialog DOM id
// * @param Object target file object
// * @param String target file content (text or Data URI Scheme(binary file))
// * @param Object elFinder instance
// * @type Function
// */
// init : function(id, file, content, fm) {
// jQuery(this).attr('id', id + '-text').val(content);
// },
// /**
// * Get edited contents (optional for text editor)
// * @type Function
// */
// getContent : function() {
// return jQuery(this).val();
// },
// /**
// * Called when "edit" dialog loaded.
// * Place to init wysisyg.
// * Can return wysisyg instance
// *
// * @param DOMElement textarea node
// * @return Object editor instance|jQuery.Deferred(return instance on resolve())
// */
// load : function(textarea) { },
// /**
// * Called before "edit" dialog closed.
// * Place to destroy wysisyg instance.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// close : function(textarea, instance) { },
// /**
// * Called before file content send to backend.
// * Place to update textarea content if needed.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// save : function(textarea, instance) {},
// /**
// * Called after load() or save().
// * Set focus to wysisyg editor.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// focus : function(textarea, instance) {}
// /**
// * Called after dialog resized..
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @param Object resize event object
// * @param Object dat