@raketa-cloud/admin 1.8.3 → 1.8.4

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.
@@ -1566,6 +1566,22 @@ select {
1566
1566
  pointer-events: none;
1567
1567
  }
1568
1568
 
1569
+ .visible {
1570
+ visibility: visible;
1571
+ }
1572
+
1573
+ .collapse {
1574
+ visibility: collapse;
1575
+ }
1576
+
1577
+ .static {
1578
+ position: static;
1579
+ }
1580
+
1581
+ .fixed {
1582
+ position: fixed;
1583
+ }
1584
+
1569
1585
  .absolute {
1570
1586
  position: absolute;
1571
1587
  }
@@ -1713,6 +1729,10 @@ select {
1713
1729
  display: inline-block;
1714
1730
  }
1715
1731
 
1732
+ .inline {
1733
+ display: inline;
1734
+ }
1735
+
1716
1736
  .flex {
1717
1737
  display: flex;
1718
1738
  }
@@ -1721,6 +1741,10 @@ select {
1721
1741
  display: inline-flex;
1722
1742
  }
1723
1743
 
1744
+ .\!table {
1745
+ display: table !important;
1746
+ }
1747
+
1724
1748
  .table {
1725
1749
  display: table;
1726
1750
  }
@@ -1860,6 +1884,10 @@ select {
1860
1884
  cursor: pointer;
1861
1885
  }
1862
1886
 
1887
+ .resize {
1888
+ resize: both;
1889
+ }
1890
+
1863
1891
  .flex-col {
1864
1892
  flex-direction: column;
1865
1893
  }
@@ -2219,6 +2247,14 @@ select {
2219
2247
  color: rgb(255 255 255 / var(--tw-text-opacity));
2220
2248
  }
2221
2249
 
2250
+ .underline {
2251
+ text-decoration-line: underline;
2252
+ }
2253
+
2254
+ .overline {
2255
+ text-decoration-line: overline;
2256
+ }
2257
+
2222
2258
  .opacity-10 {
2223
2259
  opacity: 0.1;
2224
2260
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raketa-cloud/admin",
3
- "version": "1.8.3",
3
+ "version": "1.8.4",
4
4
  "main": "src/index.js",
5
5
  "files": [
6
6
  "src/",
@@ -19,7 +19,7 @@
19
19
  "@tailwindcss/forms": "0.5.7",
20
20
  "@tailwindcss/typography": "0.5.13",
21
21
  "@types/node": "24.10.1",
22
- "jest": "30.2.0",
22
+ "jest": "30.3.0",
23
23
  "tailwindcss": "3.4.4",
24
24
  "typescript": "5.9.3"
25
25
  },
@@ -151,6 +151,9 @@ describe("HonoAdapter", () => {
151
151
  cloud: {
152
152
  images_api_key: "api-key",
153
153
  },
154
+ remoteConfig: {
155
+ remoteLogin: "",
156
+ },
154
157
  },
155
158
  },
156
159
  },
@@ -7,7 +7,7 @@
7
7
  <%- f.field('publishing.type', { as: 'radio_group', label: "", options: [["now", "Publish now"], ["later", "Schedule for a date"]] }) %>
8
8
  <%- f.field('publishing.mergeAt', { type: 'datetime-local', label: 'Publish revision at (UTC)' }) %>
9
9
 
10
- <%- f.field('publishing.title'), { required: true, hint: "Appears in the history of changes" } %>
10
+ <%- f.field('publishing.title', { required: true, hint: "Appears in the history of changes" }) %>
11
11
  <%- f.field('publishing.description', { as: "textarea", hint: "Provide optional details" }) %>
12
12
  <%- f.field('publishing.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
13
13
  <%- f.field('publishing.username', { required: true }) %>
@@ -0,0 +1,8 @@
1
+ <div class="body-3 text-raketa-foreground/50">
2
+ <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
3
+ <% if (revision.meta.operatorMeta.avatar) { %>
4
+ <img src="<%= revision.meta.operatorMeta.avatar %>" class="rounded-full size-4">
5
+ <% } %>
6
+ <%= revision.meta.operatorMeta.name %>
7
+ </div>
8
+ </div>
@@ -143,7 +143,9 @@
143
143
 
144
144
  <div class="mb-4">
145
145
  <label for="widget" class="font-semibold hover:cursor-pointer body-3">Widget</label>
146
- <input type="text" name="f:widget" value="<%= _context.query["f:widget"] %>" />
146
+ <select name="f:widget" data-widget-filter data-current-value="<%= _context.query['f:widget'] || '' %>">
147
+ <option value="">All widgets</option>
148
+ </select>
147
149
  </div>
148
150
 
149
151
  <div class="mb-4">
@@ -86,14 +86,7 @@
86
86
  </td>
87
87
 
88
88
  <td class="whitespace-nowrap">
89
- <div class="body-3 text-raketa-foreground/50">
90
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
91
- <% if (revision.meta.operatorMeta.avatar) { %>
92
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="size-4 rounded-full">
93
- <% } %>
94
- <%= revision.meta.operatorMeta.name %>
95
- </div>
96
- </div>
89
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
97
90
  </td>
98
91
 
99
92
  <td class="whitespace-nowrap">
@@ -150,14 +143,7 @@
150
143
  </td>
151
144
 
152
145
  <td class="whitespace-nowrap">
153
- <div class="body-3 text-raketa-foreground/50">
154
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
155
- <% if (revision.meta.operatorMeta.avatar) { %>
156
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="size-4 rounded-full">
157
- <% } %>
158
- <%= revision.meta.operatorMeta.name %>
159
- </div>
160
- </div>
146
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
161
147
  </td>
162
148
 
163
149
  <td class="whitespace-nowrap">
@@ -7,7 +7,7 @@
7
7
  <%- f.field('publishing.type', { as: 'radio_group', label: "", options: [["now", "Publish now"], ["later", "Schedule for a date"]] }) %>
8
8
  <%- f.field('publishing.mergeAt', { type: 'datetime-local', label: 'Publish revision at (UTC)' }) %>
9
9
 
10
- <%- f.field('publishing.title'), { required: true, hint: "Appears in the history of changes" } %>
10
+ <%- f.field('publishing.title', { required: true, hint: "Appears in the history of changes" }) %>
11
11
  <%- f.field('publishing.description', { as: "textarea", hint: "Provide optional details" }) %>
12
12
  <%- f.field('publishing.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
13
13
  <%- f.field('publishing.username', { required: true }) %>
@@ -0,0 +1,8 @@
1
+ <div class="body-3 text-raketa-foreground/50">
2
+ <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
3
+ <% if (revision.meta.operatorMeta.avatar) { %>
4
+ <img src="<%= revision.meta.operatorMeta.avatar %>" class="rounded-full size-4">
5
+ <% } %>
6
+ <%= revision.meta.operatorMeta.name %>
7
+ </div>
8
+ </div>
@@ -143,7 +143,9 @@
143
143
 
144
144
  <div class="mb-4">
145
145
  <label for="widget" class="font-semibold hover:cursor-pointer body-3">Widget</label>
146
- <input type="text" name="f:widget" value="<%= _context.query["f:widget"] %>" />
146
+ <select name="f:widget" data-widget-filter data-current-value="<%= _context.query['f:widget'] || '' %>">
147
+ <option value="">All widgets</option>
148
+ </select>
147
149
  </div>
148
150
 
149
151
  <div class="mb-4">
@@ -86,14 +86,7 @@
86
86
  </td>
87
87
 
88
88
  <td class="whitespace-nowrap">
89
- <div class="body-3 text-raketa-foreground/50">
90
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
91
- <% if (revision.meta.operatorMeta.avatar) { %>
92
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="size-4 rounded-full">
93
- <% } %>
94
- <%= revision.meta.operatorMeta.name %>
95
- </div>
96
- </div>
89
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
97
90
  </td>
98
91
 
99
92
  <td class="whitespace-nowrap">
@@ -150,14 +143,7 @@
150
143
  </td>
151
144
 
152
145
  <td class="whitespace-nowrap">
153
- <div class="body-3 text-raketa-foreground/50">
154
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
155
- <% if (revision.meta.operatorMeta.avatar) { %>
156
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="size-4 rounded-full">
157
- <% } %>
158
- <%= revision.meta.operatorMeta.name %>
159
- </div>
160
- </div>
146
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
161
147
  </td>
162
148
 
163
149
  <td class="whitespace-nowrap">
@@ -38,6 +38,9 @@
38
38
  var FILE_PICKER_GATEWAY_PROJECT = "<%= _context.globalConfig.cloud.gateway_project %>";
39
39
  var FILE_PICKER_DXP_PRIVATE_SERVICE = "<%= _context.globalConfig.cloud.dxp_service_private %>";
40
40
  var FILE_PICKER_JWT_TOKEN = "<%= _context.adminJwt %>";
41
+ var FRONTEND_URL = (function() {
42
+ try { return new URL("<%= _context.globalConfig.remoteConfig.remoteLogin %>").origin; } catch(e) { return ""; }
43
+ })();
41
44
  </script>
42
45
 
43
46
  <script src="https://storage.googleapis.com/cdn-raketa-cloud/js/raketa-file-picker-webcomponent.umd.js"></script>
@@ -281,6 +284,33 @@
281
284
  }
282
285
  </script>
283
286
 
287
+ <script>
288
+ function initWidgetFilter() {
289
+ var selects = document.querySelectorAll('select[data-widget-filter]');
290
+ if (!selects.length || !FRONTEND_URL) return;
291
+
292
+ fetch(FRONTEND_URL + '/dxp__/widgets/list.json')
293
+ .then(function(response) { return response.text(); })
294
+ .then(function(html) {
295
+ var doc = new DOMParser().parseFromString(html, 'text/html');
296
+ var widgets = JSON.parse(doc.querySelector('pre').textContent);
297
+ selects.forEach(function(select) {
298
+ var currentValue = select.dataset.currentValue;
299
+ widgets.forEach(function(widget) {
300
+ var option = document.createElement('option');
301
+ option.value = widget[0];
302
+ option.textContent = widget[1];
303
+ if (widget[0] === currentValue) option.selected = true;
304
+ select.appendChild(option);
305
+ });
306
+ });
307
+ })
308
+ .catch(function(err) { console.error('[initWidgetFilter] failed:', err); });
309
+ }
310
+
311
+ initWidgetFilter();
312
+ </script>
313
+
284
314
  <script>
285
315
  const forms = document.querySelectorAll('form');
286
316
 
@@ -7,7 +7,7 @@
7
7
  <%- f.field('publishing.type', { as: 'radio_group', label: "", options: [["now", "Publish now"], ["later", "Schedule for a date"]] }) %>
8
8
  <%- f.field('publishing.mergeAt', { type: 'datetime-local', label: 'Publish revision at (UTC)' }) %>
9
9
 
10
- <%- f.field('publishing.title'), { required: true, hint: "Appears in the history of changes" } %>
10
+ <%- f.field('publishing.title', { required: true, hint: "Appears in the history of changes" }) %>
11
11
  <%- f.field('publishing.description', { as: "textarea", hint: "Provide optional details" }) %>
12
12
  <%- f.field('publishing.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
13
13
  <%- f.field('publishing.username', { required: true }) %>
@@ -0,0 +1,8 @@
1
+ <div class="body-3 text-raketa-foreground/50">
2
+ <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
3
+ <% if (revision.meta.operatorMeta.avatar) { %>
4
+ <img src="<%= revision.meta.operatorMeta.avatar %>" class="rounded-full size-4">
5
+ <% } %>
6
+ <%= revision.meta.operatorMeta.name %>
7
+ </div>
8
+ </div>
@@ -138,7 +138,9 @@
138
138
 
139
139
  <div class="mb-4">
140
140
  <label for="widget" class="font-semibold hover:cursor-pointer body-3">Widget</label>
141
- <input type="text" name="f:widget" value="<%= _context.query["f:widget"] %>" />
141
+ <select name="f:widget" data-widget-filter data-current-value="<%= _context.query['f:widget'] || '' %>">
142
+ <option value="">All widgets</option>
143
+ </select>
142
144
  </div>
143
145
 
144
146
  <div class="mb-4">
@@ -86,14 +86,7 @@
86
86
  </td>
87
87
 
88
88
  <td class="whitespace-nowrap">
89
- <div class="body-3 text-raketa-foreground/50">
90
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
91
- <% if (revision.meta.operatorMeta.avatar) { %>
92
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="rounded-full size-4">
93
- <% } %>
94
- <%= revision.meta.operatorMeta.name %>
95
- </div>
96
- </div>
89
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
97
90
  </td>
98
91
 
99
92
  <td class="whitespace-nowrap">
@@ -150,14 +143,7 @@
150
143
  </td>
151
144
 
152
145
  <td class="whitespace-nowrap">
153
- <div class="body-3 text-raketa-foreground/50">
154
- <div class="flex items-center gap-1" title="<%= revision.meta.operatorMeta.name %>">
155
- <% if (revision.meta.operatorMeta.avatar) { %>
156
- <img src="<%= revision.meta.operatorMeta.avatar %>" class="rounded-full size-4">
157
- <% } %>
158
- <%= revision.meta.operatorMeta.name %>
159
- </div>
160
- </div>
146
+ <%- render_partial('./_shared/_revision_operator.ejs', { revision }) %>
161
147
  </td>
162
148
 
163
149
  <td class="whitespace-nowrap">