159 lines
5.4 KiB
Vue
159 lines
5.4 KiB
Vue
|
<template>
|
||
|
<div class="row mb-1">
|
||
|
<!-- remove pdf -->
|
||
|
<div class="card border-secondary mb-2"
|
||
|
v-show="!_.isEmpty(element.pdf)">
|
||
|
<div class="row">
|
||
|
<div class="col-md-4 mt-auto mb-auto">
|
||
|
<i class="fas fa-file-pdf fa-5x ml-1 text-primary"></i>
|
||
|
</div>
|
||
|
<div class="col-md-8">
|
||
|
<div class="card-body">
|
||
|
<p class="card-text text-truncate">
|
||
|
{{element.pdf}}
|
||
|
</p>
|
||
|
<p class="card-text text-warning cursor-pointer"
|
||
|
@click="removePdf">
|
||
|
{{trans('messages.remove_pdf')}}
|
||
|
</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<!-- dropzone -->
|
||
|
<div class="col-md-12 mb-1"
|
||
|
v-show="_.isEmpty(element.pdf)">
|
||
|
<label for="pdf_upload">
|
||
|
{{trans('messages.upload_pdf')}}
|
||
|
</label>
|
||
|
<div class="dropzone" id="pdf_upload"></div>
|
||
|
</div>
|
||
|
<!-- pdf properties -->
|
||
|
<div v-if="!_.isEmpty(element.pdf)">
|
||
|
<div class="mb-1">
|
||
|
<label>
|
||
|
{{trans('messages.width')}}
|
||
|
</label>
|
||
|
<div class="input-group mb-2">
|
||
|
<input type="number" class="form-control" v-model="element.width">
|
||
|
<div class="input-group-append">
|
||
|
<span class="input-group-text">
|
||
|
%
|
||
|
</span>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="mb-1">
|
||
|
<label>
|
||
|
{{trans('messages.height')}}
|
||
|
</label>
|
||
|
<div class="input-group mb-2">
|
||
|
<input type="number" class="form-control" v-model="element.height">
|
||
|
<div class="input-group-append">
|
||
|
<span class="input-group-text">
|
||
|
px
|
||
|
</span>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
<script>
|
||
|
export default {
|
||
|
props: {
|
||
|
element: Object,
|
||
|
},
|
||
|
data(){
|
||
|
return{
|
||
|
MAX_UPLOAD_SIZE: APP.MAX_PDF_UPLOAD_SIZE,
|
||
|
dropzone_has_error: false,
|
||
|
dropzone_error_msg: ''
|
||
|
}
|
||
|
},
|
||
|
mounted() {
|
||
|
const self = this;
|
||
|
self.initPdfUploader();
|
||
|
},
|
||
|
methods:{
|
||
|
initPdfUploader() {
|
||
|
const self = this;
|
||
|
if (self.dropzone) {
|
||
|
self.dropzone.destroy();
|
||
|
}
|
||
|
self.dropzone = new Dropzone('div#pdf_upload', {
|
||
|
url: `${APP.APP_URL}/file-upload`,
|
||
|
addRemoveLinks: true,
|
||
|
uploadMultiple: false,
|
||
|
dictDefaultMessage: self.trans('messages.drop_a_pdf_here'),
|
||
|
maxFiles: 1,
|
||
|
maxFilesize: self.MAX_UPLOAD_SIZE,
|
||
|
acceptedFiles: '.pdf',
|
||
|
autoProcessQueue: true,
|
||
|
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
|
||
|
init: function() {
|
||
|
//function to be use on removeing a file
|
||
|
this.on("removedfile", function(file) {
|
||
|
$.ajax({
|
||
|
url: `${APP.APP_URL}/file-delete`,
|
||
|
data: { "file_name": file.uploaded_as },
|
||
|
type: "POST",
|
||
|
success: function(result) {
|
||
|
if(result.success == 1){
|
||
|
self.element.pdf = '';
|
||
|
} else {
|
||
|
toastr.error(result.msg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
this.on('success', function(file, response) {
|
||
|
self.dropzone_has_error = false;
|
||
|
self.dropzone_error_msg = '';
|
||
|
});
|
||
|
this.on("error", function(file, message) {
|
||
|
self.dropzone_has_error = true;
|
||
|
self.dropzone_error_msg = message;
|
||
|
});
|
||
|
},
|
||
|
success: function(file, response) {
|
||
|
if (response.success == true) {
|
||
|
file.uploaded_as = response.path;
|
||
|
self.element.pdf = response.path;
|
||
|
toastr.success(response.msg);
|
||
|
} else {
|
||
|
toastr.error(response.msg);
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
},
|
||
|
removePdf() {
|
||
|
const self = this;
|
||
|
Swal.fire({
|
||
|
title: 'Are you sure?',
|
||
|
icon: 'warning',
|
||
|
showCancelButton: true,
|
||
|
confirmButtonColor: '#3085d6',
|
||
|
cancelButtonColor: '#d33',
|
||
|
confirmButtonText: 'Yes, remove it!'
|
||
|
}).then((result) => {
|
||
|
if (result.isConfirmed) {
|
||
|
$.ajax({
|
||
|
url: `${APP.APP_URL}/file-delete`,
|
||
|
data: { "file_name": self.element.pdf},
|
||
|
type: "POST",
|
||
|
success: function(result) {
|
||
|
if(result.success == 1){
|
||
|
self.element.pdf = '';
|
||
|
self.dropzone.removeAllFiles();
|
||
|
} else {
|
||
|
toastr.error(result.msg);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|