Commit Graph

67 Commits

Author SHA1 Message Date
Grace Guo
2637d3d5e2 [dashboard] (#4515) 2018-03-01 15:48:04 -08:00
Grace Guo
bcca1717f2 [dashboard] Fix JS error when position_json data is empty (#4485) 2018-02-27 10:18:32 -08:00
Grace Guo
5768a1fe5e for 48 columns layout, adjust default size and layout for newly added slices (#4446) 2018-02-19 00:05:57 -08:00
Jay Lindquist
0c87e23877 Fix separator visualization by propagating header height (#4437) 2018-02-15 17:48:57 -08:00
Maxime Beauchemin
680bfc1b43 [dashboard] more granular grid layout (#4416)
Moving to a grid that is 4 times more granular. 48 columns.

Shipping a db migration script which will upgrade the position metadata
to reflect this change.

Also adapting the examples to the new grid parameters.
2018-02-15 17:47:19 -08:00
Grace Guo
342180b263 [Explore view] Use POST method for charting requests (#3993)
* [Explore view] Use POST method for charting requests

* fix per code review comments

* more code review fixes

* code review fix: remove duplicated calls for getting values from request

* [Explore view] Use POST method for charting requests

* fix per code review comments

* more code review fixes

* code review fix: remove duplicated calls for getting values from request
2018-02-13 17:21:15 -08:00
Xiao Hanyu
5305bdb267 Typo fix: dashbaord -> dashboard. (#4383) 2018-02-10 14:52:17 -08:00
David Dworken
4ff17ffc8d Fix 4 security vulnerabilities (#4390)
* Switched yaml.load to yaml.safe_load to prevent code execution via crafted yaml files

Python's yaml.laod can lead to code execution via crafted yaml files such as:

```
code_exec: !!python/object/apply:subprocess.check_output ['ls']
```

* Fixed XSS via bleach

It was possible to get an XSS via the markdown library via simply setting a description containing arbitary HTML tags.
It was also possible to create links that went to the `javascript:` link handler (eg `[example](javascript:alert(0)`)
Using bleach to sanitize it solves both of these.

* Added XFO header by default to prevent clickjacking attacks

Note that with this application clickjacking can be relatively severe via the SQLLab functionality
which allows executing arbitary SQL.

* Added justification for dangerouslySetInnerHTML

* Fixed linting errors

* Fixed linting errors
2018-02-09 14:33:29 -08:00
Grace Guo
e965f95477 1. fix check filters change logic (#4339)
2. should show chart after loading completed
2018-02-05 10:21:17 -08:00
Grace Guo
724c3f48a4 add frontend logging utility function (#4226)
add loading log for dash and exploreview
breakdown whole page load action to multiple charts loading events and render events
2018-01-30 10:27:13 -08:00
Jeff Niu
1e79e9cd2a [Bugfix] Issues with table filtering (#4073)
* Fixing some issues with table filtering

* Added some comments
2017-12-17 15:43:34 -08:00
fabianmenges
500e6256c0 Full Annotation Framework (#3518)
* Adding full Annotation Framework

* Viz types

* Re organizing native annotations

* liniting

* Bug fix

* Handle no data

* Cleanup

* Refactor slice form_data to data
2017-12-16 16:10:45 -08:00
Grace Guo
61755f0b7d apply custom css for dashboard initially load (#4031) 2017-12-07 16:56:40 -08:00
Grace Guo
028456572b [Dashboard] fix a filter refresh bug and add Test (#3967) 2017-12-01 10:58:55 -08:00
Maxime Beauchemin
d9fda346cb Add an "Edit Mode" to Dashboard view (#3940)
* Add a togglable edit mode to dashboard

* Submenu for controls

* Allowing 'Save as' outside of editMode

* Set editMode to false as default
2017-11-28 09:10:21 -08:00
Alan Cruickshank
39ee33aeff Add datasource to the SliceAddView modal (#3884) (#3900) 2017-11-17 20:11:23 -08:00
Maxime Beauchemin
a82bb588f4 Allow users to specify label->color mapping (#3879)
Users can define `label_colors` in a dashboard's JSON metadata that
enforces a label to color mapping.

This also makes the function that maps labels to colors case insensitive.
2017-11-17 15:56:04 -08:00
michellethomas
a84bd5225c Only refreshing non instant filters on apply (#3893) 2017-11-17 12:52:48 -08:00
Maxime Beauchemin
1c545d3a2d Further refactoring around dashboards (#3843)
I was wondering what was left to do in order to remove Dashboard.jsx
and superset.js, and it looks like they can just be pulled out.

I am so happy to get rid of what used to be the messiest JS files in the
whole repo.

Thanks @graceguo!
2017-11-16 00:27:15 -08:00
Grace Guo
8643228b51 [Dashboard bug] Fix merged filter param name (#3866)
front-end merge time filter params, and update query with param name 'extra_filters'
2017-11-14 12:28:55 -08:00
Grace Guo
de869973c7 Fix cachedDttm prop type (#3858) 2017-11-14 08:14:59 -08:00
Grace Guo
eb5d220b5e [Dashboard bug] Slice doesn't show loading icon when loading (#3834) 2017-11-13 16:07:15 -08:00
Grace Guo
b4c9402737 [Dashboard bug] Fix Cache status and dttm information display for each slice (#3833) 2017-11-11 21:51:25 -08:00
Grace Guo
4fa1f0ab17 Dashboard refactory (#3581)
Create Chart component for all chart fetching and rendering, and apply redux architecture in dashboard view.
2017-11-08 10:46:21 -08:00
Jeff Niu
7c936e7f60 [Feature/Bugfix] Datepicker and time granularity options to dashboard filters (#3508)
* Feature: added datepicker and time granularity options to dashboard filter

* Added option for Druid datasource time filters

* added more checkbox control over dashboard time filters
2017-10-04 12:43:29 -07:00
Jeff Niu
e95132ddc3 [Bugfix/Feature] Fixed slice render staggering on dashboard first load (#3478)
* Feature: disable dashboard refresh staggering

* Removed refresh staggering everywhere except during periodic render
2017-10-04 10:23:17 -07:00
Grace Guo
5718d6bbaf allow user update slice name in dashboard view (#3467)
- if current user is allowed to edit dashboard, we will allow this user to edit slice name.
- show different tooltip given allowed/not-allowed to update slice name.
- user will click slice name and update.
- after user submit edit, if he doesn't have right to alter slice, server-side will return error message to client-side. Slice name will not be changed or saved.
- will show notification after save slice name.
2017-09-25 11:37:12 -07:00
Grace Guo
9af34ba51c js translation -- performance improvment (#3390)
* Chinese page

* Using react-intl-universal to improve multi language in react page

* Using react-intl-universal to improve multi language in react page

* react_intl_universal

* change

* change

* change

* change

* change

* change

* change

* merge

* multiple page in js

* merge

* merge

* merge

* merge

* Js Translations

* JS Translation

* JS Translations

* Js translation

* JS translations

* JS translations

* Js translaion

* JS en Translation

* JS Translation

* upgrade document

Fixing the damn build (#3179)

* Fixing the build

* Going deeper

[bugfix] only filterable columns should show up in FilterBox list (#3105)

* [bugfix] only filterable columns should show up in FilterBox list

* Touchups

Datasource cannot be empty (#3035)

add title description to model view (#3045)

* add title description to model view

* add missing import

Add 'show/hide totals' option to pivot table vis (#3101)

[bugfix] numeric value for date fields in table viz (#3036)

Bug was present only when using the NOT GROUPED BY option

fixes https://github.com/ApacheInfra/superset/issues/3027

fix hive.fetch_logs (#2968)

add Zalando to the list of organizations (#3171)

docs: fixup installation examples code indentation (#3169)

[bugfix] fix bar order (#3180)

[bugfix] visualize flow error: 'Metric x is not valid' (#3181)

The metric name in the frontend doesn't match the one generated on the
backend. It turns out the explore view will default to the first
metric so specifying one isn't needed.

Fix the segment interval for pulling metadata (#3174)

The end of the interval would be on the truncated today date, which
means that you will exclude today. If your realtime ingestion job
runs shorter than a day, the metadata cannot be pulled from the
druid cluster.

Bump cryptography to 1.9 (#3065)

As 1.7.2 doesn't compile here with openssl 1.1.0f

Escaping the user's SQL in the explore view (#3186)

* Escaping the user's SQL in the explore view

When executing SQL from SQL Lab, we use a lower level API to the
database which doesn't require escaping the SQL. When going through
the explore view, the stack chain leading to the same method may need
escaping depending on how the DBAPI driver is written, and that is the
case for Presto (and perhaps other drivers).

* Using regex to avoid doubling doubles

[sqllab] improve Hive support (#3187)

* [sqllab] improve Hive support

* Fix "Transport not open" bug
* Getting progress bar to show
* Bump pyhive to 0.4.0
* Getting [Track Job] button to show

* Fix testzz

Add BigQuery engine specifications (#3193)

As contributed by @mxmzdlv on issue #945

[bugfix] fix merge conflict that broke Hive support (#3196)

Adding 'apache' to docs (#3194)

[druid] Allow custom druid postaggregators (#3146)

* [druid] Allow custom druid postaggregators

Also, fix the postaggregation for approxHistogram quantiles so it adds
the dependent field and that can show up in the graphs/tables.

In general, postAggregators add significant power, we should probably
support including custom postAggregators. Plywood has standard
postAggregators here, and a customAggregator escape hatch that allows
you to define custom postAggregators.

This commit adds a similar capability for Superset and a additional
field/fields/fieldName breakdown of the typical naming for dependent
aggregations, which should make it significantly easier to develop
approxHistogram and custom postAggregation-required dashboards.

* [druid] Minor style cleanup in tests file.

* [druid] Apply code review suggestions

* break out CustomPostAggregator into separate class. This just cleans
  up the creation of the postaggregator a little bit.
* minor style issues.
* move the function around so the git diff is more readable

add combine config for metrics in pivot table (#3086)

* add combine config for metrics in pivot table

* change method to stack/unstack

* update backendSync

Autofocus search input in VizTypeControl modal onEnter (#2929)

Speed up JS build time (#3203)

Also bumping a few related libs

JS Translation

JS translations

js translation

fix issue 3204 (#3205)

[bugfix] capture Hive job_id pre-url transformation (#3213)

js translation

fix issue 3204 (#3205)

[bugfix] capture Hive job_id pre-url transformation (#3213)

[docs] update url in CONTRIBUTING.md (#3212)

[sqllab/cosmetics] add margin-top for labels in query history (#3222)

[explore] nvd3 sort values in rich tooltip (#3197)

[sqllab] fix UI shows 'The query returned no results' momentarily (#3214)

this is visible when running async queries between the fetching and
success state as the rows are getting cached in the component

[explore] DatasourceControl to pick datasource in modal (#3210)

* [explore] DatasourceControl to pick datasource in modal

Makes it easier to change datasource, also makes it such that the list
of all datasources doesn't need to be loaded upfront.

* Adding more metadata

* Js translation

* js tran

* js trans

* js trans

* js tran

* js trans

* js trans

* js tran

* js translation

* js trans

* js translation

* try load language pack async

* Backend translations things

* create language pack inside common data

* performance improvement for js i18n.

- js bundle should not contain localized content
- we populate translation content from server-side, in boostrap.common.language_pack
- in client-side, use promise to wrap around translation content. text will be translated after translation content arrived/parsed.
- fix linting

* fix Timer unit test

* 1. add global hook for all tests, to make translation pack avaialble before each test starts.
2. fix unit test for Timer component
3. remove noused method get_locale, and modules
4. fix page reload after user change page language

* parse and build i18n dictionary as a module

* fix sync-backend task, which should run without DOM
2017-09-20 12:37:33 -07:00
Jeff Niu
745784fc97 Fixed dashboard filters carrying over to explore slice (#3461) 2017-09-14 09:44:00 -07:00
Maxime Beauchemin
e53f3032bb [dashboard] adding an option to duplicate slices when "Saving AS" (#3391)
* [dashboard] adding an option to duplicate slices when "Saving AS"

* Fix tests
2017-08-30 14:09:29 -07:00
Maxime Beauchemin
48b88e5241 [dashboard] load list of slices at modal enter time (#3379) 2017-08-28 14:31:43 -07:00
Maxime Beauchemin
e79adbbc5f [hotfix] self-immune filter_box fix (#3338) 2017-08-18 17:43:11 -07:00
Maxime Beauchemin
2923a125db Syncing the timeout param from backend (#3329)
* Syncing the timeout param from backend

* Linting
2017-08-18 15:49:47 -07:00
Maxime Beauchemin
527572c3eb [dashboard] re-enabling cascading filters (#3335)
* [dashboard] re-enabling cascading filters

https://github.com/apache/incubator-superset/pull/3183 disabled the
ability of a filterbox to get filtered by another filterbox

* linting
2017-08-18 15:49:29 -07:00
Maxime Beauchemin
59268e978a Use react-alert for backend message flashing (#3315) 2017-08-16 23:00:23 -07:00
Maxime Beauchemin
9c6248f3ba [dashboard] add link to export CSV from dashboard (#3280)
* [dashboard] add link to export CSV from dashboard

fixes #1304

* Fix tests
2017-08-14 18:25:36 -07:00
Rogan
a5320a0f37 [add] Save filters to dashboard (#3183)
* [add] Save filters to dashboard

* format code

* fix CI error

* add semicolon  semi

* fix none object

* add test data
optimize the js code
fix the compatibility issue

* fix urllib to urllib.parse

* add space

* update test case

* remove  'return'

* fix error

* update test case
2017-08-10 20:49:49 -07:00
Shao-Yen "Fred" Cheng
2ef9bfed20 [bug fix] Fix to #3137 and #3239 (#3240)
* #3137 add the leftover code from #3138 for fixing issue #3137

* #3239 Use slice id as the key instead of sliceName
2017-08-04 09:05:50 -07:00
Rich @ RadICS
163f4e359c Allow 'refresh_immune_slices' (#2974)
* Allow 'refresh_immune_slices'

* Changed param name, added note in FAQ

* Linting
2017-08-02 08:46:19 -07:00
Grace Guo
8329ea2b9b Edit Dashboard title and Slice title in place (#2940)
* Edit Dashboard title and Slice title in place

Add EditableTitle component into Dashboard and Explore view to support edit title inline.
2017-06-14 12:52:12 -07:00
Maxime Beauchemin
24e3c7f89a [dashboard] notify instead of modal onSave (#2941)
* [dashboard] notify instead of modal onSave

* Addressing comments
2017-06-12 21:04:46 -07:00
yamdraco
bfa40bd360 [hotfix] 'filter box from and to date filter #2649' (#2785) 2017-05-22 21:15:10 -07:00
Grace Guo
960b26c7a2 Show clear and actionable query timeout error message (#2763)
* Show clear and actionable query timeout error message

1. Instead of waiting for a long time or server-side response 504 Gateway timeout, explore view now add a query timeout threshold. After timeout it will show specific querytimeout message.
2. fix alert box close button position.

* Show clear and actionable query timeout error message

1. Instead of waiting for a long time or server-side response 504 Gateway timeout, explore view now add a query timeout threshold. After timeout it will show specific querytimeout message.
2. fix alert box close button position.
3. fix a linting error.
2017-05-16 13:12:12 -07:00
Songyan Ho
59a6f447ec Fix missing curUserId from SliderAdder.jsx (#2705) 2017-05-01 21:58:14 -07:00
Maxime Beauchemin
e055e6d2c2 Fixing PropTypes warning messages (#2670)
* Fixing PropTypes warning message

React recently started warning on the upcoming deprecation of
React.PropTypes, the new approach is to use the `prop-types`
npm package instead.

* Fixing the tests
2017-04-24 17:39:57 -07:00
Maxime Beauchemin
67a85b9831 Fix dashboard edit button is disabled (#2634)
* Fix dashboard edit button is disabled

* Addressing comments
2017-04-18 13:29:02 -07:00
Maxime Beauchemin
63785f039c [hotfix] using UTC for caching timestamps 2017-04-17 16:45:50 +00:00
Maxime Beauchemin
787daf6005 A nice CacheLabel React component (#2628)
Introducing a nice component as a label that show when data was
loaded from cache, when the cache was taken (in humanize duration as in
`a few minutes ago`) in a tooltip, and it can act as a button that
can trigger a force-refresh.

While working on it, it became clear that it was going to be hard to
use this component in the Dashboard view since it's not pure React.
I'm planning on refactoring the dashboard view with proper React/Redux
and introducing the CachedLabel component at that point.

While digging around in the Dashboard view I realized that there was a
bunch on unused code around managing timers that was used in explorev1
and decided to rip it out.
2017-04-17 09:06:56 -07:00
Alanna Scott
15654a3082 fix filters on dashboard (#2619) 2017-04-14 15:35:37 -07:00
Maxime Beauchemin
baff0cba38 Fix separator widget CSS (#2623) 2017-04-14 12:32:10 -07:00