* feat(dashboard): Implement empty states in empty tabs
* Change button to in text link
* Add edit dashboard button to dashboard empty state
* Add tests
* Fix test
* feat(explore): Move chart actions to a dropdown menu
* Fix tests and add some new ones
* Add background color to embed code button
* Fix cypress tests
* Move copy permalink to actions menu
* Remove unused function
* Move share by email above embed code
* Fix test
* Fix test
* Fix test
* Fix test
* Fix test
* fix(report-add): make to add error toast message when already attached report is added again into dashboard or chart
* fix(export-add): make to setup the default error message
* fix(report-add): make to allow the errorMessage undefined in LabeledErrorBoundInput component
* fix(fonts): Import all necessary font packages
* Make html tags themable
* Set bold font weight to 600, add medium font weight to theme
* Replace hard coded font weights with theme variables
* Change some font weight light elements to normal
* Fix tests
* Fix bug in pivot table
* Address code review comments
* wip
* feat: make 401 responses configurable in SupersetClient
* sort
* guest unauthorized handler
* add toast container to embedded app
* add option for toast presenter to go at the top
* remove confusing comms logging
* lint
* Update superset-frontend/src/embedded/index.tsx
* type correction
* remove ENABLE_REACT_CRUD_VIEWS feature flag
* docs
* deal with problematic tests
* empty test suite
* skip test
* test conditions changed
* removing the tests instead of skipping
* make that the comma can be added by removing it from token separators in select component.
* fix(explore comma): add the allowTokenSeperators props into Select
* fix(explore comma): make to allow to customize the token separators in Select.
* fix(explore comma): make to add the unit test and story book.
* fix(explore comma): make to fix the lint
* fix(explore comma): make to fix the spell & add tokenSeparatprs props to PickedSelectProps
* Update Select.tsx
* fix(explore comma): make to run lint fix
* fix: allow to select <NULL> in a native filter single mode
* fix lint issue
* Update superset-frontend/src/components/Select/utils.ts
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* fix
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* fix(altered-modal): make all text fields wrap
* fix(altered-modal): limit the wrap text in particular column
* fix(altered-modal): make to update the unit test
* fix(altered-modal): make to fix the type of columnsForWrapText
* fix(alerted-modal): make to fix the type of columnsForWrapTest with string type
* fix(15849): Removed the tooltip from CopyToClipboard button in sqllab
* chore(sqllab): added props for tooltip in CopyToClipboard component
* fix(sqllab): Added arg to storybook and refactor the component
* fix(sqllab): added a test case for hideTooltip
* fix(delete-modal): Changed the color of the help text with grayScale.dark1 in DeleteModal
* Update superset-frontend/src/components/DeleteModal/index.tsx
Co-authored-by: Evan Rusackas <evan@preset.io>
* fix errors with rison and useQueryParams
* add test for encode/decode
* add rison link and make test case more readable
Co-authored-by: Corbin Robb <corbin@Corbins-MacBook-Pro.local>
* add sorting for query results grid and add natural order sort
* modify tests for natural/original order state
* clean up setState
Co-authored-by: Corbin Robb <corbin@Corbins-MacBook-Pro.local>
* feat(dashboard): Implement empty states for dashboard
* Add empty state to native filters
* Add missing license
* Remove redundant string types from EmptyState
* chore: fix misspelling of button
* changed QuerySearch/index.jsx to index.tsx
* updated Query type at src/SqlLab/types.ts/Query and extended it into QueryTable
* updated defaultQueryLimit to be optional at ResultSetProps of superset-frontend/src/SqlLab/components/ResultSet/index.tsx
* moved statusAttributes into useMemo hook so that it will not make the dependencies of useMemo Hook change on every render and statusAttributes is only used within useMomo hook
* reset package-lock.json and package.json at frontend
* Acquired redux rootestate type for SqlLab, to be used at useSelector(state)
* updated query to be Query type and added a comment for q.status on line 178
* updated queryTable for typescript conversion
* updated actions type on QueryHistory and QuerySearch
* updated type for actions in SouthPane
* created type for SqlLab redux
Co-authored-by: David Woolner <davidwoolner@gmail.com>
Co-authored-by: AAfghahi <48933336+AAfghahi@users.noreply.github.com>
* feat(dashboard): embedded dashboard UI configuration (#17175) (#17450)
* setup embedded provider
* update ui configuration
* fix test
* feat: Guest token (for embedded dashboard auth) (#17517)
* generate an embed token
* improve existing tests
* add some auth setup, and rename token
* fix the stuff for compatibility with external request loaders
* docs, standard jwt claims, tweaks
* black
* lint
* tests, and safer token decoding
* linting
* type annotation
* prettier
* add feature flag
* quiet pylint
* apparently typing is a problem again
* Make guest role name configurable
* fake being a non-anonymous user
* just one log entry
* customizable algo
* lint
* lint again
* 403 works now!
* get guest token from header instead of cookie
* Revert "403 works now!"
This reverts commit df2f49a6d4.
* fix tests
* Revert "Revert "403 works now!""
This reverts commit 883dff38f1.
* rename method
* correct import
* feat: entry for embedded dashboard (#17529)
* create entry for embedded dashboard in webpack
* add cookies
* lint
* token message handshake
* guestTokenHeaderName
* use setupClient instead of calling configure
* rename the webpack chunk
* simplified handshake
* embedded entrypoint: render a proper app
* make the embedded page accept anonymous connections
* format
* lint
* fix test
# Conflicts:
# superset-frontend/src/embedded/index.tsx
# superset/views/core.py
* lint
* Update superset-frontend/src/embedded/index.tsx
Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
* comment out origins checks
* move embedded for core to dashboard
* pylint
* isort
Co-authored-by: David Aaron Suddjian <aasuddjian@gmail.com>
Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
* feat: Authorizing guest access to embedded dashboards (#17757)
* helper methods and dashboard access
* guest token dashboard authz
* adjust csrf exempt list
* eums don't work that way
* Remove unnecessary import
* move row level security tests to their own file
* a bit of refactoring
* add guest token security tests
* refactor tests
* clean imports
* variable names can be too long apparently
* missing argument to get_user_roles
* don't redefine builtins
* remove unused imports
* fix test import
* default to global user when getting roles
* missing import
* mock it
* test get_user_roles
* infer g.user for ease of tests
* remove redundant check
* tests for guest user security manager fns
* use algo to get rid of warning messages
* tweaking access checks
* fix guest token security tests
* missing imports
* more tests
* more testing and also some small refactoring
* move validation out of parsing
* fix dashboard access check again
* add more test
Co-authored-by: Lily Kuang <lily@preset.io>
* feat: Row Level Security rules for guest tokens (#17836)
* helper methods and dashboard access
* guest token dashboard authz
* adjust csrf exempt list
* eums don't work that way
* Remove unnecessary import
* move row level security tests to their own file
* a bit of refactoring
* add guest token security tests
* refactor tests
* clean imports
* variable names can be too long apparently
* missing argument to get_user_roles
* don't redefine builtins
* remove unused imports
* fix test import
* default to global user when getting roles
* missing import
* mock it
* test get_user_roles
* infer g.user for ease of tests
* remove redundant check
* tests for guest user security manager fns
* use algo to get rid of warning messages
* tweaking access checks
* fix guest token security tests
* missing imports
* more tests
* more testing and also some small refactoring
* move validation out of parsing
* fix dashboard access check again
* rls rules for guest tokens
* test guest token rls rules
* more flexible rls rules
* lint
* fix tests
* fix test
* defaults
* fix some tests
* fix some tests
* lint
Co-authored-by: Lily Kuang <lily@preset.io>
* SupersetClient guest token test
* Apply suggestions from code review
Co-authored-by: Lily Kuang <lily@preset.io>
Co-authored-by: Lily Kuang <lily@preset.io>
* Update existing tests
* Add backend test
* feat: add force option to report screenshots
* Add tests
* Rebase fixes
* Do not force screenshot on dashboard alerts
* fix: Select component sort function sorting by label instead of value on numbers
* fix: change select component default sorting to sort by the initial index rather than a property like value or label
* fix: select sorting add sortOptions to select components using sortByProperty
* fix: change select component back, add order to options coming in from SelectControl
* fix: select component options intitial sort bug
* fix: add test cases for select fix
Co-authored-by: Corbin Robb <corbin@Corbins-MacBook-Pro.local>
* Floating nums now sorting correctly with parseFloatingNums function
* Floating numbers AND strings now sorting correctly, +locale comparison
* Added NULL handling back to sort function
* Moved parseFloatingNums outside of sortResults
* Removed localeCompare and added testing
* Add equality check back to sort function
* Added floatValue nit
* Fix NULL styling in gridCell
* removed unnecessary imports
* Added null styling back to renderGridCell
* Cleaned up a little code as per Elizabeth
* Found another little cleanup spot
* fix: Order of Select items when unselecting
* Adds a property comparator that supports strings and numbers
* Uses a named export for propertyComparator
* abstract boilerplate code into class and rename csv to file
* add db migration
* fix some stuff
* more renaming of csv to file
* rename in translations
* update down revision
* update down revision
* bump chart version
* switch to alter column name approach in db migration
* fix db migration for MySQL
* db migration conflict
* Changed SQL Lab result column header-style width to max-content
* Changed .ant-tooltip-open to block and tooltip placement to topLeft
* Moved tooltip style changes to local implementation instead of global
* chore: Change the list views to use the new Select component
* Fix Cypress tests
* Enables search for all controls
* Adjusts controls width
* Removes 'Me' and keeps the logged user on top
* Fixes tests
* Uses the borderless version for the filters
* Fixes the tests
* Reverts the Select theme to the default
* Rebases and fixes js error
* Fixes failing test
* Removes unused withTheme
* chore: Improves the Select component to avoid additional queries when all values have been loaded
* Handles the logic in handlePaginateFetch and removes the use effect
* Clean up and reorganize effects
* Enhance optionFilterProps
* Render custom label
* Remove prop filtering
* Create options
* Create option from value in single mode
* Change to customLabel
* Show search by default
* Update superset-frontend/src/components/Select/Select.tsx
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* Update superset-frontend/src/components/Select/Select.tsx
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* Update superset-frontend/src/components/Select/Select.tsx
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* Apply minor changes
* Fixes a bug that was failing CI
* Adds more tests to the component
* Apply customLabel in ColorSchemeControl
* Remove customLabel from rendered Option
* Hide No data when allowNewOptions
* Remove unnecessary prop from tests
* Adjust loading height
* Show no data with fetchOnlyOnSearch
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com>
* fix: setupPlugin in chart list page
* fix the order of setupPlugins call
* Fix jest test on loading geojson
* add jest changes
* fix unit tests
Co-authored-by: Jesse Yang <jesse.yang@airbnb.com>
* copy to Clipboard order
* centralized copyToClipboard
* fixed table order
* fixed tests
* added colnames to all viz types
* added colnames to all viz types
* added colnames to all viz types
* Fix style and implement ESC
* Include ESC test case
* Move pagination outside of table
* Update superset-frontend/src/components/OmniContainer/OmniContainer.test.tsx
Co-authored-by: Evan Rusackas <evan@preset.io>
* Enhance
* Handle close
* Localize placeholder
* Fix tests
* Clear input on close
* Destroy modal on close
* Clean up
* Fix tests
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Lyndsi Kay Williams <55605634+lyndsiWilliams@users.noreply.github.com>
Co-authored-by: AAfghahi <48933336+AAfghahi@users.noreply.github.com>
* chore: implement new mockup to the new viz gallery
* fix: update package-lock
* fix: add license
* fix: reduce duplication and fit within the sidebar
* fix: ut
* initial commit
* fix theme
* Update superset-frontend/src/SqlLab/components/QueryTable/index.jsx
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* add modal layout with description, rework styles
* thirty percent
* test correctly
* avoid any changes in modal height
* typescriptify
* feat(viz): add categories to the viz picker (#15304)
* feat(viz): add categories to the viz picker
* fix test types
* add a catch-all category
* tweak layout
* upgrade superset-ui to get new metadata
* do i look like i know what a jpeg is
* fix tests
* lint
* remove script count test requirement
* fix e2e test
* feat(explore): Viz picker search improvements (#15399)
* upgrade superset-ui, install fuse.js
* add metadata to plugin context
* get search working
* layout improvements
* fix tests
* Update superset-frontend/src/explore/components/controls/VizTypeControl/index.tsx
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* use typography size instead of grid unit
* comments
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
* feat(explore): Examples image gallery in the viz type control (#15489)
* feat(explore): add section for example images in viz type control
* fix jpg webpack config
* formatting
* feat(Explore): Viz gallery component tweaks (#15520)
* separate viz gallery from the modal
* use gallery directly in add slice view
* more formatting on the add slice container
* restyle the thumbnail list
* explicit thumbnail width and height
* remove crappy hack
* remove useless line
* comment
* sort categories
* comments
* tweak search behavior
* fix tests
* open gallery to the currently selected viz type
* null safety
* show all plugins when searching empty string
* get the new metadatas
* adjust categories scrolling behavior
* add time series table metadata
* upgrade superset-ui
* attempt fixing tests
* upgrade descriptions
* fix unit test
* attempt fixing e2e again
* max width for viz gallery
* update package lock
* undo unnecessary webpack changes
* don't show search results until something is entered
* force modal to open to selected viz type
* tweaks to search behavior
* gallery layout tweaks
* enshrine pivot table v2 in a place of honor
* feat(viz): Clear viz gallery when navigating between categories (#15577)
* start viz gallery with null selection, clear when switching categories
* fix AddSliceContainer tests
* show a message when there is no viz type selected
* composition > inheritance
* clarify searching code
* comment
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>