Skip to content

Commit

Permalink
Load selected version in preview
Browse files Browse the repository at this point in the history
  • Loading branch information
bosschaert committed Mar 22, 2024
1 parent 28456cc commit 014fbaf
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
1 change: 0 additions & 1 deletion blocks/edit/da-version/da-version.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ export default class DaVersion extends LitElement {
return html`
<div class="da-version-view">
<div contenteditable="false" translate="no" class="ProseMirror">
<p>Some older version</p>
</div>
</div>
`;
Expand Down
31 changes: 29 additions & 2 deletions blocks/edit/da-versions/da-versions.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { LitElement, html, ifDefined, until } from '../../../deps/lit/lit-all.min.js';
import { aem2prose, parse } from '../utils/helpers.js';
import getSheet from '../../shared/sheet.js';

const sheet = await getSheet('/blocks/edit/da-versions/da-versions.css');
Expand Down Expand Up @@ -29,10 +30,31 @@ export default class DaVersions extends LitElement {
this.classList.remove('show-versions');
}

async loadVersion(href, pm) {
const sourceURL = new URL(this.path);
const resURL = new URL(href, sourceURL);

const aemResp = await fetch(resURL);
const aemDoc = await aemResp.text();

const doc = parse(aemDoc);
const pdoc = aem2prose(doc);
const docc = document.createElement('div');
docc.append(...pdoc);

pm.innerHTML = docc.innerHTML;
}

versionSelected(event) {
const li = event.target;
if (!li.dataset.href) {
this.setDaVersionVisibility('none');
return;
}

const dav = this.setDaVersionVisibility('block');
const pm = dav.shadowRoot.querySelector('.ProseMirror');
pm.innerHTML = `<p>${event.target.innerText}</p>`;
this.loadVersion(li.dataset.href, pm);
}

async renderVersions() {
Expand All @@ -57,8 +79,13 @@ export default class DaVersions extends LitElement {

const versions = [];
for (const l of list) {
let verURL;
if (l.resource) {
verURL = new URL(l.resource, versionsURL);
}

versions.push(html`
<li tabindex="1" data-href="${ifDefined(l.resource)}">
<li tabindex="1" data-href="${ifDefined(verURL)}">
${new Date(l.timestamp).toLocaleString([], { dateStyle: 'full', timeStyle: 'short' })}
<br/>${l.authors.join(', ')}</li>`);
}
Expand Down

0 comments on commit 014fbaf

Please sign in to comment.