From 296a4961a951e44ea53509391ad225d1491197f9 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 20 Jan 2024 16:13:36 -0400 Subject: yaml, data: store document specs statically on Thing subclasses --- src/data/things/homepage-layout.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/data/things/homepage-layout.js') diff --git a/src/data/things/homepage-layout.js b/src/data/things/homepage-layout.js index dd6c1d9d..b4fb97db 100644 --- a/src/data/things/homepage-layout.js +++ b/src/data/things/homepage-layout.js @@ -45,7 +45,16 @@ export class HomepageLayout extends Thing { validate: validateArrayItems(validateInstanceOf(HomepageLayoutRow)), }, }, - }) + }); + + static [Thing.yamlDocumentSpec] = { + propertyFieldMapping: { + sidebarContent: 'Sidebar Content', + navbarLinks: 'Navbar Links', + }, + + ignoredFields: ['Homepage'], + }; } export class HomepageLayoutRow extends Thing { @@ -82,6 +91,14 @@ export class HomepageLayoutRow extends Thing { class: input.value(Group), }), }); + + static [Thing.yamlDocumentSpec] = { + propertyFieldMapping: { + name: 'Row', + color: 'Color', + type: 'Type', + }, + }; } export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { @@ -162,4 +179,14 @@ export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { update: {validate: validateArrayItems(isString)}, }, }); + + static [Thing.yamlDocumentSpec] = Thing.extendDocumentSpec(HomepageLayoutRow, { + propertyFieldMapping: { + displayStyle: 'Display Style', + sourceGroup: 'Group', + countAlbumsFromGroup: 'Count', + sourceAlbums: 'Albums', + actionLinks: 'Actions', + }, + }); } -- cgit 1.3.0-6-gf8a5