From 54fb76e68066257120a5056ca09f9a48fef797ec Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Mon, 11 Apr 2016 21:20:42 -0700 Subject: [PATCH] Getting the SQL view back in a working state (#327) --- caravel/assets/javascripts/sql.js | 13 +++++--- caravel/assets/stylesheets/sql.css | 41 ++++++++++++++++++++++++ caravel/templates/caravel/sql.html | 51 +----------------------------- caravel/views.py | 14 +++++--- 4 files changed, 60 insertions(+), 59 deletions(-) create mode 100644 caravel/assets/stylesheets/sql.css diff --git a/caravel/assets/javascripts/sql.js b/caravel/assets/javascripts/sql.js index 99cad2d84f..dcde9a197f 100644 --- a/caravel/assets/javascripts/sql.js +++ b/caravel/assets/javascripts/sql.js @@ -2,7 +2,8 @@ var $ = window.$ = require('jquery'); var jQuery = window.jQuery = $; var showModal = require('./modules/utils.js').showModal; -require('select2'); +require('./caravel-select2.js'); + require('datatables.net-bs'); require('../node_modules/datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css'); require('bootstrap'); @@ -11,12 +12,14 @@ var ace = require('brace'); require('brace/mode/sql'); require('brace/theme/crimson_editor'); +require('../stylesheets/sql.css'); + $(document).ready(function () { function getParam(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); - return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); + return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } function initSqlEditorView() { @@ -53,9 +56,9 @@ $(document).ready(function () { function selectStarOnClick() { $.ajax('/caravel/select_star/' + database_id + '/' + $("#dbtable").val() + '/') - .done(function (msg) { - editor.setValue(msg); - }); + .done(function (msg) { + editor.setValue(msg); + }); } $("#select_star").click(selectStarOnClick); diff --git a/caravel/assets/stylesheets/sql.css b/caravel/assets/stylesheets/sql.css new file mode 100644 index 0000000000..f202c5c97f --- /dev/null +++ b/caravel/assets/stylesheets/sql.css @@ -0,0 +1,41 @@ +.topsql { + height: 250px; +} +.dataTables_filter { + padding-top: 5px; + padding-right: 5px; +} +.bordered { + padding: 0px 0px; + border: 1px solid grey; + border-radius: 5px; + background-color: #EEE; +} +div.alert { + padding: 5px; + margin: 0px; +} +.metadata { + overflow: auto; + width: 300px; + height: 100px; +} +.fillup { + width: 100%; + height: 100%; +} +.fillheight { + height: 100%; +} +.interactions { + padding-bottom: 10px; +} +#results { + overflow: auto; + font-size: 12px; + margin-bottom: 5px; +} +table tbody tr td { + padding: 1px 4px; + font-size: small; +} diff --git a/caravel/templates/caravel/sql.html b/caravel/templates/caravel/sql.html index 683de3bcc4..f40477b022 100644 --- a/caravel/templates/caravel/sql.html +++ b/caravel/templates/caravel/sql.html @@ -1,54 +1,5 @@ {% extends "caravel/basic.html" %} -{% block head_css %} - {{super()}} - - - -{% endblock %} {% block body %}
@@ -84,7 +35,7 @@

- +
diff --git a/caravel/views.py b/caravel/views.py index 8879442fe0..c841b58d11 100644 --- a/caravel/views.py +++ b/caravel/views.py @@ -719,14 +719,15 @@ class Caravel(BaseView): cols = mydb.get_columns(table_name) df = pd.DataFrame([(c['name'], c['type']) for c in cols]) df.columns = ['col', 'type'] + tbl_cls = ( + "dataframe table table-striped table-bordered " + "table-condensed sql_results").split(' ') return self.render_template( "caravel/ajah.html", content=df.to_html( index=False, na_rep='', - classes=( - "dataframe table table-striped table-bordered " - "table-condensed sql_results"))) + classes=tbl_cls)) @has_access @expose("/select_star///") @@ -754,6 +755,11 @@ class Caravel(BaseView): sql = data.get('sql') database_id = data.get('database_id') mydb = session.query(models.Database).filter_by(id=database_id).first() + + if ( + not self.appbuilder.sm.has_access( + 'all_datasource_access', 'all_datasource_access')): + raise Exception("test") content = "" if mydb: eng = mydb.get_sqla_engine() @@ -772,7 +778,7 @@ class Caravel(BaseView): na_rep='', classes=( "dataframe table table-striped table-bordered " - "table-condensed sql_results")) + "table-condensed sql_results").split(' ')) except Exception as e: content = ( '
'