Skip to content

MerifondNewMarkets/vue-laravel-file-manager

 
 

Repository files navigation

File-Manger frontend

Wir mussten das orignal-Frontend anpassen damit wir es für unser Projekt nutzen können. Deshalb haben wir es Geforked.

Da es ein Fork ist, können wir es nicht auf privat stellen. Deshalb gibt es die Docs hier.

Orignal Readme ab hier: Laravel file manager (Frontend)

Backend - Laravel package - alexusmai/laravel-file-manager

Laravel File Manager

New in version 3

  • Vue.js 3
  • Bootstrap 5.3
  • Bootstrap icons

Installation

NPM

$ npm install laravel-file-manager --save

Usage

IF your App using Vuex store

import { createApp } from 'vue';
import { createStore } from 'vuex';

// Source main component
import Main from './components/Main.vue';
import FileManager from 'laravel-file-manager'
// your Vuex store
import store from './path-to-your-store/store'

createApp(Main).use(store).use(FileManager, {store}).mount('#id');

ELSE you need to create a new vuex instance

import { createApp } from 'vue';
import { createStore } from 'vuex';

// Source main component
import Main from './components/Main.vue';
import FileManager from 'laravel-file-manager'

// Create a new store instance.
const store = createStore();

createApp(Main).use(store).use(FileManager, {store}).mount('#id');

The application store module will be registered under the name 'fm'

Now vue component is registered and you can use it in your app

<file-manager></file-manager>

You can overwrite some default settings

// In the new version 2.4.0 and higher
<file-manager v-bind:settings="settings"></file-manager>

...
// settings object structure
computed: {
        settings() {
            return {
                // axios headers
                headers: {
                  'X-Requested-With': 'XMLHttpRequest',
                  Authorization: `Bearer ${window.localStorage.getItem('user-token')}`,
                },
                baseUrl: 'http://test.loc/file-manager/',   // overwrite base url Axios
                windowsConfig: 2,                           // overwrite config
                lang: 'de',                                 // set language
                translation: {                              // add new translation
                    name: de,
                    content: {
                        about: 'Über',
                        back: 'Zurück',
                        ... see lang file structure
                    },
                },
            };
        },
    }
...


Available Props

settings - Object

Attribute Type Example Required Description
headers Object {'X-Requested-With': 'XMLHttpRequest'} No Axios Headers
baseUrl String 'http://my_url/file-manager/' No Axios base URL
windowsConfig Int 2 No 1 - only one manager, 2 - manager with folder tree, 3 - two managers
lang String 'de' No Set language
translation Object { ... see lang file structure }, No Add new translation

CSRF, Bootstrap, Bootstrap icons

Don't forget to add a csrf token to head block in your Laravel view and add bootstrap 5 and bootstrap icons 5 styles

<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Example -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/%3Ca%20href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6a0805051e191e180b1a2a5f44594458">[email protected]/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/%3Ca%20href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1d7f7272696e696f7c6d30747e72736e5d2c332c2c332f">[email protected]/font/bootstrap-icons.min.css">

Laravel VITE environment variables

// set baseUrl
VITE_LFM_BASE_URL=http://my-url.loc/file-manager/

// if you don't want to use csrf-token - you can off it
VITE_LFM_CSRF_TOKEN=OFF

About

Frontend for Laravel File Manager on Vue.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 57.1%
  • Vue 40.8%
  • SCSS 1.9%
  • HTML 0.2%