All files / components/Admin/AdminBundles/BundlesTable CreateBundle.vue

100% Statements 4/4
100% Branches 2/2
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56                                1x   1x   2x                                                             1x        
<template>
  <div class="row justify-content-center w-100">
    <div class="col-10 mt-3">
      <div class="d-flex w-100 mb-3 d-flex align-items-center">
        <button v-on:click="$emit('setIsTable')" class="mr-3">
          <BIconArrowLeft />
        </button>
        <h6 class="m-0">Create bundle</h6>
      </div>
      <BundleForm class="block mb-3 p-3" v-on:getBundle="getBundle" />
      <button class="btn btn-success mb-3 w-100" v-on:click="save">
        Create bundle
      </button>
    </div>
  </div>
</template>
 
<script>
import { mapActions } from "vuex";
 
import BundleForm from "../BundleForm";
 
export default {
  name: "CreateBundle",
  components: { BundleForm },
  data: () => ({
    bundle: null,
  }),
  methods: {
    ...mapActions({ createBundle: "admin_bundles/createBundle" }),
    getBundle: function (bundle) {
      this.bundle = bundle;
    },
    save: async function () {
      if (this.bundle.products.length < 2) {
        this.$notify({
          group: "all",
          type: "error",
          text: "Chose 2 products",
        });
        return;
      }
 
      const products = this.bundle.products.map((item) => item.id);
      const bundle = { ...this.bundle, products };
      await this.createBundle(bundle);
    },
  },
  async beforeMount() {
    this.products = await this.$strapi.find("products");
  },
};
</script>
 
<style scoped>
</style>