Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
plugins
/
better-wp-security
/
core
/
modules
/
file-change
/
js
/
filetree
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
// jQuery File Tree Plugin // // Abandoned; new maintainer?: See https://github.com/daverogers/jQueryFileTree // // Version 1.01 // // Cory S.N. LaViska // A Beautiful Site (http://abeautifulsite.net/) // 24 March 2008 // // Visit http://abeautifulsite.net/notebook.php?article=58 for more information // // Usage: $('.fileTreeDemo').fileTree( options, callback ) // // Options: root - root folder to display; default = / // script - location of the serverside AJAX file to use; default = jqueryFileTree.php // folderEvent - event to trigger expand/collapse; default = click // expandSpeed - default = 500 (ms); use -1 for no animation // collapseSpeed - default = 500 (ms); use -1 for no animation // expandEasing - easing function to use on expand (optional) // collapseEasing - easing function to use on collapse (optional) // multiFolder - whether or not to limit the browser to one subfolder at a time // loadMessage - Message to display while initial tree loads (can be HTML) // // History: // // 1.01 - updated to work with foreign characters in directory/file names (12 April 2008) // 1.00 - released (24 March 2008) // // TERMS OF USE // // This plugin is dual-licensed under the GNU General Public License and the MIT License and // is copyright 2008 A Beautiful Site, LLC. // if ( jQuery ) (function ( $ ) { $.extend( $.fn, { fileTree: function ( o, h, j ) { // Defaults if ( ! o ) var o = {}; if ( o.root == undefined ) o.root = '/'; if ( o.script == undefined ) o.script = 'jqueryFileTree.php'; if ( o.folderEvent == undefined ) o.folderEvent = 'click'; if ( o.expandSpeed == undefined ) o.expandSpeed = 500; if ( o.collapseSpeed == undefined ) o.collapseSpeed = 500; if ( o.expandEasing == undefined ) o.expandEasing = null; if ( o.collapseEasing == undefined ) o.collapseEasing = null; if ( o.multiFolder == undefined ) o.multiFolder = true; if ( o.loadMessage == undefined ) o.loadMessage = 'Loading...'; $( this ).each( function () { function showTree( c, t ) { $( c ).addClass( 'wait' ); $( ".jqueryFileTree.start" ).remove(); var send_data = { 'action': itsec_page.ajax_action, 'nonce': itsec_page.ajax_nonce, 'module': 'file-change', 'method': 'handle_module_request', 'data': { 'dir': t, 'method': 'get-filetree-data' } }; $.post( o.script, send_data, function ( data ) { $( c ).find( '.start' ).html( '' ); $( c ).removeClass( 'wait' ).append( data.response ); if ( o.root == t ) $( c ).find( 'UL:hidden' ).show(); else $( c ).find( 'UL:hidden' ).slideDown( { duration: o.expandSpeed, easing: o.expandEasing } ); bindTree( c ); } ); } function bindTree( t ) { $( t ).find( 'LI A' ).bind( o.folderEvent, function ( e ) { if ( $( this ).parent().hasClass( 'directory' ) ) { // If control key held on click, then add to list and dont expandcontract. if ( $( e.target ).is( 'img' ) ) { j( $( this ).attr( 'rel' ) ); return false; } if ( $( this ).parent().hasClass( 'collapsed' ) ) { // Expand if ( ! o.multiFolder ) { $( this ).parent().parent().find( 'UL' ).slideUp( { duration: o.collapseSpeed, easing: o.collapseEasing } ); $( this ).parent().parent().find( 'LI.directory' ).removeClass( 'expanded' ).addClass( 'collapsed' ); } $( this ).parent().find( 'UL' ).remove(); // cleanup showTree( $( this ).parent(), escape( $( this ).attr( 'rel' ).match( /.*\// ) ) ); $( this ).parent().removeClass( 'collapsed' ).addClass( 'expanded' ); } else { // Collapse $( this ).parent().find( 'UL' ).slideUp( { duration: o.collapseSpeed, easing: o.collapseEasing } ); $( this ).parent().removeClass( 'expanded' ).addClass( 'collapsed' ); } } else { if ( $( this ).parent().hasClass( 'file' ) ) { // If file then we dont want to exclude on click, only when hitting the minus image next to it. if ( ! $( e.target ).is( 'img' ) ) { return false; } } h( $( this ).attr( 'rel' ) ); } return false; } ); // Prevent A from triggering the # on non-click events if ( o.folderEvent.toLowerCase != 'click' ) $( t ).find( 'LI A' ).bind( 'click', function () { return false; } ); } // Loading message $( this ).html( '<ul class="jqueryFileTree start"><li class="wait">' + o.loadMessage + '<li></ul>' ); // Get the initial file list showTree( $( this ), escape( o.root ) ); } ); } } ); })( jQuery );