From 190f005b687b588fd1a98a51010d69e9152146d1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Mon, 30 Jul 2012 21:44:00 +0200 Subject: [PATCH] New: ECM module is full Ajax --- htdocs/ecm/index.php | 2 +- .../connectors/jqueryFileTree.asp | 44 ++++++++ .../connectors/jqueryFileTree.aspx | 31 ++++++ .../connectors/jqueryFileTree.cf | 19 ++++ .../connectors/jqueryFileTree.jsp | 49 +++++++++ .../connectors/jqueryFileTree.php | 43 ++++++++ .../connectors/jqueryFileTree.pl | 102 ++++++++++++++++++ .../connectors/jqueryFileTree.py | 25 +++++ .../connectors/jqueryFileTree.rb | 61 +++++++++++ .../connectors/jqueryFileTree_huck.lasso | 36 +++++++ .../connectors/jqueryFileTree_sabourdin.lasso | 48 +++++++++ .../jqueryFileTree/images/application.png | Bin 0 -> 464 bytes .../plugins/jqueryFileTree/images/code.png | Bin 0 -> 603 bytes .../plugins/jqueryFileTree/images/css.png | Bin 0 -> 618 bytes .../plugins/jqueryFileTree/images/db.png | Bin 0 -> 579 bytes .../jqueryFileTree/images/directory.png | Bin 0 -> 537 bytes .../plugins/jqueryFileTree/images/doc.png | Bin 0 -> 651 bytes .../plugins/jqueryFileTree/images/file.png | Bin 0 -> 294 bytes .../plugins/jqueryFileTree/images/film.png | Bin 0 -> 653 bytes .../plugins/jqueryFileTree/images/flash.png | Bin 0 -> 582 bytes .../jqueryFileTree/images/folder_open.png | Bin 0 -> 583 bytes .../plugins/jqueryFileTree/images/html.png | Bin 0 -> 734 bytes .../plugins/jqueryFileTree/images/java.png | Bin 0 -> 633 bytes .../plugins/jqueryFileTree/images/linux.png | Bin 0 -> 668 bytes .../plugins/jqueryFileTree/images/music.png | Bin 0 -> 385 bytes .../plugins/jqueryFileTree/images/pdf.png | Bin 0 -> 591 bytes .../plugins/jqueryFileTree/images/php.png | Bin 0 -> 538 bytes .../plugins/jqueryFileTree/images/picture.png | Bin 0 -> 606 bytes .../plugins/jqueryFileTree/images/ppt.png | Bin 0 -> 588 bytes .../plugins/jqueryFileTree/images/psd.png | Bin 0 -> 856 bytes .../plugins/jqueryFileTree/images/ruby.png | Bin 0 -> 626 bytes .../plugins/jqueryFileTree/images/script.png | Bin 0 -> 859 bytes .../plugins/jqueryFileTree/images/spinner.gif | Bin 0 -> 2530 bytes .../plugins/jqueryFileTree/images/txt.png | Bin 0 -> 342 bytes .../plugins/jqueryFileTree/images/xls.png | Bin 0 -> 663 bytes .../plugins/jqueryFileTree/images/zip.png | Bin 0 -> 386 bytes .../plugins/jqueryFileTree/jqueryFileTree.css | 90 ++++++++++++++++ .../plugins/jqueryFileTree/jqueryFileTree.js | 97 +++++++++++++++++ 38 files changed, 646 insertions(+), 1 deletion(-) create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.asp create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.aspx create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.cf create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.jsp create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.php create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.pl create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.py create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.rb create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_huck.lasso create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_sabourdin.lasso create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css create mode 100755 htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 1b2fb5a5d2e..c8d638c779e 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -315,7 +315,7 @@ if ($action == 'refreshmanual') //print "xx".$_SESSION["dol_screenheight"]; $maxheightwin=(isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 500)?($_SESSION["dol_screenheight"]-166):660; $morejs=array(); -if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs=array("/filemanager/includes/jqueryFileTree/jqueryFileTree.js"); // TODO Move lib into includes +if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs=array("/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"); $moreheadcss=" <!-- dol_screenheight=".$_SESSION["dol_screenheight"]." --> <style type=\"text/css\"> diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.asp b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.asp new file mode 100755 index 00000000000..41eb5b4d5b7 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.asp @@ -0,0 +1,44 @@ +<% +' +' jQuery File Tree ASP (VBS) Connector +' Copyright 2008 Chazzuka +' programmer@chazzuka.com +' http://www.chazzuka.com/ +' +' retrive base directory +dim BaseFileDir:BaseFileDir=Request.Form("dir") +' if blank give default value +if len(BaseFileDir)=0 then BaseFileDir="/userfiles/" + +dim ObjFSO,BaseFile,Html +' resolve the absolute path +BaseFile = Server.MapPath(BaseFileDir)&"\" +' create FSO +Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject") +' if given folder is exists +if ObjFSO.FolderExists(BaseFile) then + dim ObjFolder,ObjSubFolder,ObjFile,i__Name,i__Ext + Html = Html + "<ul class=""jqueryFileTree"" style=""display: none;"">"&VBCRLF + Set ObjFolder = ObjFSO.GetFolder(BaseFile) + ' LOOP THROUGH SUBFOLDER + For Each ObjSubFolder In ObjFolder.SubFolders + i__Name=ObjSubFolder.name + Html = Html + "<li class=""directory collapsed"">"&_ + "<a href=""#"" rel="""+(BaseFileDir+i__Name+"/")+""">"&_ + (i__Name)+"</a></li>"&VBCRLF + Next + 'LOOP THROUGH FILES + For Each ObjFile In ObjFolder.Files + ' name + i__Name=ObjFile.name + ' extension + i__Ext = LCase(Mid(i__Name, InStrRev(i__Name, ".", -1, 1) + 1)) + Html = Html + "<li class=""file ext_"&i__Ext&""">"&_ + "<a href=""#"" rel="""+(BaseFileDir+i__Name)+""">"&_ + (i__name)+"</a></li>"&VBCRLF + Next + Html = Html + "</ul>"&VBCRLF +end if + +Response.Write Html +%> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.aspx b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.aspx new file mode 100755 index 00000000000..f8443ae7123 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.aspx @@ -0,0 +1,31 @@ +<%@ Page Language="C#" AutoEventWireup="true" %> + +<% + // + // jQuery File Tree ASP Connector + // + // Version 1.0 + // + // Copyright (c)2008 Andrew Sweeny + // asweeny@fit.edu + // 24 March 2008 + // + string dir; + if(Request.Form["dir"] == null || Request.Form["dir"].Length <= 0) + dir = "/"; + else + dir = Server.UrlDecode(Request.Form["dir"]); + System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dir); + Response.Write("<ul class=\"jqueryFileTree\" style=\"display: none;\">\n"); + foreach (System.IO.DirectoryInfo di_child in di.GetDirectories()) + Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + dir + di_child.Name + "/\">" + di_child.Name + "</a></li>\n"); + foreach (System.IO.FileInfo fi in di.GetFiles()) + { + string ext = ""; + if(fi.Extension.Length > 1) + ext = fi.Extension.Substring(1).ToLower(); + + Response.Write("\t<li class=\"file ext_" + ext + "\"><a href=\"#\" rel=\"" + dir + fi.Name + "\">" + fi.Name + "</a></li>\n"); + } + Response.Write("</ul>"); + %> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.cf b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.cf new file mode 100755 index 00000000000..815f83b6ed6 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.cf @@ -0,0 +1,19 @@ +<!--- + +jQuery File Tree +ColdFusion connector script +By Tjarko Rikkerink (http://carlosgallupa.com/) + +---> +<cfparam name="form.dir" default="/somedir" /> +<cfdirectory action="LIST" directory="#expandpath('#URLDecode(form.dir)#')#" name="qDir" sort="type, name" type="all" listinfo="all" recurse="no"> + +<ul class="jqueryFileTree" style="display: none;"> + <cfoutput query="qDir"> + <cfif type eq "dir"> + <li class="directory collapsed"><a href="##" rel="#URLDecode(form.dir)##name#/">#name#</a></li> + <cfelseif type eq "file"> + <li class="file ext_#listLast(name,'.')#"><a href="##" rel="#URLDecode(form.dir)##name#">#name# (#round(size/1024)#KB)</a></li> + </cfif> + </cfoutput> +</ul> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.jsp b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.jsp new file mode 100755 index 00000000000..27b34202174 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.jsp @@ -0,0 +1,49 @@ +<%@ page + import="java.io.File,java.io.FilenameFilter,java.util.Arrays"%> +<% +/** + * jQuery File Tree JSP Connector + * Version 1.0 + * Copyright 2008 Joshua Gould + * 21 April 2008 +*/ + String dir = request.getParameter("dir"); + if (dir == null) { + return; + } + + if (dir.charAt(dir.length()-1) == '\\') { + dir = dir.substring(0, dir.length()-1) + "/"; + } else if (dir.charAt(dir.length()-1) != '/') { + dir += "/"; + } + + dir = java.net.URLDecoder.decode(dir, "UTF-8"); + + if (new File(dir).exists()) { + String[] files = new File(dir).list(new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.charAt(0) != '.'; + } + }); + Arrays.sort(files, String.CASE_INSENSITIVE_ORDER); + out.print("<ul class=\"jqueryFileTree\" style=\"display: none;\">"); + // All dirs + for (String file : files) { + if (new File(dir, file).isDirectory()) { + out.print("<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + dir + file + "/\">" + + file + "</a></li>"); + } + } + // All files + for (String file : files) { + if (!new File(dir, file).isDirectory()) { + int dotIndex = file.lastIndexOf('.'); + String ext = dotIndex > 0 ? file.substring(dotIndex + 1) : ""; + out.print("<li class=\"file ext_" + ext + "\"><a href=\"#\" rel=\"" + dir + file + "\">" + + file + "</a></li>"); + } + } + out.print("</ul>"); + } +%> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.php b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.php new file mode 100755 index 00000000000..d983e2f1a44 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.php @@ -0,0 +1,43 @@ +<?php +// +// jQuery File Tree PHP Connector +// +// Version 1.01 +// +// Cory S.N. LaViska +// A Beautiful Site (http://abeautifulsite.net/) +// 24 March 2008 +// +// History: +// +// 1.01 - updated to work with foreign characters in directory/file names (12 April 2008) +// 1.00 - released (24 March 2008) +// +// Output a list of files for jQuery File Tree +// + +$_POST['dir'] = urldecode($_POST['dir']); + +if( file_exists($root . $_POST['dir']) ) { + $files = scandir($root . $_POST['dir']); + natcasesort($files); + if( count($files) > 2 ) { /* The 2 accounts for . and .. */ + echo "<ul class=\"jqueryFileTree\" style=\"display: none;\">"; + // All dirs + foreach( $files as $file ) { + if( file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && is_dir($root . $_POST['dir'] . $file) ) { + echo "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "/\">" . htmlentities($file) . "</a></li>"; + } + } + // All files + foreach( $files as $file ) { + if( file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && !is_dir($root . $_POST['dir'] . $file) ) { + $ext = preg_replace('/^.*\./', '', $file); + echo "<li class=\"file ext_$ext\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "\">" . htmlentities($file) . "</a></li>"; + } + } + echo "</ul>"; + } +} + +?> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.pl b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.pl new file mode 100755 index 00000000000..200701695b7 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.pl @@ -0,0 +1,102 @@ +#!/usr/bin/perl +use strict; +use HTML::Entities (); + +#----------------------------------------------------------- +# jQuery File Tree Perl Connector +# +# Version 1.0 +# +# Oleg Burlaca +# http://www.burlaca.com/2009/02/jquery-file-tree-connector/ +# 12 February 2009 +#----------------------------------------------------------- + +# for security reasons, specify a root folder +# to prevent the whole filesystem to be shown +# for ex: the root folder of your webbrowser + +my $root = "/var/www/html/"; + +#---------------------------------------------------------- + +my $params = &getCGIParams(); +print "Content-type: text/html\n\n"; + +my $dir = $params->{dir}; +my $fullDir = $root . $dir; + +exit if ! -e $fullDir; + +opendir(BIN, $fullDir) or die "Can't open $dir: $!"; +my (@folders, @files); +my $total = 0; +while( defined (my $file = readdir BIN) ) { + next if $file eq '.' or $file eq '..'; + $total++; + if (-d "$fullDir/$file") { + push (@folders, $file); + } else { + push (@files, $file); + } +} +closedir(BIN); + +return if $total == 0; +print "<ul class=\"jqueryFileTree\" style=\"display: none;\">"; + +# print Folders +foreach my $file (sort @folders) { + next if ! -e $fullDir . $file; + + print '<li class="directory collapsed"><a href="#" rel="' . + &HTML::Entities::encode($dir . $file) . '/">' . + &HTML::Entities::encode($file) . '</a></li>'; +} + +# print Files +foreach my $file (sort @files) { + next if ! -e $fullDir . $file; + + $file =~ /\.(.+)$/; + my $ext = $1; + print '<li class="file ext_' . $ext . '"><a href="#" rel="' . + &HTML::Entities::encode($dir . $file) . '/">' . + &HTML::Entities::encode($file) . '</a></li>'; +} + +print "</ul>\n"; + + + + +#-------------------------------------------------------------------------------------------------- +sub getCGIParams { + my $line; + + if ($ENV{'REQUEST_METHOD'} eq "POST") { + read(STDIN, $line, $ENV{'CONTENT_LENGTH'}); + } else { + $line = $ENV{'QUERY_STRING'}; + } + + my (@pairs) = split(/&/, $line); + my ($name, $value, %F); + + foreach (@pairs) { + ($name, $value) = split(/=/); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + + if (! exists $F{$name}) { + $F{$name} = $value; + } elsif (exists $F{$name} and ref($F{$name}) ne 'ARRAY') { + my $prev_value = $F{$name}; + delete $F{$name}; + $F{$name} = [ $prev_value, $value ]; + } else { push @{ $F{$name} }, $value } + } + return \%F; +} +#-------------------------------------------------------------------------------------------------- + \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.py b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.py new file mode 100755 index 00000000000..6b63c06419f --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.py @@ -0,0 +1,25 @@ +# +# jQuery File Tree +# Python/Django connector script +# By Martin Skou +# +import os +import urllib + +def dirlist(request): + r=['<ul class="jqueryFileTree" style="display: none;">'] + try: + r=['<ul class="jqueryFileTree" style="display: none;">'] + d=urllib.unquote(request.POST.get('dir','c:\\temp')) + for f in os.listdir(d): + ff=os.path.join(d,f) + if os.path.isdir(ff): + r.append('<li class="directory collapsed"><a href="#" rel="%s/">%s</a></li>' % (ff,f)) + else: + e=os.path.splitext(f)[1][1:] # get .ext and remove dot + r.append('<li class="file ext_%s"><a href="#" rel="%s">%s</a></li>' % (e,ff,f)) + r.append('</ul>') + except Exception,e: + r.append('Could not load directory: %s' % str(e)) + r.append('</ul>') + return HttpResponse(''.join(r)) \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.rb b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.rb new file mode 100755 index 00000000000..b30b8a976a2 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree.rb @@ -0,0 +1,61 @@ +# +# jQuery File Tree Ruby Connector +# +# Version 1.01 +# +# Erik Lax +# http://datahack.se +# 13 July 2008 +# +# History +# +# 1.01 Initial Release +# +# Output a list of files for jQuery File Tree +# + +#<settings> +#root = "/absolute/path/" +# or +root = File.expand_path(".") +#</settings> + +#<code> +require "cgi" +cgi = CGI.new +cgi.header("type" => "text/html") +dir = cgi.params["dir"].to_s + +puts "<ul class=\"jqueryFileTree\" style=\"display: none;\">" +begin + path = root + "/" + dir + + # chdir() to user requested dir (root + "/" + dir) + Dir.chdir(File.expand_path(path).untaint); + + # check that our base path still begins with root path + if Dir.pwd[0,root.length] == root then + + #loop through all directories + Dir.glob("*") { + |x| + if not File.directory?(x.untaint) then next end + puts "<li class=\"directory collapsed\"><a href=\"#\" rel=\"#{dir}#{x}/\">#{x}</a></li>"; + } + + #loop through all files + Dir.glob("*") { + |x| + if not File.file?(x.untaint) then next end + ext = File.extname(x)[1..-1] + puts "<li class=\"file ext_#{ext}\"><a href=\"#\" rel=\"#{dir}#{x}\">#{x}</a></li>" + } + else + #only happens when someone tries to go outside your root directory... + puts "You are way out of your league" + end +rescue + puts "Internal Error" +end +puts "</ul>" +#</code> diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_huck.lasso b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_huck.lasso new file mode 100755 index 00000000000..3359e29314f --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_huck.lasso @@ -0,0 +1,36 @@ +[ + // + // jQuery File Tree Lasso Connector + // + // Version 1.00 + // + // Jason Huck + // http://devblog.jasonhuck.com/ + // 1 May 2008 + // + // History: + // + // 1.00 - released (1 May 2008) + // + // Output a list of files for jQuery File Tree + // + + !action_param('dir') ? abort; + var('dir') = action_param('dir'); + var('files') = file_listdirectory($dir); + + '<ul class="jqueryFileTree" style="display: none;">'; + + iterate($files, local('file')); + #file->beginswith('.') ? loop_continue; + + if(#file->endswith('/')); + '<li class="directory collapsed"><a href="#" rel="' + $dir + #file + '">' + #file + '</a></li>'; + else; + local('ext') = #file->split('.')->last; + '<li class="file ext_' + #ext + '"><a href="#" rel="' + $dir + #file + '">' + #file + '</a></li>'; + /if; + /iterate; + + '</ul>'; +] diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_sabourdin.lasso b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_sabourdin.lasso new file mode 100755 index 00000000000..077258e2583 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/connectors/jqueryFileTree_sabourdin.lasso @@ -0,0 +1,48 @@ +<?LassoScript +// +// jQuery File Tree LASSO Connector +// +// Version 1.00 +// +// Marc Sabourdin +// CysNET (http://www.marcsabourdin.com/) +// 23 May 2008 +// +// History: +// +// 1.00 - released (23 May 2008) +// +// Output a list of files for jQuery File Tree +// +Encode_set:-EncodeNone; + +Variable:'root' = 'path_to_desired_and_Lasso_allowed_root'; +Variable:'_POST.dir' = (action_param:'dir'); +Variable:'files'; + + +if:( file_exists: ($root + $_POST.dir) )&&( File_IsDirectory:($root + $_POST.dir) ); + $files = (File_ListDirectory:($root + $_POST.dir)); + $files->(Sort); + if:( $files->(Size) > 0 ); + output:'<ul class="jqueryFileTree" style="display: none;">'; + // All dirs + Iterate:($files),(Local:'file'); + if:( file_exists:($root + $_POST.dir + #file) )&&( #file != '.' )&&( #file != '..' )&&( File_IsDirectory:($root + $_POST.dir + #file) ); + output:'<li class="directory collapsed"><a href="#" rel="' + (String_replace:($_POST.dir + #file),-Find=' ',-Replace='__') + '">' + (Encode_HTML:(#file)) + '</a></li>'; + /if; + /Iterate; + // All files + Local:'ext'; + Iterate:($files),(Local:'file'); + if:( file_exists:($root + $_POST.dir + #file) )&&( #file != '.' )&&( #file != '..' )&&( (File_IsDirectory:($root + $_POST.dir + #file))==false ); + #ext = (#file)->(Split:'.')->Last; + output:'<li class="file ext_' + (#ext) + '"><a href="' + ($_POST.dir + #file) + '">' + (Encode_HTML:(#file)) + '</a></li>'; + /if; + /Iterate; + output:'</ul>'; + /if; +/if; + +/Encode_set; +?> \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png new file mode 100755 index 0000000000000000000000000000000000000000..1dee9e366094e87db68c606d0522d72d4b939818 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGficO`#W6%ea_K?EyeWYa ztq;H7saEur+K}KG;UvqktzqTCBo3~lTpkB5Eb$a~WWBvoMRaRuiN~-1_bt!NHDEJ; z`B{ULf8qA|bu~4ApFO$#R_!=vg7EAjLH6TIxYU<)ZL0iLv2*vXT|fVP{{8Z(MP+Hx zzZWld*jhglI9@*6ie2wmn&<61|DFZZPczx(rd3n<eUkIu|5ayAgpBX5cWtnka*)M( zitpNm*8&W`i^kd1JMEmo#yNRbfYYpwCY>nZAZM*B&gIE#5<f-xERONv?O<t=+i-x- z_QDm(rl1vRYSU-B$&{&hWH_h@cue3Db8!&9JNKmCvPALfNjE$*98_$MY$#m7C}zEF z=CNHmZ#+0Wnp6&jIVG<)wF=<$O^lj8HFL?CD~%ge9S^B=+A_x~nFZ%8OPp=XnB@Ja zer|nLdeI@1yt>%<I*Vw(*w)h_qT5!c9yIgo=ng6H$;nyfy=_WMdxp)0_%|~?{A00x S_l|*qfx*+&&t;ucLK6VO`@eVq literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png new file mode 100755 index 0000000000000000000000000000000000000000..0c76bd1297751b66230f74719504b2adb02b1615 GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^=Ui(`nz>E6k<{<i}} z+BBV~_ZbK+jb1)Ykz-}{k$8tC3M~#?D`#+ta;S;bIYg^Eb7_S-PS_^2AZ&`)T<a94 zCEPj=B00z7x6Zw>@iSw7ZQh1LkARI|PF%A6Ze#cS$2~oU*p}a4cDlr{{Xd*MJ<ncW zp~IqY@%7hVPrEH{^xILWGWq0oN6!EQkCV$X4{g$sKWwldQ_3YUMaWTLg4fcT&gp*| zShgJ8mK(A<^qbnLr$!~Q?JAx=0V_is<UN;P_Vo-{5N$f`jU$tn##FBfsXN!InhE=V z(2(goS2x{YYjn!NBaKZvnI*dtf3MZ(I;8cma$o3&lAr$PFYJDN=MKN*$Me1i&+O}I zjpvGc>p5Wy*W>_I6aLW9e3tWJe#y!4uGMAnPBptZ{7NGxTwgWgo}lCF$1|0_ZPLna zPjga=H`t^r;cYK^#BArWi!*OtO4iFy%;`S<$6Ro+yk0^S-(-P(4^F<GeB*;v`uQ5o zq@=e@bMCBZ(3<({NaHp4Yg{+}uKjg*>E{bZ%^zI0J^%SAQE%VDM4OrE2T%6P#HF#Q zgmF(OW#1ar>v%Gk=@&PD_3y<WL*x$UpNsr(^f!~xOQwHP<|iF*vD|aq)mv?4T{Qi{ zt98{E8olESbR`SeQvx5@oqTuCX!l-5#}1Y6JI=|Ke0BcMz<&1Bj6I9&pD{2nFnGH9 KxvX<aXaWEfI0<P0 literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png new file mode 100755 index 0000000000000000000000000000000000000000..f907e44b3330e3ed1763e42746a2943234adb94d GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@*0i(`nz>E6kwvxNgi z+K=n)D!lGGyGit;{Duq1SCu|IHn&6D{AzEvp3aTd3$D=`5gDOU!9rIY0ygTeb@}a~ zQJdK9>eaTYb>)p&Zqg?#PHs7=GIP)C^VNFi1XMcrelTSI{%_yR;<P>mjzf}e!i&G! z&q)qp6zE!bb;`+<q@Okab_8fF5Xq4*+kH38%W3u0Lnl*&cCDM8F{>@Zgv&K>hs(57 z3mHDWk3Cne{8o$FvwE?Zw)lm{606=Ev(xKclqNdph&fxxJZlQkVy!yyc{#IQ=F@lE z#AFV4z1@??rIF*n#C7Cxp^K8><|$Lej`&~f+G5px{_@+3>*3kPtZR5aE8Gpf>!!JC zl~Req!T*IEH&?K4y3siEpVjjc|JbdXKc**jYSkb8_sqb^y*Oasog=I7ZGO~kJxywJ z=hI#OLcVuh6Fw{QueRR);onEsn0*Dmq)yLWrC||L?|3Wf!1klkZ?@jOu<w4FZ?=oY z2hRHc-JhBo>e)}v)2z5}cW}~ct+Kt-A4umn$Ip5CTa<NDz5KQ5c{=qs95i;Y7Ctsj zlZ$QK^6H80N{t)V9EV=U9a)hs{avkghux00cM~f$7RsM^S~RDt>D}-17ffy1&Mh>5 z@nWvS^=8#I-PL<$vOQ(lf4a6)NG5n$h1jf{_m^Kj=6UE%P7~XPhzkyrgnKqK_SQ8k b{$SRRIh-Va=zkgm0|SGntDnm{r-UW|7bzQw literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png new file mode 100755 index 0000000000000000000000000000000000000000..bddba1f98ca56f8cffa39d768f80a06361d8d218 GIT binary patch literal 579 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^%Ri(`nz>E6kwvy>b~ z+I;1b!Z@GE8a?@Hr2il(K#)~bC98i{PO0K736YD8Zy7}k)!ja}eLt4%cdmYt-tCwf zB7eHqt@?cR|NK{*1Sj%7Dm=C;CHAko_?qC*bjFx<VXIG;?Y{fI%=(wl9zVb3pSO!9 zvBoT{*cfr4XlKYQzvU)!{VT7(=3H|7?WEIBg9K*Z&HG>Y|HBWF?xWvUhICCjsgi0W zd8u@6+hN7C&x>dIs9kygoi#y%?V&*b@y}d4_wN23z4~g^;)@;EUYl;@*32-Gn&P3d zB*AR<#RP*N0-jZij&9}3muk#n3Sh~crMB~|MgfcZT)*cGJ38;Zs5vB|zU_8y*4C&H z4Ur`ZB3zsoS`KjjV%*Mk;AZxo#A`WbsT+e<b{I4rT##d;SkO9;p`>HM-^_ya-mI-! z4M8ha4t@CjSL=P+=7}9?Hmn_P$yN+$*Nb<`JpEkBSg|*bwSk*KVaG;>MOODW2Cl!Z zTE8)3NzqOnhW5jXtpYL*8g@({{0rxvP2(*QzusO`z%=3fb8D?_UW|txe#lf1`0=!C z_y41h3%gvDjucPvTh5wcRiV#X@w?am!@<et<M%fEZwYTOKjEKuL5Tal=Ci%Um3zew lSSsAFIJfM>m-F!q-qU{DJpT0PJp%&+gQu&X%Q~loCIBM!0~r7S literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png new file mode 100755 index 0000000000000000000000000000000000000000..784e8fa48234f4f64b6922a6758f254ee0ca08ec GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfpN8`i(`nz>7$c(cZoQP zwC#WORx)~HJF9C+Ad7IidAZ{aA7|nD2abdbFgqGt5x;Qez?lF8VZ#rMVrNCn3k2_e zHL|__cHKIw{f^s>laq`Z)mJ_$`1k(KsyQlQ8(TzkQysWIJbXI!?wajepWZR@4|(kW z+fXFD@s<8m=7g%B$9_*>vQYiYZS8M;&N4vxn5EOt$CnPiYp&fI*RVCuzw7J6C$C>y zANVZNut4bZ@m2Z#oprpE<jy@!k-mQ8M%@ipCZ3drf|DmV%g4XD6VH$}{e;cM@`;?* zzkF<M6N-Mc`IYg7G*>QRVEOd#uHL5Z&yo+OL|Pm=?@;GuD>w0b{=~Vra-{zSH_qa^ zRNCRWi{T3A%a6uu^6$-K=Q{jH-036NQAI9i5jPFL6X)(Xd+9K$92J_qH@oSvL@U#3 zb`3s7k+t<Lk3>Qo_il01QsIvHyZ59>yN1Zy+6!rNXBmTL=x<}JI4KzT<0@CT>&?QB zLluhKHf0*?Fh0o@NVE69GC8mBY3CKj(~ipn*D&-?dRF48GHvOTwNVVGUR}I5dG_s& t*A}1Z_r)^4TYLP=n#c$L|Ml)?+}9yr|M2!KKL!Q{22WQ%mvv4FO#nTH?>PVf literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png new file mode 100755 index 0000000000000000000000000000000000000000..ae8ecbf47672a874c0958d0d113a56162c2bd364 GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl1cW#WBR<bnoQd*;4`q zj@EzwSbK8O!Lw}U9C}BV2yP5c-Xb8lWwYSHAnoADj<pHeN*$BFnEi}zYMtaZvEf0p z&g|Zsu_w~@AKz;%7HJ;X{NzAm^qD!;Z8MWYL>ZFLWF|-z{E?r1z&uoxA!O>p6RkR@ zccn%i6KIk<rgOR^GxMdX0dqv?U+08<I;VGR-n{s4UHy@`^~>k_xks;^)+Vs!X3ncm zpFVjUxl_IQ+u{>W<|54>XI7Q^EplS%RB+^2D&+j+=wY_4QN4>a1O&sv!tUwl>Fs-T z?lk{=w#o}eCl==XJ@e(?=I^)iw*Qypobi2QhhpKh<@xrPPb)otC3?-A%}1s0RpIel z(_@oXF3I%Te%sZBLos0eb;b=sqO6-@Jg;7uvF^f4ZuQmkbow(Gmxb*4z9iFYl1fi+ zZ*N%A)*ID5%#*ZNXUCp$x{>j;=5O4Ff`1Zb8s{wce6M)#IVmMxL9F_<PVv&6(l>AE zt&}?a%k7BN(`#2VRkW@}%_&x1II-ag7uVm$gyN^qo=R;Mp67M6=<Oqw;Hx5?U50E7 z&t<ONYUUGptsr)2=E|1a*ZmhBXkp9Kxl(vd;c&F!u|NA}3hwC)*|x2Cp1mD6SF_HC zCkOAWSg?1laM#~u&HI@vG+TD}->c=RG_$)sV~!}JsH13zh+wnnZ{<I{##_=FycJtQ z4-}YmeE-)a%jU({X~@T5=~diQDBkhRVUF}+i`&Xp9S5H2=WVTA+&6F4IR*v>22WQ% Jmvv4FO#rlOCP4rI literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png new file mode 100755 index 0000000000000000000000000000000000000000..8b8b1ca0000bc8fa8d0379926736029f8fabe364 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y<KVi<=^^$>s zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V1H%qa7sn8d^Q9A``3@-v zxGrCJSnXY7TkWhD?b26%bZzz5xboT|{@S!T58Evh^(2`tPGdP~U$%wOGKO>NtZPY5 z4>!n*gkRdi>UCaPKPGbLgB#i|f}Y({v;2EyH1l*qGzyYZMYb$|=GOMxqHD9u-h@A` z4`1e;X^yu%-`ePR(&A)s?29Q~n^P1IE_!GpDlF2&zvddt<4g%ru~`!j=&RMWp0{!J w_uh2db&>aNz1vpm7dZ`8yGyNEjxNwQS{nUfUF9}^1_lNOPgg&ebxsLQ0GOn5J^%m! literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png new file mode 100755 index 0000000000000000000000000000000000000000..b0ce7bb198a3b268bd634d2b26e9b710f3797d37 GIT binary patch literal 653 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl1!e#WBR<^wP=x8N!Yd zNAKtDo_$7Yc5^59r6BJnRWIQW{4Z8k1v&<pus17kT=n*s64+DuC54|+Q1pL8T-S0f zmsf%OT_Gk)LEgE3O;H@4$t>yL`tuhEmRz6AZC^Iy{a*9?AKpqON<6Bcckth$sI~j} zn-ZqftiGDH)1q)^%)bRwPF2p^9<=^CcRkC68Q*LF+gV1h3`x4ZDAL%O&)sT)p`)Kc zZ0ho~JxgXbd~rI#U@?7f+eDFqUw^tCXQ`k3w(tBK{frv-b(5EdU-P{vESqR0DcIGM zu}I_6qwWbodXuY{2)=AMrfB53XUkWy^VQrpYzst}+4udtR%midc*3Wi<Cpy>mBchC z`HHFEVcC!#%#~}|``*4Qqm(ac<?O59`8%%dn8=WK>T82+`yH8_!;S5RUoNdaFpZsq zr}cJFl5IkI%mD$*XS?z;|2=v>LvqHRraQ|_qol<*xILS7cA0ryW#04$B2)N1_)4^j znGb6+|Ngc=E@gWEN^SRL2TEr5Ol+KPzdqq?yyJt{2@itHjobE^{}Kq!{;^G2c0<C( z1>MK?FI#X$IXL@9tLV#yR=%04)8-utth4k>le%||JA!xqgUIb`O~uY`ULt(mv9l>S z<#pqkj0|ZeFP_EIABo)A&9UG@Kvv7My?>It3mLzxir$uczq0COb_$aNQ{Us9jIB}p zk_Au7J^!DZm9%k3goa3p-Te3$@BjK5&HR%Q8J02YSyBCa@s%I@A75x%Bg(+Qz~JfX K=d#Wzp$PyAWh6KN literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png new file mode 100755 index 0000000000000000000000000000000000000000..5769120b1b6d38019b505c9167498ea199212cc1 GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@f?i(`nz>E6kwy`=+1 zj%}@X73Yc-HD9-=iQi-*TkeJ(Q=-JTJ~-5>5O`a`v4-WMt7dD;M0+=lpp1njmlv&F zpywj|Im@WudcF0@>(%ShW^@Y5{xB<k|K0j|&GgHR3z}8-=`Eaa;Q(`$+Lt4re=;bZ z-jp@x^RCysGSmzEO053g<p0Rbc4EzID~aTJBCd{Gqg)pTOqft(*YBhD*m2e~Kc)+; zmrW9Ho1MwOpZM-=bMEqh)mH;_#8eL$@B~cEF{@_IWSwx+&Z6OGnOvS0=eHuRRjU?- zXx)|cOuNKYaPC~<xjk(0(QSst+}nN~lwKO6ciOLL=N(&ybBVcc8`SR~_E^*0y=u<C z&JP?;a|7h2dM&kW_;1^2`JJumjp!Tw_6Pr0eM%B``kXyW%`unp+HwB}ouWIWIaeqr zZa6!|eEnk!Bl)HY?-<PHe?JqLI<JGfnB~-i2nL7P6Ai5^W-~01m|HVTTK50bBhweO zE#6T7r=|E0`?;r6O(v~i7MjV-P^<JUwA;mh>O_w1V)q)~zF}MS>ug;mgYF-v@b<&J z)tQ1`IZ}Ui2~@mRTM{bgAS=~;$-bxi-i7?<FLo5(m)jC}_w)m^6Lx|Ei<^(nI2!Al px1Rrk?*#WX#lc&C-Tlv4wrt;@Yj5?ZFfcGMc)I$ztaD0e0swM^0e=7h literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png new file mode 100755 index 0000000000000000000000000000000000000000..4e3548352fc4a82e91ebc7e79907565e40aae457 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^rNi(^Q|ts}wvvqc<5 z{-wRo+pKsmu};BIDp1geNmE$JLc2NCK_EEl*dNv~rvq*mPPyq^o;5|>DTrmGs1B2- zD6jg?AFua3HhXsN&bc?|KA(N_YUhHhqI`Sin(uyJd;j;nJ)$lxdDEKp!ml$#e!g*k z#;uQB!op5}I^8+^__P9Fod2Zgk;?fyCwBgQUfl+T^qeg_CJ8&uu$j&C?Qq%KSJ&sd zi+bIgHMNl2W#TF``~6i1j+=5fOt^JnllqTOOcT#+*ueDs`NQ5jM^1bZ7T<PpR^k>` z@pCgDmM?u&#O}b^zU4_u-&K~{s*bFmrW=0$iN6%9e%<`TZuT_?FF(|L!hdYK?v>Ng zI|6Fh@(XMP|Ey-}(mpZo=<lo2bJd(IPkfuVIj^=}_WHZL;u&e7@`AtKxF26|;YRtl z*&p=meC{)e^ao#YdwbS9X5VI>r};%2_}5CA%?wPMaDrh=KwRvR2Tv}=u`4`yRFV;^ zyI-}Z?u?YF(6bw>M6VzF>VJ3lRY?`kFNvv))1Qf3?%)gBTCx3_$AO-?4SY&z`{TVl z6;?{0c(^BPmyXSQfu}pB*wjlTg&8{wJz?Rz8-2LWn)d?VJguLZzcSu_lrgvczrFhO smv7Z+?{^yod+|Q4|1Vw7Wx#OD{@2<~DZAG(FfcH9y85}Sb4q9e023Sv=>Px# literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png new file mode 100755 index 0000000000000000000000000000000000000000..6ed2490ed1432d5d667a76235360824a1088e928 GIT binary patch literal 734 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfvLdL#WBR<bnoQ5{y~W{ z$Jg#x-u{pMw6^}PkDIRETEwt=tC92~?NZ^>&!o+QCk9?P<iWHowS7Zqn3CxvpG_S< znNE5aZ)Fos+`}n+bf4{c&A#?iS8v)`i=Y2ld+u|!He-O3;(0kI$%TL9->ANM_Nbz1 z)7P(Gk34(!EX;2H@%swT16E(v+Sj75vHW0mcJ_%BBbk#aLLVz+w6(R@sL1d+FTPkX z$?3y7X7%sk#(vCJXLwg!?moF&aPj3T9i811JyZlbT_POKX0!h73|swIb751|+z%}- z+B~!Ftw{LnpJ20t<8QUL)%+8Mr9N#dk9w|Ix9;CWp=jZk6ILwxmv{Bgm2mDmn&NS_ z(Jh(+4R;>8?@#7CcGIyWdY0k;o2?lpr|zkUaEWqG*)DrGVbbIcZub)}Y;N%`)6dE| zUwE;adDT<9Ewh*I@W14_G$_Y5Y2%G;4NrEb{958xf1_c#Ais*g{eqj8yoC?AwEiwv zD4Ww(w~AfXM|pO=)!a1KnuF!F4xM82+2-b_E6Nl;Y&y%g@^;T+VJjI)yY9f{LYEW` zi+0LrFU(oKKwMYynaGPzHism;g^$l*;FA^$s65-}tYv*}=B|RvRg!a;Xool~{Cr^j z!G=ezJZmrePUx{e@G+5}WpRALhiSY_&iYky+ZXwTv!)$u=<Ve-`%&)b`d0Sgodt_| znKvh|*j{s_ax=f_VYe@SR~EjV$MUJ&=!Zx7iUkbn8fP50x(Vc@&bnZ3$8>bFXUz6h z9`}?k9TGe9Bd*yeQ_z(uPw1rS?U`)b5=w+5mka)zAa4EUn3(zx)tl~IQx>vY>k8Y? ssF|I%eY(2F(n<d#o->tv^{!`-v{@byDtu--0|Nttr>mdKI;Vst0PspeQ~&?~ literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png new file mode 100755 index 0000000000000000000000000000000000000000..b7bfcd15fb2f7ce658185bd7ef4729815e2f18b9 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfr;DG#WBR<^x9zSZs9}` z*=~_Vp}+oe-|oDX)1|O2Nw=%sK}Tf!*5cedstdxRd^T`sM~ZKppfb7KY0=D<J<j*^ zH&teLImi|7`Tj^`QO@JKf*IFspU-=LCtrl&)PIMa0gXjF_jm_*FP#*nA#$b0u71+# zr+%Amu9<Z*<w}Xw+GRm2@9t;OntDo3F#2ni?BkCTlTW%B%=LR}CDqH4o}R7{s51Fv zn9{@>!i-9{J9EyY8TVA>*8G0c^zEI%{5YG#$DjAJENB0H;hy}%-_w&<y-cu>QIhMI z-WYM_+_qA+_1CjCYf7Kr+G$a{v;Sz4qS8bUm+%wk{MTRSK5Vc-apL-X{s%Rm7}meP zSy=MD?ZMf<(LX+XSy;3B73Z1f#W#aAM1C!_n0xMBg292Jok!9(Pkf!VRcOQJ`o?X& zQES^03?hPM_}aPmi$^d1a<D0_fM?t3_fc!bG;9<vFM06&H^1oYvt_qM9ym!!uez!= z>#UkoFI$Dtor#y13o6O*ExwyqT%IwjEOcYkTJy8-eA0rJU!JJ+?!<YW6S6OLPW-Oh z&p-dX`9#AgooTPHINs0Oo;00vZyf*Kyzm1oms#(B4(mFqr19gplEZ7G?j3jEF^Rw2 zrRT~M+%dNx+%95{;KZ%=eoAY-TeKS;9?VF~E^wEdTFGT8Ev9~(ZDQ>6e?Av8O4^%l rUFdOal9|$QLc0I>=HiF-kM+N0X-coQwb{kMz`)??>gTe~DWM4f&s-qj literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png new file mode 100755 index 0000000000000000000000000000000000000000..52699bfee0ce434356c6a9576f32fb6633b01866 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl1HP#WBR<bnj&Uj-Wu1 zW6Q&Ocl0(1aYZfdE^1ru8u2criEYseg(8kD!CbF9A{<}clr%G3W-eLDDA={YRdM3l zBCg|W6laO`FXZHO3ci2&`F!<%|95@AR&67>n6Ku}(VfrB&;Pt<oy>4-g~uC}SqhK- zEsS-Uz12!KVbRsBlXvsB-+%qpz)Ph+K*MBt`wPaH<(FR`e_XgDM(@Ypx)3eVkkz4O zVqC0jC!c@jXg@6FqI=JUaZ<>!eSghv@LQbBbXA+|xHqm{=d^}cH_wF}vx^xf0-Y{( z&R-Y;MFjVi3wA!wn`3F%T4HsUD{HHi*V0RE6KAMbIYj>Hywk3%QCIZflBV{w>GwD9 z6m?Bpe1SbfeP>LbiNeg7Lw^$(4m}suv8iF1f1dqOH`~Iw0ro1Mw>TbHyvs3>a$V0a zb~8sTZL_4!`D_6zzOOA!Z47e#>37mLujOiDFnz(g{yKN_!2<~*m-4ntwq$V><ox;( zxV^efl#h*>can!nf{D~bucZ$E_}LaLy350OZvJe$mjyCz?J<iuP4n2_C7j;D`1<wz z2=-SR&JBllpWa=+XI9nAE%}FMFWnOMr}nF++FG$0WjX4{I;9+@vPE>uR!ytkBz|yp z^@oH+L9fXc_a;o7Q~v1J%e57Sr+Yq4pPj?9*W|$Q<Hq9G#B_g7t@M6-OVpgH{JDYk zY2~uV3isI7{*c=2TyeJlR`0%N2j}}+dh!HiJjy@4L|?7^bxw6DgK+Dg<5sH|t<L|& ZDs^#*aFR^va|Q+m22WQ%mvv4FO#q2DA{hVx literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png new file mode 100755 index 0000000000000000000000000000000000000000..a8b3ede3df956f8d505543b190bc8d1b5b4dce75 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y<KVi<=^^$>s zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V1Ea8~i(`m{WbHviZ>K<s zhKJwp^@+5wG^!-}>N+-iXCJ=%oBb+32g~=iqSA?N$J%y(VV9DM)#hmtSaZ@*W|7LN zfb-vF{aFj&3H-2`m~Q7>@KUyG5l5GT#(Rk-!)gneKFO}b4=s)hSWJ<&>M7Ky+;-E| zkVWjcakyYTUyY=<j{?U$pB{xHEMl%FeFUe>IH1HK*{yVhr77uT#WIez1BR|YN~dI4 zY36=tla;EQqdLjY+coZ^v&EWqCf76{>~LMDd_J>uXJCTp)4q0-`u(LFPbwK#nN)h7 zIr%Yau?OEm_xAHw-bu8m?kf4Y>dWl39R`Umed@b<wBD+nEqcB&PdPX6HNV2AH|p|V mJyq65uC;wI|Ag^<bJ4&?1F3{Ndl?uQ7(8A5T-G@yGywp&g_Q6B literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png new file mode 100755 index 0000000000000000000000000000000000000000..8f8095e46fa4965700afe1f9d065d8a37b101676 GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^cIi(`nz>E6kwy`=+1 z+OMXHhjn|gvi@&eCsO$I($s{7JGSfyTooa1mn5pn(e&EMiF2BkNQvURT^FW0?amAp zsZj`&o|2+AIc3rrZR5!<^?RSc;>nbIae)2%xxLRH&ndPHWmv`WZL7g8$+`X)j;$zs z%*FC{TI$l`op)mG=DS<ou&lAW|J=!Q;eyFcrLK*ezHr`p$H#NH;n260AzYJG3OhBr zKK%Z>?g-~PHO5#2Q_-$+p<^EzeJ-~w%k)@&x#MV3%!HFE3tn3>H6CbQ5|MD*Y|=cz z6|e8_XkZEnb+wVx*X;bhB;vp+hfCJ1x!H5qugqIM#YO3$u^`LBO${Bj5)Oxq+1y`v zXb8V**Ev0v_1b-Hj`#N!t*kgc|M_CiIn~)#G0?Tq;;-PR>-q-k^#vspC#_c4Kj&;( zWxa>f6ww=#Is)qT*LX<Ge876>@nMd#y^b$(`SaS@1ZK`{*t7HCW=(Al{WA)iEZVPp z<3F;0z0=Q~?0?^|9Qve`cdSid-gk$nXid>SS#_cE87scVefxgU@6<cvz_%<*{bvM; zn7w9P8+-8K>tA`tKE(y!ow)1&?k8(yJq_1A@K1irm3;jBr`G9z_pCQzPu)@MUGc`5 z{q-hC_Vb)+<)(IfS)0Np*(A@A&G-`ipHanf^8?27C$=##Ffe$!`njxgN@xNAIA;ZP literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png new file mode 100755 index 0000000000000000000000000000000000000000..7868a25945cd5e5cb7daaca9591927511ca65c0f GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfpLwei(`nz>E6lS-b{fa z4Qs{zHZ*Yv-TK1K6Mc1AEq`}M$F^KArQ6rkmTq0zEm)Pa$)xFk>$c3<u4~uKRmn@c zGNp3$<JTqU*Gj%?nZzt#{_IZizMcN;3>E^PdIV!wzT5W*|5|J1_F&c3tf0jgGfZdu zzF>LT9-twTqPpfl@6lPy8rQuR+oaR1(G{Q}vcg4xg`@rOv?Dt2oEg<ZR)-q!G;ixz zwMxNLNTl0UYek4wgZ)E`ckWG0->*D7aN)y|oIlTax9u&w@%8SZM?o!{p7tJ0HDTQ; z!=KW!P4l9uqGvO=T;6#dhfD8mHr!XcxLW<ePn*W=oMjt~zs_0O+UYXuO!&roH!YqW zeXJj#H$9h0(%NpbYQ+5=3t0CkTrTg~`0;Nu%bK<Gn-^)AInI_fQ%f^)&DP41xqfW3 z%tG#yT;~iNFZ0Z*k*(g^)~zdjJmSNTiSyXQ47_%{-d2!fQ!u5aCT<INf%Nld{%*_C zYwGGB$c2UZ=Q91VQ~CJhFni5Zkrmfpi_C7Y^{79%_q~g`<L=wGFC0z_{qa&eDR^z; u;^|3~R$sb(nq!W}%ZFC8A6zZ3V}7)Do+f|Oq{j>l3=E#GelF{r5}E*lMC}&< literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png new file mode 100755 index 0000000000000000000000000000000000000000..4a158fef7e0da8fd19525f574f2c4966443866cf GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@W<i(`nz>7|oxvqKz3 z+U6U7zqj|h8u#uAy@|?!lNu5PkA%4WZ)k1p4GoI$_|?#Bf9Sr#vdtGxIqCTPb9C6i z(IV=2R{ZCU9J8A{t&5K-rJc-c;*eZ6d*<^w-{*e!;AnikMk3+o<6GIGGwn4^HoxnN zW;UH9v8lyef8II0qYP3h4^J-cyr^^9Mdere(Y~hgSi72=6?}6T{njkYoOSZkD@NIG z87HkKCtE-96c(TIck!HjY0<Vru}N+fKXZiEE7@|kGAAqbI3#YHvF7cBX>}L2=*}rW zl6mTi%iQ<9iK~`MtzwpA&`9V>IIOqyNyFjGYS+p&<{WM{%bay-o2BwjMS-egUzlAu z{5J0MJ|5|}dzzDM9OFx&E5gzbADy2$@8UzA35H&)ZG99Dt~zej@6lPd+GnSUpNJ$! zQKS<`y3nbMzIC~|!6(fmrOcK*vbZOoRK417uaRrclOn!Dt`0@bAOG0dUk_U`tzP-w z<Px`?rh6SMS3eH@opkZ~!C&{3;zZY<lHGm!&XHV^jGVmBFMo(uEm@)Up>jd9fWU)~ zZ-U+{%(8s4WUu?SpHpugc73*ZiT=#zcE=csT;povjy?~~$^F%3!#87w>Lr)mQ>&Bt z9iHfG&3W(LKUcd$nbX!mb6WZPaH--}e&hefa|&5HAL=&5l+XFkz?Oe&@_NxD`xzJ* O7(8A5T-G@yGywqZWDULm literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png new file mode 100755 index 0000000000000000000000000000000000000000..c4eff0387d5888c638ba09473ba6d2369f7b56f0 GIT binary patch literal 588 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^TFi(`nz>E6lvyMrAC zj@$2k|CF^SNzX&%-Its#8%6kaa*xLCIpxF?6(y6A_?kc9qX*YU(|@|x<B}IIxY45G zBy`gHezo=P<d2hHOk5x-QI<IKd`)`Uu@zbj$7bk0&=L5UFU@d2)RbYtsxu1Vn{}kE zpYQ2-p>=+f&+WJ0q8}(FgnpGsIBxlT`Q??%GIxDAnX+i{MUUTq_jPrAtFnDtV#VDt zb6=ijLmNX};QPRtJGK4iDEQyIm|>#P)g-`lH?MsE)vUdVzh3S8cfQVM$I`<O3s$Nm zsE27*3trNEd0f2VX#MY|yZa8Eyv@IH`Rj~#9+O%=R`_r*3NE~v!<2B9li_81`kWn= z{kPu9DcT;AmHY7d?`NTT){iXIJcYETa$U_T{iym;W`Uf~U!HAY&c^Ls$7`*0?iaa> zxJo1&96K{Rj>##I>Cg4^J>SbXl>#^%S$NYJH(X2ViIn16y;EC%_H@q5#%Fy27AD0< zo|~N(;)-N(4{X_5CRy<6o$?~?=>eQ8SRSp-HIv(~BWmFoI{nFX)ia`3q;qWU##`?G zY{z(f({$f6vdz}!r*z((7f_V@n)q<_D|Q3pOtu|rO6(1Zw%mm>@!L1I1}Rj$uV+l0 toACax;DfXAuWRbIoh$QYm6Q0x_Eo3mudw`dKL!Q{22WQ%mvv4FO#o#z|2Y5v literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png new file mode 100755 index 0000000000000000000000000000000000000000..73c5b3f243d98d089dd9e025edc81b939c1a9320 GIT binary patch literal 856 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$5c}i(`nz>E7Vm-j@Sq z?g#&O2on(z32EVq(_mT}WORz1S=H-#>SdSW8L2a;oA_R7y|^dm+}YE6&c2NCo1R_l zebFd*`mPw?UYFuo*Z<~Zacz9Ke6yqN5;y+&(+~fQIrqF~zX`*Zxdu@}FMoGR2U-M) zWL*$vdCfjQR`}H?=D+{;ZSS=>)^C;c#PF%`qm(mQU5VE`6W>ifu;kH!fI4nl%YX5^ zHtVy#(J(mH?_=~yVz%)srZxSUiKcDLZs`&3H5=0clD;11o?#Nh^J(z{Py6Zr-4phF zc_t^cGi#SBzy0kO4L4Y?smbTmmazMLbUDJx-KBHpwDE`7>nyM4vaFi2dD}Mj<#%P6 zRE(;3O?_K%H|qn-uE(-U)7D8uwC~+;%hkQth$HjuJ&mBaV_x;jZmOCYo+YalQrea; zv^cXZ@cdCVTNe8pjT_7=lHXQJJc~B&%(i-#va({$J_bj7VgAk&HJ_Ewtl(1gE-<^~ zaa#2LmX<kF8hY>KMAX!5xD&{7I)GcJ`Rs-lDG@oR56@o4Q81-0z<Yi2wr_f3ahw+p zSUFy7vou#*$*8&FSWLj01Rb#r9Fcs@FU+<`J~xaJ>lXd=Y)6ruAJ-EOfsTY#9S4Kj z1xhy_H_LoKpDoww&KIs3yIW`EpHy)@`9}Bfy?&#gJS(=Beh~0*4F4)LG0o?rlc$&B zs>S@x*S<f|3fJ#AmY!+lqi?yO>S)Bv>>~n}%DTx7#~Hrvl6rJ0Bt~<sQ=uoD*i@Mw z?@Ixal?8V`a;F&7SR2<Cd!&?B&$|9AqSk1|yeRgGuf!6==Co+)$xe1XI3wHVc+;%z zZ)>_WlHYLOH0xB^wEEG$_Om`6%T8Ii-&y%6p++|`!SnF(EpvMNWa>GT=WvzFq*~8< zzvGmfN9XCesWVo39+|Xl$^`EPj}1Ft*UeVAqnUa=c7wB2{VCr=R(YFu`+67~9!P!g z)3&@irB$J3{cHQ_FU?;i^{GvocHK3w{mauc%&jV$p8I_-6a5kYhiSgg*~Co_4`Ub@ P7#KWV{an^LB{Ts5-JgNT literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png new file mode 100755 index 0000000000000000000000000000000000000000..f59b7c4365fa1720af1aa04eb47167ddaa6eeed4 GIT binary patch literal 626 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfr-V_#WBR<bnj$;e_=<7 z_KltQorLx?v+ZY+@#qQbQd3h=IU>Y!_XbDjA{LJ+$E2p_o-8t!lj3=(B==>3x{#jC zRBlhfGuOnn-L=1a_uaX7f96QOE#qXp`Q)TbTHX0Gd*1u;H^}k*UT5%2;_v^5TFQb? zlbZI0tzIhZbVz~Y0<Rf=<h1)oR0|#L`ORnh-q<FaD8VMx%eLz3stF-lq9R<a9+&vy zA2IDaP#Rk?Pu;CAHS$8K?A9n>4w>VO_gw;~>=)AGSSEiiYv#$h8#J2t)bjqn>ixr8 z|3XwmgY|EbZ;K^o1Pk3MfA1gTd8OrC%KX5k9J_uBemR|fAwS;HKKD?VNXAc_H8Ff& ze^$yEbXwK0AJ<+T5c;)cfy?xH%-PuvJ9)}H6Ox(J)SB;4V(IS9vg&<bT&$rUyrTbZ z`?5?~#~D+F4qjoltobBy;~pCa<F)IFygUo6EI4XYSgLjQ)GKrTy(h8eaJ+%<X5|d= zkH_Dpbf#=R@J?^TR@U?kjx?>-$46cN?6KrYE|Hm+*P&G8$El|-bbYUrV4a(gx}vaf zK}5vfsZE9DB6iuT@A=yQ^Dk!!lzyso=cCDsPe!laoKw3!v%U7d_=gWWnJ&JLk@GFf z5nNY(sPLR9hv!S?6Bh+nYrZ@c$y9aC`h}AO=RePN8<}p_JW@*Bc1>u#x!Q}Tlelf3 goBetD{U2j9(|YN$tgEjW7#J8lUHx3vIVCg!0J=K`3jhEB literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png new file mode 100755 index 0000000000000000000000000000000000000000..63fe6ceff5bfcedb9670279d4bb8d25807f6ecee GIT binary patch literal 859 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$6QMi(`m{r0+rRjF?b{ zhKK*>Rll<_?)MQ2%Iev&NQo^vI%lqHfKKQ_?(Je5kA;ewvxal6bGf7O!YSajAG1=~ z-6Vl6VH=ipX{07~E-QOuGP%;;_`A)!LZ;0xzE_^J{I(`WL!Q~rW`@5=yH(N(<r0yN z*^BrtFu!VGjdEcA!So}{NKmr)&xL&}A4&V4E8O1LRpc!CG)j5*0+TOJr_WZ+@2=<f zV|uP4Jkjv;%^An%72Ou9kh{bj?_?vObBuML0E?Z?wh1Zqda)M&y`M54Y`JQsT{wfI z>eS-J3uT?sS>_6wlqD|DzxnyuE8Q;kOFC!SiYIZ3&iZ*e^>qL3&^YU;2b*8VGQEwk zoRg}h_~GLR+YW~FWj}w;7u$dLRR~LR`~BNmJudHVI=MY+HQ<q*Sd<bZ_k4ZXjh9hu ziANmVA1t`V`!geVbN19I!S;K1s}f%}etFye&hzOk-@`MNBY6s5CCqxeOm%YG`Sn|W zKCGHQ@neU~jRQ$jtO_1}J%0Vj;qU79v1fjCTIZg<nJoFpP~P7`QPpzijAgeB-}qO@ ztmWBw?4isIgCnah7^&6mzh=9;Qe8%rX}-VS_LbXsncS-v?2LFdVS3Z-(4!Y`vTQuy z9PM3iVB)q?FFEP)U-tdKzMq#qZthi@RM>y@{p$x0UVk;aIb}g`@SdPK3wKOWm2_Av zpX3y}_sh59KEsm{r`E5`6m&9gF6FanG@bUY@99$EVwGe&3lC4nwOhMG6I(fV*5s9n zRV@E;V(*-~s>b(TU1{e(efnh6c|g!(g58mt6U!1d+Z@pdO?8S|>c_CWPB-`Bt*Kv} z+qd-vRBH$)=D0kOX^rU%pMUdsS#n3{s$(r%qU0<8t#qH9zxM}A`DVT?r5el@KYj$Y zhA`~?C$PG-nKN_iy<6+be-y2Csnhbbo2@XvZ?gCClS`70Bsc94nG-ipU2oyFH;G&S z^>a!}em*<(Yj3OeYw7Qd#s_!|czu|6y6A8SbvEQ!dD_i>)W83fdBgk}Kje!<3no-6 Tg{@^^U|{fc^>bP0l+XkKzrTqU literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif b/htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif new file mode 100755 index 0000000000000000000000000000000000000000..85b99d46b9911ba53a792d716d9f688f3bb3c784 GIT binary patch literal 2530 zcmZ?wbhEHb6krfwU|?WS{Lk&@8WQa67~pE8XTZ$(|38D`PZn-A27U$|kUU6Pv%bE5 zSy|bXDN~j%UAlJd+O1o+?%lih*s){h&Yin<?b^M2_ntq0{{H>@@87@w2LqPQ4=10e zaF)K>?o`F}z@&9kp#uXGzmd)@Ch-QrT_-N<^a-=Hxj8gw@NifsKVHbOM9SOiv4O?` zwRLAyK2DTiOSqhtWe~ucv9T>sLx5*8tCMzMjA}4r(Pvu&4L6QpPF@}^M^1O|G8tx0 zSMEN39?mEgRz7wX{*ZcUZWe=C$}F)`%0e7$qP$UpSbSq^Yg=4g+}+(xtZ%wMoP7R- zqx9AGrYgn<CJh^HeFPc~C^NKgGdR!K&bh&?`!NTTi?V@(1RKM#MFtrKdQEMgFD4jp zbNe2eFjGZHIGM3JONOV-xY6NW1UJj%mW408L~eRA8!GsyyR)0{`8ct2hH|m-a@P7) z_;YeZFemVE#_}ffv9p*mn@DrBM9x)aNsv|+auel^#pWMNOUwHDdJ<v><R2Bm(pTG$ zR5?B{XxwP~<O9b+E}2`0Y&<4x;Jjeg^;o3Y#W^8BfrG(KuhWQ!tGDgQMGgjrRvz|+ zQ(0JqTMib?$hCUh+~}ZDW7gx;m@vtpO8RK@B?lgkASu685eE)lcBgVSUe5ZUDj7$P zJVy=ADBdDa1hF%x8M4UF4PoI_4-rbj5kFQ|R<*UYGiJ;nHhy|PoP54Svh>yQQ&r9n zOc*!W@&-0Aa?H4V$mY}pfhH!76^|@h8y6*7=m@njJZ4}pv6$|pY|LfCJM%cx#Hk!? z!YvCeZtE~HF&=aXs5RTAmT>4p?zLHLNe&fRdhEsy%pAPzoV=xMyqq=uT=Lvz9CBtd zoRPe&;1tKsoGQi5B0o==g;QNwC`mL}7+VZEIy&a(=aZP?RE$br9p|cMe`w;o$(A>< z;czfZ*S4Bd3uF!piL7{J!5V$IAwffciA_l$qkyN`N!eJ4fvMw6^2ECW6=KZ~Kit$| z@o8-Q5IaYN@jz+P6)!G!UuHuE3w6FCW_hTecsLo;i~P9qxK%k=r)YCBM}a)0sFP~M zlBcN5q9(1Jh{HcNHa7M3^(4el&xe!G5&mff`{zhAPdCUvEoT}QbUzl^*2Z`+LW85H zMd88&3AR?ZG#3sIAtRTxA`2hAw!`U%Bcga&oD{c3vfOLrblx~sWY6Sd-52IqFflNy z*;|2Ph?|9ho0);Zm&>r1lY@zsft8<=HCkn^B7c955sRTBANNdkWibhvXlxPW;NXy* zolQan5$~a1)(r;@dANGdyf9Fhp~mf!R&*nh2jn3Io_TCc3k8(<S(*;EEWF{hYt}LD zm4zG(OosMWydhkitc+faj6Ph3+@U?}3`OSADy)2r4E%FA)wx*=85sDu8MLL9g?dB- zv8FgvQ`7YH^v1?UQt}XSF@*5YhaO+Cjx#C~XT<QdpI=sJ(7?;$bZ}MTl2Bncr|g%0 zQtKItA4zbq$=myLF&daN@vt*7`EVJsF|aZ*axm&fMDZ{%fxI+XO`4rSZ5|&FBfGk? z&}1AwQdLz=NlBS7VFIx}0+({|JcKXJ;q}p>1-oC0gxqTkTeQJTf{~$NWnr6U6%#jO z6E`Ol4=1w+zp4TQ3lk$JBfAV|R0Sj7B>stI(G1#?_;{GCrIm%4nQ-{W&dx4BKc58u zbP=70Q2fK!1d1URhK2)qmn|fCZZ!NVcqI~Yy9w+cCWGL|HZ?NwOx#Q?JUpCiyqwG) z3OSq%`Anv<?NPj0e9TPze)7`XN&K_<cvxbkm4*Cpc*ow}zPPxU1n;!t@J`u`^+HC> zO?rL849sp14n$~h^tvWqsL)|yU|8&#DZ|!!<B7rvAEC}p1qZ(THEf3;irdbyV!i6p zcvEA`q+<*M3;cMPT}131wRm_+K;F@_;&Nt-WKQJajN@gBWz!9pm-bJbqs)>fr7Tv; z8;7kl(9_e)&(H7e?Ikv;fhr(S=2^~A#s1Kwb(1X*Lj$OIn>K^p;m(;4rrnQOwz(-x zh|u8Jb7;Xw4+dslwWWm;B1w~*6^uPq)R-G@Y*{G9b4&5#5e*TJwv$W;r)q4N)aIx& zSAvb5M}(P?m4_YF<^e~KUOYE5Cr9{H4bB)9Rz5`q<|b)w7DGj4mUwApF$sR&7(oVW E0Pke+0ssI2 literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png new file mode 100755 index 0000000000000000000000000000000000000000..813f712f726c935f9adf8d2f2dd0d7683791ef11 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y<KVi<=^^$>s zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V1H%hX7sn6@N!EjgdBKhn zYzJ;0pVw&OxTC4BNn@es<lq85?|=fOmP>(`9J@HoB~<&G@BjO4czMxW>(5LK8$N3b zw{$=M8>I{e=YMY5y3vIrJlpo!1ZTdVv+aM*o%p-v-mQqHXIW2X)LTBA(f(%h=@Y?n zpHs7ieTyykO<nKj7q<GUyTktn+nBqvT{I8hGugu;n~}G+ZSuk?FWD|I>M;f`6LMhx zktgA$X&B3Fb-<dzP|$(>$3mXVAv5kVTOE*QVPq(2n7=G@7SlZ@tB!9{3=N)}RMKR9 r85lOt6Vbh;oi4_}FeUcgKW64FQ_siwlnFC1Ffe$!`njxgN@xNAH*$g; literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png new file mode 100755 index 0000000000000000000000000000000000000000..b977d7e52e2446ea01201c5c7209ac3a05f12c9f GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl1TT#WBR<bnj$;kB~r- zWA)$nS}%6#vpV5(S^lKhRkf}|jf+}c1YI6(;@GaK%Vh4jZR!d!!A_yT+k#Ont<twe zMOe2A^a!jJOX@J5nS9nF|K9HJ^UNOK2w5UubNcgR>p7n_1sNSQw+eeO+x-uhn;|U7 z-p~=yEW_EfK*DvR>9G_0Wmp<}`ugrMmod-lFk#pfC~`AsrOMNyo$sbj6^)FGn|Ac5 ztKqQ|hYmIM^!8p=%qrLver=PbdPk{+x`lSc<AQ66y^p`WESz*wB~jwh9Odb!dwF<x z?xYrM3O5V7e^^dagsXlnOUl<vF`cKs>u=DVtio~H#8r0BjJXTes&)$XFO|Q4V#(zr zj|;nwDxI_JF<cU)$?)Y`pIYD6`3rO}dQF+>{OPU9(d0i<-k*8?d}rlH#_Pv^UyNEj z<xo`j`}Ojtx>vRBn^$L7Gjoy2<wJYUT$t1GIqj8c_<7#V^~V_xbshX(yX9KO+Rmd% zuNw?DoT-`n?B^HbdHYUZjI=$I<vsJw!N)drKRXmw39t&zd;aiuooonu$SKC>@8_so zo#nR0z{v2-w*}ok;p!^0c79FiFxa56l;K0I{Q1wX7;;xl(@t;m$jLk!b$H$vyL;#N zJ-Yn7zh&ORZkfQV3Q8JF3(lGTdwNs)Chz$hwVCT%5^p^CC3*Nj!K+`2YcgwO(w9Em zcrENl@G3E1#=FO6Y;Q;^E{b}+IBsnKlSOteYr$;EZP(T@h5ZeC9=p}5dbUqO;~)Kb Y;;Y@YF2~z3FfcH9y85}Sb4q9e0F7lca{vGU literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png new file mode 100755 index 0000000000000000000000000000000000000000..fd4bbccdf1643f4ff5022fbc59b82546e259317e GIT binary patch literal 386 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y<KVi<=^^$>s zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V1EYwii(`n!`PhrTUWXY3 z+8$oi-m&$8tP-QXik#E+rX7KAoCHExG=Hq$vWP<|OrT`(BVLz_TGzfDU*`Gim+IPu zocG^6J9$RM@XWEZhUU{brH?*3^0efY<ChbCLTWEJZ2IE=sHl0xNjd#DpAMV9SIQS* zKaz9g&V+cm9U@r)&z%?eP7a+Y^5f0xmCU9#S<SAB&z31X=+y4pvUjQJ{8^u7u`Zlt z>c^7&=;fsKHWkafW*R8w-hK4cF|yfz^4ZwfD`7<s0#>Rh2z)SAXFfM`>4`;gW*1u4 z-Ll+pPO3O3$m`bM6o*dMyL)xSmPoSg<x0;fJmdCj;uH<WRi67x@9us)O?q4Vt-8Z= s>@<3O&&Hp*bA0AHzQ0Asxo*h&Y=}OV*R|#l0|Nttr>mdKI;Vst0GUFlIRF3v literal 0 HcmV?d00001 diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css new file mode 100755 index 00000000000..1eb53bba263 --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css @@ -0,0 +1,90 @@ +UL.jqueryFileTree { + font-family: Verdana, sans-serif; + font-size: 11px; + line-height: 18px; + padding: 0px; + margin: 0px; +} + +UL.jqueryFileTree LI { + list-style: none; + padding: 0px; + padding-left: 20px; + margin: 0px; + white-space: nowrap; +} + +UL.jqueryFileTree A { + color: #333; + text-decoration: none; + padding: 0px 2px; +} + +UL.jqueryFileTree A:hover { + background: #BDF; +} + +/* Core Styles */ +.jqueryFileTree LI.directory { background: url(images/directory.png) left top no-repeat; } +.jqueryFileTree LI.expanded { background: url(images/folder_open.png) left top no-repeat; } +.jqueryFileTree LI.file { background: url(images/file.png) left top no-repeat; } +.jqueryFileTree LI.wait { background: url(images/spinner.gif) left top no-repeat; } +/* File Extensions*/ +.jqueryFileTree LI.ext_3gp { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_afp { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_afpa { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_asp { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_aspx { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_avi { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_bat { background: url(images/application.png) left top no-repeat; } +.jqueryFileTree LI.ext_bmp { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_c { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_cfm { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_cgi { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_com { background: url(images/application.png) left top no-repeat; } +.jqueryFileTree LI.ext_cpp { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_css { background: url(images/css.png) left top no-repeat; } +.jqueryFileTree LI.ext_doc { background: url(images/doc.png) left top no-repeat; } +.jqueryFileTree LI.ext_exe { background: url(images/application.png) left top no-repeat; } +.jqueryFileTree LI.ext_gif { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_fla { background: url(images/flash.png) left top no-repeat; } +.jqueryFileTree LI.ext_h { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_htm { background: url(images/html.png) left top no-repeat; } +.jqueryFileTree LI.ext_html { background: url(images/html.png) left top no-repeat; } +.jqueryFileTree LI.ext_jar { background: url(images/java.png) left top no-repeat; } +.jqueryFileTree LI.ext_jpg { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_jpeg { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_js { background: url(images/script.png) left top no-repeat; } +.jqueryFileTree LI.ext_lasso { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_log { background: url(images/txt.png) left top no-repeat; } +.jqueryFileTree LI.ext_m4p { background: url(images/music.png) left top no-repeat; } +.jqueryFileTree LI.ext_mov { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_mp3 { background: url(images/music.png) left top no-repeat; } +.jqueryFileTree LI.ext_mp4 { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_mpg { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_mpeg { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_ogg { background: url(images/music.png) left top no-repeat; } +.jqueryFileTree LI.ext_pcx { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_pdf { background: url(images/pdf.png) left top no-repeat; } +.jqueryFileTree LI.ext_php { background: url(images/php.png) left top no-repeat; } +.jqueryFileTree LI.ext_png { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_ppt { background: url(images/ppt.png) left top no-repeat; } +.jqueryFileTree LI.ext_psd { background: url(images/psd.png) left top no-repeat; } +.jqueryFileTree LI.ext_pl { background: url(images/script.png) left top no-repeat; } +.jqueryFileTree LI.ext_py { background: url(images/script.png) left top no-repeat; } +.jqueryFileTree LI.ext_rb { background: url(images/ruby.png) left top no-repeat; } +.jqueryFileTree LI.ext_rbx { background: url(images/ruby.png) left top no-repeat; } +.jqueryFileTree LI.ext_rhtml { background: url(images/ruby.png) left top no-repeat; } +.jqueryFileTree LI.ext_rpm { background: url(images/linux.png) left top no-repeat; } +.jqueryFileTree LI.ext_ruby { background: url(images/ruby.png) left top no-repeat; } +.jqueryFileTree LI.ext_sql { background: url(images/db.png) left top no-repeat; } +.jqueryFileTree LI.ext_swf { background: url(images/flash.png) left top no-repeat; } +.jqueryFileTree LI.ext_tif { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_tiff { background: url(images/picture.png) left top no-repeat; } +.jqueryFileTree LI.ext_txt { background: url(images/txt.png) left top no-repeat; } +.jqueryFileTree LI.ext_vb { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_wav { background: url(images/music.png) left top no-repeat; } +.jqueryFileTree LI.ext_wmv { background: url(images/film.png) left top no-repeat; } +.jqueryFileTree LI.ext_xls { background: url(images/xls.png) left top no-repeat; } +.jqueryFileTree LI.ext_xml { background: url(images/code.png) left top no-repeat; } +.jqueryFileTree LI.ext_zip { background: url(images/zip.png) left top no-repeat; } \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js new file mode 100755 index 00000000000..c9b0e3853df --- /dev/null +++ b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js @@ -0,0 +1,97 @@ +// jQuery File Tree Plugin +// +// 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) { + // 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(); + $.post(o.script, { dir: t }, function(data) { + $(c).find('.start').html(''); + $(c).removeClass('wait').append(data); + 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) { + /* DOL_CHANGE Replace LI A by LI A.jqft */ + $(t).find('LI A.jqft').bind(o.folderEvent, function() { + if( $(this).parent().hasClass('directory') ) { + 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 { + h($(this).attr('rel')); + } + return false; + }); + // Prevent A from triggering the # on non-click events + /* DOL_CHANGE Replace LI A by LI A.jqft */ + if( o.folderEvent.toLowerCase != 'click' ) $(t).find('LI A.jqft').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); \ No newline at end of file -- GitLab