mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-08-05 13:15:18 +02:00
commit
885112f168
8 changed files with 123 additions and 92 deletions
|
@ -74,6 +74,9 @@ MIDDLEWARE = (
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# disable verifications for new users
|
||||||
|
ACCOUNT_EMAIL_VERIFICATION = 'none'
|
||||||
|
|
||||||
# For backwards compatibility for Django 1.8
|
# For backwards compatibility for Django 1.8
|
||||||
MIDDLEWARE_CLASSES = MIDDLEWARE
|
MIDDLEWARE_CLASSES = MIDDLEWARE
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@
|
||||||
) + 1}{' '}
|
) + 1}{' '}
|
||||||
days
|
days
|
||||||
</p>{/if}
|
</p>{/if}
|
||||||
|
<div class="badge badge-neutral">{collection.is_public ? 'Public' : 'Private'}</div>
|
||||||
<div class="card-actions justify-end">
|
<div class="card-actions justify-end">
|
||||||
{#if type != 'link'}
|
{#if type != 'link'}
|
||||||
<button on:click={deleteCollection} class="btn btn-secondary"
|
<button on:click={deleteCollection} class="btn btn-secondary"
|
||||||
|
|
|
@ -28,17 +28,15 @@
|
||||||
|
|
||||||
const searchGo = async (e: Event) => {
|
const searchGo = async (e: Event) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let reload: boolean = false;
|
|
||||||
|
|
||||||
if ($page.url.pathname === '/search') {
|
if ($page.url.pathname === '/search') {
|
||||||
reload = true;
|
let url = new URL(window.location.href);
|
||||||
|
url.searchParams.set('query', query);
|
||||||
|
goto(url.toString(), { invalidateAll: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query) {
|
if (query) {
|
||||||
await goto(`/search?query=${query}`);
|
goto(`/search?query=${query}`);
|
||||||
if (reload) {
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
>
|
>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h2 class="card-title overflow-ellipsis">{note.name}</h2>
|
<h2 class="card-title overflow-ellipsis">{note.name}</h2>
|
||||||
|
{#if note.links && note.links.length > 0}
|
||||||
|
<p>{note.links.length} links</p>
|
||||||
|
{/if}
|
||||||
<div class="card-actions justify-end">
|
<div class="card-actions justify-end">
|
||||||
<!-- <button class="btn btn-neutral mb-2" on:click={() => goto(`/notes/${note.id}`)}
|
<!-- <button class="btn btn-neutral mb-2" on:click={() => goto(`/notes/${note.id}`)}
|
||||||
><Launch class="w-6 h-6" />Open Details</button
|
><Launch class="w-6 h-6" />Open Details</button
|
||||||
|
@ -45,7 +48,7 @@
|
||||||
id="delete_adventure"
|
id="delete_adventure"
|
||||||
data-umami-event="Delete Adventure"
|
data-umami-event="Delete Adventure"
|
||||||
class="btn btn-warning"
|
class="btn btn-warning"
|
||||||
on:click={deleteNote}><TrashCan class="w-6 h-6" />Delete</button
|
on:click={deleteNote}><TrashCan class="w-6 h-6" /></button
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -164,11 +164,11 @@
|
||||||
{#if newNote.links.length > 0}
|
{#if newNote.links.length > 0}
|
||||||
<ul class="list-none">
|
<ul class="list-none">
|
||||||
{#each newNote.links as link, i}
|
{#each newNote.links as link, i}
|
||||||
<li class="mb-1">
|
<li class="mb-4">
|
||||||
<a href={link} target="_blank">{link}</a>
|
<a href={link} class="link link-primary" target="_blank">{link}</a>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-sm btn-error"
|
class="btn btn-sm btn-error absolute right-0 mr-4"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
newNote.links = newNote.links.filter((_, index) => index !== i);
|
newNote.links = newNote.links.filter((_, index) => index !== i);
|
||||||
}}
|
}}
|
||||||
|
@ -199,11 +199,11 @@
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<button class="btn btn-primary" on:click={save}>Save</button>
|
<button class="btn btn-primary mr-1" on:click={save}>Save</button>
|
||||||
<button class="btn btn-neutral" on:click={close}>Close</button>
|
<button class="btn btn-neutral" on:click={close}>Close</button>
|
||||||
|
|
||||||
{#if collection.is_public}
|
{#if collection.is_public}
|
||||||
<div role="alert" class="alert alert-info mt-4">
|
<div role="alert" class="alert mt-4">
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
fill="none"
|
fill="none"
|
||||||
|
|
|
@ -412,6 +412,9 @@
|
||||||
{#if collection.name}
|
{#if collection.name}
|
||||||
<h1 class="text-center font-extrabold text-4xl mb-2">{collection.name}</h1>
|
<h1 class="text-center font-extrabold text-4xl mb-2">{collection.name}</h1>
|
||||||
{/if}
|
{/if}
|
||||||
|
{#if collection.description}
|
||||||
|
<p class="text-center text-lg mb-2">{collection.description}</p>
|
||||||
|
{/if}
|
||||||
{#if adventures.length > 0}
|
{#if adventures.length > 0}
|
||||||
<div class="flex items-center justify-center mb-4">
|
<div class="flex items-center justify-center mb-4">
|
||||||
<div class="stats shadow bg-base-300">
|
<div class="stats shadow bg-base-300">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
import EditAdventure from '$lib/components/EditAdventure.svelte';
|
import EditAdventure from '$lib/components/EditAdventure.svelte';
|
||||||
import { appVersion } from '$lib/config';
|
import { appVersion } from '$lib/config';
|
||||||
import { goto, invalidate } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
export let data: PageData;
|
export let data: PageData;
|
||||||
|
|
||||||
|
@ -110,61 +110,61 @@
|
||||||
|
|
||||||
{#if myAdventures.length !== 0 && publicAdventures.length !== 0}
|
{#if myAdventures.length !== 0 && publicAdventures.length !== 0}
|
||||||
<h2 class="text-center font-bold text-2xl mb-4">AdventureLog Results</h2>
|
<h2 class="text-center font-bold text-2xl mb-4">AdventureLog Results</h2>
|
||||||
{/if}
|
<div class="flex items-center justify-center mt-2 mb-2">
|
||||||
<div class="flex items-center justify-center mt-2 mb-2">
|
<div class="join">
|
||||||
<div class="join">
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="All"
|
||||||
aria-label="All"
|
id="all"
|
||||||
id="all"
|
checked
|
||||||
checked
|
on:change={() => (property = 'all')}
|
||||||
on:change={() => (property = 'all')}
|
/>
|
||||||
/>
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="Name"
|
||||||
aria-label="Name"
|
id="name"
|
||||||
id="name"
|
on:change={() => (property = 'name')}
|
||||||
on:change={() => (property = 'name')}
|
/>
|
||||||
/>
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="Type"
|
||||||
aria-label="Type"
|
id="type"
|
||||||
id="type"
|
on:change={() => (property = 'type')}
|
||||||
on:change={() => (property = 'type')}
|
/>
|
||||||
/>
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="Location"
|
||||||
aria-label="Location"
|
id="location"
|
||||||
id="location"
|
on:change={() => (property = 'location')}
|
||||||
on:change={() => (property = 'location')}
|
/>
|
||||||
/>
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="Description"
|
||||||
aria-label="Description"
|
id="description"
|
||||||
id="description"
|
on:change={() => (property = 'description')}
|
||||||
on:change={() => (property = 'description')}
|
/>
|
||||||
/>
|
<input
|
||||||
<input
|
class="join-item btn"
|
||||||
class="join-item btn"
|
type="radio"
|
||||||
type="radio"
|
name="filter"
|
||||||
name="filter"
|
aria-label="Activity Types"
|
||||||
aria-label="Activity Types"
|
id="activity_types"
|
||||||
id="activity_types"
|
on:change={() => (property = 'activity_types')}
|
||||||
on:change={() => (property = 'activity_types')}
|
/>
|
||||||
/>
|
</div>
|
||||||
|
<button class="btn btn-primary ml-2" type="button" on:click={filterByProperty}>Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary ml-2" type="button" on:click={filterByProperty}>Filter</button>
|
{/if}
|
||||||
</div>
|
|
||||||
|
|
||||||
{#if myAdventures.length > 0}
|
{#if myAdventures.length > 0}
|
||||||
<h2 class="text-center font-bold text-2xl mb-4">My Adventures</h2>
|
<h2 class="text-center font-bold text-2xl mb-4">My Adventures</h2>
|
||||||
|
@ -199,7 +199,7 @@
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
{/if}
|
{/if}
|
||||||
{#if osmResults.length > 0}
|
{#if osmResults.length > 0}
|
||||||
<h2 class="text-center font-bold text-2xl mb-4">Online Results</h2>
|
<h2 class="text-center font-bold mt-2 text-2xl mb-4">Online Results</h2>
|
||||||
<div class="flex flex-wrap gap-4 mr-4 justify-center content-center">
|
<div class="flex flex-wrap gap-4 mr-4 justify-center content-center">
|
||||||
{#each osmResults as result}
|
{#each osmResults as result}
|
||||||
<div class="bg-base-300 rounded-lg shadow-md p-4 w-96 mb-2">
|
<div class="bg-base-300 rounded-lg shadow-md p-4 w-96 mb-2">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { enhance } from '$app/forms';
|
import { enhance } from '$app/forms';
|
||||||
|
import { goto } from '$app/navigation';
|
||||||
import { page } from '$app/stores';
|
import { page } from '$app/stores';
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
|
|
||||||
|
@ -7,29 +8,51 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<h1 class="text-center font-bold text-4xl mb-4">Change Password</h1>
|
<h1 class="text-center font-bold text-4xl mb-4">Change Password</h1>
|
||||||
<form action="?/reset" method="post" use:enhance>
|
|
||||||
<input type="hidden" name="uid" value={data.props.uid} />
|
{#if data.props.token && data.props.uid}
|
||||||
<input type="hidden" name="token" value={data.props.token} />
|
<p class="text-center">You will then be redirected to the login page.</p>
|
||||||
<div class="flex items-center justify-center gap-4">
|
<div
|
||||||
<input
|
class="modal-action items-center"
|
||||||
type="password"
|
style="display: flex; flex-direction: column; align-items: center; width: 100%;"
|
||||||
class="input input-bordered w-full max-w-xs"
|
>
|
||||||
id="new_password1"
|
<form action="?/reset" method="post" use:enhance>
|
||||||
name="new_password1"
|
<input type="hidden" name="uid" value={data.props.uid} />
|
||||||
placeholder="New Password"
|
<input type="hidden" name="token" value={data.props.token} />
|
||||||
/>
|
|
||||||
<input
|
<div class="mb-2 w-full">
|
||||||
type="password"
|
<input
|
||||||
class="input input-bordered w-full max-w-xs"
|
type="password"
|
||||||
id="new_password2"
|
class="input input-bordered w-full"
|
||||||
name="new_password2"
|
id="new_password1"
|
||||||
placeholder="Confirm Password"
|
name="new_password1"
|
||||||
/>
|
placeholder="New Password"
|
||||||
<button type="submit" class="btn btn-primary"> Submit </button>
|
/>
|
||||||
{#if $page.form?.message}
|
|
||||||
<div class="text-center text-error mt-4">
|
|
||||||
{$page.form?.message}
|
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
<div class="mb-2 w-full">
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
class="input input-bordered w-full"
|
||||||
|
id="new_password2"
|
||||||
|
name="new_password2"
|
||||||
|
placeholder="Confirm Password"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary w-full">Submit</button>
|
||||||
|
{#if $page.form?.message}
|
||||||
|
<div class="text-center text-error mt-4">
|
||||||
|
{$page.form?.message}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
{:else}
|
||||||
|
<div class="flex justify-center">
|
||||||
|
<div class="items-center justify-center">
|
||||||
|
<p class="text-center">Token and UID are required for password reset.</p>
|
||||||
|
|
||||||
|
<button class="btn btn-neutral" on:click={() => goto('/settings/forgot-password')}>
|
||||||
|
Reset Password
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue