Merge branch 'master' into editable_false

This commit is contained in:
Torkel Ödegaard 2015-04-27 08:53:57 +02:00
commit af277f560f
30 changed files with 55 additions and 65 deletions

View File

@ -1,7 +1,9 @@
# 2.0.3 (unreleased)
**Fixes**
- [Issue #1872](https://github.com/grafana/grafana/issues/1872). Firefox/IE issue, invisible text in dashboard search fixed
- [Issue #1857](https://github.com/grafana/grafana/issues/1857). /api/login/ping Fix for issue when behind reverse proxy and subpath
- [Issue #1863](https://github.com/grafana/grafana/issues/1863). MySQL: Dashboard.data column type changed to mediumtext (sql migration added)
# 2.0.2 (2015-04-22)

18
Godeps/Godeps.json generated
View File

@ -1,6 +1,6 @@
{
"ImportPath": "github.com/grafana/grafana",
"GoVersion": "go1.4.2",
"GoVersion": "go1.3",
"Packages": [
"./pkg/..."
],
@ -13,6 +13,14 @@
"ImportPath": "github.com/Unknwon/macaron",
"Rev": "93de4f3fad97bf246b838f828e2348f46f21f20a"
},
{
"ImportPath": "github.com/dalu/slug",
"Rev": "6dbd13912e9be466e2c1de349a2c7d1466c97e07"
},
{
"ImportPath": "github.com/dalu/unidecode",
"Rev": "339814d47f3e32a6f7036a0a4c56ed9b373dd755"
},
{
"ImportPath": "github.com/go-sql-driver/mysql",
"Comment": "v1.2-26-g9543750",
@ -27,10 +35,6 @@
"Comment": "v0.4.2-58-ge2889e5",
"Rev": "e2889e5517600b82905f1d2ba8b70deb71823ffe"
},
{
"ImportPath": "github.com/gosimple/slug",
"Rev": "a2392a4a87fa0366cbff131d3fd421f83f52492f"
},
{
"ImportPath": "github.com/jtolds/gls",
"Rev": "f1ac7f4f24f50328e6bc838ca4437d1612a0243c"
@ -87,10 +91,6 @@
{
"ImportPath": "gopkgs.com/pool.v1",
"Rev": "c850f092aad1780cbffff25f471c5cc32097932a"
},
{
"ImportPath": "gopkgs.com/unidecode.v1",
"Rev": "4deae2c05236b41cc39f8144ac87a837ba974d40"
}
]
}

View File

@ -4,10 +4,9 @@ slug
Package `slug` generate slug from unicode string, URL-friendly slugify with
multiple languages support.
[![GoDoc](https://godoc.org/github.com/gosimple/slug?status.png)](https://godoc.org/github.com/gosimple/slug)
[![Build Status](https://drone.io/github.com/gosimple/slug/status.png)](https://drone.io/github.com/gosimple/slug/latest)
[![GoDoc](https://godoc.org/github.com/dalu/slug?status.png)](https://godoc.org/github.com/dalu/slug)
[Documentation online](http://godoc.org/github.com/gosimple/slug)
[Documentation online](http://godoc.org/github.com/dalu/slug)
## Example
@ -38,12 +37,9 @@ multiple languages support.
fmt.Println(textSub) // Will print 'sand-is-hot'
}
### Requests or bugs?
<https://github.com/gosimple/slug/issues>
## Installation
go get -u github.com/gosimple/slug
go get -u github.com/dalu/slug
## License

View File

@ -12,7 +12,7 @@ Example:
package main
import(
"github.com/gosimple/slug"
"github.com/dalu/slug"
"fmt"
)
@ -35,9 +35,5 @@ Example:
textSub := slug.Make("water is hot")
fmt.Println(textSub) // Will print 'sand-is-hot'
}
Requests or bugs?
https://github.com/gosimple/slug/issues
*/
package slug

View File

@ -6,7 +6,7 @@
package slug
import (
"gopkgs.com/unidecode.v1"
"github.com/dalu/unidecode"
"regexp"
"strings"
)

View File

@ -3,10 +3,4 @@ unidecode
Unicode transliterator in Golang - Replaces non-ASCII characters with their ASCII approximations.
Please, use the following import path to ensure a stable API:
```go
import "gopkgs.com/unidecode.v1"
```
View other available versions, documentation and examples at http://gopkgs.com/unidecode

View File

@ -1,2 +0,0 @@
_*
cover*.out

View File

@ -1,24 +0,0 @@
package unidecode
import (
"fmt"
"reflect"
)
// gopkgs.go: v1
// NOTE: This file is autogenerated by gopkgs.com.
const (
goPkgsSrcPath = "github.com/rainycape/unidecode"
goPkgsName = "unidecode"
goPkgsErrFmt = "invalid import path %s - please use gopkgs.com/%s.v1 or see http://gopkgs.com/%s"
)
type goPkgsCheck struct{}
func init() {
typ := reflect.TypeOf(goPkgsCheck{})
if typ.PkgPath() == goPkgsSrcPath {
panic(fmt.Errorf(goPkgsErrFmt, typ.PkgPath(), goPkgsName, goPkgsName))
}
}

View File

@ -7,7 +7,7 @@ app_mode = production
#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
data = data
#
@ -62,7 +62,7 @@ path = grafana.db
#################################### Session ####################################
[session]
# Either "memory", "file", "redis", "mysql", default is "memory"
# Either "memory", "file", "redis", "mysql", "postgresql", default is "file"
provider = file
# Provider config options
@ -70,6 +70,7 @@ provider = file
# file: session dir path, is relative to grafana data_path
# redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1)/database_name`
provider_config = sessions
# Session cookie name

View File

@ -7,7 +7,7 @@
#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
;data = /var/lib/grafana
#
@ -62,7 +62,7 @@
#################################### Session ####################################
[session]
# Either "memory", "file", "redis", "mysql", default is "memory"
# Either "memory", "file", "redis", "mysql", "postgresql", default is "file"
;provider = file
# Provider config options

View File

@ -219,7 +219,7 @@ set to true, any user successfully authenticating via google auth will be automa
## [session]
### provider
Valid values are "memory", "file", "mysql", 'postgres'. Default is "memory".
Valid values are "memory", "file", "mysql", 'postgres'. Default is "file".
### provider_config
This option should be configured differently depending on what type of session provider you have configured.

View File

@ -24,7 +24,7 @@ All of this applies to all Panels in the Dashboard (except those with Panel Time
It's possible to customize the options displayed for relative time and the auto-refresh options.
From Dashboard setttings, click the Timepicker tab. From here you can specify the relative and auto refresh intervals. The Timepicker tab settings are saved on a per Dashboard basis.
From Dashboard setttings, click the Timepicker tab. From here you can specify the relative and auto refresh intervals. The Timepicker tab settings are saved on a per Dashboard basis. Entries are comma seperated and accept a number followed by one of the following units: s (seconds), m (minutes), h (hours), d (days), w (weeks), M (months), y (years).
![](/img/v1/timepicker_editor.png)

View File

@ -4,7 +4,7 @@
"company": "Coding Instinct AB"
},
"name": "grafana",
"version": "2.0.3-pre1",
"version": "2.1.0-pre1",
"repository": {
"type": "git",
"url": "http://github.com/torkelo/grafana.git"

View File

@ -5,7 +5,7 @@ import (
"strings"
"time"
"github.com/gosimple/slug"
"github.com/dalu/slug"
)
// Typed errors

View File

@ -86,4 +86,10 @@ func addDashboardMigration(mg *Migrator) {
}))
mg.AddMigration("drop table dashboard_v1", NewDropTableMigration("dashboard_v1"))
// change column type of dashboard.data
mg.AddMigration("alter dashboard.data to mediumtext v1", new(RawSqlMigration).
Sqlite("SELECT 0 WHERE 0;").
Postgres("SELECT 0;").
Mysql("ALTER TABLE dashboard MODIFY data MEDIUMTEXT;"))
}

View File

@ -48,4 +48,10 @@ func addDashboardSnapshotMigrations(mg *Migrator) {
mg.AddMigration("create dashboard_snapshot table v5 #2", NewAddTableMigration(snapshotV5))
addTableIndicesMigrations(mg, "v5", snapshotV5)
// change column type of dashboard
mg.AddMigration("alter dashboard_snapshot to mediumtext v2", new(RawSqlMigration).
Sqlite("SELECT 0 WHERE 0;").
Postgres("SELECT 0;").
Mysql("ALTER TABLE dashboard_snapshot MODIFY dashboard MEDIUMTEXT;"))
}

View File

@ -25,8 +25,9 @@ func (m *MigrationBase) GetCondition() MigrationCondition {
type RawSqlMigration struct {
MigrationBase
sqlite string
mysql string
sqlite string
mysql string
postgres string
}
func (m *RawSqlMigration) Sql(dialect Dialect) string {
@ -35,6 +36,8 @@ func (m *RawSqlMigration) Sql(dialect Dialect) string {
return m.mysql
case SQLITE:
return m.sqlite
case POSTGRES:
return m.postgres
}
panic("db type not supported")
@ -50,6 +53,11 @@ func (m *RawSqlMigration) Mysql(sql string) *RawSqlMigration {
return m
}
func (m *RawSqlMigration) Postgres(sql string) *RawSqlMigration {
m.postgres = sql
return m
}
type AddColumnMigration struct {
MigrationBase
tableName string

View File

@ -380,6 +380,9 @@ function($, _, moment) {
kbn.valueFormats.Bps = kbn.formatFuncCreator(1000, [' Bps', ' KBps', ' MBps', ' GBps', ' TBps', ' PBps', ' EBps', ' ZBps', ' YBps']);
kbn.valueFormats.short = kbn.formatFuncCreator(1000, ['', ' K', ' Mil', ' Bil', ' Tri', ' Qaudr', ' Quint', ' Sext', ' Sept']);
kbn.valueFormats.joule = kbn.formatFuncCreator(1000, [' J', ' kJ', ' MJ', ' GJ', ' TJ', ' PJ', ' EJ', ' ZJ', ' YJ']);
kbn.valueFormats.amp = kbn.formatFuncCreator(1000, [' A', ' kA', ' MA', ' GA', ' TA', ' PA', ' EA', ' ZA', ' YA']);
kbn.valueFormats.volt = kbn.formatFuncCreator(1000, [' V', ' kV', ' MV', ' GV', ' TV', ' PV', ' EV', ' ZV', ' YV']);
kbn.valueFormats.hertz = kbn.formatFuncCreator(1000, [' Hz', ' kHz', ' MHz', ' GHz', ' THz', ' PHz', ' EHz', ' ZHz', ' YHz']);
kbn.valueFormats.watt = kbn.formatFuncCreator(1000, [' W', ' kW', ' MW', ' GW', ' TW', ' PW', ' EW', ' ZW', ' YW']);
kbn.valueFormats.kwatt = kbn.formatFuncCreator(1000, [' kW', ' MW', ' GW', ' TW', ' PW', ' EW', ' ZW', ' YW']);
kbn.valueFormats.watth = kbn.formatFuncCreator(1000, [' Wh', ' kWh', ' MWh', ' GWh', ' TWh', ' PWh', ' EWh', ' ZWh', ' YWh']);
@ -534,6 +537,7 @@ function($, _, moment) {
{text: 'microseconds (µs)', value: 'µs'},
{text: 'milliseconds (ms)', value: 'ms'},
{text: 'seconds (s)', value: 's'},
{text: 'Hertz (1/s)', value: 'hertz'},
]
},
{
@ -561,6 +565,8 @@ function($, _, moment) {
{text: 'kilowatt-hour (kWh)', value: 'kwatth'},
{text: 'joule (J)', value: 'joule'},
{text: 'electron volt (eV)', value: 'ev'},
{text: 'Ampere (A)', value: 'amp'},
{text: 'Volt (V)', value: 'volt'},
]
},
{

View File

@ -22,7 +22,8 @@
padding-bottom: 10px;
input {
width: 100%;
padding: 18px 8px;
padding: 8px 8px;
height: 100%;
box-sizing: border-box;
}
button {