1/** 2 * Default elFinder config 3 * 4 * @type Object 5 * @autor Dmitry (dio) Levashov 6 */ 7elFinder.prototype._options = { 8 /** 9 * URLs of 3rd party libraries CDN 10 * 11 * @type Object 12 */ 13 cdns : { 14 // for editor etc. 15 ace : 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8', 16 codemirror : 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2', 17 ckeditor : 'https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.12.1', 18 ckeditor5 : 'https://cdn.ckeditor.com/ckeditor5/17.0.0', 19 tinymce : 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.2.0', 20 simplemde : 'https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2', 21 fabric : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2', 22 fabric16 : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7', 23 tui : 'https://uicdn.toast.com', 24 // for quicklook etc. 25 hls : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.13.2/hls.min.js', 26 dash : 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/3.0.3/dash.all.min.js', 27 flv : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.5.0/flv.min.js', 28 videojs : 'https://cdnjs.cloudflare.com/ajax/libs/video.js/7.7.5', 29 prettify : 'https://cdn.jsdelivr.net/gh/google/code-prettify@f1c3473acd1e8ea8c8c1a60c56e89f5cdd06f915/loader/run_prettify.js', 30 psd : 'https://cdnjs.cloudflare.com/ajax/libs/psd.js/3.2.0/psd.min.js', 31 rar : 'https://cdn.jsdelivr.net/gh/nao-pon/rar.js@6cef13ec66dd67992fc7f3ea22f132d770ebaf8b/rar.min.js', 32 zlibUnzip : 'https://cdn.jsdelivr.net/gh/imaya/[email protected]/bin/unzip.min.js', // need check unzipFiles() in quicklook.plugins.js when update 33 zlibGunzip : 'https://cdn.jsdelivr.net/gh/imaya/[email protected]/bin/gunzip.min.js', 34 bzip2 : 'https://cdn.jsdelivr.net/gh/nao-pon/[email protected]/bzip2.js', 35 marked : 'https://cdnjs.cloudflare.com/ajax/libs/marked/0.7.0/marked.min.js', 36 sparkmd5 : 'https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js', 37 jssha : 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/2.3.1/sha.js', 38 amr : 'https://cdn.jsdelivr.net/gh/yxl/opencore-amr-js@dcf3d2b5f384a1d9ded2a54e4c137a81747b222b/js/amrnb.js', 39 tiff : 'https://cdn.jsdelivr.net/gh/seikichi/tiff.js@545ede3ee46b5a5bc5f06d65954e775aa2a64017/tiff.min.js' 40 }, 41 42 /** 43 * Connector url. Required! 44 *
45 * @type String 46 */ 47 url : '', 48 49 /** 50 * Ajax request type. 51 * 52 * @type String 53 * @default "get" 54 */ 55 requestType : 'get', 56 57 /** 58 * Use CORS to connector url 59 * 60 * @type Boolean|null true|false|null(Auto detect) 61 */ 62 cors : null, 63 64 /** 65 * Array of header names to return parrot out in HTTP headers received from the server 66 * 67 * @type Array 68 */ 69 parrotHeaders : [], 70 71 /** 72 * Maximum number of concurrent connections on request 73 * 74 * @type Number 75 * @default 3 76 */ 77 requestMaxConn : 3, 78 79 /** 80 * Transport to send request to backend. 81 * Required for future extensions using websockets/webdav etc. 82 * Must be an object with "send" method. 83 * transport.send must return $.Deferred() object 84 * 85 * @type Object 86 * @default null 87 * @example 88 * transport : { 89 * init : function(elfinderInstance) { }, 90 * send : function(options) { 91 * var dfrd = $.Deferred(); 92 * // connect to backend ... 93 * return dfrd; 94 * }, 95 * upload : function(data) { 96 * var dfrd = $.Deferred(); 97 * // upload ... 98 * return dfrd; 99 * } 100 * 101 * } 102 **/ 103 transport : {}, 104 105 /** 106 * URL to upload file to. 107 * If not set - connector URL will be used 108 *
109 * @type String 110 * @default '' 111 */ 112 urlUpload : '', 113 114 /** 115 * Allow to drag and drop to upload files 116 * 117 * @type Boolean|String 118 * @default 'auto' 119 */ 120 dragUploadAllow : 'auto', 121 122 /** 123 * Confirmation dialog displayed at the time of overwriting upload 124 * 125 * @type Boolean 126 * @default true 127 */ 128 overwriteUploadConfirm : true, 129 130 /** 131 * Max size of chunked data of file upload 132 * 133 * @type Number 134 * @default 10485760(10MB) 135 */ 136 uploadMaxChunkSize : 10485760, 137 138 /** 139 * Regular expression of file name to exclude when uploading folder 140 * 141 * @type Object 142 * @default { win: /^(?:desktop\.ini|thumbs\.db)$/i, mac: /^\.ds_store$/i } 143 */ 144 folderUploadExclude : { 145 win: /^(?:desktop\.ini|thumbs\.db)$/i, 146 mac: /^\.ds_store$/i 147 }, 148 149 /** 150 * Timeout for upload using iframe 151 * 152 * @type Number 153 * @default 0 - no timeout 154 */ 155 iframeTimeout : 0, 156 157 /** 158 * Data to append to all requests and to upload files 159 * 160 * @type Object 161 * @default {} 162 */ 163 customData : {}, 164 165 /** 166 * Event listeners to bind on elFinder init 167 * 168 * @type Object 169 * @default {} 170 */ 171 handlers : {}, 172 173 /** 174 * Any custom headers to send across every ajax request 175 * 176 * @type Object 177 * @default {} 178 */ 179 customHeaders : {}, 180 181 /** 182 * Any custom xhrFields to send across every ajax request 183 * 184 * @type Object 185 * @default {} 186 */ 187 xhrFields : {}, 188 189 /** 190 * Interface language 191 *
192 * @type String 193 * @default "en" 194 */ 195 lang : 'en', 196 197 /** 198 * Base URL of elfFinder library starting from Manager HTML 199 * Auto detect when empty value 200 * 201 * @type String 202 * @default "" 203 */ 204 baseUrl : '', 205 206 /** 207 * Base URL of i18n js files 208 * baseUrl + "js/i18n/" when empty value 209 * 210 * @type String 211 * @default "" 212 */ 213 i18nBaseUrl : '', 214 215 /** 216 * Auto load required CSS 217 * `false` to disable this function or 218 * CSS URL Array to load additional CSS files 219 * 220 * @type Boolean|Array 221 * @default true 222 */ 223 cssAutoLoad : true, 224 225 /** 226 * Theme to load 227 * {"themeid" : "Theme CSS URL"} or 228 * {"themeid" : "Theme manifesto.json URL"} or 229 * Theme manifesto.json Object 230 * { 231 * "themeid" : { 232 * "name":"Theme Name", 233 * "cssurls":"Theme CSS URL", 234 * "author":"Author Name", 235 * "email":"Author Email", 236 * "license":"License", 237 * "link":"Web Site URL", 238 * "image":"Screen Shot URL", 239 * "description":"Description" 240 * } 241 * } 242 * 243 * @type Object 244 */ 245 themes : {}, 246 247 /** 248 * Theme id to initial theme 249 *
250 * @type String|Null 251 */ 252 theme : null, 253 254 /** 255 * Maximum value of error dialog open at the same time 256 * 257 * @type Number 258 */ 259 maxErrorDialogs : 5, 260 261 /** 262 * Additional css class for filemanager node. 263 * 264 * @type String 265 */ 266 cssClass : '', 267 268 /** 269 * Active commands list. '*' means all of the commands that have been load. 270 * If some required commands will be missed here, elFinder will add its 271 * 272 * @type Array 273 */ 274 commands : ['*'], 275 // Available commands list 276 //commands : [ 277 // 'archive', 'back', 'chmod', 'colwidth', 'copy', 'cut', 'download', 'duplicate', 'edit', 'extract', 278 // 'forward', 'fullscreen', 'getfile', 'help', 'home', 'info', 'mkdir', 'mkfile', 'netmount', 'netunmount', 279 // 'open', 'opendir', 'paste', 'places', 'quicklook', 'reload', 'rename', 'resize', 'restore', 'rm', 280 // 'search', 'sort', 'up', 'upload', 'view', 'zipdl' 281 //], 282 283 /** 284 * Commands options. 285 * 286 * @type Object 287 **/ 288 commandsOptions : { 289 // // configure shortcuts of any command 290 // // add `shortcuts` property into each command 291 // any_command_name : { 292 // shortcuts : [] // for disable this command's shortcuts 293 // }, 294 // any_command_name : { 295 // shortcuts : function(fm, shortcuts) { 296 // // for add `CTRL + E` for this command action 297 // shortcuts[0]['pattern'] += ' ctrl+e'; 298 // return shortcuts; 299 // } 300 // }, 301 // any_command_name : { 302 // shortcuts : function(fm, shortcuts) { 303 // // for full customize of this command's shortcuts 304 // return [ { pattern: 'ctrl+e ctrl+down numpad_enter' + (fm.OS != 'mac' && ' enter') } ]; 305 // } 306 // }, 307 // "getfile" command options. 308 getfile : { 309 onlyURL : false, 310 // allow to return multiple files info 311 multiple : false, 312 // allow to return filers info 313 folders : false, 314 // action after callback (""/"close"/"destroy") 315 oncomplete : '', 316 // action when callback is fail (""/"close"/"destroy") 317 onerror : '', 318 // get path before callback call 319 getPath : true, 320 // get image sizes before callback call 321 getImgSize : false 322 }, 323 open : { 324 // HTTP method that request to the connector when item URL is not valid URL. 325 // If you set to "get" will be displayed request parameter in the browser's location field 326 // so if you want to conceal its parameters should be given "post". 327 // Nevertheless, please specify "get" if you want to enable the partial request by HTTP Range header. 328 method : 'post', 329 // Where to open into : 'window'(default), 'tab' or 'tabs' 330 // 'tabs' opens in each tabs 331 into : 'window', 332 // Default command list of action when select file 333 // String value that is 'Command Name' or 'Command Name1/CommandName2...' 334 selectAction : 'open' 335 }, 336 opennew : { 337 // URL of to open elFinder manager 338 // Default '' : Origin URL 339 url : '', 340 // Use search query of origin URL 341 useOriginQuery : true 342 }, 343 // "upload" command options. 344 upload : { 345 // Open elFinder upload dialog: 'button' OR Open system OS upload dialog: 'uploadbutton' 346 ui : 'button' 347 }, 348 // "download" command options. 349 download : { 350 // max request to download files when zipdl disabled 351 maxRequests : 10, 352 // minimum count of files to use zipdl 353 minFilesZipdl : 2 354 }, 355 // "quicklook" command options. 356 quicklook : { 357 autoplay : true, 358 width : 450, 359 height : 300, 360 // ControlsList of HTML5 audio/video preview
361 // see https://googlechrome.github.io/samples/media/controlslist.html 362 mediaControlsList : '', // e.g. 'nodownload nofullscreen noremoteplayback' 363 // Show toolbar of PDF preview (with <embed> tag) 364 pdfToolbar : true, 365 // Maximum lines to preview at initial 366 textInitialLines : 100, 367 // Maximum lines to preview by prettify 368 prettifyMaxLines : 300, 369 // quicklook window must be contained in elFinder node on window open (true|false) 370 contain : false, 371 // preview window into NavDock (0 : undocked | 1 : docked(show) | 2 : docked(hide)) 372 docked : 0, 373 // Docked preview height ('auto' or Number of pixel) 'auto' is setted to the Navbar width 374 dockHeight : 'auto', 375 // media auto play when docked 376 dockAutoplay : false, 377 // Google Maps API key (Require Maps JavaScript API) 378 googleMapsApiKey : '', 379 // Google Maps API Options 380 googleMapsOpts : { 381 maps : {}, 382 kml : { 383 suppressInfoWindows : false, 384 preserveViewport : false 385 } 386 }, 387 // ViewerJS (https://viewerjs.org/) Options 388 // To enable this you need to place ViewerJS on the same server as elFinder and specify that URL in `url`. 389 viewerjs : { 390 url: '', // Example '/ViewerJS/index.html' 391 mimes: ['application/pdf', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation'], 392 pdfNative: true // Use Native PDF Viewer first 393 }, 394 // MIME types to CAD-Files and 3D-Models online viewer on sharecad.org 395 // 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'] 396 sharecadMimes : [], 397 // MIME types to use Google Docs online viewer 398 // 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'] 399 googleDocsMimes : [], 400 // MIME types to use Microsoft Office Online viewer 401 // 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'] 402 // These MIME types override "googleDocsMimes" 403 officeOnlineMimes : [], 404 // File size threshold when using the dim command for obtain the image size necessary to image preview 405 getDimThreshold : '200K', 406 // Max filesize to show filenames of the zip/tar/gzip/bzip file 407 unzipMaxSize : '50M', 408 // MIME-Type regular expression that does not check empty files 409 mimeRegexNotEmptyCheck : /^application\/vnd\.google-apps\./ 410 }, 411 // "edit" command options. 412 edit : { 413 // dialog width, integer(px) or integer+'%' (example: 650, '80%' ...) 414 dialogWidth : void(0), 415 // dialog height, integer(px) or integer+'%' (example: 650, '80%' ...) 416 dialogHeight : void(0), 417 // list of allowed mimetypes to edit of text files 418 // if empty - any text files can be edited 419 mimes : [], 420 // MIME-types to unselected as default of "File types to enable with "New file"" in preferences 421 mkfileHideMimes : [], 422 // MIME-types of text file to make empty file 423 makeTextMimes : ['text/plain', 'text/css', 'text/html'], 424 // Use the editor stored in the browser 425 // This value allowd overwrite with user preferences 426 useStoredEditor : false, 427 // Open the maximized editor window 428 // This value allowd overwrite with user preferences 429 editorMaximized : false, 430 // edit files in wysisyg's 431 editors : [ 432 // { 433 // /** 434 // * editor info 435 // * @type Object 436 // */
437 // info : { name: 'Editor Name' }, 438 // /** 439 // * files mimetypes allowed to edit in current wysisyg 440 // * @type Array 441 // */ 442 // mimes : ['text/html'], 443 // /** 444 // * HTML element for editing area (optional for text editor) 445 // * @type String 446 // */ 447 // html : '<textarea></textarea>', 448 // /** 449 // * Initialize editing area node (optional for text editor) 450 // * 451 // * @param String dialog DOM id 452 // * @param Object target file object 453 // * @param String target file content (text or Data URI Scheme(binary file)) 454 // * @param Object elFinder instance 455 // * @type Function 456 // */ 457 // init : function(id, file, content, fm) { 458 // $(this).attr('id', id + '-text').val(content); 459 // }, 460 // /** 461 // * Get edited contents (optional for text editor) 462 // * @type Function 463 // */ 464 // getContent : function() { 465 // return $(this).val(); 466 // }, 467 // /** 468 // * Called when "edit" dialog loaded. 469 // * Place to init wysisyg. 470 // * Can return wysisyg instance 471 // * 472 // * @param DOMElement textarea node 473 // * @return Object editor instance|jQuery.Deferred(return instance on resolve()) 474 // */ 475 // load : function(textarea) { }, 476 // /** 477 // * Called before "edit" dialog closed. 478 // * Place to destroy wysisyg instance. 479 // * 480 // * @param DOMElement textarea node 481 // * @param Object wysisyg instance (if was returned by "load" callback) 482 // * @return void 483 // */ 484 // close : function(textarea, instance) { }, 485 // /** 486 // * Called before file content send to backend. 487 // * Place to update textarea content if needed. 488 // * 489 // * @param DOMElement textarea node 490 // * @param Object wysisyg instance (if was returned by "load" callback) 491 // * @return void 492 // */ 493 // save : function(textarea, instance) {}, 494 // /** 495 // * Called after load() or save(). 496 // * Set focus to wysisyg editor. 497 // * 498 // * @param DOMElement textarea node 499 // * @param Object wysisyg instance (if was returned by "load" callback) 500 // * @return void 501 // */ 502 // focus : function(textarea, instance) {} 503 // /** 504 // * Called after dialog resized.. 505 // * 506 // * @param DOMElement textarea node 507 // * @param Object wysisyg instance (if was returned by "load" callback) 508 // * @param Object resize event object 509 // * @param Object data object 510 // * @return void 511 // */ 512 // resize : function(textarea, instance, event, data) {} 513 // 514 // } 515 ], 516 // Character encodings of select box 517 encodings : ['Big5', 'Big5-HKSCS', 'Cp437', 'Cp737', 'Cp775', 'Cp850', 'Cp852', 'Cp855', 'Cp857', 'Cp858', 518 'Cp862', 'Cp866', 'Cp874', 'EUC-CN', 'EUC-JP', 'EUC-KR', 'GB18030', 'ISO-2022-CN', 'ISO-2022-JP', 'ISO-2022-KR', 519 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 520 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-13', 'ISO-8859-15', 'KOI8-R', 'KOI8-U', 'Shift-JIS', 521 'Windows-1250', 'Windows-1251', 'Windows-1252', 'Windows-1253', 'Windows-1254', 'Windows-1257'], 522 // options for extra editors 523 extraOptions : { 524 // upload command options 525 uploadOpts : {}, 526 // TUI Image Editor's options 527 tuiImgEditOpts : { 528 // Path prefix of icon-a.svg, icon-b.svg, icon-c.svg and icon-d.svg in the Theme. 529 // `iconsPath` MUST follow the same origin policy. 530 iconsPath : void(0), // default is "./img/tui-" 531 // Theme object 532 theme : {} 533 }, 534 // Pixo image editor constructor options - https://pixoeditor.com/ 535 // Require 'apikey' to enable it 536 pixo: { 537 apikey: '' 538 }, 539 // Browsing manager URL for CKEditor, TinyMCE 540 // Uses self location with the empty value or not defined. 541 //managerUrl : 'elfinder.html' 542 managerUrl : null, 543 // CKEditor editor options 544 ckeditor: {}, 545 // CKEditor 5 editor options 546 ckeditor5: { 547 // builds mode - 'classic', 'inline', 'balloon', 'balloon-block' or 'decoupled-document' 548 mode: 'decoupled-document' 549 }, 550 // TinyMCE editor options 551 tinymce : {}, 552 // Setting for Online-Convert.com 553 onlineConvert : { 554 maxSize : 100, // (MB) Max 100MB on free account 555 showLink : true // It must be enabled with free account 556 } 557 } 558 }, 559 fullscreen : { 560 // fullscreen mode 'screen'(When the browser supports it) or 'window'
561 mode: 'screen' // 'screen' or 'window' 562 }, 563 search : { 564 // Incremental search from the current view 565 incsearch : { 566 enable : true, // is enable true or false 567 minlen : 1, // minimum number of characters 568 wait : 500 // wait milliseconds 569 }, 570 // Additional search types 571 searchTypes : { 572 // "SearchMime" is implemented in default 573 SearchMime : { // The key is search type that send to the connector 574 name : 'btnMime', // Button text to be processed in i18n() 575 title : 'searchMime',// Button title to be processed in i18n() 576 incsearch : 'mime' // Incremental search target filed name of the file object 577 // Or Callable function 578 /* incsearch function example 579 function(queryObject, cwdHashes, elFinderInstance) { 580 var q = queryObject.val; 581 var regex = queryObject.regex; 582 var matchedHashes = $.grep(cwdHashes, function(hash) { 583 var file = elFinderInstance.file(hash); 584 return (file && file.mime && file.mime.match(regex))? true : false; 585 }); 586 return matchedHashes; 587 } 588 */ 589 } 590 } 591 }, 592 // "info" command options. 593 info : { 594 // If the URL of the Directory is null, 595 // it is assumed that the link destination is a URL to open the folder in elFinder 596 nullUrlDirLinkSelf : true, 597 // Information items to be hidden by default 598 // These name are 'size', 'aliasfor', 'path', 'link', 'dim', 'modify', 'perms', 'locked', 'owner', 'group', 'perm' and your custom info items label 599 hideItems : [], 600 // Maximum file size (byte) to get file contents hash (md5, sha256 ...) 601 showHashMaxsize : 104857600, // 100 MB 602 // Array of hash algorisms to show on info dialog 603 // These name are 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512', 'shake128' and 'shake256' 604 showHashAlgorisms : ['md5', 'sha256'], 605 // Options for fm.getContentsHashes() 606 showHashOpts : { 607 shake128len : 256, 608 shake256len : 512 609 }, 610 custom : { 611 // /** 612 // * Example of custom info `desc` 613 // */ 614 // desc : { 615 // /** 616 // * Lable (require) 617 // * It is filtered by the `fm.i18n()` 618 // *
619 // * @type String 620 // */ 621 // label : 'Description', 622 // 623 // /** 624 // * Template (require) 625 // * `{id}` is replaced in dialog.id 626 // * 627 // * @type String 628 // */ 629 // tpl : '<div class="elfinder-info-desc"><span class="elfinder-spinner"></span></div>', 630 // 631 // /** 632 // * Restricts to mimetypes (optional) 633 // * Exact match or category match 634 // * 635 // * @type Array 636 // */ 637 // mimes : ['text', 'image/jpeg', 'directory'], 638 // 639 // /** 640 // * Restricts to file.hash (optional) 641 // * 642 // * @ type Regex 643 // */ 644 // hashRegex : /^l\d+_/, 645 // 646 // /** 647 // * Request that asks for the description and sets the field (optional) 648 // * 649 // * @type Function 650 // */ 651 // action : function(file, fm, dialog) { 652 // fm.request({ 653 // data : { cmd : 'desc', target: file.hash }, 654 // preventDefault: true, 655 // }) 656 // .fail(function() { 657 // dialog.find('div.elfinder-info-desc').html(fm.i18n('unknown')); 658 // }) 659 // .done(function(data) { 660 // dialog.find('div.elfinder-info-desc').html(data.desc); 661 // }); 662 // } 663 // } 664 } 665 }, 666 mkdir: { 667 // Enable automatic switching function ["New Folder" / "Into New Folder"] of toolbar buttton 668 intoNewFolderToolbtn: false 669 }, 670 resize: { 671 // defalt status of snap to 8px grid of the jpeg image ("enable" or "disable") 672 grid8px : 'disable', 673 // Preset size array [width, height] 674 presetSize : [[320, 240], [400, 400], [640, 480], [800,600]], 675 // File size (bytes) threshold when using the `dim` command for obtain the image size necessary to start editing 676 getDimThreshold : 204800, 677 // File size (bytes) to request to get substitute image (400px) with the `dim` command 678 dimSubImgSize : 307200 679 }, 680 rm: { 681 // If trash is valid, items moves immediately to the trash holder without confirm. 682 quickTrash : true, 683 // Maximum wait seconds when checking the number of items to into the trash 684 infoCheckWait : 10, 685 // Maximum number of items that can be placed into the Trash at one time 686 toTrashMaxItems : 1000 687 }, 688 paste : { 689 moveConfirm : false // Display confirmation dialog when moving items 690 }, 691 help : { 692 // Tabs to show 693 view : ['about', 'shortcuts', 'help', 'integrations', 'debug'], 694 // HTML source URL of the heip tab 695 helpSource : '' 696 }, 697 preference : { 698 // dialog width 699 width: 600, 700 // dialog height 701 height: 400, 702 // tabs setting see preference.js : build() 703 categories: null, 704 // preference setting see preference.js : build() 705 prefs: null, 706 // language setting see preference.js : build() 707 langs: null, 708 // Command list of action when select file 709 // Array value are 'Command Name' or 'Command Name1/CommandName2...' 710 selectActions : ['open', 'edit/download', 'resize/edit/download', 'download', 'quicklook'] 711 } 712 }, 713 714 /** 715 * Disabled commands relationship 716 * 717 * @type Object 718 */ 719 disabledCmdsRels : { 720 'get' : ['edit'], 721 'rm' : ['cut', 'empty'], 722 'file&url=' : ['download', 'zipdl'] // file command and volume options url is empty 723 }, 724 725 /** 726 * Callback for prepare boot up 727 * 728 * - The this object in the function is an elFinder node 729 * - The first parameter is elFinder Instance 730 * - The second parameter is an object of other parameters 731 * For now it can use `dfrdsBeforeBootup` Array 732 * 733 * @type Function 734 * @default null 735 * @return void 736 */ 737 bootCallback : null, 738 739 /** 740 * Callback for "getfile" commands. 741 * Required to use elFinder with WYSIWYG editors etc.. 742 * 743 * @type Function 744 * @default null (command not active) 745 */ 746 getFileCallback : null, 747 748 /** 749 * Default directory view. icons/list 750 *
751 * @type String 752 * @default "icons" 753 */ 754 defaultView : 'icons', 755 756 /** 757 * Hash of default directory path to open 758 * 759 * NOTE: This setting will be disabled if the target folder is specified in location.hash. 760 * 761 * If you want to find the hash in Javascript 762 * can be obtained with the following code. (In the case of a standard hashing method) 763 * 764 * var volumeId = 'l1_'; // volume id 765 * var path = 'path/to/target'; // without root path 766 * //var path = 'path\\to\\target'; // use \ on windows server 767 * var hash = volumeId + btoa(path).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '.').replace(/\.+$/, ''); 768 * 769 * @type String 770 * @default "" 771 */ 772 startPathHash : '', 773 774 /** 775 * Emit a sound when a file is deleted 776 * Sounds are in sounds/ folder 777 * 778 * @type Boolean 779 * @default true 780 */ 781 sound : true, 782 783 /** 784 * UI plugins to load. 785 * Current dir ui and dialogs loads always. 786 * Here set not required plugins as folders tree/toolbar/statusbar etc. 787 * 788 * @type Array 789 * @default ['toolbar', 'places', 'tree', 'path', 'stat'] 790 * @full ['toolbar', 'places', 'tree', 'path', 'stat'] 791 */ 792 ui : ['toolbar', 'places', 'tree', 'path', 'stat'], 793 794 /** 795 * Some UI plugins options. 796 * @type Object 797 */ 798 uiOptions : { 799 // toolbar configuration 800 toolbar : [ 801 ['home', 'back', 'forward', 'up', 'reload'], 802 ['netmount'], 803 ['mkdir', 'mkfile', 'upload'], 804 ['open', 'download', 'getfile'], 805 ['undo', 'redo'], 806 ['copy', 'cut', 'paste', 'rm', 'empty', 'hide'], 807 ['duplicate', 'rename', 'edit', 'resize', 'chmod'], 808 ['selectall', 'selectnone', 'selectinvert'], 809 ['quicklook', 'info'], 810 ['extract', 'archive'], 811 ['search'], 812 ['view', 'sort'], 813 ['preference', 'help'], 814 ['fullscreen'] 815 ], 816 // toolbar extra options 817 toolbarExtra : { 818 // also displays the text label on the button (true / false / 'none') 819 displayTextLabel: false, 820 // Exclude `displayTextLabel` setting UA type 821 labelExcludeUA: ['Mobile'], 822 // auto hide on initial open 823 autoHideUA: ['Mobile'], 824 // Initial setting value of hide button in toolbar setting 825 defaultHides: ['home', 'reload'], 826 // show Preference button ('none', 'auto', 'always') 827 // If you do not include 'preference' in the context menu you should specify 'auto' or 'always' 828 showPreferenceButton: 'none', 829 // show Preference button into contextmenu of the toolbar (true / false) 830 preferenceInContextmenu: true 831 }, 832 // directories tree options 833 tree : { 834 // set path info to attr title 835 attrTitle : true, 836 // expand current root on init 837 openRootOnLoad : true, 838 // expand current work directory on open 839 openCwdOnOpen : true, 840 // auto loading current directory parents and do expand their node. 841 syncTree : true, 842 // Maximum number of display of each child trees 843 // The tree of directories with children exceeding this number will be split 844 subTreeMax : 100, 845 // Numbar of max connctions of subdirs request 846 subdirsMaxConn : 2, 847 // Number of max simultaneous processing directory of subdirs 848 subdirsAtOnce : 5, 849 // Durations of each animations 850 durations : { 851 slideUpDown : 'fast', 852 autoScroll : 'fast' 853 } 854 // , 855 // /** 856 // * Add CSS class name to navbar directories (optional) 857 // * see: https://github.com/Studio-42/elFinder/pull/1061, 858 // * https://github.com/Studio-42/elFinder/issues/1231 859 // * 860 // * @type Function 861 // */ 862 // getClass: function(dir) { 863 // // e.g. This adds the directory's name (lowercase) with prefix as a CSS class 864 // return 'elfinder-tree-' + dir.name.replace(/[ "]/g, '').toLowerCase(); 865 // } 866 }, 867 // navbar options 868 navbar : { 869 minWidth : 150, 870 maxWidth : 500, 871 // auto hide on initial open 872 autoHideUA: [] // e.g. ['Mobile'] 873 }, 874 navdock : { 875 // disabled navdock ui 876 disabled : false, 877 // percentage of initial maximum height to work zone 878 initMaxHeight : '50%', 879 // percentage of maximum height to work zone by user resize action 880 maxHeight : '90%' 881 }, 882 cwd : { 883 // display parent folder with ".." name :) 884 oldSchool : false, 885 886 // fm.UA types array to show item select checkboxes e.g. ['All'] or ['Mobile'] etc. default: ['Touch'] 887 showSelectCheckboxUA : ['Touch'], 888 889 // Enable dragout by dragstart with Alt key or Shift key 890 metakeyDragout : true, 891 892 // file info columns displayed 893 listView : { 894 // name is always displayed, cols are ordered 895 // e.g. ['perm', 'date', 'size', 'kind', 'owner', 'group', 'mode'] 896 // mode: 'mode'(by `fileModeStyle` setting), 'modestr'(rwxr-xr-x) , 'modeoct'(755), 'modeboth'(rwxr-xr-x (755)) 897 // 'owner', 'group' and 'mode', It's necessary set volume driver option "statOwner" to `true` 898 // for custom, characters that can be used in the name is `a-z0-9_` 899 columns : ['perm', 'date', 'size', 'kind'], 900 // override this if you want custom columns name 901 // example 902 // columnsCustomName : { 903 // date : 'Last modification', 904 // kind : 'Mime type' 905 // } 906 columnsCustomName : {}, 907 // fixed list header colmun 908 fixedHeader : true 909 }, 910 911 // icons view setting 912 iconsView : { 913 // default icon size (0-3 in default CSS (cwd.css - elfinder-cwd-size[number])) 914 size: 0, 915 // number of maximum size (3 in default CSS (cwd.css - elfinder-cwd-size[number])) 916 // uses in preference.js 917 sizeMax: 3, 918 // Name of each size 919 sizeNames: { 920 0: 'viewSmall', 921 1: 'viewMedium', 922 2: 'viewLarge', 923 3: 'viewExtraLarge' 924 } 925 }, 926 927 // /** 928 // * Add CSS class name to cwd directories (optional) 929 // * see: https://github.com/Studio-42/elFinder/pull/1061, 930 // * https://github.com/Studio-42/elFinder/issues/1231 931 // * 932 // * @type Function 933 // */ 934 // , 935 // getClass: function(file) { 936 // // e.g. This adds the directory's name (lowercase) with prefix as a CSS class 937 // return 'elfinder-cwd-' + file.name.replace(/[ "]/g, '').toLowerCase(); 938 //} 939 940 //,
941 //// Template placeholders replacement rules for overwrite. see ui/cwd.js replacement 942 //replacement : { 943 // tooltip : function(f, fm) { 944 // var list = fm.viewType == 'list', // current view type 945 // query = fm.searchStatus.state == 2, // is in search results 946 // title = fm.formatDate(f) + (f.size > 0 ? ' ('+fm.formatSize(f.size)+')' : ''), 947 // info = ''; 948 // if (query && f.path) { 949 // info = fm.escape(f.path.replace(/\/[^\/]*$/, '')); 950 // } else { 951 // info = f.tooltip? fm.escape(f.tooltip).replace(/\r/g, ' ') : ''; 952 // } 953 // if (list) { 954 // info += (info? ' ' : '') + fm.escape(f.name); 955 // } 956 // return info? info + ' ' + title : title; 957 // } 958 //} 959 }, 960 path : { 961 // Move to head of work zone without UI navbar 962 toWorkzoneWithoutNavbar : true 963 }, 964 dialog : { 965 // Enable to auto focusing on mouse over in the target form element 966 focusOnMouseOver : true 967 }, 968 toast : { 969 animate : { 970 // to show 971 showMethod: 'fadeIn', // fadeIn, slideDown, and show are built into jQuery 972 showDuration: 300, // milliseconds 973 showEasing: 'swing', // swing and linear are built into jQuery 974 // timeout to hide 975 timeOut: 3000, 976 // to hide 977 hideMethod: 'fadeOut', 978 hideDuration: 1500, 979 hideEasing: 'swing' 980 } 981 } 982 }, 983 984 /** 985 * MIME regex of send HTTP header "Content-Disposition: inline" or allow preview in quicklook 986 * This option will overwrite by connector configuration 987 *
988 * @type String 989 * @default '^(?:(?:image|video|audio)|text/plain|application/pdf$)' 990 * @example 991 * dispInlineRegex : '.', // is allow inline of all of MIME types 992 * dispInlineRegex : '$^', // is not allow inline of all of MIME types 993 */ 994 dispInlineRegex : '^(?:(?:image|video|audio)|application/(?:x-mpegURL|dash\+xml)|(?:text/plain|application/pdf)$)', 995 996 /** 997 * Display only required files by types 998 * 999 * @type Array 1000 * @default [] 1001 * @example 1002 * onlyMimes : ["image"] - display all images 1003 * onlyMimes : ["image/png", "application/x-shockwave-flash"] - display png and flash 1004 */ 1005 onlyMimes : [], 1006 1007 /** 1008 * Custom files sort rules. 1009 * All default rules (name/size/kind/date/perm/mode/owner/group) set in elFinder._sortRules 1010 * 1011 * @type {Object} 1012 * @example 1013 * sortRules : { 1014 * name : function(file1, file2) { return file1.name.toLowerCase().localeCompare(file2.name.toLowerCase()); } 1015 * } 1016 */ 1017 sortRules : {}, 1018 1019 /** 1020 * Default sort type. 1021 * 1022 * @type {String} 1023 */ 1024 sortType : 'name', 1025 1026 /** 1027 * Default sort order. 1028 * 1029 * @type {String} 1030 * @default "asc" 1031 */ 1032 sortOrder : 'asc', 1033 1034 /** 1035 * Display folders first? 1036 * 1037 * @type {Boolean} 1038 * @default true 1039 */ 1040 sortStickFolders : true, 1041 1042 /** 1043 * Sort also applies to the treeview (null: disable this feature) 1044 * 1045 * @type Boolean|null 1046 * @default false 1047 */ 1048 sortAlsoTreeview : false, 1049 1050 /** 1051 * If true - elFinder will formating dates itself, 1052 * otherwise - backend date will be used. 1053 * 1054 * @type Boolean 1055 */ 1056 clientFormatDate : true, 1057 1058 /** 1059 * Show UTC dates. 1060 * Required set clientFormatDate to true 1061 * 1062 * @type Boolean 1063 */ 1064 UTCDate : false, 1065 1066 /** 1067 * File modification datetime format. 1068 * Value from selected language data is used by default. 1069 * Set format here to overwrite it. 1070 *
1071 * @type String 1072 * @default "" 1073 */ 1074 dateFormat : '', 1075 1076 /** 1077 * File modification datetime format in form "Yesterday 12:23:01". 1078 * Value from selected language data is used by default. 1079 * Set format here to overwrite it. 1080 * Use $1 for "Today"/"Yesterday" placeholder 1081 * 1082 * @type String 1083 * @default "" 1084 * @example "$1 H:m:i" 1085 */ 1086 fancyDateFormat : '', 1087 1088 /** 1089 * Style of file mode at cwd-list, info dialog 1090 * 'string' (ex. rwxr-xr-x) or 'octal' (ex. 755) or 'both' (ex. rwxr-xr-x (755)) 1091 * 1092 * @type {String} 1093 * @default 'both' 1094 */ 1095 fileModeStyle : 'both', 1096 1097 /** 1098 * elFinder width 1099 * 1100 * @type String|Number 1101 * @default "auto" 1102 */ 1103 width : 'auto', 1104 1105 /** 1106 * elFinder node height 1107 * Number: pixcel or String: Number + "%" 1108 * 1109 * @type Number | String 1110 * @default 400 1111 */ 1112 height : 400, 1113 1114 /** 1115 * Base node object or selector 1116 * Element which is the reference of the height percentage 1117 * 1118 * @type Object|String 1119 * @default null | $(window) (if height is percentage) 1120 **/ 1121 heightBase : null, 1122 1123 /** 1124 * Make elFinder resizable if jquery ui resizable available 1125 * 1126 * @type Boolean 1127 * @default true 1128 */ 1129 resizable : true, 1130 1131 /** 1132 * Timeout before open notifications dialogs 1133 * 1134 * @type Number 1135 * @default 500 (.5 sec) 1136 */ 1137 notifyDelay : 500, 1138 1139 /** 1140 * Position CSS, Width of notifications dialogs 1141 * 1142 * @type Object 1143 * @default {position: {}, width : null} - Apply CSS definition 1144 * position: CSS object | null (null: position center & middle) 1145 */ 1146 notifyDialog : {position : {}, width : null, canClose : false, hiddens : ['open']}, 1147 1148 /** 1149 * Dialog contained in the elFinder node 1150 * 1151 * @type Boolean 1152 * @default false 1153 */ 1154 dialogContained : false, 1155 1156 /** 1157 * Allow shortcuts 1158 * 1159 * @type Boolean 1160 * @default true 1161 */ 1162 allowShortcuts : true, 1163 1164 /** 1165 * Remeber last opened dir to open it after reload or in next session 1166 * 1167 * @type Boolean 1168 * @default true 1169 */ 1170 rememberLastDir : true, 1171 1172 /** 1173 * Clear historys(elFinder) on reload(not browser) function
1174 * Historys was cleared on Reload function on elFinder 2.0 (value is true) 1175 * 1176 * @type Boolean 1177 * @default false 1178 */ 1179 reloadClearHistory : false, 1180 1181 /** 1182 * Use browser native history with supported browsers 1183 * 1184 * @type Boolean 1185 * @default true 1186 */ 1187 useBrowserHistory : true, 1188 1189 /** 1190 * Lazy load config. 1191 * How many files display at once? 1192 * 1193 * @type Number 1194 * @default 50 1195 */ 1196 showFiles : 50, 1197 1198 /** 1199 * Lazy load config. 1200 * Distance in px to cwd bottom edge to start display files 1201 * 1202 * @type Number 1203 * @default 50 1204 */ 1205 showThreshold : 50, 1206 1207 /** 1208 * Additional rule to valid new file name. 1209 * By default not allowed empty names or '..' 1210 * This setting does not have a sense of security. 1211 * 1212 * @type false|RegExp|function 1213 * @default false 1214 * @example 1215 * disable names with spaces: 1216 * validName : /^[^\s]+$/, 1217 */ 1218 validName : false, 1219 1220 /** 1221 * Additional rule to filtering for browsing. 1222 * This setting does not have a sense of security. 1223 * 1224 * The object `this` is elFinder instance object in this function 1225 * 1226 * @type false|RegExp|function 1227 * @default false 1228 * @example 1229 * show only png and jpg files: 1230 * fileFilter : /.*\.(png|jpg)$/i, 1231 * 1232 * show only image type files: 1233 * fileFilter : function(file) { return file.mime && file.mime.match(/^image\//i); }, 1234 */ 1235 fileFilter : false, 1236 1237 /** 1238 * Backup name suffix. 1239 *
1240 * @type String 1241 * @default "~" 1242 */ 1243 backupSuffix : '~', 1244 1245 /** 1246 * Sync content interval 1247 * 1248 * @type Number 1249 * @default 0 (do not sync) 1250 */ 1251 sync : 0, 1252 1253 /** 1254 * Sync start on load if sync value >= 1000 1255 * 1256 * @type Bool 1257 * @default true 1258 */ 1259 syncStart : true, 1260 1261 /** 1262 * How many thumbnails create in one request 1263 * 1264 * @type Number 1265 * @default 5 1266 */ 1267 loadTmbs : 5, 1268 1269 /** 1270 * Cookie option for browsersdoes not suppot localStorage 1271 * 1272 * @type Object 1273 */ 1274 cookie : { 1275 expires : 30, 1276 domain : '', 1277 path : '/', 1278 secure : false, 1279 samesite : 'lax' 1280 }, 1281 1282 /** 1283 * Contextmenu config 1284 * 1285 * @type Object 1286 */ 1287 contextmenu : { 1288 // navbarfolder menu 1289 navbar : ['open', 'opennew', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', '|', 'archive', '|', 'places', 'info', 'chmod', 'netunmount'], 1290 // current directory menu 1291 cwd : ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'mkfile', 'paste', '|', 'empty', 'hide', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'places', 'info', 'chmod', 'netunmount', '|', 'fullscreen', '|', 'preference'], 1292 // current directory file menu 1293 files : ['getfile', '|' ,'open', 'opennew', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', 'edit', 'resize', '|', 'archive', 'extract', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod', 'netunmount'] 1294 }, 1295 1296 /** 1297 * elFinder node enable always 1298 * This value will set to `true` if <body> has elFinder node only 1299 * 1300 * @type Bool 1301 * @default false 1302 */ 1303 enableAlways : false, 1304 1305 /** 1306 * elFinder node enable by mouse over 1307 * 1308 * @type Bool 1309 * @default true 1310 */ 1311 enableByMouseOver : true, 1312 1313 /** 1314 * Show window close confirm dialog 1315 * Value is which state to show 1316 * 'hasNotifyDialog', 'editingFile', 'hasSelectedItem' and 'hasClipboardData' 1317 * 1318 * @type Array 1319 * @default ['hasNotifyDialog', 'editingFile'] 1320 */ 1321 windowCloseConfirm : ['hasNotifyDialog', 'editingFile'], 1322 1323 /** 1324 * Function decoding 'raw' string converted to unicode 1325 * It is used instead of fm.decodeRawString(str) 1326 * 1327 * @type Null|Function 1328 */ 1329 rawStringDecoder : typeof Encoding === 'object' && $.isFunction(Encoding.convert)? function(str) { 1330 return Encoding.convert(str, { 1331 to: 'UNICODE', 1332 type: 'string' 1333 }); 1334 } : null, 1335 1336 /** 1337 * Debug config 1338 * 1339 * @type Array|String('auto')|Boolean(true|false) 1340 */ 1341 debug : ['error', 'warning', 'event-destroy'], 1342 1343 /** 1344 * Show toast messeges of backend warning (if found data `debug.backendErrors` in backend results) 1345 * 1346 * @type Boolean|Object (toast options) 1347 */ 1348 toastBackendWarn : true 1349};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.