diff --git a/Dockerfile b/Dockerfile index 15fe768..dbf1ff4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,6 +29,6 @@ RUN chmod +x /app/entrypoint.sh EXPOSE 8080 -ENTRYPOINT ["./entrypoint.sh"] +ENTRYPOINT ["/app/entrypoint.sh"] CMD ["serve", "--http=0.0.0.0:8080", "--dev"] diff --git a/internal/notebasesync/record.go b/internal/notebasesync/record.go index d683b3b..0985e88 100644 --- a/internal/notebasesync/record.go +++ b/internal/notebasesync/record.go @@ -20,9 +20,21 @@ func (h *SyncHandler) OnRecordUpdate(record *core.Record) { dbVersion, _ := time.Parse(time.RFC3339Nano, record.GetString("version")) fsVersion, _ := time.Parse(time.RFC3339Nano, xattrs.Version) - rawFrontmatter := record.GetString("raw_frontmatter") + frontmatterJSON := record.GetString("frontmatter") + newFrontmatter := utils.JsonToYaml(frontmatterJSON) + frontmatter := record.GetString("raw_frontmatter") + if newFrontmatter != frontmatter { + h.app.Logger().Debug("frontmatter changed, updating it and exiting") + frontmatter = newFrontmatter + record.Set("raw_frontmatter", frontmatter) + if err := h.app.Save(record); err != nil { + h.app.Logger().Error("error saving record", "error", err) + return + } + return + } content := record.GetString("content") - dbHash := utils.GetDBHash(rawFrontmatter, content) + dbHash := utils.GetDBHash(frontmatter, content) fsHash := utils.GetFSHash(path) h.app.Logger().Debug("record update", "path", path, "dbVersion", dbVersion, "fsVersion", fsVersion, "dbHash", dbHash, "fsHash", fsHash) @@ -32,7 +44,7 @@ func (h *SyncHandler) OnRecordUpdate(record *core.Record) { return } - err := utils.SaveToDisk(path, content, rawFrontmatter) + err := utils.SaveToDisk(path, content, frontmatter) if err != nil { h.app.Logger().Error("error saving file from DB", "path", path, "error", err) return diff --git a/migrations/1748982700_created_filters.go b/migrations/1748982700_created_filters.go new file mode 100644 index 0000000..2171802 --- /dev/null +++ b/migrations/1748982700_created_filters.go @@ -0,0 +1,75 @@ +package migrations + +import ( + "encoding/json" + + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + jsonData := `{ + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "pbc_3911456871", + "indexes": [], + "listRule": null, + "name": "filters", + "system": false, + "type": "base", + "updateRule": null, + "viewRule": null + }` + + collection := &core.Collection{} + if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { + return err + } + + return app.Save(collection) + }, func(app core.App) error { + collection, err := app.FindCollectionByNameOrId("pbc_3911456871") + if err != nil { + return err + } + + return app.Delete(collection) + }) +} diff --git a/migrations/1748982741_updated_filters.go b/migrations/1748982741_updated_filters.go new file mode 100644 index 0000000..d2d43ee --- /dev/null +++ b/migrations/1748982741_updated_filters.go @@ -0,0 +1,62 @@ +package migrations + +import ( + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + collection, err := app.FindCollectionByNameOrId("pbc_3911456871") + if err != nil { + return err + } + + // add field + if err := collection.Fields.AddMarshaledJSONAt(1, []byte(`{ + "autogeneratePattern": "", + "hidden": false, + "id": "text245846248", + "max": 0, + "min": 0, + "name": "label", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }`)); err != nil { + return err + } + + // add field + if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ + "hidden": false, + "id": "json2021091213", + "maxSize": 0, + "name": "filters", + "presentable": false, + "required": false, + "system": false, + "type": "json" + }`)); err != nil { + return err + } + + return app.Save(collection) + }, func(app core.App) error { + collection, err := app.FindCollectionByNameOrId("pbc_3911456871") + if err != nil { + return err + } + + // remove field + collection.Fields.RemoveById("text245846248") + + // remove field + collection.Fields.RemoveById("json2021091213") + + return app.Save(collection) + }) +} diff --git a/web/assets/css/main.css b/web/assets/css/main.css index d8b50f5..dab9cc5 100644 --- a/web/assets/css/main.css +++ b/web/assets/css/main.css @@ -1,3 +1,8 @@ -@import 'tailwindcss'; +@import "tailwindcss"; @plugin "@tailwindcss/typography"; -@import '@nuxt/ui'; +@import "@nuxt/ui"; + +body { + padding: env(safe-area-inset-top, 20px) env(safe-area-inset-right, 20px) + env(safe-area-inset-bottom, 20px) env(safe-area-inset-left, 20px); +} diff --git a/web/components/AppFilters.vue b/web/components/AppFilters.vue index d0f8379..df44f3d 100644 --- a/web/components/AppFilters.vue +++ b/web/components/AppFilters.vue @@ -1,10 +1,10 @@