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/userManagement/index.vue
<template>
  <breadcrumb
    :rootState="rootState"
    :breadCrumbs="breadCrumbs"
    @onpropagate="onNavPropagate"
  >
    <div class="height-set">
      <div class="spinner-main">
        <Loader :loading="widgetLoading"> </Loader>
        <Loader> </Loader>
      </div>
      <list
        v-if="!widgetLoading"
        :workflows="workflows"
        :loading="workflowsLoading"
        @onEdit="onWorkflowEditClick"
        @onDelete="onWorkflowDeleteClick"
        @onAddButtonClicked="showModal"
      ></list>

      <b-modal
        v-model="showWorkflowEditModal"
        :dialog-class="modalDialogSlideout"
        :hide-footer="true"
        content-class="rounded-0"
        id="workflow-modal"
        @hide="customCloseMethod"
      >
        <template #modal-header>
          <button
            type="button"
            class="btn btn-primary"
            @click="closeAddEditModal"
          >
            <i class="material-icons">arrow_left_alt</i>
            Close
          </button>
        </template>

        <edit-form
          :selectedId="selectedId"
          :closemodal="isClose"
          :AddUser="isAddUser"
          :agentObj="agentObj"
          @formSubmit="formSubmit"
          :addEditWorkflowLoading="addEditWorkflowLoading"
          :workflowTypes="workflowTypes"
          :setErrorMessage="setErrorMessage"
          :setSuccessMessage="setSuccessMessage"
          :userData="userData"
          :success="isSuccess"
        ></edit-form>
      </b-modal>
    </div>
  </breadcrumb>
</template>
<script>
import { mapActions, mapGetters } from 'vuex';

import Breadcrumb from '../../components/Breadcrumb.vue';
import Loader from '../../components/Loader/loader.vue';
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 EditForm from './components/EditForm.vue';
import { toastConfig } from '../../utils/util';
import WorkflowService from '../../service/workflowService';
import UserMangetService from '../../service/userManagementSerice';
import { VueFinalModal } from 'vue-final-modal';
import { BModal, BButton } from 'bootstrap-vue-next';
import { Icon } from '@iconify/vue';

export default {
  data() {
    return {
      workflowsLoading: false,
      isAddUser: true,
      workflows: [],
      workflowTypesLoading: false,
      workflowTypes: [],
      showWorkflowEditModal: false,
      selectedId: null,
      addEditWorkflowLoading: false,
      modalDialogSlideout: 'modal-dialog-slideout',
      userData: {},
      isClose: false,
      isSuccess: false,
      agentObj: {},
    };
  },
  mounted() {
    //this.getWorkflows();
    // this.getWorkflowTypes();
    this.getUserManagementData();
  },
  computed: {
    widgetLoading() {
      return this.workflowTypesLoading;
    },
    ...mapGetters('root', {
      rootState: ROOT_GETTER,
      breadCrumbs: ROOT_GETTER_GET_BREADCRUMBS,
    }),
    successMessage() {
      return this.rootState.successMessage;
    },
    errorMessage() {
      return this.rootState.errorMessage;
    },
  },
  methods: {
    customCloseMethod() {
      this.showWorkflowEditModal = false;
      this.selectedId = null;
      this.isAddUser = true;
      this.isClose = false;
    },

    showModal() {
      this.showWorkflowEditModal = true;
      this.isAddUser = true;
      this.isClose = true;
    },
    closeAddEditModal() {
      this.showWorkflowEditModal = false;
      this.selectedId = null;
    },
    onNavPropagate() {},
    onWorkflowEditClick(id) {
      this.showWorkflowEditModal = true;
      this.selectedId = id;
      this.isAddUser = false;
    },

    async onWorkflowDeleteClick(id) {
      this.workflowTypesLoading = true;
      const {
        data: { data, message, success },
      } = await UserMangetService.deleteUser(id);
      if (!success) {
        this.setErrorMessage(message);
      } else {
        this.setSuccessMessage(message);
        this.getUserManagementData();
      }

      this.workflowTypesLoading = false;
    },
    ...mapActions('root', {
      resetToastMessages: ROOT_ACTION_RESET_SUCCESS_AND_ERROR_MESSAGE,
      setErrorMessage: ROOT_ACTION_SET_ERROR_MESSAGE,
      setSuccessMessage: ROOT_ACTION_SET_SUCCESS_MESSAGE,
    }),

    async getUserManagementData() {
      this.workflowTypesLoading = true;
      const {
        data: { data, message, success },
      } = await UserMangetService.getUserManagementData();
      if (!success) {
        this.setErrorMessage(message);
      } else {
        this.userData = data;
        this.agentObj = {
          ams_2000: this.userData.ams_2000,
          ams_evo: this.userData.ams_evo,
          neo_verify: this.userData.neo_verify,
        };

        this.workflows = _.map(data.users, (d) => ({
          ...d,
        })).reverse();

      }

      this.workflowTypesLoading = false;
    },
    async formSubmit(formdata) {
      if (this.selectedId === null) {
        this.addEditWorkflowLoading = true;
        const {
          data: { data, message, success },
        } = await UserMangetService.createUser(formdata);
        if (!success) {
          this.setErrorMessage(message);
          this.isSuccess = false;
        } else {
          this.setSuccessMessage(message);
          this.showWorkflowEditModal = false;
          this.selectedId = null;
          this.getUserManagementData();
          this.isSuccess = true;
        }
        this.addEditWorkflowLoading = false;
      } else {
        this.addEditWorkflowLoading = true;
        const {
          data: { data, message, success },
        } = await UserMangetService.updateUserData(this.selectedId, formdata);
        if (!success) {
          this.setErrorMessage(message);
          this.isSuccess = false;
        } else {
          this.setSuccessMessage(message);
          this.showWorkflowEditModal = false;
          this.selectedId = null;
          this.getUserManagementData();
          this.isSuccess = true;
        }
        this.addEditWorkflowLoading = false;
      }
    },
  },
  components: {
    Breadcrumb,
    Loader,
    List,
    EditForm,
    BModal,
    BButton,
    Icon,
  },
  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>