@flowselections/layout-maker 1.51.3 → 1.53.1

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 (53) hide show
  1. package/README.md +0 -1
  2. package/dist-lib/components/LivePrintstatusRegel.d.ts +2 -0
  3. package/dist-lib/components/LivePrintstatusRegel.d.ts.map +1 -0
  4. package/dist-lib/components/LivePrintstatusRegel.js +37 -0
  5. package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
  6. package/dist-lib/components/PrintQueuePage.js +78 -43
  7. package/dist-lib/components/PrintenPage.d.ts.map +1 -1
  8. package/dist-lib/components/PrintenPage.js +3 -2
  9. package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
  10. package/dist-lib/components/PrintplekDetailPage.js +30 -2
  11. package/dist-lib/index.d.ts +7 -1
  12. package/dist-lib/index.d.ts.map +1 -1
  13. package/dist-lib/index.js +6 -1
  14. package/dist-lib/integrations/supabase/moduleClient.d.ts +1 -31688
  15. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  16. package/dist-lib/integrations/supabase/types.d.ts +3362 -128
  17. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  18. package/dist-lib/lib/foutTekst.d.ts +10 -0
  19. package/dist-lib/lib/foutTekst.d.ts.map +1 -1
  20. package/dist-lib/lib/foutTekst.js +28 -0
  21. package/dist-lib/lib/printApi.d.ts +33 -0
  22. package/dist-lib/lib/printApi.d.ts.map +1 -1
  23. package/dist-lib/lib/printApi.js +45 -1
  24. package/dist-lib/lib/printQueue.server.d.ts +6 -0
  25. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  26. package/dist-lib/lib/printQueue.server.js +72 -20
  27. package/dist-lib/lib/printService.functions.d.ts +76 -0
  28. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/printService.functions.js +130 -0
  30. package/dist-lib/lib/printService.server.d.ts +35 -0
  31. package/dist-lib/lib/printService.server.d.ts.map +1 -1
  32. package/dist-lib/lib/printService.server.js +104 -13
  33. package/dist-lib/lib/printnodeStatus.d.ts +14 -0
  34. package/dist-lib/lib/printnodeStatus.d.ts.map +1 -0
  35. package/dist-lib/lib/printnodeStatus.js +43 -0
  36. package/dist-lib/lib/printnodeWebhook.d.ts +23 -0
  37. package/dist-lib/lib/printnodeWebhook.d.ts.map +1 -0
  38. package/dist-lib/lib/printnodeWebhook.js +137 -0
  39. package/dist-lib/lib/printnodeWebhookBeheer.server.d.ts +45 -0
  40. package/dist-lib/lib/printnodeWebhookBeheer.server.d.ts.map +1 -0
  41. package/dist-lib/lib/printnodeWebhookBeheer.server.js +116 -0
  42. package/dist-lib/lib/queueTick.d.ts.map +1 -1
  43. package/dist-lib/lib/queueTick.js +9 -0
  44. package/dist-lib/lib/shellAdres.d.ts +10 -0
  45. package/dist-lib/lib/shellAdres.d.ts.map +1 -0
  46. package/dist-lib/lib/shellAdres.js +36 -0
  47. package/dist-lib/lib/standaardLayouts.server.d.ts +6 -0
  48. package/dist-lib/lib/standaardLayouts.server.d.ts.map +1 -0
  49. package/dist-lib/lib/standaardLayouts.server.js +61 -0
  50. package/dist-lib/lib/useDocumentData.d.ts +10 -1
  51. package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
  52. package/dist-lib/lib/useDocumentData.js +16 -117
  53. package/package.json +2 -2
@@ -0,0 +1,61 @@
1
+ // ============================================================================
2
+ // src/lib/standaardLayouts.server.ts — standaardlayouts aanmaken met de
3
+ // servicerol, alleen als er nog géén enkele layout bestaat (lege shell).
4
+ // Pagina's schrijven hierdoor nooit met de gebruikerssessie bij het openen.
5
+ // ============================================================================
6
+ import { FLORIDAY_LAYOUT_TOELICHTING, FLORIDAY_SYSTEEM_LAYOUTS, STANDAARD_LAYOUTS } from "./documentTypes.js";
7
+ import { standaardProductiebonConfig } from "./productiebonBuilder.js";
8
+ const SEED_KEY = "standaard_layouts_geseed";
9
+ const SEED_VERSIE = "2";
10
+ let gedaan = false;
11
+ /** Geeft het aantal aangemaakte layouts terug (0 als er al layouts waren). */
12
+ export async function zorgVoorStandaardLayoutsServer(db) {
13
+ if (gedaan)
14
+ return 0;
15
+ const { count, error } = await db
16
+ .from("document_layouts")
17
+ .select("id", { count: "exact", head: true });
18
+ if (error)
19
+ throw new Error(`Layouts tellen mislukt: ${error.message}`);
20
+ if ((count ?? 0) > 0) {
21
+ gedaan = true;
22
+ return 0;
23
+ }
24
+ const rijen = [
25
+ ...STANDAARD_LAYOUTS.map((l) => ({
26
+ naam: l.naam,
27
+ documenttype: l.documenttype,
28
+ omschrijving: l.omschrijving,
29
+ papierformaat: l.papierformaat,
30
+ breedte_mm: l.breedte_mm,
31
+ hoogte_mm: l.hoogte_mm,
32
+ orientatie: "portrait",
33
+ bron: "eigen",
34
+ systeem: false,
35
+ actief: true,
36
+ config: l.documenttype === "productiebon"
37
+ ? { productiebon: standaardProductiebonConfig() }
38
+ : {},
39
+ })),
40
+ ...FLORIDAY_SYSTEEM_LAYOUTS.map((l) => ({
41
+ naam: l.naam,
42
+ documenttype: l.documenttype,
43
+ omschrijving: FLORIDAY_LAYOUT_TOELICHTING,
44
+ papierformaat: l.papierformaat,
45
+ breedte_mm: l.breedte_mm,
46
+ hoogte_mm: l.hoogte_mm,
47
+ orientatie: "portrait",
48
+ bron: "floriday",
49
+ systeem: true,
50
+ actief: true,
51
+ })),
52
+ ];
53
+ const { error: insertFout } = await db.from("document_layouts").insert(rijen);
54
+ if (insertFout)
55
+ throw new Error(`Standaardlayouts aanmaken mislukt: ${insertFout.message}`);
56
+ await db
57
+ .from("app_settings")
58
+ .upsert({ key: SEED_KEY, value: SEED_VERSIE }, { onConflict: "key" });
59
+ gedaan = true;
60
+ return rijen.length;
61
+ }
@@ -43,9 +43,18 @@ export interface PrintJobModel {
43
43
  lokaal_opgeslagen_op?: string | null;
44
44
  lokale_pdf_fout?: string | null;
45
45
  lokale_pdf_print_plek_id?: string | null;
46
+ /** Laatste stabiele PrintNode-status: new | sent_to_client | done | error | expired. */
47
+ printnode_status?: string | null;
48
+ printnode_bericht?: string | null;
49
+ printnode_status_op?: string | null;
46
50
  }
51
+ /**
52
+ * Vraagt de server (servicerol) om de standaardlayouts aan te maken als er nog
53
+ * geen enkele layout bestaat. Schrijft nooit met de gebruikerssessie.
54
+ */
47
55
  export declare function zorgVoorFloridayLayouts(): Promise<boolean>;
48
- export declare function zorgVoorStandaardLayouts(): Promise<boolean>;
56
+ /** Zelfde als zorgVoorFloridayLayouts; beide lopen via de server. */
57
+ export declare const zorgVoorStandaardLayouts: typeof zorgVoorFloridayLayouts;
49
58
  export declare function useLayouts(): {
50
59
  layouts: LayoutModel[];
51
60
  loading: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentData.d.ts","sourceRoot":"","sources":["../../src/lib/useDocumentData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDocumentData.d.ts","sourceRoot":"","sources":["../../src/lib/useDocumentData.ts"],"names":[],"mappings":"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"}
@@ -4,143 +4,42 @@
4
4
  import { useCallback, useEffect, useState } from "react";
5
5
  import { toast } from "@flowselections/core";
6
6
  import { supabase } from "./supabaseClient.js";
7
- import { FLORIDAY_LAYOUT_TOELICHTING, FLORIDAY_SYSTEEM_LAYOUTS, STANDAARD_LAYOUTS } from "./documentTypes.js";
8
- import { standaardProductiebonConfig } from "./productiebonBuilder.js";
9
7
  const arr = (v) => (Array.isArray(v) ? v : []);
10
8
  // --- Layouts ---------------------------------------------------------------
11
9
  /**
12
10
  * Zorgt dat de vaste Floriday-layouts altijd bestaan, ook in een verse shell
13
11
  * waar de seed-SQL nog niet is gedraaid. Idempotent en stil bij fouten.
14
12
  */
15
- let floridaySeedGedaan = false;
16
- export async function zorgVoorFloridayLayouts() {
17
- if (floridaySeedGedaan)
18
- return false;
19
- try {
20
- const namen = FLORIDAY_SYSTEEM_LAYOUTS.map((l) => l.naam);
21
- const { data, error } = await supabase
22
- .from("document_layouts")
23
- .select("naam")
24
- .in("naam", namen);
25
- if (error)
26
- return false;
27
- const bestaand = new Set(arr(data).map((r) => r.naam));
28
- const ontbreekt = FLORIDAY_SYSTEEM_LAYOUTS.filter((l) => !bestaand.has(l.naam));
29
- floridaySeedGedaan = true;
30
- if (!ontbreekt.length)
31
- return false;
32
- const rijen = ontbreekt.map((l) => ({
33
- naam: l.naam,
34
- documenttype: l.documenttype,
35
- omschrijving: FLORIDAY_LAYOUT_TOELICHTING,
36
- papierformaat: l.papierformaat,
37
- breedte_mm: l.breedte_mm,
38
- hoogte_mm: l.hoogte_mm,
39
- orientatie: "portrait",
40
- bron: "floriday",
41
- systeem: true,
42
- actief: true,
43
- }));
44
- const { error: insertError } = await supabase.from("document_layouts").insert(rijen);
45
- return !insertError;
46
- }
47
- catch {
48
- return false;
49
- }
50
- }
13
+ let seedGevraagd = false;
51
14
  /**
52
- * Zorgt dat de eigen standaardlayouts (Pakbon, Afleverbrief (BVO)) bij een
53
- * verse shell worden aangemaakt. In tegenstelling tot de Floriday-layouts
54
- * gebeurt dit slechts één keer per shell, bijgehouden in public.app_settings
55
- * (key = "standaard_layouts_geseed"). Verwijdert de gebruiker een layout, dan
56
- * wordt deze niet opnieuw aangemaakt.
15
+ * Vraagt de server (servicerol) om de standaardlayouts aan te maken als er nog
16
+ * geen enkele layout bestaat. Schrijft nooit met de gebruikerssessie.
57
17
  */
58
- let standaardSeedGedaan = false;
59
- const STANDAARD_SEED_KEY = "standaard_layouts_geseed";
60
- /**
61
- * Versie van de standaardset. Komt er een standaarddocument bij, dan gaat dit
62
- * getal omhoog en wordt in bestaande shells alleen het nieuwe document alsnog
63
- * eenmalig aangemaakt. Eerder verwijderde documenten komen niet terug, want
64
- * per versie wordt maar één keer gekeken.
65
- */
66
- const STANDAARD_SEED_VERSIE = "2";
67
- export async function zorgVoorStandaardLayouts() {
68
- if (standaardSeedGedaan)
18
+ export async function zorgVoorFloridayLayouts() {
19
+ if (seedGevraagd)
69
20
  return false;
21
+ seedGevraagd = true;
70
22
  try {
71
- const { data: vlag } = await supabase
72
- .from("app_settings")
73
- .select("value")
74
- .eq("key", STANDAARD_SEED_KEY)
75
- .maybeSingle();
76
- const huidig = String(vlag?.value ?? "");
77
- if (huidig === STANDAARD_SEED_VERSIE) {
78
- standaardSeedGedaan = true;
79
- return false;
80
- }
81
- const namen = STANDAARD_LAYOUTS.map((l) => l.naam);
82
- const { data, error } = await supabase
83
- .from("document_layouts")
84
- .select("naam")
85
- .in("naam", namen);
86
- if (error)
87
- return false;
88
- const bestaand = new Set(arr(data).map((r) => r.naam));
89
- const ontbreekt = STANDAARD_LAYOUTS.filter((l) => !bestaand.has(l.naam));
90
- standaardSeedGedaan = true;
91
- let gelukt = true;
92
- if (ontbreekt.length > 0) {
93
- const rijen = ontbreekt.map((l) => ({
94
- naam: l.naam,
95
- documenttype: l.documenttype,
96
- omschrijving: l.omschrijving,
97
- papierformaat: l.papierformaat,
98
- breedte_mm: l.breedte_mm,
99
- hoogte_mm: l.hoogte_mm,
100
- orientatie: "portrait",
101
- bron: "eigen",
102
- systeem: false,
103
- actief: true,
104
- // De productiebon start met de vaste blokindeling van deze module,
105
- // zodat hij in een verse shell niet leeg is.
106
- config: l.documenttype === "productiebon"
107
- ? { productiebon: standaardProductiebonConfig() }
108
- : {},
109
- }));
110
- const { error: insertError } = await supabase
111
- .from("document_layouts")
112
- .insert(rijen);
113
- if (insertError) {
114
- // Niet afvinken: bij een volgende poging (bijv. na het bijwerken van
115
- // de database) wordt het opnieuw geprobeerd.
116
- standaardSeedGedaan = false;
117
- gelukt = false;
118
- }
119
- }
120
- if (gelukt) {
121
- await supabase
122
- .from("app_settings")
123
- .upsert({ key: STANDAARD_SEED_KEY, value: STANDAARD_SEED_VERSIE }, {
124
- onConflict: "key",
125
- });
126
- }
127
- return gelukt && ontbreekt.length > 0;
23
+ const { zorgVoorStandaardLayoutsFn } = await import("./printService.functions.js");
24
+ const r = await zorgVoorStandaardLayoutsFn();
25
+ if (!r?.ok)
26
+ seedGevraagd = false;
27
+ return Number(r?.aangemaakt ?? 0) > 0;
128
28
  }
129
29
  catch {
30
+ seedGevraagd = false;
130
31
  return false;
131
32
  }
132
33
  }
34
+ /** Zelfde als zorgVoorFloridayLayouts; beide lopen via de server. */
35
+ export const zorgVoorStandaardLayouts = zorgVoorFloridayLayouts;
133
36
  export function useLayouts() {
134
37
  const [layouts, setLayouts] = useState([]);
135
38
  const [loading, setLoading] = useState(true);
136
39
  const load = useCallback(async (stil = false) => {
137
40
  if (!stil)
138
41
  setLoading(true);
139
- const [geseedStd, geseedFlo] = await Promise.all([
140
- zorgVoorStandaardLayouts(),
141
- zorgVoorFloridayLayouts(),
142
- ]);
143
- const geseed = geseedStd || geseedFlo;
42
+ const geseed = await zorgVoorFloridayLayouts();
144
43
  const { data, error } = await supabase
145
44
  .from("document_layouts")
146
45
  .select("*")
@@ -416,7 +315,7 @@ export function usePrintJobs() {
416
315
  setLoading(true);
417
316
  const { data } = await supabase
418
317
  .from("print_jobs")
419
- .select("id, layout_id, printer_id, documenttype, documentnaam, status, paginas, kopieen, foutmelding, is_herprint, gebruiker_naam, created_at, voltooid_op, extern_job_id, gebruikte_layout_id, gebruikte_bron, payload, lokale_pdf_status, lokaal_opgeslagen_op, lokale_pdf_fout, lokale_pdf_print_plek_id, artefact_pad, artefact_sha256, artefact_bytes, verwerkingsfase, foutcode")
318
+ .select("id, layout_id, printer_id, documenttype, documentnaam, status, paginas, kopieen, foutmelding, is_herprint, gebruiker_naam, created_at, voltooid_op, extern_job_id, gebruikte_layout_id, gebruikte_bron, payload, lokale_pdf_status, lokaal_opgeslagen_op, lokale_pdf_fout, lokale_pdf_print_plek_id, artefact_pad, artefact_sha256, artefact_bytes, verwerkingsfase, foutcode, printnode_status, printnode_bericht, printnode_status_op")
420
319
  .order("created_at", { ascending: false })
421
320
  .limit(200);
422
321
  setJobs(arr(data));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/layout-maker",
3
- "version": "1.51.3",
3
+ "version": "1.53.1",
4
4
  "flowselections": {
5
5
  "moduleId": "layout-maker",
6
6
  "pages": [
@@ -127,7 +127,7 @@
127
127
  "@cloudflare/vite-plugin": "^1.25.5",
128
128
  "@eslint/js": "^9.32.0",
129
129
  "@flowselections/core": "1.0.29",
130
- "@lovable.dev/vite-tanstack-config": "2.23.1",
130
+ "@lovable.dev/vite-tanstack-config": "2.25.3",
131
131
  "@rsbuild/core": "^1.0.0",
132
132
  "@tailwindcss/vite": "^4.2.1",
133
133
  "@tanstack/react-query": "^5.83.0",