Procházet zdrojové kódy

feat(prefs): moved context srv to typescript

Torkel Ödegaard před 9 roky
rodič
revize
55d95f9009

+ 0 - 47
public/app/core/services/context_srv.js

@@ -1,47 +0,0 @@
-define([
-  'angular',
-  'lodash',
-  '../core_module',
-  'app/core/store',
-  'app/core/config',
-],
-function (angular, _, coreModule, store, config) {
-  'use strict';
-
-  coreModule.default.service('contextSrv', function() {
-
-    function User() {
-      if (config.bootData.user) {
-        _.extend(this, config.bootData.user);
-      }
-    }
-
-    this.hasRole = function(role) {
-      return this.user.orgRole === role;
-    };
-
-    this.setPinnedState = function(val) {
-      this.pinned = val;
-      store.set('grafana.sidemenu.pinned', val);
-    };
-
-    this.toggleSideMenu = function() {
-      this.sidemenu = !this.sidemenu;
-      if (!this.sidemenu) {
-        this.setPinnedState(false);
-      }
-    };
-
-    this.pinned = store.getBool('grafana.sidemenu.pinned', false);
-    if (this.pinned) {
-      this.sidemenu = true;
-    }
-
-    this.version = config.buildInfo.version;
-    this.lightTheme = false;
-    this.user = new User();
-    this.isSignedIn = this.user.isSignedIn;
-    this.isGrafanaAdmin = this.user.isGrafanaAdmin;
-    this.isEditor = this.hasRole('Editor') || this.hasRole('Admin');
-  });
-});

+ 67 - 0
public/app/core/services/context_srv.ts

@@ -0,0 +1,67 @@
+///<reference path="../../headers/common.d.ts" />
+
+import config from 'app/core/config';
+import _ from 'lodash';
+import $ from 'jquery';
+import coreModule from 'app/core/core_module';
+import store from 'app/core/store';
+
+export class User {
+  isGrafanaAdmin: any;
+  isSignedIn: any;
+  orgRole: any;
+
+  constructor() {
+    if (config.bootData.user) {
+      _.extend(this, config.bootData.user);
+    }
+  }
+}
+
+export class ContextSrv {
+  pinned: any;
+  version: any;
+  user: User;
+  isSignedIn: any;
+  isGrafanaAdmin: any;
+  isEditor: any;
+  sidemenu: any;
+  lightTheme: any;
+
+  constructor() {
+    this.pinned = store.getBool('grafana.sidemenu.pinned', false);
+    if (this.pinned) {
+      this.sidemenu = true;
+    }
+
+    this.version = config.buildInfo.version;
+    this.lightTheme = false;
+    this.user = new User();
+    this.isSignedIn = this.user.isSignedIn;
+    this.isGrafanaAdmin = this.user.isGrafanaAdmin;
+    this.isEditor = this.hasRole('Editor') || this.hasRole('Admin');
+  }
+
+  hasRole(role) {
+    return this.user.orgRole === role;
+  }
+
+  setPinnedState(val) {
+    this.pinned = val;
+    store.set('grafana.sidemenu.pinned', val);
+  }
+
+  toggleSideMenu() {
+    this.sidemenu = !this.sidemenu;
+    if (!this.sidemenu) {
+      this.setPinnedState(false);
+    }
+  }
+}
+
+var contextSrv = new ContextSrv();
+export {contextSrv};
+
+coreModule.factory('contextSrv', function() {
+  return contextSrv;
+});