mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-21 18:31:24 +02:00
Update monitor widget
This commit is contained in:
parent
c8200f2972
commit
ee1cde8a04
@ -25,11 +25,7 @@
|
|||||||
<img class="monitor-site-icon{{ if .Icon.IsFlatIcon }} flat-icon{{ end }}" src="{{ .Icon.URL }}" alt="" loading="lazy">
|
<img class="monitor-site-icon{{ if .Icon.IsFlatIcon }} flat-icon{{ end }}" src="{{ .Icon.URL }}" alt="" loading="lazy">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="min-width-0">
|
<div class="min-width-0">
|
||||||
{{ if and .Status.Error ( ne "" .ErrorURL)}}
|
|
||||||
<a class="size-h3 color-highlight text-truncate block" href="{{ .ErrorURL | safeURL }}" {{ if not .SameTab }}target="_blank"{{ end }} rel="noreferrer">{{ .Title }}</a>
|
|
||||||
{{ else }}
|
|
||||||
<a class="size-h3 color-highlight text-truncate block" href="{{ .URL | safeURL }}" {{ if not .SameTab }}target="_blank"{{ end }} rel="noreferrer">{{ .Title }}</a>
|
<a class="size-h3 color-highlight text-truncate block" href="{{ .URL | safeURL }}" {{ if not .SameTab }}target="_blank"{{ end }} rel="noreferrer">{{ .Title }}</a>
|
||||||
{{ end }}
|
|
||||||
<ul class="list-horizontal-text">
|
<ul class="list-horizontal-text">
|
||||||
{{ if not .Status.Error }}
|
{{ if not .Status.Error }}
|
||||||
<li title="{{ .Status.Code }}">{{ .StatusText }}</li>
|
<li title="{{ .Status.Code }}">{{ .StatusText }}</li>
|
||||||
|
@ -20,6 +20,7 @@ type monitorWidget struct {
|
|||||||
Sites []struct {
|
Sites []struct {
|
||||||
*SiteStatusRequest `yaml:",inline"`
|
*SiteStatusRequest `yaml:",inline"`
|
||||||
Status *siteStatus `yaml:"-"`
|
Status *siteStatus `yaml:"-"`
|
||||||
|
URL string `yaml:"-"`
|
||||||
ErrorURL string `yaml:"error-url"`
|
ErrorURL string `yaml:"error-url"`
|
||||||
Title string `yaml:"title"`
|
Title string `yaml:"title"`
|
||||||
Icon customIconField `yaml:"icon"`
|
Icon customIconField `yaml:"icon"`
|
||||||
@ -59,10 +60,16 @@ func (widget *monitorWidget) update(ctx context.Context) {
|
|||||||
status := &statuses[i]
|
status := &statuses[i]
|
||||||
site.Status = status
|
site.Status = status
|
||||||
|
|
||||||
if !slices.Contains(site.AltStatusCodes, status.Code) && (status.Code >= 400 || status.TimedOut || status.Error != nil) {
|
if !slices.Contains(site.AltStatusCodes, status.Code) && (status.Code >= 400 || status.Error != nil) {
|
||||||
widget.HasFailing = true
|
widget.HasFailing = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if status.Error != nil && site.ErrorURL != "" {
|
||||||
|
site.URL = site.ErrorURL
|
||||||
|
} else {
|
||||||
|
site.URL = site.DefaultURL
|
||||||
|
}
|
||||||
|
|
||||||
site.StatusText = statusCodeToText(status.Code, site.AltStatusCodes)
|
site.StatusText = statusCodeToText(status.Code, site.AltStatusCodes)
|
||||||
site.StatusStyle = statusCodeToStyle(status.Code, site.AltStatusCodes)
|
site.StatusStyle = statusCodeToStyle(status.Code, site.AltStatusCodes)
|
||||||
}
|
}
|
||||||
@ -89,12 +96,12 @@ func statusCodeToText(status int, altStatusCodes []int) string {
|
|||||||
if status == 401 {
|
if status == 401 {
|
||||||
return "Unauthorized"
|
return "Unauthorized"
|
||||||
}
|
}
|
||||||
if status >= 400 {
|
|
||||||
return "Client Error"
|
|
||||||
}
|
|
||||||
if status >= 500 {
|
if status >= 500 {
|
||||||
return "Server Error"
|
return "Server Error"
|
||||||
}
|
}
|
||||||
|
if status >= 400 {
|
||||||
|
return "Client Error"
|
||||||
|
}
|
||||||
|
|
||||||
return strconv.Itoa(status)
|
return strconv.Itoa(status)
|
||||||
}
|
}
|
||||||
@ -108,7 +115,7 @@ func statusCodeToStyle(status int, altStatusCodes []int) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type SiteStatusRequest struct {
|
type SiteStatusRequest struct {
|
||||||
URL string `yaml:"url"`
|
DefaultURL string `yaml:"url"`
|
||||||
CheckURL string `yaml:"check-url"`
|
CheckURL string `yaml:"check-url"`
|
||||||
AllowInsecure bool `yaml:"allow-insecure"`
|
AllowInsecure bool `yaml:"allow-insecure"`
|
||||||
}
|
}
|
||||||
@ -125,7 +132,7 @@ func fetchSiteStatusTask(statusRequest *SiteStatusRequest) (siteStatus, error) {
|
|||||||
if statusRequest.CheckURL != "" {
|
if statusRequest.CheckURL != "" {
|
||||||
url = statusRequest.CheckURL
|
url = statusRequest.CheckURL
|
||||||
} else {
|
} else {
|
||||||
url = statusRequest.URL
|
url = statusRequest.DefaultURL
|
||||||
}
|
}
|
||||||
request, err := http.NewRequest(http.MethodGet, url, nil)
|
request, err := http.NewRequest(http.MethodGet, url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user