From 01b0d499133a398ad0ef161bc4fd594073b1ea53 Mon Sep 17 00:00:00 2001 From: Christian Beutel <> Date: Sat, 9 Nov 2024 12:56:11 +0100 Subject: [PATCH] adds elevation loss for trails --- CHANGELOG.md | 12 +++- db/migrations/1731151547_updated_trails.go | 55 +++++++++++++++++++ web/src/lib/components/base/calendar.svelte | 2 +- .../summit_log/summit_log_table_row.svelte | 8 +-- .../lib/components/trail/trail_card.svelte | 13 +++-- .../components/trail/trail_info_panel.svelte | 12 +++- .../components/trail/trail_list_item.svelte | 11 +++- web/src/lib/models/summit_log.ts | 8 ++- web/src/lib/models/trail.ts | 3 + web/src/lib/util/gpx_util.ts | 1 + web/src/routes/profile/+page.svelte | 2 +- 11 files changed, 108 insertions(+), 19 deletions(-) create mode 100644 db/migrations/1731151547_updated_trails.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cf36809..65a8086c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ - +# v0.10.1 +## Features +- Adds elevation loss to trails. Please note that trails created before this version will have a default elevation loss of 0. Edit & save to update. + +## Bug fixes +- Fixes bug that caused auto-added summit logs to not have distance, durtaion etc. +- Fixes error in the auto-upload feature +- Fixes access permissions for profile page +- A summit log is now also created automatically when you upload a trail directly +- Fixes link to the API documentation in footer + # v0.10.0 ## Features - A new summit log entry is now added automatically when uploading a new GPX file for a new or existing trail diff --git a/db/migrations/1731151547_updated_trails.go b/db/migrations/1731151547_updated_trails.go new file mode 100644 index 00000000..ae43afae --- /dev/null +++ b/db/migrations/1731151547_updated_trails.go @@ -0,0 +1,55 @@ +package migrations + +import ( + "encoding/json" + + "github.com/pocketbase/dbx" + "github.com/pocketbase/pocketbase/daos" + m "github.com/pocketbase/pocketbase/migrations" + "github.com/pocketbase/pocketbase/models/schema" +) + +func init() { + m.Register(func(db dbx.Builder) error { + dao := daos.New(db); + + collection, err := dao.FindCollectionByNameOrId("e864strfxo14pm4") + if err != nil { + return err + } + + // add + new_elevation_loss := &schema.SchemaField{} + if err := json.Unmarshal([]byte(`{ + "system": false, + "id": "xutbwpq4", + "name": "elevation_loss", + "type": "number", + "required": false, + "presentable": false, + "unique": false, + "options": { + "min": null, + "max": null, + "noDecimal": false + } + }`), new_elevation_loss); err != nil { + return err + } + collection.Schema.AddField(new_elevation_loss) + + return dao.SaveCollection(collection) + }, func(db dbx.Builder) error { + dao := daos.New(db); + + collection, err := dao.FindCollectionByNameOrId("e864strfxo14pm4") + if err != nil { + return err + } + + // remove + collection.Schema.RemoveField("xutbwpq4") + + return dao.SaveCollection(collection) + }) +} diff --git a/web/src/lib/components/base/calendar.svelte b/web/src/lib/components/base/calendar.svelte index 6cb6aced..95c0f352 100644 --- a/web/src/lib/components/base/calendar.svelte +++ b/web/src/lib/components/base/calendar.svelte @@ -114,7 +114,7 @@ function colorKey(i: number) { return $_( - currentMonthArray[i]?.log?.expand.trails_via_summit_logs?.at(0) + currentMonthArray[i]?.log?.expand?.trails_via_summit_logs?.at(0) ?.expand?.category?.name ?? "", ); } diff --git a/web/src/lib/components/summit_log/summit_log_table_row.svelte b/web/src/lib/components/summit_log/summit_log_table_row.svelte index a217aeb2..c8175f7c 100644 --- a/web/src/lib/components/summit_log/summit_log_table_row.svelte +++ b/web/src/lib/components/summit_log/summit_log_table_row.svelte @@ -80,11 +80,11 @@ type="button" on:click={openMap} class="h-20 aspect-square shrink-0 rounded-xl !bg-background hover:!bg-secondary-hover transition-colors" - class:hidden={!log.expand.gpx_data} + class:hidden={!log.expand?.gpx_data} id="mini-map-{index}" > -