mirror of
https://github.com/turt2live/matrix-dimension.git
synced 2024-10-01 01:05:53 -04:00
Add a url parameter to all widgets for compatibility
Fixes https://github.com/turt2live/matrix-dimension/issues/181 Fixes https://github.com/turt2live/matrix-dimension/issues/177 Fixes https://github.com/turt2live/matrix-dimension/issues/180 Part of https://github.com/turt2live/matrix-dimension/issues/141
This commit is contained in:
parent
3ab0bbbfd2
commit
f10abf95e5
@ -5,7 +5,7 @@
|
||||
<span class="text-muted">To get a URL, go to Grafana and click "share" on a graph.</span>
|
||||
<input type="text" class="form-control"
|
||||
placeholder="https://example.com/grafana/dashboard/db/example?orgId=1&panelId=1&fullscreen"
|
||||
[(ngModel)]="widget.dimension.newData.curl" name="widget-url-{{widget.id}}"
|
||||
[(ngModel)]="widget.dimension.newData.url" name="widget-url-{{widget.id}}"
|
||||
[disabled]="isUpdating"/>
|
||||
</label>
|
||||
<label class="label-block">
|
||||
|
@ -11,8 +11,17 @@ export class GrafanaWidgetConfigComponent extends WidgetComponent {
|
||||
super(WIDGET_GRAFANA, "Grafana", "generic-fullscreen", "grafana");
|
||||
}
|
||||
|
||||
protected OnWidgetsDiscovered(widgets: EditableWidget[]) {
|
||||
for (const widget of widgets) {
|
||||
if (widget.data.curl && !widget.data.url) {
|
||||
// Convert legacy Dimension widgets to new source
|
||||
widget.data.url = widget.data.curl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected OnNewWidgetPrepared(widget: EditableWidget): void {
|
||||
widget.dimension.newData.curl = "";
|
||||
widget.dimension.newData.url = "";
|
||||
}
|
||||
|
||||
protected OnWidgetBeforeAdd(widget: EditableWidget) {
|
||||
@ -24,13 +33,13 @@ export class GrafanaWidgetConfigComponent extends WidgetComponent {
|
||||
}
|
||||
|
||||
private setGrafanaUrl(widget: EditableWidget) {
|
||||
if (!widget.dimension.newData.curl || widget.dimension.newData.curl.trim().length === 0) {
|
||||
if (!widget.dimension.newData.url || widget.dimension.newData.url.trim().length === 0) {
|
||||
throw new Error("Please enter a Grafana URL");
|
||||
}
|
||||
|
||||
if (widget.dimension.newData.curl.indexOf("&kiosk") === -1) {
|
||||
widget.dimension.newData.curl += "&kiosk";
|
||||
if (widget.dimension.newData.url.indexOf("&kiosk") === -1) {
|
||||
widget.dimension.newData.url += "&kiosk";
|
||||
}
|
||||
widget.dimension.newUrl = widget.dimension.newData.curl;
|
||||
widget.dimension.newUrl = widget.dimension.newData.url;
|
||||
}
|
||||
}
|
@ -108,6 +108,7 @@ export class WidgetComponent implements OnInit {
|
||||
// The widget already has an ID and type, we just need to fill in the bits
|
||||
widget.name = widget.dimension.newName || this.defaultName;
|
||||
widget.data = widget.dimension.newData || {};
|
||||
widget.data.url = widget.dimension.newUrl;
|
||||
widget.url = this.wrapUrl(widget.dimension.newUrl, Object.keys(widget.data).map(k => "$" + k));
|
||||
widget.type = this.widgetTypes[0]; // always set the type to be the latest type
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user