Browse Source

Merge branch '12918-no-conditional-assignment'

Torkel Ödegaard 7 years ago
parent
commit
c9ae585d2a

+ 2 - 1
public/app/containers/Explore/utils/dom.ts

@@ -9,7 +9,8 @@ if ('Element' in window && !Element.prototype.closest) {
       i = matches.length;
       i = matches.length;
       // eslint-disable-next-line
       // eslint-disable-next-line
       while (--i >= 0 && matches.item(i) !== el) {}
       while (--i >= 0 && matches.item(i) !== el) {}
-    } while (i < 0 && (el = el.parentElement));
+      el = el.parentElement;
+    } while (i < 0 && el);
     return el;
     return el;
   };
   };
 }
 }

+ 2 - 2
public/app/core/components/search/search.ts

@@ -130,8 +130,8 @@ export class SearchCtrl {
     }
     }
 
 
     const max = flattenedResult.length;
     const max = flattenedResult.length;
-    let newIndex = this.selectedIndex + direction;
-    this.selectedIndex = (newIndex %= max) < 0 ? newIndex + max : newIndex;
+    const newIndex = (this.selectedIndex + direction) % max;
+    this.selectedIndex = newIndex < 0 ? newIndex + max : newIndex;
     const selectedItem = flattenedResult[this.selectedIndex];
     const selectedItem = flattenedResult[this.selectedIndex];
 
 
     if (selectedItem.dashboardIndex === undefined && this.results[selectedItem.folderIndex].id === 0) {
     if (selectedItem.dashboardIndex === undefined && this.results[selectedItem.folderIndex].id === 0) {

+ 3 - 1
public/app/core/directives/rebuild_on_change.ts

@@ -5,14 +5,16 @@ function getBlockNodes(nodes) {
   let node = nodes[0];
   let node = nodes[0];
   const endNode = nodes[nodes.length - 1];
   const endNode = nodes[nodes.length - 1];
   let blockNodes;
   let blockNodes;
+  node = node.nextSibling;
 
 
-  for (let i = 1; node !== endNode && (node = node.nextSibling); i++) {
+  for (let i = 1; node !== endNode && node; i++) {
     if (blockNodes || nodes[i] !== node) {
     if (blockNodes || nodes[i] !== node) {
       if (!blockNodes) {
       if (!blockNodes) {
         blockNodes = $([].slice.call(nodes, 0, i));
         blockNodes = $([].slice.call(nodes, 0, i));
       }
       }
       blockNodes.push(node);
       blockNodes.push(node);
     }
     }
+    node = node.nextSibling;
   }
   }
 
 
   return blockNodes || nodes;
   return blockNodes || nodes;

+ 3 - 1
public/app/features/dashboard/dashboard_import_ctrl.ts

@@ -1,5 +1,6 @@
 import _ from 'lodash';
 import _ from 'lodash';
 import config from 'app/core/config';
 import config from 'app/core/config';
+import locationUtil from 'app/core/utils/location_util';
 
 
 export class DashboardImportCtrl {
 export class DashboardImportCtrl {
   navModel: any;
   navModel: any;
@@ -179,7 +180,8 @@ export class DashboardImportCtrl {
         folderId: this.folderId,
         folderId: this.folderId,
       })
       })
       .then(res => {
       .then(res => {
-        this.$location.url(res.importedUrl);
+        const dashUrl = locationUtil.stripBaseFromUrl(res.importedUrl);
+        this.$location.url(dashUrl);
       });
       });
   }
   }
 
 

+ 7 - 2
public/app/features/dashboard/upload.ts

@@ -36,10 +36,15 @@ function uploadDashboardDirective(timer, alertSrv, $location) {
           };
           };
         };
         };
 
 
-        for (let i = 0, f; (f = files[i]); i++) {
+        let i = 0;
+        let file = files[i];
+
+        while (file) {
           const reader = new FileReader();
           const reader = new FileReader();
           reader.onload = readerOnload();
           reader.onload = readerOnload();
-          reader.readAsText(f);
+          reader.readAsText(file);
+          i += 1;
+          file = files[i];
         }
         }
       }
       }
 
 

+ 6 - 4
public/app/plugins/datasource/graphite/datasource.ts

@@ -218,9 +218,10 @@ export function GraphiteDatasource(this: any, instanceSettings, $q, backendSrv,
     if (matches) {
     if (matches) {
       const expressions = [];
       const expressions = [];
       const exprRegex = /, *([^,]+)/g;
       const exprRegex = /, *([^,]+)/g;
-      let match;
-      while ((match = exprRegex.exec(matches[2])) !== null) {
+      let match = exprRegex.exec(matches[2]);
+      while (match !== null) {
         expressions.push(match[1]);
         expressions.push(match[1]);
+        match = exprRegex.exec(matches[2]);
       }
       }
       options.limit = 10000;
       options.limit = 10000;
       return this.getTagValuesAutoComplete(expressions, matches[1], undefined, options);
       return this.getTagValuesAutoComplete(expressions, matches[1], undefined, options);
@@ -233,9 +234,10 @@ export function GraphiteDatasource(this: any, instanceSettings, $q, backendSrv,
       if (matches[1]) {
       if (matches[1]) {
         expressions.push(matches[1]);
         expressions.push(matches[1]);
         const exprRegex = /, *([^,]+)/g;
         const exprRegex = /, *([^,]+)/g;
-        let match;
-        while ((match = exprRegex.exec(matches[2])) !== null) {
+        let match = exprRegex.exec(matches[2]);
+        while (match !== null) {
           expressions.push(match[1]);
           expressions.push(match[1]);
+          match = exprRegex.exec(matches[2]);
         }
         }
       }
       }
       options.limit = 10000;
       options.limit = 10000;

+ 3 - 2
public/app/plugins/datasource/graphite/lexer.ts

@@ -941,9 +941,10 @@ Lexer.prototype = {
 
 
   tokenize: function() {
   tokenize: function() {
     const list = [];
     const list = [];
-    let token;
-    while ((token = this.next())) {
+    let token = this.next();
+    while (token) {
       list.push(token);
       list.push(token);
+      token = this.next();
     }
     }
     return list;
     return list;
   },
   },

+ 3 - 2
public/app/plugins/datasource/logging/result_transformer.ts

@@ -26,13 +26,14 @@ export function getSearchMatches(line: string, search: string) {
   }
   }
   const regexp = new RegExp(`(?:${search})`, 'g');
   const regexp = new RegExp(`(?:${search})`, 'g');
   const matches = [];
   const matches = [];
-  let match;
-  while ((match = regexp.exec(line))) {
+  let match = regexp.exec(line);
+  while (match) {
     matches.push({
     matches.push({
       text: match[0],
       text: match[0],
       start: match.index,
       start: match.index,
       length: match[0].length,
       length: match[0].length,
     });
     });
+    match = regexp.exec(line);
   }
   }
   return matches;
   return matches;
 }
 }

+ 4 - 2
public/app/plugins/datasource/prometheus/datasource.ts

@@ -55,11 +55,12 @@ export function addLabelToQuery(query: string, key: string, value: string): stri
 
 
   // Adding label to existing selectors
   // Adding label to existing selectors
   const selectorRegexp = /{([^{]*)}/g;
   const selectorRegexp = /{([^{]*)}/g;
-  let match = null;
+  let match = selectorRegexp.exec(query);
   const parts = [];
   const parts = [];
   let lastIndex = 0;
   let lastIndex = 0;
   let suffix = '';
   let suffix = '';
-  while ((match = selectorRegexp.exec(query))) {
+
+  while (match) {
     const prefix = query.slice(lastIndex, match.index);
     const prefix = query.slice(lastIndex, match.index);
     const selectorParts = match[1].split(',');
     const selectorParts = match[1].split(',');
     const labels = selectorParts.reduce((acc, label) => {
     const labels = selectorParts.reduce((acc, label) => {
@@ -77,6 +78,7 @@ export function addLabelToQuery(query: string, key: string, value: string): stri
     lastIndex = match.index + match[1].length + 2;
     lastIndex = match.index + match[1].length + 2;
     suffix = query.slice(match.index + match[0].length);
     suffix = query.slice(match.index + match[0].length);
     parts.push(prefix, '{', selector, '}');
     parts.push(prefix, '{', selector, '}');
+    match = selectorRegexp.exec(query);
   }
   }
   parts.push(suffix);
   parts.push(suffix);
   return parts.join('');
   return parts.join('');

+ 4 - 0
public/sass/components/_search.scss

@@ -192,6 +192,10 @@
   &:hover,
   &:hover,
   &.selected {
   &.selected {
     background: $list-item-hover-bg;
     background: $list-item-hover-bg;
+
+    .search-item__body-title {
+      color: $text-color-strong;
+    }
   }
   }
 }
 }
 
 

+ 1 - 0
tslint.json

@@ -33,6 +33,7 @@
     "no-angle-bracket-type-assertion": true,
     "no-angle-bracket-type-assertion": true,
     "no-arg": true,
     "no-arg": true,
     "no-bitwise": false,
     "no-bitwise": false,
+    "no-conditional-assignment": true,
     "no-console": [true, "debug", "info", "time", "timeEnd", "trace"],
     "no-console": [true, "debug", "info", "time", "timeEnd", "trace"],
     "no-construct": true,
     "no-construct": true,
     "no-debugger": true,
     "no-debugger": true,