Files
redash/client/app/components/queries/schema-browser.js
2019-01-31 11:21:45 +02:00

58 lines
1.3 KiB
JavaScript

import template from './schema-browser.html';
function SchemaBrowserCtrl($rootScope, $scope) {
'ngInject';
this.showTable = (table) => {
table.collapsed = !table.collapsed;
$scope.$broadcast('vsRepeatTrigger');
};
this.getSize = (table) => {
let size = 22;
if (!table.collapsed) {
size += 18 * table.columns.length;
}
return size;
};
this.isEmpty = function isEmpty() {
return this.schema === undefined || this.schema.length === 0;
};
this.itemSelected = ($event, hierarchy) => {
$rootScope.$broadcast('query-editor.command', 'paste', hierarchy.join('.'));
$event.preventDefault();
$event.stopPropagation();
};
this.splitFilter = (filter) => {
filter = filter.replace(/ {2}/g, ' ');
if (filter.includes(' ')) {
const splitTheFilter = filter.split(' ');
this.schemaFilterObject = { name: splitTheFilter[0], columns: splitTheFilter[1] };
this.schemaFilterColumn = splitTheFilter[1];
} else {
this.schemaFilterObject = filter;
this.schemaFilterColumn = '';
}
};
}
const SchemaBrowser = {
bindings: {
schema: '<',
onRefresh: '&',
},
controller: SchemaBrowserCtrl,
template,
};
export default function init(ngModule) {
ngModule.component('schemaBrowser', SchemaBrowser);
}
init.init = true;