fix: error handling now displays page correctly, fixes #10777

This commit is contained in:
Torkel Ödegaard 2018-02-06 12:27:25 +01:00
parent 6e68c2069e
commit 0e61a670bb
7 changed files with 64 additions and 72 deletions

View File

@ -40,14 +40,14 @@ func GenStateString() string {
func OAuthLogin(ctx *middleware.Context) {
if setting.OAuthService == nil {
ctx.Handle(404, "login.OAuthLogin(oauth service not enabled)", nil)
ctx.Handle(404, "OAuth not enabled", nil)
return
}
name := ctx.Params(":name")
connect, ok := social.SocialMap[name]
if !ok {
ctx.Handle(404, "login.OAuthLogin(social login not enabled)", errors.New(name))
ctx.Handle(404, fmt.Sprintf("No OAuth with name %s configured", name), nil)
return
}

View File

@ -206,7 +206,9 @@ func (ctx *Context) Handle(status int, title string, err error) {
ctx.Data["Title"] = title
ctx.Data["AppSubUrl"] = setting.AppSubUrl
ctx.HTML(status, strconv.Itoa(status))
ctx.Data["Theme"] = "dark"
ctx.HTML(status, "error")
}
func (ctx *Context) JsonOK(message string) {

View File

@ -137,7 +137,7 @@ func Recovery() macaron.Handler {
c.JSON(500, resp)
} else {
c.HTML(500, "500")
c.HTML(500, "error")
}
}
}()

View File

@ -52,7 +52,7 @@
<empty-list-cta model="{
title: 'There are no data sources defined yet',
buttonIcon: 'gicon gicon-add-datasources',
buttonLink: '/datasources/new',
buttonLink: 'datasources/new',
buttonTitle: 'Add data source',
proTip: 'You can also define data sources through configuration files.',
proTipLink: 'http://docs.grafana.org/administration/provisioning/#datasources?utm_source=grafana_ds_list',

View File

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>Grafana</title>
<base href="[[.AppSubUrl]]/" />
<link rel="stylesheet" href="public/build/grafana.dark.min.css" title="Dark">
<link rel="icon" type="image/png" href="public/img/fav32.png">
</head>
<body>
<div class="gf-box" style="margin: 200px auto 0 auto; width: 500px;">
<div class="gf-box-header">
<span class="gf-box-title">
Proxy authentication required
</span>
</div>
<div class="gf-box-body">
<h4>Proxy authenticaion required</h4>
</div>
</div>
</body>
</html>

View File

@ -1,39 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>Grafana - Error</title>
<base href="[[.AppSubUrl]]/" />
<link href='public/css/fonts.min.css' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="public/build/grafana.dark.min.css">
<link rel="icon" type="image/png" href="public/img/fav32.png">
</head>
<body>
<div class="page-container">
<div class="page-header">
<h1>Server side error :(</h1>
</div>
<div class="panel-container" style="padding: 2rem">
<div class="alert">
<div class="alert-icon"><i class="fa fa-exclamation-triangle"></i></div>
<div class="alert-body">
<div class="alert-title">[[.Title]]</div>
<div class="alert-text">
[[if .ErrorMsg]]
<pre>[[.ErrorMsg]]</pre>
[[end]]
</div>
</div>
</div>
<div style="padding: 2rem 0 0">
<p>Check the Grafana server logs for the detailed error message.</p>
</div>
</div>
</div>
</body>
</html>

57
public/views/error.html Normal file
View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#000">
<title>Grafana</title>
<base href="[[.AppSubUrl]]/" />
<link rel="stylesheet" href="public/build/grafana.[[ .Theme ]].css?v[[ .BuildVersion ]]">
<link rel="icon" type="image/png" href="public/img/fav32.png">
<link rel="mask-icon" href="public/img/grafana_mask_icon.svg" color="#F05A28">
</head>
<body class="theme-[[ .Theme ]]">
<div class="main-view">
<div class="page-container">
<div class="page-header">
<div class="page-header__inner">
<span class="page-header__logo">
<i class="page-header__icon fa fa-frown-o"></i>
</span>
<div class="page-header__info-block">
<h1 class="page-header__title">
<a class="text-link" href="login">Grafana</a><span> / Server Error</span><span></span>
</h1>
<div class="page-header__sub-title">Sadly something went wrong</div>
</div>
</div>
</div>
</div>
<div class="page-container page-body ng-scope" style="padding: 2rem">
<div class="alert">
<div class="alert-icon"><i class="fa fa-exclamation-triangle"></i></div>
<div class="alert-body">
<div class="alert-title">[[.Title]]</div>
</div>
</div>
<br />
[[if .ErrorMsg]]
<h4 class="page-heading">Error details</h4>
<div class="alert-text">
<pre>[[.ErrorMsg]]</pre>
</div>
[[end]]
<div style="padding: 2rem 0 0">
<p>Check the Grafana server logs for the detailed error message.</p>
</div>
</div>
</div>
</body>
</html>