From e71cdab35365286daef9bfb60bec8ecf860db36a Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 5 Mar 2024 20:35:38 -0500 Subject: [PATCH] Wrapping up for the night. Things are working better. There are still API request misses or something. --- src/app.postcss | 4 +- src/lib/ae_stores.ts | 2 + src/lib/ae_utils.ts | 4 +- src/lib/element_data_store.svelte | 102 ++++++++------ src/routes/events_badges/+page.svelte | 3 +- .../10_edit_modal__event_presenter_obj.svelte | 58 +++++--- .../10_view_modal__event_presenter_obj.svelte | 39 +++-- src/routes/sponsorships/+page.svelte | 27 ++-- .../10_edit_modal__sponsorship_obj.svelte | 133 ++++++++++++------ .../10_view_modal__sponsorship_obj.svelte | 28 +++- 10 files changed, 261 insertions(+), 139 deletions(-) diff --git a/src/app.postcss b/src/app.postcss index 3e5e6120..d75b6352 100644 --- a/src/app.postcss +++ b/src/app.postcss @@ -82,8 +82,8 @@ body { /* Remove the background from the body in all cases */ body[data-theme] { - background: none; - background-image: none; + /* background: none; */ + /* background-image: none; */ } /* Remove the background from the body if using iframes */ diff --git a/src/lib/ae_stores.ts b/src/lib/ae_stores.ts index 23af8aef..192e2913 100644 --- a/src/lib/ae_stores.ts +++ b/src/lib/ae_stores.ts @@ -64,6 +64,8 @@ export let ae_app_local_data_struct: key_val = { 'show_element__access_type': true, 'theme_mode': 'dark', 'theme_name': 'wintry', + + 'classes__form': 'border border-surface-200 p-4 space-y-4 rounded-container-token', }, 'mod': { 'archives': {}, diff --git a/src/lib/ae_utils.ts b/src/lib/ae_utils.ts index 9d54ac36..ac2d7fb6 100644 --- a/src/lib/ae_utils.ts +++ b/src/lib/ae_utils.ts @@ -427,7 +427,7 @@ function handle_url_and_message(name: string, value: null|string) { if (value) { url.searchParams.set(name, value); - history.pushState({}, '', url); + // history.pushState({}, '', url); // console.log('url:', url); // pushState(url.href, {}); @@ -438,7 +438,7 @@ function handle_url_and_message(name: string, value: null|string) { window.parent.postMessage(message, "*"); } else { url.searchParams.delete(name); - history.pushState({}, '', url); + // history.pushState({}, '', url); // console.log('url:', url); // pushState({}, '', url.search); diff --git a/src/lib/element_data_store.svelte b/src/lib/element_data_store.svelte index 0797e567..ee52b176 100644 --- a/src/lib/element_data_store.svelte +++ b/src/lib/element_data_store.svelte @@ -9,6 +9,7 @@ import { ae_util } from '$lib/ae_utils'; import type { key_val } from '$lib/ae_stores'; export let ds_code: string; +export let ds_name: string; export let ds_type: string = 'text'; export let for_type: string; export let for_id: string; @@ -26,7 +27,9 @@ export let show_delete_btn: boolean = false; export let debug: boolean = false; let ae_promises: key_val = {}; // Promise; -let data_store_results: Promise|key_val; +let ds_get_results: Promise|key_val; +let ds_loading_status: string = 'starting...'; +let ds_submit_results: Promise|key_val; let val_json: key_val; let val_html: key_val; @@ -40,13 +43,13 @@ let ds_code_obj = id: null, account_id: null, code: ds_code, + name: ds_name, type: ds_type, for_type: null, // for_type for_id: null, // for_id access_read: null, // 'super', 'administrator', 'trusted', 'anonymous' access_write: null, // 'super', 'administrator', 'trusted', 'anonymous' access_delete: null, // 'super', 'administrator', 'trusted', 'anonymous' - name: null, html: null, json: null, md: null, @@ -57,34 +60,36 @@ let ds_code_obj = let ae_ds_loc: Writable = localStorageStore(`ae_ds__${ds_code}`, ds_code_obj); console.log(`ae_ Data Store ${ds_code} = `, $ae_ds_loc); +if (!$ae_ds_loc.id) { + ds_loading_status = '-- loading --'; +} + $ae_sess.ds.submit_status = null; $ae_sess.ds.create_status = null; $ae_sess.ds.update_status = null; -$slct_trigger = 'load__ds__code'; +let trigger: null|string = 'load__ds__code'; onMount(() => { console.log('Element: Data Store element_data_store.svelte'); - if (ds_code && ds_type) { - $slct_trigger = 'load__ds__code'; - } + // if (ds_code && ds_type) { + // trigger = 'load__ds__code'; + // $slct_trigger = 'load__ds__code'; + // } }); // let ds_code_li = {}; //: key_val; // = ae_loc_tmp.ds; // console.log(`ae_ ds_code_li = `, ds_code_li); -$: if ($slct_trigger == 'load__ds__code' && ds_code && ds_type) { - $slct_trigger = null; +$: if (trigger == 'load__ds__code' && ds_code && ds_type) { + trigger = null; load_data_store({ code: ds_code, type: ds_type, for_type: for_type, for_id: for_id, - store: store, - display: display, - class_li: class_li, try_cache: try_cache }); } @@ -97,24 +102,8 @@ async function load_data_store({ try_cache=true }) { - - // if ($ae_ds_loc) { - // console.log(`ae_ Data Store ${code} = `, $ae_ds_loc); - // // ds_code_val = ae_ds_loc; - // // if (type == 'html') { - // // val_html = $ae_ds_loc.text; - // // } else if (type == 'json') { - // // val_json = $ae_ds_loc.json; - // // } else if (type == 'md') { - // // val_md = $ae_ds_loc.text; - // // } else if (type == 'sql') { - // // val_sql = $ae_ds_loc.text; - // // } else { - // // val_text = $ae_ds_loc.text; - // // } - // } - - let ds_code_val = await api.get_data_store_obj_w_code({ + // let ds_code_val = await api.get_data_store_obj_w_code({ + ds_get_results = api.get_data_store_obj_w_code({ api_cfg: $ae_api, data_store_code: code, data_type: type, @@ -154,11 +143,14 @@ async function load_data_store({ val_text = ds_results.text; return ds_results.text; } + } else { + ds_loading_status = '-- not found --'; } }) .catch(function (error) { console.log(`Something went wrong. for code ${code}`); console.log(error); + ds_loading_status = '-- error --'; return false; }); // .finally(function (ds_val_result) { @@ -209,14 +201,20 @@ async function handle_submit_form(event) { if (typeof data_store_di.ds_code !== 'undefined') { data_store_do['code'] = data_store_di.ds_code; + } else { + data_store_do['code'] = ds_code; } if (typeof data_store_di.ds_name !== 'undefined') { data_store_do['name'] = data_store_di.ds_name; + } else { + data_store_do['name'] = ds_name; } if (typeof data_store_di.ds_type !== 'undefined') { data_store_do['type'] = data_store_di.ds_type; + } else { + data_store_do['type'] = ds_type; } if (typeof data_store_di.ds_for_type !== 'undefined' && data_store_di.ds_for_type) { @@ -268,7 +266,7 @@ async function handle_submit_form(event) { if (!$ae_ds_loc.id) { // Create console.log(`ae_ Data Store Create:`, data_store_do); - data_store_results = handle_create__data_store({ + ds_submit_results = handle_create__data_store({ obj_type: 'data_store', data: data_store_do }) @@ -294,7 +292,7 @@ async function handle_submit_form(event) { } else { // Update console.log(`ae_ Data Store Update:`, data_store_do); - data_store_results = handle_update__data_store({ + ds_submit_results = handle_update__data_store({ obj_type: 'data_store', obj_id: $ae_ds_loc.id, data: data_store_do @@ -437,7 +435,7 @@ async function handle_update__data_store({ value={$ae_ds_loc.id} /> - {#if $ae_loc.administrator_access} + {#if $ae_loc.trusted_access} + {/if} + {#if $ae_loc.administrator_access} - + {/if} + {#if $ae_loc.trusted_access} + {/if} + {#if $ae_loc.administrator_access} + {:else} + Code: {$ae_ds_loc.code} + + Type: {$ae_ds_loc.type} {/if} {#if $ae_ds_loc.type == 'html' || $ae_ds_loc.type == null} @@ -541,7 +548,8 @@ async function handle_update__data_store({ class="btn variant-soft-warning" on:click={() => { if (confirm('Are you sure you want to delete this data store?')) { - $slct_trigger = 'delete__ds__code'; + trigger = 'delete__ds__code'; + // $slct_trigger = 'delete__ds__code'; } show_edit = false; show_view = true; @@ -560,30 +568,31 @@ async function handle_update__data_store({ }} > - Cancel + Close - {#await data_store_results} + {#await ds_submit_results} - {:then data_store_results} - {#if data_store_results} + {:then ds_submit_results} + {#if ds_submit_results} Saved @@ -625,6 +634,7 @@ async function handle_update__data_store({ {/if} +{:else} {/if} @@ -650,6 +661,17 @@ async function handle_update__data_store({ {val_json} --> +{#await ds_get_results} + +{/await} + + + diff --git a/src/routes/events_badges/+page.svelte b/src/routes/events_badges/+page.svelte index b2e35091..499cb168 100644 --- a/src/routes/events_badges/+page.svelte +++ b/src/routes/events_badges/+page.svelte @@ -49,11 +49,12 @@ onMount(() => { ds_type="html" for_type="event" for_id={$slct.event_id} + ds_name="Default: Events Badges Example" store="local" display="block" class_li="variant-ghost-surface p-2" try_cache={true} - show_edit={true} + show_edit={false} /> diff --git a/src/routes/events_speakers/10_edit_modal__event_presenter_obj.svelte b/src/routes/events_speakers/10_edit_modal__event_presenter_obj.svelte index 362ce58d..3af3d332 100644 --- a/src/routes/events_speakers/10_edit_modal__event_presenter_obj.svelte +++ b/src/routes/events_speakers/10_edit_modal__event_presenter_obj.svelte @@ -4,15 +4,14 @@ import { onMount } from 'svelte'; import { fade } from 'svelte/transition'; -function number_w_commas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); -} - - // This works and uses local storage: // store_current_tab must be prefixed with $ to be reactive. import { clipboard, FileDropzone, getModalStore, localStorageStore, ProgressRadial, TabGroup, Tab, TabAnchor } from '@skeletonlabs/skeleton'; + import type { Writable } from 'svelte/store'; + +import Element_data_store from '$lib/element_data_store.svelte'; + const store_current_tab: Writable = localStorageStore('ae_events_speakers_current_tab', 'start'); console.log(`store_current_tab:`, $store_current_tab); @@ -52,7 +51,6 @@ onMount(() => { } }); -const cForm = 'border border-surface-200 p-4 space-y-4 rounded-container-token'; let ae_promises: key_val = {}; // Promise; @@ -555,7 +553,7 @@ async function handle_update__event_presenter({

The details provided will be used to list you as a speaker in our CHOW promotional materials and during CHOW in the event mobile app, speaker introductions, etc.