More work on reports and config options

This commit is contained in:
Scott Idem
2025-09-08 17:43:30 -04:00
parent 438d366b98
commit f842392aac
5 changed files with 144 additions and 102 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "osit-aether-app-svelte",
"version": "3.1.0",
"version": "3.1.1",
"description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem",
"homepage": "https://oneskyit.com/",
"private": true,

View File

@@ -191,11 +191,11 @@ export async function get_ae_obj_li_for_obj_id_crud_v2(
headers['order_by_li'] = JSON.stringify(order_by_li);
}
if (limit >= 0) {
if (limit > 0) {
params['limit'] = limit;
}
if (offset >= 0) {
if (offset > 0) {
params['offset'] = offset;
}

View File

@@ -387,7 +387,7 @@ export async function qry__event_file(
qry_file_purpose = null,
enabled = 'enabled',
hidden = 'not_hidden',
limit = 50,
limit = 49,
offset = 0,
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC', 'filename': 'ASC', 'extension': 'ASC', 'hosted_file_size': 'ASC'},
params = {},
@@ -451,6 +451,10 @@ export async function qry__event_file(
params_json['qry'].push(qry_param);
}
// if (!limit || limit <= 0) {
// limit = null;
// }
if (log_lvl) {
console.log('params_json:', params_json);
}

View File

@@ -122,6 +122,7 @@ async function handle_qry__event_file(
file_purpose = null,
ft_search_str = '',
lk_search_str = '',
limit = $events_loc.pres_mgmt.qry_limit__files ?? 0,
try_cache = true,
log_lvl = 0,
}: {
@@ -130,6 +131,7 @@ async function handle_qry__event_file(
file_purpose?: null|string,
ft_search_str?: string,
lk_search_str?: string,
limit?: number,
try_cache?: boolean,
log_lvl?: number,
}
@@ -195,7 +197,7 @@ async function handle_qry__event_file(
// external_event_id: $events_loc.pres_mgmt.default__external_registration_id,
enabled: $events_loc.pres_mgmt.qry_enabled ?? 'enabled',
hidden: $events_loc.pres_mgmt.qry_hidden ?? 'not_hidden',
limit: $events_loc.pres_mgmt.qry_limit__files ?? 35,
limit: limit,
// params: params,
try_cache: try_cache,
log_lvl: log_lvl,
@@ -931,107 +933,117 @@ async function handle_qry__event_session(
<!-- Show overview of presenters (status checklist) -->
{#if $events_loc.pres_mgmt.show_report == 'presenters_overview' && $events_sess.event_presenter_obj_li}
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
<h3 class="h4 text-center">
Presenters Overview
<!-- Sorting options (presenter name, start_datetime, updated_on) -->
<label class="label text-sm">
<span class="fas fa-sort m-1"></span>
Sort by:
</h3>
{#if $events_sess.pres_mgmt.status_rpt[$events_sess.pres_mgmt?.show_report] == 'loading'}
<span class="fas fa-spinner fa-spin m-1"></span>
<span>Loading...</span>
{/if}
<div class="flex flex-row items-center justify-center">
<!-- Sorting options (presenter name, start_datetime, updated_on) -->
<label class="label text-sm">
<span class="fas fa-sort m-1"></span>
Sort by:
<select
class="inline-block select text-sm w-36 m-1 ae_btn_info"
class="inline-block select text-sm w-36 px-1 m-1 ae_btn_info"
bind:value={$events_loc.pres_mgmt.qry__presenter_sort}
onchange={(event) => {
if (event.target.value) {
$events_loc.pres_mgmt.qry__presenter_sort = event.target.value;
} else {
$events_loc.pres_mgmt.qry__presenter_sort = 'updated_on';
}
if (event.target.value) {
$events_loc.pres_mgmt.qry__presenter_sort = event.target.value;
} else {
$events_loc.pres_mgmt.qry__presenter_sort = 'updated_on';
}
if ($events_loc.pres_mgmt.qry__presenter_sort == 'updated_on') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'given_name') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'given_name': 'ASC',
'family_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'family_name') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'family_name': 'ASC',
'given_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'email') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'email': 'ASC',
'given_name': 'ASC',
'family_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'created_on': 'DESC',
if ($events_loc.pres_mgmt.qry__presenter_sort == 'updated_on') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'given_name') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'given_name': 'ASC',
'family_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'family_name') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'family_name': 'ASC',
'given_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'email': 'ASC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'email') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'email': 'ASC',
'given_name': 'ASC',
'family_name': 'ASC',
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'created_on': 'DESC',
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'start_datetime') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'event_presentation_start_datetime': 'ASC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'updated_on': 'DESC',
'created_on': 'DESC',
};
} else {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'created_on': 'DESC',
};
}
ae_promises.handle_search__event_presenter = handle_search__event_presenter({
// ft_search_str: '',
// lk_search_str: '',
order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
log_lvl: log_lvl,
});
$events_loc.pres_mgmt.show_report = 'presenters_overview';
}}
>
<option value="updated_on">Updated On</option>
<option value="given_name">Given Name</option>
<option value="family_name">Family Name</option>
<option value="email">Email</option>
<option value="start_datetime">Start Date Time</option>
<!-- <option value="created_on">Created On</option> -->
<!-- <option value="sort">Sort</option> -->
<!-- <option value="priority">Priority</option> -->
</select>
</label>
};
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'start_datetime') {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'event_presentation_start_datetime': 'ASC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'updated_on': 'DESC',
'created_on': 'DESC',
};
} else {
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
'updated_on': 'DESC',
'priority': 'DESC',
'sort': 'DESC',
'given_name': 'ASC',
'family_name': 'ASC',
'email': 'ASC',
'created_on': 'DESC',
};
}
ae_promises.handle_search__event_presenter = handle_search__event_presenter({
// ft_search_str: '',
// lk_search_str: '',
order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
log_lvl: log_lvl,
});
$events_loc.pres_mgmt.show_report = 'presenters_overview';
}}
>
<option value="updated_on">Updated On</option>
<option value="given_name">Given Name</option>
<option value="family_name">Family Name</option>
<option value="email">Email</option>
<option value="start_datetime">Start Date Time</option>
<!-- <option value="created_on">Created On</option> -->
<!-- <option value="sort">Sort</option> -->
<!-- <option value="priority">Priority</option> -->
</select>
</label>
</div>
</header>
</h3>
<Comp_event_presenter_obj_tbl
bind:event_presenter_obj_li={$events_sess.event_presenter_obj_li}
show_presentation_fields={true}
@@ -1055,7 +1067,7 @@ async function handle_qry__event_session(
<!-- Show list of offsets: 10 minutes, 1 hours, 6 hours, 12 hours, 24 hours, 48 hours, 72 hours -->
<div class="flex flex-row items-center justify-center">
<select
class="inline-block select text-sm p-1 w-40 m-1 ae_btn_info"
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
bind:value={$events_loc.pres_mgmt.qry__files_offset_seconds}
onchange={() => {
if ($events_loc.pres_mgmt?.qry__files_offset_seconds) {
@@ -1100,7 +1112,7 @@ async function handle_qry__event_session(
<select
id="file_purpose"
name="file_purpose"
class="inline-block select text-sm w-40 p-1 m-1 ae_btn_info"
class="inline-block select text-sm w-40 px-1 m-1 ae_btn_info"
bind:value={$events_loc.pres_mgmt.qry__file_purpose}
onchange={() => {
handle_qry__event_file({
@@ -1130,6 +1142,32 @@ async function handle_qry__event_session(
{/each}
{/if}
</select>
<!-- Max files select options -->
<select
id="qry_limit__files"
bind:value={$events_loc.pres_mgmt.qry_limit__files}
class="inline-block select text-sm px-1 w-40 m-1 ae_btn_info"
onchange={() => {
handle_qry__event_file({
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
file_purpose: $events_loc.pres_mgmt.qry__file_purpose ?? null,
limit: $events_loc.pres_mgmt.qry_limit__files ?? 100,
log_lvl: log_lvl,
});
$events_loc.pres_mgmt.show_report = 'recent_files';
}}
>
<option value={0}>-- max not set --</option>
<option value={25}>25 files</option>
<option value={50}>50 files</option>
<option value={75}>75 files</option>
<option value={100}>100 files</option>
<option value={200}>200 files</option>
<option value={500}>500 files</option>
</select>
</div>
</header>

View File

@@ -57,7 +57,7 @@ export let hide: boolean = true;
<select
id="qry_limit__presenters"
bind:value={$events_loc.pres_mgmt.qry_limit__presenters}
class="select w-20 text-sm preset-tonal-surface"
class="select w-20 text-sm preset-tonal-surface px-1"
>
<option value={25}>25</option>
<option value={50}>50</option>
@@ -82,7 +82,7 @@ export let hide: boolean = true;
<select
id="qry_limit__sessions"
bind:value={$events_loc.pres_mgmt.qry_limit__sessions}
class="select w-20 text-sm preset-tonal-surface"
class="select w-20 text-sm preset-tonal-surface px-1"
>
<option value={25}>25</option>
<option value={50}>50</option>
@@ -105,7 +105,7 @@ export let hide: boolean = true;
<select
id="qry_limit__files"
bind:value={$events_loc.pres_mgmt.qry_limit__files}
class="select w-20 text-sm preset-tonal-surface"
class="select w-20 text-sm preset-tonal-surface px-1"
>
<option value={25}>25</option>
<option value={50}>50</option>