diff --git a/CHANGELOG.md b/CHANGELOG.md index 3579807e1df..3b8239bd437 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,17 @@ -# 3.0.0-beta3 (unreleased) +# 3.0.0-beta5 (2016-04-15) + +### Bug fixes +* **grafana-cli**: Fixed issue grafana-cli tool, did not detect the right plugin dir, fixes [#4723](https://github.com/grafana/grafana/issues/4723) +* **Graph**: Fixed issue with light theme text color issue in tooltip, fixes [#4702](https://github.com/grafana/grafana/issues/4702) +* **Snapshot**: Fixed issue with empty snapshots, fixes [#4706](https://github.com/grafana/grafana/issues/4706) + +# 3.0.0-beta4 (2016-04-13) + +### Bug fixes +* **Home dashboard**: Fixed issue with permission denied error on home dashboard, fixes [#4686](https://github.com/grafana/grafana/issues/4686) +* **Templating**: Fixed issue templating variables that use regex extraction, fixes [#4672](https://github.com/grafana/grafana/issues/4672) + +# 3.0.0-beta3 (2016-04-12) ### Enhancements * **InfluxDB**: Changed multi query encoding to work with InfluxDB 0.11 & 0.12, closes [#4533](https://github.com/grafana/grafana/issues/4533) diff --git a/docs/sources/http_api/data_source.md b/docs/sources/http_api/data_source.md index 2a3c20e9af8..2a8f79f71f5 100644 --- a/docs/sources/http_api/data_source.md +++ b/docs/sources/http_api/data_source.md @@ -207,35 +207,6 @@ page_keywords: grafana, admin, http, api, documentation, datasource {"message":"Data source deleted"} -## Available data source types - -`GET /api/datasources/plugins` - -**Example Request**: - - GET /api/datasources/plugins HTTP/1.1 - Accept: application/json - Content-Type: application/json - Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk - -**Example Response**: - - HTTP/1.1 200 - Content-Type: application/json - - { - "grafana":{ - "metrics":true,"module":"plugins/datasource/grafana/datasource", - "name":"Grafana (for testing)", - "partials":{ - "query":"app/plugins/datasource/grafana/partials/query.editor.html" - }, - "pluginType":"datasource", - "serviceName":"GrafanaDatasource", - "type":"grafana" - } - } - ## Data source proxy calls `GET /api/datasources/proxy/:datasourceId/*` diff --git a/docs/sources/installation/debian.md b/docs/sources/installation/debian.md index 3b720643d1a..231b4a601ac 100644 --- a/docs/sources/installation/debian.md +++ b/docs/sources/installation/debian.md @@ -11,7 +11,7 @@ page_keywords: grafana, installation, debian, ubuntu, guide Description | Download ------------ | ------------- Stable .deb for Debian-based Linux | [grafana_2.6.0_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb) -Beta .deb for Debian-based Linux | [grafana_3.0.0-beta31460467884_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta31460467884_amd64.deb) +Beta .deb for Debian-based Linux | [grafana_3.0.0-beta51460725904_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta51460725904_amd64.deb) ## Install Stable @@ -21,9 +21,9 @@ Beta .deb for Debian-based Linux | [grafana_3.0.0-beta31460467884_amd64.deb](h ## Install 3.0 Beta - $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta31460467884_amd64.deb + $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta51460725904_amd64.deb $ sudo apt-get install -y adduser libfontconfig - $ sudo dpkg -i grafana_3.0.0-beta31460467884_amd64.deb + $ sudo dpkg -i grafana_3.0.0-beta51460725904_amd64.deb ## APT Repository diff --git a/docs/sources/installation/rpm.md b/docs/sources/installation/rpm.md index 4b2d5467812..d981a5c4b2c 100644 --- a/docs/sources/installation/rpm.md +++ b/docs/sources/installation/rpm.md @@ -11,7 +11,7 @@ page_keywords: grafana, installation, centos, fedora, opensuse, redhat, guide Description | Download ------------ | ------------- Stable .RPM for CentOS / Fedora / OpenSuse / Redhat Linux | [grafana-2.6.0-1.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm) -Beta .RPM for CentOS / Fedor / OpenSuse / Redhat Linux | [grafana-3.0.0-beta31460467884.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta31460467884§.x86_64.rpm) +Beta .RPM for CentOS / Fedor / OpenSuse / Redhat Linux | [grafana-3.0.0-beta51460725904.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta51460725904§.x86_64.rpm) ## Install Stable Release from package file @@ -34,18 +34,18 @@ Or install manually using `rpm`. You can install Grafana using Yum directly. - $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta31460467884.x86_64.rpm + $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta51460725904.x86_64.rpm Or install manually using `rpm`. #### On CentOS / Fedora / Redhat: $ sudo yum install initscripts fontconfig - $ sudo rpm -Uvh grafana-3.0.0-beta31460467884.x86_64.rpm + $ sudo rpm -Uvh grafana-3.0.0-beta51460725904.x86_64.rpm #### On OpenSuse: - $ sudo rpm -i --nodeps grafana-3.0.0-beta31460467884.x86_64.rpm + $ sudo rpm -i --nodeps grafana-3.0.0-beta51460725904.x86_64.rpm ## Install via YUM Repository diff --git a/karma.conf.js b/karma.conf.js index dc082924b11..c803dda5eae 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -24,9 +24,10 @@ module.exports = function(config) { logLevel: config.LOG_INFO, autoWatch: true, browsers: ['PhantomJS'], - captureTimeout: 2000, + captureTimeout: 20000, singleRun: true, - autoWatchBatchDelay: 1000, + autoWatchBatchDelay: 10000, + browserNoActivityTimeout: 60000, }); diff --git a/latest.json b/latest.json index 48595c735e4..9354661781a 100644 --- a/latest.json +++ b/latest.json @@ -1,4 +1,4 @@ { "stable": "2.6.0", - "testing": "3.0.0-beta2" + "testing": "3.0.0-beta5" } diff --git a/package.json b/package.json index 04715d72cb0..f454a42ba7a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "company": "Coding Instinct AB" }, "name": "grafana", - "version": "3.0.0-beta4", + "version": "3.0.0-beta6", "repository": { "type": "git", "url": "http://github.com/grafana/grafana.git" diff --git a/packaging/publish/publish.sh b/packaging/publish/publish.sh index 4ab6b2f6b45..79303707231 100755 --- a/packaging/publish/publish.sh +++ b/packaging/publish/publish.sh @@ -1,22 +1,22 @@ #! /usr/bin/env bash -deb_ver=3.0.0-beta31460467884 -rpm_ver=3.0.0-beta31460467884 +deb_ver=3.0.0-beta51460725904 +rpm_ver=3.0.0-beta51460725904 #rpm_ver=3.0.0-1 -# wget https://grafanarel.s3.amazonaws.com/builds/grafana_${deb_ver}_amd64.deb +#wget https://grafanarel.s3.amazonaws.com/builds/grafana_${deb_ver}_amd64.deb #package_cloud push grafana/stable/debian/jessie grafana_${deb_ver}_amd64.deb #package_cloud push grafana/stable/debian/wheezy grafana_${deb_ver}_amd64.deb -# package_cloud push grafana/testing/debian/jessie grafana_${deb_ver}_amd64.deb -package_cloud push grafana/testing/debian/wheezy grafana_${deb_ver}_amd64.deb +#package_cloud push grafana/testing/debian/jessie grafana_${deb_ver}_amd64.deb +#package_cloud push grafana/testing/debian/wheezy grafana_${deb_ver}_amd64.deb -wget https://grafanarel.s3.amazonaws.com/builds/grafana-${rpm_ver}.x86_64.rpm +#wget https://grafanarel.s3.amazonaws.com/builds/grafana-${rpm_ver}.x86_64.rpm -package_cloud push grafana/testing/el/6 grafana-${rpm_ver}.x86_64.rpm -ackage_cloud push grafana/testing/el/7 grafana-${rpm_ver}.x86_64.rpm +#package_cloud push grafana/testing/el/6 grafana-${rpm_ver}.x86_64.rpm +package_cloud push grafana/testing/el/7 grafana-${rpm_ver}.x86_64.rpm # package_cloud push grafana/stable/el/7 grafana-${version}-1.x86_64.rpm # package_cloud push grafana/stable/el/6 grafana-${version}-1.x86_64.rpm diff --git a/pkg/api/api.go b/pkg/api/api.go index fae78053962..684633e0bcd 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -191,12 +191,12 @@ func Register(r *macaron.Macaron) { r.Get("/datasources/id/:name", wrap(GetDataSourceIdByName), reqSignedIn) - r.Group("/plugins", func() { - r.Get("/", wrap(GetPluginList)) + r.Get("/plugins", wrap(GetPluginList)) + r.Get("/plugins/:pluginId/settings", wrap(GetPluginSettingById)) + r.Group("/plugins", func() { r.Get("/:pluginId/readme", wrap(GetPluginReadme)) r.Get("/:pluginId/dashboards/", wrap(GetPluginDashboards)) - r.Get("/:pluginId/settings", wrap(GetPluginSettingById)) r.Post("/:pluginId/settings", bind(m.UpdatePluginSettingCmd{}), wrap(UpdatePluginSetting)) }, reqOrgAdmin) diff --git a/pkg/cmd/grafana-cli/main.go b/pkg/cmd/grafana-cli/main.go index 6af55e6177c..5cc3fb6f306 100644 --- a/pkg/cmd/grafana-cli/main.go +++ b/pkg/cmd/grafana-cli/main.go @@ -8,6 +8,7 @@ import ( "github.com/codegangsta/cli" "github.com/grafana/grafana/pkg/cmd/grafana-cli/commands" "github.com/grafana/grafana/pkg/cmd/grafana-cli/log" + "strings" ) var version = "master" @@ -17,7 +18,7 @@ func getGrafanaPluginDir() string { defaultNix := "/var/lib/grafana/plugins" if currentOS == "windows" { - return "..\\data\\plugins" + return "C:\\opt\\grafana\\plugins" } pwd, err := os.Getwd() @@ -28,16 +29,16 @@ func getGrafanaPluginDir() string { } if isDevenvironment(pwd) { - return "../data/plugins" + return "../../../data/plugins" } return defaultNix } func isDevenvironment(pwd string) bool { - // if ../conf/default.ini exists, grafana is not installed as package - _, err := os.Stat("../conf/default.ini") - return err != nil + // if grafana-cli is executed from the cmd folder we can assume + // that its in development environment. + return strings.HasSuffix(pwd, "/pkg/cmd/grafana-cli") } func main() { diff --git a/pkg/plugins/update_checker.go b/pkg/plugins/update_checker.go index 33ca1b2277b..36169434096 100644 --- a/pkg/plugins/update_checker.go +++ b/pkg/plugins/update_checker.go @@ -111,7 +111,7 @@ func checkForUpdates() { if strings.Contains(setting.BuildVersion, "-") { GrafanaLatestVersion = githubLatest.Testing - GrafanaHasUpdate = strings.HasPrefix(setting.BuildVersion, githubLatest.Testing) + GrafanaHasUpdate = !strings.HasPrefix(setting.BuildVersion, githubLatest.Testing) } else { GrafanaLatestVersion = githubLatest.Stable GrafanaHasUpdate = githubLatest.Stable != setting.BuildVersion diff --git a/public/app/core/components/colorpicker.ts b/public/app/core/components/colorpicker.ts index 7c35ac7e4ac..1834a1eb8a1 100644 --- a/public/app/core/components/colorpicker.ts +++ b/public/app/core/components/colorpicker.ts @@ -7,10 +7,6 @@ import coreModule from 'app/core/core_module'; var template = `
- - - -
`; @@ -51,21 +46,17 @@ export class ColorPickerCtrl { toggleAxis(yaxis) { this.$scope.toggleAxis(); - if (!this.$scope.autoClose) { + if (this.$scope.autoClose) { this.$scope.dismiss(); } } colorSelected(color) { this.$scope.colorSelected(color); - if (!this.$scope.autoClose) { + if (this.$scope.autoClose) { this.$scope.dismiss(); } } - - close() { - this.$scope.dismiss(); - } } export function colorPicker() { diff --git a/public/app/core/components/dashboard_selector.ts b/public/app/core/components/dashboard_selector.ts index 913a43911fa..4209ff3f8dc 100644 --- a/public/app/core/components/dashboard_selector.ts +++ b/public/app/core/components/dashboard_selector.ts @@ -7,6 +7,9 @@ import coreModule from 'app/core/core_module'; var template = ` + + Not finding dashboard you want? Star it first, then it should appear in this select box. + `; export class DashboardSelectorCtrl { diff --git a/public/app/core/components/info_popover.ts b/public/app/core/components/info_popover.ts index cc49ecbc4ab..8bc28b8a57d 100644 --- a/public/app/core/components/info_popover.ts +++ b/public/app/core/components/info_popover.ts @@ -8,21 +8,30 @@ import Drop from 'tether-drop'; export function infoPopover() { return { restrict: 'E', + template: '', transclude: true, link: function(scope, elem, attrs, ctrl, transclude) { - var inputElem = elem.prev(); - if (inputElem.length === 0) { - console.log('Failed to find input element for popover'); - return; - } + // var inputElem = elem.prev(); + // if (inputElem.length === 0) { + // console.log('Failed to find input element for popover'); + // return; + // } var offset = attrs.offset || '0 -10px'; var position = attrs.position || 'right middle'; var classes = 'drop-help drop-hide-out-of-bounds'; + var openOn = 'hover'; + + elem.addClass('gf-form-help-icon'); + if (attrs.wide) { classes += ' drop-wide'; } + if (attrs.mode) { + elem.addClass('gf-form-help-icon--' + attrs.mode); + } + transclude(function(clone, newScope) { var content = document.createElement("div"); _.each(clone, (node) => { @@ -30,11 +39,11 @@ export function infoPopover() { }); var drop = new Drop({ - target: inputElem[0], + target: elem[0], content: content, position: position, classes: classes, - openOn: 'click', + openOn: openOn, tetherOptions: { offset: offset } diff --git a/public/app/core/components/switch.ts b/public/app/core/components/switch.ts index e2ba60d92e8..2a64ec487f7 100644 --- a/public/app/core/components/switch.ts +++ b/public/app/core/components/switch.ts @@ -7,7 +7,12 @@ import coreModule from 'app/core/core_module'; import Drop from 'tether-drop'; var template = ` - +
@@ -49,22 +54,6 @@ export function switchDirective() { onChange: "&", }, template: template, - link: (scope, elem) => { - if (scope.ctrl.tooltip) { - var drop = new Drop({ - target: elem[0], - content: scope.ctrl.tooltip, - position: "right middle", - classes: 'drop-help', - openOn: 'hover', - hoverOpenDelay: 400, - }); - - scope.$on('$destroy', function() { - drop.destroy(); - }); - } - } }; } diff --git a/public/app/core/time_series2.ts b/public/app/core/time_series2.ts index e0a3dd47b4e..cbceff7afd8 100644 --- a/public/app/core/time_series2.ts +++ b/public/app/core/time_series2.ts @@ -42,6 +42,7 @@ export default class TimeSeries { fillBelowTo: any; transform: any; flotpairs: any; + unit: any; constructor(opts) { this.datapoints = opts.datapoints; @@ -52,6 +53,7 @@ export default class TimeSeries { this.valueFormater = kbn.valueFormats.none; this.stats = {}; this.legend = true; + this.unit = opts.unit; } applySeriesOverrides(overrides) { diff --git a/public/app/features/dashboard/dashnav/dashnav.html b/public/app/features/dashboard/dashnav/dashnav.html index 19112f77a43..9afd152d8aa 100644 --- a/public/app/features/dashboard/dashnav/dashnav.html +++ b/public/app/features/dashboard/dashnav/dashnav.html @@ -36,7 +36,7 @@
  • - +
  • - +
    @@ -46,19 +49,19 @@ label="Editable" tooltip="Uncheck, then save and reload to disable all dashboard editing" checked="dashboard.editable" - label-class="width-10"> + label-class="width-11"> + label-class="width-11"> + label-class="width-11">
    diff --git a/public/app/features/dashboard/timepicker/timepicker.html b/public/app/features/dashboard/timepicker/timepicker.html index 49e2dac27c0..12570b3f2b0 100644 --- a/public/app/features/dashboard/timepicker/timepicker.html +++ b/public/app/features/dashboard/timepicker/timepicker.html @@ -1,19 +1,13 @@