chore(embedded): cut v0.0.27-beta
Some checks failed
Notify chart dev on beta cut / notify-chart-dev (push) Failing after 8s
Some checks failed
Notify chart dev on beta cut / notify-chart-dev (push) Failing after 8s
This commit is contained in:
parent
5ed4f8582b
commit
28ebaa19cd
7 changed files with 70 additions and 16 deletions
|
|
@ -2582,7 +2582,7 @@ td[data-field="trackingNumber"] {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title">ZDDC Archive</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:53 · 5ed4f85</span></span>
|
||||
</div>
|
||||
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
|
||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh Data">⟳</button>
|
||||
|
|
|
|||
|
|
@ -2476,7 +2476,7 @@ body {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title">ZDDC Browse</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85</span></span>
|
||||
</div>
|
||||
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
|
||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh listing" aria-label="Refresh listing">⟳</button>
|
||||
|
|
@ -9511,9 +9511,14 @@ var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Arr
|
|||
// .zddc files without diverting into the editor. User
|
||||
// clicks (or tabs) into the editor when they want to type.
|
||||
autofocus: false,
|
||||
// CodeMirror's "nocursor" mode is the truest read-only:
|
||||
// selection allowed for copy, no caret, no edit affordances.
|
||||
readOnly: !writable ? 'nocursor' : false,
|
||||
// Read-only uses readOnly:true (NOT "nocursor"): the editor
|
||||
// stays focusable so the user can click in, select text, and
|
||||
// copy — they just can't edit. "nocursor" removes the textarea
|
||||
// from focus, which also kills click-drag selection (the whole
|
||||
// reason a viewer would otherwise force admin mode just to copy
|
||||
// a .zddc snippet). autofocus:false keeps arrow-key tree nav
|
||||
// intact until the user deliberately clicks into the editor.
|
||||
readOnly: !writable,
|
||||
});
|
||||
// Stash the node on the editor so the lint helper can decide
|
||||
// whether to apply the .zddc schema layer.
|
||||
|
|
@ -9681,6 +9686,24 @@ var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Arr
|
|||
return 'File';
|
||||
}
|
||||
|
||||
var VERB_NAMES = { r: 'read', w: 'write', c: 'create', d: 'delete', a: 'admin' };
|
||||
function verbsLabel(verbs) {
|
||||
return ['r', 'w', 'c', 'd', 'a']
|
||||
.filter(function (v) { return verbs.indexOf(v) !== -1; })
|
||||
.map(function (v) { return VERB_NAMES[v]; })
|
||||
.join(', ');
|
||||
}
|
||||
// permsValue renders the per-entry verb set the principal holds here.
|
||||
// Server mode: node.verbs ("rwcda" subset). Offline (FS-API) mode has
|
||||
// no ACL — access is whatever the filesystem grants.
|
||||
function permsValue(verbs) {
|
||||
if (typeof verbs !== 'string') {
|
||||
return state.source === 'fs' ? 'local folder (filesystem)' : 'unknown';
|
||||
}
|
||||
if (!verbs) return 'none (read-only)';
|
||||
return verbsLabel(verbs) + ' (' + verbs + ')';
|
||||
}
|
||||
|
||||
function buildRowsHtml(node) {
|
||||
var tree = window.app.modules.tree;
|
||||
var z = window.zddc;
|
||||
|
|
@ -9739,6 +9762,18 @@ var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Arr
|
|||
if (node.modTime) html += kv('Modified', fmtDate(node.modTime));
|
||||
if (node.virtual) html += kv('Virtual', 'Not yet created on disk');
|
||||
|
||||
// ── Effective access for the current principal at this location ──
|
||||
// "Your permissions" is the per-entry verb set (sync, from the
|
||||
// listing). "Your roles" is cascade-scoped — it can differ by
|
||||
// location — so it needs a path-scoped fetch; render a placeholder
|
||||
// that fillRoles() updates once /.profile/access?path= resolves.
|
||||
html += '<div class="tree-hovercard__sep"></div>';
|
||||
html += kv('Your permissions', permsValue(node.verbs));
|
||||
if (state.source === 'server') {
|
||||
html += '<span class="tree-hovercard__key">Your roles</span>'
|
||||
+ '<span class="tree-hovercard__val" id="hc-roles">…</span>';
|
||||
}
|
||||
|
||||
// Path comes last (longest, most likely to wrap).
|
||||
var path = tree ? tree.pathFor(node) : '';
|
||||
if (path) html += kv('Path', path, true);
|
||||
|
|
@ -9831,6 +9866,25 @@ var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Arr
|
|||
render(node);
|
||||
position(row);
|
||||
card.classList.add('is-visible');
|
||||
fillRoles(row, node);
|
||||
}
|
||||
|
||||
// Async-fill the "Your roles" row from the path-scoped access view
|
||||
// (zddc.cap.at memoises per path, so repeat hovers are instant).
|
||||
// Bails if the card has moved to another row before the fetch lands.
|
||||
async function fillRoles(row, node) {
|
||||
if (state.source !== 'server') return;
|
||||
if (!window.zddc || !window.zddc.cap) return;
|
||||
var tree = window.app.modules.tree;
|
||||
var path = tree ? tree.pathFor(node) : '';
|
||||
if (!path) return;
|
||||
var view;
|
||||
try { view = await window.zddc.cap.at(path); } catch (_e) { return; }
|
||||
if (currentRow !== row) return;
|
||||
var el = card && card.querySelector('#hc-roles');
|
||||
if (!el) return;
|
||||
var roles = (view && Array.isArray(view.path_roles)) ? view.path_roles : [];
|
||||
el.textContent = roles.length ? roles.join(', ') : 'none';
|
||||
}
|
||||
|
||||
function init() {
|
||||
|
|
|
|||
|
|
@ -1793,7 +1793,7 @@ body.is-elevated::after {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title">ZDDC Classifier</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85</span></span>
|
||||
</div>
|
||||
<button id="addDirectoryBtn" class="btn btn-primary">Use Local Directory</button>
|
||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh and rescan directory" aria-label="Refresh" style="font-size:1.1rem;">⟳</button>
|
||||
|
|
|
|||
|
|
@ -1536,7 +1536,7 @@ body {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title">ZDDC</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
|
|
|
|||
|
|
@ -2635,7 +2635,7 @@ dialog.modal--narrow {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title">ZDDC Transmittal</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:53 · 5ed4f85</span></span>
|
||||
</div>
|
||||
<span id="no-js-notice" class="text-gray-400 text-xs italic">JavaScript not available</span>
|
||||
<!-- Publish split-button (Transmittal-specific primary action;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# Generated by build.sh — do not edit. One <app>=<build label> per line.
|
||||
archive=v0.0.26
|
||||
transmittal=v0.0.26
|
||||
classifier=v0.0.26
|
||||
landing=v0.0.26
|
||||
form=v0.0.26
|
||||
tables=v0.0.26
|
||||
browse=v0.0.26
|
||||
archive=v0.0.27-beta · 2026-06-01 18:30:53 · 5ed4f85
|
||||
transmittal=v0.0.27-beta · 2026-06-01 18:30:53 · 5ed4f85
|
||||
classifier=v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85
|
||||
landing=v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85
|
||||
form=v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85
|
||||
tables=v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85
|
||||
browse=v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85
|
||||
|
|
|
|||
|
|
@ -1534,7 +1534,7 @@ body.is-elevated::after {
|
|||
</svg>
|
||||
<div class="header-title-group">
|
||||
<span class="app-header__title" id="table-title">ZDDC Table</span>
|
||||
<span class="build-timestamp">v0.0.26</span>
|
||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.27-beta · 2026-06-01 18:30:54 · 5ed4f85</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
|
|
|
|||
Loading…
Reference in a new issue