HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/assets/vue/widgets/ManageOmniChannelWidgets/index.vue
<template>
  <breadcrumb
    :rootState="rootState"
    :breadCrumbs="breadCrumbs"
    @onpropagate="onNavPropagate"
  >
    <div class="height-set">
      <div class="spinner-main">
        <Loader :loading="false"> </Loader>
      </div>
      <list
        :omnichannels="omnichannels"
        :loading="omnichannelsLoading"
        @onEdit="onOmniChannelEditClick"
        @onAddButtonClicked="showModal"
      ></list>

      <BModal
        v-model="showOmnichannelEditModal"
        :dialog-class="modalDialogSlideout"
        :hide-footer="true"
        content-class="rounded-0"
        id="edit-modal"
        :style="{ display: 'block' }"
        @hide="customCloseMethod"
      >
        <template #modal-header>
          <button type="button" class="btn btn-primary" @click="closeAddEditModal">
            <i class="bx bx-left-arrow-alt font-size-16 align-middle me-2"></i>
            Close
          </button>
        </template>
        <detail
          :selectedOmnichannelId="selectedOmnichannelId"
          :AddUser="isAddUser"
          @setSuccessMessage="onSuccessMessage"
          @setErrorMessage="onErrorMessage"
          @setselectedOmnichannelId="selectedOmnichannelId = $event"
        ></detail>
      </BModal>
    </div>
  </breadcrumb>
</template>
<script>
import { mapActions, mapGetters } from "vuex";
import Breadcrumb from "../../components/Breadcrumb.vue";
import Loader from "../../components/Loader/loader.vue";
import { BModal, BButton } from "bootstrap-vue-next";

import moment from "moment";
import {
  ROOT_GETTER,
  ROOT_ACTION_RESET_SUCCESS_AND_ERROR_MESSAGE,
  ROOT_GETTER_GET_BREADCRUMBS,
  ROOT_ACTION_SET_ERROR_MESSAGE,
  ROOT_ACTION_SET_SUCCESS_MESSAGE,
} from "./constants";
import List from "./components/List.vue";
import Detail from "./components/Detail.vue";
import { toastConfig } from "../../utils/util";
import OmniService from "../../service/omniChannelService";
export default {
  mounted() {
    this.getOmniChannels();
  },
  data() {
    return {
      omnichannels: [],
      isAddUser: true,
      omnichannelsLoading: false,
      showOmnichannelEditModal: false,
      selectedOmnichannelId: null,
      addEditOmnichannelsLoading: false,
      modalDialogSlideout: "modal-dialog-slideout",
    };
  },
  computed: {
    ...mapGetters("root", {
      rootState: ROOT_GETTER,
      breadCrumbs: ROOT_GETTER_GET_BREADCRUMBS,
    }),
    successMessage() {
      return this.rootState.successMessage;
    },
    errorMessage() {
      return this.rootState.errorMessage;
    },
  },
  methods: {
    showModal() {
      this.showOmnichannelEditModal = true;
      this.isAddUser = true;
    },

    customCloseMethod() {
      this.showOmnichannelEditModal = false;
      this.selectedOmnichannelId = null;
      this.isAddUser = false;
    },

    closeAddEditModal() {
      this.showOmnichannelEditModal = false;
      this.selectedOmnichannelId = null;
      this.isAddUser = false;
      this.getOmniChannels();
    },
    onSuccessMessage(e) {
      this.setSuccessMessage(e);
    },
    onErrorMessage(e) {
      this.setErrorMessage(e);
    },
    clickeddd() {
      this.showOmnichannelEditModal = true;
    },

    onOmniChannelEditClick(v) {
      this.selectedOmnichannelId = v;
      this.showOmnichannelEditModal = true;
      this.isAddUser = false;
    },
    async getOmniChannels() {
      console.log("getOmniChannels");
      this.omnichannelsLoading = true;
      const {
        data: { data, message, success },
      } = await OmniService.getOmniWidgets();
      if (!success) {
        this.setErrorMessage(message);
      } else {
        this.omnichannels = _.map(data, (d) => ({
          ...d,
          createdOn: moment(d.created_at).format("MMM Do"),
          updatedOn: moment(d.updated_at).format("MMM Do"),
        }));
      }
      this.omnichannelsLoading = false;
    },

    ...mapActions("root", {
      resetToastMessages: ROOT_ACTION_RESET_SUCCESS_AND_ERROR_MESSAGE,
      setErrorMessage: ROOT_ACTION_SET_ERROR_MESSAGE,
      setSuccessMessage: ROOT_ACTION_SET_SUCCESS_MESSAGE,
    }),
    onNavPropagate() {},
  },
  components: {
    Breadcrumb,
    Loader,
    List,
    Detail,
    BModal,
    BButton,
  },
  //directives: { 'b-modal': VBModal },
  watch: {
    successMessage(v) {
      if (v !== null) {
        this.$toast.open(toastConfig.toastSuccess(v));
        this.resetToastMessages();
      }
    },
    errorMessage(v) {
      if (v !== null) {
        this.$toast.open(toastConfig.toastError(v));
        this.resetToastMessages();
      }
    },
  },
};
</script>