refactor PostgresQueryCtrl

This commit is contained in:
Sven Klemm 2018-07-14 21:00:06 +02:00
parent d7ed706e12
commit 844beb660d

View File

@ -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();
}