Add fileTypeService

This commit is contained in:
dtluna 2016-11-25 20:21:25 +03:00
parent 96b4997492
commit 4f8d476a2b
5 changed files with 36 additions and 17 deletions

View File

@ -1,4 +1,5 @@
import nsfwImage from '../../assets/nsfw.jpg' import nsfwImage from '../../assets/nsfw.jpg'
import fileTypeService from '../../services/file_type/file_type.service.js'
const Attachment = { const Attachment = {
props: [ props: [
@ -9,21 +10,7 @@ const Attachment = {
data: () => ({ nsfwImage }), data: () => ({ nsfwImage }),
computed: { computed: {
type () { type () {
let type = 'unknown' return fileTypeService.fileType(this.attachment.mimetype)
if (this.attachment.mimetype.match(/text\/html/)) {
type = 'html'
}
if (this.attachment.mimetype.match(/image/)) {
type = 'image'
}
if (this.attachment.mimetype.match(/video\/(webm|mp4)/)) {
type = 'video'
};
return type
} }
}, },
methods: { methods: {

View File

@ -1,5 +1,6 @@
import statusPoster from '../../services/status_poster/status_poster.service.js' import statusPoster from '../../services/status_poster/status_poster.service.js'
import MediaUpload from '../media_upload/media_upload.vue' import MediaUpload from '../media_upload/media_upload.vue'
import fileTypeService from '../../services/file_type/file_type.service.js'
import { reject, map, uniqBy } from 'lodash' import { reject, map, uniqBy } from 'lodash'
@ -67,6 +68,9 @@ const PostStatusForm = {
}, },
enableSubmit () { enableSubmit () {
this.submitDisabled = false this.submitDisabled = false
},
type (fileInfo) {
return fileTypeService.fileType(fileInfo.mimetype)
} }
} }
} }

View File

@ -6,7 +6,7 @@
</div> </div>
<div class="attachments"> <div class="attachments">
<div class="attachment" v-for="file in newStatus.files"> <div class="attachment" v-for="file in newStatus.files">
<img class="thumbnail media-upload" :src="file.image"></img> <img class="thumbnail media-upload" :src="file.image" v-if="type(file) === 'image'"></img>
</div> </div>
</div> </div>
<div class='form-bottom'> <div class='form-bottom'>

View File

@ -0,0 +1,27 @@
const fileType = (typeString) => {
let type = 'unknown'
if (typeString.match(/text\/html/)) {
type = 'html'
}
if (typeString.match(/image/)) {
type = 'image'
}
if (typeString.match(/video\/(webm|mp4)/)) {
type = 'video'
}
if (typeString.match(/audio|ogg/)) {
type = 'audio'
}
return type
}
const fileTypeService = {
fileType
}
export default fileTypeService

View File

@ -19,7 +19,8 @@ const uploadMedia = ({ store, formData }) => {
return { return {
id: xml.getElementsByTagName('media_id')[0].textContent, id: xml.getElementsByTagName('media_id')[0].textContent,
url: xml.getElementsByTagName('media_url')[0].textContent, url: xml.getElementsByTagName('media_url')[0].textContent,
image: xml.getElementsByTagName('atom:link')[0].getAttribute('href') image: xml.getElementsByTagName('atom:link')[0].getAttribute('href'),
mimetype: xml.getElementsByTagName('atom:link')[0].getAttribute('type')
} }
}) })
} }