1
0
mirror of https://github.com/misterunknown/ifm.git synced 2025-08-11 10:34:00 +02:00

misterunknown: recompiled ifm after merging pull request #8

This commit is contained in:
Marco Dickert
2016-12-01 11:17:48 +01:00
parent 95e0fc5d93
commit 0781fe818c

82
ifm.php
View File

@@ -15,28 +15,28 @@ class IFMConfig {
// 0 = no/not allowed;; 1 = yes/allowed;; default: no/forbidden;
// action controls
const upload = 1; // allow uploads
const upload = 1; // allow uploads
const remoteupload = 1; // allow remote uploads using cURL
const delete = 1; // allow deletions
const rename = 1; // allow renamings
const delete = 1; // allow deletions
const rename = 1; // allow renamings
const edit = 1; // allow editing
const chmod = 1; // allow to change rights
const chmod = 1; // allow to change rights
const extract = 1; // allow extracting zip archives
const download = 1; // allow to download files and skripts (even php scripts!)
const download = 1; // allow to download files and skripts (even php scripts!)
const selfdownload = 1; // allow to download this skript itself
const createdir = 1; // allow to create directorys
const createfile = 1; // allow to create files
const createdir = 1; // allow to create directorys
const createfile = 1; // allow to create files
const zipnload = 1; // allow to zip and download directorys
// view controls
const multiselect = 1; // implement multiselect of files and directories
const showlastmodified = 0; // show the last modified date?
const showfilesize = 1; // show filesize?
const showowner = 1; // show file owner?
const showgroup = 1; // show file group?
const showpath = 0; // show real path of directory (not only root)?
const showrights = 2; // show permissions 0 -> not; 1 -> octal, 2 -> human readable
const showhtdocs = 1; // show .htaccess and .htpasswd
const showowner = 1; // show file owner?
const showgroup = 1; // show file group?
const showpath = 0; // show real path of directory (not only root)?
const showrights = 1; // show permissions 0 -> not; 1 -> octal, 2 -> human readable
const showhtdocs = 1; // show .htaccess and .htpasswd
const showhiddenfiles = 1; // show files beginning with a dot (e.g. ".bashrc")
// general config
@@ -47,10 +47,10 @@ class IFMConfig {
// development tools
const ajaxrequest = 1; // formular to perform an ajax request
static function getConstants() {
$oClass = new ReflectionClass(__CLASS__);
return $oClass->getConstants();
}
static function getConstants() {
$oClass = new ReflectionClass(__CLASS__);
return $oClass->getConstants();
}
}
/* =======================================================================
@@ -339,10 +339,12 @@ class IFM {
<script>'.IFMIncludes::getJqueryFancybox().'</script>
<style type="text/css">
'; ?>
* { -moz-box-sizing: border-box; box-sizing: border-box; } html, body { font-family: Arial, non-serif; font-weight: 100; font-size: 12pt; background: #FFF;}
footer { margin-top:20px; margin-bottom:10px; border:1px #CCC dashed; padding:3px; color:#222; font-size:0.6em; }
footer a { color:#00E; } a { text-decoration:none; color: #000; cursor: pointer; } a:hover { color: #333; } img { vertical-align:middle; border:0; }
button > img { width: 19px; } a > img { width: 25px; } #multiseloptions a > img { width:19px; } button { margin: 1px; margin-top: 10px; padding: 10px; border: 1px solid black; }
* { -moz-box-sizing: border-box; box-sizing: border-box; } html, body { font-family: Monospace, Arial, non-serif; font-weight: 100; font-size: 8pt; background: #FFF;}
input, select { font-family: Monospace; font-size: 8pt; vertical-align: middle; }
footer { display: none; margin-top:20px; margin-bottom:10px; border:1px #CCC dashed; padding:3px; color:#222; font-size:0.6em; }
footer a { color:#00E; } a { text-decoration:none; color: #000; cursor: pointer; } a:hover { color: #a0a0a0; } img { vertical-align:middle; border:0; }
button > img { width: 15px; cursor: pointer; } a > img { width: 19px; } #multiseloptions a > img { width:18px; }
button { margin: 3px; margin-top: 10px; padding: 9px 12px; border: 1px solid #444; border-radius: 2px; font-size: 0.9em; font-weight: bold; text-transform: uppercase; cursor: pointer; background: #444; color: #fff; }
#tooltab button, #filetable button { margin:1px; padding:1px 4px; background: none; border: 0; } #version { font-size:0.8em; }
#mess { position: fixed; top: 2em; left: 50%; z-index: 10; }
#mess>div { position:relative; left:-50%;display: inline-block; padding: 25px; background-color: #EEE; border-radius: 10px; box-shadow:#333 3px 3px 10px; }
@@ -359,17 +361,22 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00dd00', end
#tooltab { clear: both; padding: 3px; width: 100%; border-collapse:collapse; margin-bottom:3px; }
#tooltab .cell_content { } #tooltab .cell_buttons { text-align: right; width:300px; } #options ul { text-align: left; }
#tooltab input[type="text"], textarea { width: 75%; margin-left: 5px; } #tooltab tr { height: 50px; } #currentDir { height: 30px; }
td.cell_buttons > div { position: fixed; top: 10px; right: 10px; background: #FFF; padding: 10px; border-radius: 5px; box-shadow: 1px 1px 10px #000; }
#options { display: inline-block; position: relative; } #options img { width: 20px; } #options ul { display: none; }
td.cell_buttons > div { position: fixed; top: 10px; right: 10px; background: #FFF; padding: 10px; border-radius: 3px; box-shadow: 1px 1px 10px rgba(0,0,0,0.15); }
#options { display: inline-block; position: relative; } #options img { width: 18px; } #options ul { display: none; }
#options:hover>ul { display: inline-block; position: absolute; padding: 3px; border: 1px solid #CCC; background-color: #FFF; list-style-type:none; margin:0;
min-width:200px; right:0; top:0; } #options ul li:before { content: '\2192\00A0' }
#filetable { padding:5px; width:100%; border-collapse: collapse;} #filetable thead { border: 1px solid #00A3A3; }
#filetable { padding:5px; width:100%; border-collapse: collapse;} #filetable thead { border: 1px solid #444; }
#filetable td { text-align:left; } #filetable tbody { border: 1px solid #EEE; }
#filetable td:not(:first-child):last-child { text-align: right; } #filetable td:not(:first-child):not(:last-child) { text-align: center; }
#filetable th { background-color: #00A3A3; color: #FFF; padding: 5px; text-align:left; text-align: center; font-weight: normal; font-size:0.9em;}
#filetable tr:nth-child(2n) { background-color: #EBEBEB;} #filetable tbody tr.selected { border: 1px dashed #777 !important; background-color: #FFE4C4; }
#filetable th { background-color: #444; color: #FFF; padding: 5px; text-align:left; text-align: center; font-weight: bold; font-size:1.0em; text-transform:uppercase;}
/*#filetable tr:nth-child(2n) { background-color: rgba(0, 0, 0, 0.01);} */
#filetable tr:nth-child(odd) { background-color: rgba(0, 0, 0, 0.02); }
#filetable tr:nth-child(even) { background-color: rgba(0, 0, 0, 0.05); }
#filetable tr:first-child { background-color: rgba(0, 0, 0, 0.00); }
#filetable tr:hover { background-color: rgba(0, 0, 0, 0.12); }
#filetable tbody tr.selected { border: 1px dashed #777 !important; background-color: #FFE4C4; }
#filetable tbody tr:last-child { border-bottom: 1px solid #EBEBEB; }
#filetable input[type^=text] { width:90px; } .download-link { font-size: 0.9em; } .overlay { z-index:5; } .overlay fieldset { border: 0; background-color: white;}
#filetable input[type^=text] { width:50px; text-align:center; } .download-link { font-size: 0.9em; } .overlay { z-index:5; } .overlay fieldset { border: 0; background-color: white;}
.overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; text-align: center; background-color: rgba(0,0,0,0.7);}
.overlay form { width: 80%; margin: 3em auto; text-align: left; } .overlay form fieldset { position:relative; }
.overlay form#showFile { height:80%; } .overlay form#showFile fieldset { height:100%; } .overlay select { float:right; margin-top:10px; padding:10px; }
@@ -379,8 +386,9 @@ min-width:200px; right:0; top:0; } #options ul li:before { content: '\2192\00A0'
#waitqueue>div{padding:5px 10px 5px 5px;}#waitqueue>div>div{width:120px;height:14px;display:inline-block;vertical-align:bottom;} #waitqueue.left { left:5px !important; right:auto; }
#multiseloptions { border:1px solid #000; box-shadow:#333 3px 3px 10px; position:fixed; top:25%; left:60%; background:#FFF; padding:0; z-index:1; overflow:hidden; }
#multiseloptions p { margin:0; padding:2px; background-color:#DDD; } #multiseloptions ul { margin:0;padding:2px 2px 2px 10px;list-style:none; }
#mdPicPreview{position:absolute;border:1px solid #ccc;background:#333;padding:5px;display:none;color:#fff;max-width:30em;}
#mdPicPreview{position:absolute;border:1px solid #ccc;background:#FFF;padding:5px;display:none;color:#fff;max-width:30em;}
#mdPicPreview img { max-width:100%;}
#currentDir { border: 0px; font-weight: bold; position: relative; top: -1px; }
#loading { position:fixed; top:calc(50% - 49px); left:calc(50% - 45px); border-radius:5px; border:1px solid #EEE; padding:12px 15px; background:#FFF; }
#savequestion { position: absolute; top:40%; left:50%; margin-left:-125px;margin-top:-55px; background-color:#FFF; border: 1px solid #CCC; z-index:10; padding:20px; text-align: center; }
@@ -532,9 +540,9 @@ if(!ifm) {
<input type="hidden" name="filename" value="'+data[i].name+'">\
<input type="hidden" name="api" value="zipnload">';
if( data[i].name == "." )
newrow += '<sub>download current directory</sub>';
//newrow += '<sub>download current directory</sub>';
newrow += '<button type="submit">\
<img src="'+ifm.icons["zipnload.png"]+'" alt="zip&amp;load">\
<img src="'+ifm.icons["zipnload.png"]+'" title="zip &amp; download current directory">\
</button>\
</fieldset>\
</form>';
@@ -1178,28 +1186,28 @@ $(document).ready(function() {ifm.init()}); // init ifm
<div>';
// refresh button - always shows
print '<button id="refresh">';
echo ('<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAACdUlEQVRYhcWXMXraQBCFf/tLDzkBugHKCVA7FdwgpEkbpU1jfAPdILqBSTWtfIIoJwjcwHTpSLEjWJaVjAT+/Bqh1czs29m3M8vdfr/nPXE/xElEUhFZvRsBYAnkIjK+lsCHgX4LYATkwApcVoAUSMymBmpV3XQFuuurAZvot73ugB/AV2Da4vIMFKq6vhWBAvjWy+lIZKGqL/7gEA0sBvgAzIAq1M2rBEQk8X6nwKTDfIdb6Z+W71PgZCs6CdhRy7yhZYf5g6qOVTVT1RT4CDxG7GYicojTSkBESiBR1dIb7kr/SSxVfVHVFfAJlxkfi6iTTTwWkcqMcm886Zgc3zYgUnNOfN5KAChxgsl9xarqRlUT3Iq+A78Cv5Gf2oBEhdPGGU4KkR2xObANUu8Hq3FFpjCfBU4nGa4oRf1w4pu1EhCRjOP5XrUEiRFaW3BEJBGRcXjWDXXM389A6QUtzywvI7O50PSwHfcAtneT8OON4RegQy1oROirtHojAqk9d3jZbgjMQ+s3QLPIwtdIrB1He7zVgQpY9dWI+U6BLXZ6GsTqQBYL4gnsp4hsRGTV40KytOdF3XBqRzKGRjwT4AFoiCRtMxvJHPhiNeQEDYGwe62t84WogveREfkrImVLRnKgbNu2hkARjI9wvTus75tYEENro1LVaJ8A70YkIjXxa9WWYxXLjFwMj9b9esE/BUtcisMJJnRfQsCd7TCLF+EgQhNIhltxXxQt9f9yAh6JFHeTCS8RPv55vwevHjpuxabojGMJBSfCCtctP9vYoL1/lUAX7A7whFt9MjT9MPyvWWXPwXt/FQGb9Jkr9r7BoC24Jf4DVBHtitmrnbcAAAAASUVORK5CYII=" alt="refresh" />');
echo ('<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAACdUlEQVRYhcWXMXraQBCFf/tLDzkBugHKCVA7FdwgpEkbpU1jfAPdILqBSTWtfIIoJwjcwHTpSLEjWJaVjAT+/Bqh1czs29m3M8vdfr/nPXE/xElEUhFZvRsBYAnkIjK+lsCHgX4LYATkwApcVoAUSMymBmpV3XQFuuurAZvot73ugB/AV2Da4vIMFKq6vhWBAvjWy+lIZKGqL/7gEA0sBvgAzIAq1M2rBEQk8X6nwKTDfIdb6Z+W71PgZCs6CdhRy7yhZYf5g6qOVTVT1RT4CDxG7GYicojTSkBESiBR1dIb7kr/SSxVfVHVFfAJlxkfi6iTTTwWkcqMcm886Zgc3zYgUnNOfN5KAChxgsl9xarqRlUT3Iq+A78Cv5Gf2oBEhdPGGU4KkR2xObANUu8Hq3FFpjCfBU4nGa4oRf1w4pu1EhCRjOP5XrUEiRFaW3BEJBGRcXjWDXXM389A6QUtzywvI7O50PSwHfcAtneT8OON4RegQy1oROirtHojAqk9d3jZbgjMQ+s3QLPIwtdIrB1He7zVgQpY9dWI+U6BLXZ6GsTqQBYL4gnsp4hsRGTV40KytOdF3XBqRzKGRjwT4AFoiCRtMxvJHPhiNeQEDYGwe62t84WogveREfkrImVLRnKgbNu2hkARjI9wvTus75tYEENro1LVaJ8A70YkIjXxa9WWYxXLjFwMj9b9esE/BUtcisMJJnRfQsCd7TCLF+EgQhNIhltxXxQt9f9yAh6JFHeTCS8RPv55vwevHjpuxabojGMJBSfCCtctP9vYoL1/lUAX7A7whFt9MjT9MPyvWWXPwXt/FQGb9Jkr9r7BoC24Jf4DVBHtitmrnbcAAAAASUVORK5CYII=" title="refresh" />');
print '</button>';
// upload button
if(IFMConfig::upload == 1) {
print '<button id="upload">';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABNUlEQVRYhe1W4c6DIAw8lD1cn/ge7lPZj4lhVaDIFrLku8RERdqjPU5cCAEjMQ3N/k/gJwiIyNu9iHgRCSIyX33zUQIiApJpEg/gbx9eRGQCAJK3SWQJVJJHrL0kLgkYk3+EhCsZkSF5ipnkFufFBdwm0Jj8RMKKkghdY3Lg1Y6mCb4yvgFISzSr8VU9N/9YihpIsa8s/TiQ7DYyF0KwKtfhVZGDADqdlOTRAl3aHAGNKfPeijUSWG5MdjhroDmGFmEtYE2EVhxxUgILyUduRkaEtV2Ui7Nhb53XgwUHO/W6JN5oyxfx3uI0r0ChJMLVYsc92yiKcLm6rI74rROR2RGHH8laNaD/DTmYK3AiUOhdIGlxzCOORQeaQNFaew6fCbLb0KPfWpsxXITm88C3MLwCwwk8Af8Lgc7C878GAAAAAElFTkSuQmCC" alt="Upload" />';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABNUlEQVRYhe1W4c6DIAw8lD1cn/ge7lPZj4lhVaDIFrLku8RERdqjPU5cCAEjMQ3N/k/gJwiIyNu9iHgRCSIyX33zUQIiApJpEg/gbx9eRGQCAJK3SWQJVJJHrL0kLgkYk3+EhCsZkSF5ipnkFufFBdwm0Jj8RMKKkghdY3Lg1Y6mCb4yvgFISzSr8VU9N/9YihpIsa8s/TiQ7DYyF0KwKtfhVZGDADqdlOTRAl3aHAGNKfPeijUSWG5MdjhroDmGFmEtYE2EVhxxUgILyUduRkaEtV2Ui7Nhb53XgwUHO/W6JN5oyxfx3uI0r0ChJMLVYsc92yiKcLm6rI74rROR2RGHH8laNaD/DTmYK3AiUOhdIGlxzCOORQeaQNFaew6fCbLb0KPfWpsxXITm88C3MLwCwwk8Af8Lgc7C878GAAAAAElFTkSuQmCC" title="Upload" />';
print '</button>';
}
// create file button
if(IFMConfig::createfile == 1) {
print '<button id="createFile">';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABDUlEQVRYhe2VsRGCQBBFn475WYIlUAIhm9mBlkIp0oHZppZACZQgFWjgoSdzCo4sJPejm+UP+2//8lkVRXFjJqjqql9bz9X8EzbdIaZuKojIxykvPoEkIAlIApKATaz4LbnG4JdUjQqYIpZFZAeUwD6oXYEzUKpqA0YWiEgG1MABcMEj52u159hYALRh426iwXsdcBGRbHILROTE45ZDcEBpYcF+mPLiWlkQnWJY8z2chQU/iY8K+BMt4EIhkSV8cs0sGImzhQU7HhngBqgtFl+BT7jcN+hE3XpTbYFcVRuTJFTVGsiAKhTizxWQeY7JEnYiGuAIr51S1W2ft/jvOAlYXMBzCWcMnzcsPoE7bQ1jbIj6ZSQAAAAASUVORK5CYII=" alt="create file" />';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABDUlEQVRYhe2VsRGCQBBFn475WYIlUAIhm9mBlkIp0oHZppZACZQgFWjgoSdzCo4sJPejm+UP+2//8lkVRXFjJqjqql9bz9X8EzbdIaZuKojIxykvPoEkIAlIApKATaz4LbnG4JdUjQqYIpZFZAeUwD6oXYEzUKpqA0YWiEgG1MABcMEj52u159hYALRh426iwXsdcBGRbHILROTE45ZDcEBpYcF+mPLiWlkQnWJY8z2chQU/iY8K+BMt4EIhkSV8cs0sGImzhQU7HhngBqgtFl+BT7jcN+hE3XpTbYFcVRuTJFTVGsiAKhTizxWQeY7JEnYiGuAIr51S1W2ft/jvOAlYXMBzCWcMnzcsPoE7bQ1jbIj6ZSQAAAAASUVORK5CYII=" title="create file" />';
print '</button>';
}
// create directory button
if(IFMConfig::createdir == 1) {
print '<button id="createDir">';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABP0lEQVRYhe2WsVWEQBCGP3zmZweeHdiBGBhMJLHRdSAlUMJZgS1ANCl2gBV4diAV7AUc7+3dAwGZPQzuD4dd/n9nZv/ZyDnHkrhalP0i4CIAuAYQkTVQAauR+2pgrao/cwW0GcgnkHNYm80lB4icc4hIaDN4VNWy68P/6IEOfKhqvJSAGqgClaVQ1cQPdJUgB14DkAPcnAbO3QPlGAGz7/Yv2A0JKIDkdJEhng6m1yugAm4DCngBvkRk0yfgXHgXkRSOnfCTpkbPlkyqGgF9bnvnZyC3Jh+BzBcQsvv7kLRO+A3cW/21TXtfzCvHyh/HsZWAKfBngdn18xtuoAmbW2BEuqPjEAMCCksfyP6wZ2uWAQARKYGHkcvfVDW1dsKEZp6MIgfDHvAhIjGQcmxsNc043vrvwyACpmDxR+niAvY9F2dckINLRQAAAABJRU5ErkJggg==" alt="create directory" />';
print '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABP0lEQVRYhe2WsVWEQBCGP3zmZweeHdiBGBhMJLHRdSAlUMJZgS1ANCl2gBV4diAV7AUc7+3dAwGZPQzuD4dd/n9nZv/ZyDnHkrhalP0i4CIAuAYQkTVQAauR+2pgrao/cwW0GcgnkHNYm80lB4icc4hIaDN4VNWy68P/6IEOfKhqvJSAGqgClaVQ1cQPdJUgB14DkAPcnAbO3QPlGAGz7/Yv2A0JKIDkdJEhng6m1yugAm4DCngBvkRk0yfgXHgXkRSOnfCTpkbPlkyqGgF9bnvnZyC3Jh+BzBcQsvv7kLRO+A3cW/21TXtfzCvHyh/HsZWAKfBngdn18xtuoAmbW2BEuqPjEAMCCksfyP6wZ2uWAQARKYGHkcvfVDW1dsKEZp6MIgfDHvAhIjGQcmxsNc043vrvwyACpmDxR+niAvY9F2dckINLRQAAAABJRU5ErkJggg==" title="create directory" />';
print '</button>';
}
// create options button
print ' <div id="options"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAACh0lEQVRYhcWWzXHbMBCFP2VSgEqQKzBdgZXjnuwORFdguYOkAitpwHIH8ukdzVRgugKrg6gD5YClAoIgTf9k9GY0GiyweMv9xWS/33NMfDkqO/D1vYpmVgBPkehMUv1fDDCzOVACS0k7F58mx06B2s9PgRWwllQN3f1qCMzsDngEFv7foEiOxuvDeTNbf8iAlMQN6jXA9+O986ELx4RgQ3B/g9LMdsA8OTd38jKRb4Yun4wpQzP7A0xfPZhHIem5b7PjAf+KOfAT2Eja0vXCWGwlPXvFlMAFUEm6ag60PODZ/phcUgNb4DKR76K9GSHuqZe2/j9L5N+a6kg9kEuYgnZSbYGrXHn5B9xFhClxgwVQQVIFkn4Q6rcPa0LD6ZC7fgWc+bk+VMCyWWST0MwWmUtqgut2HYWu/pQQyrRU13H8oacPSLqnm3Q3Y8hdfwfcJOJVSg6RBzxT41+cD1tJJ2PIY5jZC+08+E3wZA3Ukuo4CePBkuLhreSR3nW0Pqf9YZOxrXiU69+jd/T3wMEASRNC7EtCKcazPW1CY5HqVX536Vz9syAzWE68LY+Cmc2Al0jUKUHIhMDMpj1TbahB5ZCeL6NRfkA6C/oaSIN7SalhHfgjZNGz3Wpo6Sy4HSAHWLiRy1w43O0rwtTrQ+E8VzkD1rRdvyOM4hn/HiAXwIWZPdBO1CJDXBMm5CzDA2SS0MxuXWkj6cFlTwx7pg+1pDMzOyV82CVD74EcMtn8VgxWz5hGlIvndUZWkx/DQ/kwyoBlsi4l/cIfFBEa16ZGlB81ICZa+aiGdgIe1m5EvFcxgFcN8AvnwHdJ8YzPGuCYEzxRJDodjHqW5+CZfSD1WfJmvNuAz8Jf0AgKZKIIqsQAAAAASUVORK5CYII=" alt="options" /><ul>';
print ' <div id="options"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAACh0lEQVRYhcWWzXHbMBCFP2VSgEqQKzBdgZXjnuwORFdguYOkAitpwHIH8ukdzVRgugKrg6gD5YClAoIgTf9k9GY0GiyweMv9xWS/33NMfDkqO/D1vYpmVgBPkehMUv1fDDCzOVACS0k7F58mx06B2s9PgRWwllQN3f1qCMzsDngEFv7foEiOxuvDeTNbf8iAlMQN6jXA9+O986ELx4RgQ3B/g9LMdsA8OTd38jKRb4Yun4wpQzP7A0xfPZhHIem5b7PjAf+KOfAT2Eja0vXCWGwlPXvFlMAFUEm6ag60PODZ/phcUgNb4DKR76K9GSHuqZe2/j9L5N+a6kg9kEuYgnZSbYGrXHn5B9xFhClxgwVQQVIFkn4Q6rcPa0LD6ZC7fgWc+bk+VMCyWWST0MwWmUtqgut2HYWu/pQQyrRU13H8oacPSLqnm3Q3Y8hdfwfcJOJVSg6RBzxT41+cD1tJJ2PIY5jZC+08+E3wZA3Ukuo4CePBkuLhreSR3nW0Pqf9YZOxrXiU69+jd/T3wMEASRNC7EtCKcazPW1CY5HqVX536Vz9syAzWE68LY+Cmc2Al0jUKUHIhMDMpj1TbahB5ZCeL6NRfkA6C/oaSIN7SalhHfgjZNGz3Wpo6Sy4HSAHWLiRy1w43O0rwtTrQ+E8VzkD1rRdvyOM4hn/HiAXwIWZPdBO1CJDXBMm5CzDA2SS0MxuXWkj6cFlTwx7pg+1pDMzOyV82CVD74EcMtn8VgxWz5hGlIvndUZWkx/DQ/kwyoBlsi4l/cIfFBEa16ZGlB81ICZa+aiGdgIe1m5EvFcxgFcN8AvnwHdJ8YzPGuCYEzxRJDodjHqW5+CZfSD1WfJmvNuAz8Jf0AgKZKIIqsQAAAAASUVORK5CYII=" title="options" /><ul>';
$options = false;
if(IFMConfig::remoteupload == 1) {
print '<li><a onclick="ifm.remoteUploadDialog()">Remote upload</a></li>';
@@ -1768,11 +1776,11 @@ $(document).ready(function() {ifm.init()}); // init ifm
<title>IFM - improved file manager</title>
<meta charset="utf-8">
<style type="text/css">
* { box-sizing: border-box; font-family: Arial, sans-serif; }
* { box-sizing: border-box; font-family: Monospace, Arial, sans-serif; }
html { text-align: center; }
body { margin:auto; width: auto; display: inline-block; }
form { padding: 1em; border: 1px dashed #CCC; }
button { margin-top: 1em; }
form { padding: 1em; border: 1px dotted #CCC; }
button { margin: 3px; margin-top: 10px; padding: 9px 12px; border: 1px solid #444; border-radius: 2px; font-size: 0.9em; font-weight: bold; text-transform: uppercase; cursor: pointer; background: #444; color: #fff; }
div.err { color: red; font-weight: bold; margin-bottom: 1em; }
</style>
</head>