mirror of https://github.com/statping/statping
http header panic fix - cache in settings
parent
60262f75f9
commit
8825f836e8
|
@ -14,6 +14,7 @@ type Cacher interface {
|
|||
Get(key string) []byte
|
||||
Delete(key string)
|
||||
Set(key string, content []byte, duration time.Duration)
|
||||
List() map[string]Item
|
||||
}
|
||||
|
||||
// Item is a cached reference
|
||||
|
@ -44,6 +45,10 @@ func NewStorage() *Storage {
|
|||
}
|
||||
}
|
||||
|
||||
func (s Storage) List() map[string]Item {
|
||||
return s.items
|
||||
}
|
||||
|
||||
//Get a cached content by key
|
||||
func (s Storage) Get(key string) []byte {
|
||||
item := s.items[key]
|
||||
|
|
|
@ -82,6 +82,9 @@ var handlerFuncs = func(w http.ResponseWriter, r *http.Request) template.FuncMap
|
|||
"Error": func() string {
|
||||
return ""
|
||||
},
|
||||
"Cache": func() Cacher {
|
||||
return CacheStorage
|
||||
},
|
||||
"ToString": func(v interface{}) string {
|
||||
return utils.ToString(v)
|
||||
},
|
||||
|
@ -98,6 +101,12 @@ var handlerFuncs = func(w http.ResponseWriter, r *http.Request) template.FuncMap
|
|||
"FromUnix": func(t int64) string {
|
||||
return utils.Timezoner(time.Unix(t, 0), core.CoreApp.Timezone).Format("Monday, January 02")
|
||||
},
|
||||
"UnixTime": func(t int64, nano bool) string {
|
||||
if nano {
|
||||
t = t / 1e9
|
||||
}
|
||||
return utils.Timezoner(time.Unix(t, 0), core.CoreApp.Timezone).String()
|
||||
},
|
||||
"NewService": func() *types.Service {
|
||||
return new(types.Service)
|
||||
},
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
||||
<a class="nav-link active" id="v-pills-home-tab" data-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true"><i class="fa fa-cogs"></i> Settings</a>
|
||||
<a class="nav-link" id="v-pills-style-tab" data-toggle="pill" href="#v-pills-style" role="tab" aria-controls="v-pills-style" aria-selected="false"><i class="fa fa-image"></i> Theme Editor</a>
|
||||
<a class="nav-link" id="v-pills-cache-tab" data-toggle="pill" href="#v-pills-cache" role="tab" aria-controls="v-pills-cache" aria-selected="false"><i class="fa fa-paperclip"></i> Cache</a>
|
||||
{{ range .Notifications }}
|
||||
<a class="nav-link text-capitalize" id="v-pills-{{underscore .Select.Method}}-tab" data-toggle="pill" href="#v-pills-{{underscore .Select.Method}}" role="tab" aria-controls="v-pills-{{underscore .Select.Method}}" aria-selected="false"><i class="{{.Select.Icon}}"></i> {{.Select.Method}}</a>
|
||||
{{ end }}
|
||||
|
@ -125,7 +126,6 @@
|
|||
<h3>Additional Settings</h3>
|
||||
|
||||
<div class="row">
|
||||
<a href="/api/clear_cache" class="btn btn-sm btn-secondary float-right">Clear Cache</a>
|
||||
<a href="/settings/export" class="btn btn-sm btn-secondary float-right">Export Settings</a>
|
||||
{{if .Domain}}
|
||||
<a href="#" class="btn btn-sm btn-secondary float-right ml-1">Authentication QR Code</a>
|
||||
|
@ -180,6 +180,28 @@
|
|||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="v-pills-cache" role="tabpanel" aria-labelledby="v-pills-cache-tab">
|
||||
<h3>Cache</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">URL</th>
|
||||
<th scope="col">Size</th>
|
||||
<th scope="col">Expiration</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range $key, $value := Cache.List }}
|
||||
<tr>
|
||||
<td>{{$key}}</td>
|
||||
<td>{{len $value.Content}}</td>
|
||||
<td>{{UnixTime $value.Expiration true}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="/api/clear_cache" class="btn btn-danger btn-block">Clear Cache</a>
|
||||
</div>
|
||||
{{ range .Notifications }}
|
||||
{{$n := .Select}}
|
||||
<div class="tab-pane fade" id="v-pills-{{underscore $n.Method}}" role="tabpanel" aria-labelledby="v-pills-{{underscore $n.Method }}-tab">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Code generated by go generate; DO NOT EDIT.
|
||||
// This file was generated by robots at
|
||||
// 2019-02-01 11:55:53.781812 -0800 PST m=+0.615412774
|
||||
// 2019-02-01 12:26:35.052075 -0800 PST m=+0.640410556
|
||||
//
|
||||
// This contains the most recently Markdown source for the Statping Wiki.
|
||||
package source
|
||||
|
|
|
@ -247,24 +247,24 @@ func HttpRequest(url, method string, content interface{}, headers []string, body
|
|||
Transport: transport,
|
||||
Timeout: timeout,
|
||||
}
|
||||
r := new(http.Request)
|
||||
var req *http.Request
|
||||
if req, err = http.NewRequest(method, url, body); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
req.Header.Set("User-Agent", "Statping")
|
||||
if content != nil {
|
||||
req.Header.Set("Content-Type", content.(string))
|
||||
}
|
||||
for _, h := range headers {
|
||||
keyVal := strings.Split(h, "=")
|
||||
if len(keyVal) == 2 {
|
||||
if keyVal[0] != "" && keyVal[1] != "" {
|
||||
r.Header.Add(keyVal[0], keyVal[1])
|
||||
req.Header.Set(keyVal[0], keyVal[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
if r, err = http.NewRequest(method, url, body); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
r.Header.Set("User-Agent", "Statping")
|
||||
if content != nil {
|
||||
r.Header.Set("Content-Type", content.(string))
|
||||
}
|
||||
var resp *http.Response
|
||||
if resp, err = client.Do(r); err != nil {
|
||||
if resp, err = client.Do(req); err != nil {
|
||||
return nil, resp, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.80.42
|
||||
0.80.43
|
||||
|
|
Loading…
Reference in New Issue