Working on dealing with the QR codes re-generating too easily.

This commit is contained in:
Scott Idem
2024-08-15 18:04:14 -04:00
parent 46cc89ad92
commit 002c283c68
5 changed files with 71 additions and 22 deletions

View File

@@ -34,10 +34,14 @@ export async function generate_qr_code(
log_lvl?: number
}
) {
console.log(`*** generate_qr_code() *** qr_id=${qr_id}`);
if (log_lvl) {
console.log(`*** generate_qr_code() *** qr_id=${qr_id}`);
}
let endpoint = `/qr/${account_id}/${qr_id}`;
console.log('Endpoint', endpoint);
if (log_lvl) {
console.log('Endpoint', endpoint);
}
let params: key_val = {
'regen': true, // Regenerate the file even if nothing has changed.
'return_file': return_blob,
@@ -73,7 +77,9 @@ export async function generate_qr_code(
params['str'] = str;
}
console.log('Params', params);
if (log_lvl) {
console.log('Params', params);
}
// let filename = `qr_${$ae_loc.account_id}_${qr_id}_${qr_type}.png`;
@@ -88,7 +94,7 @@ export async function generate_qr_code(
auto_download: false,
log_lvl: log_lvl
});
console.log('QR Badge ID done?');
console.log('QR code generated done!?');
if (return_blob) {
let img_blob = new Blob([ae_promises.generate_qr_code.data]);

View File

@@ -354,6 +354,9 @@ let events_session_data_struct: key_val = {
// Presentation Management (Distributing)
'pres_mgmt': {
presenter__url_str: null,
presenter__updated_on: null,
fulltext_search_qry_str: null,
status_qry__search: null,

View File

@@ -3,6 +3,8 @@
export let data: any;
// Imports
import { browser } from '$app/environment';
import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils';
import { api } from '$lib/api';
@@ -54,6 +56,13 @@ if (!$ae_loc.authenticated_access && $events_loc.pres_mgmt.show_content__present
$events_loc.pres_mgmt.show_content__presenter_view = null;
}
// if (browser && $lq__event_presenter_obj) {
// console.log('Pres Mgmt [page]: +presenter.svelte');
// $events_slct.event_presenter_obj = $lq__event_presenter_obj;
// console.log(`$events_slct.event_presenter_obj = `, $events_slct.event_presenter_obj);
// }
// Functions and Logic
</script>
@@ -87,7 +96,7 @@ if (!$ae_loc.authenticated_access && $events_loc.pres_mgmt.show_content__present
{@html $lq__event_presenter_obj?.full_name ?? ae_snip.html__not_set}
</h2>
{#if !$events_loc.pres_mgmt.show_content__presenter_view || $events_loc.pres_mgmt.show_content__presenter_view == 'default'}
{#if !$events_loc.pres_mgmt.show_content__presenter_view || $events_loc.pres_mgmt.show_content__presenter_view == 'default' && $lq__event_presenter_obj}
<Presenter_view
lq__event_presenter_obj={lq__event_presenter_obj}
lq__event_presentation_obj={lq__event_presentation_obj}

View File

@@ -1,6 +1,8 @@
<script lang="ts">
export let data: any;
import { goto } from '$app/navigation';
import type { key_val } from '$lib/ae_stores';
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv } from '$lib/ae_events_stores';
@@ -9,7 +11,7 @@ import { events_func } from '$lib/ae_events_functions';
import Element_ae_crud from '$lib/element_ae_crud.svelte';
import Element_data_store from '$lib/element_data_store.svelte';
import Sign_in_out from './sign_in_out.svelte';
import { goto } from '$app/navigation';
export let lq__event_presenter_obj: any;

View File

@@ -1,9 +1,11 @@
<script lang="ts">
console.log(`ae_events_pres_mgmt presenter_view.svelte`);
export let log_lvl = 1;
import { createEventDispatcher, onMount } from 'svelte';
import { clipboard, FileDropzone } from '@skeletonlabs/skeleton';
import { liveQuery } from "dexie";
import { browser } from '$app/environment';
const dispatch = createEventDispatcher();
@@ -29,6 +31,7 @@ export let lq__event_presentation_obj: any;
let ae_placeholder_li: key_val = {};
let ae_promises: key_val = {}; // Promise<any>;
let ae_promises_2: key_val = {}; // Promise<any>;
let ae_tmp: key_val = {};
ae_tmp.show__file_li = true;
@@ -67,9 +70,16 @@ let lq__event_file_obj_li = liveQuery(
// ae_tmp.biography = '';
ae_tmp.biography = null;
console.log(`ae_tmp.biography:`, ae_tmp.biography);
$: if ($lq__event_presenter_obj?.biography && ae_tmp.biography === null) {
// WHAT WAS THIS FOR HERE??? // ae_tmp.biography = JSON.parse(JSON.stringify($lq__event_presenter_obj?.biography ?? ''));
// ae_tmp.biography = $lq__event_presenter_obj?.biography ?? '';
// console.log(`ae_tmp.biography:`, ae_tmp.biography);
// $: if ($lq__event_presenter_obj?.biography && ae_tmp.biography === null) {
// // WHAT WAS THIS FOR HERE??? // ae_tmp.biography = JSON.parse(JSON.stringify($lq__event_presenter_obj?.biography ?? ''));
// ae_tmp.biography = $lq__event_presenter_obj?.biography ?? '';
// console.log(`ae_tmp.biography:`, ae_tmp.biography);
// }
$: if (browser && ae_tmp.biography === null && $lq__event_presenter_obj?.biography) {
ae_tmp.biography = $lq__event_presenter_obj?.biography ?? '';
console.log(`ae_tmp.biography:`, ae_tmp.biography);
}
@@ -168,7 +178,7 @@ async function handle_input_upload_files(input_upload_files) {
api_cfg: $ae_api,
hosted_file_id: hosted_file_id,
data: event_file_data,
log_lvl: 2
log_lvl: 1
})
.then(function (create_result) {
console.log(create_result); // NOTE: This should be the event_file_id string
@@ -250,10 +260,19 @@ async function handle_delete__event_file({event_file_id}) {
return ae_promises.delete__event_file_obj;
}
// $events_slct.event_presenter_obj = $lq__event_presenter_obj
ae_promises.generate_qr_code_url = null;
$: if ($lq__event_presenter_obj) {
if (log_lvl) {
console.log(`$lq__event_presenter_obj:`, $lq__event_presenter_obj);
}
// Generate a QR code for the object ID.
// ae_promises.generate_qr_code_obj_id = core_func.generate_qr_code({api_cfg: $ae_api, account_id: $slct.account_id, qr_type: 'obj', qr_id: $lq__event_presenter_obj?.event_presenter_id_random, obj_type: 'event_presenter', obj_id: $lq__event_presenter_obj?.event_presenter_id_random});
// if ($lq__event_presenter_obj?.updated_on != $events_slct?.event_presenter_obj?.updated_on) {
// Generate a QR code for the URL.
let qr_id_url = `${$lq__event_presenter_obj?.event_presenter_id_random}_url`;
@@ -261,7 +280,23 @@ $: if ($lq__event_presenter_obj) {
let url_str = `${$ae_loc.url_origin}/events_pres_mgmt/presenter/${$lq__event_presenter_obj?.event_presenter_id_random}`;
url_str = encodeURI(url_str);
ae_promises.generate_qr_code_url = core_func.generate_qr_code({api_cfg: $ae_api, account_id: $slct.account_id, qr_type: 'str', qr_id: qr_id_url, str: url_str});
// if ($events_sess.pres_mgmt.presenter__url_str == url_str) {
if ($lq__event_presenter_obj.updated_on == $events_sess.pres_mgmt.presenter__updated_on) {
if (log_lvl > 1) {
console.log('Updated on is the same.');
}
} else {
if (log_lvl) {
console.log('Updated on is different.');
}
ae_promises.generate_qr_code_url = core_func.generate_qr_code({api_cfg: $ae_api, account_id: $slct.account_id, qr_type: 'str', qr_id: qr_id_url, str: url_str});
$events_sess.pres_mgmt.presenter__url_str = url_str;
$events_sess.pres_mgmt.presenter__updated_on = $lq__event_presenter_obj.updated_on;
}
}
</script>
@@ -397,35 +432,29 @@ $: if ($lq__event_presenter_obj) {
</h3>
{#await ae_promises.generate_qr_code_obj_id}
<!-- {#await ae_promises.generate_qr_code_obj_id}
Generating...
{:then result}
{#if ae_promises.generate_qr_code_obj_id}
<!-- {img_obj_url} -->
<span class="float-right flex flex-col items-center justify-center">
<img
class="qr_code qr_type_obj_id h-32 w-32 hover:h-48 hover:w-48 hidden"
class="qr_code qr_type_obj_id h-32 w-32 hover:h-48 hover:w-48"
class:hidden={!$ae_loc.manager_access}
style=""
src={result}
alt="Object ID QR code"
/>
<!-- src="{$cfg.api['base_url']}/qr/{$client.account_id}/{event_badge_obj.event_badge_id_random}?filename=qr_{$client.account_id}_{event_badge_obj.event_badge_id_random}_mecard.png" -->
<!-- src={qr_img_src} -->
<!-- on:dblclick={() => {
// (hide_qr) ? hide_qr = !hide_qr : hide_qr;
(hide_qr) ? hide_qr = false : hide_qr = true;
}} -->
<span>
<span class="fas fa-qrcode"></span>
Presenter ID
</span>
</span>
{/if}
{/await}
{/await} -->
{#await ae_promises.generate_qr_code_url}
Generating...
<!-- Generating... -->
{:then result}
{#if ae_promises.generate_qr_code_url && $ae_loc.trusted_access}
<span class="float-right m-1 p-1 flex flex-col items-center justify-center outline outline-gray-200 *:hover:inline">