1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-08-05 13:15:18 +02:00

Merge pull request #160 from seanmorley15/development

Development
This commit is contained in:
Sean Morley 2024-08-04 22:00:04 -04:00 committed by GitHub
commit 885112f168
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 123 additions and 92 deletions

View file

@ -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

View file

@ -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"

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -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">

View file

@ -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">

View file

@ -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}