@actuate-media/cms-admin 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/__tests__/lib/post-editor-service.test.js +75 -23
  2. package/dist/__tests__/lib/post-editor-service.test.js.map +1 -1
  3. package/dist/__tests__/lib/posts-service.test.js +132 -142
  4. package/dist/__tests__/lib/posts-service.test.js.map +1 -1
  5. package/dist/__tests__/views/posts-list-view.render.test.d.ts +2 -0
  6. package/dist/__tests__/views/posts-list-view.render.test.d.ts.map +1 -0
  7. package/dist/__tests__/views/posts-list-view.render.test.js +73 -0
  8. package/dist/__tests__/views/posts-list-view.render.test.js.map +1 -0
  9. package/dist/actuate-admin.css +1 -1
  10. package/dist/index.d.ts +0 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +0 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/post-editor-service.d.ts +6 -4
  15. package/dist/lib/post-editor-service.d.ts.map +1 -1
  16. package/dist/lib/post-editor-service.js +32 -37
  17. package/dist/lib/post-editor-service.js.map +1 -1
  18. package/dist/lib/posts-service.d.ts.map +1 -1
  19. package/dist/lib/posts-service.js +91 -160
  20. package/dist/lib/posts-service.js.map +1 -1
  21. package/dist/views/Posts/NewPostPicker.d.ts +5 -4
  22. package/dist/views/Posts/NewPostPicker.d.ts.map +1 -1
  23. package/dist/views/Posts/NewPostPicker.js +5 -4
  24. package/dist/views/Posts/NewPostPicker.js.map +1 -1
  25. package/dist/views/Posts/PostTypesView.d.ts +5 -4
  26. package/dist/views/Posts/PostTypesView.d.ts.map +1 -1
  27. package/dist/views/Posts/PostTypesView.js.map +1 -1
  28. package/dist/views/Posts/PostsListView.d.ts.map +1 -1
  29. package/dist/views/Posts/PostsListView.js +8 -0
  30. package/dist/views/Posts/PostsListView.js.map +1 -1
  31. package/dist/views/page-editor/sections/ArticleBodySection.d.ts +6 -2
  32. package/dist/views/page-editor/sections/ArticleBodySection.d.ts.map +1 -1
  33. package/dist/views/page-editor/sections/ArticleBodySection.js +8 -8
  34. package/dist/views/page-editor/sections/ArticleBodySection.js.map +1 -1
  35. package/dist/views/post-editor/PostEditorCanvas.js +7 -1
  36. package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
  37. package/dist/views/post-editor/PostFieldsModal.d.ts.map +1 -1
  38. package/dist/views/post-editor/PostFieldsModal.js +10 -4
  39. package/dist/views/post-editor/PostFieldsModal.js.map +1 -1
  40. package/dist/views/post-editor/PostHeader.d.ts.map +1 -1
  41. package/dist/views/post-editor/PostHeader.js +4 -3
  42. package/dist/views/post-editor/PostHeader.js.map +1 -1
  43. package/dist/views/post-editor/PostPreview.d.ts.map +1 -1
  44. package/dist/views/post-editor/PostPreview.js +11 -1
  45. package/dist/views/post-editor/PostPreview.js.map +1 -1
  46. package/dist/views/post-editor/PostSectionEditor.d.ts +22 -2
  47. package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
  48. package/dist/views/post-editor/PostSectionEditor.js +4 -1
  49. package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
  50. package/package.json +2 -2
  51. package/src/__tests__/lib/post-editor-service.test.ts +78 -23
  52. package/src/__tests__/lib/posts-service.test.ts +134 -163
  53. package/src/__tests__/views/posts-list-view.render.test.tsx +84 -0
  54. package/src/index.ts +0 -2
  55. package/src/lib/post-editor-service.ts +41 -40
  56. package/src/lib/posts-service.ts +109 -180
  57. package/src/views/Posts/NewPostPicker.tsx +5 -4
  58. package/src/views/Posts/PostTypesView.tsx +5 -4
  59. package/src/views/Posts/PostsListView.tsx +9 -0
  60. package/src/views/page-editor/sections/ArticleBodySection.tsx +12 -16
  61. package/src/views/post-editor/PostEditorCanvas.tsx +7 -1
  62. package/src/views/post-editor/PostFieldsModal.tsx +36 -21
  63. package/src/views/post-editor/PostHeader.tsx +4 -4
  64. package/src/views/post-editor/PostPreview.tsx +12 -1
  65. package/src/views/post-editor/PostSectionEditor.tsx +22 -5
  66. package/dist/views/PostEditor.d.ts +0 -6
  67. package/dist/views/PostEditor.d.ts.map +0 -1
  68. package/dist/views/PostEditor.js +0 -79
  69. package/dist/views/PostEditor.js.map +0 -1
  70. package/dist/views/Posts.d.ts +0 -5
  71. package/dist/views/Posts.d.ts.map +0 -1
  72. package/dist/views/Posts.js +0 -73
  73. package/dist/views/Posts.js.map +0 -1
  74. package/src/views/PostEditor.tsx +0 -257
  75. package/src/views/Posts.tsx +0 -375
@@ -41,12 +41,14 @@ export declare function validatePost(post: EditorPost, forPublish?: boolean): Va
41
41
  /** Validate a template for save (section content only — no post fields). */
42
42
  export declare function validateTemplate(template: EditorPostTemplate): ValidationResult;
43
43
  /**
44
- * Load a post type's template. Looks up the single `post-templates` document
45
- * whose slug matches the post type. Returns an unsaved default (centered
46
- * header, empty section list) when the type has no template yet.
44
+ * Load a post type's template via the dedicated, audited `/post-templates/:type`
45
+ * endpoint (scoped + logged), rather than the raw collection API. When the type
46
+ * has no saved template yet the endpoint returns the default starting template;
47
+ * if the request fails outright we still hand back that default so the editor
48
+ * is never blank.
47
49
  */
48
50
  export declare function fetchTemplateForEditor(postType: string): Promise<EditorPostTemplate>;
49
- /** Persist a post type's template (creates the doc on first save). */
51
+ /** Persist a post type's template via `PUT /post-templates/:type`. */
50
52
  export declare function saveTemplate(template: EditorPostTemplate): Promise<EditorPostTemplate>;
51
53
  export declare function fetchPostForEditor(postType: string, id: string): Promise<EditorPost>;
52
54
  export declare function createPost(post: EditorPost): Promise<EditorPost>;
@@ -1 +1 @@
1
- {"version":3,"file":"post-editor-service.d.ts","sourceRoot":"","sources":["../../src/lib/post-editor-service.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAKjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,uCAAuC,CAAA;AAE9C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AAI1F,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEzE,eAAO,MAAM,oBAAoB,mBAAmB,CAAA;AAEpD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,UAAQ,GAAG,gBAAgB,CAuBnF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,CAW/E;AAiDD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc1F;AAaD,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB5F;AAID,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAI1F;AAgCD,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAOtE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAQzE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAUvE;AAED,2EAA2E;AAC3E,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4BjF"}
1
+ {"version":3,"file":"post-editor-service.d.ts","sourceRoot":"","sources":["../../src/lib/post-editor-service.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAKjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,uCAAuC,CAAA;AAE9C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AAI1F,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,GAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEzE,eAAO,MAAM,oBAAoB,mBAAmB,CAAA;AAEpD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,UAAQ,GAAG,gBAAgB,CAuBnF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,CAW/E;AA2DD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiB1F;AAED,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAa5F;AAID,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAI1F;AAgCD,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAOtE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAQzE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAUvE;AAED,2EAA2E;AAC3E,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA4BjF"}
@@ -20,7 +20,7 @@
20
20
  * so the field-access layer doesn't strip them on write.
21
21
  */
22
22
  import { cmsApi } from './api.js';
23
- import { getSectionType, createSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, coercePostHeader, defaultPostHeader, validateSectionContent, } from '@actuate-media/cms-core/page-sections';
23
+ import { getSectionType, createSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, coerceSections, coercePostHeader, createPostTemplate, validateSectionContent, } from '@actuate-media/cms-core/page-sections';
24
24
  // Re-export the pure section helpers so the post editor imports them from
25
25
  // one place (mirrors page-editor-service).
26
26
  export { createSection, addSection, removeSection, duplicateSection, toggleSectionVisibility, moveSection, reorderSections, updateSectionContent, updateSectionSettings, updateSectionMeta, };
@@ -99,53 +99,48 @@ function rowToEditorPost(postType, doc) {
99
99
  updatedAt: doc.updatedAt ?? null,
100
100
  };
101
101
  }
102
+ function templateEndpoint(postType) {
103
+ return `/post-templates/${encodeURIComponent(postType)}`;
104
+ }
102
105
  /**
103
- * Load a post type's template. Looks up the single `post-templates` document
104
- * whose slug matches the post type. Returns an unsaved default (centered
105
- * header, empty section list) when the type has no template yet.
106
+ * Load a post type's template via the dedicated, audited `/post-templates/:type`
107
+ * endpoint (scoped + logged), rather than the raw collection API. When the type
108
+ * has no saved template yet the endpoint returns the default starting template;
109
+ * if the request fails outright we still hand back that default so the editor
110
+ * is never blank.
106
111
  */
107
112
  export async function fetchTemplateForEditor(postType) {
108
- const res = await cmsApi(`/collections/${TEMPLATES_COLLECTION}?pageSize=200`);
109
- const docs = res.data?.docs ?? [];
110
- const match = docs.find((d) => (d.slug ?? d.data?.slug) === postType);
111
- if (!match) {
112
- return { docId: null, postType, header: defaultPostHeader(), sections: [] };
113
+ const res = await cmsApi(templateEndpoint(postType));
114
+ if (res.error || !res.data) {
115
+ const seed = createPostTemplate(postType);
116
+ return { docId: null, postType, header: seed.header, sections: seed.sections };
113
117
  }
114
- const data = match.data ?? {};
115
- return {
116
- docId: match.id,
117
- postType,
118
- header: coercePostHeader(data.header),
119
- sections: coerceSections(data.sections),
120
- };
121
- }
122
- function templateWriteBody(template, extra) {
123
- return JSON.stringify({
124
- title: `${template.postType} template`,
125
- slug: template.postType,
126
- postType: template.postType,
127
- header: template.header,
128
- sections: template.sections,
129
- ...extra,
130
- });
118
+ const r = res.data;
119
+ const docId = r.docId ?? null;
120
+ const header = coercePostHeader(r.header);
121
+ let sections = coerceSections(r.sections);
122
+ // Defend against an older server (or an empty stored template): an unsaved
123
+ // type should still seed the default sections so authors aren't faced with a
124
+ // blank canvas.
125
+ if (!docId && sections.length === 0) {
126
+ sections = createPostTemplate(postType).sections;
127
+ }
128
+ return { docId, postType, header, sections };
131
129
  }
132
- /** Persist a post type's template (creates the doc on first save). */
130
+ /** Persist a post type's template via `PUT /post-templates/:type`. */
133
131
  export async function saveTemplate(template) {
134
- const endpoint = template.docId
135
- ? `/collections/${TEMPLATES_COLLECTION}/${template.docId}`
136
- : `/collections/${TEMPLATES_COLLECTION}`;
137
- const res = await cmsApi(endpoint, {
138
- method: template.docId ? 'PUT' : 'POST',
139
- body: templateWriteBody(template, { status: 'PUBLISHED' }),
132
+ const res = await cmsApi(templateEndpoint(template.postType), {
133
+ method: 'PUT',
134
+ body: JSON.stringify({ header: template.header, sections: template.sections }),
140
135
  });
141
136
  if (res.error || !res.data)
142
137
  throw new Error(res.error ?? 'Failed to save template');
143
- const data = res.data.data ?? {};
138
+ const r = res.data;
144
139
  return {
145
- docId: res.data.id,
140
+ docId: r.docId ?? null,
146
141
  postType: template.postType,
147
- header: coercePostHeader(data.header),
148
- sections: coerceSections(data.sections),
142
+ header: coercePostHeader(r.header),
143
+ sections: coerceSections(r.sections),
149
144
  };
150
145
  }
151
146
  // ─── Posts ───────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"post-editor-service.js","sourceRoot":"","sources":["../../src/lib/post-editor-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-editor-service.js","sourceRoot":"","sources":["../../src/lib/post-editor-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"posts-service.d.ts","sourceRoot":"","sources":["../../src/lib/posts-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posts-service.d.ts","sourceRoot":"","sources":["../../src/lib/posts-service.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,16 @@
1
1
  /**
2
- * Posts service — thin client over the existing REST endpoints,
3
- * shaped around the data the Posts admin area needs.
2
+ * Posts service — thin client over the CMS REST endpoints, shaped around the
3
+ * data the Posts admin area needs.
4
4
  *
5
- * V1 strategy: aggregate across post-typed collections client-side
6
- * (one `/collections/:slug` call per type) and join authors via
7
- * `/users`. Each view component pulls from `fetchPosts()` so when
8
- * a server-side `/api/cms/posts` endpoint lands later, only this
9
- * file changes callers consume the same `Post[]` / `PostType[]`
10
- * shapes.
5
+ * `fetchPosts` calls the server-side aggregate endpoint `GET /posts`, which
6
+ * does the cross-collection filter / sort / paginate at the DB level (one
7
+ * query + one count) and returns the post rows alongside dataset-wide type
8
+ * counts and the contributor list. This keeps the Posts list O(page) instead
9
+ * of pulling every document per type into the browser, and lets it scale past
10
+ * the old ~500-row-per-type client cap.
11
11
  *
12
- * Why not a single `/collections/all` call?
13
- * - Each collection has its own access-control check, so listing
14
- * across collections must respect per-collection `read` rules.
15
- * The existing endpoint enforces this per-call; mixing them
16
- * server-side would need a new auth boundary.
17
- * - V1 traffic is small (the seed is 15 rows); a few extra
18
- * parallel requests are well under the rate-limit budget.
19
- *
20
- * Promote to a single endpoint when:
21
- * - Any post-type collection grows past ~5k rows, OR
22
- * - Page-load latency exceeds 300ms in the admin metrics.
12
+ * Access control still lives server-side: the endpoint only returns rows from
13
+ * collections the caller's scope can read.
23
14
  */
24
15
  import { cmsApi } from './api.js';
25
16
  function isPostsCollection(c) {
@@ -54,41 +45,17 @@ function collectionToPostType(c, count = 0) {
54
45
  active: true,
55
46
  };
56
47
  }
57
- function initialsFromName(name, email) {
58
- if (name && name.trim().length > 0) {
59
- const parts = name.trim().split(/\s+/);
60
- const first = parts[0]?.[0] ?? '';
61
- const last = parts.length > 1 ? (parts[parts.length - 1]?.[0] ?? '') : '';
62
- return (first + last).toUpperCase() || (email[0] ?? '?').toUpperCase();
63
- }
64
- return (email[0] ?? '?').toUpperCase();
65
- }
66
- async function fetchAuthorsMap() {
67
- const res = await cmsApi('/users?pageSize=200');
68
- const list = Array.isArray(res.data)
69
- ? res.data
70
- : (res.data?.users ?? []);
71
- const map = new Map();
72
- for (const u of list) {
73
- map.set(u.id, {
74
- id: u.id,
75
- name: u.name?.trim() || u.email,
76
- initials: initialsFromName(u.name, u.email),
77
- });
78
- }
79
- return map;
80
- }
81
- function extractSeoScore(data) {
82
- if (!data)
83
- return null;
84
- const candidates = ['seoScore', 'seo_score', 'metaScore'];
85
- for (const k of candidates) {
86
- const v = data[k];
87
- if (typeof v === 'number' && Number.isFinite(v))
88
- return v;
89
- }
90
- return null;
48
+ // ─── Authors ─────────────────────────────────────────────────────────
49
+ function initialsFromName(name) {
50
+ const trimmed = name?.trim();
51
+ if (!trimmed)
52
+ return '?';
53
+ const parts = trimmed.split(/\s+/);
54
+ const first = parts[0]?.[0] ?? '';
55
+ const last = parts.length > 1 ? (parts[parts.length - 1]?.[0] ?? '') : '';
56
+ return (first + last).toUpperCase() || '?';
91
57
  }
58
+ /** Display date matches the old client behaviour: scheduled/published date when set, else updated. */
92
59
  function pickDisplayDate(d) {
93
60
  if (d.status === 'SCHEDULED' && d.scheduledAt)
94
61
  return d.scheduledAt;
@@ -96,122 +63,86 @@ function pickDisplayDate(d) {
96
63
  return d.publishedAt;
97
64
  return d.updatedAt;
98
65
  }
66
+ function buildPostsQueryString(query) {
67
+ const params = new URLSearchParams();
68
+ if (query.search?.trim())
69
+ params.set('search', query.search.trim());
70
+ if (query.postType && query.postType !== 'all')
71
+ params.set('postType', query.postType);
72
+ if (query.status && query.status !== 'all')
73
+ params.set('status', query.status);
74
+ if (query.author && query.author !== 'all')
75
+ params.set('author', query.author);
76
+ if (query.sortBy)
77
+ params.set('sortBy', query.sortBy);
78
+ if (query.sortDirection)
79
+ params.set('sortDirection', query.sortDirection);
80
+ params.set('page', String(Math.max(1, query.page ?? 1)));
81
+ params.set('pageSize', String(Math.max(1, query.pageSize ?? 10)));
82
+ const qs = params.toString();
83
+ return qs ? `?${qs}` : '';
84
+ }
99
85
  export async function fetchPosts(query = {}) {
100
- const cols = await fetchPostCollections();
101
- const authorsMap = await fetchAuthorsMap();
102
- // Pull every doc for each post type (cap at 500 to avoid runaway
103
- // requests; pagination + filtering still happens client-side over
104
- // this set). When a type grows past 500 docs we'll need the
105
- // server-side aggregate endpoint described in this file's header.
106
- const perTypeRaw = await Promise.all(cols.map(async (c) => {
107
- const res = await cmsApi(`/collections/${encodeURIComponent(c.slug)}?pageSize=500&sort=updatedAt&order=desc`);
108
- const docs = (res.data?.docs ?? []);
109
- return { col: c, docs };
110
- }));
111
- // Map docs → Post objects.
112
- const allPosts = [];
113
- for (const { col, docs } of perTypeRaw) {
114
- for (const d of docs) {
115
- const author = (d.createdById && authorsMap.get(d.createdById)) ||
116
- (d.updatedById && authorsMap.get(d.updatedById)) || {
117
- id: '',
118
- name: 'Unknown',
119
- initials: '??',
120
- };
121
- allPosts.push({
122
- id: d.id,
123
- title: d.title ?? d.data?.title ?? '(untitled)',
124
- slug: d.slug ?? d.data?.slug ?? '',
125
- postTypeId: col.slug,
126
- postTypeName: col.labels.singular,
127
- postTypeAccentColor: col.color ?? null,
128
- authorId: author.id,
129
- authorName: author.name,
130
- authorInitials: author.initials,
131
- status: d.status,
132
- publishDate: d.publishedAt ?? d.scheduledAt ?? null,
133
- updatedDate: pickDisplayDate(d),
134
- seoScore: extractSeoScore(d.data),
135
- createdAt: d.createdAt,
136
- updatedAt: d.updatedAt,
137
- });
138
- }
139
- }
140
- // Compute per-type counts BEFORE filtering — the tabs at the top
141
- // of the page reflect the dataset, not the active query.
142
- const countsBySlug = new Map();
143
- for (const p of allPosts) {
144
- countsBySlug.set(p.postTypeId, (countsBySlug.get(p.postTypeId) ?? 0) + 1);
145
- }
146
- const types = cols.map((c) => collectionToPostType(c, countsBySlug.get(c.slug) ?? 0));
147
- // Apply filters / search.
148
- const search = (query.search ?? '').trim().toLowerCase();
149
- const filtered = allPosts.filter((p) => {
150
- if (query.postType && query.postType !== 'all' && p.postTypeId !== query.postType)
151
- return false;
152
- if (query.status && query.status !== 'all' && p.status !== query.status)
153
- return false;
154
- if (query.author && query.author !== 'all' && p.authorId !== query.author)
155
- return false;
156
- if (search) {
157
- const haystack = `${p.title} ${p.slug} ${p.authorName} ${p.postTypeName}`.toLowerCase();
158
- if (!haystack.includes(search))
159
- return false;
160
- }
161
- return true;
162
- });
163
- // Sort.
164
- const sortBy = query.sortBy ?? 'date';
165
- const dir = query.sortDirection ?? 'desc';
166
- filtered.sort((a, b) => {
167
- const cmp = comparePostsFor(sortBy, a, b);
168
- return dir === 'asc' ? cmp : -cmp;
169
- });
170
- // Paginate.
171
86
  const page = Math.max(1, query.page ?? 1);
172
87
  const pageSize = Math.max(1, query.pageSize ?? 10);
173
- const start = (page - 1) * pageSize;
174
- const paged = filtered.slice(start, start + pageSize);
175
- // Unique authors from the full set (so the dropdown lists every
176
- // contributor, not just the currently visible page).
177
- const authorIds = new Set();
178
- const authors = [];
179
- for (const p of allPosts) {
180
- if (p.authorId && !authorIds.has(p.authorId)) {
181
- authorIds.add(p.authorId);
182
- authors.push({ id: p.authorId, name: p.authorName, initials: p.authorInitials });
183
- }
88
+ const res = await cmsApi(`/posts${buildPostsQueryString(query)}`);
89
+ if (res.error || !res.data) {
90
+ throw new Error(res.error ?? 'Failed to load posts');
184
91
  }
185
- authors.sort((a, b) => a.name.localeCompare(b.name));
92
+ const r = res.data;
93
+ const typeBySlug = new Map();
94
+ for (const t of r.types)
95
+ typeBySlug.set(t.slug, t);
96
+ const types = r.types.map((t) => ({
97
+ id: t.slug,
98
+ slug: t.slug,
99
+ name: t.plural,
100
+ singularName: t.singular,
101
+ description: t.description ?? null,
102
+ urlBase: `/${t.urlPrefix || t.slug}`,
103
+ accentColor: t.color ?? null,
104
+ icon: t.icon ?? null,
105
+ postCount: t.count,
106
+ fieldCount: t.fieldCount,
107
+ active: true,
108
+ }));
109
+ const posts = r.posts.map((d) => {
110
+ const type = typeBySlug.get(d.collection);
111
+ const authorName = d.author?.name?.trim() || 'Unknown';
112
+ return {
113
+ id: d.id,
114
+ title: d.title ?? '(untitled)',
115
+ slug: d.slug ?? '',
116
+ postTypeId: d.collection,
117
+ postTypeName: type?.singular ?? d.collection,
118
+ postTypeAccentColor: type?.color ?? null,
119
+ authorId: d.author?.id ?? '',
120
+ authorName,
121
+ authorInitials: d.author ? initialsFromName(d.author.name) : '??',
122
+ status: d.status,
123
+ publishDate: d.publishedAt ?? d.scheduledAt ?? null,
124
+ updatedDate: pickDisplayDate(d),
125
+ seoScore: d.seoScore,
126
+ createdAt: d.createdAt,
127
+ updatedAt: d.updatedAt,
128
+ };
129
+ });
130
+ const authors = r.authors
131
+ .map((a) => ({
132
+ id: a.id,
133
+ name: a.name?.trim() || 'Unknown',
134
+ initials: initialsFromName(a.name),
135
+ }))
136
+ .sort((a, b) => a.name.localeCompare(b.name));
186
137
  return {
187
- posts: paged,
188
- total: filtered.length,
189
- page,
190
- pageSize,
138
+ posts,
139
+ total: r.total,
140
+ page: r.page ?? page,
141
+ pageSize: r.pageSize ?? pageSize,
191
142
  types,
192
143
  authors,
193
144
  };
194
145
  }
195
- function comparePostsFor(by, a, b) {
196
- switch (by) {
197
- case 'title':
198
- return a.title.localeCompare(b.title);
199
- case 'type':
200
- return a.postTypeName.localeCompare(b.postTypeName);
201
- case 'author':
202
- return a.authorName.localeCompare(b.authorName);
203
- case 'status':
204
- return a.status.localeCompare(b.status);
205
- case 'seo': {
206
- const av = a.seoScore ?? -1;
207
- const bv = b.seoScore ?? -1;
208
- return av - bv;
209
- }
210
- case 'date':
211
- default:
212
- return new Date(a.updatedDate).getTime() - new Date(b.updatedDate).getTime();
213
- }
214
- }
215
146
  // ─── Bulk mutations ──────────────────────────────────────────────────
216
147
  export async function bulkUpdatePosts(ids, payload) {
217
148
  let ok = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"posts-service.js","sourceRoot":"","sources":["../../src/lib/posts-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AA6EjC,SAAS,iBAAiB,CAAC,CAAmB;IAC5C,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAA;AAChG,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAqB,cAAc,CAAC,CAAA;IAC5D,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACrC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAA;IACzC,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,uCAAuC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAmB,EAAE,KAAK,GAAG,CAAC;IAC1D,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,IAAI;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;QAC/B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE;QACpC,WAAW,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;QAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,IAAI;KACb,CAAA;AACH,CAAC;AAUD,SAAS,gBAAgB,CAAC,IAA+B,EAAE,KAAa;IACtE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IACxE,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AACxC,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAyC,qBAAqB,CAAC,CAAA;IACvF,MAAM,IAAI,GAAiB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,GAAG,CAAC,IAAI;QACV,CAAC,CAAC,CAAE,GAAG,CAAC,IAAwC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK;YAC/B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAmBD,SAAS,eAAe,CAAC,IAAoC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IACzD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,CAAiB;IACxC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,WAAW,CAAA;IACnE,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,WAAW,CAAA;IACnE,OAAO,CAAC,CAAC,SAAS,CAAA;AACpB,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAoB,EAAE;IACrD,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAA;IACzC,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAA;IAE1C,iEAAiE;IACjE,kEAAkE;IAClE,4DAA4D;IAC5D,kEAAkE;IAClE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,gBAAgB,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,yCAAyC,CACpF,CAAA;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAqB,CAAA;QACvD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC,CAAC,CACH,CAAA;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAW,EAAE,CAAA;IAC3B,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI;gBAClD,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;aACf,CAAA;YACH,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK,IAAK,CAAC,CAAC,IAAI,EAAE,KAAgB,IAAI,YAAY;gBAC3D,IAAI,EAAE,CAAC,CAAC,IAAI,IAAK,CAAC,CAAC,IAAI,EAAE,IAAe,IAAI,EAAE;gBAC9C,UAAU,EAAE,GAAG,CAAC,IAAI;gBACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;gBACjC,mBAAmB,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;gBACtC,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI;gBACnD,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;gBAC/B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,KAAK,GAAe,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjG,0BAA0B;IAC1B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC/F,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QACrF,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QACvF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAA;YACvF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAA;QAC9C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,QAAQ;IACR,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAA;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,IAAI,MAAM,CAAA;IACzC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,YAAY;IACZ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAA;IAErD,gEAAgE;IAChE,qDAAqD;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAEpD,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,OAAO;KACR,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAqC,EAAE,CAAO,EAAE,CAAO;IAC9E,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACvC,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QACrD,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QACjD,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YAC3B,OAAO,EAAE,GAAG,EAAE,CAAA;QAChB,CAAC;QACD,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAA;IAChF,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAA8C,EAC9C,OAAgC;IAEhC,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE;YAC/E,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAA;QACF,IAAI,GAAG,CAAC,KAAK;YAAE,MAAM,EAAE,CAAA;;YAClB,EAAE,EAAE,CAAA;IACX,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAA8C;IAE9C,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE;YAC/E,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,IAAI,GAAG,CAAC,KAAK;YAAE,MAAM,EAAE,CAAA;;YAClB,EAAE,EAAE,CAAA;IACX,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"posts-service.js","sourceRoot":"","sources":["../../src/lib/posts-service.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Type-picker landing page for "+ New Post".
3
3
  *
4
- * When zero or one post type is configured we'd ordinarily auto-route
5
- * to the per-collection editor, but the spec calls out always showing
6
- * a chooser when "+ New Post" is clicked. We keep that behavior so
7
- * the experience is consistent regardless of how many types exist.
4
+ * Behavior by number of configured post types:
5
+ * - exactly one → skip the picker and forward straight to that type's
6
+ * new-post editor (a one-card chooser adds nothing but a flash)
7
+ * - two or more → show the chooser cards
8
+ * - zero → show a "no post types configured" setup hint
8
9
  *
9
10
  * Picking a card navigates to the section-based Post editor's new-post
10
11
  * route (`/posts/<slug>/new`), which seeds the post from that type's
@@ -1 +1 @@
1
- {"version":3,"file":"NewPostPicker.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/NewPostPicker.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AAEH,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,2CA0GnF"}
1
+ {"version":3,"file":"NewPostPicker.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/NewPostPicker.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AAEH,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,2CA0GnF"}
@@ -8,10 +8,11 @@ import { resolvePostTypeIcon } from '../../components/posts/icons.js';
8
8
  /**
9
9
  * Type-picker landing page for "+ New Post".
10
10
  *
11
- * When zero or one post type is configured we'd ordinarily auto-route
12
- * to the per-collection editor, but the spec calls out always showing
13
- * a chooser when "+ New Post" is clicked. We keep that behavior so
14
- * the experience is consistent regardless of how many types exist.
11
+ * Behavior by number of configured post types:
12
+ * - exactly one → skip the picker and forward straight to that type's
13
+ * new-post editor (a one-card chooser adds nothing but a flash)
14
+ * - two or more → show the chooser cards
15
+ * - zero → show a "no post types configured" setup hint
15
16
  *
16
17
  * Picking a card navigates to the section-based Post editor's new-post
17
18
  * route (`/posts/<slug>/new`), which seeds the post from that type's
@@ -1 +1 @@
1
- {"version":3,"file":"NewPostPicker.js","sourceRoot":"","sources":["../../../src/views/Posts/NewPostPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NewPostPicker.js","sourceRoot":"","sources":["../../../src/views/Posts/NewPostPicker.tsx"],"names":[],"mappings":"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"}
@@ -6,10 +6,11 @@
6
6
  * - title + description
7
7
  * - footer row: post count · field count · URL base
8
8
  *
9
- * Cards open the per-collection settings (`/collections/:slug/settings`
10
- * in the existing admin) when clicked. The dashed "+ New Post Type"
11
- * card routes to /posts/types/new where users get instructions for
12
- * adding a new collection to the config file.
9
+ * Clicking a card opens that type's settings (`/posts/types/:slug/edit`);
10
+ * each card also has an "Edit Template" action (`/posts/types/:slug/template`)
11
+ * for the type's default layout. The dashed "+ New Post Type" card routes to
12
+ * `/posts/types/new`, where users get instructions for adding a new collection
13
+ * to the config file.
13
14
  *
14
15
  * Why no in-app create/edit flow yet:
15
16
  * Collections are file-defined (actuate.config.ts). Writing to that
@@ -1 +1 @@
1
- {"version":3,"file":"PostTypesView.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,UAAU,kBAAkB;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAkE/D"}
1
+ {"version":3,"file":"PostTypesView.d.ts","sourceRoot":"","sources":["../../../src/views/Posts/PostTypesView.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,UAAU,kBAAkB;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAkE/D"}