FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
ameliabooking
/
assets
/
js
/
common
/
mixins
Edit File: settingsMixin.js
import helperMixin from '../../../js/backend/mixins/helperMixin' export default { mixins: [helperMixin], data: () => ({ }), methods: { getInitEntitySettings (type) { let entitySettings = { payments: { paymentLinks: { enabled: this.$root.settings.payments.paymentLinks.enabled, changeBookingStatus: this.$root.settings.payments.paymentLinks.changeBookingStatus, redirectUrl: null }, onSite: this.$root.settings.payments.onSite, wc: { enabled: this.$root.settings.payments.wc.enabled, productId: this.$root.settings.payments.wc.productId }, payPal: { enabled: this.$root.settings.payments.payPal.enabled }, stripe: { enabled: this.$root.settings.payments.stripe.enabled }, mollie: { enabled: this.$root.settings.payments.mollie.enabled }, square: { enabled: this.$root.settings.payments.square.enabled }, razorpay: { enabled: this.$root.settings.payments.razorpay.enabled } } } switch (type) { case ('service'): entitySettings.general = { minimumTimeRequirementPriorToCanceling: null, minimumTimeRequirementPriorToRescheduling: null, redirectUrlAfterAppointment: null } entitySettings.general.defaultAppointmentStatus = null entitySettings.general.numberOfDaysAvailableForBooking = 0 entitySettings.general.minimumTimeRequirementPriorToBooking = null entitySettings.zoom = { enabled: this.$root.settings.zoom.enabled } entitySettings.lessonSpace = { enabled: this.$root.settings.lessonSpace.enabled } entitySettings.googleMeet = { enabled: this.$root.settings.googleCalendar.enabled && this.$root.settings.googleCalendar.googleMeetEnabled } entitySettings.microsoftTeams = { enabled: this.$root.settings.outlookCalendar.enabled && this.$root.settings.outlookCalendar.microsoftTeamsEnabled } break case ('event'): entitySettings.general = { minimumTimeRequirementPriorToCanceling: null, redirectUrlAfterAppointment: null } entitySettings.zoom = { enabled: this.$root.settings.zoom.enabled } entitySettings.lessonSpace = { enabled: this.$root.settings.lessonSpace.enabled } entitySettings.googleMeet = { enabled: this.$root.settings.googleCalendar.enabled && this.$root.settings.googleCalendar.googleMeetEnabled } entitySettings.microsoftTeams = { enabled: this.$root.settings.outlookCalendar.enabled && this.$root.settings.outlookCalendar.microsoftTeamsEnabled } entitySettings.waitingList = { enabled: false, addingMethod: this.$root.settings.appointments.waitingListEvents.addingMethod, maxCapacity: 1, maxExtraPeopleEnabled: false, maxExtraPeople: 0 } break case ('package'): entitySettings.general = { redirectUrlAfterAppointment: null } break } return entitySettings }, setEntitySettings (entity, type) { entity.settings = entity.settings !== null ? JSON.parse(entity.settings) : this.getInitEntitySettings(type) this.addMissingObjectProperties(entity.settings, this.getInitEntitySettings(type)) }, updateSettings (entitySettingsJson) { // on frontend if (this.$root.clonedSettings.payments.onSite && !this.$root.clonedSettings.payments.stripe.enabled && !this.$root.clonedSettings.payments.payPal.enabled && !this.$root.clonedSettings.payments.wc.enabled && !this.$root.clonedSettings.payments.mollie.enabled && !this.$root.clonedSettings.payments.square.enabled && !this.$root.clonedSettings.payments.razorpay.enabled ) { return } if (this.$root.clonedSettings.payments.wc.enabled === false && this.$root.clonedSettings.payments.mollie.enabled === false && entitySettingsJson !== null) { let entitySettings = JSON.parse(entitySettingsJson) if (!('payments' in entitySettings)) { entitySettings.payments = {} } ['onSite', 'stripe', 'payPal', 'wc', 'mollie', 'razorpay', 'square'].forEach((type) => { if ((!(type in entitySettings.payments))) { entitySettings.payments[type] = this.$root.clonedSettings.payments[type] } }) entitySettings.payments.wc = this.$root.clonedSettings.payments.wc entitySettings.payments.mollie = this.$root.clonedSettings.payments.mollie if (!this.$root.clonedSettings.payments.onSite) { entitySettings.payments.onSite = this.$root.clonedSettings.payments.onSite } if (!this.$root.clonedSettings.payments.square) { entitySettings.payments.square = this.$root.clonedSettings.payments.square } if (!this.$root.clonedSettings.payments.payPal.enabled) { entitySettings.payments.payPal = this.$root.clonedSettings.payments.payPal } if (!this.$root.clonedSettings.payments.stripe.enabled) { entitySettings.payments.stripe = this.$root.clonedSettings.payments.stripe } if (!this.$root.clonedSettings.payments.razorpay.enabled || !entitySettings.payments.razorpay) { entitySettings.payments.razorpay = this.$root.clonedSettings.payments.razorpay } if (('onSite' in entitySettings.payments ? entitySettings.payments.onSite && this.$root.clonedSettings.payments.onSite : this.$root.clonedSettings.payments.onSite) && ('payPal' in entitySettings.payments ? entitySettings.payments.payPal.enabled && this.$root.clonedSettings.payments.payPal.enabled : this.$root.clonedSettings.payments.payPal.enabled) && ('stripe' in entitySettings.payments ? entitySettings.payments.stripe.enabled && this.$root.clonedSettings.payments.stripe.enabled : this.$root.clonedSettings.payments.stripe.enabled) && ('mollie' in entitySettings.payments ? entitySettings.payments.mollie.enabled && this.$root.clonedSettings.payments.mollie.enabled : this.$root.clonedSettings.payments.mollie.enabled) && ('razorpay' in entitySettings.payments ? entitySettings.payments.razorpay.enabled && this.$root.clonedSettings.payments.razorpay.enabled : this.$root.clonedSettings.payments.razorpay.enabled) && ('square' in entitySettings.payments ? entitySettings.payments.square.enabled && this.$root.clonedSettings.payments.square.enabled : this.$root.clonedSettings.payments.square.enabled) ) { entitySettings.payments = this.$root.clonedSettings.payments } entitySettingsJson = JSON.stringify(entitySettings) } if (this.$root.clonedSettings.payments.wc.enabled === true && entitySettingsJson !== null) { let entitySettings = JSON.parse(entitySettingsJson) if (!('payments' in entitySettings)) { entitySettings.payments = {} } entitySettings.payments.onSite = this.$root.clonedSettings.payments.onSite entitySettings.payments.stripe = this.$root.clonedSettings.payments.stripe entitySettings.payments.payPal = this.$root.clonedSettings.payments.payPal entitySettings.payments.mollie = this.$root.clonedSettings.payments.mollie entitySettings.payments.square = this.$root.clonedSettings.payments.square entitySettings.payments.razorpay = this.$root.clonedSettings.payments.razorpay entitySettingsJson = JSON.stringify(entitySettings) } if (this.$root.clonedSettings.payments.mollie.enabled === true && entitySettingsJson !== null) { let entitySettings = JSON.parse(entitySettingsJson) if (!('payments' in entitySettings)) { entitySettings.payments = {} } if (!this.$root.clonedSettings.payments.onSite) { entitySettings.payments.onSite = this.$root.clonedSettings.payments.onSite entitySettings.payments.mollie = this.$root.clonedSettings.payments.mollie } entitySettings.payments.stripe = this.$root.clonedSettings.payments.stripe entitySettings.payments.payPal = this.$root.clonedSettings.payments.payPal entitySettings.payments.razorpay = this.$root.clonedSettings.payments.razorpay entitySettingsJson = JSON.stringify(entitySettings) } if (this.$root.clonedSettings.payments.square.enabled === true && entitySettingsJson !== null) { let entitySettings = JSON.parse(entitySettingsJson) if (!('payments' in entitySettings)) { entitySettings.payments = {} } if (!this.$root.clonedSettings.payments.onSite) { entitySettings.payments.onSite = this.$root.clonedSettings.payments.onSite entitySettings.payments.square = this.$root.clonedSettings.payments.square } entitySettings.payments.stripe = this.$root.clonedSettings.payments.stripe entitySettings.payments.payPal = this.$root.clonedSettings.payments.payPal entitySettings.payments.razorpay = this.$root.clonedSettings.payments.razorpay entitySettingsJson = JSON.stringify(entitySettings) } if ('oliverPos' in this.$root.shortcodeData && this.$root.shortcodeData.oliverPos) { entitySettingsJson = JSON.parse(entitySettingsJson) entitySettingsJson.payments.onSite = true entitySettingsJson.payments.stripe.enabled = false entitySettingsJson.payments.payPal.enabled = false entitySettingsJson.payments.razorpay.enabled = false entitySettingsJson = JSON.stringify(entitySettingsJson) } this.replaceExistingObjectProperties(this.$root.settings, entitySettingsJson !== null ? JSON.parse(entitySettingsJson) : this.$root.clonedSettings) }, prepareBookableEntityPaymentsForSave (bookableEntitySettings) { let payments = {} if (bookableEntitySettings && 'payments' in bookableEntitySettings) { if ('onSite' in bookableEntitySettings.payments && bookableEntitySettings.payments.onSite !== this.$root.settings.payments.onSite ) { payments.onSite = bookableEntitySettings.payments.onSite } ['stripe', 'payPal', 'razorpay', 'mollie', 'square'].forEach((paymentType) => { if (paymentType in bookableEntitySettings.payments && bookableEntitySettings.payments[paymentType].enabled !== this.$root.settings.payments[paymentType].enabled ) { payments[paymentType] = bookableEntitySettings.payments[paymentType] } }) if ('wc' in bookableEntitySettings.payments && (bookableEntitySettings.payments.wc.enabled !== this.$root.settings.payments.wc.enabled || ('productId' in bookableEntitySettings.payments.wc && bookableEntitySettings.payments.wc.productId !== this.$root.settings.payments.wc.productId) ) ) { payments.wc = bookableEntitySettings.payments.wc } payments.paymentLinks = bookableEntitySettings.payments.paymentLinks } bookableEntitySettings.payments = payments return bookableEntitySettings }, prepareServiceSettingsForSave (service) { let serviceSettings = JSON.parse(JSON.stringify(service.settings)) if ('general' in serviceSettings) { if (!serviceSettings.general.redirectUrlAfterAppointment) { delete serviceSettings.general.redirectUrlAfterAppointment } if (!serviceSettings.general.defaultAppointmentStatus) { delete serviceSettings.general.defaultAppointmentStatus } if ((!serviceSettings.general.minimumTimeRequirementPriorToBooking && !this.$root.settings.general.minimumTimeRequirementPriorToBooking) || serviceSettings.general.minimumTimeRequirementPriorToBooking === '' ) { delete serviceSettings.general.minimumTimeRequirementPriorToBooking } if ((!serviceSettings.general.minimumTimeRequirementPriorToCanceling && !this.$root.settings.general.minimumTimeRequirementPriorToCanceling) || serviceSettings.general.minimumTimeRequirementPriorToCanceling === '' ) { delete serviceSettings.general.minimumTimeRequirementPriorToCanceling } if ((!serviceSettings.general.minimumTimeRequirementPriorToRescheduling && !this.$root.settings.general.minimumTimeRequirementPriorToRescheduling) || serviceSettings.general.minimumTimeRequirementPriorToRescheduling === '' ) { delete serviceSettings.general.minimumTimeRequirementPriorToRescheduling } if (!serviceSettings.general.numberOfDaysAvailableForBooking) { delete serviceSettings.general.numberOfDaysAvailableForBooking } if (Object.keys(serviceSettings.general).length === 0) { delete serviceSettings.general } } if (Object.keys(serviceSettings).length === 0) { serviceSettings = null } return serviceSettings } }, computed: { } }
Save
Back