+
@@ -67,6 +69,8 @@ import MoveButton from './buttons/Move'
import CopyButton from './buttons/Copy'
import ShareButton from './buttons/Share'
import ShellButton from './buttons/Shell'
+import PlaylistButton from './buttons/Playlist'
+
import {mapGetters, mapState} from 'vuex'
import { logoURL, enableExec } from '@/utils/constants'
import * as api from '@/api'
@@ -85,7 +89,8 @@ export default {
UploadButton,
SwitchButton,
MoveButton,
- ShellButton
+ ShellButton,
+ PlaylistButton
},
data: function () {
return {
@@ -151,6 +156,9 @@ export default {
? (this.selectedCount > 0 && this.user.perm.rename)
: this.user.perm.rename)
},
+ showPlaylistButton () {
+ return this.selectedCount > 0
+ },
showCopyButton () {
return this.isFiles && (this.isListing
? (this.selectedCount > 0 && this.user.perm.create)
diff --git a/frontend/src/components/buttons/Playlist.vue b/frontend/src/components/buttons/Playlist.vue
new file mode 100644
index 00000000..cf662a81
--- /dev/null
+++ b/frontend/src/components/buttons/Playlist.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/frontend/src/components/files/Preview.vue b/frontend/src/components/files/Preview.vue
index f72ad38b..2fe18a95 100644
--- a/frontend/src/components/files/Preview.vue
+++ b/frontend/src/components/files/Preview.vue
@@ -108,14 +108,17 @@ export default {
hasNext () {
return (this.nextLink !== '')
},
+ authPath () {
+ return `${url.encodePath(this.req.path)}?auth=${this.jwt}`
+ },
download () {
- return `${baseURL}/api/raw${url.encodePath(this.req.path)}?auth=${this.jwt}`
+ return `${baseURL}/api/raw${this.authPath}`
},
previewUrl () {
if (this.req.type === 'image' && !this.fullSize) {
- return `${baseURL}/api/preview/big${url.encodePath(this.req.path)}?auth=${this.jwt}`
+ return `${baseURL}/api/preview/big${this.authPath}`
}
- return `${baseURL}/api/raw${url.encodePath(this.req.path)}?auth=${this.jwt}`
+ return `${baseURL}/api/raw${this.authPath}`
},
raw () {
return `${this.previewUrl}&inline=true`
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index 5c3a451f..d0e1a337 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -32,7 +32,8 @@
"switchView": "Switch view",
"toggleSidebar": "Toggle sidebar",
"update": "Update",
- "upload": "Upload"
+ "upload": "Upload",
+ "playlist": "Playlist"
},
"download": {
"downloadFile": "Download File",
diff --git a/frontend/src/i18n/fr.json b/frontend/src/i18n/fr.json
index 7e545aba..e63be147 100644
--- a/frontend/src/i18n/fr.json
+++ b/frontend/src/i18n/fr.json
@@ -32,7 +32,8 @@
"switchView": "Changer le mode d'affichage",
"toggleSidebar": "Afficher/Masquer la barre latérale",
"update": "Mettre à jour",
- "upload": "Importer"
+ "upload": "Importer",
+ "playlist": "Liste de lecture"
},
"download": {
"downloadFile": "Download File",
diff --git a/get.sh b/get.sh
deleted file mode 100644
index 94f25a56..00000000
--- a/get.sh
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/env bash
-#
-# File Browser Installer Script
-#
-# GitHub: https://github.com/filebrowser/filebrowser
-# Issues: https://github.com/filebrowser/filebrowser/issues
-# Requires: bash, mv, rm, tr, type, grep, sed, curl/wget, tar (or unzip on OSX and Windows)
-#
-# This script installs File Browser to your path.
-# Usage:
-#
-# $ curl -fsSL https://filebrowser.xyz/get.sh | bash
-# or
-# $ wget -qO- https://filebrowser.xyz/get.sh | bash
-#
-# In automated environments, you may want to run as root.
-# If using curl, we recommend using the -fsSL flags.
-#
-# This should work on Mac, Linux, and BSD systems, and
-# hopefully Windows with Cygwin. Please open an issue if
-# you notice any bugs.
-#
-
-install_filemanager()
-{
- trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; return 1' ERR
- filemanager_os="unsupported"
- filemanager_arch="unknown"
- install_path="/usr/local/bin"
- repo_name="g45t345rt"
-
- # Termux on Android has $PREFIX set which already ends with /usr
- if [[ -n "$ANDROID_ROOT" && -n "$PREFIX" ]]; then
- install_path="$PREFIX/bin"
- fi
-
- # Fall back to /usr/bin if necessary
- if [[ ! -d $install_path ]]; then
- install_path="/usr/bin"
- fi
-
- # Not every platform has or needs sudo (https://termux.com/linux.html)
- ((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo"
-
- #########################
- # Which OS and version? #
- #########################
-
- filemanager_bin="filebrowser"
- filemanager_dl_ext=".tar.gz"
-
- # NOTE: `uname -m` is more accurate and universal than `arch`
- # See https://en.wikipedia.org/wiki/Uname
- unamem="$(uname -m)"
- case $unamem in
- *aarch64*)
- filemanager_arch="arm64";;
- *64*)
- filemanager_arch="amd64";;
- *86*)
- filemanager_arch="386";;
- *armv5*)
- filemanager_arch="armv5";;
- *armv6*)
- filemanager_arch="armv6";;
- *armv7*)
- filemanager_arch="armv7";;
- *)
- echo "Aborted, unsupported or unknown architecture: $unamem"
- return 2
- ;;
- esac
-
- unameu="$(tr '[:lower:]' '[:upper:]' <<<$(uname))"
- if [[ $unameu == *DARWIN* ]]; then
- filemanager_os="darwin"
- elif [[ $unameu == *LINUX* ]]; then
- filemanager_os="linux"
- elif [[ $unameu == *FREEBSD* ]]; then
- filemanager_os="freebsd"
- elif [[ $unameu == *NETBSD* ]]; then
- filemanager_os="netbsd"
- elif [[ $unameu == *OPENBSD* ]]; then
- filemanager_os="openbsd"
- elif [[ $unameu == *WIN* || $unameu == MSYS* ]]; then
- # Should catch cygwin
- sudo_cmd=""
- filemanager_os="windows"
- filemanager_bin="filebrowser.exe"
- filemanager_dl_ext=".zip"
- else
- echo "Aborted, unsupported or unknown OS: $uname"
- return 6
- fi
-
- ########################
- # Download and extract #
- ########################
-
- echo "Downloading File Browser for $filemanager_os/$filemanager_arch..."
- if type -p curl >/dev/null 2>&1; then
- net_getter="curl -fsSL"
- elif type -p wget >/dev/null 2>&1; then
- net_getter="wget -qO-"
- else
- echo "Aborted, could not find curl or wget"
- return 7
- fi
-
- filemanager_file="${filemanager_os}-$filemanager_arch-filebrowser$filemanager_dl_ext"
- filemanager_tag="$(${net_getter} https://api.github.com/repos/$repo_name/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')"
- filemanager_url="https://github.com/$repo_name/filebrowser/releases/download/$filemanager_tag/$filemanager_file"
- echo "$filemanager_url"
-
- # Use $PREFIX for compatibility with Termux on Android
- rm -rf "$PREFIX/tmp/$filemanager_file"
-
- ${net_getter} "$filemanager_url" > "$PREFIX/tmp/$filemanager_file"
-
- echo "Extracting..."
- case "$filemanager_file" in
- *.zip) unzip -o "$PREFIX/tmp/$filemanager_file" "$filemanager_bin" -d "$PREFIX/tmp/" ;;
- *.tar.gz) tar -xzf "$PREFIX/tmp/$filemanager_file" -C "$PREFIX/tmp/" "$filemanager_bin" ;;
- esac
- chmod +x "$PREFIX/tmp/$filemanager_bin"
-
- echo "Putting filemanager in $install_path (may require password)"
- $sudo_cmd mv "$PREFIX/tmp/$filemanager_bin" "$install_path/$filemanager_bin"
- if setcap_cmd=$(PATH+=$PATH:/sbin type -p setcap); then
- $sudo_cmd $setcap_cmd cap_net_bind_service=+ep "$install_path/$filemanager_bin"
- fi
- $sudo_cmd rm -- "$PREFIX/tmp/$filemanager_file"
-
- if type -p $filemanager_bin >/dev/null 2>&1; then
- echo "Successfully installed"
- trap ERR
- return 0
- else
- echo "Something went wrong, File Browser is not in your path"
- trap ERR
- return 1
- fi
-}
-
-install_filemanager