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 Shared Calendar ID
<input type="text" class="form-control" <input type="text" class="form-control"
placeholder="en.uk#holiday@group.v.calendar.google.com" 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"/> [disabled]="isUpdating"/>
</label> </label>
</ng-template> </ng-template>

View file

@ -12,7 +12,7 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
} }
protected OnNewWidgetPrepared(widget: EditableWidget) { protected OnNewWidgetPrepared(widget: EditableWidget) {
widget.dimension.newData.src = ""; widget.dimension.newData.shareId = "";
} }
protected OnWidgetsDiscovered(widgets: EditableWidget[]) { protected OnWidgetsDiscovered(widgets: EditableWidget[]) {
@ -21,6 +21,10 @@ export class GoogleCalendarWidgetConfigComponent extends WidgetComponent {
// Convert legacy Dimension widgets to new source // Convert legacy Dimension widgets to new source
widget.data.src = widget.data.dimSrc; 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) { 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"); 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=$shareId";
widget.dimension.newUrl = window.location.origin + "/widgets/gcal?calendarId=" + encodedId;
} }
} }