// ################################################################################ // # Copyright (c) 2018 JamesOsgood // # // # Permission is hereby granted, free of charge, to any person obtaining a copy // # of this software and associated documentation files (the "Software"), to deal // # in the Software without restriction, including without limitation the rights // # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // # copies of the Software, and to permit persons to whom the Software is // # furnished to do so, subject to the following conditions: // # // # The above copyright notice and this permission notice shall be included in all // # copies or substantial portions of the Software. // # // # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // # SOFTWARE. // ################################################################################ import {QueryCtrl} from 'app/plugins/sdk'; import './css/query-editor.css!' export class GenericDatasourceQueryCtrl extends QueryCtrl { constructor($scope, $injector) { super($scope, $injector); this.scope = $scope; this.target.target = this.target.target || 'select metric'; this.target.type = this.target.type || 'timeserie'; this.target.rawQuery = true; } getOptions(query) { return this.datasource.metricFindQuery(query || ''); } toggleEditorMode() { this.target.rawQuery = !this.target.rawQuery; } onChangeInternal() { this.panelCtrl.refresh(); // Asks the panel to refresh data. } } GenericDatasourceQueryCtrl.templateUrl = 'html/query.editor.html';