Преглед изворни кода

converted linkSrv.js to linkSrv.ts

Patrick O'Carroll пре 8 година
родитељ
комит
2dd49e6e50
2 измењених фајлова са 114 додато и 118 уклоњено
  1. 0 118
      public/app/features/panellinks/linkSrv.js
  2. 114 0
      public/app/features/panellinks/linkSrv.ts

+ 0 - 118
public/app/features/panellinks/linkSrv.js

@@ -1,118 +0,0 @@
-define([
-  'angular',
-  'lodash',
-  'app/core/utils/kbn',
-],
-function (angular, _, kbn) {
-  'use strict';
-
-  kbn = kbn.default;
-
-  angular
-    .module('grafana.services')
-    .service('linkSrv', function(templateSrv, timeSrv) {
-
-      this.getLinkUrl = function(link) {
-        var url = templateSrv.replace(link.url || '');
-        var params = {};
-
-        if (link.keepTime) {
-          var range = timeSrv.timeRangeForUrl();
-          params['from'] = range.from;
-          params['to'] = range.to;
-        }
-
-        if (link.includeVars) {
-          templateSrv.fillVariableValuesForUrl(params);
-        }
-
-        return this.addParamsToUrl(url, params);
-      };
-
-      this.addParamsToUrl = function(url, params) {
-        var paramsArray = [];
-        _.each(params, function(value, key) {
-          if (value === null) { return; }
-          if (value === true) {
-            paramsArray.push(key);
-          }
-          else if (_.isArray(value)) {
-            _.each(value, function(instance) {
-              paramsArray.push(key + '=' + encodeURIComponent(instance));
-            });
-          }
-          else {
-            paramsArray.push(key + '=' + encodeURIComponent(value));
-          }
-        });
-
-        if (paramsArray.length === 0) {
-          return url;
-        }
-
-        return this.appendToQueryString(url, paramsArray.join('&'));
-      };
-
-      this.appendToQueryString = function(url, stringToAppend) {
-        if (!_.isUndefined(stringToAppend) && stringToAppend !== null && stringToAppend !== '') {
-          var pos = url.indexOf('?');
-          if (pos !== -1) {
-            if (url.length - pos > 1) {
-              url += '&';
-            }
-          } else {
-            url += '?';
-          }
-          url += stringToAppend;
-        }
-        return url;
-      };
-
-      this.getAnchorInfo = function(link) {
-        var info = {};
-        info.href = this.getLinkUrl(link);
-        info.title = templateSrv.replace(link.title || '');
-        return info;
-      };
-
-      this.getPanelLinkAnchorInfo = function(link, scopedVars) {
-        var info = {};
-        if (link.type === 'absolute') {
-          info.target = link.targetBlank ? '_blank' : '_self';
-          info.href = templateSrv.replace(link.url || '', scopedVars);
-          info.title = templateSrv.replace(link.title || '', scopedVars);
-        }
-        else if (link.dashUri) {
-          info.href = 'dashboard/' + link.dashUri + '?';
-          info.title = templateSrv.replace(link.title || '', scopedVars);
-          info.target = link.targetBlank ? '_blank' : '';
-        }
-        else {
-          info.title = templateSrv.replace(link.title || '', scopedVars);
-          var slug = kbn.slugifyForUrl(link.dashboard || '');
-          info.href = 'dashboard/db/' + slug + '?';
-        }
-
-        var params = {};
-
-        if (link.keepTime) {
-          var range = timeSrv.timeRangeForUrl();
-          params['from'] = range.from;
-          params['to'] = range.to;
-        }
-
-        if (link.includeVars) {
-          templateSrv.fillVariableValuesForUrl(params, scopedVars);
-        }
-
-        info.href = this.addParamsToUrl(info.href, params);
-
-        if (link.params) {
-          info.href = this.appendToQueryString(info.href, templateSrv.replace(link.params, scopedVars));
-        }
-
-        return info;
-      };
-
-    });
-});

+ 114 - 0
public/app/features/panellinks/linkSrv.ts

@@ -0,0 +1,114 @@
+import angular from 'angular';
+import _ from 'lodash';
+import kbn from 'app/core/utils/kbn';
+
+
+export class LinkSrv {
+
+  /** @ngInject */
+  constructor(private templateSrv, private timeSrv) {
+  }
+
+  getLinkUrl(link) {
+    var url = this.templateSrv.replace(link.url || '');
+    var params = {};
+
+    if (link.keepTime) {
+      var range = this.timeSrv.timeRangeForUrl();
+      params['from'] = range.from;
+      params['to'] = range.to;
+    }
+
+    if (link.includeVars) {
+      this.templateSrv.fillVariableValuesForUrl(params);
+    }
+
+    return this.addParamsToUrl(url, params);
+  }
+
+  addParamsToUrl(url, params) {
+    var paramsArray = [];
+
+    _.each(params, function(value, key) {
+      if (value === null) { return; }
+      if (value === true) {
+        paramsArray.push(key);
+      } else if (_.isArray(value)) {
+        _.each(value, function(instance) {
+          paramsArray.push(key + '=' + encodeURIComponent(instance));
+        });
+      } else {
+        paramsArray.push(key + '=' + encodeURIComponent(value));
+      }
+    });
+
+    if (paramsArray.length === 0) {
+      return url;
+    }
+
+    return this.appendToQueryString(url, paramsArray.join('&'));
+  }
+
+  appendToQueryString(url, stringToAppend) {
+    if (!_.isUndefined(stringToAppend) && stringToAppend !== null && stringToAppend !== '') {
+      var pos = url.indexOf('?');
+      if (pos !== -1) {
+        if (url.length - pos > 1) {
+          url += '&';
+        }
+      } else {
+        url += '?';
+      }
+      url += stringToAppend;
+    }
+
+    return url;
+  }
+
+  getAnchorInfo(link) {
+    var info = {};
+    (<any>info).href = this.getLinkUrl(link);
+    (<any>info).title = this.templateSrv.replace(link.title || '');
+    return info;
+  }
+
+  getPanelLinkAnchorInfo(link, scopedVars) {
+    var info = {};
+    if (link.type === 'absolute') {
+      (<any>info).target = link.targetBlank ? '_blank' : '_self';
+      (<any>info).href = this.templateSrv.replace(link.url || '', scopedVars);
+      (<any>info).title = this.templateSrv.replace(link.title || '', scopedVars);
+    } else if (link.dashUri) {
+      (<any>info).href = 'dashboard/' + link.dashUri + '?';
+      (<any>info).title = this.templateSrv.replace(link.title || '', scopedVars);
+      (<any>info).target = link.targetBlank ? '_blank' : '';
+    } else {
+      (<any>info).title = this.templateSrv.replace(link.title || '', scopedVars);
+      var slug = kbn.slugifyForUrl(link.dashboard || '');
+      (<any>info).href = 'dashboard/db/' + slug + '?';
+    }
+
+    var params = {};
+
+    if (link.keepTime) {
+      var range = this.timeSrv.timeRangeForUrl();
+      params['from'] = range.from;
+      params['to'] = range.to;
+    }
+
+    if (link.includeVars) {
+      this.templateSrv.fillVariableValuesForUrl(params, scopedVars);
+    }
+
+    (<any>info).href = this.addParamsToUrl((<any>info).href, params);
+
+    if (link.params) {
+      (<any>info).href = this.appendToQueryString((<any>info).href, this.templateSrv.replace(link.params, scopedVars));
+    }
+
+    return info;
+  }
+
+}
+
+angular.module('grafana.services').service('linkSrv', LinkSrv);