From 410404cfdd54c083b6609fd52334e02d320145d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 10 Nov 2021 01:40:22 +0100 Subject: Re-modularize javascript. This moves almost everything out of globals.ts, into sepparate files. Things are still slightly to tightly coupled. But that is worked on. --- static/components/vevent-dl.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 static/components/vevent-dl.ts (limited to 'static/components/vevent-dl.ts') diff --git a/static/components/vevent-dl.ts b/static/components/vevent-dl.ts new file mode 100644 index 00000000..a9e60d81 --- /dev/null +++ b/static/components/vevent-dl.ts @@ -0,0 +1,24 @@ +export { VEventDL } + +import { ComponentVEvent } from './vevent' +import { VEvent } from '../vevent' +import { makeElement } from '../lib' + +/* */ +class VEventDL extends ComponentVEvent { + redraw(obj: VEvent) { + let dl = buildDescriptionList( + Array.from(obj.boundProperties) + .map(key => [key, obj.getProperty(key)])) + this.replaceChildren(dl); + } +} + +function buildDescriptionList(data: [string, any][]): HTMLElement { + let dl = document.createElement('dl'); + for (let [key, val] of data) { + dl.appendChild(makeElement('dt', { innerText: key })) + dl.appendChild(makeElement('dd', { innerText: val })) + } + return dl; +} -- cgit v1.2.3 From 5cd004b662caabc4a084d625da798b1b64d8b5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 18 Nov 2021 21:41:01 +0100 Subject: Minor fixes. --- static/components/vevent-dl.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'static/components/vevent-dl.ts') diff --git a/static/components/vevent-dl.ts b/static/components/vevent-dl.ts index a9e60d81..75de075b 100644 --- a/static/components/vevent-dl.ts +++ b/static/components/vevent-dl.ts @@ -18,7 +18,14 @@ function buildDescriptionList(data: [string, any][]): HTMLElement { let dl = document.createElement('dl'); for (let [key, val] of data) { dl.appendChild(makeElement('dt', { innerText: key })) - dl.appendChild(makeElement('dd', { innerText: val })) + let fmtVal: string = val; + if (val instanceof Date) { + fmtVal = val.format( + val.dateonly + ? '~Y-~m-~d' + : '~Y-~m-~dT~H:~M:~S'); + } + dl.appendChild(makeElement('dd', { innerText: fmtVal })) } return dl; } -- cgit v1.2.3 From 215bbfb82465a6cddb286feb5168c2a15475bbea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 19 Nov 2021 01:34:33 +0100 Subject: vevent-dl formats rrules. --- static/components/vevent-dl.ts | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'static/components/vevent-dl.ts') diff --git a/static/components/vevent-dl.ts b/static/components/vevent-dl.ts index 75de075b..dfab8183 100644 --- a/static/components/vevent-dl.ts +++ b/static/components/vevent-dl.ts @@ -4,6 +4,8 @@ import { ComponentVEvent } from './vevent' import { VEvent } from '../vevent' import { makeElement } from '../lib' +import { RecurrenceRule } from '../vevent' + /* */ class VEventDL extends ComponentVEvent { redraw(obj: VEvent) { @@ -24,6 +26,8 @@ function buildDescriptionList(data: [string, any][]): HTMLElement { val.dateonly ? '~Y-~m-~d' : '~Y-~m-~dT~H:~M:~S'); + } else if (val instanceof RecurrenceRule) { + fmtVal = JSON.stringify(val.to_jcal()) } dl.appendChild(makeElement('dd', { innerText: fmtVal })) } -- cgit v1.2.3 From b3d72678192902252613e654c3fada1e57250ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 22 Nov 2021 01:09:04 +0100 Subject: Change innerHTML to textContent. Also changed some innerText to textContent --- static/components/vevent-dl.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'static/components/vevent-dl.ts') diff --git a/static/components/vevent-dl.ts b/static/components/vevent-dl.ts index dfab8183..a792c07f 100644 --- a/static/components/vevent-dl.ts +++ b/static/components/vevent-dl.ts @@ -19,7 +19,7 @@ class VEventDL extends ComponentVEvent { function buildDescriptionList(data: [string, any][]): HTMLElement { let dl = document.createElement('dl'); for (let [key, val] of data) { - dl.appendChild(makeElement('dt', { innerText: key })) + dl.appendChild(makeElement('dt', { textContent: key })) let fmtVal: string = val; if (val instanceof Date) { fmtVal = val.format( @@ -29,7 +29,7 @@ function buildDescriptionList(data: [string, any][]): HTMLElement { } else if (val instanceof RecurrenceRule) { fmtVal = JSON.stringify(val.to_jcal()) } - dl.appendChild(makeElement('dd', { innerText: fmtVal })) + dl.appendChild(makeElement('dd', { textContent: fmtVal })) } return dl; } -- cgit v1.2.3