diff options
Diffstat (limited to '')
-rw-r--r-- | static/components/changelog.ts | 49 | ||||
-rw-r--r-- | static/components/vevent-edit.ts | 2 |
2 files changed, 50 insertions, 1 deletions
diff --git a/static/components/changelog.ts b/static/components/changelog.ts new file mode 100644 index 00000000..8f45794d --- /dev/null +++ b/static/components/changelog.ts @@ -0,0 +1,49 @@ +import { makeElement } from '../lib' +import { ComponentVEvent } from './vevent' +import { VEvent } from '../vevent' + +export { VEventChangelog } + +class VEventChangelog extends ComponentVEvent { + + ul: HTMLElement + + constructor(uid?: string) { + super(uid); + + this.ul = makeElement('ul'); + } + + connectedCallback() { + this.replaceChildren(this.ul); + } + + redraw(data: VEvent) { + /* TODO only redraw what is needed */ + let children = [] + for (let el of data._changelog) { + let msg = ''; + switch (el.type) { + case 'property': + msg += `change ${el.name}: ` + msg += `from "${el.from}" to "${el.to}"` + break; + case 'calendar': + if (el.from === null && el.to === null) { + msg += '???' + } else if (el.from === null) { + msg += `set calendar to "${atob(el.to!)}"` + } else if (el.to === null) { + msg += `Remove calendar "${atob(el.from)}"` + } else { + msg += `Change calendar from "${atob(el.from)}" to "${atob(el.to)}"` + } + break; + } + + children.push(makeElement('li', { textContent: msg })); + } + + this.ul.replaceChildren(...children) + } +} diff --git a/static/components/vevent-edit.ts b/static/components/vevent-edit.ts index 58cee870..d48c7967 100644 --- a/static/components/vevent-edit.ts +++ b/static/components/vevent-edit.ts @@ -58,7 +58,7 @@ class ComponentEdit extends ComponentVEvent { // console.log(el); el.addEventListener('input', (e) => { let obj = vcal_objects.get(this.uid) - console.log(el, e); + // console.log(el, e); if (obj === undefined) { throw 'No object with uid ' + this.uid } |