aboutsummaryrefslogtreecommitdiff
path: root/static/components/vevent-edit.ts
diff options
context:
space:
mode:
Diffstat (limited to 'static/components/vevent-edit.ts')
-rw-r--r--static/components/vevent-edit.ts25
1 files changed, 16 insertions, 9 deletions
diff --git a/static/components/vevent-edit.ts b/static/components/vevent-edit.ts
index bf72678c..108146a3 100644
--- a/static/components/vevent-edit.ts
+++ b/static/components/vevent-edit.ts
@@ -14,8 +14,8 @@ import { to_boolean, gensym } from '../lib'
*/
class ComponentEdit extends ComponentVEvent {
- constructor(uid?: string) {
- super(uid);
+ constructor(uid?: string, instance?: string) {
+ super(uid, instance);
if (!this.template) {
throw 'vevent-edit template required';
@@ -39,10 +39,10 @@ class ComponentEdit extends ComponentVEvent {
/* Edit tab is rendered here. It's left blank server-side, since
it only makes sense to have something here if we have javascript */
- let data = vcal_objects.get(this.uid)
+ let data = this.getData()
if (!data) {
- throw `Data missing for uid ${this.dataset.uid}.`
+ throw `Data missing for uid ${this.getKey()}.`
}
@@ -59,7 +59,7 @@ class ComponentEdit extends ComponentVEvent {
el.addEventListener('change', (e) => {
let v = (e.target as HTMLSelectElement).selectedOptions[0].value
- let obj = vcal_objects.get(this.uid)!
+ let obj = this.getData()!
obj.calendar = v;
});
}
@@ -70,7 +70,7 @@ class ComponentEdit extends ComponentVEvent {
for (let el of this.querySelectorAll("[data-property]")) {
// console.log(el);
el.addEventListener('input', (e) => {
- let obj = vcal_objects.get(this.uid)
+ let obj = this.getData()
// console.log(el, e);
if (obj === undefined) {
throw 'No object with uid ' + this.uid
@@ -117,18 +117,25 @@ class ComponentEdit extends ComponentVEvent {
/* TODO unselecting and reselecting this checkbox deletes all entered data.
Cache it somewhere */
if (has_repeats.checked) {
- vcal_objects.get(this.uid)!.setProperty('rrule', new RecurrenceRule())
+ this.getData()!.setProperty('rrule', new RecurrenceRule())
} else {
/* TODO is this a good way to remove a property ? */
- vcal_objects.get(this.uid)!.setProperty('rrule', undefined)
+ this.getData()!.setProperty('rrule', undefined)
}
})
}
let submit = this.querySelector('form') as HTMLFormElement
+ /* TODO If start or end DATE is changed, only allow THIS */
+ /* if only time component was changed, allow all */
submit.addEventListener('submit', (e) => {
console.log(submit, e);
- create_event(vcal_objects.get(this.uid)!);
+ // submit button pressed (e.submitter);
+ let submit_type = 'all';
+ if (e.submitter) {
+ submit_type = e.submitter.dataset.key!;
+ }
+ create_event(submit_type, this.getData()!);
e.preventDefault();
return false;