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/Channels/components/SourceDetail.vue
<template>
  <div class="row justify-content-center">
    <div class="col-xl-12">
      <div class="card">
        <div class="card-body">
          <h4 class="card-title">Source Details</h4>
          <p class="card-title-desc">Update or change source meta details.</p>
          <b-form @submit.prevent="formSubmit">
            <div class="row">
              <div class="col-md-4">
                <b-form-group
                  class="mb-3"
                  label="Source name"
                  label-for="formrow-sourcename-input"
                >
                  <b-form-input
                    id="formrow-sourcename-input"
                    type="text"
                    placeholder="Source Name"
                    v-model="form.name"
                    name="sourcename"
                    :class="{
                      'is-invalid': submitted && $v.form.name.$error,
                    }"
                  ></b-form-input>
                  <div
                    v-if="submitted && $v.form.name.$error"
                    class="invalid-feedback"
                  >
                    <span v-if="!$v.form.name.required"
                      >This value is required.</span
                    >
                  </div>
                </b-form-group>
              </div>
            </div>
            <div class="row">
              <div class="col-md-4">
                <b-form-group
                  class="mb-3"
                  label="Source Description"
                  label-for="formrow-Description-input"
                >
                  <b-form-input
                    id="formrow-Description-input"
                    type="text"
                    placeholder="Description Name"
                    v-model="form.description"
                    name="description"
                    :class="{
                      'is-invalid': submitted && $v.form.name.$error,
                    }"
                  ></b-form-input>
                  <div
                    v-if="submitted && $v.form.description.$error"
                    class="invalid-feedback"
                  >
                    <span v-if="!$v.form.description.required"
                      >This value is required.</span
                    >
                  </div>
                </b-form-group>
              </div>
            </div>
            <div>
              <b-button variant="primary" type="submit">
                <i
                  v-if="sourceState.editSourceLoading"
                  class="bx bx-loader bx-spin font-size-16 align-middle me-2"
                ></i>
                Save</b-button
              >
              <b-button variant="light" >Cancel</b-button>
            </div>
          </b-form>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { required } from 'vuelidate/lib/validators';
import { BForm,BFormGroup,BFormInput,BButton } from 'bootstrap-vue-next';

export default {
  props: {
    sourceState: {
      type: Object,
      required: true,
    },
  },
  data() {
    return {
      submitted: false,
      form: {
        name: this.sourceState.sourceDetails
          ? this.sourceState.sourceDetails.name
          : '',
        description: this.sourceState.sourceDetails
          ? this.sourceState.sourceDetails.description
          : '',
      },
    };
  },
  validations: {
    form: {
      name: { required },
      description: { required },
    },
  },
  methods: {
    formSubmit() {
      this.submitted = true;
      // this.$v.$touch();
      // if (this.$v.$invalid) {
      //   return;
      // }
      this.$emit('formSubmit', this.form);
    },
  },
  components: {
    SCphoneWidget,
    SComniWidget,
    BForm,BFormGroup,BFormInput,BButton
  },
};
</script>