This is an automated email from the ASF dual-hosted git repository. maximebeauchemin pushed a change to branch 0.28 in repository https://gitbox.apache.org/repos/asf/incubator-superset.git.
from 28e321b 0.28.0rc6 add ee89a3e [SIP-6] removed get_data for BigNumber (#5861) add 10836ce fixed modal close issue (#5865) add 8569261 [bug fix] Fixed adhoc metric is not working for WordCloud (#5877) add 83fa7af Enable Teradata (#5870) add 057c749 Addded documentation for Teradata DB (#5885) add 7098ada [SIP-5] Refactor Time Series Table (#5775) add b453cd2 [lint] turn no-undef back on, set browser, cypress, and mocha env's (#5879) add fdd44ac remove duplicated utils (#5851) add acf1a1b [treemap] add row_limit control (#5811) add b68766d Add cypress artifacts directory (videos/screenshots) to gitignore and sort items in gitignore (#5900) add 9c486a3 [react16] fix React type checking (#5903) add 0e93a94 [SIP-5] Refactor nvd3 (#5838) add 041fe52 Adds a new macro to allow getting filter values easily (#5547) add 39ef77a Remove jquery usage to highlight sql lab menu (#5907) add 74940e6 Fixing linting error in macro_tests (#5918) add 14de28a [bugfix] Fix color scheme picker (#5891) add f2d6449 Remove unused functions and jquery dependency (#5868) add 19a3319 [bugfix] Fix percent metric display and check for string columns in table (#5917) add 24be692 [refactor] Remove dependency on personal fork of supercluster from mapbox visualizations (#5902) add 42ab175 [contributing.md] swap cypress command order (#5921) add 8cb734d Table and dist bar tests (#5901) add 325e7c0 [bugfix] De-dup <script> tags. #5883 (#5890) add 7448d07 [bugfix] ignore history.pushState errors (#5905) add 75bc501 [explore flow] handling duplicated column aliases (#5778) add 8fff0d9 [SIP-6] Add reactify function and convert world map to new directory structure. (#5893) add 549328f Clean up CONTRIBUTING.md: (#5911) add b9e3159 Fix regression around low row limit for CSV exports (#5866) add 71f014e Allow removing legend (#5932) add 5b97fe5 Some linting (#5790) add 1e5a02a use es6 import (#5938) add 00c4c7e fix csv upload bugs (#5940) add 8c83b72 remove .only (#5943) add a0e7c17 fix sqlab progress bar and status inconsistency (#5848) add b6d7d57 Add schema level access control on csv upload (#5787) add 15b1037 Adding configuration to cypress to enable dashboard (#5926) add 4e78803 [eslint] add no-only-tests (#5945) add 896c260 [docs] iterating to get to ASF compliance on project site (#5923) add 73d1e45 [explore] add "View samples" modal to action buttons (#5770) add f94bda0 [bugfix] metrics issue in 'Periodicity Pivot' (#5931) add a1fa4bc [deck_polygon] implement null locations flag (#5948) add 70c095b [deck_polyline] show metric in geohash (#5952) add 0886870 ensure npm run build is in production mode (#5934) add 4c62494 fix sqllab querysearch typeahead permission error (#5906) add 6b89b7f Deprecate getColorFromSchem (#5937) add 5811a26 Constrain the max version of markdown (#5967) add 569f221 Add fordeal to superset user list (#5970) add 52033cb Pinning a version of click to fix travis (#5975) add 4c21c65 Remove lodash.throttle and replace underscore calls with lodash (#5946) add 458b2b5 Explicit set markdown version to >= 3.0 (#5959) add 0cc0996 [cypress] Update dashboard test to remove 10s timeout (#5957) add bf9a102 Update webpack bundle configuration (#5983) add 2cd9407 [SIP-6] Migrate visualizations to new directory structure. (#5949) add 4868c00 wait and verify one-by-one (#5995) add 36e2ddd disable dashboard test (#6008) add 414a4bf Removing the key from cypress build and removing parallel flag (#6005) add 604524b [feat] Feature flag system via config (#5960) add 7388294 feat: import/export dashboards via cli (#5991) add f9344f1 [cypress] Combine multiple tests under visualizations into single test to save running time (#6019) add 5c2a788 [SIP-6] Migrate visualizations to new directory structure (part 3 - nvd3) (#6006) add df64eca [cypress] Add integration test for area, pie, pivot_table, world_map, dual_line, sunburst, sankey, big_number, bubble, box_plot, treemap (#5924) add ab5c910 [bugfix] Fix Tableviz metrics column disorder (#5566) add e12d00a log query fetch time (#6033) add a9ef0ae Revert #5991 (#6035) add 9f028cc [SIP-6] Migrate visualizations to new directory structure (part 2) (#5997) add f889798 use world map only bundle (#6029) add 50c701c [ci] Update ci config to reduce javascript test time and some of cypress. (#6016) add df341ff Sorting tables by "modified" is broken (#6027) add 8fe6f12 refer to default color scheme in colorpickercontrol instead of pointing to specific scheme (#6031) add 160e477 Deprecate support for Python < 3.6 (#5985) add adfe9e3 [tablemodelview] Fixing JSON api/read serializable issue (#6023) add 93fe453 remove redundant mysql (#6049) add 06e029f fix for annotation layer bug (#6047) add 96952d0 Search queries when enter is pressed (#6043) add 6282edd Revert old precision formatters (#6056) add 9dcf8e1 Upgrade flask-appbuilder to latest. (#6030) add 1ee08fc [select-star] Adding optional schema to view (#6051) add 712c1aa Allow user to force refresh metadata (#5933) add f50ed17 check db extra and metadata params preemptively (#6004) add 361f588 [Dashboard] Fix margin issue in dashboard modal (#6037) add 395359f [cypress] add integration tests for dashboard (#6002) add cd2c46a Add data structures for chart plugin system (#6028) add 3cc6fb6 Add increment back arrow to time player (#6062) add 238ffb4 [setup] Using pip-tools to create requirements.txt (#6054) add ee472af feat: import/export dashboards via cli (#6061) add 9b4cf85 [cypress] add SQL lab tests (#5974) add 247a85b Fix top groups with user defined metrics (#6073) add 5c5be82 remove future imports (#6050) add c0f685b Fix the horizon title only show the first key (#5998) add 64383ce Rename color constants and move util function into separate file (#6074) add b7d5554 Cypress tests for controls and explore links (#6069) add e37b83a remove future imports from db migrations (#6063) add 5282f39 Create chart plugins and metadata (#6072) add 2a7b64f [SIP-5] Remove references to slice from all deck.gl components. (#6039) add 1d2b1aa [cypress][sqllab] increase timeout for sqllab results (#6089) add 8e88d02 Add ChartPlugin and metadata for nvd3 and BigNumber vis (#6085) add e1e8778 Add ChartPlugin and metadata for deck.gl vis (#6090) add 047c8b0 remove six dependency (#6091) add dd9eeda remove future (#6065) add 2fc0743 move countries directory under CountryMap (#6088) add 12ce1b2 Fix link formating in README.md (#6097) add 3df98e5 make BigNumber PureComponent (#6105) add dc7b6f2 Rename onTooltip to setTooltip (#6103) add 68ff4e5 fix dependency issue #6086 (#6102) add 46c8667 remove utf8 declaration (#6096) add 9029701 [refactor] Migrate from Mocha+Chai to Jest (#6079) add 316fdcb [SIP-4] replace chart ajax calls with `SupersetClient` (#5875) add 91792a5 send username in sync request (#6113) add 75d0823 Merge branch 'master' into 0.28 add 87a3260 0.28.0rc7 No new revisions were added by this update. Summary of changes: .gitignore | 45 +- .travis.yml | 89 +- CONTRIBUTING.md | 667 ++-- README.md | 4 +- RELEASING.md | 93 + UPDATING.md | 20 +- contrib/docker/Dockerfile | 2 +- docs/conf.py | 10 +- docs/index.rst | 30 +- docs/installation.rst | 39 +- docs/sqllab.rst | 2 + requirements-dev.txt | 3 +- requirements.txt | 67 +- scripts/permissions_cleanup.py | 6 - setup.py | 17 +- superset/__init__.py | 15 +- superset/assets/.babelrc | 9 +- superset/assets/.eslintrc | 7 +- superset/assets/.istanbul.yml | 1 + superset/assets/cypress.json | 7 +- superset/assets/cypress/.eslintrc | 8 + .../cypress/integration/dashboard/controls.js | 71 + .../integration/dashboard/dashboard.helper.js | 4 + .../integration/dashboard/dashboard_tests.js | 26 - .../cypress/integration/dashboard/edit_mode.js | 62 + .../assets/cypress/integration/dashboard/filter.js | 51 + .../cypress/integration/dashboard/index.test.js | 11 + .../assets/cypress/integration/dashboard/load.js | 36 + .../cypress/integration/explore/control.test.js | 269 ++ .../cypress/integration/explore/control_tests.js | 59 - .../cypress/integration/explore/link.test.js | 140 + .../integration/explore/visualizations/area.js | 76 + .../explore/visualizations/big_number.js | 99 +- .../explore/visualizations/big_number_total.js | 54 + .../integration/explore/visualizations/box_plot.js | 50 + .../integration/explore/visualizations/bubble.js | 71 + .../integration/explore/visualizations/compare.js | 72 + .../integration/explore/visualizations/dist_bar.js | 61 + .../explore/visualizations/dual_line.js | 53 + .../explore/visualizations/histogram.js | 62 + .../explore/visualizations/index.test.js | 35 + .../integration/explore/visualizations/line.js | 92 +- .../integration/explore/visualizations/pie.js | 53 + .../explore/visualizations/pivot_table.js | 92 + .../integration/explore/visualizations/sankey.js | 60 + .../explore/visualizations/shared.helper.js | 62 +- .../integration/explore/visualizations/sunburst.js | 66 + .../integration/explore/visualizations/table.js | 108 + .../integration/explore/visualizations/treemap.js | 59 + .../explore/visualizations/world_map.js | 62 + .../cypress/integration/sqllab/index.test.js | 9 + .../assets/cypress/integration/sqllab/query.js | 103 + .../cypress/integration/sqllab/sourcePanel.js | 57 + .../cypress/integration/sqllab/sqllab.helper.js | 23 + superset/assets/cypress/integration/sqllab/tabs.js | 38 + superset/assets/cypress/support/commands.js | 51 +- superset/assets/cypress/support/index.js | 9 +- superset/assets/cypress/utils/readResponseBlob.js | 11 + superset/assets/cypress_build.sh | 3 +- superset/assets/images/apache_feather.png | Bin 0 -> 138140 bytes superset/assets/jest.config.js | 11 + superset/assets/package.json | 42 +- superset/assets/spec/.eslintrc | 12 +- superset/assets/spec/__mocks__/fileMock.js | 1 + superset/assets/spec/__mocks__/styleMock.js | 1 + .../assets/spec/helpers/setupSupersetClient.js | 10 + superset/assets/spec/helpers/shim.js | 15 +- .../spec/javascripts/CRUD/CollectionTable_spec.jsx | 8 +- .../addSlice/AddSliceContainer_spec.jsx | 14 +- .../assets/spec/javascripts/chart/Chart_spec.jsx | 12 +- .../components/AlteredSliceTag_spec.jsx | 70 +- .../javascripts/components/AsyncSelect_spec.jsx | 18 +- .../javascripts/components/CachedLabel_spec.jsx | 6 +- .../spec/javascripts/components/Checkbox_spec.jsx | 14 +- .../javascripts/components/ColumnOption_spec.jsx | 26 +- .../components/ColumnTypeLabel_spec.jsx | 28 +- .../components/CopyToClipboard_spec.jsx | 4 +- .../FilterableTable/FilterableTable_spec.jsx | 12 +- .../javascripts/components/MetricOption_spec.jsx | 22 +- .../javascripts/components/ModalTrigger_spec.jsx | 4 +- .../javascripts/components/OnPasteSelect_spec.jsx | 28 +- .../components/OptionDescription_spec.jsx | 6 +- .../javascripts/components/PopoverSection_spec.jsx | 8 +- .../components/URLShortLinkButton_spec.jsx | 4 +- .../components/URLShortLinkModal_spec.jsx | 4 +- .../components/VirtualizedRendererWrap_spec.jsx | 30 +- .../assets/spec/javascripts/dashboard/.eslintrc | 1 - .../dashboard/actions/dashboardLayout_spec.js | 100 +- .../dashboard/components/CodeModal_spec.jsx | 6 +- .../dashboard/components/CssEditor_spec.jsx | 6 +- .../dashboard/components/DashboardBuilder_spec.jsx | 40 +- .../dashboard/components/DashboardGrid_spec.jsx | 24 +- .../dashboard/components/Dashboard_spec.jsx | 24 +- .../components/HeaderActionsDropdown_spec.jsx | 38 +- .../dashboard/components/Header_spec.jsx | 32 +- .../dashboard/components/MissingChart_spec.jsx | 8 +- .../components/RefreshIntervalModal_spec.jsx | 6 +- .../dashboard/components/SliceAdder_spec.jsx | 34 +- .../components/dnd/DragDroppable_spec.jsx | 26 +- .../components/gridComponents/ChartHolder_spec.jsx | 34 +- .../components/gridComponents/Chart_spec.jsx | 16 +- .../components/gridComponents/Column_spec.jsx | 38 +- .../components/gridComponents/Divider_spec.jsx | 16 +- .../components/gridComponents/Header_spec.jsx | 24 +- .../components/gridComponents/Markdown_spec.jsx | 50 +- .../components/gridComponents/Row_spec.jsx | 24 +- .../components/gridComponents/Tab_spec.jsx | 28 +- .../components/gridComponents/Tabs_spec.jsx | 32 +- .../new/DraggableNewComponent_spec.jsx | 12 +- .../gridComponents/new/NewColumn_spec.jsx | 6 +- .../gridComponents/new/NewDivider_spec.jsx | 6 +- .../gridComponents/new/NewHeader_spec.jsx | 6 +- .../components/gridComponents/new/NewRow_spec.jsx | 6 +- .../components/gridComponents/new/NewTabs_spec.jsx | 6 +- .../dashboard/components/menu/HoverMenu_spec.jsx | 4 +- .../components/menu/WithPopoverMenu_spec.jsx | 28 +- .../resizable/ResizableContainer_spec.jsx | 4 +- .../components/resizable/ResizableHandle_spec.jsx | 10 +- .../dashboard/containers/Dashboard_spec.jsx | 38 + .../dashboard/reducers/dashboardLayout_spec.js | 45 +- .../dashboard/reducers/dashboardState_spec.js | 39 +- .../dashboard/reducers/sliceEntities_spec.js | 15 +- .../dashboard/util/componentIsResizable_spec.js | 7 +- .../javascripts/dashboard/util/dnd-reorder_spec.js | 11 +- .../dashboard/util/dropOverflowsParent_spec.js | 19 +- .../util/findFirstParentContainer_spec.js | 9 +- .../dashboard/util/findParentId_spec.js | 9 +- .../dashboard/util/getChartIdsFromLayout_spec.js | 13 +- .../dashboard/util/getDashboardUrl_spec.js | 5 +- .../util/getDetailedComponentWidth_spec.js | 43 +- .../dashboard/util/getDropPosition_spec.js | 45 +- .../util/getFormDataWithExtraFilters_spec.js | 13 +- .../dashboard/util/isValidChild_spec.js | 7 +- .../dashboard/util/newComponentFactory_spec.js | 13 +- .../dashboard/util/newEntitiesFromDrop_spec.js | 25 +- .../datasource/DatasourceEditor_spec.jsx | 14 +- .../datasource/DatasourceModal_spec.jsx | 10 +- .../spec/javascripts/explore/AdhocFilter_spec.js | 41 +- .../spec/javascripts/explore/AdhocMetric_spec.js | 123 +- .../spec/javascripts/explore/chartActions_spec.js | 128 +- .../explore/components/AdhocFilterControl_spec.jsx | 24 +- ...AdhocFilterEditPopoverSimpleTabContent_spec.jsx | 40 +- .../AdhocFilterEditPopoverSqlTabContent_spec.jsx | 12 +- .../components/AdhocFilterEditPopover_spec.jsx | 40 +- .../explore/components/AdhocFilterOption_spec.jsx | 6 +- .../AdhocMetricEditPopoverTitle_spec.jsx | 10 +- .../components/AdhocMetricEditPopover_spec.jsx | 40 +- .../explore/components/AdhocMetricOption_spec.jsx | 6 +- .../components/AdhocMetricStaticOption_spec.jsx | 4 +- .../explore/components/AggregateOption_spec.jsx | 4 +- .../explore/components/BoundsControl_spec.jsx | 10 +- .../explore/components/CheckboxControl_spec.jsx | 6 +- .../explore/components/ColorPickerControl_spec.jsx | 17 +- .../explore/components/ColorScheme_spec.jsx | 4 +- .../components/ControlPanelSection_spec.jsx | 11 +- .../components/ControlPanelsContainer_spec.jsx | 4 +- .../explore/components/ControlRow_spec.jsx | 10 +- .../explore/components/DatasourceControl_spec.jsx | 4 +- .../explore/components/DateFilterControl_spec.jsx | 14 +- .../explore/components/DisplayQueryButton_spec.jsx | 6 +- .../explore/components/EmbedCodeButton_spec.jsx | 10 +- .../components/ExploreActionButtons_spec.jsx | 6 +- .../explore/components/ExploreChartHeader_spec.jsx | 8 +- .../explore/components/ExploreChartPanel_spec.js | 22 - .../explore/components/ExploreChartPanel_spec.jsx | 17 + .../components/ExploreViewContainer_spec.js | 39 - .../components/ExploreViewContainer_spec.jsx | 68 + .../components/FilterDefinitionOption_spec.jsx | 8 +- .../components/FixedOrMetricControl_spec.jsx | 10 +- .../components/MetricDefinitionOption_spec.jsx | 8 +- .../components/MetricDefinitionValue_spec.jsx | 6 +- .../explore/components/MetricsControl_spec.jsx | 58 +- .../explore/components/QueryAndSaveBtns_spec.jsx | 12 +- .../explore/components/RowCountLabel_spec.jsx | 10 +- .../components/RunQueryActionButton_spec.jsx | 6 +- .../explore/components/SaveModal_spec.jsx | 59 +- .../explore/components/SelectControl_spec.jsx | 22 +- .../explore/components/TextArea_spec.jsx | 10 +- .../components/TimeSeriesColumnControl_spec.jsx | 6 +- .../explore/components/ViewportControl_spec.jsx | 10 +- .../explore/components/VizTypeControl_spec.jsx | 10 +- .../javascripts/explore/exploreActions_spec.js | 6 +- .../assets/spec/javascripts/explore/utils_spec.jsx | 22 +- superset/assets/spec/javascripts/logger_spec.js | 157 +- .../spec/javascripts/messageToasts/.eslintrc | 1 - .../components/ToastPresenter_spec.jsx | 8 +- .../messageToasts/components/Toast_spec.jsx | 10 +- .../messageToasts/reducers/messageToasts_spec.js | 11 +- .../utils/getToastsFromPyFlashMessages_spec.js | 9 +- .../modules/CategoricalColorNameSpace_spec.js | 166 +- .../modules/CategoricalColorScale_spec.js | 36 +- .../javascripts/modules/ColorSchemeManager_spec.js | 44 +- .../spec/javascripts/modules/Registry_spec.js | 191 ++ .../spec/javascripts/modules/colors_spec.jsx | 56 +- .../assets/spec/javascripts/modules/dates_spec.js | 46 +- .../assets/spec/javascripts/modules/geo_spec.jsx | 17 +- .../spec/javascripts/modules/sandbox_spec.jsx | 11 +- .../assets/spec/javascripts/modules/time_spec.js | 27 +- .../assets/spec/javascripts/modules/utils_spec.jsx | 76 +- .../assets/spec/javascripts/profile/App_spec.jsx | 10 +- .../javascripts/profile/CreatedContent_spec.jsx | 8 +- .../javascripts/profile/EditableTitle_spec.jsx | 34 +- .../spec/javascripts/profile/Favorites_spec.jsx | 8 +- .../javascripts/profile/RecentActivity_spec.jsx | 6 +- .../spec/javascripts/profile/Security_spec.jsx | 14 +- .../spec/javascripts/profile/UserInfo_spec.jsx | 14 +- .../assets/spec/javascripts/sqllab/App_spec.jsx | 43 +- .../spec/javascripts/sqllab/ColumnElement_spec.jsx | 18 +- .../javascripts/sqllab/CopyQueryTabUrl_spec.jsx | 4 +- .../sqllab/ExploreResultsButton_spec.jsx | 52 +- .../javascripts/sqllab/HighlightedSql_spec.jsx | 13 +- .../assets/spec/javascripts/sqllab/Link_spec.jsx | 8 +- .../spec/javascripts/sqllab/QuerySearch_spec.jsx | 33 +- .../javascripts/sqllab/QueryStateLabel_spec.jsx | 6 +- .../spec/javascripts/sqllab/QueryTable_spec.jsx | 12 +- .../spec/javascripts/sqllab/ResultSet_spec.jsx | 32 +- .../spec/javascripts/sqllab/SaveQuery_spec.jsx | 12 +- .../javascripts/sqllab/SqlEditorLeftBar_spec.jsx | 46 +- .../spec/javascripts/sqllab/SqlEditor_spec.jsx | 6 +- .../spec/javascripts/sqllab/TabStatusIcon_spec.jsx | 12 +- .../javascripts/sqllab/TabbedSqlEditors_spec.jsx | 39 +- .../spec/javascripts/sqllab/TableElement_spec.jsx | 28 +- .../assets/spec/javascripts/sqllab/Timer_spec.jsx | 19 +- .../assets/spec/javascripts/sqllab/actions_spec.js | 36 +- .../spec/javascripts/sqllab/reducers_spec.js | 53 +- .../assets/spec/javascripts/utils/common_spec.jsx | 60 +- .../utils/convertKeysToCamelCase_spec.js | 27 + .../spec/javascripts/utils/isDefined_spec.js | 20 + .../spec/javascripts/utils/isRequired_spec.js | 7 + .../spec/javascripts/utils/makeSingleton_spec.js | 42 + .../visualizations/models/ChartPlugin_spec.js | 40 + .../visualizations/models/Plugin_spec.js | 52 + .../visualizations/models/Preset_spec.js | 63 + .../javascripts/visualizations/nvd3/utils_spec.js | 33 + .../javascripts/visualizations/nvd3_viz_spec.jsx | 28 - .../spec/javascripts/visualizations/table_spec.jsx | 23 +- .../javascripts/welcome/DashboardTable_spec.jsx | 9 +- .../spec/javascripts/welcome/Welcome_spec.jsx | 10 +- superset/assets/src/CRUD/utils.js | 2 +- superset/assets/src/SqlLab/App.jsx | 14 +- superset/assets/src/SqlLab/actions.js | 2 - superset/assets/src/SqlLab/components/App.jsx | 7 +- .../src/SqlLab/components/ExploreResultsButton.jsx | 17 +- .../src/SqlLab/components/QueryAutoRefresh.jsx | 2 +- .../assets/src/SqlLab/components/QuerySearch.jsx | 8 +- .../assets/src/SqlLab/components/ResultSet.jsx | 2 +- .../assets/src/SqlLab/components/SqlEditor.jsx | 4 +- .../src/SqlLab/components/SqlEditorLeftBar.jsx | 52 +- .../assets/src/SqlLab/components/TableElement.jsx | 2 +- superset/assets/src/SqlLab/constants.js | 1 + superset/assets/src/SqlLab/getInitialState.js | 2 +- superset/assets/src/SqlLab/reducers.js | 5 +- superset/assets/src/chart/Chart.jsx | 13 +- superset/assets/src/chart/ChartBody.jsx | 21 - superset/assets/src/chart/chartAction.js | 109 +- superset/assets/src/common.js | 31 +- superset/assets/src/components/AlteredSliceTag.jsx | 2 +- superset/assets/src/components/Button.jsx | 4 +- .../src/components/InfoTooltipWithTrigger.jsx | 4 +- superset/assets/src/components/ModalTrigger.jsx | 34 +- superset/assets/src/components/RefreshLabel.jsx | 51 + superset/assets/src/components/TooltipWrapper.jsx | 4 +- .../assets/src/components/URLShortLinkButton.jsx | 2 +- superset/assets/src/dashboard/.eslintrc | 1 - .../assets/src/dashboard/components/Dashboard.jsx | 1 - .../assets/src/dashboard/components/Header.jsx | 1 - .../dashboard/components/HeaderActionsDropdown.jsx | 1 - .../src/dashboard/components/dnd/handleHover.js | 2 +- .../assets/src/dashboard/containers/Dashboard.jsx | 22 +- .../src/dashboard/reducers/getInitialState.js | 8 +- superset/assets/src/dashboard/reducers/index.js | 2 + .../src/dashboard/stylesheets/dashboard.less | 10 +- .../assets/src/datasource/DatasourceEditor.jsx | 10 +- superset/assets/src/datasource/DatasourceModal.jsx | 7 - superset/assets/src/explore/App.jsx | 53 +- .../assets/src/explore/actions/exploreActions.js | 6 + .../AdhocFilterEditPopoverSimpleTabContent.jsx | 2 +- .../AdhocFilterEditPopoverSqlTabContent.jsx | 1 + .../explore/components/AdhocMetricEditPopover.jsx | 1 + superset/assets/src/explore/components/Control.jsx | 8 +- .../src/explore/components/ControlHeader.jsx | 3 + .../src/explore/components/DisplayQueryButton.jsx | 103 +- .../src/explore/components/EmbedCodeButton.jsx | 2 +- .../src/explore/components/ExploreChartPanel.jsx | 2 +- .../explore/components/ExploreViewContainer.jsx | 33 +- .../src/explore/components/RowCountLabel.jsx | 7 +- .../assets/src/explore/components/SaveModal.jsx | 2 + .../components/controls/AnnotationLayer.jsx | 287 +- .../components/controls/ColorPickerControl.jsx | 5 +- .../components/controls/ColorSchemeControl.jsx | 26 +- .../components/controls/DatasourceControl.jsx | 5 - .../explore/components/controls/MetricsControl.jsx | 4 +- .../components/controls/SelectAsyncControl.jsx | 1 - superset/assets/src/explore/controls.jsx | 32 +- superset/assets/src/explore/exploreUtils.js | 8 +- .../assets/src/explore/reducers/getInitialState.js | 58 + superset/assets/src/explore/reducers/index.js | 2 + superset/assets/src/explore/visTypes.jsx | 4 + superset/assets/src/featureFlags.js | 11 + superset/assets/src/messageToasts/.eslintrc | 1 - superset/assets/src/modules/Registry.js | 72 + superset/assets/src/modules/colors.js | 29 +- superset/assets/src/modules/utils.js | 45 - superset/assets/src/modules/visUtils.js | 6 +- superset/assets/src/reduxUtils.js | 2 +- .../assets/src/utils/convertKeysToCamelCase.js | 11 + superset/assets/src/utils/createAdaptor.jsx | 19 + superset/assets/src/utils/isDefined.js | 3 + superset/assets/src/utils/isRequired.js | 3 + superset/assets/src/utils/makeSingleton.js | 10 + superset/assets/src/utils/reactify.jsx | 54 + .../src/visualizations/BigNumber/BigNumber.jsx | 104 +- .../BigNumber/BigNumberChartPlugin.js | 20 + .../src/visualizations/BigNumber/adaptor.jsx | 5 + .../visualizations/BigNumber/images/thumbnail.png} | Bin .../BigNumber/images/thumbnailLarge.png} | Bin .../src/visualizations/BigNumber/transformProps.js | 78 + .../BigNumberTotal/BigNumberTotalChartPlugin.js | 20 + .../BigNumberTotal/images/thumbnail.png} | Bin .../BigNumberTotal/images/thumbnailLarge.png} | Bin .../{cal_heatmap.css => Calendar/Calendar.css} | 0 .../{cal_heatmap.js => Calendar/Calendar.js} | 51 +- .../visualizations/Calendar/CalendarChartPlugin.js | 21 + .../src/visualizations/Calendar/ReactCalendar.js | 4 + .../assets/src/visualizations/Calendar/adaptor.jsx | 5 + .../visualizations/Calendar/images/thumbnail.png} | Bin .../Calendar/images/thumbnailLarge.png} | Bin .../src/visualizations/Calendar/transformProps.js | 32 + .../visualizations/{chord.css => Chord/Chord.css} | 0 .../visualizations/{chord.jsx => Chord/Chord.js} | 27 +- .../src/visualizations/Chord/ChordChartPlugin.js | 21 + .../assets/src/visualizations/Chord/ReactChord.js | 4 + .../assets/src/visualizations/Chord/adaptor.jsx | 5 + .../visualizations/Chord/images/thumbnail.png} | Bin .../Chord/images/thumbnailLarge.png} | Bin .../src/visualizations/Chord/transformProps.js | 10 + .../{country_map.css => CountryMap/CountryMap.css} | 0 .../{country_map.js => CountryMap/CountryMap.js} | 30 +- .../CountryMap/CountryMapChartPlugin.js | 21 + .../visualizations/CountryMap/ReactCountryMap.js | 4 + .../src/visualizations/CountryMap/adaptor.jsx | 5 + .../{ => CountryMap}/countries/belgium.geojson | 0 .../{ => CountryMap}/countries/brazil.geojson | 0 .../{ => CountryMap}/countries/china.geojson | 0 .../{ => CountryMap}/countries/egypt.geojson | 0 .../{ => CountryMap}/countries/france.geojson | 0 .../{ => CountryMap}/countries/germany.geojson | 0 .../{ => CountryMap}/countries/india.geojson | 0 .../{ => CountryMap}/countries/italy.geojson | 0 .../{ => CountryMap}/countries/morocco.geojson | 0 .../{ => CountryMap}/countries/myanmar.geojson | 0 .../{ => CountryMap}/countries/netherlands.geojson | 0 .../{ => CountryMap}/countries/portugal.geojson | 0 .../{ => CountryMap}/countries/russia.geojson | 0 .../{ => CountryMap}/countries/singapore.geojson | 0 .../{ => CountryMap}/countries/spain.geojson | 0 .../{ => CountryMap}/countries/thailand.geojson | 0 .../{ => CountryMap}/countries/timorleste.geojson | 0 .../{ => CountryMap}/countries/uk.geojson | 0 .../{ => CountryMap}/countries/ukraine.geojson | 0 .../{ => CountryMap}/countries/usa.geojson | 0 .../{ => CountryMap}/countries/zambia.geojson | 0 .../CountryMap/images/thumbnail.png} | Bin .../CountryMap/images/thumbnailLarge.png} | Bin .../visualizations/CountryMap/transformProps.js | 15 + superset/assets/src/visualizations/EventFlow.jsx | 62 - .../src/visualizations/EventFlow/EventFlow.jsx | 52 + .../EventFlow/EventFlowChartPlugin.js | 20 + .../src/visualizations/EventFlow/adaptor.jsx | 5 + .../visualizations/EventFlow/images/thumbnail.png} | Bin .../EventFlow/images/thumbnailLarge.png} | Bin .../src/visualizations/EventFlow/transformProps.js | 36 + .../{filter_box.css => FilterBox/FilterBox.css} | 0 .../{filter_box.jsx => FilterBox/FilterBox.jsx} | 57 +- .../FilterBox/FilterBoxChartPlugin.js | 20 + .../src/visualizations/FilterBox/adaptor.jsx | 5 + .../visualizations/FilterBox/images/thumbnail.png} | Bin .../FilterBox/images/thumbnailLarge.png} | Bin .../src/visualizations/FilterBox/transformProps.js | 39 + .../ForceDirected.css} | 0 .../ForceDirected.js} | 23 +- .../ForceDirected/ForceDirectedChartPlugin.js | 21 + .../ForceDirected/ReactForceDirected.js | 4 + .../src/visualizations/ForceDirected/adaptor.jsx | 5 + .../ForceDirected/images/thumbnail.png} | Bin .../ForceDirected/images/thumbnailLarge.png} | Bin .../visualizations/ForceDirected/transformProps.js | 10 + .../{heatmap.css => Heatmap/Heatmap.css} | 0 .../{heatmap.js => Heatmap/Heatmap.js} | 58 +- .../visualizations/Heatmap/HeatmapChartPlugin.js | 21 + .../src/visualizations/Heatmap/ReactHeatmap.js | 4 + .../assets/src/visualizations/Heatmap/adaptor.jsx | 5 + .../visualizations/Heatmap/images/thumbnail.png} | Bin .../Heatmap/images/thumbnailLarge.png} | Bin .../src/visualizations/Heatmap/transformProps.js | 43 + .../visualizations/{ => Histogram}/Histogram.jsx | 34 +- .../Histogram/HistogramChartPlugin.js | 20 + .../src/visualizations/Histogram/adaptor.jsx | 5 + .../visualizations/Histogram/images/thumbnail.png} | Bin .../Histogram/images/thumbnailLarge.png} | Bin .../src/visualizations/Histogram/transformProps.js | 21 + .../visualizations/{ => Horizon}/HorizonChart.css | 0 .../visualizations/{ => Horizon}/HorizonChart.jsx | 24 +- .../visualizations/Horizon/HorizonChartPlugin.js | 21 + .../visualizations/{ => Horizon}/HorizonRow.jsx | 0 .../assets/src/visualizations/Horizon/adaptor.jsx | 5 + .../visualizations/Horizon/images/thumbnail.png} | Bin .../Horizon/images/thumbnailLarge.png} | Bin .../src/visualizations/Horizon/transformProps.js | 13 + superset/assets/src/visualizations/Legend.jsx | 6 +- .../assets/src/visualizations/MapBox/MapBox.jsx | 108 +- .../src/visualizations/MapBox/MapBoxChartPlugin.js | 20 + .../MapBox/ScatterPlotGlowOverlay.jsx | 51 +- .../assets/src/visualizations/MapBox/adaptor.jsx | 5 + .../visualizations/MapBox/images/thumbnail.png} | Bin .../MapBox/images/thumbnailLarge.png} | Bin .../src/visualizations/MapBox/transformProps.js | 79 + .../src/visualizations/PairedTTest/PairedTTest.jsx | 27 +- .../PairedTTest/PairedTTestChartPlugin.js | 20 + .../src/visualizations/PairedTTest/adaptor.jsx | 5 + .../PairedTTest/images/thumbnail.png} | Bin .../PairedTTest/images/thumbnailLarge.png} | Bin .../visualizations/PairedTTest/transformProps.js | 19 + .../ParallelCoordinates.css} | 0 .../ParallelCoordinates.js} | 42 +- .../ParallelCoordinatesChartPlugin.js | 21 + .../ReactParallelCoordinates.js | 4 + .../visualizations/ParallelCoordinates/adaptor.jsx | 5 + .../ParallelCoordinates/images/thumbnail.png} | Bin .../ParallelCoordinates/images/thumbnailLarge.png} | Bin .../ParallelCoordinates/transformProps.js | 23 + .../{partition.css => Partition/Partition.css} | 0 .../{partition.js => Partition/Partition.js} | 57 +- .../Partition/PartitionChartPlugin.js | 20 + .../src/visualizations/Partition/ReactPartition.js | 4 + .../src/visualizations/Partition/adaptor.jsx | 5 + .../visualizations/Partition/images/thumbnail.png} | Bin .../Partition/images/thumbnailLarge.png} | Bin .../src/visualizations/Partition/transformProps.js | 32 + .../{pivot_table.css => PivotTable/PivotTable.css} | 0 .../{pivot_table.js => PivotTable/PivotTable.js} | 38 +- .../PivotTable/PivotTableChartPlugin.js | 20 + .../visualizations/PivotTable/ReactPivotTable.js | 4 + .../src/visualizations/PivotTable/adaptor.jsx | 5 + .../PivotTable/images/thumbnail.png} | Bin .../PivotTable/images/thumbnailLarge.png} | Bin .../visualizations/PivotTable/transformProps.js | 19 + superset/assets/src/visualizations/PlaySlider.jsx | 23 +- .../assets/src/visualizations/Rose/ReactRose.js | 4 + .../src/visualizations/{rose.css => Rose/Rose.css} | 0 .../src/visualizations/{rose.js => Rose/Rose.js} | 34 +- .../src/visualizations/Rose/RoseChartPlugin.js | 20 + .../assets/src/visualizations/Rose/adaptor.jsx | 5 + .../visualizations/Rose/images/thumbnail.png} | Bin .../visualizations/Rose/images/thumbnailLarge.png} | Bin .../src/visualizations/Rose/transformProps.js | 19 + .../src/visualizations/Sankey/ReactSankey.js | 4 + .../{sankey.css => Sankey/Sankey.css} | 0 .../visualizations/{sankey.js => Sankey/Sankey.js} | 21 +- .../src/visualizations/Sankey/SankeyChartPlugin.js | 21 + .../assets/src/visualizations/Sankey/adaptor.jsx | 5 + .../visualizations/Sankey/images/thumbnail.png} | Bin .../Sankey/images/thumbnailLarge.png} | Bin .../src/visualizations/Sankey/transformProps.js | 9 + .../src/visualizations/Sunburst/ReactSunburst.js | 4 + .../{sunburst.css => Sunburst/Sunburst.css} | 0 .../{sunburst.js => Sunburst/Sunburst.js} | 29 +- .../visualizations/Sunburst/SunburstChartPlugin.js | 21 + .../assets/src/visualizations/Sunburst/adaptor.jsx | 5 + .../visualizations/Sunburst/images/thumbnail.png} | Bin .../Sunburst/images/thumbnailLarge.png} | Bin .../src/visualizations/Sunburst/transformProps.js | 10 + .../assets/src/visualizations/Table/ReactTable.js | 4 + .../visualizations/{table.css => Table/Table.css} | 0 .../visualizations/{table.js => Table/Table.js} | 78 +- .../src/visualizations/Table/TableChartPlugin.js | 20 + .../assets/src/visualizations/Table/adaptor.jsx | 5 + .../visualizations/Table/images/thumbnail.png} | Bin .../Table/images/thumbnailLarge.png} | Bin .../src/visualizations/Table/transformProps.js | 58 + .../visualizations/TimeTable/FormattedNumber.jsx | 27 + .../{ => TimeTable}/SparklineCell.jsx | 4 +- .../src/visualizations/TimeTable/TimeTable.css | 3 + .../src/visualizations/TimeTable/TimeTable.jsx | 272 ++ .../TimeTable/TimeTableChartPlugin.js | 20 + .../src/visualizations/TimeTable/adaptor.jsx | 5 + .../visualizations/TimeTable/images/thumbnail.png} | Bin .../TimeTable/images/thumbnailLarge.png} | Bin .../src/visualizations/TimeTable/transformProps.js | 49 + .../src/visualizations/Treemap/ReactTreemap.js | 4 + .../{treemap.css => Treemap/Treemap.css} | 0 .../{treemap.js => Treemap/Treemap.js} | 32 +- .../visualizations/Treemap/TreemapChartPlugin.js | 21 + .../assets/src/visualizations/Treemap/adaptor.jsx | 5 + .../visualizations/Treemap/images/thumbnail.png} | Bin .../Treemap/images/thumbnailLarge.png} | Bin .../src/visualizations/Treemap/transformProps.js | 15 + .../src/visualizations/WorldMap/ReactWorldMap.js | 4 + .../{world_map.css => WorldMap/WorldMap.css} | 0 .../{world_map.js => WorldMap/WorldMap.js} | 25 +- .../visualizations/WorldMap/WorldMapChartPlugin.js | 21 + .../assets/src/visualizations/WorldMap/adaptor.jsx | 5 + .../visualizations/WorldMap/images/thumbnail.png} | Bin .../WorldMap/images/thumbnailLarge.png} | Bin .../src/visualizations/WorldMap/transformProps.js | 10 + .../visualizations/core/models/ChartMetadata.js | 15 + .../src/visualizations/core/models/ChartPlugin.js | 43 + .../src/visualizations/core/models/Plugin.js | 25 + .../src/visualizations/core/models/Preset.js | 23 + .../registries/ChartComponentRegistrySingleton.js | 12 + .../registries/ChartMetadataRegistrySingleton.js | 12 + .../ChartTransformPropsRegistrySingleton.js | 12 + .../deckgl/CategoricalDeckGLContainer.jsx | 21 +- .../src/visualizations/deckgl/Multi/Multi.jsx | 87 + .../deckgl/Multi/MultiChartPlugin.js | 19 + .../deckgl/Multi/images/thumbnail.png} | Bin .../deckgl/Multi/images/thumbnailLarge.png} | Bin .../src/visualizations/deckgl/createAdaptor.jsx | 30 + .../assets/src/visualizations/deckgl/factory.jsx | 87 + .../src/visualizations/deckgl/layers/Arc/Arc.jsx | 29 + .../deckgl/layers/Arc/ArcChartPlugin.js | 19 + .../deckgl/layers/Arc/images/thumbnail.png} | Bin .../deckgl/layers/Arc/images/thumbnailLarge.png} | Bin .../layers/{geojson.jsx => Geojson/Geojson.jsx} | 74 +- .../deckgl/layers/Geojson/GeojsonChartPlugin.js | 19 + .../deckgl/layers/Geojson/images/thumbnail.png} | Bin .../layers/Geojson/images/thumbnailLarge.png} | Bin .../src/visualizations/deckgl/layers/Grid/Grid.jsx | 40 + .../deckgl/layers/Grid/GridChartPlugin.js | 19 + .../deckgl/layers/Grid/images/thumbnail.png} | Bin .../deckgl/layers/Grid/images/thumbnailLarge.png} | Bin .../src/visualizations/deckgl/layers/Hex/Hex.jsx | 40 + .../deckgl/layers/Hex/HexChartPlugin.js | 19 + .../deckgl/layers/Hex/images/thumbnail.png} | Bin .../deckgl/layers/Hex/images/thumbnailLarge.png} | Bin .../src/visualizations/deckgl/layers/Path/Path.jsx | 40 + .../deckgl/layers/Path/PathChartPlugin.js | 19 + .../deckgl/layers/Path/images/thumbnail.png} | Bin .../deckgl/layers/Path/images/thumbnailLarge.png} | Bin .../deckgl/layers/Polygon/Polygon.jsx | 52 + .../deckgl/layers/Polygon/PolygonChartPlugin.js | 19 + .../deckgl/layers/Polygon/images/thumbnail.png} | Bin .../layers/Polygon/images/thumbnailLarge.png} | Bin .../deckgl/layers/Scatter/Scatter.jsx | 36 + .../deckgl/layers/Scatter/ScatterChartPlugin.js | 19 + .../deckgl/layers/Scatter/images/thumbnail.png} | Bin .../layers/Scatter/images/thumbnailLarge.png} | Bin .../{screengrid.jsx => Screengrid/Screengrid.jsx} | 71 +- .../layers/Screengrid/ScreengridChartPlugin.js | 19 + .../deckgl/layers/Screengrid/images/thumbnail.png} | Bin .../layers/Screengrid/images/thumbnailLarge.png} | Bin .../src/visualizations/deckgl/layers/arc.jsx | 63 - .../deckgl/layers/{common.js => common.jsx} | 22 +- .../src/visualizations/deckgl/layers/grid.jsx | 70 - .../src/visualizations/deckgl/layers/hex.jsx | 71 - .../src/visualizations/deckgl/layers/index.js | 17 +- .../src/visualizations/deckgl/layers/path.jsx | 71 - .../src/visualizations/deckgl/layers/polygon.jsx | 84 - .../src/visualizations/deckgl/layers/scatter.jsx | 70 - .../assets/src/visualizations/deckgl/multi.jsx | 57 - superset/assets/src/visualizations/index.js | 70 +- .../src/visualizations/models/BasicChartInput.js | 19 + .../visualizations/nvd3/Area/AreaChartPlugin.js | 21 + .../visualizations/nvd3/Area/images/thumbnail.png} | Bin .../nvd3/Area/images/thumbnailLarge.png} | Bin .../src/visualizations/nvd3/Bar/BarChartPlugin.js | 21 + .../visualizations/nvd3/Bar/images/thumbnail.png} | Bin .../nvd3/Bar/images/thumbnailLarge.png} | Bin .../nvd3/BoxPlot/BoxPlotChartPlugin.js | 21 + .../nvd3/BoxPlot/images/thumbnail.png} | Bin .../nvd3/BoxPlot/images/thumbnailLarge.png} | Bin .../nvd3/Bubble/BubbleChartPlugin.js | 21 + .../nvd3/Bubble/images/thumbnail.png} | Bin .../nvd3/Bubble/images/thumbnailLarge.png} | Bin .../nvd3/Bullet/BulletChartPlugin.js | 21 + .../nvd3/Bullet/images/thumbnail.png} | Bin .../nvd3/Bullet/images/thumbnailLarge.png} | Bin .../nvd3/Compare/CompareChartPlugin.js | 21 + .../nvd3/Compare/images/thumbnail.png} | Bin .../nvd3/Compare/images/thumbnailLarge.png} | Bin .../nvd3/DistBar/DistBarChartPlugin.js | 21 + .../nvd3/DistBar/images/thumbnail.png} | Bin .../nvd3/DistBar/images/thumbnailLarge.png} | Bin .../nvd3/DualLine/DualLineChartPlugin.js | 21 + .../nvd3/DualLine/images/thumbnail.png} | Bin .../nvd3/DualLine/images/thumbnailLarge.png} | Bin .../visualizations/nvd3/Line/LineChartPlugin.js | 21 + .../visualizations/nvd3/Line/images/thumbnail.png} | Bin .../nvd3/Line/images/thumbnailLarge.png} | Bin .../{line_multi.js => nvd3/LineMulti.js} | 6 +- .../nvd3/LineMulti/images/thumbnail.png} | Bin .../nvd3/LineMulti/images/thumbnailLarge.png} | Bin .../{nvd3_vis.css => nvd3/NVD3Vis.css} | 0 .../{nvd3_vis.js => nvd3/NVD3Vis.js} | 787 ++--- .../src/visualizations/nvd3/Pie/PieChartPlugin.js | 21 + .../visualizations/nvd3/Pie/images/thumbnail.png} | Bin .../nvd3/Pie/images/thumbnailLarge.png} | Bin .../assets/src/visualizations/nvd3/PropTypes.js | 63 + .../assets/src/visualizations/nvd3/ReactNVD3.js | 4 + .../nvd3/TimePivot/TimePivotChartPlugin.js | 21 + .../nvd3/TimePivot/images/thumbnail.png} | Bin .../nvd3/TimePivot/images/thumbnailLarge.png} | Bin .../assets/src/visualizations/nvd3/adaptor.jsx | 5 + .../src/visualizations/nvd3/transformProps.js | 112 + superset/assets/src/visualizations/nvd3/utils.js | 206 ++ superset/assets/src/visualizations/time_table.css | 3 - superset/assets/src/visualizations/time_table.jsx | 208 -- .../src/visualizations/wordcloud/ReactWordCloud.js | 4 + .../src/visualizations/wordcloud/WordCloud.js | 48 +- .../wordcloud/WordCloudChartPlugin.js | 21 + .../src/visualizations/wordcloud/adaptor.jsx | 5 + .../visualizations/wordcloud/images/thumbnail.png} | Bin .../wordcloud/images/thumbnailLarge.png} | Bin .../src/visualizations/wordcloud/transformProps.js | 27 + superset/assets/stylesheets/superset.less | 7 +- superset/assets/webpack.config.js | 56 +- superset/assets/yarn.lock | 3302 ++++++++------------ superset/bin/superset | 6 - superset/cache_util.py | 42 +- superset/cli.py | 58 +- superset/config.py | 25 +- superset/connectors/base/models.py | 6 - superset/connectors/base/views.py | 6 - superset/connectors/connector_registry.py | 6 - superset/connectors/druid/__init__.py | 1 - superset/connectors/druid/models.py | 9 +- superset/connectors/druid/views.py | 6 - superset/connectors/sqla/__init__.py | 1 - superset/connectors/sqla/models.py | 19 +- superset/connectors/sqla/views.py | 9 +- superset/dashboard_import_export_util.py | 38 + superset/data/__init__.py | 5 - superset/data/countries.py | 5 - superset/dataframe.py | 6 - superset/db_engine_specs.py | 107 +- superset/db_engines/hive.py | 6 - superset/dict_import_export_util.py | 6 - superset/exceptions.py | 5 - superset/extract_table_names.py | 6 - superset/forms.py | 69 +- superset/import_util.py | 6 - superset/jinja_context.py | 51 +- superset/legacy.py | 6 - superset/migrations/env.py | 3 - ...9ee0e3_fix_wrong_constraint_on_table_columns.py | 7 +- .../versions/1296d28ec131_druid_exports.py | 1 - .../versions/12d55656cbca_is_featured.py | 1 - .../versions/18e88e1cc004_making_audit_nullable.py | 149 +- .../19a814813610_adding_metric_warning_text.py | 1 - .../versions/1a48a5411020_adding_slug_to_dash.py | 1 - .../migrations/versions/1d2ddd543133_log_dt.py | 2 - superset/migrations/versions/1d9e835a84f9_.py | 21 +- superset/migrations/versions/1e2841a4128_.py | 1 - .../versions/21e88bc06c02_annotation_migration.py | 1 - .../migrations/versions/2591d77e9831_user_id.py | 1 - .../versions/27ae655e4247_make_creator_owners.py | 1 - .../289ce07647b_add_encrypted_password_field.py | 1 - .../2929af7925ed_tz_offsets_in_data_sources.py | 1 - .../versions/2fcdcb35e487_saved_queries.py | 2 - .../versions/315b3f4da9b0_adding_log_model.py | 1 - .../versions/33d996bcc382_update_slice_model.py | 1 - .../versions/3b626e2a6783_sync_db_with_models.py | 22 +- .../3c3ffe173e4f_add_sql_string_to_table.py | 1 - ...1c4c6_migrate_num_period_compare_and_period_.py | 2 - .../41f6a59a61f2_database_options_for_sql_lab.py | 1 - .../migrations/versions/430039611635_log_more.py | 5 +- .../migrations/versions/43df8de3a5f4_dash_json.py | 1 - .../versions/4500485bde7d_allow_run_sync_async.py | 1 - superset/migrations/versions/472d2f73dfd4_.py | 1 - superset/migrations/versions/4736ec66ce19_.py | 1 - superset/migrations/versions/4e6a06bad7a8_init.py | 1 - .../versions/4fa88fe24e94_owners_many_to_many.py | 2 - .../versions/525c854f0005_log_this_plus.py | 1 - .../migrations/versions/55179c7f25c7_sqla_descr.py | 1 - superset/migrations/versions/5a7bad26f2a7_.py | 1 - superset/migrations/versions/5ccf602336a0_.py | 1 - .../5e4a03ef0bf0_add_request_access_model.py | 1 - superset/migrations/versions/6414e83d82b7_.py | 2 - .../migrations/versions/65903709c321_allow_dml.py | 1 - .../versions/67a6ac9b727b_update_spatial_params.py | 1 - superset/migrations/versions/705732c70154_.py | 1 - .../732f1c06bcbf_add_fetch_values_predicate.py | 1 - .../versions/763d4b211ec9_fixing_audit_fk.py | 1 - .../versions/7dbf98566af7_slice_description.py | 1 - .../versions/7e3ddad2a00b_results_key_to_query.py | 1 - superset/migrations/versions/7fcdcde0761c_.py | 11 +- .../versions/836c0bf75904_cache_timeouts.py | 2 - ...4f117f9_adding_extra_field_to_database_model.py | 2 - superset/migrations/versions/8e80a26a31db_.py | 2 - .../versions/956a063c52b3_adjusting_key_length.py | 6 +- superset/migrations/versions/960c69cb1f5b_.py | 1 - superset/migrations/versions/979c03af3341_.py | 1 - .../versions/a2d606a761d9_adding_favstar_model.py | 1 - ...a65458420354_add_result_backend_time_logging.py | 1 - .../a6c18f869a4e_query_start_running_time.py | 10 +- ...7c195a_rewriting_url_from_shortner_with_new_.py | 1 - .../a9c47e2c1547_add_impersonate_user_to_dbs.py | 2 - ...d66c4246e_add_cache_timeout_to_druid_cluster.py | 1 - .../versions/ad4d656d92bc_add_avg_metric.py | 1 - .../versions/ad82a75afd82_add_query_model.py | 1 - ...dfe5fb6c_adding_verbose_name_to_druid_column.py | 1 - superset/migrations/versions/b347b202819b_.py | 2 - .../b4456560d4f3_change_table_unique_constraint.py | 4 +- .../versions/b46fa1b0b39e_add_params_to_tables.py | 1 - .../bb51420eaf83_add_schema_to_table_model.py | 1 - .../versions/bcf3126872fc_add_keyvalue.py | 1 - .../bebcf3fed1fe_convert_dashboard_v1_positions.py | 45 +- .../bf706ae5eb46_cal_heatmap_metric_to_metrics.py | 7 +- superset/migrations/versions/c18bd4186f15_.py | 3 - .../c3a8f8611885_materializing_permission.py | 15 +- .../migrations/versions/c611f2b591b8_dim_spec.py | 1 - superset/migrations/versions/c9495751e314_.py | 1 - .../versions/ca69c70ec99b_tracking_url.py | 1 - superset/migrations/versions/d2424a248d63_.py | 1 - superset/migrations/versions/d39b1e37131d_.py | 1 - superset/migrations/versions/d6db5a5cdb5d_.py | 2 - .../versions/d827694c7555_css_templates.py | 1 - ...d8bc074f7aad_add_new_field_is_restricted_to_.py | 1 - .../db0c65b146bd_update_slice_model_json.py | 1 - .../versions/db527d8c4c78_add_db_verbose_name.py | 1 - .../versions/ddd6ebdd853b_annotations.py | 1 - .../versions/e46f2d27a08e_materialize_perms.py | 2 - .../versions/e866bd2d4976_smaller_grid.py | 1 - superset/migrations/versions/ea033256294a_.py | 1 - superset/migrations/versions/ec1f88a35cc6_.py | 3 - .../eca4694defa7_sqllab_setting_defaults.py | 1 - superset/migrations/versions/ef8843b41dac_.py | 5 - ...bf6129e13_adding_verbose_name_to_tablecolumn.py | 1 - .../versions/f162a1dea4c4_d3format_by_metric.py | 1 - .../f18570e03440_add_query_result_key_index.py | 1 - superset/migrations/versions/f1f2d4af5b90_.py | 1 - superset/migrations/versions/f959a6652acd_.py | 1 - superset/migrations/versions/fee7b758c130_.py | 1 - superset/models/__init__.py | 1 - superset/models/annotations.py | 6 - superset/models/core.py | 35 +- superset/models/helpers.py | 8 +- superset/models/sql_lab.py | 6 - superset/models/user_attributes.py | 6 - superset/security.py | 18 +- superset/sql_lab.py | 39 +- superset/sql_parse.py | 6 - superset/stats_logger.py | 6 - superset/templates/appbuilder/navbar_right.html | 2 +- superset/templates/superset/ajah.html | 1 - superset/templates/superset/base.html | 6 +- superset/templates/superset/basic.html | 10 +- .../form_view/csv_to_database_view/edit.html | 46 + .../templates/superset/models/database/add.html | 1 + .../templates/superset/models/database/edit.html | 1 + .../templates/superset/models/database/macros.html | 6 + .../templates/superset/partials/_script_tag.html | 2 +- superset/translations/requirements.txt | 1 + superset/translations/utils.py | 6 - superset/utils.py | 9 +- superset/views/__init__.py | 1 - superset/views/annotations.py | 6 - superset/views/base.py | 17 +- superset/views/core.py | 249 +- superset/views/datasource.py | 6 - superset/views/sql_lab.py | 6 - superset/views/utils.py | 8 +- superset/viz.py | 106 +- tests/access_tests.py | 6 - tests/base_tests.py | 13 +- tests/cache_tests.py | 6 - tests/celery_tests.py | 80 +- tests/core_tests.py | 44 +- tests/dashboard_tests.py | 6 - tests/dataframe_test.py | 6 - tests/datasource_tests.py | 6 - tests/db_engine_specs_test.py | 11 +- tests/dict_import_export_tests.py | 7 - tests/druid_func_tests.py | 6 - tests/druid_tests.py | 6 - tests/email_tests.py | 6 - tests/fixtures/datasource.py | 6 - tests/form_tests.py | 6 - tests/import_export_tests.py | 6 - tests/macro_tests.py | 59 + tests/model_tests.py | 6 - tests/security_tests.py | 6 - tests/sql_parse_tests.py | 6 - tests/sqllab_tests.py | 6 - tests/superset_test_config.py | 3 - tests/utils.py | 6 - tests/utils_tests.py | 6 - tests/viz_tests.py | 54 +- tox.ini | 5 +- 789 files changed, 12084 insertions(+), 8301 deletions(-) create mode 100644 RELEASING.md create mode 100644 superset/assets/cypress/.eslintrc create mode 100644 superset/assets/cypress/integration/dashboard/controls.js create mode 100644 superset/assets/cypress/integration/dashboard/dashboard.helper.js delete mode 100644 superset/assets/cypress/integration/dashboard/dashboard_tests.js create mode 100644 superset/assets/cypress/integration/dashboard/edit_mode.js create mode 100644 superset/assets/cypress/integration/dashboard/filter.js create mode 100644 superset/assets/cypress/integration/dashboard/index.test.js create mode 100644 superset/assets/cypress/integration/dashboard/load.js create mode 100644 superset/assets/cypress/integration/explore/control.test.js delete mode 100644 superset/assets/cypress/integration/explore/control_tests.js create mode 100644 superset/assets/cypress/integration/explore/link.test.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/area.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/big_number_total.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/box_plot.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/bubble.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/compare.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/dist_bar.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/dual_line.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/histogram.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/index.test.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/pie.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/pivot_table.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/sankey.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/sunburst.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/table.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/treemap.js create mode 100644 superset/assets/cypress/integration/explore/visualizations/world_map.js create mode 100644 superset/assets/cypress/integration/sqllab/index.test.js create mode 100644 superset/assets/cypress/integration/sqllab/query.js create mode 100644 superset/assets/cypress/integration/sqllab/sourcePanel.js create mode 100644 superset/assets/cypress/integration/sqllab/sqllab.helper.js create mode 100644 superset/assets/cypress/integration/sqllab/tabs.js create mode 100644 superset/assets/cypress/utils/readResponseBlob.js create mode 100644 superset/assets/images/apache_feather.png create mode 100644 superset/assets/jest.config.js create mode 100644 superset/assets/spec/__mocks__/fileMock.js create mode 100644 superset/assets/spec/__mocks__/styleMock.js create mode 100644 superset/assets/spec/helpers/setupSupersetClient.js create mode 100644 superset/assets/spec/javascripts/dashboard/containers/Dashboard_spec.jsx delete mode 100644 superset/assets/spec/javascripts/explore/components/ExploreChartPanel_spec.js create mode 100644 superset/assets/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx delete mode 100644 superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.js create mode 100644 superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx create mode 100644 superset/assets/spec/javascripts/modules/Registry_spec.js create mode 100644 superset/assets/spec/javascripts/utils/convertKeysToCamelCase_spec.js create mode 100644 superset/assets/spec/javascripts/utils/isDefined_spec.js create mode 100644 superset/assets/spec/javascripts/utils/isRequired_spec.js create mode 100644 superset/assets/spec/javascripts/utils/makeSingleton_spec.js create mode 100644 superset/assets/spec/javascripts/visualizations/models/ChartPlugin_spec.js create mode 100644 superset/assets/spec/javascripts/visualizations/models/Plugin_spec.js create mode 100644 superset/assets/spec/javascripts/visualizations/models/Preset_spec.js create mode 100644 superset/assets/spec/javascripts/visualizations/nvd3/utils_spec.js delete mode 100644 superset/assets/spec/javascripts/visualizations/nvd3_viz_spec.jsx create mode 100644 superset/assets/src/components/RefreshLabel.jsx create mode 100644 superset/assets/src/explore/reducers/getInitialState.js create mode 100644 superset/assets/src/featureFlags.js create mode 100644 superset/assets/src/modules/Registry.js create mode 100644 superset/assets/src/utils/convertKeysToCamelCase.js create mode 100644 superset/assets/src/utils/createAdaptor.jsx create mode 100644 superset/assets/src/utils/isDefined.js create mode 100644 superset/assets/src/utils/isRequired.js create mode 100644 superset/assets/src/utils/makeSingleton.js create mode 100644 superset/assets/src/utils/reactify.jsx create mode 100644 superset/assets/src/visualizations/BigNumber/BigNumberChartPlugin.js create mode 100644 superset/assets/src/visualizations/BigNumber/adaptor.jsx copy superset/assets/{images/viz_thumbnails/big_number.png => src/visualizations/BigNumber/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/big_number.png => src/visualizations/BigNumber/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/BigNumber/transformProps.js create mode 100644 superset/assets/src/visualizations/BigNumberTotal/BigNumberTotalChartPlugin.js copy superset/assets/{images/viz_thumbnails/big_number_total.png => src/visualizations/BigNumberTotal/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/big_number_total.png => src/visualizations/BigNumberTotal/images/thumbnailLarge.png} (100%) rename superset/assets/src/visualizations/{cal_heatmap.css => Calendar/Calendar.css} (100%) rename superset/assets/src/visualizations/{cal_heatmap.js => Calendar/Calendar.js} (73%) create mode 100644 superset/assets/src/visualizations/Calendar/CalendarChartPlugin.js create mode 100644 superset/assets/src/visualizations/Calendar/ReactCalendar.js create mode 100644 superset/assets/src/visualizations/Calendar/adaptor.jsx copy superset/assets/{images/viz_thumbnails/cal_heatmap.png => src/visualizations/Calendar/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/cal_heatmap.png => src/visualizations/Calendar/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Calendar/transformProps.js rename superset/assets/src/visualizations/{chord.css => Chord/Chord.css} (100%) rename superset/assets/src/visualizations/{chord.jsx => Chord/Chord.js} (82%) create mode 100644 superset/assets/src/visualizations/Chord/ChordChartPlugin.js create mode 100644 superset/assets/src/visualizations/Chord/ReactChord.js create mode 100644 superset/assets/src/visualizations/Chord/adaptor.jsx copy superset/assets/{images/viz_thumbnails/chord.png => src/visualizations/Chord/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/chord.png => src/visualizations/Chord/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Chord/transformProps.js rename superset/assets/src/visualizations/{country_map.css => CountryMap/CountryMap.css} (100%) rename superset/assets/src/visualizations/{country_map.js => CountryMap/CountryMap.js} (88%) create mode 100644 superset/assets/src/visualizations/CountryMap/CountryMapChartPlugin.js create mode 100644 superset/assets/src/visualizations/CountryMap/ReactCountryMap.js create mode 100644 superset/assets/src/visualizations/CountryMap/adaptor.jsx rename superset/assets/src/visualizations/{ => CountryMap}/countries/belgium.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/brazil.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/china.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/egypt.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/france.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/germany.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/india.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/italy.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/morocco.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/myanmar.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/netherlands.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/portugal.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/russia.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/singapore.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/spain.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/thailand.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/timorleste.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/uk.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/ukraine.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/usa.geojson (100%) rename superset/assets/src/visualizations/{ => CountryMap}/countries/zambia.geojson (100%) copy superset/assets/{images/viz_thumbnails/country_map.png => src/visualizations/CountryMap/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/country_map.png => src/visualizations/CountryMap/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/CountryMap/transformProps.js delete mode 100644 superset/assets/src/visualizations/EventFlow.jsx create mode 100644 superset/assets/src/visualizations/EventFlow/EventFlow.jsx create mode 100644 superset/assets/src/visualizations/EventFlow/EventFlowChartPlugin.js create mode 100644 superset/assets/src/visualizations/EventFlow/adaptor.jsx copy superset/assets/{images/viz_thumbnails/event_flow.png => src/visualizations/EventFlow/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/event_flow.png => src/visualizations/EventFlow/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/EventFlow/transformProps.js rename superset/assets/src/visualizations/{filter_box.css => FilterBox/FilterBox.css} (100%) rename superset/assets/src/visualizations/{filter_box.jsx => FilterBox/FilterBox.jsx} (81%) create mode 100644 superset/assets/src/visualizations/FilterBox/FilterBoxChartPlugin.js create mode 100644 superset/assets/src/visualizations/FilterBox/adaptor.jsx copy superset/assets/{images/viz_thumbnails/filter_box.png => src/visualizations/FilterBox/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/filter_box.png => src/visualizations/FilterBox/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/FilterBox/transformProps.js rename superset/assets/src/visualizations/{directed_force.css => ForceDirected/ForceDirected.css} (100%) rename superset/assets/src/visualizations/{directed_force.js => ForceDirected/ForceDirected.js} (89%) create mode 100644 superset/assets/src/visualizations/ForceDirected/ForceDirectedChartPlugin.js create mode 100644 superset/assets/src/visualizations/ForceDirected/ReactForceDirected.js create mode 100644 superset/assets/src/visualizations/ForceDirected/adaptor.jsx copy superset/assets/{images/viz_thumbnails/directed_force.png => src/visualizations/ForceDirected/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/directed_force.png => src/visualizations/ForceDirected/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/ForceDirected/transformProps.js rename superset/assets/src/visualizations/{heatmap.css => Heatmap/Heatmap.css} (100%) rename superset/assets/src/visualizations/{heatmap.js => Heatmap/Heatmap.js} (87%) create mode 100644 superset/assets/src/visualizations/Heatmap/HeatmapChartPlugin.js create mode 100644 superset/assets/src/visualizations/Heatmap/ReactHeatmap.js create mode 100644 superset/assets/src/visualizations/Heatmap/adaptor.jsx copy superset/assets/{images/viz_thumbnails/heatmap.png => src/visualizations/Heatmap/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/heatmap.png => src/visualizations/Heatmap/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Heatmap/transformProps.js rename superset/assets/src/visualizations/{ => Histogram}/Histogram.jsx (78%) create mode 100644 superset/assets/src/visualizations/Histogram/HistogramChartPlugin.js create mode 100644 superset/assets/src/visualizations/Histogram/adaptor.jsx copy superset/assets/{images/viz_thumbnails/histogram.png => src/visualizations/Histogram/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/histogram.png => src/visualizations/Histogram/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Histogram/transformProps.js rename superset/assets/src/visualizations/{ => Horizon}/HorizonChart.css (100%) rename superset/assets/src/visualizations/{ => Horizon}/HorizonChart.jsx (78%) create mode 100644 superset/assets/src/visualizations/Horizon/HorizonChartPlugin.js rename superset/assets/src/visualizations/{ => Horizon}/HorizonRow.jsx (100%) create mode 100644 superset/assets/src/visualizations/Horizon/adaptor.jsx copy superset/assets/{images/viz_thumbnails/horizon.png => src/visualizations/Horizon/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/horizon.png => src/visualizations/Horizon/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Horizon/transformProps.js create mode 100644 superset/assets/src/visualizations/MapBox/MapBoxChartPlugin.js create mode 100644 superset/assets/src/visualizations/MapBox/adaptor.jsx copy superset/assets/{images/viz_thumbnails/mapbox.png => src/visualizations/MapBox/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/mapbox.png => src/visualizations/MapBox/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/MapBox/transformProps.js create mode 100644 superset/assets/src/visualizations/PairedTTest/PairedTTestChartPlugin.js create mode 100644 superset/assets/src/visualizations/PairedTTest/adaptor.jsx copy superset/assets/{images/viz_thumbnails/paired_ttest.png => src/visualizations/PairedTTest/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/paired_ttest.png => src/visualizations/PairedTTest/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/PairedTTest/transformProps.js rename superset/assets/src/visualizations/{parallel_coordinates.css => ParallelCoordinates/ParallelCoordinates.css} (100%) rename superset/assets/src/visualizations/{parallel_coordinates.js => ParallelCoordinates/ParallelCoordinates.js} (68%) create mode 100644 superset/assets/src/visualizations/ParallelCoordinates/ParallelCoordinatesChartPlugin.js create mode 100644 superset/assets/src/visualizations/ParallelCoordinates/ReactParallelCoordinates.js create mode 100644 superset/assets/src/visualizations/ParallelCoordinates/adaptor.jsx copy superset/assets/{images/viz_thumbnails/para.png => src/visualizations/ParallelCoordinates/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/para.png => src/visualizations/ParallelCoordinates/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/ParallelCoordinates/transformProps.js rename superset/assets/src/visualizations/{partition.css => Partition/Partition.css} (100%) rename superset/assets/src/visualizations/{partition.js => Partition/Partition.js} (88%) create mode 100644 superset/assets/src/visualizations/Partition/PartitionChartPlugin.js create mode 100644 superset/assets/src/visualizations/Partition/ReactPartition.js create mode 100644 superset/assets/src/visualizations/Partition/adaptor.jsx copy superset/assets/{images/viz_thumbnails/partition.png => src/visualizations/Partition/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/partition.png => src/visualizations/Partition/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Partition/transformProps.js rename superset/assets/src/visualizations/{pivot_table.css => PivotTable/PivotTable.css} (100%) rename superset/assets/src/visualizations/{pivot_table.js => PivotTable/PivotTable.js} (77%) create mode 100644 superset/assets/src/visualizations/PivotTable/PivotTableChartPlugin.js create mode 100644 superset/assets/src/visualizations/PivotTable/ReactPivotTable.js create mode 100644 superset/assets/src/visualizations/PivotTable/adaptor.jsx copy superset/assets/{images/viz_thumbnails/pivot_table.png => src/visualizations/PivotTable/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/pivot_table.png => src/visualizations/PivotTable/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/PivotTable/transformProps.js create mode 100644 superset/assets/src/visualizations/Rose/ReactRose.js rename superset/assets/src/visualizations/{rose.css => Rose/Rose.css} (100%) rename superset/assets/src/visualizations/{rose.js => Rose/Rose.js} (95%) create mode 100644 superset/assets/src/visualizations/Rose/RoseChartPlugin.js create mode 100644 superset/assets/src/visualizations/Rose/adaptor.jsx copy superset/assets/{images/viz_thumbnails/rose.png => src/visualizations/Rose/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/rose.png => src/visualizations/Rose/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Rose/transformProps.js create mode 100644 superset/assets/src/visualizations/Sankey/ReactSankey.js rename superset/assets/src/visualizations/{sankey.css => Sankey/Sankey.css} (100%) rename superset/assets/src/visualizations/{sankey.js => Sankey/Sankey.js} (90%) create mode 100644 superset/assets/src/visualizations/Sankey/SankeyChartPlugin.js create mode 100644 superset/assets/src/visualizations/Sankey/adaptor.jsx copy superset/assets/{images/viz_thumbnails/sankey.png => src/visualizations/Sankey/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/sankey.png => src/visualizations/Sankey/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Sankey/transformProps.js create mode 100644 superset/assets/src/visualizations/Sunburst/ReactSunburst.js rename superset/assets/src/visualizations/{sunburst.css => Sunburst/Sunburst.css} (100%) rename superset/assets/src/visualizations/{sunburst.js => Sunburst/Sunburst.js} (94%) create mode 100644 superset/assets/src/visualizations/Sunburst/SunburstChartPlugin.js create mode 100644 superset/assets/src/visualizations/Sunburst/adaptor.jsx copy superset/assets/{images/viz_thumbnails/sunburst.png => src/visualizations/Sunburst/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/sunburst.png => src/visualizations/Sunburst/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Sunburst/transformProps.js create mode 100644 superset/assets/src/visualizations/Table/ReactTable.js rename superset/assets/src/visualizations/{table.css => Table/Table.css} (100%) rename superset/assets/src/visualizations/{table.js => Table/Table.js} (79%) create mode 100644 superset/assets/src/visualizations/Table/TableChartPlugin.js create mode 100644 superset/assets/src/visualizations/Table/adaptor.jsx copy superset/assets/{images/viz_thumbnails/table.png => src/visualizations/Table/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/table.png => src/visualizations/Table/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Table/transformProps.js create mode 100644 superset/assets/src/visualizations/TimeTable/FormattedNumber.jsx rename superset/assets/src/visualizations/{ => TimeTable}/SparklineCell.jsx (97%) create mode 100644 superset/assets/src/visualizations/TimeTable/TimeTable.css create mode 100644 superset/assets/src/visualizations/TimeTable/TimeTable.jsx create mode 100644 superset/assets/src/visualizations/TimeTable/TimeTableChartPlugin.js create mode 100644 superset/assets/src/visualizations/TimeTable/adaptor.jsx copy superset/assets/{images/viz_thumbnails/time_table.png => src/visualizations/TimeTable/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/time_table.png => src/visualizations/TimeTable/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/TimeTable/transformProps.js create mode 100644 superset/assets/src/visualizations/Treemap/ReactTreemap.js rename superset/assets/src/visualizations/{treemap.css => Treemap/Treemap.css} (100%) rename superset/assets/src/visualizations/{treemap.js => Treemap/Treemap.js} (92%) create mode 100644 superset/assets/src/visualizations/Treemap/TreemapChartPlugin.js create mode 100644 superset/assets/src/visualizations/Treemap/adaptor.jsx copy superset/assets/{images/viz_thumbnails/treemap.png => src/visualizations/Treemap/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/treemap.png => src/visualizations/Treemap/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/Treemap/transformProps.js create mode 100644 superset/assets/src/visualizations/WorldMap/ReactWorldMap.js rename superset/assets/src/visualizations/{world_map.css => WorldMap/WorldMap.css} (100%) rename superset/assets/src/visualizations/{world_map.js => WorldMap/WorldMap.js} (83%) create mode 100644 superset/assets/src/visualizations/WorldMap/WorldMapChartPlugin.js create mode 100644 superset/assets/src/visualizations/WorldMap/adaptor.jsx copy superset/assets/{images/viz_thumbnails/world_map.png => src/visualizations/WorldMap/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/world_map.png => src/visualizations/WorldMap/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/WorldMap/transformProps.js create mode 100644 superset/assets/src/visualizations/core/models/ChartMetadata.js create mode 100644 superset/assets/src/visualizations/core/models/ChartPlugin.js create mode 100644 superset/assets/src/visualizations/core/models/Plugin.js create mode 100644 superset/assets/src/visualizations/core/models/Preset.js create mode 100644 superset/assets/src/visualizations/core/registries/ChartComponentRegistrySingleton.js create mode 100644 superset/assets/src/visualizations/core/registries/ChartMetadataRegistrySingleton.js create mode 100644 superset/assets/src/visualizations/core/registries/ChartTransformPropsRegistrySingleton.js create mode 100644 superset/assets/src/visualizations/deckgl/Multi/Multi.jsx create mode 100644 superset/assets/src/visualizations/deckgl/Multi/MultiChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_multi.png => src/visualizations/deckgl/Multi/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_multi.png => src/visualizations/deckgl/Multi/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/createAdaptor.jsx create mode 100644 superset/assets/src/visualizations/deckgl/factory.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Arc/Arc.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Arc/ArcChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_arc.png => src/visualizations/deckgl/layers/Arc/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_arc.png => src/visualizations/deckgl/layers/Arc/images/thumbnailLarge.png} (100%) rename superset/assets/src/visualizations/deckgl/layers/{geojson.jsx => Geojson/Geojson.jsx} (62%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Geojson/GeojsonChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_geojson.png => src/visualizations/deckgl/layers/Geojson/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_geojson.png => src/visualizations/deckgl/layers/Geojson/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Grid/Grid.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Grid/GridChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_grid.png => src/visualizations/deckgl/layers/Grid/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_grid.png => src/visualizations/deckgl/layers/Grid/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Hex/Hex.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Hex/HexChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_hex.png => src/visualizations/deckgl/layers/Hex/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_hex.png => src/visualizations/deckgl/layers/Hex/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Path/Path.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Path/PathChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_path.png => src/visualizations/deckgl/layers/Path/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_path.png => src/visualizations/deckgl/layers/Path/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Polygon/Polygon.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Polygon/PolygonChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_polygon.png => src/visualizations/deckgl/layers/Polygon/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_polygon.png => src/visualizations/deckgl/layers/Polygon/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Scatter/Scatter.jsx create mode 100644 superset/assets/src/visualizations/deckgl/layers/Scatter/ScatterChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_scatter.png => src/visualizations/deckgl/layers/Scatter/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_scatter.png => src/visualizations/deckgl/layers/Scatter/images/thumbnailLarge.png} (100%) rename superset/assets/src/visualizations/deckgl/layers/{screengrid.jsx => Screengrid/Screengrid.jsx} (71%) create mode 100644 superset/assets/src/visualizations/deckgl/layers/Screengrid/ScreengridChartPlugin.js copy superset/assets/{images/viz_thumbnails/deck_screengrid.png => src/visualizations/deckgl/layers/Screengrid/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/deck_screengrid.png => src/visualizations/deckgl/layers/Screengrid/images/thumbnailLarge.png} (100%) delete mode 100644 superset/assets/src/visualizations/deckgl/layers/arc.jsx rename superset/assets/src/visualizations/deckgl/layers/{common.js => common.jsx} (71%) delete mode 100644 superset/assets/src/visualizations/deckgl/layers/grid.jsx delete mode 100644 superset/assets/src/visualizations/deckgl/layers/hex.jsx delete mode 100644 superset/assets/src/visualizations/deckgl/layers/path.jsx delete mode 100644 superset/assets/src/visualizations/deckgl/layers/polygon.jsx delete mode 100644 superset/assets/src/visualizations/deckgl/layers/scatter.jsx delete mode 100644 superset/assets/src/visualizations/deckgl/multi.jsx create mode 100644 superset/assets/src/visualizations/models/BasicChartInput.js create mode 100644 superset/assets/src/visualizations/nvd3/Area/AreaChartPlugin.js copy superset/assets/{images/viz_thumbnails/area.png => src/visualizations/nvd3/Area/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/area.png => src/visualizations/nvd3/Area/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/Bar/BarChartPlugin.js copy superset/assets/{images/viz_thumbnails/bar.png => src/visualizations/nvd3/Bar/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/bar.png => src/visualizations/nvd3/Bar/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/BoxPlot/BoxPlotChartPlugin.js copy superset/assets/{images/viz_thumbnails/box_plot.png => src/visualizations/nvd3/BoxPlot/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/box_plot.png => src/visualizations/nvd3/BoxPlot/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/Bubble/BubbleChartPlugin.js copy superset/assets/{images/viz_thumbnails/bubble.png => src/visualizations/nvd3/Bubble/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/bubble.png => src/visualizations/nvd3/Bubble/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/Bullet/BulletChartPlugin.js copy superset/assets/{images/viz_thumbnails/bullet.png => src/visualizations/nvd3/Bullet/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/bullet.png => src/visualizations/nvd3/Bullet/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/Compare/CompareChartPlugin.js copy superset/assets/{images/viz_thumbnails/compare.png => src/visualizations/nvd3/Compare/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/compare.png => src/visualizations/nvd3/Compare/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/DistBar/DistBarChartPlugin.js copy superset/assets/{images/viz_thumbnails/dist_bar.png => src/visualizations/nvd3/DistBar/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/dist_bar.png => src/visualizations/nvd3/DistBar/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/DualLine/DualLineChartPlugin.js copy superset/assets/{images/viz_thumbnails/dual_line.png => src/visualizations/nvd3/DualLine/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/dual_line.png => src/visualizations/nvd3/DualLine/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/Line/LineChartPlugin.js copy superset/assets/{images/viz_thumbnails/line.png => src/visualizations/nvd3/Line/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/line.png => src/visualizations/nvd3/Line/images/thumbnailLarge.png} (100%) rename superset/assets/src/visualizations/{line_multi.js => nvd3/LineMulti.js} (94%) copy superset/assets/{images/viz_thumbnails/line_multi.png => src/visualizations/nvd3/LineMulti/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/line_multi.png => src/visualizations/nvd3/LineMulti/images/thumbnailLarge.png} (100%) rename superset/assets/src/visualizations/{nvd3_vis.css => nvd3/NVD3Vis.css} (100%) rename superset/assets/src/visualizations/{nvd3_vis.js => nvd3/NVD3Vis.js} (50%) create mode 100644 superset/assets/src/visualizations/nvd3/Pie/PieChartPlugin.js copy superset/assets/{images/viz_thumbnails/pie.png => src/visualizations/nvd3/Pie/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/pie.png => src/visualizations/nvd3/Pie/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/PropTypes.js create mode 100644 superset/assets/src/visualizations/nvd3/ReactNVD3.js create mode 100644 superset/assets/src/visualizations/nvd3/TimePivot/TimePivotChartPlugin.js copy superset/assets/{images/viz_thumbnails/time_pivot.png => src/visualizations/nvd3/TimePivot/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/time_pivot.png => src/visualizations/nvd3/TimePivot/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/nvd3/adaptor.jsx create mode 100644 superset/assets/src/visualizations/nvd3/transformProps.js create mode 100644 superset/assets/src/visualizations/nvd3/utils.js delete mode 100644 superset/assets/src/visualizations/time_table.css delete mode 100644 superset/assets/src/visualizations/time_table.jsx create mode 100644 superset/assets/src/visualizations/wordcloud/ReactWordCloud.js create mode 100644 superset/assets/src/visualizations/wordcloud/WordCloudChartPlugin.js create mode 100644 superset/assets/src/visualizations/wordcloud/adaptor.jsx copy superset/assets/{images/viz_thumbnails/word_cloud.png => src/visualizations/wordcloud/images/thumbnail.png} (100%) copy superset/assets/{images/viz_thumbnails_large/word_cloud.png => src/visualizations/wordcloud/images/thumbnailLarge.png} (100%) create mode 100644 superset/assets/src/visualizations/wordcloud/transformProps.js create mode 100644 superset/dashboard_import_export_util.py delete mode 100644 superset/templates/superset/ajah.html create mode 100644 superset/templates/superset/form_view/csv_to_database_view/edit.html create mode 100644 superset/translations/requirements.txt create mode 100644 tests/macro_tests.py