mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
refactor PostgresQueryCtrl
This commit is contained in:
parent
d7ed706e12
commit
844beb660d
@ -112,9 +112,11 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
this.target.rawQuery = !this.target.rawQuery;
|
||||
}
|
||||
|
||||
resetPlusButton(button) {}
|
||||
|
||||
// schema functions
|
||||
resetPlusButton(button) {
|
||||
let plusButton = this.uiSegmentSrv.newPlusButton();
|
||||
button.html = plusButton.html;
|
||||
button.value = plusButton.value;
|
||||
}
|
||||
|
||||
getSchemaSegments() {
|
||||
return this.datasource
|
||||
@ -128,8 +130,6 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
// table functions
|
||||
|
||||
getTableSegments() {
|
||||
return this.datasource
|
||||
.metricFindQuery(this.queryBuilder.buildTableQuery())
|
||||
@ -137,6 +137,11 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
.catch(this.handleQueryError.bind(this));
|
||||
}
|
||||
|
||||
tableChanged() {
|
||||
this.target.table = this.tableSegment.value;
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
getTimeColumnSegments() {
|
||||
return this.datasource
|
||||
.metricFindQuery(this.queryBuilder.buildColumnQuery('time'))
|
||||
@ -144,6 +149,11 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
.catch(this.handleQueryError.bind(this));
|
||||
}
|
||||
|
||||
timeColumnChanged() {
|
||||
this.target.timeColumn = this.timeColumnSegment.value;
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
getMetricColumnSegments() {
|
||||
return this.datasource
|
||||
.metricFindQuery(this.queryBuilder.buildColumnQuery('metric'))
|
||||
@ -151,16 +161,6 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
.catch(this.handleQueryError.bind(this));
|
||||
}
|
||||
|
||||
tableChanged() {
|
||||
this.target.table = this.tableSegment.value;
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
timeColumnChanged() {
|
||||
this.target.timeColumn = this.timeColumnSegment.value;
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
metricColumnChanged() {
|
||||
this.target.metricColumn = this.metricColumnSegment.value;
|
||||
this.panelCtrl.refresh();
|
||||
@ -188,7 +188,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
|
||||
transformToSegments(config) {
|
||||
return results => {
|
||||
var segments = _.map(results, segment => {
|
||||
let segments = _.map(results, segment => {
|
||||
return this.uiSegmentSrv.newSegment({
|
||||
value: segment.text,
|
||||
expandable: segment.expandable,
|
||||
@ -197,7 +197,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
|
||||
if (config.addTemplateVars) {
|
||||
for (let variable of this.templateSrv.variables) {
|
||||
var value;
|
||||
let value;
|
||||
value = '$' + variable.name;
|
||||
if (config.templateQuoter && variable.multi === false) {
|
||||
value = config.templateQuoter(value);
|
||||
@ -222,17 +222,15 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
}
|
||||
|
||||
addSelectPart(selectParts, cat, subitem) {
|
||||
if ('submenu' in cat) {
|
||||
this.addSelectPart2(selectParts, subitem.value);
|
||||
} else {
|
||||
this.addSelectPart2(selectParts, cat.value);
|
||||
}
|
||||
let partModel = sqlPart.create({ type: cat.value });
|
||||
partModel.def.addStrategy(selectParts, partModel, this);
|
||||
this.updatePersistedParts();
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
removeSelectPart(selectParts, part) {
|
||||
// if we remove the field remove the whole statement
|
||||
if (part.def.type === 'column') {
|
||||
// remove all parts of column unless its last column
|
||||
if (this.selectModels.length > 1) {
|
||||
let modelsIndex = _.indexOf(this.selectModels, selectParts);
|
||||
this.selectModels.splice(modelsIndex, 1);
|
||||
@ -245,12 +243,6 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
this.updatePersistedParts();
|
||||
}
|
||||
|
||||
addSelectPart2(selectParts, type) {
|
||||
let partModel = sqlPart.create({ type: type });
|
||||
partModel.def.addStrategy(selectParts, partModel, this);
|
||||
this.updatePersistedParts();
|
||||
}
|
||||
|
||||
handleSelectPartEvent(selectParts, part, evt) {
|
||||
switch (evt.name) {
|
||||
case 'get-param-options': {
|
||||
@ -320,8 +312,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
}
|
||||
|
||||
// add aggregates when adding group by
|
||||
for (let i = 0; i < this.selectModels.length; i++) {
|
||||
var selectParts = this.selectModels[i];
|
||||
for (let selectParts of this.selectModels) {
|
||||
if (!selectParts.some(part => part.def.type === 'aggregate')) {
|
||||
let aggregate = sqlPart.create({ type: 'aggregate', params: ['avg'] });
|
||||
selectParts.splice(1, 0, aggregate);
|
||||
@ -352,11 +343,6 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
this.updatePersistedParts();
|
||||
}
|
||||
|
||||
buildWhereSegments() {
|
||||
// this.whereSegments = [];
|
||||
// this.whereSegments.push(sqlPart.create({ type: 'expression', params: ['value', '=', 'value'] }));
|
||||
}
|
||||
|
||||
handleWherePartEvent(whereParts, part, evt, index) {
|
||||
switch (evt.name) {
|
||||
case 'get-param-options': {
|
||||
@ -413,11 +399,8 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
}
|
||||
}
|
||||
|
||||
var plusButton = this.uiSegmentSrv.newPlusButton();
|
||||
this.whereAdd.html = plusButton.html;
|
||||
this.whereAdd.value = plusButton.value;
|
||||
|
||||
this.updatePersistedParts();
|
||||
this.resetPlusButton(this.whereAdd);
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
@ -444,9 +427,7 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
||||
}
|
||||
}
|
||||
|
||||
var plusButton = this.uiSegmentSrv.newPlusButton();
|
||||
this.groupByAdd.html = plusButton.html;
|
||||
this.groupByAdd.value = plusButton.value;
|
||||
this.resetPlusButton(this.groupByAdd);
|
||||
this.panelCtrl.refresh();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user