diff --git a/CHANGELOG.md b/CHANGELOG.md index 277bf1e9..f647ab33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ * adds markdown support for custom header and footer files * adds video and audio preview via HTML5 elements (no fallback, works best in Chrome) * adds filter reset on location change +* adds option to make download button always visible * adds Google UA support * extends selectable icon sizes (adds 128px, 192px, 256px, 384px) * improves preview GUI diff --git a/src/_h5ai/client/js/inc/ext/download.js b/src/_h5ai/client/js/inc/ext/download.js index 8d5b6881..45de0590 100644 --- a/src/_h5ai/client/js/inc/ext/download.js +++ b/src/_h5ai/client/js/inc/ext/download.js @@ -4,15 +4,17 @@ modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'co var settings = _.extend({ enabled: false, type: 'php-tar', - packageName: 'package' + packageName: 'package', + alwaysVisible: false }, allsettings.download), - downloadBtnTemplate = '
  • ' + - '' + - 'download' + - '' + - '' + - '
  • ', + downloadBtnTemplate = + '
  • ' + + '' + + 'download' + + '' + + '' + + '
  • ', selectedItems = [], @@ -22,8 +24,8 @@ modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'co selectedItems = items.slice(0); if (selectedItems.length) { - $download.appendTo('#navbar').show(); - } else { + $download.show(); + } else if (!settings.alwaysVisible) { $download.hide(); } }, @@ -52,6 +54,10 @@ modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'co .find('a').on('click', onClick).end() .appendTo('#navbar'); + if (settings.alwaysVisible) { + $('#download').show(); + } + event.sub('selection', onSelection); }; diff --git a/src/_h5ai/conf/options.json b/src/_h5ai/conf/options.json index 41678d2b..806516e8 100644 --- a/src/_h5ai/conf/options.json +++ b/src/_h5ai/conf/options.json @@ -98,11 +98,13 @@ Options - type: "php-tar", "shell-tar" or "shell-zip" - packageName: basename of the download package, null for current foldername + - alwaysVisible: always show download button (defaults to download the current folder) */ "download": { "enabled": true, "type": "php-tar", - "packageName": null + "packageName": null, + "alwaysVisible": false }, /* diff --git a/src/_h5ai/server/php/inc/class-archive.php b/src/_h5ai/server/php/inc/class-archive.php index 335241e4..a78a107a 100644 --- a/src/_h5ai/server/php/inc/class-archive.php +++ b/src/_h5ai/server/php/inc/class-archive.php @@ -23,7 +23,7 @@ class Archive { $this->add_hrefs($urls); if (count($this->dirs) === 0 && count($this->files) === 0) { - return 500; + $this->add_dir(CURRENT_PATH, "/"); } if ($type === "php-tar") { @@ -145,6 +145,10 @@ class Archive { foreach ($urls as $href) { + if (trim($href) === "") { + continue; + } + $d = normalize_path(dirname($href), true); $n = basename($href);