File "jqueryFileTree.js"
Full path: /home/satitravel/public_html/plugins/better-wp-security/core/modules/file-change/js/filetree/jqueryFileTree.js
File
size: 4.64 B
MIME-type: text/plain
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
// 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 );