ソースを参照

fixed error handling, and error logging for panel rendering

Torkel Ödegaard 11 年 前
コミット
e5fbbe96fd

BIN
data/png/77dedee4f4d479cea6f9d608353ed098.png


BIN
data/png/9e956287bee2bc4eabd91f9bb06ab458.png


+ 0 - 1
grafana

@@ -1 +0,0 @@
-Subproject commit d5471c153ab8ab0d4be57154300d28a75af1d363

+ 3 - 2
pkg/api/render.go

@@ -20,10 +20,11 @@ func RenderToPng(c *middleware.Context) {
 	}
 
 	renderOpts.Url = "http://localhost:3000/" + renderOpts.Url
-
 	pngPath, err := renderer.RenderToPng(renderOpts)
+
 	if err != nil {
-		c.HTML(500, "error.html", nil)
+		c.Handle(500, "Failed to render to png", err)
+		return
 	}
 
 	c.Resp.Header().Set("Content-Type", "image/png")

+ 1 - 6
pkg/middleware/middleware.go

@@ -88,12 +88,7 @@ func (ctx *Context) Handle(status int, title string, err error) {
 		}
 	}
 
-	switch status {
-	case 404:
-		ctx.Data["Title"] = "Page Not Found"
-	case 500:
-		ctx.Data["Title"] = "Internal Server Error"
-	}
+	ctx.Data["Title"] = title
 
 	ctx.HTML(status, strconv.Itoa(status))
 }

+ 0 - 2
src/app/features/account/partials/account.html

@@ -22,8 +22,6 @@
 					</div>
 					<br>
 
-					<panel-loader type="'test'"></panel-loader>
-
 					<br>
 					<button type="submit" class="pull-right btn btn-success" ng-click="update()">Update</button>
 				</form>

+ 32 - 0
src/views/500.html

@@ -0,0 +1,32 @@
+<!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>
+
+    <link rel="stylesheet" href="[[.AppSubUrl]]/css/grafana.dark.min.css" title="Dark">
+    <link rel="icon" type="image/png" href="[[.AppSubUrl]]/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">
+					Server side error :(
+				</span>
+			</div>
+
+			<div class="gf-box-body">
+				<h4>[[.Title]]</h4>
+				[[.ErrorMsg]]
+			</div>
+		</div>
+
+  </body>
+
+</html>