More significant updates to the general layout and styling per module.
This commit is contained in:
@@ -32,11 +32,12 @@ import type { key_val } from '$lib/ae_stores';
|
||||
import { ae_loc, ae_sess, ae_api, slct } from '$lib/ae_stores';
|
||||
import Element_data_store from '$lib/element_data_store_v2.svelte';
|
||||
import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv } from '$lib/ae_events_stores';
|
||||
interface Props {
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
data: any;
|
||||
children?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
interface Props {
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
data: any;
|
||||
children?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
let { data, children }: Props = $props();
|
||||
// import { events_func } from '$lib/ae_events_functions';
|
||||
@@ -142,7 +143,12 @@ if (browser) {
|
||||
> -->
|
||||
<div
|
||||
class:iframe={$ae_loc?.iframe}
|
||||
class="ae_events h-full max-h-full max-w-6xl overflow-auto flex flex-col gap-1 m-auto"
|
||||
class="
|
||||
ae_events
|
||||
h-full max-h-full max-w-6xl overflow-auto
|
||||
flex flex-col gap-1
|
||||
m-auto
|
||||
"
|
||||
>
|
||||
|
||||
|
||||
|
||||
97
src/routes/hosted_files/+layout.svelte
Normal file
97
src/routes/hosted_files/+layout.svelte
Normal file
@@ -0,0 +1,97 @@
|
||||
<script lang="ts">
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
let log_lvl: number = 1;
|
||||
|
||||
// *** Import Svelte specific
|
||||
// import { browser } from '$app/environment';
|
||||
|
||||
// *** Import other supporting libraries
|
||||
// import * as icons from '@lucide/svelte';
|
||||
import {
|
||||
Brain,
|
||||
House, Library,
|
||||
RefreshCw,
|
||||
Satellite
|
||||
} from '@lucide/svelte';
|
||||
|
||||
// *** Import Aether specific variables and functions
|
||||
// import type { key_val } from '$lib/ae_stores';
|
||||
// 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 { core_func } from '$lib/ae_core/ae_core_functions';
|
||||
import Element_data_store from '$lib/element_data_store_v2.svelte';
|
||||
|
||||
interface Props {
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
data: any;
|
||||
children?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
let { data, children }: Props = $props();
|
||||
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Hosted Files - {$ae_loc?.title ?? 'Æ loading...'}</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<div
|
||||
id="ae_hosted_files"
|
||||
class:iframe={$ae_loc?.iframe}
|
||||
class="
|
||||
ae_hosted_files
|
||||
h-full max-h-full max-w-6xl overflow-auto
|
||||
flex flex-col gap-1
|
||||
m-auto
|
||||
"
|
||||
>
|
||||
|
||||
|
||||
<nav
|
||||
class="
|
||||
submenu
|
||||
flex flex-row flex-wrap
|
||||
items-center justify-between
|
||||
gap-1
|
||||
border-b-2
|
||||
p-1
|
||||
px-2
|
||||
pb-2
|
||||
"
|
||||
>
|
||||
<span class="justify-self-start">
|
||||
|
||||
<!-- Be sure to explain what Æ (Aether) means in the title text or similar! -->
|
||||
<Satellite
|
||||
size="1.5em"
|
||||
class="mx-1 inline-block text-gray-500"
|
||||
/>
|
||||
<abbr title="Aether - Hosted Files Module">
|
||||
Æ
|
||||
Hosted Files
|
||||
</abbr>
|
||||
</span>
|
||||
<!-- <Element_data_store
|
||||
ds_code="hub__site__appshell_header"
|
||||
ds_type="html"
|
||||
/> -->
|
||||
<a
|
||||
href="/"
|
||||
class="btn btn-sm preset-tonal-surface border border-surface-500 hover:preset-filled-success-500"
|
||||
>
|
||||
<House />
|
||||
<span class="hidden md:inline">
|
||||
Home
|
||||
</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<section
|
||||
class:iframe={$ae_loc?.iframe}
|
||||
class="main_content grow px-1 md:px-2 pb-28"
|
||||
>
|
||||
{@render children?.()}
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@@ -91,7 +91,7 @@ onMount(() => {
|
||||
</script>
|
||||
|
||||
|
||||
<section
|
||||
<!-- <section
|
||||
class="
|
||||
ae__hosted_files__av_util
|
||||
space-y-4
|
||||
@@ -105,9 +105,9 @@ onMount(() => {
|
||||
max-w-6xl
|
||||
overflow-auto
|
||||
"
|
||||
>
|
||||
> -->
|
||||
|
||||
<div class="border border-gray-200 p-2 rounded-lg">
|
||||
<!-- <div class="border border-gray-200 p-2 rounded-lg"> -->
|
||||
<h1 class="h1">Æ Hosted Files</h1>
|
||||
|
||||
<h2 class="h2">Video Utilities</h2>
|
||||
@@ -118,6 +118,7 @@ onMount(() => {
|
||||
Video Utilities
|
||||
</a>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2 class="h2">Manage Files</h2>
|
||||
|
||||
@@ -126,10 +127,10 @@ onMount(() => {
|
||||
link_to_id={$ae_loc?.account_id}
|
||||
allow_basic={true}
|
||||
allow_moderator={true}
|
||||
class_li={''}
|
||||
class_li={'max-h-full'}
|
||||
/>
|
||||
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
{#if 1===2}
|
||||
@@ -195,9 +196,4 @@ onMount(() => {
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<!-- </section> -->
|
||||
|
||||
@@ -117,7 +117,7 @@ onMount(() => {
|
||||
</script>
|
||||
|
||||
|
||||
<section
|
||||
<!-- <section
|
||||
class="
|
||||
ae__hosted_files__av_util
|
||||
space-y-4
|
||||
@@ -131,9 +131,10 @@ onMount(() => {
|
||||
max-w-6xl
|
||||
overflow-auto
|
||||
"
|
||||
>
|
||||
> -->
|
||||
|
||||
<!-- <div class="border border-gray-200 p-2 rounded-lg"> -->
|
||||
|
||||
<div class="border border-gray-200 p-2 rounded-lg">
|
||||
<h1 class="h1">Clip and Scale Video Files</h1>
|
||||
<p>This AV utility will take an mp4 video file and create a clipped mp4 video file. By default, videos will be scaled down to 1920x1080. This process takes at least 30 seconds, but it can easily take a handful of minutes. The scaling option requires that the video be re-encoded. Please be patient while it is processing.</p>
|
||||
|
||||
@@ -259,7 +260,7 @@ onMount(() => {
|
||||
<p>Clip a video file first.</p>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
{#if 1===2}
|
||||
@@ -325,9 +326,4 @@ onMount(() => {
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<!-- </section> -->
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<script lang="ts">
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
let log_lvl: number = 0;
|
||||
if (log_lvl > 1) {
|
||||
console.log(`ae_idaa_archives +layout.svelte`);
|
||||
console.log(`ae_idaa_archives +layout.svelte`, data);
|
||||
}
|
||||
|
||||
// *** Import Aether specific variables and functions
|
||||
@@ -18,6 +17,8 @@ interface Props {
|
||||
let { data, children }: Props = $props();
|
||||
|
||||
// *** Quickly pull out data from parent(s)
|
||||
$slct.account_id = data.account_id;
|
||||
|
||||
let ae_acct = data[$slct.account_id];
|
||||
if (log_lvl) {
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
@@ -27,15 +28,21 @@ $idaa_slct.archive_obj_li = ae_acct.slct.archive_obj_li;
|
||||
// $idaa_slct.archive_id = ae_acct.slct.archive_id; // Not set here yet.
|
||||
|
||||
// *** Set initial variables
|
||||
// if (browser) {
|
||||
// $idaa_loc.novi_uuid = data.params.uuid;
|
||||
// $idaa_loc.novi_email = decodeURIComponent(data.params.email);
|
||||
// $idaa_loc.novi_full_name = decodeURIComponent(data.params.full_name);
|
||||
// // $idaa_loc.novi_admin_li = novi_admin_li;
|
||||
// // $idaa_loc.novi_trusted_li = novi_trusted_li;
|
||||
// console.log(`$idaa_loc.novi_uuid:`, $idaa_loc.novi_uuid);
|
||||
// }
|
||||
</script>
|
||||
|
||||
<!-- <div
|
||||
class="
|
||||
ae_idaa__archives
|
||||
container h-full mx-auto
|
||||
flex flex-col gap-1
|
||||
items-center
|
||||
justify_center
|
||||
py-1 px-2 pb-16
|
||||
min-w-full
|
||||
max-w-max
|
||||
"
|
||||
> -->
|
||||
|
||||
{@render children?.()}
|
||||
|
||||
<!-- </div> -->
|
||||
@@ -130,20 +130,6 @@ function add_activity_log(
|
||||
</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<section
|
||||
class="
|
||||
ae_idaa__archives
|
||||
container h-full mx-auto
|
||||
flex flex-col gap-1
|
||||
items-center
|
||||
justify_center
|
||||
py-1 px-2 pb-16
|
||||
min-w-full
|
||||
max-w-max
|
||||
"
|
||||
>
|
||||
|
||||
<!-- <h1>Archives {$lq__archive_obj_li?.length}</h1> -->
|
||||
|
||||
{#if $lq__archive_obj_li && $lq__archive_obj_li?.length}
|
||||
@@ -153,6 +139,3 @@ function add_activity_log(
|
||||
{:else}
|
||||
<p>No archives available to show.</p>
|
||||
{/if}
|
||||
|
||||
|
||||
</section>
|
||||
@@ -156,7 +156,6 @@ if (browser) {
|
||||
let message = {'archive_id': $idaa_slct?.archive_id ?? null};
|
||||
window.parent.postMessage(message, "*");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@@ -168,8 +167,7 @@ if (browser) {
|
||||
</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<section
|
||||
<!-- <section
|
||||
class="
|
||||
ae_idaa__archives
|
||||
h-full mx-auto
|
||||
@@ -182,7 +180,7 @@ if (browser) {
|
||||
text-center
|
||||
outline
|
||||
"
|
||||
>
|
||||
> -->
|
||||
|
||||
<!-- <h1>Archives {$lq__archive_obj?.name} - {$lq__archive_content_obj_li?.length}</h1> -->
|
||||
|
||||
@@ -205,7 +203,7 @@ if (browser) {
|
||||
lq__archive_content_obj_li={lq__archive_content_obj_li}
|
||||
/>
|
||||
|
||||
</section>
|
||||
<!-- </section> -->
|
||||
|
||||
|
||||
<!-- Modal: Archive edit ID -->
|
||||
|
||||
@@ -1,23 +1,34 @@
|
||||
<script lang="ts">
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
export let data: any;
|
||||
let log_lvl: number = 0;
|
||||
if (log_lvl > 1) {
|
||||
console.log(`ae_idaa_bulletin_board +layout.svelte data:`, data);
|
||||
console.log(`ae_idaa_bulletin_board +layout.svelte`, data);
|
||||
}
|
||||
|
||||
// *** Import Aether specific variables and functions
|
||||
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';
|
||||
|
||||
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
||||
interface Props {
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
data: any;
|
||||
children?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
let { data, children }: Props = $props();
|
||||
|
||||
// *** Quickly pull out data from parent(s)
|
||||
$slct.account_id = data.account_id;
|
||||
// console.log(`$slct.account_id = `, $slct.account_id);
|
||||
|
||||
let ae_acct = data[$slct.account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
if (log_lvl) {
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
}
|
||||
|
||||
$idaa_slct.post_obj_li = ae_acct.slct.post_obj_li;
|
||||
// $idaa_slct.post_id = ae_acct.slct.post_id; // Not set here yet.
|
||||
|
||||
// *** Set initial variables
|
||||
</script>
|
||||
|
||||
|
||||
<slot />
|
||||
{@render children?.()}
|
||||
|
||||
@@ -240,7 +240,6 @@ function add_activity_log(
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<svelte:head>
|
||||
<title>
|
||||
IDAA Bulletin Board:
|
||||
@@ -248,8 +247,7 @@ function add_activity_log(
|
||||
</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<section
|
||||
<!-- <section
|
||||
class="
|
||||
ae_idaa__bb
|
||||
container h-full mx-auto
|
||||
@@ -259,7 +257,7 @@ function add_activity_log(
|
||||
min-w-full
|
||||
max-w-max
|
||||
"
|
||||
>
|
||||
> -->
|
||||
|
||||
|
||||
<Comp__post_options
|
||||
@@ -276,7 +274,7 @@ function add_activity_log(
|
||||
{/if}
|
||||
|
||||
|
||||
</section>
|
||||
<!-- </section> -->
|
||||
|
||||
|
||||
<!-- Modal: Post (Bulletin Board) view ID -->
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
<script lang="ts">
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
export let data: any;
|
||||
let log_lvl: number = 0;
|
||||
if (log_lvl > 1) {
|
||||
console.log(`ae_idaa_recovery_meetings +layout.svelte data:`, data);
|
||||
console.log(`ae_idaa_recovery_meetings +layout.svelte`, data);
|
||||
}
|
||||
|
||||
// import { browser } from '$app/environment';
|
||||
|
||||
// *** Import Aether specific variables and functions
|
||||
// import type { key_val } from '$lib/ae_stores';
|
||||
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
|
||||
@@ -19,15 +16,27 @@ import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$
|
||||
// import { events_func } from '$lib/ae_events_functions';
|
||||
import { idaa_loc, idaa_sess, idaa_slct } from '$lib/ae_idaa_stores';
|
||||
|
||||
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
||||
interface Props {
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
data: any;
|
||||
children?: import('svelte').Snippet;
|
||||
}
|
||||
|
||||
let { data, children }: Props = $props();
|
||||
|
||||
// *** Quickly pull out data from parent(s)
|
||||
$slct.account_id = data.account_id;
|
||||
// console.log(`$slct.account_id = `, $slct.account_id);
|
||||
|
||||
let ae_acct = data[$slct.account_id];
|
||||
// console.log(`ae_acct = `, ae_acct);
|
||||
if (log_lvl) {
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
}
|
||||
|
||||
$idaa_slct.event_obj_li = ae_acct.slct.event_obj_li;
|
||||
// $idaa_slct.event_id = ae_acct.slct.event_id; // Not set here yet.
|
||||
|
||||
// *** Set initial variables
|
||||
</script>
|
||||
|
||||
|
||||
<slot />
|
||||
{@render children?.()}
|
||||
|
||||
@@ -442,9 +442,7 @@ function add_activity_log(
|
||||
</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
|
||||
<div
|
||||
<!-- <div
|
||||
class="
|
||||
ae_idaa__recovery_meetings
|
||||
container h-full mx-auto
|
||||
@@ -455,13 +453,12 @@ function add_activity_log(
|
||||
min-w-full
|
||||
max-w-max
|
||||
"
|
||||
>
|
||||
> -->
|
||||
|
||||
<Comp__event_obj_qry
|
||||
bind:event_id_random_li={event_id_random_li}
|
||||
/>
|
||||
|
||||
|
||||
<Element_data_store
|
||||
ds_code="recovery_meetings_info"
|
||||
ds_type="html"
|
||||
@@ -469,7 +466,6 @@ function add_activity_log(
|
||||
show_edit_btn={true}
|
||||
/>
|
||||
|
||||
|
||||
{#if $lq_new__event_obj_li && $lq_new__event_obj_li?.length}
|
||||
<Comp__event_obj_li
|
||||
lq__event_obj_li={lq_new__event_obj_li}
|
||||
@@ -479,7 +475,7 @@ function add_activity_log(
|
||||
{/if}
|
||||
|
||||
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
<!-- Modal: Event (Recovery Meeting) edit ID -->
|
||||
|
||||
@@ -182,6 +182,15 @@ $effect(() => {
|
||||
// });
|
||||
});
|
||||
|
||||
// if (browser) {
|
||||
// $idaa_loc.novi_uuid = data.params.uuid;
|
||||
// $idaa_loc.novi_email = decodeURIComponent(data.params.email);
|
||||
// $idaa_loc.novi_full_name = decodeURIComponent(data.params.full_name);
|
||||
// // $idaa_loc.novi_admin_li = novi_admin_li;
|
||||
// // $idaa_loc.novi_trusted_li = novi_trusted_li;
|
||||
// console.log(`$idaa_loc.novi_uuid:`, $idaa_loc.novi_uuid);
|
||||
// }
|
||||
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
@@ -196,7 +205,12 @@ $effect(() => {
|
||||
bind:this={box}
|
||||
onscroll={parse_scroll}
|
||||
class:iframe={$ae_loc?.iframe}
|
||||
class="ae_idaa h-full max-h-full max-w-6xl overflow-auto flex flex-col gap-1 m-auto"
|
||||
class="
|
||||
ae_idaa
|
||||
h-full max-h-full max-w-6xl overflow-auto
|
||||
flex flex-col gap-1
|
||||
m-auto
|
||||
"
|
||||
>
|
||||
|
||||
<nav
|
||||
@@ -299,16 +313,19 @@ $effect(() => {
|
||||
</div>
|
||||
<!-- </AppShell> -->
|
||||
|
||||
|
||||
<!-- bottom-4 -->
|
||||
<button
|
||||
class="ae_idaa__recovery_meetings__scroll_top_btn btn btn-sm btn-secondary preset-tonal-surface fixed bottom-4 right-24 z-50 opacity-75 hover:opacity-100"
|
||||
class:hidden={yTop < 600}
|
||||
class="ae_idaa__recovery_meetings__scroll_top_btn btn btn-sm btn-secondary preset-tonal-surface fixed top-1/2 right-1 z-50 opacity-75 hover:opacity-100"
|
||||
class:hidden={yTop < 750}
|
||||
class:ae_btn_warning_outlined={is_safari}
|
||||
class:ae_btn_success_outlined={!is_safari}
|
||||
class:ae_btn_warning_filled={yTop > 1500}
|
||||
onclick={() => {
|
||||
log_lvl = 1;
|
||||
if (log_lvl) {
|
||||
console.log(`Scroll to top button clicked. scroll_y: ${scroll_y} scrollTop: ${scroll_container().scrollTop}`, scroll_container());
|
||||
// document.getElementById('ae_idaa')?.scrollTo(0, 0);
|
||||
// document.documentElement?.scrollTo(0, 0);
|
||||
// document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
|
||||
// document.body.scrollTop = 0; // For Safari
|
||||
}
|
||||
@@ -316,48 +333,13 @@ $effect(() => {
|
||||
if (is_safari) {
|
||||
console.log('Safari detected, not using smooth scroll to top');
|
||||
document.getElementById('ae_idaa')?.scrollTo(0, 0);
|
||||
|
||||
// document.documentElement?.scrollTo(0, 0);
|
||||
// document.body?.scrollTo(0, 0); // For Safari
|
||||
|
||||
// if ($ae_loc.edit_mode) {
|
||||
// // If in edit mode, scroll to the top of the page
|
||||
// document.getElementById('ae_idaa')?.scrollTo(0, 0);
|
||||
// } else {
|
||||
// // If not in edit mode, scroll to the top of document element
|
||||
// document.documentElement?.scrollTo(0, 0);
|
||||
// }
|
||||
} else {
|
||||
console.log('Not Safari, using smooth scroll to top');
|
||||
document.getElementById('ae_idaa')?.scrollTo({
|
||||
top: 0,
|
||||
behavior: 'smooth'
|
||||
});
|
||||
|
||||
// if ($ae_loc.edit_mode) {
|
||||
|
||||
// document.getElementById('ae_idaa')?.scrollTo({
|
||||
// top: 0,
|
||||
// behavior: 'smooth'
|
||||
// });
|
||||
// } else {
|
||||
// document.documentElement?.scrollTo({
|
||||
// top: 0,
|
||||
// behavior: 'smooth'
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
// go_top();
|
||||
// window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||
// window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||
|
||||
// document.body.scrollIntoView();
|
||||
// document.body.scrollTop = 0; // For Safari
|
||||
// console.l
|
||||
|
||||
// scroll_y = 0;
|
||||
}}
|
||||
title="Scroll to top"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user