Now able to save the HTML text from tip tap element.
This commit is contained in:
@@ -81,7 +81,7 @@ if (show_button_kv) {
|
||||
show_button_kv = show_button_kv_defaults;
|
||||
}
|
||||
|
||||
export let new_json = editor?.getJSON();
|
||||
// export let new_json = editor?.getJSON();
|
||||
export let new_html: string = '';
|
||||
|
||||
onMount(() => {
|
||||
@@ -96,8 +96,22 @@ onMount(() => {
|
||||
onTransaction: () => {
|
||||
// force re-render so `editor.isActive` works as expected
|
||||
editor = editor;
|
||||
new_html = editor.getHTML();
|
||||
|
||||
let updated_html = editor.getHTML();
|
||||
if (updated_html == '<p></p>') {
|
||||
new_html = '';
|
||||
} else {
|
||||
new_html = updated_html;
|
||||
}
|
||||
},
|
||||
onUpdate: ({ editor }) => {
|
||||
let updated_html = editor.getHTML();
|
||||
if (updated_html == '<p></p>') {
|
||||
new_html = '';
|
||||
} else {
|
||||
new_html = updated_html;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -106,6 +120,13 @@ onDestroy(() => {
|
||||
editor.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
function getContent() {
|
||||
if (editor) {
|
||||
return editor.getHTML();
|
||||
}
|
||||
return '';
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
|
||||
@@ -142,6 +142,23 @@ $: lq_new__event_obj_li = liveQuery(async () => {
|
||||
lq__event_obj={lq__event_obj}
|
||||
/>
|
||||
|
||||
|
||||
<svelte:fragment slot="footer">
|
||||
<div class="text-center w-full">
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log('Close modal');
|
||||
$idaa_sess.recovery_meetings.show__modal_edit = false;
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
>
|
||||
<span class="fas fa-times mx-1"></span>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</svelte:fragment>
|
||||
|
||||
</Modal>
|
||||
|
||||
<!-- Main modal -->
|
||||
|
||||
@@ -226,69 +226,19 @@ if ($ae_loc.lu_country_subdivision_list && $ae_loc.lu_country_subdivision_list.l
|
||||
}
|
||||
|
||||
|
||||
onMount(() => {
|
||||
console.log('** Component Mounted: ** Edit - Event Obj');
|
||||
tinymce_remove(); // This seems to fix rendering issues
|
||||
tinymce_init();
|
||||
});
|
||||
// onMount(() => {
|
||||
// console.log('** Component Mounted: ** Edit - Event Obj');
|
||||
// });
|
||||
|
||||
onDestroy(() => {
|
||||
console.log('** Component Destroyed: ** Edit - Event Obj');
|
||||
tinymce_remove(); // This seems like the right thing to do
|
||||
});
|
||||
// onDestroy(() => {
|
||||
// console.log('** Component Destroyed: ** Edit - Event Obj');
|
||||
// });
|
||||
|
||||
// afterUpdate(() => {
|
||||
// console.log('** Component Updated: ** Edit - Event Obj');
|
||||
// tinymce_init();
|
||||
// });
|
||||
|
||||
function tinymce_init() {
|
||||
// REFERENCE: https://www.tiny.cloud/docs/tinymce/6/basic-setup/
|
||||
// plugins: [
|
||||
// 'advlist', 'autolink', 'link', 'image', 'lists', 'charmap', 'preview', 'anchor', 'pagebreak',
|
||||
// 'searchreplace', 'wordcount', 'visualblocks', 'visualchars', 'code', 'fullscreen', 'insertdatetime',
|
||||
// 'media', 'table', 'emoticons', 'template', 'help'
|
||||
// ],
|
||||
// 'undo redo | styles | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent'
|
||||
|
||||
// // NOTE: Basic version of the TinyMCE editor
|
||||
// tinymce.init({
|
||||
// selector: '.tinymce_editor.editor_basic',
|
||||
// // width: 600,
|
||||
// height: 400,
|
||||
// plugins: [ 'lists', 'code', 'help' ],
|
||||
// menubar: false,
|
||||
// toolbar: 'undo redo | styles | bold italic | alignleft aligncenter | bullist numlist outdent indent | code | help',
|
||||
// });
|
||||
|
||||
// // NOTE: Minimal version of the TinyMCE editor
|
||||
// tinymce.init({
|
||||
// selector: '.tinymce_editor.editor_basic_200',
|
||||
// // width: 600,
|
||||
// height: 200,
|
||||
// plugins: [ 'lists', 'code', 'help' ],
|
||||
// menubar: false,
|
||||
// toolbar: 'undo redo | styles | bold italic | alignleft aligncenter | bullist numlist outdent indent | code | help',
|
||||
// });
|
||||
|
||||
// // NOTE: Less is more version of the TinyMCE editor
|
||||
// tinymce.init({
|
||||
// selector: '.tinymce_editor.editor_less_100',
|
||||
// // width: 600,
|
||||
// height: 100,
|
||||
// // plugins: [ 'lists', 'code', 'help' ],
|
||||
// menubar: false,
|
||||
// toolbar: false,
|
||||
// statusbar: false,
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
function tinymce_remove() {
|
||||
// tinymce.remove('.tinymce_editor.editor_basic');
|
||||
// tinymce.remove('.tinymce_editor.editor_basic_200');
|
||||
// tinymce.remove('.tinymce_editor.editor_less_100');
|
||||
}
|
||||
|
||||
|
||||
$: if ($idaa_slct.event_obj) {
|
||||
@@ -320,17 +270,15 @@ async function handle_submit_form(event: any) {
|
||||
|
||||
event_data['name'] = event_meeting_data.name;
|
||||
|
||||
if (event_meeting_data.description) {
|
||||
event_data['description'] = event_meeting_data.description;
|
||||
// Check if the description_new_html exists and is a string
|
||||
if (typeof $idaa_slct.event_obj.description_new_html === 'string') {
|
||||
console.log('New description is a string');
|
||||
event_data['description'] = $idaa_slct.event_obj.description_new_html;
|
||||
} else {
|
||||
event_data['description'] = null;
|
||||
console.log('New description is not a string. Do nothing.');
|
||||
// event_data['description'] = event_meeting_data.description;
|
||||
}
|
||||
|
||||
// if (tinyMCE.get('description')) {
|
||||
// event_data['description'] = tinyMCE.get('description').getContent();
|
||||
// } else {
|
||||
// event_data['description'] = event_meeting_data.description;
|
||||
// }
|
||||
event_data['type'] = event_meeting_data.type;
|
||||
event_data['physical'] = !!event_meeting_data.physical;
|
||||
event_data['virtual'] = !!event_meeting_data.virtual;
|
||||
@@ -360,22 +308,24 @@ async function handle_submit_form(event: any) {
|
||||
}
|
||||
// event_data['location_address_json'] = address;
|
||||
|
||||
// if (tinyMCE.get('location_text')) {
|
||||
// event_data['location_text'] = tinyMCE.get('location_text').getContent();
|
||||
// } else {
|
||||
// event_data['location_text'] = event_meeting_data.location_text;
|
||||
// }
|
||||
// Check if the location_text_new_html exists and is a string
|
||||
if (typeof $idaa_slct.event_obj.location_text_new_html === 'string') {
|
||||
event_data['location_text'] = $idaa_slct.event_obj.location_text_new_html;
|
||||
} else {
|
||||
console.log('New location text is not a string. Do nothing.');
|
||||
}
|
||||
|
||||
event_data['attend_url'] = event_meeting_data.attend_url;
|
||||
event_data['attend_url_passcode'] = event_meeting_data.attend_url_passcode;
|
||||
event_data['attend_phone'] = event_meeting_data.attend_phone;
|
||||
event_data['attend_phone_passcode'] = event_meeting_data.attend_phone_passcode;
|
||||
|
||||
// if (tinyMCE.get('attend_text')) {
|
||||
// event_data['attend_text'] = tinyMCE.get('attend_text').getContent();
|
||||
// } else {
|
||||
// event_data['attend_text'] = event_meeting_data.attend_text;
|
||||
// }
|
||||
// Check if the attend_text_new_html exists and is a string
|
||||
if (typeof $idaa_slct.event_obj.attend_text_new_html === 'string') {
|
||||
event_data['attend_text'] = $idaa_slct.event_obj.attend_text_new_html;
|
||||
} else {
|
||||
console.log('New attend text is not a string. Do nothing.');
|
||||
}
|
||||
|
||||
event_data['timezone'] = event_meeting_data.timezone;
|
||||
|
||||
@@ -405,11 +355,12 @@ async function handle_submit_form(event: any) {
|
||||
event_data['recurring_end_time'] = event_meeting_data.recurring_end_time;
|
||||
}
|
||||
|
||||
// if (tinyMCE.get('recurring_text')) {
|
||||
// event_data['recurring_text'] = tinyMCE.get('recurring_text').getContent();
|
||||
// } else {
|
||||
// event_data['recurring_text'] = event_meeting_data.recurring_text;
|
||||
// }
|
||||
// Check if the recurring_text_new_html exists and is a string
|
||||
if (typeof $idaa_slct.event_obj.recurring_text_new_html === 'string') {
|
||||
event_data['recurring_text'] = $idaa_slct.event_obj.recurring_text_new_html;
|
||||
} else {
|
||||
console.log('New recurring text is not a string. Do nothing.');
|
||||
}
|
||||
|
||||
console.log(event_data['recurring_text']);
|
||||
if (!event_data['recurring_text'] || event_data['recurring_text'].includes('*gen*')) {
|
||||
@@ -491,11 +442,12 @@ async function handle_submit_form(event: any) {
|
||||
event_data['enable'] = !!event_meeting_data.enable;
|
||||
}
|
||||
|
||||
// if (tinyMCE.get('notes')) {
|
||||
// event_data['notes'] = tinyMCE.get('notes').getContent();
|
||||
// } else {
|
||||
// event_data['notes'] = event_meeting_data.notes;
|
||||
// }
|
||||
// Check if the notes_new_html exists and is a string
|
||||
if (typeof $idaa_slct.event_obj.notes_new_html === 'string') {
|
||||
event_data['notes'] = $idaa_slct.event_obj.notes_new_html;
|
||||
} else {
|
||||
console.log('New notes is not a string. Do nothing.');
|
||||
}
|
||||
|
||||
console.log(event_data);
|
||||
|
||||
@@ -665,6 +617,18 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
{/if}
|
||||
{/await}
|
||||
|
||||
<section class="text-center"> <!-- BEGIN: section event__options -->
|
||||
{#if $idaa_slct.event_id}
|
||||
<button
|
||||
type="submit"
|
||||
disabled={(disable_submit_btn)}
|
||||
class="ae_btn btn_primary btn btn-primary variant-ghost-primary hover:variant-filled-primary transition"
|
||||
>
|
||||
<span class="fas fa-check m-1"></span> Save?
|
||||
</button>
|
||||
{/if}
|
||||
</section> <!-- END: section event__options -->
|
||||
|
||||
<!-- <h3>Recovery Meeting</h3> -->
|
||||
|
||||
<input type="hidden" value={$idaa_slct.event_id} />
|
||||
@@ -688,7 +652,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<!-- {@html $idaa_slct.event_obj?.description_new_html ?? 'not sure?'} -->
|
||||
|
||||
<!-- If changed then show Save button -->
|
||||
{#if
|
||||
<!-- {#if
|
||||
$idaa_slct.event_obj.description_new_html &&
|
||||
$idaa_slct.event_obj?.description_new_html != '<p></p>' &&
|
||||
$idaa_slct.event_obj.description != $idaa_slct.event_obj.description_new_html}
|
||||
@@ -697,11 +661,10 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
class="btn btn-md btn-primary variant-ghost-secondary"
|
||||
on:click={() => $idaa_slct.event_obj.description = $idaa_slct.event_obj.description_new_html}
|
||||
>
|
||||
<!-- <span class="icon">💾</span> -->
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save?
|
||||
</button>
|
||||
{/if}
|
||||
{/if} -->
|
||||
|
||||
</label>
|
||||
|
||||
@@ -843,7 +806,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
/>
|
||||
|
||||
<!-- If changed then show Save button -->
|
||||
{#if
|
||||
<!-- {#if
|
||||
$idaa_slct.event_obj?.location_text_new_html &&
|
||||
$idaa_slct.event_obj?.location_text_new_html != '<p></p>' &&
|
||||
$idaa_slct.event_obj.location_text != $idaa_slct.event_obj.location_text_new_html}
|
||||
@@ -855,7 +818,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save?
|
||||
</button>
|
||||
{/if}
|
||||
{/if} -->
|
||||
</label>
|
||||
|
||||
<fieldset
|
||||
@@ -890,7 +853,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
/>
|
||||
|
||||
<!-- If changed then show Save button -->
|
||||
{#if
|
||||
<!-- {#if
|
||||
$idaa_slct.event_obj?.attend_text_new_html &&
|
||||
$idaa_slct.event_obj?.attend_text_new_html != '<p></p>' &&
|
||||
$idaa_slct.event_obj.attend_text != $idaa_slct.event_obj.attend_text_new_html}
|
||||
@@ -902,7 +865,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save?
|
||||
</button>
|
||||
{/if}
|
||||
{/if} -->
|
||||
</label>
|
||||
|
||||
</section> <!-- END: section event__how_to_attend -->
|
||||
@@ -985,7 +948,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<label>End Time <input name="recurring_end_time" type="time" value={$lq__event_obj?.recurring_end_time} max="8" class="input w-40" /></label>
|
||||
</fieldset>
|
||||
|
||||
{#if ( $ae_loc.administrator_access || $lq__event_obj && ($lq__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>
|
||||
<label for="recurring_text">Additional information on when and how often
|
||||
<!-- <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> -->
|
||||
@@ -997,7 +960,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
/>
|
||||
|
||||
<!-- If changed then show Save button -->
|
||||
{#if
|
||||
<!-- {#if
|
||||
$idaa_slct.event_obj?.recurring_text_new_html &&
|
||||
$idaa_slct.event_obj?.recurring_text_new_html != '<p></p>' &&
|
||||
$idaa_slct.event_obj.recurring_text != $idaa_slct.event_obj.recurring_text_new_html}
|
||||
@@ -1009,18 +972,18 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save?
|
||||
</button>
|
||||
{/if}
|
||||
{/if} -->
|
||||
</label>
|
||||
{/if}
|
||||
{#if ( $ae_loc.administrator_access || $lq__event_obj && ($lq__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*'))) )}
|
||||
<button
|
||||
type="button"
|
||||
class="ae_btn ae_smaller btn btn-info btn-sm ae_width_md variant-ghost-warning hover:variant-filled-warning transition"
|
||||
style=""
|
||||
on:click|preventDefault={() => {
|
||||
if (confirm('Are you sure you want to remove the text for the additional details?')) {
|
||||
// tinyMCE.get('recurring_text').setContent('');
|
||||
$idaa_slct.event_obj.recurring_text = '';
|
||||
// $idaa_slct.event_obj.recurring_text = '';
|
||||
$idaa_slct.event_obj.recurring_text_new_html = '';
|
||||
$idaa_slct.event_obj.show_recurring_text = false;
|
||||
} else {
|
||||
return false;
|
||||
@@ -1037,9 +1000,9 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
on:click|preventDefault={() => {
|
||||
// Remove *gen* prefix from recurring_text
|
||||
if ($lq__event_obj.recurring_text && $lq__event_obj.recurring_text.includes('*gen*')) {
|
||||
$lq__event_obj.recurring_text = $lq__event_obj.recurring_text.replace('*gen* ', '');
|
||||
$idaa_slct.event_obj.recurring_text = $lq__event_obj.recurring_text.replace('*gen* ', '');
|
||||
}
|
||||
$lq__event_obj.show_recurring_text = true;
|
||||
$idaa_slct.event_obj.show_recurring_text = true;
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-plus m-1"></span> Add More Details?
|
||||
@@ -1272,7 +1235,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
/>
|
||||
|
||||
<!-- If changed then show Save button -->
|
||||
{#if
|
||||
<!-- {#if
|
||||
$idaa_slct.event_obj?.notes_new_html &&
|
||||
$idaa_slct.event_obj?.notes_new_html != '<p></p>' &&
|
||||
$idaa_slct.event_obj.notes != $idaa_slct.event_obj.notes_new_html}
|
||||
@@ -1284,7 +1247,7 @@ async function handle_delete_event_obj({event_id, method='disable'}) {
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save?
|
||||
</button>
|
||||
{/if}
|
||||
{/if} -->
|
||||
<!-- {$idaa_slct.event_obj?.notes_new_html} -->
|
||||
</label>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user