| <template>
    <!-- Modal -->
    <div class="modal fade" id="productModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLongTitle" name="header" v-html="data.name" ></h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">×</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class="form-group">
                        <label for="exampleInputName">Name:</label>
                        <input type="text" class="form-control"  v-model="data.name" id="exampleInputName"  placeholder="Enter name">
                    </div>
                    <div class="form-group">
                        <label for="exampleInputUnits">Units:</label>
                        <input type="text" class="form-control"  v-model="data.units" id="exampleInputUnits"  placeholder="Enter units">
                    </div>
                    <div class="form-group">
                        <label for="exampleInputPrice">Price:</label>
                        <input type="text" class="form-control"  v-model="data.price" id="exampleInputPrice"  placeholder="Enter price">
                    </div>
                    <div class="form-group">
                        <label for="exampleFormControldescription">Description:</label>
                        <textarea class="form-control" id="exampleFormControldescription" v-model="data.description" placeholder="Enter description" rows="3"></textarea>
                    </div>
                    <span >
                            <div class="text-center">
                                <img :src="data.image" v-show="data.image != null" style="height:170px; width:150px;" class="rounded float-center" >
                                <input type="file" id="file" name="image" class="flex"  @change="attachFile">
                            </div>
                    </span>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary" data-dismiss="modal" @click="uploadFile" >Save</button>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
        props: ['product'],
        data() {
            return {
                attachment: null,
            }
        },
        computed: {
            data() {
                if (this.product != null) {
                    return this.product
                }else{
                    return this.product
//                    return {
//                        name:  null ,
//                        units:  "" ,
//                        price:  "" ,
//                        description: "",
//                        image:  ""
//                    };
                }
            }
        },
        methods: {
            attachFile(event) {
                this.attachment = event.target.files[0];
            },
            uploadFile(event) {
                //console.log(this.product);
                if (this.attachment != null) {
                    var formData = new FormData();
                    formData.append("image", this.attachment);
                    let headers = {'Content-Type': 'multipart/form-data'};
                    axios.post("/api/upload-file", formData, {headers}).then(response => {
                        let link = response.data.link;
                        this.product.image = link;
                        this.$emit('close', this.product)
                    })
                } else {
                    this.$emit('close', this.product)
                }
            }
        }
    }
</script>
 |