Use template variables and convert Google Calendar widgets to new format

Fixes https://github.com/turt2live/matrix-dimension/issues/179

Part of https://github.com/turt2live/matrix-dimension/issues/141
This commit is contained in:
Travis Ralston 2019-03-24 16:56:14 -06:00
parent 5f6658a194
commit 3ab0bbbfd2
2 changed files with 8 additions and 5 deletions

View file

@ -4,7 +4,7 @@
Shared Calendar ID
<input type="text" class="form-control"
placeholder="en.uk#holiday@group.v.calendar.google.com"
[(ngModel)]="widget.dimension.newData.src" name="widget-url-{{widget.id}}"
[(ngModel)]="widget.dimension.newData.shareId" name="widget-url-{{widget.id}}"
[disabled]="isUpdating"/>
</label>
</ng-template>

View file

@ -12,7 +12,7 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
}
protected OnNewWidgetPrepared(widget: EditableWidget) {
widget.dimension.newData.src = "";
widget.dimension.newData.shareId = "";
}
protected OnWidgetsDiscovered(widgets: EditableWidget[]) {
@ -21,6 +21,10 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
// Convert legacy Dimension widgets to new source
widget.data.src = widget.data.dimSrc;
}
if (widget.data.src && !widget.data.shareId) {
// Convert even more legacy Dimension widgets to new source
widget.data.shareId = widget.data.src;
}
}
}
@ -33,11 +37,10 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
}
private setCalendarUrl(widget: EditableWidget) {
if (!widget.dimension.newData.src || widget.dimension.newData.src.trim().length === 0) {
if (!widget.dimension.newData.shareId || widget.dimension.newData.shareId.trim().length === 0) {
throw new Error("Please enter a shared calendar ID");
}
const encodedId = encodeURIComponent(widget.dimension.newData.src);
widget.dimension.newUrl = window.location.origin + "/widgets/gcal?calendarId=" + encodedId;
widget.dimension.newUrl = window.location.origin + "/widgets/gcal?calendarId=$shareId";
}
}