| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import appEvents from 'app/core/app_events';
- import { QueryCtrl } from 'app/plugins/sdk';
- function makeDefaultQuery(database) {
- return `from(db: "${database}")
- |> range($range)
- |> limit(n:1000)
- `;
- }
- export class InfluxIfqlQueryCtrl extends QueryCtrl {
- static templateUrl = 'partials/query.editor.html';
- dataPreview: string;
- resultRecordCount: string;
- resultTableCount: string;
- resultFormats: any[];
- /** @ngInject **/
- constructor($scope, $injector) {
- super($scope, $injector);
- this.resultRecordCount = '';
- this.resultTableCount = '';
- if (this.target.query === undefined) {
- this.target.query = makeDefaultQuery(this.datasource.database);
- }
- this.resultFormats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }];
- appEvents.on('ds-request-response', this.onResponseReceived, $scope);
- this.panelCtrl.events.on('refresh', this.onRefresh, $scope);
- this.panelCtrl.events.on('data-received', this.onDataReceived, $scope);
- }
- onDataReceived = dataList => {
- this.resultRecordCount = dataList.reduce((count, model) => {
- const records = model.type === 'table' ? model.rows.length : model.datapoints.length;
- return count + records;
- }, 0);
- this.resultTableCount = dataList.length;
- };
- onResponseReceived = response => {
- this.dataPreview = response.data;
- };
- onRefresh = () => {
- this.dataPreview = '';
- this.resultRecordCount = '';
- this.resultTableCount = '';
- };
- getCollapsedText() {
- return this.target.query;
- }
- }
|