A vue component for the mdixon18/media-library
package.
Laravel package can be found here.
Manager
Field
npm install --save vue-medialibrary
import MediaLibrary from 'vue-medialibrary';
Vue.use(MediaLibrary, {
API_URL: 'http://urltoapp.tld'
});
The API_URL is helpful if the application you are using the component in isn't the same application that the Laravel package is installed on. E.g. an SPA.
Manager
<vue-medialibrary-manager v-if="show" />
Field
<vue-medialibrary-field v-model="file" />
@close
- this is used when the user has selected the close button in the manager, this should toggle off your originalv-if
. Naturally without av-if
this component will display at all times.@select
- this is primarily used within the field component so shouldn't be required, but it is triggered when the insert button has been selected on a media item. Only works if theselectable
prop is set totrue
.@fail-to-find
- again primarily used within the field component so shouldn't be required. This will when a value is already set on the field component go and find that file so when the manager is opened that file is shown in the window on the right. Only works if theselectable
prop is set totrue
.
Prop | Type | Default | Description |
---|---|---|---|
types |
Object |
{ images: true, files: true } |
Property controls whether both images and files can be toggled. Useful if you want to only use images or files. |
filetypes |
Array |
[] |
To limit the media to only certain file types. E.g. [ 'png', 'jpg' ] . |
selectable |
Boolean |
false |
Used by the field component but allows the media to be selectable, which also allows you to use the @select event. |
selected |
String |
null |
Used by the field component but allows you to pass in a filename which will then be automatically opened on the right window e.g. test.jpg . This will also cause the @fail-to-find event to be in operation. |
@close
- this is used when the user has selected the close button in the manager, this should toggle off your originalv-if
. Naturally without av-if
this component will display at all times.@select
- this is primarily used within the field component so shouldn't be required, but it is triggered when the insert button has been selected on a media item. Only works if theselectable
prop is set totrue
.@fail-to-find
- again primarily used within the field component so shouldn't be required. This will when a value is already set on the field component go and find that file so when the manager is opened that file is shown in the window on the right. Only works if theselectable
prop is set totrue
.
Prop | Type | Default | Description |
---|---|---|---|
types |
Object |
{ images: true, files: true } |
Property controls whether both images and files can be toggled within the manager. Useful if you want to only use images or files. |
filetypes |
Array |
[] |
To limit the media to only certain file types. E.g. [ 'png', 'jpg' ] in the manager. |
helper |
String |
null |
This allows you to put helpful message/text into the field. E.g. 'Maximum image width: 100px'. |
Just some ideas in the making...
- Drag & Drop, this currently doens't work - you have to use the button currently.
- Support multiple image variations. e.g. Responsive images.
- Ability to multi select, or create a repeatable field for multiple images.