diff options
Diffstat (limited to 'src/usr/local/www/vendor/filebrowser')
22 files changed, 208 insertions, 0 deletions
diff --git a/src/usr/local/www/vendor/filebrowser/browser.js b/src/usr/local/www/vendor/filebrowser/browser.js new file mode 100644 index 0000000..564d49d --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/browser.js @@ -0,0 +1,44 @@ +$(document).ready( + function() { + $("#fbOpen").click( + function() { + $("#fbBrowser").fadeIn(750); + fbBrowse($("#fbTarget").val()); + } + ); + } +); + +function fbBrowse(path) { + $("#fileContent").fadeOut(); + + if ($("#fbCurrentDir")) { + $("#fbCurrentDir").html("Loading ..."); + } + + $.ajax( + "/vendor/filebrowser/browser.php?path=" + encodeURI(path ? path : "/"), + { type: "get", complete: fbComplete } + ); + +} + +function fbComplete(req) { + $("#fbBrowser").html(req.responseText); + + var actions = { + fbHome: function() { fbBrowse("/"); }, + fbClose: function() { $("#fbBrowser").fadeOut(750); }, + fbDir: function() { fbBrowse(this.id); }, + fbFile: function() { $("#fbTarget").val(this.id); } + } + + for (var type in actions) { + $("#fbBrowser ." + type).each( + function() { + $(this).click(actions[type]); + $(this).css("cursor","pointer"); + } + ); + } +} diff --git a/src/usr/local/www/vendor/filebrowser/browser.php b/src/usr/local/www/vendor/filebrowser/browser.php new file mode 100644 index 0000000..54ab942 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/browser.php @@ -0,0 +1,164 @@ +<?php + +require_once("guiconfig.inc"); + +/* + Copyright (C) 2013-2015 Electric Sheep Fencing, LP + +*/ +// Fetch a list of directories and files inside a given directory +function get_content($dir) { + $dirs = array(); + $files = array(); + + clearstatcache(); + $fd = @opendir($dir); + + while ($entry = @readdir($fd)) { + if ($entry == ".") { + continue; + } + if ($entry == ".." && $dir == "/") { + continue; + } + if (is_dir("{$dir}/{$entry}")) { + array_push($dirs, $entry); + } else { + array_push($files, $entry); + } + } + + @closedir($fd); + + natsort($dirs); + natsort($files); + + return array($dirs, $files); +} + +$path = realpath(strlen($_GET['path']) > 0 ? $_GET['path'] : "/"); +if (is_file($path)) { + $path = dirname($path); +} + +// ----- header ----- +?> +<table width="100%"> + <tr> + <td class="fbHome text-left" width="25px"> + <img onClick="$('#fbTarget').val('<?=$realDir?>'); fbBrowse('/');" src="/vendor/filebrowser/images/icon_home.gif" alt="Home" title="Home" /> + </td> + <td><b><?=$path;?></b></td> + <td class="fbClose text-right"> + <img onClick="$('#fbBrowser').fadeOut();" border="0" src="/vendor/filebrowser/images/icon_cancel.gif" alt="Close" title="Close" /> + </td> + </tr> + <tr> + <td id="fbCurrentDir" colspan="3" class="vexpl text-left"> +<?php + +// ----- read contents ----- +if (is_dir($path)) { + list($dirs, $files) = get_content($path); +?> + + </td> + </tr> +<?php +} else { +?> + Directory does not exist. + </td> + </tr> +</table> +<?php + exit; +} + +// ----- directories ----- +foreach ($dirs as $dir): + $realDir = realpath("{$path}/{$dir}"); +?> + <tr> + <td></td> + <td class="fbDir vexpl text-left" id="<?=$realDir;?>"> + <div onClick="$('#fbTarget').val('<?=$realDir?>'); fbBrowse('<?=$realDir?>');"> + <img src="/vendor/filebrowser/images/folder_generic.gif" /> + <?=$dir;?> + </div> + </td> + <td></td> + </tr> +<?php +endforeach; + +// ----- files ----- +foreach ($files as $file): + $ext = strrchr($file, "."); + + switch ($ext) { + case ".css": + case ".html": + case ".xml": + $type = "code"; + break; + case ".rrd": + $type = "database"; + break; + case ".gif": + case ".jpg": + case ".png": + $type = "image"; + break; + case ".js": + $type = "js"; + break; + case ".pdf": + $type = "pdf"; + break; + case ".inc": + case ".php": + $type = "php"; + break; + case ".conf": + case ".pid": + case ".sh": + $type = "system"; + break; + case ".bz2": + case ".gz": + case ".tgz": + case ".zip": + $type = "zip"; + break; + default: + $type = "generic"; + } + + $fqpn = "{$path}/{$file}"; + + if (is_file($fqpn)) { + $fqpn = realpath($fqpn); + $size = sprintf("%.2f KiB", filesize($fqpn) / 1024); + } else { + $size = ""; + } + +?> + <tr> + <td></td> + <td class="fbFile vexpl text-left" id="<?=$fqpn;?>"> + <?php $filename = str_replace("//","/", "{$path}/{$file}"); ?> + <div onClick="$('#fbTarget').val('<?=$filename?>'); loadFile(); $('#fbBrowser').fadeOut();"> + <img src="/vendor/filebrowser/images/file_<?=$type;?>.gif" alt="" title=""> + <?=$file;?> + </div> + </td> + <td class="vexpl text-right"> + <?=$size;?> + </td> + </tr> +<?php +endforeach; +?> +</table> diff --git a/src/usr/local/www/vendor/filebrowser/images/file_code.gif b/src/usr/local/www/vendor/filebrowser/images/file_code.gif Binary files differnew file mode 100644 index 0000000..f06a205 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_code.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_database.gif b/src/usr/local/www/vendor/filebrowser/images/file_database.gif Binary files differnew file mode 100644 index 0000000..d479c91 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_database.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_doc.gif b/src/usr/local/www/vendor/filebrowser/images/file_doc.gif Binary files differnew file mode 100644 index 0000000..222c31b --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_doc.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_flash.gif b/src/usr/local/www/vendor/filebrowser/images/file_flash.gif Binary files differnew file mode 100644 index 0000000..e565c37 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_flash.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_generic.gif b/src/usr/local/www/vendor/filebrowser/images/file_generic.gif Binary files differnew file mode 100644 index 0000000..5f39482 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_generic.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_image.gif b/src/usr/local/www/vendor/filebrowser/images/file_image.gif Binary files differnew file mode 100644 index 0000000..4960683 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_image.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_js.gif b/src/usr/local/www/vendor/filebrowser/images/file_js.gif Binary files differnew file mode 100644 index 0000000..9b6601f --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_js.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_pdf.gif b/src/usr/local/www/vendor/filebrowser/images/file_pdf.gif Binary files differnew file mode 100644 index 0000000..b01bb23 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_pdf.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_php.gif b/src/usr/local/www/vendor/filebrowser/images/file_php.gif Binary files differnew file mode 100644 index 0000000..ab7f459 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_php.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_ppt.gif b/src/usr/local/www/vendor/filebrowser/images/file_ppt.gif Binary files differnew file mode 100644 index 0000000..0383c98 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_ppt.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_system.gif b/src/usr/local/www/vendor/filebrowser/images/file_system.gif Binary files differnew file mode 100644 index 0000000..f1997c7 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_system.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_xls.gif b/src/usr/local/www/vendor/filebrowser/images/file_xls.gif Binary files differnew file mode 100644 index 0000000..d004013 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_xls.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/file_zip.gif b/src/usr/local/www/vendor/filebrowser/images/file_zip.gif Binary files differnew file mode 100644 index 0000000..ec98255 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/file_zip.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/folder_generic.gif b/src/usr/local/www/vendor/filebrowser/images/folder_generic.gif Binary files differnew file mode 100644 index 0000000..45b191d --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/folder_generic.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_cancel.gif b/src/usr/local/www/vendor/filebrowser/images/icon_cancel.gif Binary files differnew file mode 100644 index 0000000..246a819 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_cancel.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_contract.gif b/src/usr/local/www/vendor/filebrowser/images/icon_contract.gif Binary files differnew file mode 100644 index 0000000..cf82159 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_contract.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_expand.gif b/src/usr/local/www/vendor/filebrowser/images/icon_expand.gif Binary files differnew file mode 100644 index 0000000..06c0c68 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_expand.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_home.gif b/src/usr/local/www/vendor/filebrowser/images/icon_home.gif Binary files differnew file mode 100644 index 0000000..f888434 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_home.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_left.gif b/src/usr/local/www/vendor/filebrowser/images/icon_left.gif Binary files differnew file mode 100644 index 0000000..0d1137c --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_left.gif diff --git a/src/usr/local/www/vendor/filebrowser/images/icon_magnifier.gif b/src/usr/local/www/vendor/filebrowser/images/icon_magnifier.gif Binary files differnew file mode 100644 index 0000000..e96e548 --- /dev/null +++ b/src/usr/local/www/vendor/filebrowser/images/icon_magnifier.gif |