diff --git a/pkg/api/render.go b/pkg/api/render.go
index 480d888d1c3..4dbead23524 100644
--- a/pkg/api/render.go
+++ b/pkg/api/render.go
@@ -14,12 +14,12 @@ func RenderToPng(c *middleware.Context) {
queryParams := fmt.Sprintf("?%s", c.Req.URL.RawQuery)
renderOpts := &renderer.RenderOpts{
- Path: c.Params("*") + queryParams,
- Width: queryReader.Get("width", "800"),
- Height: queryReader.Get("height", "400"),
- OrgId: c.OrgId,
- Timeout: queryReader.Get("timeout", "30"),
- TimeOffset: queryReader.Get("timeOffset", ""),
+ Path: c.Params("*") + queryParams,
+ Width: queryReader.Get("width", "800"),
+ Height: queryReader.Get("height", "400"),
+ OrgId: c.OrgId,
+ Timeout: queryReader.Get("timeout", "30"),
+ Timezone: queryReader.Get("tz", ""),
}
pngPath, err := renderer.RenderToPng(renderOpts)
diff --git a/pkg/components/renderer/renderer.go b/pkg/components/renderer/renderer.go
index d98b4bd40c7..c09c431a1df 100644
--- a/pkg/components/renderer/renderer.go
+++ b/pkg/components/renderer/renderer.go
@@ -6,41 +6,39 @@ import (
"os"
"os/exec"
"path/filepath"
- "regexp"
"runtime"
"time"
"strconv"
+ "strings"
+
"github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/middleware"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/util"
- "strings"
)
type RenderOpts struct {
- Path string
- Width string
- Height string
- Timeout string
- OrgId int64
- TimeOffset string
+ Path string
+ Width string
+ Height string
+ Timeout string
+ OrgId int64
+ Timezone string
}
var rendererLog log.Logger = log.New("png-renderer")
func isoTimeOffsetToPosixTz(isoOffset string) string {
- re := regexp.MustCompile(`^([+-])([0-1][0-9]|2[0-4])([0-5][0-9])$`)
- results := re.FindStringSubmatch(isoOffset)
- if results == nil {
- return ""
+ // invert offset
+ if strings.HasPrefix(isoOffset, "UTC+") {
+ return strings.Replace(isoOffset, "UTC+", "UTC-", 1)
}
- sign := "+"
- if results[1] == "+" {
- sign = "-" // "+" is west and "-" is east in POSIX TZ
+ if strings.HasPrefix(isoOffset, "UTC-") {
+ return strings.Replace(isoOffset, "UTC-", "UTC+", 1)
}
- return fmt.Sprintf("SOMEWHERE%s%s:%s", sign, results[2], results[3])
+ return isoOffset
}
func appendEnviron(baseEnviron []string, name string, value string) []string {
@@ -100,10 +98,9 @@ func RenderToPng(params *RenderOpts) (string, error) {
return "", err
}
- tz := isoTimeOffsetToPosixTz(params.TimeOffset)
- if tz != "" {
+ if params.Timezone != "" {
baseEnviron := os.Environ()
- cmd.Env = appendEnviron(baseEnviron, "TZ", tz)
+ cmd.Env = appendEnviron(baseEnviron, "TZ", isoTimeOffsetToPosixTz(params.Timezone))
}
err = cmd.Start()
diff --git a/public/app/features/dashboard/partials/shareModal.html b/public/app/features/dashboard/partials/shareModal.html
index 3e8ca8acfa6..bab75a7f523 100644
--- a/public/app/features/dashboard/partials/shareModal.html
+++ b/public/app/features/dashboard/partials/shareModal.html
@@ -69,15 +69,6 @@
-
-