kempo 4.2.18 → 4.2.20

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 (140) hide show
  1. package/app-public/CATCH.page.html +15 -0
  2. package/app-public/kempo-global.global.html +0 -6
  3. package/dist/admin/accounts/groups/[name]/index.page.html +112 -2
  4. package/dist/admin/accounts/groups/index.page.html +87 -2
  5. package/dist/admin/accounts/permissions/index.page.html +84 -2
  6. package/dist/admin/accounts/users/[id]/index.page.html +117 -3
  7. package/dist/admin/accounts/users/index.page.html +116 -2
  8. package/dist/admin/components/tableControls/InstallExtension.js +2 -2
  9. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  10. package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
  11. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  12. package/dist/admin/content/fragments/edit/index.page.html +8 -1
  13. package/dist/admin/content/fragments/index.page.html +87 -2
  14. package/dist/admin/content/globals/edit/index.page.html +8 -1
  15. package/dist/admin/content/globals/index.page.html +102 -7
  16. package/dist/admin/content/pages/edit/index.page.html +8 -1
  17. package/dist/admin/content/pages/index.page.html +224 -27
  18. package/dist/admin/content/templates/edit/index.page.html +8 -1
  19. package/dist/admin/content/templates/index.page.html +116 -2
  20. package/dist/admin/default.template.html +20 -1
  21. package/dist/admin/extensions/index.page.html +59 -2
  22. package/dist/admin/icons/extension_add.svg +1 -0
  23. package/dist/admin/icons/extension_remove.svg +1 -0
  24. package/dist/admin/index.page.html +5 -1
  25. package/dist/admin/nav.fragment.html +84 -2
  26. package/dist/admin/settings/[owner]/[name]/index.page.html +110 -4
  27. package/dist/admin/settings/index.page.html +87 -2
  28. package/dist/kempo/api/fragments/DELETE.js +1 -1
  29. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  30. package/dist/kempo/api/fragments/GET.js +1 -1
  31. package/dist/kempo/api/fragments/GET.js.map +1 -1
  32. package/dist/kempo/api/fragments/POST.js +1 -1
  33. package/dist/kempo/api/fragments/POST.js.map +1 -1
  34. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  35. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  36. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  37. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  38. package/dist/kempo/api/fragments/file/GET.js +1 -1
  39. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  40. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  41. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  42. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  43. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  44. package/dist/kempo/api/fragments/lock/PUT.js +1 -1
  45. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
  46. package/dist/kempo/api/globals/DELETE.js +1 -1
  47. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  48. package/dist/kempo/api/globals/GET.js +1 -1
  49. package/dist/kempo/api/globals/GET.js.map +1 -1
  50. package/dist/kempo/api/globals/POST.js +1 -1
  51. package/dist/kempo/api/globals/POST.js.map +1 -1
  52. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  53. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  54. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  55. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  56. package/dist/kempo/api/globals/entry/GET.js +1 -1
  57. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  58. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  59. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  60. package/dist/kempo/api/globals/lock/PUT.js +1 -1
  61. package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
  62. package/dist/kempo/api/pages/DELETE.js +1 -1
  63. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  64. package/dist/kempo/api/pages/GET.js +1 -1
  65. package/dist/kempo/api/pages/GET.js.map +1 -1
  66. package/dist/kempo/api/pages/POST.js +1 -1
  67. package/dist/kempo/api/pages/POST.js.map +1 -1
  68. package/dist/kempo/api/pages/directories/GET.js +1 -1
  69. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  70. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  71. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  72. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  73. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  74. package/dist/kempo/api/pages/file/GET.js +1 -1
  75. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  76. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  77. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  78. package/dist/kempo/api/pages/file/PUT.js +1 -1
  79. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  80. package/dist/kempo/api/pages/lock/PUT.js +1 -1
  81. package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
  82. package/dist/kempo/api/pages/rescan/POST.js +2 -0
  83. package/dist/kempo/api/pages/rescan/POST.js.map +1 -0
  84. package/dist/kempo/api/pages/search/GET.js +1 -1
  85. package/dist/kempo/api/pages/search/GET.js.map +1 -1
  86. package/dist/kempo/api/pages/templates/GET.js +1 -1
  87. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  88. package/dist/kempo/api/templates/DELETE.js +1 -1
  89. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  90. package/dist/kempo/api/templates/GET.js +1 -1
  91. package/dist/kempo/api/templates/GET.js.map +1 -1
  92. package/dist/kempo/api/templates/POST.js +1 -1
  93. package/dist/kempo/api/templates/POST.js.map +1 -1
  94. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  95. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  96. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  97. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  98. package/dist/kempo/api/templates/file/GET.js +1 -1
  99. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  100. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  101. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  102. package/dist/kempo/api/templates/file/PUT.js +1 -1
  103. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  104. package/dist/kempo/api/templates/lock/PUT.js +1 -1
  105. package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
  106. package/dist/kempo/icons/browse.svg +1 -0
  107. package/dist/kempo/icons/cards_stack.svg +1 -0
  108. package/dist/kempo/icons/content.svg +1 -0
  109. package/dist/kempo/icons/deployed_code_update.svg +1 -0
  110. package/dist/kempo/icons/docs.svg +1 -0
  111. package/dist/kempo/icons/drive_file_move.svg +1 -0
  112. package/dist/kempo/icons/extension.svg +1 -0
  113. package/dist/kempo/icons/globe.svg +1 -0
  114. package/dist/kempo/icons/group.svg +1 -0
  115. package/dist/kempo/icons/lock.svg +1 -0
  116. package/dist/kempo/icons/lock_add.svg +1 -0
  117. package/dist/kempo/icons/manage-accounts.svg +1 -0
  118. package/dist/kempo/icons/person.svg +1 -0
  119. package/dist/kempo/icons/person_add.svg +1 -0
  120. package/dist/kempo/icons/preview.svg +1 -0
  121. package/dist/kempo/icons/save.svg +1 -0
  122. package/dist/kempo/icons/timer_off.svg +1 -0
  123. package/dist/kempo/icons/visibility.svg +1 -0
  124. package/dist/kempo/sdk.js +1 -1
  125. package/dist/kempo/sdk.js.map +1 -1
  126. package/middleware/kempo.js +50 -1
  127. package/package.json +3 -3
  128. package/server/utils/fragments/listFragments.js +10 -1
  129. package/server/utils/hooks/triggerHook.js +7 -12
  130. package/server/utils/pages/listPages.js +57 -7
  131. package/app-public/kempo-global.global-disabled.html +0 -0
  132. package/app-public/new-page.page.html +0 -17
  133. package/app-public/test.page.html +0 -21
  134. package/dist/kempo/icons/format_indent_decrease.svg +0 -1
  135. package/dist/kempo/icons/format_indent_increase.svg +0 -1
  136. package/dist/kempo/icons/format_quote.svg +0 -1
  137. package/dist/kempo/icons/redo.svg +0 -1
  138. package/dist/kempo/icons/subscript.svg +0 -1
  139. package/dist/kempo/icons/superscript.svg +0 -1
  140. package/dist/kempo/icons/undo.svg +0 -1
@@ -1,7 +1,118 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Users - Admin"><content><script type="module" src="/kempo-ui/components/Table.js"></script><script type="module" src="/kempo-ui/components/tableControls/FirstPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PrevPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/NextPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/LastPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSelect.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSize.js"></script><script type="module" src="/kempo-ui/components/tableControls/Edit.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteRecord.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteSelected.js"></script><script type="module" src="/kempo-ui/components/Toggle.js"></script><script type="module" src="/admin/components/TableRowLink.js"></script><script type="module" src="/kempo/components/Permission.js"></script><div class="d-f mb" style="align-items: center;"><h1 class="flex mb0">Users</h1><k-permission has="system:user:create"><button id="createUserBtn" class="primary">Create User</button></k-permission></div><k-table id="usersTable" enable-pages page-size="10" page-size-options="[10,25,50]" placeholder="No users found." filtered-placeholder="No users match your search."><admin-table-row-link slot="before" url-pattern="/admin/accounts/users/{id}" field-name="id"></admin-table-row-link><div slot="top" class="d-f full" style="align-items: center;"><div><k-permission has="system:user:delete"><k-tc-delete-selected></k-tc-delete-selected></k-permission></div></div><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><script type="module">import { getUsers, createUser, updateUser, deleteUsers, getAllCurrentUserPermissions } from '/kempo/sdk.js';
4
+ <page title="Users - Admin">
5
+ <content>
6
+ <script
7
+ type="module"
8
+ src="/kempo-ui/components/Table.js"
9
+ ></script>
10
+ <script
11
+ type="module"
12
+ src="/kempo-ui/components/tableControls/FirstPage.js"
13
+ ></script>
14
+ <script
15
+ type="module"
16
+ src="/kempo-ui/components/tableControls/PrevPage.js"
17
+ ></script>
18
+ <script
19
+ type="module"
20
+ src="/kempo-ui/components/tableControls/NextPage.js"
21
+ ></script>
22
+ <script
23
+ type="module"
24
+ src="/kempo-ui/components/tableControls/LastPage.js"
25
+ ></script>
26
+ <script
27
+ type="module"
28
+ src="/kempo-ui/components/tableControls/PageSelect.js"
29
+ ></script>
30
+ <script
31
+ type="module"
32
+ src="/kempo-ui/components/tableControls/PageSize.js"
33
+ ></script>
34
+ <script
35
+ type="module"
36
+ src="/kempo-ui/components/tableControls/Edit.js"
37
+ ></script>
38
+ <script
39
+ type="module"
40
+ src="/kempo-ui/components/tableControls/DeleteRecord.js"
41
+ ></script>
42
+ <script
43
+ type="module"
44
+ src="/kempo-ui/components/tableControls/DeleteSelected.js"
45
+ ></script>
46
+ <script
47
+ type="module"
48
+ src="/kempo-ui/components/Toggle.js"
49
+ ></script>
50
+ <script
51
+ type="module"
52
+ src="/admin/components/TableRowLink.js"
53
+ ></script>
54
+ <script
55
+ type="module"
56
+ src="/kempo/components/Permission.js"
57
+ ></script>
58
+ <div
59
+ class="d-f mb"
60
+ style="align-items: center;"
61
+ >
62
+ <h1 class="flex mb0">Users</h1>
63
+ <k-permission has="system:user:create">
64
+ <button
65
+ id="createUserBtn"
66
+ class="primary"
67
+ >Create User</button>
68
+ </k-permission>
69
+ </div>
70
+ <k-table
71
+ id="usersTable"
72
+ enable-pages
73
+ page-size="10"
74
+ page-size-options="[10,25,50]"
75
+ placeholder="No users found."
76
+ filtered-placeholder="No users match your search."
77
+ >
78
+ <admin-table-row-link
79
+ slot="before"
80
+ url-pattern="/admin/accounts/users/{id}"
81
+ field-name="id"
82
+ ></admin-table-row-link>
83
+ <div
84
+ slot="top"
85
+ class="d-f full"
86
+ style="align-items: center;"
87
+ >
88
+ <div>
89
+ <k-permission has="system:user:delete">
90
+ <k-tc-delete-selected></k-tc-delete-selected>
91
+ </k-permission>
92
+ </div>
93
+ </div>
94
+ <div
95
+ class="d-f full"
96
+ style="align-items: center;"
97
+ >
98
+ <div>
99
+ <k-tc-first-page></k-tc-first-page>
100
+ <k-tc-prev-page></k-tc-prev-page>
101
+ <k-tc-next-page></k-tc-next-page>
102
+ <k-tc-last-page></k-tc-last-page>
103
+ </div>
104
+ <div class="flex"></div>
105
+ <div>
106
+ <k-tc-page-select></k-tc-page-select>
107
+ </div>
108
+ <div class="flex"></div>
109
+ <div>
110
+ <k-tc-page-size></k-tc-page-size>
111
+ </div>
112
+ </div>
113
+ </k-table>
114
+ <script type="module">
115
+ import { getUsers, createUser, updateUser, deleteUsers, getAllCurrentUserPermissions } from '/kempo/sdk.js';
5
116
  import { html } from '/kempo-ui/lit-all.min.js';
6
117
  import Toast from '/kempo-ui/components/Toast.js';
7
118
  import Dialog from '/kempo-ui/components/Dialog.js';
@@ -157,4 +268,7 @@
157
268
  cancelText: 'Cancel'
158
269
  });
159
270
  });
160
- }</script></content></page>
271
+ }
272
+ </script>
273
+ </content>
274
+ </page>
@@ -1,6 +1,6 @@
1
- import o from"/kempo-ui/components/tableControls/TableControl.js";import{html as t}from"/kempo-ui/lit-all.min.js";import n from"/kempo-ui/components/Dialog.js";import e from"/kempo-ui/components/Toast.js";import"/kempo-ui/components/Icon.js";export default class s extends o{install=async()=>{this.record&&n.confirm(`Install "${this.record.name}"?`,async o=>{if(!o)return;const{installExtension:t}=await import("/kempo/sdk.js"),[n]=await t(this.record.name);n?e.error(n.msg||"Failed to install extension"):(e.success(`"${this.record.name}" installed successfully`),this.table.deleteRecord(this.record))})};render(){return t`
1
+ import t from"/kempo-ui/components/tableControls/TableControl.js";import{html as o}from"/kempo-ui/lit-all.min.js";import n from"/kempo-ui/components/Dialog.js";import e from"/kempo-ui/components/Toast.js";import"/kempo-ui/components/Icon.js";export default class s extends t{install=async()=>{this.record&&n.confirm(`Install "${this.record.name}"?`,async t=>{if(!t)return;const{installExtension:o}=await import("/kempo/sdk.js"),[n]=await o(this.record.name);n?e.error(n.msg||"Failed to install extension"):(e.success(`"${this.record.name}" installed successfully`),this.table.deleteRecord(this.record))})};render(){return o`
2
2
  <button class="no-btn icon-btn" title="Install Extension" @click="${this.install}">
3
- <k-icon name="download"></k-icon>
3
+ <k-icon name="extension_add"></k-icon>
4
4
  </button>
5
5
  `}}customElements.define("admin-install-extension",s);
6
6
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\admin\components\tableControls\InstallExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\admin\\components\\tableControls\\InstallExtension.js","names":["TableControl","html","Dialog","Toast","InstallExtension","install","async","this","record","confirm","name","confirmed","installExtension","import","error","msg","success","table","deleteRecord","render","customElements","define"],"sources":["0"],"sourcesContent":["import TableControl from '/kempo-ui/components/tableControls/TableControl.js';\r\nimport { html } from '/kempo-ui/lit-all.min.js';\r\nimport Dialog from '/kempo-ui/components/Dialog.js';\r\nimport Toast from '/kempo-ui/components/Toast.js';\r\nimport '/kempo-ui/components/Icon.js';\r\n\r\nexport default class InstallExtension extends TableControl {\r\n install = async () => {\r\n if(!this.record) return;\r\n\r\n Dialog.confirm(`Install \"${this.record.name}\"?`, async confirmed => {\r\n if(!confirmed) return;\r\n\r\n const { installExtension } = await import('/kempo/sdk.js');\r\n const [error] = await installExtension(this.record.name);\r\n\r\n if(error){\r\n Toast.error(error.msg || 'Failed to install extension');\r\n return;\r\n }\r\n\r\n Toast.success(`\"${this.record.name}\" installed successfully`);\r\n this.table.deleteRecord(this.record);\r\n });\r\n };\r\n\r\n render(){\r\n return html`\r\n <button class=\"no-btn icon-btn\" title=\"Install Extension\" @click=\"${this.install}\">\r\n <k-icon name=\"download\"></k-icon>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define('admin-install-extension', InstallExtension);\r\n"],"mappings":"OAAOA,MAAkB,oEAChBC,MAAY,kCACdC,MAAY,wCACZC,MAAW,sCACX,8CAEQ,MAAMC,UAAyBJ,EAC5CK,QAAUC,UACJC,KAAKC,QAETN,EAAOO,QAAQ,YAAYF,KAAKC,OAAOE,SAAUJ,UAC/C,IAAIK,EAAW,OAEf,MAAMC,iBAAEA,SAA2BC,OAAO,kBACnCC,SAAeF,EAAiBL,KAAKC,OAAOE,MAEhDI,EACDX,EAAMW,MAAMA,EAAMC,KAAO,gCAI3BZ,EAAMa,QAAQ,IAAIT,KAAKC,OAAOE,gCAC9BH,KAAKU,MAAMC,aAAaX,KAAKC,YAIjC,MAAAW,GACE,OAAOlB,CAAI;0EAC2DM,KAAKF;;;KAI7E,EAGFe,eAAeC,OAAO,0BAA2BjB","ignoreList":[]}
1
+ {"version":3,"file":"src\\admin\\components\\tableControls\\InstallExtension.js","names":["TableControl","html","Dialog","Toast","InstallExtension","install","async","this","record","confirm","name","confirmed","installExtension","import","error","msg","success","table","deleteRecord","render","customElements","define"],"sources":["0"],"sourcesContent":["import TableControl from '/kempo-ui/components/tableControls/TableControl.js';\r\nimport { html } from '/kempo-ui/lit-all.min.js';\r\nimport Dialog from '/kempo-ui/components/Dialog.js';\r\nimport Toast from '/kempo-ui/components/Toast.js';\r\nimport '/kempo-ui/components/Icon.js';\r\n\r\nexport default class InstallExtension extends TableControl {\r\n install = async () => {\r\n if(!this.record) return;\r\n\r\n Dialog.confirm(`Install \"${this.record.name}\"?`, async confirmed => {\r\n if(!confirmed) return;\r\n\r\n const { installExtension } = await import('/kempo/sdk.js');\r\n const [error] = await installExtension(this.record.name);\r\n\r\n if(error){\r\n Toast.error(error.msg || 'Failed to install extension');\r\n return;\r\n }\r\n\r\n Toast.success(`\"${this.record.name}\" installed successfully`);\r\n this.table.deleteRecord(this.record);\r\n });\r\n };\r\n\r\n render(){\r\n return html`\r\n <button class=\"no-btn icon-btn\" title=\"Install Extension\" @click=\"${this.install}\">\r\n <k-icon name=\"extension_add\"></k-icon>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define('admin-install-extension', InstallExtension);\r\n"],"mappings":"OAAOA,MAAkB,oEAChBC,MAAY,kCACdC,MAAY,wCACZC,MAAW,sCACX,8CAEQ,MAAMC,UAAyBJ,EAC5CK,QAAUC,UACJC,KAAKC,QAETN,EAAOO,QAAQ,YAAYF,KAAKC,OAAOE,SAAUJ,UAC/C,IAAIK,EAAW,OAEf,MAAMC,iBAAEA,SAA2BC,OAAO,kBACnCC,SAAeF,EAAiBL,KAAKC,OAAOE,MAEhDI,EACDX,EAAMW,MAAMA,EAAMC,KAAO,gCAI3BZ,EAAMa,QAAQ,IAAIT,KAAKC,OAAOE,gCAC9BH,KAAKU,MAAMC,aAAaX,KAAKC,YAIjC,MAAAW,GACE,OAAOlB,CAAI;0EAC2DM,KAAKF;;;KAI7E,EAGFe,eAAeC,OAAO,0BAA2BjB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import n from"/kempo-ui/components/tableControls/TableControl.js";import{html as t}from"/kempo-ui/lit-all.min.js";import e from"/kempo-ui/components/Dialog.js";import o from"/kempo-ui/components/Toast.js";import"/kempo-ui/components/Icon.js";export default class s extends n{uninstall=async()=>{this.record&&e.confirm(`Uninstall "${this.record.name}"? This may delete extension data.`,async n=>{if(!n)return;const{uninstallExtension:t}=await import("/kempo/sdk.js"),[e]=await t(this.record.name);e?o.error(e.msg||"Failed to uninstall extension"):(o.success(`"${this.record.name}" uninstalled successfully`),this.table.deleteRecord(this.record))})};render(){return t`
1
+ import n from"/kempo-ui/components/tableControls/TableControl.js";import{html as e}from"/kempo-ui/lit-all.min.js";import t from"/kempo-ui/components/Dialog.js";import o from"/kempo-ui/components/Toast.js";import"/kempo-ui/components/Icon.js";export default class s extends n{uninstall=async()=>{this.record&&t.confirm(`Uninstall "${this.record.name}"? This may delete extension data.`,async n=>{if(!n)return;const{uninstallExtension:e}=await import("/kempo/sdk.js"),[t]=await e(this.record.name);t?o.error(t.msg||"Failed to uninstall extension"):(o.success(`"${this.record.name}" uninstalled successfully`),this.table.deleteRecord(this.record))})};render(){return e`
2
2
  <button class="no-btn icon-btn" title="Uninstall Extension" @click="${this.uninstall}">
3
- <k-icon name="delete"></k-icon>
3
+ <k-icon name="extension_remove"></k-icon>
4
4
  </button>
5
5
  `}}customElements.define("admin-uninstall-extension",s);
6
6
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\admin\components\tableControls\UninstallExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\admin\\components\\tableControls\\UninstallExtension.js","names":["TableControl","html","Dialog","Toast","UninstallExtension","uninstall","async","this","record","confirm","name","confirmed","uninstallExtension","import","error","msg","success","table","deleteRecord","render","customElements","define"],"sources":["0"],"sourcesContent":["import TableControl from '/kempo-ui/components/tableControls/TableControl.js';\r\nimport { html } from '/kempo-ui/lit-all.min.js';\r\nimport Dialog from '/kempo-ui/components/Dialog.js';\r\nimport Toast from '/kempo-ui/components/Toast.js';\r\nimport '/kempo-ui/components/Icon.js';\r\n\r\nexport default class UninstallExtension extends TableControl {\r\n uninstall = async () => {\r\n if(!this.record) return;\r\n\r\n Dialog.confirm(`Uninstall \"${this.record.name}\"? This may delete extension data.`, async confirmed => {\r\n if(!confirmed) return;\r\n\r\n const { uninstallExtension } = await import('/kempo/sdk.js');\r\n const [error] = await uninstallExtension(this.record.name);\r\n\r\n if(error){\r\n Toast.error(error.msg || 'Failed to uninstall extension');\r\n return;\r\n }\r\n\r\n Toast.success(`\"${this.record.name}\" uninstalled successfully`);\r\n this.table.deleteRecord(this.record);\r\n });\r\n };\r\n\r\n render(){\r\n return html`\r\n <button class=\"no-btn icon-btn\" title=\"Uninstall Extension\" @click=\"${this.uninstall}\">\r\n <k-icon name=\"delete\"></k-icon>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define('admin-uninstall-extension', UninstallExtension);\r\n"],"mappings":"OAAOA,MAAkB,oEAChBC,MAAY,kCACdC,MAAY,wCACZC,MAAW,sCACX,8CAEQ,MAAMC,UAA2BJ,EAC9CK,UAAYC,UACNC,KAAKC,QAETN,EAAOO,QAAQ,cAAcF,KAAKC,OAAOE,yCAA0CJ,UACjF,IAAIK,EAAW,OAEf,MAAMC,mBAAEA,SAA6BC,OAAO,kBACrCC,SAAeF,EAAmBL,KAAKC,OAAOE,MAElDI,EACDX,EAAMW,MAAMA,EAAMC,KAAO,kCAI3BZ,EAAMa,QAAQ,IAAIT,KAAKC,OAAOE,kCAC9BH,KAAKU,MAAMC,aAAaX,KAAKC,YAIjC,MAAAW,GACE,OAAOlB,CAAI;4EAC6DM,KAAKF;;;KAI/E,EAGFe,eAAeC,OAAO,4BAA6BjB","ignoreList":[]}
1
+ {"version":3,"file":"src\\admin\\components\\tableControls\\UninstallExtension.js","names":["TableControl","html","Dialog","Toast","UninstallExtension","uninstall","async","this","record","confirm","name","confirmed","uninstallExtension","import","error","msg","success","table","deleteRecord","render","customElements","define"],"sources":["0"],"sourcesContent":["import TableControl from '/kempo-ui/components/tableControls/TableControl.js';\r\nimport { html } from '/kempo-ui/lit-all.min.js';\r\nimport Dialog from '/kempo-ui/components/Dialog.js';\r\nimport Toast from '/kempo-ui/components/Toast.js';\r\nimport '/kempo-ui/components/Icon.js';\r\n\r\nexport default class UninstallExtension extends TableControl {\r\n uninstall = async () => {\r\n if(!this.record) return;\r\n\r\n Dialog.confirm(`Uninstall \"${this.record.name}\"? This may delete extension data.`, async confirmed => {\r\n if(!confirmed) return;\r\n\r\n const { uninstallExtension } = await import('/kempo/sdk.js');\r\n const [error] = await uninstallExtension(this.record.name);\r\n\r\n if(error){\r\n Toast.error(error.msg || 'Failed to uninstall extension');\r\n return;\r\n }\r\n\r\n Toast.success(`\"${this.record.name}\" uninstalled successfully`);\r\n this.table.deleteRecord(this.record);\r\n });\r\n };\r\n\r\n render(){\r\n return html`\r\n <button class=\"no-btn icon-btn\" title=\"Uninstall Extension\" @click=\"${this.uninstall}\">\r\n <k-icon name=\"extension_remove\"></k-icon>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define('admin-uninstall-extension', UninstallExtension);\r\n"],"mappings":"OAAOA,MAAkB,oEAChBC,MAAY,kCACdC,MAAY,wCACZC,MAAW,sCACX,8CAEQ,MAAMC,UAA2BJ,EAC9CK,UAAYC,UACNC,KAAKC,QAETN,EAAOO,QAAQ,cAAcF,KAAKC,OAAOE,yCAA0CJ,UACjF,IAAIK,EAAW,OAEf,MAAMC,mBAAEA,SAA6BC,OAAO,kBACrCC,SAAeF,EAAmBL,KAAKC,OAAOE,MAElDI,EACDX,EAAMW,MAAMA,EAAMC,KAAO,kCAI3BZ,EAAMa,QAAQ,IAAIT,KAAKC,OAAOE,kCAC9BH,KAAKU,MAAMC,aAAaX,KAAKC,YAIjC,MAAAW,GACE,OAAOlB,CAAI;4EAC6DM,KAAKF;;;KAI/E,EAGFe,eAAeC,OAAO,4BAA6BjB","ignoreList":[]}
@@ -1,4 +1,11 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Edit Fragment - Admin"><content><admin-fragment-editor></admin-fragment-editor></content><content location="head"><script type="module" src="/admin/components/FragmentEditor.js"></script></content></page>
4
+ <page title="Edit Fragment - Admin">
5
+ <content>
6
+ <admin-fragment-editor></admin-fragment-editor>
7
+ </content>
8
+ <content location="head">
9
+ <script type="module" src="/admin/components/FragmentEditor.js"></script>
10
+ </content>
11
+ </page>
@@ -1,7 +1,88 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Fragments - Admin"><content><script type="module" src="/kempo-ui/components/Table.js"></script><script type="module" src="/kempo-ui/components/tableControls/FirstPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PrevPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/NextPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/LastPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSelect.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSize.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteRecord.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteSelected.js"></script><script type="module" src="/kempo-ui/components/Icon.js"></script><script type="module" src="/admin/components/TableRowLink.js"></script><script type="module" src="/kempo/components/Permission.js"></script><div class="d-f mb" style="align-items: center; gap: var(--spacer);"><h1 class="flex mb0">Fragments</h1><k-permission has="system:fragments:create"><button id="createFragmentBtn" class="primary">Create Fragment</button></k-permission></div><h2>Custom Fragments</h2><k-table id="customTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No custom fragments have been created yet."><admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link><div slot="top" class="d-f full" style="align-items: center;"><div><k-permission has="system:fragments:delete"><k-tc-delete-selected></k-tc-delete-selected></k-permission></div></div><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><h2>Extension Fragments</h2><k-table id="extensionTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No extension fragments installed."><admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><h2>System Fragments</h2><k-table id="systemTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No system fragments found."><admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><script type="module">import { listFragments, listDirectories, createFragment, deleteFragments, getAllCurrentUserPermissions } from '/kempo/sdk.js';
4
+ <page title="Fragments - Admin">
5
+ <content>
6
+ <script type="module" src="/kempo-ui/components/Table.js"></script>
7
+ <script type="module" src="/kempo-ui/components/tableControls/FirstPage.js"></script>
8
+ <script type="module" src="/kempo-ui/components/tableControls/PrevPage.js"></script>
9
+ <script type="module" src="/kempo-ui/components/tableControls/NextPage.js"></script>
10
+ <script type="module" src="/kempo-ui/components/tableControls/LastPage.js"></script>
11
+ <script type="module" src="/kempo-ui/components/tableControls/PageSelect.js"></script>
12
+ <script type="module" src="/kempo-ui/components/tableControls/PageSize.js"></script>
13
+ <script type="module" src="/kempo-ui/components/tableControls/DeleteRecord.js"></script>
14
+ <script type="module" src="/kempo-ui/components/tableControls/DeleteSelected.js"></script>
15
+ <script type="module" src="/kempo-ui/components/Icon.js"></script>
16
+ <script type="module" src="/admin/components/TableRowLink.js"></script>
17
+ <script type="module" src="/kempo/components/Permission.js"></script>
18
+
19
+ <div class="d-f mb" style="align-items: center; gap: var(--spacer);">
20
+ <h1 class="flex mb0">Fragments</h1>
21
+ <k-permission has="system:fragments:create">
22
+ <button id="createFragmentBtn" class="primary">Create Fragment</button>
23
+ </k-permission>
24
+ </div>
25
+
26
+ <h2>Custom Fragments</h2>
27
+ <k-table id="customTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No custom fragments have been created yet.">
28
+ <admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link>
29
+ <div slot="top" class="d-f full" style="align-items: center;">
30
+ <div>
31
+ <k-permission has="system:fragments:delete">
32
+ <k-tc-delete-selected></k-tc-delete-selected>
33
+ </k-permission>
34
+ </div>
35
+ </div>
36
+ <div class="d-f full" style="align-items: center;">
37
+ <div>
38
+ <k-tc-first-page></k-tc-first-page>
39
+ <k-tc-prev-page></k-tc-prev-page>
40
+ <k-tc-next-page></k-tc-next-page>
41
+ <k-tc-last-page></k-tc-last-page>
42
+ </div>
43
+ <div class="flex"></div>
44
+ <div><k-tc-page-select></k-tc-page-select></div>
45
+ <div class="flex"></div>
46
+ <div><k-tc-page-size></k-tc-page-size></div>
47
+ </div>
48
+ </k-table>
49
+
50
+ <h2>Extension Fragments</h2>
51
+ <k-table id="extensionTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No extension fragments installed.">
52
+ <admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link>
53
+ <div class="d-f full" style="align-items: center;">
54
+ <div>
55
+ <k-tc-first-page></k-tc-first-page>
56
+ <k-tc-prev-page></k-tc-prev-page>
57
+ <k-tc-next-page></k-tc-next-page>
58
+ <k-tc-last-page></k-tc-last-page>
59
+ </div>
60
+ <div class="flex"></div>
61
+ <div><k-tc-page-select></k-tc-page-select></div>
62
+ <div class="flex"></div>
63
+ <div><k-tc-page-size></k-tc-page-size></div>
64
+ </div>
65
+ </k-table>
66
+
67
+ <h2>System Fragments</h2>
68
+ <k-table id="systemTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No system fragments found.">
69
+ <admin-table-row-link slot="before" url-pattern="/admin/content/fragments/edit?fragment={editPath}" field-name="editPath"></admin-table-row-link>
70
+ <div class="d-f full" style="align-items: center;">
71
+ <div>
72
+ <k-tc-first-page></k-tc-first-page>
73
+ <k-tc-prev-page></k-tc-prev-page>
74
+ <k-tc-next-page></k-tc-next-page>
75
+ <k-tc-last-page></k-tc-last-page>
76
+ </div>
77
+ <div class="flex"></div>
78
+ <div><k-tc-page-select></k-tc-page-select></div>
79
+ <div class="flex"></div>
80
+ <div><k-tc-page-size></k-tc-page-size></div>
81
+ </div>
82
+ </k-table>
83
+
84
+ <script type="module">
85
+ import { listFragments, listDirectories, createFragment, deleteFragments, getAllCurrentUserPermissions } from '/kempo/sdk.js';
5
86
  import { html } from '/kempo-ui/lit-all.min.js';
6
87
  import Dialog from '/kempo-ui/components/Dialog.js';
7
88
  import Toast from '/kempo-ui/components/Toast.js';
@@ -166,4 +247,8 @@
166
247
  updateSlug();
167
248
  });
168
249
  $dialog.querySelector('#dlg-name').addEventListener('input', updateSlug);
169
- });</script></content></page>
250
+ });
251
+ </script>
252
+ </content>
253
+ </page>
254
+
@@ -1,4 +1,11 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Edit Global Content - Admin"><content><admin-global-content-editor></admin-global-content-editor></content><content location="head"><script type="module" src="/admin/components/GlobalContentEditor.js"></script></content></page>
4
+ <page title="Edit Global Content - Admin">
5
+ <content>
6
+ <admin-global-content-editor></admin-global-content-editor>
7
+ </content>
8
+ <content location="head">
9
+ <script type="module" src="/admin/components/GlobalContentEditor.js"></script>
10
+ </content>
11
+ </page>
@@ -1,7 +1,89 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Global Content - Admin"><content><script type="module" src="/kempo-ui/components/Table.js"></script><script type="module" src="/kempo-ui/components/tableControls/FirstPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PrevPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/NextPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/LastPage.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSelect.js"></script><script type="module" src="/kempo-ui/components/tableControls/PageSize.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteRecord.js"></script><script type="module" src="/kempo-ui/components/tableControls/DeleteSelected.js"></script><script type="module" src="/kempo-ui/components/Icon.js"></script><script type="module" src="/admin/components/TableRowLink.js"></script><script type="module" src="/kempo/components/Permission.js"></script><div class="d-f mb" style="align-items: center; gap: var(--spacer);"><h1 class="flex mb0">Global Content</h1><k-permission has="system:globals:create"><button id="createGlobalBtn" class="primary">Create Global Content</button></k-permission></div><h2>Custom</h2><k-table id="customTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No custom global content has been created yet."><admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link><div slot="top" class="d-f full" style="align-items: center;"><div><k-permission has="system:globals:delete"><k-tc-delete-selected></k-tc-delete-selected></k-permission></div></div><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><h2>Extensions</h2><k-table id="extensionTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No extension global content installed."><admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><h2>System</h2><k-table id="systemTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No system global content found."><admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link><div class="d-f full" style="align-items: center;"><div><k-tc-first-page></k-tc-first-page><k-tc-prev-page></k-tc-prev-page><k-tc-next-page></k-tc-next-page><k-tc-last-page></k-tc-last-page></div><div class="flex"></div><div><k-tc-page-select></k-tc-page-select></div><div class="flex"></div><div><k-tc-page-size></k-tc-page-size></div></div></k-table><script type="module">import { listGlobalContent, listTemplates, createGlobalContent, deleteGlobalContent, getAllCurrentUserPermissions } from '/kempo/sdk.js';
4
+ <page title="Global Content - Admin">
5
+ <content>
6
+ <script type="module" src="/kempo-ui/components/Table.js"></script>
7
+ <script type="module" src="/kempo-ui/components/tableControls/FirstPage.js"></script>
8
+ <script type="module" src="/kempo-ui/components/tableControls/PrevPage.js"></script>
9
+ <script type="module" src="/kempo-ui/components/tableControls/NextPage.js"></script>
10
+ <script type="module" src="/kempo-ui/components/tableControls/LastPage.js"></script>
11
+ <script type="module" src="/kempo-ui/components/tableControls/PageSelect.js"></script>
12
+ <script type="module" src="/kempo-ui/components/tableControls/PageSize.js"></script>
13
+ <script type="module" src="/kempo-ui/components/tableControls/DeleteRecord.js"></script>
14
+ <script type="module" src="/kempo-ui/components/tableControls/DeleteSelected.js"></script>
15
+ <script type="module" src="/kempo-ui/components/Icon.js"></script>
16
+ <script type="module" src="/kempo-ui/components/Combobox.js"></script>
17
+ <script type="module" src="/admin/components/TableRowLink.js"></script>
18
+ <script type="module" src="/kempo/components/Permission.js"></script>
19
+
20
+ <div class="d-f mb" style="align-items: center; gap: var(--spacer);">
21
+ <h1 class="flex mb0">Global Content</h1>
22
+ <k-permission has="system:globals:create">
23
+ <button id="createGlobalBtn" class="primary">Create Global Content</button>
24
+ </k-permission>
25
+ </div>
26
+
27
+ <h2>Custom</h2>
28
+ <k-table id="customTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No custom global content has been created yet.">
29
+ <admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link>
30
+ <div slot="top" class="d-f full" style="align-items: center;">
31
+ <div>
32
+ <k-permission has="system:globals:delete">
33
+ <k-tc-delete-selected></k-tc-delete-selected>
34
+ </k-permission>
35
+ </div>
36
+ </div>
37
+ <div class="d-f full" style="align-items: center;">
38
+ <div>
39
+ <k-tc-first-page></k-tc-first-page>
40
+ <k-tc-prev-page></k-tc-prev-page>
41
+ <k-tc-next-page></k-tc-next-page>
42
+ <k-tc-last-page></k-tc-last-page>
43
+ </div>
44
+ <div class="flex"></div>
45
+ <div><k-tc-page-select></k-tc-page-select></div>
46
+ <div class="flex"></div>
47
+ <div><k-tc-page-size></k-tc-page-size></div>
48
+ </div>
49
+ </k-table>
50
+
51
+ <h2>Extensions</h2>
52
+ <k-table id="extensionTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No extension global content installed.">
53
+ <admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link>
54
+ <div class="d-f full" style="align-items: center;">
55
+ <div>
56
+ <k-tc-first-page></k-tc-first-page>
57
+ <k-tc-prev-page></k-tc-prev-page>
58
+ <k-tc-next-page></k-tc-next-page>
59
+ <k-tc-last-page></k-tc-last-page>
60
+ </div>
61
+ <div class="flex"></div>
62
+ <div><k-tc-page-select></k-tc-page-select></div>
63
+ <div class="flex"></div>
64
+ <div><k-tc-page-size></k-tc-page-size></div>
65
+ </div>
66
+ </k-table>
67
+
68
+ <h2>System</h2>
69
+ <k-table id="systemTable" enable-pages page-size="25" page-size-options="[10,25,50,100]" placeholder="No system global content found.">
70
+ <admin-table-row-link slot="before" url-pattern="/admin/content/globals/edit?id={id}" field-name="id"></admin-table-row-link>
71
+ <div class="d-f full" style="align-items: center;">
72
+ <div>
73
+ <k-tc-first-page></k-tc-first-page>
74
+ <k-tc-prev-page></k-tc-prev-page>
75
+ <k-tc-next-page></k-tc-next-page>
76
+ <k-tc-last-page></k-tc-last-page>
77
+ </div>
78
+ <div class="flex"></div>
79
+ <div><k-tc-page-select></k-tc-page-select></div>
80
+ <div class="flex"></div>
81
+ <div><k-tc-page-size></k-tc-page-size></div>
82
+ </div>
83
+ </k-table>
84
+
85
+ <script type="module">
86
+ import { listGlobalContent, listTemplates, listFragments, createGlobalContent, deleteGlobalContent, getAllCurrentUserPermissions } from '/kempo/sdk.js';
5
87
  import { html } from '/kempo-ui/lit-all.min.js';
6
88
  import Dialog from '/kempo-ui/components/Dialog.js';
7
89
  import Toast from '/kempo-ui/components/Toast.js';
@@ -86,7 +168,7 @@
86
168
  */
87
169
 
88
170
  document.getElementById('createGlobalBtn')?.addEventListener('click', async () => {
89
- const [tplError, tplData] = await listTemplates();
171
+ const [[tplError, tplData], [fragError, fragData]] = await Promise.all([listTemplates(), listFragments()]);
90
172
  const locations = new Set();
91
173
  if(!tplError && tplData?.templates){
92
174
  for(const t of tplData.templates){
@@ -95,6 +177,11 @@
95
177
  }
96
178
  }
97
179
  }
180
+ if(!fragError && fragData?.fragments){
181
+ for(const f of fragData.fragments){
182
+ for(const loc of (f.locations || [])) locations.add(loc);
183
+ }
184
+ }
98
185
  const locationOptions = [...locations].sort();
99
186
 
100
187
  const $dialog = Dialog.create(html`
@@ -105,10 +192,7 @@
105
192
  </div>
106
193
  <div class="mb">
107
194
  <label class="d-b mb-sm">Location</label>
108
- <input type="text" id="dlg-location" class="full" list="dlg-location-list" placeholder="scripts" required>
109
- <datalist id="dlg-location-list">
110
- ${locationOptions.map(l => html`<option value="${l}">`)}
111
- </datalist>
195
+ <div id="dlg-location-wrap"></div>
112
196
  <p class="mt-sm muted"><small>The template location to inject this content into.</small></p>
113
197
  </div>
114
198
  <div>
@@ -149,4 +233,15 @@
149
233
  },
150
234
  cancelText: 'Cancel'
151
235
  });
152
- });</script></content></page>
236
+
237
+ const $combobox = document.createElement('k-combobox');
238
+ $combobox.id = 'dlg-location';
239
+ $combobox.className = 'full';
240
+ $combobox.setAttribute('placeholder', 'scripts');
241
+ $combobox.setOptions(locationOptions);
242
+ $dialog.querySelector('#dlg-location-wrap').appendChild($combobox);
243
+ });
244
+ </script>
245
+ </content>
246
+ </page>
247
+
@@ -1,4 +1,11 @@
1
1
  <!--
2
2
  locked: true
3
3
  -->
4
- <page title="Edit Page - Admin"><content><admin-page-editor></admin-page-editor></content><content location="head"><script type="module" src="/admin/components/PageEditor.js"></script></content></page>
4
+ <page title="Edit Page - Admin">
5
+ <content>
6
+ <admin-page-editor></admin-page-editor>
7
+ </content>
8
+ <content location="head">
9
+ <script type="module" src="/admin/components/PageEditor.js"></script>
10
+ </content>
11
+ </page>