diff --git a/README.md b/README.md index 8f49208..a4687df 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Laravel File Manager -[![Latest Stable Version](https://poser.pugx.org/alexusmai/laravel-file-manager/v/stable)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![Total Downloads](https://poser.pugx.org/alexusmai/laravel-file-manager/downloads)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![Latest Unstable Version](https://poser.pugx.org/alexusmai/laravel-file-manager/v/unstable)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![License](https://poser.pugx.org/alexusmai/laravel-file-manager/license)](https://packagist.org/packages/alexusmai/laravel-file-manager) - +[![Latest Stable Version](http://poser.pugx.org/alexusmai/laravel-file-manager/v)](https://packagist.org/packages/alexusmai/laravel-file-manager) +[![Total Downloads](http://poser.pugx.org/alexusmai/laravel-file-manager/downloads)](https://packagist.org/packages/alexusmai/laravel-file-manager) +[![Latest Unstable Version](http://poser.pugx.org/alexusmai/laravel-file-manager/v/unstable)](https://packagist.org/packages/alexusmai/laravel-file-manager) +[![License](http://poser.pugx.org/alexusmai/laravel-file-manager/license)](https://packagist.org/packages/alexusmai/laravel-file-manager) +[![PHP Version Require](http://poser.pugx.org/alexusmai/laravel-file-manager/require/php)](https://packagist.org/packages/alexusmai/laravel-file-manager) ![Laravel File Manager](https://raw.github.com/alexusmai/vue-laravel-file-manager/master/src/assets/laravel-file-manager.gif?raw=true) @@ -66,36 +66,9 @@ * Dynamic configuration (v2.4) * Supported locales : ru, en, ar, sr, cs, de, es, nl, zh-CN, fa, it, tr, fr, pt-BR, zh-TW, pl -## In a new version 2.5 - -You can change Route prefix (default - 'file-manager') - -```php -/** - * LFM Route prefix - * !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!! - */ -'routePrefix' => 'file-manager', -``` - -Open PDF files in a new tab (test) - use 'double-click' - -## Upgrading to version 2.5 - -Add a new parameter to the configuration file (config/file-manager.php) - -```php -/** - * LFM Route prefix - * !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!! - */ -'routePrefix' => 'file-manager', - -``` - -Update pre-compiled css and js files. - +## In a new version 3 -```php -php artisan vendor:publish --tag=fm-assets --force -``` +- **Version 3 only works with Laravel 9!** +- Vue.js 3 +- Bootstrap 5 +- Bootstrap Icons diff --git a/composer.json b/composer.json index 1252ba7..b83efcd 100644 --- a/composer.json +++ b/composer.json @@ -17,13 +17,13 @@ "license": "MIT", "minimum-stability": "dev", "require": { - "php": ">=7.1.0", + "php": "^8.0", "ext-zip": "*", "ext-json": "*", - "laravel/framework": "^5.5|^6.0|^7.0|^8.0", - "league/flysystem": "^1.0", - "intervention/image": "^2.4", - "intervention/imagecache": "^2.3" + "laravel/framework": "^9.0", + "league/flysystem": "^3.0", + "intervention/image": "^2.7", + "intervention/imagecache": "^2.5" }, "autoload": { "psr-4": { diff --git a/docs/index.md b/docs/index.md index a6f94c8..38e6fb5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,10 +1,5 @@ # Laravel File Manager -[![Latest Stable Version](https://poser.pugx.org/alexusmai/laravel-file-manager/v/stable)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![Total Downloads](https://poser.pugx.org/alexusmai/laravel-file-manager/downloads)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![Latest Unstable Version](https://poser.pugx.org/alexusmai/laravel-file-manager/v/unstable)](https://packagist.org/packages/alexusmai/laravel-file-manager) -[![License](https://poser.pugx.org/alexusmai/laravel-file-manager/license)](https://packagist.org/packages/alexusmai/laravel-file-manager) - ## Docs * [Installation](./installation.md) @@ -15,8 +10,9 @@ * [Update](./update.md) ## Requirements - * PHP >= 7.1.0 - * Laravel 5.5 or higher + * PHP >= 8.0 + * ext-zip - for zip and unzip functions + * Laravel 9 or higher * GD Library or Imagick for [intervention/image](https://github.com/Intervention/image) * requires [intervention/image](https://github.com/Intervention/image) and [intervention/imagecache](https://github.com/Intervention/imagecache) - * Bootstrap 4 and Font Awesome 5 + * Bootstrap 5 and Bootstrap Icons v1.8.0 and higher diff --git a/docs/installation.md b/docs/installation.md index 7c4b6a0..627391f 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,69 +1,90 @@ # Installation + 1. Install package - using composer - ```bash - composer require alexusmai/laravel-file-manager - ``` +``` +composer require alexusmai/laravel-file-manager +``` + +For Laravel 5 - 8 use v2.5.4 + +``` +composer require alexusmai/laravel-file-manager "2.5.4" +``` 2. If you use Laravel 5.4, then add service provider to config/app.php (for the Laravel 5.5 and higher skip this step): - ```php - Alexusmai\LaravelFileManager\FileManagerServiceProvider::class, - ``` +```php +Alexusmai\LaravelFileManager\FileManagerServiceProvider::class, +``` + 3. Publish configuration file - ```bash - php artisan vendor:publish --tag=fm-config - ``` +```bash +php artisan vendor:publish --tag=fm-config +``` 4. You can install npm package directly and use it in your vue application - more information about it - [vue-laravel-file-manager](https://github.com/alexusmai/vue-laravel-file-manager) - - >OR - - Publish compiled and minimized js and css files - - ``` - php artisan vendor:publish --tag=fm-assets - ``` - - Open the view file where you want to place the application block, and add: - - * add a csrf token to head block if you did not do it before - - ```html - - - ``` - - * the frontend package uses **Bootstrap 4** and **Font Awesome 5** styles, if you already use it, then you do not need to connect any styles. - Otherwise add - - - ```html - - - ``` - - * add file manager styles - - ```html - - ``` - - * add file manager js - - ```html - - ``` - - * add div for application (set application height!) - - ```html -
I?Be(ee,we,R,!0,!1,P):W(re,ge,ye,we,R,X,x,$,P)},Oe=(ee,re,ge,ye,we,R,X,x,$)=>{let C=0;const I=re.length;let P=ee.length-1,ne=I-1;for(;C<=P&&C<=ne;){const ce=ee[C],he=re[C]=$?dr(re[C]):Sn(re[C]);if(jr(ce,he))L(ce,he,ge,null,we,R,X,x,$);else break;C++}for(;C<=P&&C<=ne;){const ce=ee[P],he=re[ne]=$?dr(re[ne]):Sn(re[ne]);if(jr(ce,he))L(ce,he,ge,null,we,R,X,x,$);else break;P--,ne--}if(C>P){if(C<=ne){const ce=ne+1,he=cene)for(;C<=P;)D(ee[C],we,R,!0),C++;else{const ce=C,he=C,pe=new Map;for(C=he;C<=ne;C++){const tt=re[C]=$?dr(re[C]):Sn(re[C]);tt.key!=null&&pe.set(tt.key,C)}let q,j=0;const ve=ne-he+1;let Fe=!1,et=0;const Pe=new Array(ve);for(C=0;C=n.length?{value:void 0,done:!0}:(e=r(n,i),t.index+=e.length,{value:e,done:!1})}))},"3ea3":function(e,t,n){var r=n("23e7"),i=n("f748"),a=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return i(e=+e)*o(a(e),1/3)}})},"3f3a":function(e,t,n){var r=n("23e7"),i=n("83ab"),a=n("825a"),o=n("c04e"),s=n("9bf2"),l=n("d039"),c=l((function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})}));r({target:"Reflect",stat:!0,forced:c,sham:!i},{defineProperty:function(e,t,n){a(e);var r=o(t,!0);a(n);try{return s.f(e,r,n),!0}catch(i){return!1}}})},"3f8c":function(e,t){e.exports={}},"3fcc":function(e,t,n){"use strict";var r=n("ebb5"),i=n("b727").map,a=n("4840"),o=r.aTypedArray,s=r.aTypedArrayConstructor,l=r.exportTypedArrayMethod;l("map",(function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(s(a(e,e.constructor)))(t)}))}))},"403d":function(e,t,n){},4057:function(e,t,n){var r=n("23e7"),i=Math.hypot,a=Math.abs,o=Math.sqrt,s=!!i&&i(1/0,NaN)!==1/0;r({target:"Math",stat:!0,forced:s},{hypot:function(e,t){var n,r,i=0,s=0,l=arguments.length,c=0;while(s1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(ee(e)&&!oe(t)){var i=new CustomEvent(t,{bubbles:n,detail:s(s({},r),{},{plyr:this})});e.dispatchEvent(i)}}function Fe(){this&&this.eventListeners&&(this.eventListeners.forEach((function(e){var t=e.element,n=e.type,r=e.callback,i=e.options;t.removeEventListener(n,r,i)})),this.eventListeners=[])}function Ie(){var e=this;return new Promise((function(t){return e.ready?setTimeout(t,0):De.call(e,e.elements.container,"ready",t)})).then((function(){}))}function je(e){ie(e)&&e.then(null,(function(){}))}function Re(e){return!!(Q(e)||K(e)&&e.includes(":"))&&(Q(e)?e:e.split(":")).map(Number).every(G)}function $e(e){if(!Q(e)||!e.every(G))return null;var t=c(e,2),n=t[0],r=t[1],i=function e(t,n){return 0===n?t:e(n,t%n)}(n,r);return[n/i,r/i]}function qe(e){var t=function(e){return Re(e)?e.split(":").map(Number):null},n=t(e);if(null===n&&(n=t(this.config.ratio)),null===n&&!oe(this.embed)&&Q(this.embed.ratio)&&(n=this.embed.ratio),null===n&&this.isHTML5){var r=this.media;n=$e([r.videoWidth,r.videoHeight])}return n}function Be(e){if(!this.isVideo)return{};var t=this.elements.wrapper,n=qe.call(this,e),r=c(Q(n)?n:[0,0],2),i=100/r[0]*r[1];if(t.style.paddingBottom="".concat(i,"%"),this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){var a=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),o=(a-i)/(a/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform="translateY(-".concat(o,"%)")}else this.isHTML5&&t.classList.toggle(this.config.classNames.videoFixedRatio,null!==n);return{padding:i,ratio:n}}var Ue={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter((function(t){var n=t.getAttribute("type");return!!oe(n)||Me.mime.call(e,n)})):[]},getQualityOptions:function(){return this.config.quality.forced?this.config.quality.options:Ue.getSources.call(this).map((function(e){return Number(e.getAttribute("size"))})).filter(Boolean)},setup:function(){if(this.isHTML5){var e=this;e.options.speed=e.config.speed.options,oe(this.config.ratio)||Be.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=Ue.getSources.call(e).find((function(t){return t.getAttribute("src")===e.source}));return t&&Number(t.getAttribute("size"))},set:function(t){if(e.quality!==t){if(e.config.quality.forced&&Z(e.config.quality.onChange))e.config.quality.onChange(t);else{var n=Ue.getSources.call(e).find((function(e){return Number(e.getAttribute("size"))===t}));if(!n)return;var r=e.media,i=r.currentTime,a=r.paused,o=r.preload,s=r.readyState,l=r.playbackRate;e.media.src=n.getAttribute("src"),("none"!==o||s)&&(e.once("loadedmetadata",(function(){e.speed=l,e.currentTime=i,a||je(e.play())})),e.media.load())}Pe.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(ge(Ue.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function He(e){return Q(e)?e.filter((function(t,n){return e.indexOf(t)===n})):e}function We(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r>1,u=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=f,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=f,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),a-=c}return(p?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,l,c=8*a-i-1,u=(1<0&&r(f))p=o(e,t,f,i(f.length),p,c-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=f}p++}h++}return p};e.exports=o},a434:function(e,t,n){"use strict";var r=n("23e7"),i=n("23cb"),a=n("a691"),o=n("50c4"),s=n("7b0b"),l=n("65f0"),c=n("8418"),u=n("1dde"),d=u("splice"),f=Math.max,p=Math.min,h=9007199254740991,m="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!d},{splice:function(e,t){var n,r,u,d,g,v,y=s(this),b=o(y.length),w=i(e,b),x=arguments.length;if(0===x?n=r=0:1===x?(n=0,r=b-w):(n=x-2,r=p(f(a(t),0),b-w)),b+n-r>h)throw TypeError(m);for(u=l(y,r),d=0;ds&&(n=s-l),a=n;a>=0;a--){for(var d=!0,f=0;fi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return S(this,e,t,n);case"utf8":case"utf-8":return T(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return M(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var L=4096;function z(e){var t=e.length;if(t<=L)return String.fromCharCode.apply(String,e);var n="",r=0;while(r