mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-21 18:31:24 +02:00
Allow extension widget to specify title-url
This commit is contained in:
parent
958805a1fd
commit
26d68ba3fc
@ -26,6 +26,9 @@ If you know how to setup an HTTP server and a bit of HTML and CSS you're ready t
|
|||||||
### `Widget-Title`
|
### `Widget-Title`
|
||||||
Used to specify the title of the widget. If not provided, the widget's title will be "Extension".
|
Used to specify the title of the widget. If not provided, the widget's title will be "Extension".
|
||||||
|
|
||||||
|
### `Widget-Title-URL`
|
||||||
|
Used to specify the URL that will be opened when the widget's title is clicked. If the user has specified a `title-url` in their config, it will take precedence over this header.
|
||||||
|
|
||||||
### `Widget-Content-Type`
|
### `Widget-Content-Type`
|
||||||
Used to specify the content type that will be returned by the extension. If not provided, the content will be shown as plain text.
|
Used to specify the content type that will be returned by the extension. If not provided, the content will be shown as plain text.
|
||||||
|
|
||||||
|
@ -59,6 +59,10 @@ func (widget *extensionWidget) update(ctx context.Context) {
|
|||||||
widget.Title = extension.Title
|
widget.Title = extension.Title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if widget.TitleURL == "" && extension.TitleURL != "" {
|
||||||
|
widget.TitleURL = extension.TitleURL
|
||||||
|
}
|
||||||
|
|
||||||
widget.cachedHTML = widget.renderTemplate(widget, extensionWidgetTemplate)
|
widget.cachedHTML = widget.renderTemplate(widget, extensionWidgetTemplate)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,8 +73,8 @@ func (widget *extensionWidget) Render() template.HTML {
|
|||||||
type extensionType int
|
type extensionType int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
extensionContentHTML extensionType = iota
|
extensionContentHTML extensionType = iota
|
||||||
extensionContentUnknown = iota
|
extensionContentUnknown
|
||||||
)
|
)
|
||||||
|
|
||||||
var extensionStringToType = map[string]extensionType{
|
var extensionStringToType = map[string]extensionType{
|
||||||
@ -79,6 +83,7 @@ var extensionStringToType = map[string]extensionType{
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
extensionHeaderTitle = "Widget-Title"
|
extensionHeaderTitle = "Widget-Title"
|
||||||
|
extensionHeaderTitleURL = "Widget-Title-URL"
|
||||||
extensionHeaderContentType = "Widget-Content-Type"
|
extensionHeaderContentType = "Widget-Content-Type"
|
||||||
extensionHeaderContentFrameless = "Widget-Content-Frameless"
|
extensionHeaderContentFrameless = "Widget-Content-Frameless"
|
||||||
)
|
)
|
||||||
@ -93,6 +98,7 @@ type extensionRequestOptions struct {
|
|||||||
|
|
||||||
type extension struct {
|
type extension struct {
|
||||||
Title string
|
Title string
|
||||||
|
TitleURL string
|
||||||
Content template.HTML
|
Content template.HTML
|
||||||
Frameless bool
|
Frameless bool
|
||||||
}
|
}
|
||||||
@ -142,6 +148,10 @@ func fetchExtension(options extensionRequestOptions) (extension, error) {
|
|||||||
extension.Title = response.Header.Get(extensionHeaderTitle)
|
extension.Title = response.Header.Get(extensionHeaderTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if response.Header.Get(extensionHeaderTitleURL) != "" {
|
||||||
|
extension.TitleURL = response.Header.Get(extensionHeaderTitleURL)
|
||||||
|
}
|
||||||
|
|
||||||
contentType, ok := extensionStringToType[response.Header.Get(extensionHeaderContentType)]
|
contentType, ok := extensionStringToType[response.Header.Get(extensionHeaderContentType)]
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user