From cb0e05be5dbb57d728fa9ad77fb657d3ae84914b Mon Sep 17 00:00:00 2001 From: fglueck Date: Thu, 10 Aug 2023 10:47:34 +0200 Subject: [PATCH] Adding FolderSize new Button to activate/deactivate showing Foldersize --- tinyfilemanager.php | 56 +++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/tinyfilemanager.php b/tinyfilemanager.php index 6f55502..035effc 100644 --- a/tinyfilemanager.php +++ b/tinyfilemanager.php @@ -274,7 +274,7 @@ defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . // logout if (isset($_GET['logout'])) { unset($_SESSION[FM_SESSION_ID]['logged']); - unset( $_SESSION['token']); + unset( $_SESSION['token']); fm_redirect(FM_SELF_URL); } @@ -720,6 +720,9 @@ if (isset($_POST['newfilename'], $_POST['newfile'], $_POST['token']) && !FM_READ } $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); } +if (isset($_POST['foldersize'])) { + $_SESSION[FM_SESSION_ID]['foldersize'] = !($_SESSION[FM_SESSION_ID]['foldersize']??false); +} // Copy folder / file if (isset($_GET['copy'], $_GET['finish']) && !FM_READONLY) { @@ -798,7 +801,7 @@ if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token']) if(!verifyToken($_POST['token'])) { fm_set_msg(lng('Invalid Token.'), 'error'); } - + // from $path = FM_ROOT_PATH; if (FM_PATH != '') { @@ -1117,9 +1120,9 @@ if (isset($_POST['group'], $_POST['token']) && (isset($_POST['zip']) || isset($_ foreach($files as $file){ array_push($sanitized_files, fm_clean_path($file)); } - + $files = $sanitized_files; - + if (!empty($files)) { chdir($path); @@ -1225,7 +1228,7 @@ if (isset($_POST['chmod'], $_POST['token']) && !FM_READONLY && !FM_IS_WIN) { if(!verifyToken($_POST['token'])) { fm_set_msg(lng("Invalid Token."), 'error'); } - + $path = FM_ROOT_PATH; if (FM_PATH != '') { $path .= '/' . FM_PATH; @@ -1448,7 +1451,7 @@ if (isset($_POST['copy']) && !FM_READONLY) {

  - +

@@ -1997,7 +2000,7 @@ if (isset($_GET['chmod']) && !FM_READONLY && !FM_IS_WIN) {

- +  

@@ -2071,7 +2074,7 @@ $tableTheme = (FM_THEME == "dark") ? "text-white bg-dark table-dark" : "bg-white $modif = date(FM_DATETIME_FORMAT, $modif_raw); $date_sorting = strtotime(date("F d Y H:i:s.", $modif_raw)); $filesize_raw = ""; - $filesize = lng('Folder'); + $filesize = $_SESSION[FM_SESSION_ID]['foldersize']??false ? fm_get_filesize(fm_foldersize($path . '/' . $f)) : lng('Folder'); $perms = substr(decoct(fileperms($path . '/' . $f)), -4); if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) { $owner = posix_getpwuid(fileowner($path . '/' . $f)); @@ -2230,6 +2233,8 @@ $tableTheme = (FM_THEME == "dark") ? "text-white bg-dark table-dark" : "bg-white
  • +
  • +
  • Tiny File Manager
    @@ -2268,13 +2273,33 @@ function print_external($key) { * @param string $token * @return bool */ -function verifyToken($token) +function verifyToken($token) { - if (hash_equals($_SESSION['token'], $token)) { + if (hash_equals($_SESSION['token'], $token)) { return true; } return false; } +function fm_foldersize($path) { + $total_size = 0; + $files = scandir($path); + $cleanPath = rtrim($path, '/'). '/'; + foreach($files as $t) { + if ($t<>"." && $t<>"..") { + $currentFile = $cleanPath . $t; + if (is_dir($currentFile)) { + $size = fm_foldersize($currentFile); + $total_size += $size; + } + else { + $size = filesize($currentFile); + $total_size += $size; + } + } + } + + return $total_size; +} /** * Delete file or folder (recursively) @@ -3849,7 +3874,8 @@ $isStickyNavBar = $sticky_navbar ? 'navbar-fixed' : 'navbar-normal'; .float-right { float: right; } .table-hover>tbody>tr:hover>td:first-child { border-left: 1px solid #1b77fd; } #main-table tr.even { background-color: #F8F9Fa; } - .filename>a>i {margin-right: 3px;} + .filename>a>i {margin-right: 3px;} + .btn-active { background-color: yellow; } @@ -4128,7 +4154,7 @@ $isStickyNavBar = $sticky_navbar ? 'navbar-fixed' : 'navbar-normal'; $confirmDailog.modal('show'); return false; } - + // on mouse hover image preview !function(s){s.previewImage=function(e){var o=s(document),t=".previewImage",a=s.extend({xOffset:20,yOffset:-20,fadeIn:"fast",css:{padding:"5px",border:"1px solid #cccccc","background-color":"#fff"},eventSelector:"[data-preview-image]",dataKey:"previewImage",overlayId:"preview-image-plugin-overlay"},e);return o.off(t),o.on("mouseover"+t,a.eventSelector,function(e){s("p#"+a.overlayId).remove();var o=s("

    ").attr("id",a.overlayId).css("position","absolute").css("display","none").append(s('').attr("src",s(this).data(a.dataKey)));a.css&&o.css(a.css),s("body").append(o),o.css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px").fadeIn(a.fadeIn)}),o.on("mouseout"+t,a.eventSelector,function(){s("#"+a.overlayId).remove()}),o.on("mousemove"+t,a.eventSelector,function(e){s("#"+a.overlayId).css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px")}),this},s.previewImage()}(jQuery); @@ -4158,7 +4184,7 @@ $isStickyNavBar = $sticky_navbar ? 'navbar-fixed' : 'navbar-normal'; }); @@ -4255,11 +4281,11 @@ function lng($txt) { $tr['en']['NormalEditor'] = 'Normal Editor'; $tr['en']['BackUp'] = 'Back Up'; $tr['en']['SourceFolder'] = 'Source Folder'; $tr['en']['Files'] = 'Files'; $tr['en']['Move'] = 'Move'; $tr['en']['Change'] = 'Change'; - $tr['en']['Settings'] = 'Settings'; $tr['en']['Language'] = 'Language'; + $tr['en']['Settings'] = 'Settings'; $tr['en']['Language'] = 'Language'; $tr['en']['ErrorReporting'] = 'Error Reporting'; $tr['en']['ShowHiddenFiles'] = 'Show Hidden Files'; $tr['en']['Help'] = 'Help'; $tr['en']['Created'] = 'Created'; $tr['en']['Help Documents'] = 'Help Documents'; $tr['en']['Report Issue'] = 'Report Issue'; - $tr['en']['Generate'] = 'Generate'; $tr['en']['FullSize'] = 'Full Size'; + $tr['en']['Generate'] = 'Generate'; $tr['en']['FullSize'] = 'Full Size'; $tr['en']['HideColumns'] = 'Hide Perms/Owner columns';$tr['en']['You are logged in'] = 'You are logged in'; $tr['en']['Nothing selected'] = 'Nothing selected'; $tr['en']['Paths must be not equal'] = 'Paths must be not equal'; $tr['en']['Renamed from'] = 'Renamed from'; $tr['en']['Archive not unpacked'] = 'Archive not unpacked';