feat: multiple zoom accounts
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
{
|
||||
label: 'Submit',
|
||||
variant: 'solid',
|
||||
onClick: (close) => submitLiveClass(close),
|
||||
onClick: ({ close }) => submitLiveClass(close),
|
||||
},
|
||||
],
|
||||
}"
|
||||
@@ -107,7 +107,11 @@ const dayjs = inject('$dayjs')
|
||||
const props = defineProps({
|
||||
batch: {
|
||||
type: String,
|
||||
default: null,
|
||||
required: true,
|
||||
},
|
||||
zoomAccount: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -159,6 +163,7 @@ const createLiveClass = createResource({
|
||||
return {
|
||||
doctype: 'LMS Live Class',
|
||||
batch_name: values.batch,
|
||||
zoom_account: props.zoomAccount,
|
||||
...values,
|
||||
}
|
||||
},
|
||||
@@ -167,39 +172,11 @@ const createLiveClass = createResource({
|
||||
const submitLiveClass = (close) => {
|
||||
return createLiveClass.submit(liveClass, {
|
||||
validate() {
|
||||
if (!liveClass.title) {
|
||||
return __('Please enter a title.')
|
||||
}
|
||||
if (!liveClass.date) {
|
||||
return __('Please select a date.')
|
||||
}
|
||||
if (!liveClass.time) {
|
||||
return __('Please select a time.')
|
||||
}
|
||||
if (!liveClass.timezone) {
|
||||
return __('Please select a timezone.')
|
||||
}
|
||||
if (!valideTime()) {
|
||||
return __('Please enter a valid time in the format HH:mm.')
|
||||
}
|
||||
const liveClassDateTime = dayjs(`${liveClass.date}T${liveClass.time}`).tz(
|
||||
liveClass.timezone,
|
||||
true
|
||||
)
|
||||
if (
|
||||
liveClassDateTime.isSameOrBefore(
|
||||
dayjs().tz(liveClass.timezone, false),
|
||||
'minute'
|
||||
)
|
||||
) {
|
||||
return __('Please select a future date and time.')
|
||||
}
|
||||
if (!liveClass.duration) {
|
||||
return __('Please select a duration.')
|
||||
}
|
||||
validateFormFields()
|
||||
},
|
||||
onSuccess() {
|
||||
liveClasses.value.reload()
|
||||
refreshForm()
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
@@ -208,6 +185,39 @@ const submitLiveClass = (close) => {
|
||||
})
|
||||
}
|
||||
|
||||
const validateFormFields = () => {
|
||||
if (!liveClass.title) {
|
||||
return __('Please enter a title.')
|
||||
}
|
||||
if (!liveClass.date) {
|
||||
return __('Please select a date.')
|
||||
}
|
||||
if (!liveClass.time) {
|
||||
return __('Please select a time.')
|
||||
}
|
||||
if (!liveClass.timezone) {
|
||||
return __('Please select a timezone.')
|
||||
}
|
||||
if (!valideTime()) {
|
||||
return __('Please enter a valid time in the format HH:mm.')
|
||||
}
|
||||
const liveClassDateTime = dayjs(`${liveClass.date}T${liveClass.time}`).tz(
|
||||
liveClass.timezone,
|
||||
true
|
||||
)
|
||||
if (
|
||||
liveClassDateTime.isSameOrBefore(
|
||||
dayjs().tz(liveClass.timezone, false),
|
||||
'minute'
|
||||
)
|
||||
) {
|
||||
return __('Please select a future date and time.')
|
||||
}
|
||||
if (!liveClass.duration) {
|
||||
return __('Please select a duration.')
|
||||
}
|
||||
}
|
||||
|
||||
const valideTime = () => {
|
||||
let time = liveClass.time.split(':')
|
||||
if (time.length != 2) {
|
||||
@@ -221,4 +231,14 @@ const valideTime = () => {
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
const refreshForm = () => {
|
||||
liveClass.title = ''
|
||||
liveClass.description = ''
|
||||
liveClass.date = ''
|
||||
liveClass.time = ''
|
||||
liveClass.duration = ''
|
||||
liveClass.timezone = getUserTimezone()
|
||||
liveClass.auto_recording = 'No Recording'
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user