Now with better Zoom info support.
This commit is contained in:
@@ -833,6 +833,7 @@ export async function db_save_ae_obj_li__event(
|
|||||||
mod_abstracts_json: obj.mod_abstracts_json,
|
mod_abstracts_json: obj.mod_abstracts_json,
|
||||||
mod_badges_json: obj.mod_badges_json,
|
mod_badges_json: obj.mod_badges_json,
|
||||||
mod_exhibits_json: obj.mod_exhibits_json,
|
mod_exhibits_json: obj.mod_exhibits_json,
|
||||||
|
mod_meetings_json: obj.mod_meetings_json,
|
||||||
mod_pres_mgmt_json: obj.mod_pres_mgmt_json,
|
mod_pres_mgmt_json: obj.mod_pres_mgmt_json,
|
||||||
cfg_json: obj.cfg_json,
|
cfg_json: obj.cfg_json,
|
||||||
|
|
||||||
@@ -869,6 +870,7 @@ export async function db_save_ae_obj_li__event(
|
|||||||
|
|
||||||
attend_url: obj.attend_url,
|
attend_url: obj.attend_url,
|
||||||
attend_url_text: obj.attend_url_text,
|
attend_url_text: obj.attend_url_text,
|
||||||
|
attend_url_code: obj.attend_url_code,
|
||||||
attend_url_passcode: obj.attend_url_passcode,
|
attend_url_passcode: obj.attend_url_passcode,
|
||||||
attend_phone: obj.attend_phone,
|
attend_phone: obj.attend_phone,
|
||||||
attend_phone_passcode: obj.attend_phone_passcode,
|
attend_phone_passcode: obj.attend_phone_passcode,
|
||||||
@@ -1059,6 +1061,7 @@ export const properties_to_save = [
|
|||||||
'mod_abstracts_json',
|
'mod_abstracts_json',
|
||||||
'mod_badges_json',
|
'mod_badges_json',
|
||||||
'mod_exhibits_json',
|
'mod_exhibits_json',
|
||||||
|
'mod_meetings_json',
|
||||||
'mod_pres_mgmt_json',
|
'mod_pres_mgmt_json',
|
||||||
'cfg_json',
|
'cfg_json',
|
||||||
|
|
||||||
@@ -1095,6 +1098,7 @@ export const properties_to_save = [
|
|||||||
|
|
||||||
'attend_url',
|
'attend_url',
|
||||||
'attend_url_text',
|
'attend_url_text',
|
||||||
|
'attend_url_code',
|
||||||
'attend_url_passcode',
|
'attend_url_passcode',
|
||||||
'attend_phone',
|
'attend_phone',
|
||||||
'attend_phone_passcode',
|
'attend_phone_passcode',
|
||||||
@@ -1183,6 +1187,7 @@ export async function process_ae_obj__event_props({
|
|||||||
mod_abstracts_json: obj.mod_abstracts_json,
|
mod_abstracts_json: obj.mod_abstracts_json,
|
||||||
mod_badges_json: obj.mod_badges_json,
|
mod_badges_json: obj.mod_badges_json,
|
||||||
mod_exhibits_json: obj.mod_exhibits_json,
|
mod_exhibits_json: obj.mod_exhibits_json,
|
||||||
|
mod_meetings_json: obj.mod_meetings_json,
|
||||||
mod_pres_mgmt_json: obj.mod_pres_mgmt_json,
|
mod_pres_mgmt_json: obj.mod_pres_mgmt_json,
|
||||||
cfg_json: obj.cfg_json,
|
cfg_json: obj.cfg_json,
|
||||||
|
|
||||||
@@ -1223,6 +1228,7 @@ export async function process_ae_obj__event_props({
|
|||||||
|
|
||||||
attend_url: obj.attend_url,
|
attend_url: obj.attend_url,
|
||||||
attend_url_text: obj.attend_url_text,
|
attend_url_text: obj.attend_url_text,
|
||||||
|
attend_url_code: obj.attend_url_code,
|
||||||
attend_url_passcode: obj.attend_url_passcode,
|
attend_url_passcode: obj.attend_url_passcode,
|
||||||
attend_phone: obj.attend_phone,
|
attend_phone: obj.attend_phone,
|
||||||
attend_phone_passcode: obj.attend_phone_passcode,
|
attend_phone_passcode: obj.attend_phone_passcode,
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ export interface Event {
|
|||||||
mod_abstracts_json?: null|key_val;
|
mod_abstracts_json?: null|key_val;
|
||||||
mod_badges_json?: null|key_val;
|
mod_badges_json?: null|key_val;
|
||||||
mod_exhibits_json?: null|key_val;
|
mod_exhibits_json?: null|key_val;
|
||||||
|
mod_meetings_json?: null|key_val;
|
||||||
mod_pres_mgmt_json?: null|key_val;
|
mod_pres_mgmt_json?: null|key_val;
|
||||||
cfg_json?: null|key_val;
|
cfg_json?: null|key_val;
|
||||||
|
|
||||||
@@ -84,6 +85,7 @@ export interface Event {
|
|||||||
|
|
||||||
attend_url?: null|string;
|
attend_url?: null|string;
|
||||||
attend_url_text?: null|string;
|
attend_url_text?: null|string;
|
||||||
|
attend_url_code?: null|string; // Meeting ID, Conference ID, etc.
|
||||||
attend_url_passcode?: null|string;
|
attend_url_passcode?: null|string;
|
||||||
attend_phone?: null|string;
|
attend_phone?: null|string;
|
||||||
attend_phone_passcode?: null|string;
|
attend_phone_passcode?: null|string;
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ let idaa_session_data_struct: key_val = {
|
|||||||
show__modal_edit__event_id: null,
|
show__modal_edit__event_id: null,
|
||||||
show__modal_view__event_id: null,
|
show__modal_view__event_id: null,
|
||||||
obj_changed: false, // Used to track if the event object has been changed in the edit view
|
obj_changed: false, // Used to track if the event object has been changed in the edit view
|
||||||
|
|
||||||
|
attend_platform: null, // 'Zoom', 'Google Meet', 'Microsoft Teams', etc.
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import { ae_util } from '$lib/ae_utils/ae_utils';
|
|||||||
import { core_func } from '$lib/ae_core/ae_core_functions';
|
import { core_func } from '$lib/ae_core/ae_core_functions';
|
||||||
import { api } from '$lib/api';
|
import { api } from '$lib/api';
|
||||||
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||||
import { idaa_loc, idaa_sess, idaa_slct } from '$lib/ae_idaa_stores';
|
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
|
||||||
import { events_func } from '$lib/ae_events_functions';
|
import { events_func } from '$lib/ae_events_functions';
|
||||||
import Tiptap_editor from '$lib/element_tiptap_editor.svelte';
|
import Tiptap_editor from '$lib/element_tiptap_editor.svelte';
|
||||||
|
|
||||||
@@ -101,13 +101,18 @@ if ($idaa_slct.event_id) {
|
|||||||
|
|
||||||
location_text: null,
|
location_text: null,
|
||||||
|
|
||||||
|
attend_platform: null,
|
||||||
attend_url: null,
|
attend_url: null,
|
||||||
|
attend_url_code: null,
|
||||||
attend_url_passcode: null,
|
attend_url_passcode: null,
|
||||||
attend_phone: null,
|
attend_phone: null,
|
||||||
attend_phone_passcode: null,
|
attend_phone_passcode: null,
|
||||||
|
|
||||||
attend_text: null,
|
attend_text: null,
|
||||||
|
|
||||||
|
attend_json: {
|
||||||
|
},
|
||||||
|
|
||||||
timezone: null,
|
timezone: null,
|
||||||
|
|
||||||
recurring_text: null,
|
recurring_text: null,
|
||||||
@@ -347,7 +352,9 @@ async function handle_submit_form(event: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
event_do['attend_url'] = event_meeting_fd.attend_url;
|
event_do['attend_url'] = event_meeting_fd.attend_url;
|
||||||
|
event_do['attend_url_code'] = event_meeting_fd.attend_url_code;
|
||||||
event_do['attend_url_passcode'] = event_meeting_fd.attend_url_passcode;
|
event_do['attend_url_passcode'] = event_meeting_fd.attend_url_passcode;
|
||||||
|
|
||||||
event_do['attend_phone'] = event_meeting_fd.attend_phone;
|
event_do['attend_phone'] = event_meeting_fd.attend_phone;
|
||||||
event_do['attend_phone_passcode'] = event_meeting_fd.attend_phone_passcode;
|
event_do['attend_phone_passcode'] = event_meeting_fd.attend_phone_passcode;
|
||||||
|
|
||||||
@@ -358,6 +365,41 @@ async function handle_submit_form(event: any) {
|
|||||||
console.log('New attend text is not a string. Do nothing.');
|
console.log('New attend text is not a string. Do nothing.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($idaa_sess.recovery_meetings?.attend_platform === 'Zoom') {
|
||||||
|
// event_do['attend_url_passcode_enc'] = event_meeting_fd.attend_url_passcode_enc;
|
||||||
|
|
||||||
|
let zoom_attend_domain = event_meeting_fd.attend_domain ?? 'zoom.us';
|
||||||
|
let zoom_meeting_id = event_do['attend_url_code'] ? event_do['attend_url_code'].replace(/[^0-9]/g, '').trim() : null; // Strip out any non-numeric characters
|
||||||
|
let zoom_passcode = event_do['attend_url_passcode'] ? event_do['attend_url_passcode'].trim() : null; // Strip out any non-alphanumeric characters
|
||||||
|
let zoom_passcode_enc = event_meeting_fd.attend_url_passcode_enc ? event_meeting_fd.attend_url_passcode_enc.replace(/[^a-zA-Z0-9]/g, '').trim() : null; // Strip out any non-alphanumeric characters
|
||||||
|
|
||||||
|
let zoom_url = event_meeting_fd.zoom_attend_url ? event_meeting_fd.zoom_attend_url.trim() : null;
|
||||||
|
|
||||||
|
// Example JSON structure:
|
||||||
|
// "zoom": {
|
||||||
|
// domain = attend_url_base; Zoom domain; Vanity URL
|
||||||
|
// meeting_id = append as /j/attend_url_code;
|
||||||
|
// passcode = attend_url_passcode
|
||||||
|
// url = ''; // generated below
|
||||||
|
// phone = ''; // ignored; Just use the standard list?
|
||||||
|
// }
|
||||||
|
// domain: only contain letters, numbers and dashes (-)
|
||||||
|
// let domain = event_do['attend_url'] ? event_do['attend_url'].replace(/[^a-zA-Z0-9-]/g, '') : null; // Strip out any non-alphanumeric characters except dashes
|
||||||
|
event_do['attend_json'] = {
|
||||||
|
'zoom':
|
||||||
|
{
|
||||||
|
domain: zoom_attend_domain,
|
||||||
|
meeting_id: zoom_meeting_id,
|
||||||
|
passcode: zoom_passcode,
|
||||||
|
passcode_enc: zoom_passcode_enc,
|
||||||
|
full_url: zoom_url,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
console.log(event_do['attend_json']);
|
||||||
|
} else {
|
||||||
|
event_do['attend_json'] = {};
|
||||||
|
}
|
||||||
|
|
||||||
event_do['timezone'] = event_meeting_fd.timezone;
|
event_do['timezone'] = event_meeting_fd.timezone;
|
||||||
|
|
||||||
event_do['recurring'] = true; // Assume always true 2024-10 !!event_meeting_fd.recurring;
|
event_do['recurring'] = true; // Assume always true 2024-10 !!event_meeting_fd.recurring;
|
||||||
@@ -653,15 +695,69 @@ $effect(() => {
|
|||||||
if (orig_event_obj === null || orig_event_obj === undefined || orig_event_obj === 'undefined') {
|
if (orig_event_obj === null || orig_event_obj === undefined || orig_event_obj === 'undefined') {
|
||||||
obj_changed = false;
|
obj_changed = false;
|
||||||
} else if (!obj_changed && orig_event_obj?.id && (JSON.stringify($idaa_slct.event_obj) !== JSON.stringify(orig_event_obj) || description_changed || notes_changed)) {
|
} else if (!obj_changed && orig_event_obj?.id && (JSON.stringify($idaa_slct.event_obj) !== JSON.stringify(orig_event_obj) || description_changed || notes_changed)) {
|
||||||
// console.log('Post object has changed from original.', $inspect(orig_event_obj));
|
// console.log('Event object has changed from original.', $inspect(orig_event_obj));
|
||||||
console.log('Post object has changed from original.', orig_event_obj);
|
console.log('Event object has changed from original.', orig_event_obj);
|
||||||
console.log('Post object has changed.', $idaa_slct.event_obj);
|
console.log('Event object has changed.', $idaa_slct.event_obj);
|
||||||
obj_changed = true;
|
obj_changed = true;
|
||||||
} else if (obj_changed && orig_event_obj?.id && (JSON.stringify($idaa_slct.event_obj) === JSON.stringify(orig_event_obj) && !description_changed && !notes_changed)) {
|
} else if (obj_changed && orig_event_obj?.id && (JSON.stringify($idaa_slct.event_obj) === JSON.stringify(orig_event_obj) && !description_changed && !notes_changed)) {
|
||||||
obj_changed = false;
|
obj_changed = false;
|
||||||
|
// console.log(orig_event_obj?.attend_json);
|
||||||
|
// if (orig_event_obj?.attend_json?.zoom) {
|
||||||
|
// $idaa_sess.recovery_meetings.attend_platform = 'Zoom';
|
||||||
|
// } else {
|
||||||
|
// $idaa_sess.recovery_meetings.attend_platform = null;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// $effect(() => {
|
||||||
|
// if ($idaa_slct.event_obj?.attend_json?.zoom) {
|
||||||
|
// $idaa_sess.recovery_meetings.attend_platform = 'Zoom';
|
||||||
|
// } else {
|
||||||
|
// $idaa_sess.recovery_meetings.attend_platform = null;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
if (browser && $idaa_slct.event_obj?.attend_json) {
|
||||||
|
if ($idaa_slct.event_obj?.attend_json?.zoom) {
|
||||||
|
$idaa_sess.recovery_meetings.attend_platform = 'Zoom';
|
||||||
|
} else {
|
||||||
|
$idaa_sess.recovery_meetings.attend_platform = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
if ($idaa_trig == 'update_zoom_full_url' && $idaa_slct.event_obj.attend_url_code && $idaa_slct.event_obj.attend_url_passcode && $idaa_sess.recovery_meetings.attend_platform === 'Zoom') {
|
||||||
|
$idaa_trig = null;
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.full_url = `https://${$idaa_slct.event_obj.attend_url.replace(/[^a-zA-Z0-9-]/g, '')}/j/${$idaa_slct.event_obj.attend_url_code.replace(/[^0-9]/g, '')}?pwd=${$idaa_slct.event_obj.attend_url_passcode.replace(/[^a-zA-Z0-9]/g, '')}`;
|
||||||
|
|
||||||
|
// $idaa_slct.event_obj.attend_url_code = String($idaa_slct.event_obj.attend_url_code).replace(/\D/g, '').trim();
|
||||||
|
$idaa_slct.event_obj.attend_url_code = String($idaa_slct.event_obj.attend_url_code).replace(/[^0-9]/g, '').trim() ?? '';
|
||||||
|
|
||||||
|
$idaa_slct.event_obj.attend_url_passcode = String($idaa_slct.event_obj.attend_url_passcode).trim() ?? '';
|
||||||
|
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.passcode_enc = String($idaa_slct.event_obj.attend_json.zoom.passcode_enc).replace(/[^a-zA-Z0-9]/g, '').trim();
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.passcode_enc = String($idaa_slct.event_obj.attend_json.zoom.passcode_enc) ?? '';
|
||||||
|
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.domain = $idaa_slct.event_obj.attend_json.zoom.domain ? String($idaa_slct.event_obj.attend_json.zoom.domain).replace(/[^a-zA-Z0-9.-]/g, '').trim() : 'zoom.us';
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.domain = $idaa_slct.event_obj.attend_json.zoom.domain ? String($idaa_slct.event_obj.attend_json.zoom.domain).toLowerCase().trim() : 'zoom.us';
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.domain = $idaa_slct.event_obj.attend_json.zoom.domain.replace(/^https?:\/\//, '').replace(/\/.*$/, ''); // Remove any leading http(s):// and anything after the first /
|
||||||
|
|
||||||
|
if ($idaa_slct.event_obj.attend_json.zoom.passcode_enc && $idaa_slct.event_obj.attend_json.zoom.passcode_enc.length >= 8) {
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.full_url = `https://${$idaa_slct.event_obj.attend_json.zoom.domain}/j/${$idaa_slct.event_obj.attend_url_code}?pwd=${$idaa_slct.event_obj.attend_json.zoom.passcode_enc}`;
|
||||||
|
} else {
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.full_url = `https://${$idaa_slct.event_obj.attend_json.zoom.domain}/j/${$idaa_slct.event_obj.attend_url_code}?pwd=${$idaa_slct.event_obj.attend_url_passcode}`;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// $idaa_slct.event_obj.attend_json = {};
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
@@ -712,7 +808,7 @@ $effect(() => {
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="name" class="w-full">
|
<label for="name" class="w-full">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Name of Recovery Meeting
|
Name of Recovery Meeting
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
@@ -734,7 +830,7 @@ $effect(() => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label for="description" class="ae_label event__description w-full">
|
<label for="description" class="ae_label event__description w-full">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Short description
|
Short description
|
||||||
</span>
|
</span>
|
||||||
<!-- <textarea name="description" id="description" class="ae_value event__description tinymce_editor editor_basic textarea" rows="5" cols="70" bind:value={$idaa_slct.event_obj.description} ></textarea> -->
|
<!-- <textarea name="description" id="description" class="ae_value event__description tinymce_editor editor_basic textarea" rows="5" cols="70" bind:value={$idaa_slct.event_obj.description} ></textarea> -->
|
||||||
@@ -770,7 +866,7 @@ $effect(() => {
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="form-group w-100">
|
<label class="form-group w-100">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Type of Recovery Meeting
|
Type of Recovery Meeting
|
||||||
</span>
|
</span>
|
||||||
<select
|
<select
|
||||||
@@ -787,7 +883,7 @@ $effect(() => {
|
|||||||
<option value="Family Recovery">Family Recovery</option>
|
<option value="Family Recovery">Family Recovery</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<ul class="list-disc list-inside">
|
<ul class="text-sm text-neutral-500 list-disc list-inside">
|
||||||
<li><strong>IDAA</strong> - Open to IDAA members only</li>
|
<li><strong>IDAA</strong> - Open to IDAA members only</li>
|
||||||
<li><strong>Caduceus</strong> - Open to all healthcare workers including those who do not qualify for IDAA</li>
|
<li><strong>Caduceus</strong> - Open to all healthcare workers including those who do not qualify for IDAA</li>
|
||||||
<li><strong>Family Recovery</strong> - Open to spouses, parents, and adult children of medical professionals who have substance use disorder.
|
<li><strong>Family Recovery</strong> - Open to spouses, parents, and adult children of medical professionals who have substance use disorder.
|
||||||
@@ -802,7 +898,7 @@ $effect(() => {
|
|||||||
<h3 class="h2">How to Attended</h3>
|
<h3 class="h2">How to Attended</h3>
|
||||||
|
|
||||||
<fieldset class="event__physical_virtual">
|
<fieldset class="event__physical_virtual">
|
||||||
<legend class="legend text-lg font-semibold">Face-to-Face or Virtual</legend>
|
<legend class="legend text-lg text-neutral-500 font-semibold">Face-to-Face or Virtual</legend>
|
||||||
<p>Is this a face-to-face/in person meeting, a virtual/online meeting, or both?</p>
|
<p>Is this a face-to-face/in person meeting, a virtual/online meeting, or both?</p>
|
||||||
<div class="ae_group border border-gray-200 rounded-md p-2 space-y-1 ">
|
<div class="ae_group border border-gray-200 rounded-md p-2 space-y-1 ">
|
||||||
<label
|
<label
|
||||||
@@ -893,7 +989,7 @@ $effect(() => {
|
|||||||
class:hidden={!$idaa_slct.event_obj?.physical && !$idaa_slct.event_obj?.more__location_fields}
|
class:hidden={!$idaa_slct.event_obj?.physical && !$idaa_slct.event_obj?.more__location_fields}
|
||||||
>
|
>
|
||||||
|
|
||||||
<legend class="legend text-lg font-semibold">Address</legend>
|
<legend class="legend text-lg text-neutral-500 font-semibold">Address</legend>
|
||||||
|
|
||||||
<input id="" name="address_location_id_random" type="hidden" value="{$lq__event_obj?.address_location_id_random}">
|
<input id="" name="address_location_id_random" type="hidden" value="{$lq__event_obj?.address_location_id_random}">
|
||||||
|
|
||||||
@@ -1043,7 +1139,7 @@ $effect(() => {
|
|||||||
class="w-full"
|
class="w-full"
|
||||||
class:hidden={!$idaa_slct.event_obj?.physical && !$idaa_slct.event_obj?.more__location_fields}
|
class:hidden={!$idaa_slct.event_obj?.physical && !$idaa_slct.event_obj?.more__location_fields}
|
||||||
>
|
>
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Additional information about the meeting location
|
Additional information about the meeting location
|
||||||
</span>
|
</span>
|
||||||
<!-- <textarea class="ae_value event__location_text tinymce_editor editor_less_100 textarea" id="location_text" name="location_text" placeholder="Additional information about the meeting location" rows="2" cols="70" bind:value={$idaa_slct.event_obj.location_text}></textarea> -->
|
<!-- <textarea class="ae_value event__location_text tinymce_editor editor_less_100 textarea" id="location_text" name="location_text" placeholder="Additional information about the meeting location" rows="2" cols="70" bind:value={$idaa_slct.event_obj.location_text}></textarea> -->
|
||||||
@@ -1109,26 +1205,240 @@ $effect(() => {
|
|||||||
"
|
"
|
||||||
class:hidden={!$idaa_slct.event_obj.virtual && !$idaa_slct.event_obj?.more__virtual_fields}
|
class:hidden={!$idaa_slct.event_obj.virtual && !$idaa_slct.event_obj?.more__virtual_fields}
|
||||||
>
|
>
|
||||||
<legend class="legend text-lg font-semibold">Virtual/Online</legend>
|
<legend class="legend text-lg font-semibold">
|
||||||
|
Virtual/Online
|
||||||
|
{#if $idaa_sess.recovery_meetings.attend_platform == 'Zoom'}
|
||||||
|
<span class="text-sm italic text-gray-600"> (Zoom Meeting)</span>
|
||||||
|
{:else if $idaa_sess.recovery_meetings.attend_platform == 'Google Meet'}
|
||||||
|
<span class="text-sm italic text-gray-600"> (Google Meet)</span>
|
||||||
|
{:else if $idaa_sess.recovery_meetings.attend_platform == 'Microsoft Teams'}
|
||||||
|
<span class="text-sm italic text-gray-600"> (Microsoft Teams)</span>
|
||||||
|
{:else if $idaa_sess.recovery_meetings.attend_platform == 'other'}
|
||||||
|
<span class="text-sm italic text-gray-600"> (Other Platform/ Service)</span>
|
||||||
|
{/if}
|
||||||
|
</legend>
|
||||||
|
|
||||||
<label for="attend_url">URL to access the virtual meeting
|
<!-- Toggle if this is a Zoom meeting, Google Meet, Microsoft Teams, or "other" as a catch all type of virtual meeting. For now just toggle between "Zoom" and "other" -->
|
||||||
<input type="url" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_url" name="attend_url" placeholder="URL to access the virtual meeting" value={$lq__event_obj?.attend_url ?? ''} autocomplete="url">
|
<div class="w-full flex flex-col flex-wrap gap-1 items-center justify-center">
|
||||||
</label>
|
<p class="text-sm italic text-gray-600">
|
||||||
<label for="attend_url_passcode">Passcode to join at URL
|
Click button to toggle if this is a Zoom meeting or other platform/service.
|
||||||
<input type="text" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_url_passcode" name="attend_url_passcode" placeholder="Passcode to join at URL" value={$lq__event_obj?.attend_url_passcode ?? ''} autocomplete="off">
|
<!-- {$idaa_slct.event_obj?.attend_json?.zoom} -->
|
||||||
</label>
|
{$idaa_sess.recovery_meetings.attend_platform}
|
||||||
|
</p>
|
||||||
|
{#if $idaa_sess.recovery_meetings?.attend_platform === 'Zoom'}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="
|
||||||
|
novi_btn
|
||||||
|
btn btn-lg
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
onclick={() => {
|
||||||
|
$idaa_sess.recovery_meetings.attend_platform = 'other'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span class="fas fa-minus"></span>
|
||||||
|
Not Zoom? Other Platform/Service
|
||||||
|
</button>
|
||||||
|
{:else if !$idaa_sess.recovery_meetings?.attend_platform || $idaa_sess.recovery_meetings?.attend_platform === 'other'}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="
|
||||||
|
novi_btn
|
||||||
|
btn btn-lg
|
||||||
|
w-48
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
onclick={() => {
|
||||||
|
if (!$idaa_slct.event_obj.attend_json || JSON.stringify($idaa_slct.event_obj.attend_json) === '{}') {
|
||||||
|
$idaa_slct.event_obj.attend_json = {
|
||||||
|
"zoom": {
|
||||||
|
"domain": "zoom.us",
|
||||||
|
"meeting_id": "",
|
||||||
|
"passcode": "",
|
||||||
|
"passcode_enc": "",
|
||||||
|
"full_url": "",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
$idaa_sess.recovery_meetings.attend_platform = 'Zoom'
|
||||||
|
$idaa_trig = 'update_zoom_full_url';
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<!-- <span class="fas fa-plus"></span> -->
|
||||||
|
<span class="fas fa-video m-1"></span>
|
||||||
|
Zoom Meeting?
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
<!-- <label for="attend_platform" class="form-group w-100 col-12">
|
||||||
|
<span class="text-lg font-semibold">
|
||||||
|
Platform/Service
|
||||||
|
</span>
|
||||||
|
<select
|
||||||
|
class="
|
||||||
|
form-control col-6
|
||||||
|
select w-48 p-1
|
||||||
|
preset-tonal-surface hover:preset-filled-surface-100-900
|
||||||
|
"
|
||||||
|
id="attend_platform"
|
||||||
|
name="attend_platform"
|
||||||
|
value={$idaa_slct.event_obj?.tmp__attend_platform ?? 'other'}
|
||||||
|
>
|
||||||
|
<option value="Zoom">Zoom</option>
|
||||||
|
<option value="Google Meet">Google Meet</option>
|
||||||
|
<option value="Microsoft Teams">Microsoft Teams</option>
|
||||||
|
<option value="other">Other / Not specified</option>
|
||||||
|
</select>
|
||||||
|
</label> -->
|
||||||
|
</div>
|
||||||
|
{#if $idaa_sess.recovery_meetings?.attend_platform === 'Zoom'}
|
||||||
|
<div class="flex flex-row flex-wrap gap-2 items-center justify-start">
|
||||||
|
<label for="attend_url_code">
|
||||||
|
Zoom Meeting ID
|
||||||
|
<input
|
||||||
|
type="number"
|
||||||
|
id="attend_url_code" name="attend_url_code"
|
||||||
|
max="99999999999"
|
||||||
|
autocomplete="off"
|
||||||
|
required
|
||||||
|
bind:value={$idaa_slct.event_obj.attend_url_code}
|
||||||
|
onchange={() => {
|
||||||
|
console.log('Changed Zoom Meeting ID to:', $idaa_slct.event_obj.attend_url_code);
|
||||||
|
if ($idaa_slct.event_obj.attend_url_code && $idaa_slct.event_obj.attend_url_code.length > 8) {
|
||||||
|
// $idaa_slct.event_obj.attend_url_code = String($idaa_slct.event_obj.attend_url_code).replace(/\D/g, '').trim();
|
||||||
|
|
||||||
<label for="attend_phone">Phone number for meeting conference call
|
$idaa_trig = 'update_zoom_full_url';
|
||||||
<input type="tel" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_phone" name="attend_phone" placeholder="Phone number for meeting conference call" value={$lq__event_obj?.attend_phone ?? ''} autocomplete="tel">
|
} else {
|
||||||
</label>
|
// $idaa_slct.event_obj.attend_url_code = '';
|
||||||
<label for="attend_phone_passcode">Passcode to join conference call
|
}
|
||||||
<input type="text" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_phone_passcode" name="attend_phone_passcode" placeholder="Passcode to join conference call" value={$lq__event_obj?.attend_phone_passcode ?? ''} autocomplete="off">
|
}}
|
||||||
</label>
|
class="
|
||||||
|
form-control
|
||||||
|
input w-72 preset-tonal-surface hover:preset-filled-surface-100-900
|
||||||
|
invalid:[&:not(:placeholder-shown):not(:focus)]:border-red-500
|
||||||
|
required:preset-filled-warning
|
||||||
|
invalid:preset-filled-error
|
||||||
|
"
|
||||||
|
placeholder="Zoom Meeting ID"
|
||||||
|
>
|
||||||
|
</label>
|
||||||
|
<label for="attend_url_passcode">
|
||||||
|
Zoom Passcode
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="attend_url_passcode" name="attend_url_passcode"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={$idaa_slct.event_obj.attend_url_passcode}
|
||||||
|
onchange={() => {
|
||||||
|
console.log('Changed Zoom Passcode to:', $idaa_slct.event_obj.attend_url_passcode);
|
||||||
|
if ($idaa_slct.event_obj.attend_url_passcode && $idaa_slct.event_obj.attend_url_passcode.length > 3) {
|
||||||
|
// $idaa_slct.event_obj.attend_url_passcode = String($idaa_slct.event_obj.attend_url_passcode).trim();
|
||||||
|
|
||||||
|
$idaa_trig = 'update_zoom_full_url';
|
||||||
|
} else {
|
||||||
|
$idaa_slct.event_obj.attend_url_passcode = '';
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
class="
|
||||||
|
form-control
|
||||||
|
input w-72 preset-tonal-surface hover:preset-filled-surface-100-900
|
||||||
|
"
|
||||||
|
placeholder="Zoom Passcode"
|
||||||
|
>
|
||||||
|
</label>
|
||||||
|
<label for="attend_url_passcode_enc">
|
||||||
|
Zoom Encrypted Passcode
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="attend_url_passcode_enc" name="attend_url_passcode_enc"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={$idaa_slct.event_obj.attend_json.zoom.passcode_enc}
|
||||||
|
onchange={() => {
|
||||||
|
console.log('Changed Zoom Encrypted Passcode to:', $idaa_slct.event_obj.attend_json.zoom.passcode_enc);
|
||||||
|
if ($idaa_slct.event_obj.attend_json.zoom.passcode_enc && $idaa_slct.event_obj.attend_json.zoom.passcode_enc.length >= 8) {
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.passcode_enc = String($idaa_slct.event_obj.attend_json.zoom.passcode_enc).replace(/[^a-zA-Z0-9]/g, '').trim();
|
||||||
|
|
||||||
|
$idaa_trig = 'update_zoom_full_url';
|
||||||
|
} else {
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.passcode_enc = '';
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
class="
|
||||||
|
form-control
|
||||||
|
input w-72 preset-tonal-surface hover:preset-filled-surface-100-900
|
||||||
|
"
|
||||||
|
placeholder="Zoom Encrypted Passcode"
|
||||||
|
>
|
||||||
|
</label>
|
||||||
|
<label for="attend_domain">
|
||||||
|
Zoom domain / Vanity URL
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="attend_domain" name="attend_domain"
|
||||||
|
autocomplete="url"
|
||||||
|
bind:value={$idaa_slct.event_obj.attend_json.zoom.domain}
|
||||||
|
onchange={() => {
|
||||||
|
console.log('Changed Zoom domain to:', $idaa_slct.event_obj.attend_json.zoom.domain);
|
||||||
|
if ($idaa_slct.event_obj.attend_json.zoom.domain) {
|
||||||
|
// Remove any protocol (http:// or https://) and any trailing slashes
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.domain = String($idaa_slct.event_obj.attend_json.zoom.domain).replace(/(^\w+:|^)\/\//, '').replace(/\/+$/, '').toLowerCase();
|
||||||
|
// $idaa_slct.event_obj.attend_json.zoom.domain = String($idaa_slct.event_obj.attend_json.zoom.domain).toLowerCase();
|
||||||
|
|
||||||
|
$idaa_trig = 'update_zoom_full_url';
|
||||||
|
} else {
|
||||||
|
$idaa_slct.event_obj.attend_json.zoom.domain = 'zoom.us';
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
class="
|
||||||
|
form-control
|
||||||
|
input w-72 preset-tonal-surface hover:preset-filled-surface-100-900
|
||||||
|
"
|
||||||
|
placeholder="Zoom domain"
|
||||||
|
>
|
||||||
|
<!-- Example: example.zoom.us -->
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<label for="zoom_attend_url">
|
||||||
|
Zoom Meeting URL
|
||||||
|
<input
|
||||||
|
type="url"
|
||||||
|
id="zoom_attend_url" name="zoom_attend_url"
|
||||||
|
autocomplete="url"
|
||||||
|
readonly
|
||||||
|
bind:value={$idaa_slct.event_obj.attend_json.zoom.full_url}
|
||||||
|
class="
|
||||||
|
input w-100 preset-tonal-surface hover:preset-filled-surface-100-900 form-control
|
||||||
|
"
|
||||||
|
placeholder="Zoom Meeting URL"
|
||||||
|
>
|
||||||
|
<!-- Example: https://zoom.us/j/1234567890?pwd=abcdefg -->
|
||||||
|
</label>
|
||||||
|
<!-- https://{$idaa_slct.event_obj?.attend_json?.zoom?.domain?? 'zoom.us'}/j/{$idaa_slct.event_obj?.attend_url_code ?? 'INVALID' }?pwd={$idaa_slct.event_obj?.attend_url_passcode ?? 'REQUIRED'} -->
|
||||||
|
|
||||||
|
<!-- {$idaa_slct.event_obj.attend_json.zoom.full_url} -->
|
||||||
|
|
||||||
|
{:else if !$idaa_sess.recovery_meetings?.attend_platform || $idaa_sess.recovery_meetings?.attend_platform === 'other'}
|
||||||
|
<label for="attend_url">URL to access the virtual meeting
|
||||||
|
<input type="url" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_url" name="attend_url" placeholder="URL to access the virtual meeting" value={$lq__event_obj?.attend_url ?? ''} autocomplete="url">
|
||||||
|
</label>
|
||||||
|
<label for="attend_url_passcode">Passcode to join at URL
|
||||||
|
<input type="text" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_url_passcode" name="attend_url_passcode" placeholder="Passcode to join at URL" value={$lq__event_obj?.attend_url_passcode ?? ''} autocomplete="off">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label for="attend_phone">Phone number for meeting conference call
|
||||||
|
<input type="tel" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_phone" name="attend_phone" placeholder="Phone number for meeting conference call" value={$lq__event_obj?.attend_phone ?? ''} autocomplete="tel">
|
||||||
|
</label>
|
||||||
|
<label for="attend_phone_passcode">Passcode to join conference call
|
||||||
|
<input type="text" class="input w-72 preset-tonal-surface hover:preset-filled-surface-100-900 form-control" id="attend_phone_passcode" name="attend_phone_passcode" placeholder="Passcode to join conference call" value={$lq__event_obj?.attend_phone_passcode ?? ''} autocomplete="off">
|
||||||
|
</label>
|
||||||
|
{/if}
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<label for="attend_text" class="w-full">
|
<label for="attend_text" class="w-full">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Additional information on how to attend
|
Additional information on how to attend
|
||||||
</span>
|
</span>
|
||||||
<!-- <textarea class="ae_value event__attend_text tinymce_editor editor_less_100 textarea" id="attend_text" name="attend_text" placeholder="Additional information on how to attend or join the meeting" rows="2" cols="70" value={$lq__event_obj?.attend_text ?? ''}></textarea> -->
|
<!-- <textarea class="ae_value event__attend_text tinymce_editor editor_less_100 textarea" id="attend_text" name="attend_text" placeholder="Additional information on how to attend or join the meeting" rows="2" cols="70" value={$lq__event_obj?.attend_text ?? ''}></textarea> -->
|
||||||
@@ -1201,7 +1511,7 @@ $effect(() => {
|
|||||||
|
|
||||||
<!-- <legend class="legend">Recurring</legend> -->
|
<!-- <legend class="legend">Recurring</legend> -->
|
||||||
<label for="recurring_pattern" class="form-group w-100 col-12">
|
<label for="recurring_pattern" class="form-group w-100 col-12">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Recurring Repeats
|
Recurring Repeats
|
||||||
</span>
|
</span>
|
||||||
<select
|
<select
|
||||||
@@ -1269,7 +1579,7 @@ $effect(() => {
|
|||||||
|
|
||||||
<fieldset class="flex flex-row flex-wrap gap-1 items-center justify-start flex_row flex_gap_md flex_justify_around space-y-1">
|
<fieldset class="flex flex-row flex-wrap gap-1 items-center justify-start flex_row flex_gap_md flex_justify_around space-y-1">
|
||||||
<label class="form-group w-56">
|
<label class="form-group w-56">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Timezone
|
Timezone
|
||||||
</span>
|
</span>
|
||||||
{#if $ae_loc?.lu_time_zone_list && $ae_loc?.lu_time_zone_list.length > 0}
|
{#if $ae_loc?.lu_time_zone_list && $ae_loc?.lu_time_zone_list.length > 0}
|
||||||
@@ -1296,7 +1606,7 @@ $effect(() => {
|
|||||||
<!-- client TZ: {$ae_loc?.current_timezone} -->
|
<!-- client TZ: {$ae_loc?.current_timezone} -->
|
||||||
</label>
|
</label>
|
||||||
<label class="form-group">
|
<label class="form-group">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Start Time
|
Start Time
|
||||||
</span>
|
</span>
|
||||||
<input name="recurring_start_time"
|
<input name="recurring_start_time"
|
||||||
@@ -1311,7 +1621,7 @@ $effect(() => {
|
|||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
<label class="form-group">
|
<label class="form-group">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
End Time
|
End Time
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
@@ -1331,7 +1641,7 @@ $effect(() => {
|
|||||||
{#if ( $ae_loc.administrator_access || $lq__event_obj && ($idaa_slct.event_obj?.show_recurring_text || ($lq__event_obj?.recurring_text && !$lq__event_obj?.recurring_text.includes('*gen*'))) )}
|
{#if ( $ae_loc.administrator_access || $lq__event_obj && ($idaa_slct.event_obj?.show_recurring_text || ($lq__event_obj?.recurring_text && !$lq__event_obj?.recurring_text.includes('*gen*'))) )}
|
||||||
<p>Please only use the text box for additional information if the options above do not cover your needs. This may affect how this meeting shows up in search results.</p>
|
<p>Please only use the text box for additional information if the options above do not cover your needs. This may affect how this meeting shows up in search results.</p>
|
||||||
<label for="recurring_text" class="w-full">
|
<label for="recurring_text" class="w-full">
|
||||||
<span class="text-lg font-semibold">
|
<span class="text-lg text-neutral-500 font-semibold">
|
||||||
Additional information on when and how often
|
Additional information on when and how often
|
||||||
</span>
|
</span>
|
||||||
<!-- <textarea class="ae_value event__recurring_text tinymce_editor editor_less_100 textarea" id="recurring_text" name="recurring_text" placeholder="Additional information on when and how often" value={$lq__event_obj?.recurring_text ?? ''}></textarea> -->
|
<!-- <textarea class="ae_value event__recurring_text tinymce_editor editor_less_100 textarea" id="recurring_text" name="recurring_text" placeholder="Additional information on when and how often" value={$lq__event_obj?.recurring_text ?? ''}></textarea> -->
|
||||||
@@ -1375,6 +1685,7 @@ $effect(() => {
|
|||||||
novi_btn
|
novi_btn
|
||||||
btn btn-sm
|
btn btn-sm
|
||||||
preset-filled-tertiary-200-800
|
preset-filled-tertiary-200-800
|
||||||
|
transition
|
||||||
"
|
"
|
||||||
onclick={() => {
|
onclick={() => {
|
||||||
if (confirm('Are you sure you want to remove the text for the additional details?')) {
|
if (confirm('Are you sure you want to remove the text for the additional details?')) {
|
||||||
@@ -1396,6 +1707,7 @@ $effect(() => {
|
|||||||
novi_btn
|
novi_btn
|
||||||
btn btn-sm
|
btn btn-sm
|
||||||
preset-filled-success-200-800
|
preset-filled-success-200-800
|
||||||
|
transition
|
||||||
"
|
"
|
||||||
onclick={preventDefault(() => {
|
onclick={preventDefault(() => {
|
||||||
// Remove *gen* prefix from recurring_text
|
// Remove *gen* prefix from recurring_text
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { browser } from '$app/environment';
|
|||||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||||
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||||
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
|
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
|
||||||
|
import MyClipboard from '$lib/e_app_clipboard.svelte';
|
||||||
|
|
||||||
export let lq__event_obj: any;
|
export let lq__event_obj: any;
|
||||||
|
|
||||||
@@ -139,6 +140,54 @@ if ($idaa_slct.event_id) {
|
|||||||
class:meeting_virtual={$lq__event_obj?.virtual}
|
class:meeting_virtual={$lq__event_obj?.virtual}
|
||||||
class:hidden={!$lq__event_obj?.virtual}
|
class:hidden={!$lq__event_obj?.virtual}
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="event__attend"
|
||||||
|
class:ae_d_none={!$lq__event_obj?.attend_json?.zoom?.full_url}
|
||||||
|
>
|
||||||
|
<span class="ae_label">
|
||||||
|
<span class="fas fa-video m-1"></span>
|
||||||
|
Zoom Meeting:
|
||||||
|
</span>
|
||||||
|
<span class="ae_value">
|
||||||
|
<!-- text-blue-800 hover:underline -->
|
||||||
|
<a
|
||||||
|
href="{$lq__event_obj?.attend_json?.zoom?.full_url}"
|
||||||
|
target="_blank"
|
||||||
|
class="
|
||||||
|
novi_btn btn-default
|
||||||
|
btn btn-sm
|
||||||
|
preset-outlined-tertiary-800-200
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
hover:preset-filled-tertiary-600-400
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<span class="fas fa-link m-1"></span>
|
||||||
|
<!-- {$lq__event_obj?.attend_json?.zoom?.full_url} -->
|
||||||
|
Join: Zoom ID {$lq__event_obj?.attend_json?.zoom?.meeting_id}
|
||||||
|
{#if $lq__event_obj?.attend_json?.zoom?.passcode}
|
||||||
|
| Passcode: {$lq__event_obj?.attend_json?.zoom?.passcode}
|
||||||
|
{/if}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<MyClipboard
|
||||||
|
value={$lq__event_obj?.attend_json?.zoom?.full_url}
|
||||||
|
btn_text="Copy Zoom Link"
|
||||||
|
btn_title="Copy Zoom link to clipboard"
|
||||||
|
btn_class="
|
||||||
|
novi_btn
|
||||||
|
btn btn-sm
|
||||||
|
preset-outlined-tertiary-800-200
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
hover:preset-filled-tertiary-600-400
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
></MyClipboard>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#if !$lq__event_obj?.attend_json?.zoom?.full_url || !$lq__event_obj?.attend_json?.zoom?.meeting_id}
|
||||||
<div class="meeting_attend_url"
|
<div class="meeting_attend_url"
|
||||||
class:hidden={!$lq__event_obj?.attend_url}
|
class:hidden={!$lq__event_obj?.attend_url}
|
||||||
>
|
>
|
||||||
@@ -163,6 +212,7 @@ if ($idaa_slct.event_id) {
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
<div class="meeting_attend_phone"
|
<div class="meeting_attend_phone"
|
||||||
class:hidden={!$lq__event_obj?.attend_phone}
|
class:hidden={!$lq__event_obj?.attend_phone}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import { ae_util } from '$lib/ae_utils/ae_utils';
|
|||||||
import { core_func } from '$lib/ae_core/ae_core_functions';
|
import { core_func } from '$lib/ae_core/ae_core_functions';
|
||||||
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||||
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
|
import { idaa_loc, idaa_sess, idaa_slct, idaa_trig } from '$lib/ae_idaa_stores';
|
||||||
|
import MyClipboard from '$lib/e_app_clipboard.svelte';
|
||||||
|
|
||||||
|
|
||||||
if (browser) {
|
if (browser) {
|
||||||
@@ -228,6 +229,52 @@ function add_activity_log(
|
|||||||
<span class="ae_value">{idaa_event_obj?.type}</span>
|
<span class="ae_value">{idaa_event_obj?.type}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="event__attend"
|
||||||
|
class:ae_d_none={!idaa_event_obj?.attend_json?.zoom?.full_url}
|
||||||
|
>
|
||||||
|
<span class="ae_label">
|
||||||
|
<span class="fas fa-video m-1"></span>
|
||||||
|
Zoom Meeting:
|
||||||
|
</span>
|
||||||
|
<span class="ae_value">
|
||||||
|
<!-- text-blue-800 hover:underline -->
|
||||||
|
<a
|
||||||
|
href="{idaa_event_obj?.attend_json?.zoom?.full_url}"
|
||||||
|
target="_blank"
|
||||||
|
class="
|
||||||
|
novi_btn btn-default
|
||||||
|
btn btn-sm
|
||||||
|
preset-outlined-tertiary-800-200
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
hover:preset-filled-tertiary-600-400
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<span class="fas fa-link m-1"></span>
|
||||||
|
<!-- {idaa_event_obj?.attend_json?.zoom?.full_url} -->
|
||||||
|
Join: Zoom ID {idaa_event_obj?.attend_json?.zoom?.meeting_id}
|
||||||
|
{#if idaa_event_obj?.attend_json?.zoom?.passcode}
|
||||||
|
| Passcode: {idaa_event_obj?.attend_json?.zoom?.passcode}
|
||||||
|
{/if}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<MyClipboard
|
||||||
|
value={idaa_event_obj?.attend_json?.zoom?.full_url}
|
||||||
|
btn_text="Copy Zoom Link"
|
||||||
|
btn_title="Copy Zoom link to clipboard"
|
||||||
|
btn_class="
|
||||||
|
novi_btn
|
||||||
|
btn btn-sm
|
||||||
|
preset-outlined-tertiary-800-200
|
||||||
|
preset-filled-tertiary-200-800
|
||||||
|
hover:preset-filled-tertiary-600-400
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
></MyClipboard>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="ae_group event__timezone event__recurring_start_time"
|
class="ae_group event__timezone event__recurring_start_time"
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user