mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 20:54:22 -06:00
Merge branch '12918-no-conditional-assignment'
This commit is contained in:
commit
c9ae585d2a
@ -9,7 +9,8 @@ if ('Element' in window && !Element.prototype.closest) {
|
||||
i = matches.length;
|
||||
// eslint-disable-next-line
|
||||
while (--i >= 0 && matches.item(i) !== el) {}
|
||||
} while (i < 0 && (el = el.parentElement));
|
||||
el = el.parentElement;
|
||||
} while (i < 0 && el);
|
||||
return el;
|
||||
};
|
||||
}
|
||||
|
@ -130,8 +130,8 @@ export class SearchCtrl {
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
if (selectedItem.dashboardIndex === undefined && this.results[selectedItem.folderIndex].id === 0) {
|
||||
|
@ -5,14 +5,16 @@ function getBlockNodes(nodes) {
|
||||
let node = nodes[0];
|
||||
const endNode = nodes[nodes.length - 1];
|
||||
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) {
|
||||
blockNodes = $([].slice.call(nodes, 0, i));
|
||||
}
|
||||
blockNodes.push(node);
|
||||
}
|
||||
node = node.nextSibling;
|
||||
}
|
||||
|
||||
return blockNodes || nodes;
|
||||
|
@ -1,5 +1,6 @@
|
||||
import _ from 'lodash';
|
||||
import config from 'app/core/config';
|
||||
import locationUtil from 'app/core/utils/location_util';
|
||||
|
||||
export class DashboardImportCtrl {
|
||||
navModel: any;
|
||||
@ -179,7 +180,8 @@ export class DashboardImportCtrl {
|
||||
folderId: this.folderId,
|
||||
})
|
||||
.then(res => {
|
||||
this.$location.url(res.importedUrl);
|
||||
const dashUrl = locationUtil.stripBaseFromUrl(res.importedUrl);
|
||||
this.$location.url(dashUrl);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
reader.onload = readerOnload();
|
||||
reader.readAsText(f);
|
||||
reader.readAsText(file);
|
||||
i += 1;
|
||||
file = files[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -218,9 +218,10 @@ export function GraphiteDatasource(this: any, instanceSettings, $q, backendSrv,
|
||||
if (matches) {
|
||||
const expressions = [];
|
||||
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]);
|
||||
match = exprRegex.exec(matches[2]);
|
||||
}
|
||||
options.limit = 10000;
|
||||
return this.getTagValuesAutoComplete(expressions, matches[1], undefined, options);
|
||||
@ -233,9 +234,10 @@ export function GraphiteDatasource(this: any, instanceSettings, $q, backendSrv,
|
||||
if (matches[1]) {
|
||||
expressions.push(matches[1]);
|
||||
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]);
|
||||
match = exprRegex.exec(matches[2]);
|
||||
}
|
||||
}
|
||||
options.limit = 10000;
|
||||
|
@ -941,9 +941,10 @@ Lexer.prototype = {
|
||||
|
||||
tokenize: function() {
|
||||
const list = [];
|
||||
let token;
|
||||
while ((token = this.next())) {
|
||||
let token = this.next();
|
||||
while (token) {
|
||||
list.push(token);
|
||||
token = this.next();
|
||||
}
|
||||
return list;
|
||||
},
|
||||
|
@ -26,13 +26,14 @@ export function getSearchMatches(line: string, search: string) {
|
||||
}
|
||||
const regexp = new RegExp(`(?:${search})`, 'g');
|
||||
const matches = [];
|
||||
let match;
|
||||
while ((match = regexp.exec(line))) {
|
||||
let match = regexp.exec(line);
|
||||
while (match) {
|
||||
matches.push({
|
||||
text: match[0],
|
||||
start: match.index,
|
||||
length: match[0].length,
|
||||
});
|
||||
match = regexp.exec(line);
|
||||
}
|
||||
return matches;
|
||||
}
|
||||
|
@ -55,11 +55,12 @@ export function addLabelToQuery(query: string, key: string, value: string): stri
|
||||
|
||||
// Adding label to existing selectors
|
||||
const selectorRegexp = /{([^{]*)}/g;
|
||||
let match = null;
|
||||
let match = selectorRegexp.exec(query);
|
||||
const parts = [];
|
||||
let lastIndex = 0;
|
||||
let suffix = '';
|
||||
while ((match = selectorRegexp.exec(query))) {
|
||||
|
||||
while (match) {
|
||||
const prefix = query.slice(lastIndex, match.index);
|
||||
const selectorParts = match[1].split(',');
|
||||
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;
|
||||
suffix = query.slice(match.index + match[0].length);
|
||||
parts.push(prefix, '{', selector, '}');
|
||||
match = selectorRegexp.exec(query);
|
||||
}
|
||||
parts.push(suffix);
|
||||
return parts.join('');
|
||||
|
@ -192,6 +192,10 @@
|
||||
&:hover,
|
||||
&.selected {
|
||||
background: $list-item-hover-bg;
|
||||
|
||||
.search-item__body-title {
|
||||
color: $text-color-strong;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
"no-angle-bracket-type-assertion": true,
|
||||
"no-arg": true,
|
||||
"no-bitwise": false,
|
||||
"no-conditional-assignment": true,
|
||||
"no-console": [true, "debug", "info", "time", "timeEnd", "trace"],
|
||||
"no-construct": true,
|
||||
"no-debugger": true,
|
||||
|
Loading…
Reference in New Issue
Block a user