composer require ctf0/media-manager
publish the package assets with
php artisan vendor:publish --provider="ctf0\MediaManager\MediaManagerServiceProvider"
after installation, run php artisan lmm:setup
to add
routes/web.php
webpack.mix.js
for lock/unlock item/s we use a db "sqlite" but if you prefer to use something else you should run the migration
php artisan migrate
yarn add vue vue-ls vue-infinite-loading vue-image-compare2 vue-tippy@v2 vue2-filters vue-input-autowidth vue-notif vue-clipboard2 vue-awesome vue-touch@next vue-focuspoint-component axios dropzone cropperjs keycode lottie-web plyr fuse.js music-metadata-browser idb-keyval annyang
yarn add buffer process --dev
add this one liner to your main js file and run npm run watch
to compile your js/css
files.
// app.js
// mix v5
window.Vue = require('vue')
// mix v6
import Vue from 'vue'
require('../assets/vendor/MediaManager/js/manager')
new Vue({
el: '#app'
})
random/original
names for uploaded filesdown
will go to the last item in the list "same as native file manager".audio/video
file in the preview card, pressing space
will play/pause the item instead of closing the modal.audio/video
when sidebar is hidden, will open it in the preview card "same as images".application/archive
will download it.esc
while using the image editor wont close the modal but you can dbl click/tap the modal background
to do so. "to avoid accidentally canceling your changes".- the info sidebar is only available on big screens "> 1023px".
- to stop interfering with otherkeydown
events you can toggle the manager listener through
EventHub.fire('disable-global-keys', true/false)
.
navigation | button | keyboard | click / tap | touch |
---|---|---|---|---|
toggle upload panel (toolbar) | u | |||
refresh (toolbar) | r | hold "clear cache" | pinch in (items container) | |
move/show movable list (toolbar) | m / p | |||
image editor (toolbar) | e | |||
delete (toolbar) | d / del | |||
lock/unlock (toolbar) | l | hold "anything but images" | ||
change visibility (toolbar) | v | |||
toggle bulk selection (toolbar) | b | |||
(reset) bulk select all (toolbar) | a | |||
add to movable list (shopping cart) | c / x | * | ||
move/show movable list (shopping cart) | ** | |||
clear movable list (shopping cart) | hold | |||
toggle sidebar (path bar) | t | * | swipe left/right (sidebar) | |
confirm (modal) | enter | |||
toggle preview image/pdf/text (item) | space | ** | ||
play/pause media (item) | space | ** | ||
hide (modal / upload-panel) | esc | |||
reset (search / bulk selection / filter / sorting) | esc | |||
reset upload showPreview | esc | |||
confirm upload showPreview | enter | |||
add to movable list (item) | swipe up | |||
delete (item) | swipe down | |||
rename (item) | swipe left | |||
image editor (item) | hold | |||
current ++ selected (item) | shift + click | |||
current + selected (item) | alt/meta + click | |||
create new folder | * (items container)* | |||
go to next "item" | right | * | swipe left (preview) | |
go to prev "item" | left | * | swipe right (preview) | |
go to first "item" | home | |||
go to last "item" | end | |||
go to next "row" | down | swipe up (preview) | ||
go to prev "row" | up | swipe down (preview) | ||
open folder | enter | ** | ||
go to prev "dir" | folderName (path bar) | backspace | * | swipe right (items container) |
type | event-name | description |
---|---|---|
JS | ||
modal-show | when modal is shown | |
modal-hide | when modal is hidden | |
file_selected (when inside modal) | get selected file url | |
multi_file_selected (when inside modal) | get bulk selected files urls | |
folder_selected (when inside modal) | get selected folder path | |
Laravel | ||
MMFileUploaded($file_path, $mime_type, $options) | get uploaded file storage path, mime type, custom options | |
MMFileSaved($file_path, $mime_type) | get saved (edited/link) image full storage path, mime type | |
MMFileDeleted($file_path, $is_folder) | get deleted file/folder storage path, if removed item is a folder | |
MMFileRenamed($old_path, $new_path) | get renamed file/folder "old & new" storage path | |
MMFileMoved($old_path, $new_path) | get moved file/folder "old & new" storage path |
localhost:8000/media
If you discover any security-related issues, please email ctf0-dev@protonmail.com.