kempo 4.9.6 → 4.9.7
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.
- package/dist/admin/accounts/groups/[name]/index.page.html +5 -5
- package/dist/admin/accounts/groups/index.page.html +12 -10
- package/dist/admin/accounts/permissions/index.page.html +1 -1
- package/dist/admin/accounts/users/[id]/index.page.html +6 -5
- package/dist/admin/accounts/users/index.page.html +7 -9
- package/dist/admin/components/EmailTemplates.js +11 -19
- package/dist/admin/components/EmailTemplates.js.map +1 -1
- package/dist/admin/components/Emails.js +32 -29
- package/dist/admin/components/Emails.js.map +1 -1
- package/dist/admin/components/Updates.js +17 -22
- package/dist/admin/components/Updates.js.map +1 -1
- package/dist/admin/components/tableControls/EditEmailTemplate.js +2 -0
- package/dist/admin/components/tableControls/EditEmailTemplate.js.map +1 -0
- package/dist/admin/components/tableControls/UpdateItem.js +2 -0
- package/dist/admin/components/tableControls/UpdateItem.js.map +1 -0
- package/dist/admin/components/tableControls/UpdateSelected.js +2 -0
- package/dist/admin/components/tableControls/UpdateSelected.js.map +1 -0
- package/dist/admin/components/tableControls/ViewEmail.js +2 -0
- package/dist/admin/components/tableControls/ViewEmail.js.map +1 -0
- package/dist/admin/content/fragments/index.page.html +12 -12
- package/dist/admin/content/globals/index.page.html +12 -11
- package/dist/admin/content/pages/index.page.html +11 -23
- package/dist/admin/content/templates/index.page.html +13 -25
- package/dist/admin/extensions/index.page.html +10 -9
- package/package.json +2 -2
- package/dist/admin/components/tableControls/ExtensionDetails.js +0 -2
- package/dist/admin/components/tableControls/ExtensionDetails.js.map +0 -1
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
></script>
|
|
46
46
|
<script
|
|
47
47
|
type="module"
|
|
48
|
-
src="/
|
|
48
|
+
src="/kempo-ui/components/controls/TcOpen.js"
|
|
49
49
|
></script>
|
|
50
50
|
<script
|
|
51
51
|
type="module"
|
|
@@ -67,18 +67,14 @@
|
|
|
67
67
|
</div>
|
|
68
68
|
|
|
69
69
|
<h2>Custom Pages</h2>
|
|
70
|
-
<k-table
|
|
70
|
+
<k-table open-on-click
|
|
71
71
|
id="customTable"
|
|
72
72
|
enable-pages
|
|
73
73
|
page-size="25"
|
|
74
74
|
page-size-options="[10,25,50,100]"
|
|
75
75
|
placeholder="No custom pages have been created yet."
|
|
76
76
|
>
|
|
77
|
-
<
|
|
78
|
-
slot="before"
|
|
79
|
-
url-pattern="/admin/content/pages/edit?path={editPath}"
|
|
80
|
-
field-name="editPath"
|
|
81
|
-
></admin-table-row-link>
|
|
77
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
82
78
|
<div
|
|
83
79
|
slot="top"
|
|
84
80
|
class="d-f full"
|
|
@@ -108,18 +104,14 @@
|
|
|
108
104
|
</k-table>
|
|
109
105
|
|
|
110
106
|
<h2>Extension Pages</h2>
|
|
111
|
-
<k-table
|
|
107
|
+
<k-table open-on-click
|
|
112
108
|
id="extensionTable"
|
|
113
109
|
enable-pages
|
|
114
110
|
page-size="25"
|
|
115
111
|
page-size-options="[10,25,50,100]"
|
|
116
112
|
placeholder="No extension pages installed."
|
|
117
113
|
>
|
|
118
|
-
<
|
|
119
|
-
slot="before"
|
|
120
|
-
url-pattern="/admin/content/pages/edit?path={editPath}"
|
|
121
|
-
field-name="editPath"
|
|
122
|
-
></admin-table-row-link>
|
|
114
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
123
115
|
<div
|
|
124
116
|
class="d-f full"
|
|
125
117
|
style="align-items: center;"
|
|
@@ -138,18 +130,14 @@
|
|
|
138
130
|
</k-table>
|
|
139
131
|
|
|
140
132
|
<h2>System Pages</h2>
|
|
141
|
-
<k-table
|
|
133
|
+
<k-table open-on-click
|
|
142
134
|
id="systemTable"
|
|
143
135
|
enable-pages
|
|
144
136
|
page-size="25"
|
|
145
137
|
page-size-options="[10,25,50,100]"
|
|
146
138
|
placeholder="No system pages found."
|
|
147
139
|
>
|
|
148
|
-
<
|
|
149
|
-
slot="before"
|
|
150
|
-
url-pattern="/admin/content/pages/edit?path={editPath}"
|
|
151
|
-
field-name="editPath"
|
|
152
|
-
></admin-table-row-link>
|
|
140
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
153
141
|
<div
|
|
154
142
|
class="d-f full"
|
|
155
143
|
style="align-items: center;"
|
|
@@ -183,7 +171,7 @@
|
|
|
183
171
|
{ name: 'name', label: 'Name', size: 200 },
|
|
184
172
|
{ name: 'url', label: 'URL', size: 250 },
|
|
185
173
|
{ name: 'author', label: 'Author', size: 150 },
|
|
186
|
-
{ name: 'description', label: 'Description'
|
|
174
|
+
{ name: 'description', label: 'Description' },
|
|
187
175
|
{ name: 'updatedAt', label: 'Updated', size: 190, formatter: v => v ? new Date(v).toLocaleString() : '' },
|
|
188
176
|
{ name: 'createdAt', label: 'Created', size: 190, formatter: v => v ? new Date(v).toLocaleString() : '' }
|
|
189
177
|
];
|
|
@@ -214,7 +202,7 @@
|
|
|
214
202
|
|
|
215
203
|
setInterval(updateScanInfo, 1000);
|
|
216
204
|
|
|
217
|
-
const
|
|
205
|
+
const withEditUrl = p => ({ ...p, _url: `/admin/content/pages/edit?path=${encodeURIComponent(p.file.replace(/\.page\.html$/, ''))}` });
|
|
218
206
|
|
|
219
207
|
const initTable = async ($table, tableFields, owner) => {
|
|
220
208
|
const [error, data] = await listPages({ owner, showHidden: false, offset: 0, limit: 25 });
|
|
@@ -222,11 +210,11 @@
|
|
|
222
210
|
Toast.error(error.msg || 'Failed to load pages');
|
|
223
211
|
return null;
|
|
224
212
|
}
|
|
225
|
-
$table.setData({ records: data.pages.map(
|
|
213
|
+
$table.setData({ records: data.pages.map(withEditUrl), fields: tableFields });
|
|
226
214
|
if(data.total > data.pages.length){
|
|
227
215
|
$table.setupFetchRecords(data.total, async (start, count) => {
|
|
228
216
|
const [, d] = await listPages({ owner, showHidden: false, offset: start, limit: count });
|
|
229
|
-
return (d?.pages || []).map(
|
|
217
|
+
return (d?.pages || []).map(withEditUrl);
|
|
230
218
|
});
|
|
231
219
|
}
|
|
232
220
|
return data.scannedAt;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<script type="module" src="/kempo-ui/components/controls/TcDeleteRecord.js"></script>
|
|
14
14
|
<script type="module" src="/kempo-ui/components/controls/TcDeleteSelected.js"></script>
|
|
15
15
|
<script type="module" src="/kempo-ui/components/Icon.js"></script>
|
|
16
|
-
<script type="module" src="/
|
|
16
|
+
<script type="module" src="/kempo-ui/components/controls/TcOpen.js"></script>
|
|
17
17
|
<script type="module" src="/kempo/components/Permission.js"></script>
|
|
18
18
|
|
|
19
19
|
<div class="d-f mb" style="align-items: center; gap: var(--spacer);">
|
|
@@ -24,18 +24,14 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
<h2>Custom Templates</h2>
|
|
27
|
-
<k-table
|
|
27
|
+
<k-table open-on-click
|
|
28
28
|
id="customTable"
|
|
29
29
|
enable-pages
|
|
30
30
|
page-size="25"
|
|
31
31
|
page-size-options="[10,25,50,100]"
|
|
32
32
|
placeholder="No custom templates have been created yet."
|
|
33
33
|
>
|
|
34
|
-
<
|
|
35
|
-
slot="before"
|
|
36
|
-
url-pattern="/admin/content/templates/edit?template={editPath}"
|
|
37
|
-
field-name="editPath"
|
|
38
|
-
></admin-table-row-link>
|
|
34
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
39
35
|
<div slot="top" class="d-f full" style="align-items: center;">
|
|
40
36
|
<div>
|
|
41
37
|
<k-permission has="system:pages:delete">
|
|
@@ -58,18 +54,14 @@
|
|
|
58
54
|
</k-table>
|
|
59
55
|
|
|
60
56
|
<h2>Extension Templates</h2>
|
|
61
|
-
<k-table
|
|
57
|
+
<k-table open-on-click
|
|
62
58
|
id="extensionTable"
|
|
63
59
|
enable-pages
|
|
64
60
|
page-size="25"
|
|
65
61
|
page-size-options="[10,25,50,100]"
|
|
66
62
|
placeholder="No extension templates installed."
|
|
67
63
|
>
|
|
68
|
-
<
|
|
69
|
-
slot="before"
|
|
70
|
-
url-pattern="/admin/content/templates/edit?template={editPath}"
|
|
71
|
-
field-name="editPath"
|
|
72
|
-
></admin-table-row-link>
|
|
64
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
73
65
|
<div class="d-f full" style="align-items: center;">
|
|
74
66
|
<div>
|
|
75
67
|
<kc-tc-first-page></kc-tc-first-page>
|
|
@@ -85,18 +77,14 @@
|
|
|
85
77
|
</k-table>
|
|
86
78
|
|
|
87
79
|
<h2>System Templates</h2>
|
|
88
|
-
<k-table
|
|
80
|
+
<k-table open-on-click
|
|
89
81
|
id="systemTable"
|
|
90
82
|
enable-pages
|
|
91
83
|
page-size="25"
|
|
92
84
|
page-size-options="[10,25,50,100]"
|
|
93
85
|
placeholder="No system templates found."
|
|
94
86
|
>
|
|
95
|
-
<
|
|
96
|
-
slot="before"
|
|
97
|
-
url-pattern="/admin/content/templates/edit?template={editPath}"
|
|
98
|
-
field-name="editPath"
|
|
99
|
-
></admin-table-row-link>
|
|
87
|
+
<kc-tc-open slot="before"></kc-tc-open>
|
|
100
88
|
<div class="d-f full" style="align-items: center;">
|
|
101
89
|
<div>
|
|
102
90
|
<kc-tc-first-page></kc-tc-first-page>
|
|
@@ -124,7 +112,7 @@
|
|
|
124
112
|
|
|
125
113
|
const fields = [
|
|
126
114
|
{ name: 'locked', label: '', size: 40, calculator: r => r.locked ? html`<k-icon name="lock"></k-icon>` : html`` },
|
|
127
|
-
{ name: 'name', label: 'Name'
|
|
115
|
+
{ name: 'name', label: 'Name' },
|
|
128
116
|
{ name: 'directory', label: 'Directory', size: 200 },
|
|
129
117
|
{ name: 'author', label: 'Author', size: 150 },
|
|
130
118
|
{ name: 'updatedAt', label: 'Updated', size: 190, formatter: v => v ? new Date(v).toLocaleString() : '' },
|
|
@@ -146,14 +134,14 @@
|
|
|
146
134
|
Toast.error(error.msg || 'Failed to load templates');
|
|
147
135
|
return;
|
|
148
136
|
}
|
|
149
|
-
const
|
|
137
|
+
const withEditUrl = t => ({
|
|
150
138
|
...t,
|
|
151
139
|
directory: t.directory === '.' ? '/' : t.directory,
|
|
152
|
-
|
|
140
|
+
_url: `/admin/content/templates/edit?template=${encodeURIComponent(t.directory === '.' ? t.name : `${t.directory}/${t.name}`)}`
|
|
153
141
|
});
|
|
154
|
-
const custom = data.templates.filter(t => t.owner === 'custom').map(
|
|
155
|
-
const extension = data.templates.filter(t => t.owner !== 'custom' && t.owner !== 'system').map(
|
|
156
|
-
const system = data.templates.filter(t => t.owner === 'system').map(
|
|
142
|
+
const custom = data.templates.filter(t => t.owner === 'custom').map(withEditUrl);
|
|
143
|
+
const extension = data.templates.filter(t => t.owner !== 'custom' && t.owner !== 'system').map(withEditUrl);
|
|
144
|
+
const system = data.templates.filter(t => t.owner === 'system').map(withEditUrl);
|
|
157
145
|
$customTable.setData({ records: custom, fields });
|
|
158
146
|
$extensionTable.setData({ records: extension, fields: extensionFields });
|
|
159
147
|
$systemTable.setData({ records: system, fields });
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<script type="module" src="/kempo-ui/components/controls/TcPageSelect.js"></script>
|
|
12
12
|
<script type="module" src="/kempo-ui/components/controls/TcPageSize.js"></script>
|
|
13
13
|
<script type="module" src="/admin/components/tableControls/InstallExtension.js"></script>
|
|
14
|
-
<script type="module" src="/
|
|
14
|
+
<script type="module" src="/kempo-ui/components/controls/TcOpen.js"></script>
|
|
15
15
|
<script type="module" src="/admin/components/tableControls/ToggleExtension.js"></script>
|
|
16
16
|
<script type="module" src="/admin/components/tableControls/UninstallExtension.js"></script>
|
|
17
17
|
<script type="module" src="/kempo/components/Permission.js"></script>
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
24
|
<h2>Installed Extensions</h2>
|
|
25
|
-
<k-table id="installedTable" enable-pages page-size="25" placeholder="No extensions are currently installed.">
|
|
26
|
-
<
|
|
25
|
+
<k-table open-on-click id="installedTable" enable-pages page-size="25" placeholder="No extensions are currently installed.">
|
|
26
|
+
<kc-tc-open slot="after" title="View in Store"><k-icon name="storefront"></k-icon></kc-tc-open>
|
|
27
27
|
<admin-toggle-extension slot="after"></admin-toggle-extension>
|
|
28
28
|
<admin-uninstall-extension slot="after"></admin-uninstall-extension>
|
|
29
29
|
<div class="d-f full" style="align-items: center;">
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
|
|
43
43
|
<h2>Downloaded, Not Installed</h2>
|
|
44
44
|
<p class="tc-muted">Extension packages already in this site. To find and download more, <a href="/admin/extensions/browse/">browse the marketplace</a>.</p>
|
|
45
|
-
<k-table id="availableTable" enable-pages page-size="25" placeholder="Every downloaded extension is installed.">
|
|
45
|
+
<k-table open-on-click id="availableTable" enable-pages page-size="25" placeholder="Every downloaded extension is installed.">
|
|
46
46
|
<admin-install-extension slot="after"></admin-install-extension>
|
|
47
|
-
<
|
|
47
|
+
<kc-tc-open slot="after" title="View in Store"><k-icon name="storefront"></k-icon></kc-tc-open>
|
|
48
48
|
<div class="d-f full" style="align-items: center;">
|
|
49
49
|
<div>
|
|
50
50
|
<kc-tc-first-page></kc-tc-first-page>
|
|
@@ -66,11 +66,12 @@
|
|
|
66
66
|
|
|
67
67
|
const installedTable = document.getElementById('installedTable');
|
|
68
68
|
const availableTable = document.getElementById('availableTable');
|
|
69
|
+
const withDetailsUrl = e => ({ ...e, _url: `/admin/extensions/details/?name=${encodeURIComponent(e.name)}` });
|
|
69
70
|
|
|
70
71
|
const [installedErr, installedData] = await listExtensions();
|
|
71
72
|
if(!installedErr){
|
|
72
73
|
installedTable.setData({
|
|
73
|
-
records: installedData.items,
|
|
74
|
+
records: installedData.items.map(withDetailsUrl),
|
|
74
75
|
fields: [
|
|
75
76
|
{ name: 'name', label: 'Name' },
|
|
76
77
|
{ name: 'version', label: 'Version' },
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
const installedNames = new Set((installedData?.items || []).map(e => e.name));
|
|
86
87
|
const notInstalled = availableData.items.filter(e => !installedNames.has(e.name));
|
|
87
88
|
availableTable.setData({
|
|
88
|
-
records: notInstalled,
|
|
89
|
+
records: notInstalled.map(withDetailsUrl),
|
|
89
90
|
fields: [
|
|
90
91
|
{ name: 'name', label: 'Name' },
|
|
91
92
|
{ name: 'version', label: 'Version' },
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
const refreshInstalledTable = async () => {
|
|
98
99
|
const [err, data] = await listExtensions();
|
|
99
100
|
if(!err) installedTable.setData({
|
|
100
|
-
records: data.items,
|
|
101
|
+
records: data.items.map(withDetailsUrl),
|
|
101
102
|
fields: [
|
|
102
103
|
{ name: 'name', label: 'Name' },
|
|
103
104
|
{ name: 'version', label: 'Version' },
|
|
@@ -113,7 +114,7 @@
|
|
|
113
114
|
if(!instErr && !availErr){
|
|
114
115
|
const installedNames = new Set((instData?.items || []).map(e => e.name));
|
|
115
116
|
availableTable.setData({
|
|
116
|
-
records: availData.items.filter(e => !installedNames.has(e.name)),
|
|
117
|
+
records: availData.items.filter(e => !installedNames.has(e.name)).map(withDetailsUrl),
|
|
117
118
|
fields: [
|
|
118
119
|
{ name: 'name', label: 'Name' },
|
|
119
120
|
{ name: 'version', label: 'Version' },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kempo",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A fullstack CMS framework for creating websites with user authentication",
|
|
6
6
|
"scripts": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"kempo-css": ">=2.2.5",
|
|
63
63
|
"kempo-server": ">=3.4.0",
|
|
64
|
-
"kempo-ui": ">=0.
|
|
64
|
+
"kempo-ui": ">=0.7.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@electric-sql/pglite": "^0.5.9",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e from"../AdminTableControl.js";import{html as n}from"/kempo-ui/lit-all.min.js";import"/kempo-ui/components/Icon.js";export default class t extends e{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="View in Store")}handleAction(){this.record&&(window.location.href=`/admin/extensions/details/?name=${encodeURIComponent(this.record.name)}`)}render(){return n`<k-icon name="storefront"></k-icon>`}}customElements.define("admin-extension-details",t);
|
|
2
|
-
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\admin\components\tableControls\ExtensionDetails.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"src\\admin\\components\\tableControls\\ExtensionDetails.js","names":["AdminTableControl","html","ExtensionDetails","connectedCallback","super","this","hasAttribute","title","handleAction","record","window","location","href","encodeURIComponent","name","render","customElements","define"],"sources":["0"],"sourcesContent":["import AdminTableControl from '../AdminTableControl.js';\nimport { html } from '/kempo-ui/lit-all.min.js';\nimport '/kempo-ui/components/Icon.js';\n\n/*\n Opens the marketplace page for a row's extension: its README, what it requires and adds, its rating (which\n can be changed from there once it is installed). The page shows whatever the marketplace knows; for an\n extension it does not list it says so.\n*/\nexport default class ExtensionDetails extends AdminTableControl {\n connectedCallback(){\n super.connectedCallback();\n if(!this.hasAttribute('title')) this.title = 'View in Store';\n }\n\n handleAction(){\n if(!this.record) return;\n window.location.href = `/admin/extensions/details/?name=${encodeURIComponent(this.record.name)}`;\n }\n\n render(){ return html`<k-icon name=\"storefront\"></k-icon>`; }\n}\n\ncustomElements.define('admin-extension-details', ExtensionDetails);\n"],"mappings":"OAAOA,MAAuB,yCACrBC,MAAY,iCACd,8CAOQ,MAAMC,UAAyBF,EAC5C,iBAAAG,GACEC,MAAMD,oBACFE,KAAKC,aAAa,WAAUD,KAAKE,MAAQ,gBAC/C,CAEA,YAAAC,GACMH,KAAKI,SACTC,OAAOC,SAASC,KAAO,mCAAmCC,mBAAmBR,KAAKI,OAAOK,QAC3F,CAEA,MAAAC,GAAU,OAAOd,CAAI,qCAAuC,EAG9De,eAAeC,OAAO,0BAA2Bf","ignoreList":[]}
|