Skip to content

SWEET1S/moonshine-filemanager

Repository files navigation

MoonShine FileManager

Description

This package is an extension exclusively designed for the MoonShine Admin Panel, building upon the functionality of the UniSharp Laravel FileManager package. This package introduces a user-friendly interface for managing files and images, allowing admins to easily upload, organize, and handle media directly within the admin panel.

Total Downloads Latest Stable Version License

Laravel 10+ PHP 8+ Moonshine Admin Panel


Requirements

Moonshine: v2.0+

UniSharp laravel-filemanager: v2.7+


Features

  • Intuitive File Management: Provides a simple and intuitive UI for managing files and images.
  • Seamless Integration with Moonshine Admin Panel: Designed to integrate flawlessly with the Moonshine Admin Panel.
  • Image Upload and Organization: Facilitates easy upload and organization of images.
  • File Handling: Supports various file operations such as upload, delete, and rename.

Installation

  1. Install the UniSharp Laravel FileManager package and follow the instructions in the documentation to set up the package correctly.

  2. Install the package via composer:

composer require sweet1s/moonshine-filemanager

Usage

  1. For Resource, add the following: (In the screenshot you can see methods that can be used for File Manager, other methods that come from Field File do not work.)
// ...
use Sweet1s\MoonshineFileManager\FileManager;
use Sweet1s\MoonshineFileManager\FileManagerTypeEnum;

class PostResource extends ModelResource
{
    public function fields(): array
    {
        return [
                Block::make('Contact information', [
                    // ...
                    FileManager::make('Image', 'images')
                        ->typeOfFileManager(FileManagerTypeEnum::File) // By default is FileManagerTypeEnum::Image
                        ->title('Media Manager') // By default, is 'File Manager'
                        ->allowedExtensions(['pdf', 'doc', 'txt']) // By default, all extensions are allowed
                        ->removable() // By default is false
            ]),
        ];
    }
}
  1. All fields to be used as filemanager must be under the cast collection
protected $casts = [ 'images' => 'collection', ];

//or

protected function casts(): array
{
    return [
        'images' => 'collection',
    ];
}

How does it look in the Admin Panel ?

How does it look in the Admin Panel How does it look in the Admin Panel Opened