All Projects → ctf0 → Laravel Media Manager

ctf0 / Laravel Media Manager

Licence: mit
A "Vuejs & Laravel" Media Manager With Tons of Features

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Laravel Media Manager

Laravel Imageup
Auto Image & file upload, resize and crop for Laravel eloquent model using Intervention image
Stars: ✭ 646 (-5.56%)
Mutual labels:  laravel
Laravel Web Tinker
Tinker in your browser
Stars: ✭ 664 (-2.92%)
Mutual labels:  laravel
Laravel Open Source Projects
A Web Artisan list of categorized OPEN SOURCE PROJECTS built with Laravel PHP Framework.
Stars: ✭ 676 (-1.17%)
Mutual labels:  laravel
Yike.io
一刻社区前端源码
Stars: ✭ 651 (-4.82%)
Mutual labels:  laravel
Lang
List of 78 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.
Stars: ✭ 6,285 (+818.86%)
Mutual labels:  laravel
Laravel Json Api
JSON API (jsonapi.org) package for Laravel applications.
Stars: ✭ 667 (-2.49%)
Mutual labels:  laravel
Laravel Mongodb
A MongoDB based Eloquent model and Query builder for Laravel (Moloquent)
Stars: ✭ 5,860 (+756.73%)
Mutual labels:  laravel
Laravel Heyman
Declarative style of authorization and validation in laravel.
Stars: ✭ 677 (-1.02%)
Mutual labels:  laravel
Browser Detect
Browser Detection for Laravel by hisorange!
Stars: ✭ 657 (-3.95%)
Mutual labels:  laravel
Hifone
A free, open-source, self-hosted forum software based on the Laravel PHP Framework. QQ群:656868
Stars: ✭ 673 (-1.61%)
Mutual labels:  laravel
Laravel Friendships
This package gives Eloquent models the ability to manage their friendships.
Stars: ✭ 651 (-4.82%)
Mutual labels:  laravel
Linkace
Your self-hosted bookmark archive. Free and open source.
Stars: ✭ 657 (-3.95%)
Mutual labels:  laravel
Sleepingowladmin
🦉 Administrative interface builder for Laravel (Laravel admin)
Stars: ✭ 671 (-1.9%)
Mutual labels:  laravel
Laravel Event Projector
Event sourcing for Artisans 📽
Stars: ✭ 650 (-4.97%)
Mutual labels:  laravel
Laravel Best Practices
Laravel best practices
Stars: ✭ 7,066 (+933.04%)
Mutual labels:  laravel
Laravel Video Chat
Laravel Video Chat using Socket.IO and WebRTC
Stars: ✭ 646 (-5.56%)
Mutual labels:  laravel
Laravel Repositories
[ABANDONED] Rinvex Repository is a simple, intuitive, and smart implementation of Active Repository with extremely flexible & granular caching system for Laravel, used to abstract the data layer, making applications more flexible to maintain.
Stars: ✭ 664 (-2.92%)
Mutual labels:  laravel
Laravel Terminal
Runs artisan command in web application
Stars: ✭ 682 (-0.29%)
Mutual labels:  laravel
Invoiceninja
Invoices, Expenses and Tasks built with Laravel and Flutter
Stars: ✭ 6,247 (+813.3%)
Mutual labels:  laravel
Laravel Responder
A Laravel Fractal package for building API responses, giving you the power of Fractal with Laravel's elegancy.
Stars: ✭ 673 (-1.61%)
Mutual labels:  laravel

Laravel Media Manager
Browser Status Latest Stable Version Total Downloads
Browser Status

main card


Installation

  • 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

    • package routes to routes/web.php
    • package assets compiling to 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
    
  • install dependencies

    yarn add vue vue-ls vue-infinite-loading vue-image-compare2 [email protected] vue2-filters vue-input-autowidth vue-notif vue-clipboard2 vue-awesome [email protected] 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'
    })
    

Config


Features

  • image editor
  • multi
    • upload
    • move/copy
    • delete
  • upload by either
    • using the upload panel
    • drag & drop anywhere
    • click & hold on an empty area "items container"
    • from a url "images only"
  • preview files before uploading
  • toggle between random/original names for uploaded files
  • asynchronous Updates
  • bulk selection
  • bookmark visited directories for quicker navigation
  • change item/s visibility
  • update the page url on navigation
  • show audio files info "artist, album, year, etc.."
  • dynamically hide files / folders
  • restrict access to path
  • download selected "including bulk selection"
  • directly copy selected file link
  • use the manager
  • auto scroll to selected item using "left, up, right, down, home, end"
  • lock/unlock item/s.
  • search in the current directory or globally through the entire collection.
  • filter by
    • folder
    • image
    • audio
    • video
    • text/pdf
    • application/archive
    • locked items
    • selected items
  • sort by
    • name
    • size
    • last modified
  • items count for
    • all
    • selected
    • search found
  • contents ratio bar
  • protection against overwriting (files/folders)
  • file name sanitization for
    • upload
    • rename
    • new folder
  • disable/enable buttons depend on the usage to avoid noise & keep the user focused
  • shortcuts / gestures
    • if no more rows available, pressing down will go to the last item in the list "same as native file manager".
    • when viewing a audio/video file in the preview card, pressing space will play/pause the item instead of closing the modal.
    • dbl click/tap
      • any file of type audio/video when sidebar is hidden, will open it in the preview card "same as images".
      • any file of type application/archive will download it.
    • all the left/right gestures have their counterparts available as well.
    • pressing 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 other keydown 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)

Events

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

Usage

Wiki
Demo

  • visit localhost:8000/media

Security

If you discover any security-related issues, please email [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].