refactor(): refactored date handling and locale handling in #5517

pull/5480/head
Torkel Ödegaard 9 years ago
parent c029e47a12
commit 5595fc2683
  1. 1
      pkg/api/dtos/models.go
  2. 12
      pkg/api/index.go
  3. 6
      public/app/app.ts
  4. 4
      public/app/features/dashboard/timepicker/dropdown.html
  5. 2
      public/app/plugins/panel/table/specs/renderer_specs.ts
  6. 22494
      public/vendor/moment.js

@ -34,6 +34,7 @@ type CurrentUser struct {
IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
GravatarUrl string `json:"gravatarUrl"`
Timezone string `json:"timezone"`
Locale string `json:"locale"`
}
type DashboardMeta struct {

@ -1,6 +1,8 @@
package api
import (
"strings"
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/middleware"
@ -21,6 +23,15 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) {
}
prefs := prefsQuery.Result
// Read locale from acccept-language
acceptLang := c.Req.Header.Get("Accept-Language")
locale := "en-US"
if len(acceptLang) > 0 {
parts := strings.Split(acceptLang, ",")
locale = parts[0]
}
var data = dtos.IndexViewData{
User: &dtos.CurrentUser{
Id: c.UserId,
@ -35,6 +46,7 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) {
IsGrafanaAdmin: c.IsGrafanaAdmin,
LightTheme: prefs.Theme == "light",
Timezone: prefs.Timezone,
Locale: locale,
},
Settings: settings,
AppUrl: setting.AppUrl,

@ -42,13 +42,15 @@ export class GrafanaApp {
var app = angular.module('grafana', []);
app.constant('grafanaVersion', "@grafanaVersion@");
moment.locale(config.bootData.user.locale);
app.config(($locationProvider, $controllerProvider, $compileProvider, $filterProvider, $httpProvider, $provide) => {
if (config.buildInfo.env !== 'development') {
$compileProvider.debugInfoEnabled(false);
}
$httpProvider.useApplyAsync(true);
moment.locale(window.navigator.userLanguage || window.navigator.language);
$httpProvider.useApplyAsync(true);
this.registerFunctions.controller = $controllerProvider.register;
this.registerFunctions.directive = $compileProvider.directive;

@ -15,7 +15,7 @@
</div>
<div ng-if="openFromPicker">
<datepicker ng-model="ctrl.absolute.fromJs" class="gf-timepicker-component" show-weeks="false" starting-day="firstDayOfWeek" ng-change="ctrl.absoluteFromChanged()"></datepicker>
<datepicker ng-model="ctrl.absolute.fromJs" class="gf-timepicker-component" show-weeks="false" starting-day="ctrl.firstDayOfWeek" ng-change="ctrl.absoluteFromChanged()"></datepicker>
</div>
@ -32,7 +32,7 @@
</div>
<div ng-if="openToPicker">
<datepicker ng-model="ctrl.absolute.toJs" class="gf-timepicker-component" show-weeks="false" starting-day="firstDayOfWeek" ng-change="ctrl.absoluteToChanged()"></datepicker>
<datepicker ng-model="ctrl.absolute.toJs" class="gf-timepicker-component" show-weeks="false" starting-day="ctrl.firstDayOfWeek" ng-change="ctrl.absoluteToChanged()"></datepicker>
</div>
<label class="small">Refreshing every:</label>

@ -55,7 +55,7 @@ describe('when rendering table', () => {
it('time column should be formated', () => {
var html = renderer.renderCell(0, 1388556366666);
expect(html).to.be('<td>2014-01-01T06:06:06+00:00</td>');
expect(html).to.be('<td>2014-01-01T06:06:06Z</td>');
});
it('number column with unit specified should ignore style unit', () => {

22494
public/vendor/moment.js vendored

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save