* Add PlainButton
* refactor close icons
* reorder import
* refactor remaining anchors
* refactor: replace remaining <button> and TODOs
* refactor: changed applicable elements to type link
* fix: minor details
* bug: fix tooltip ternary
* refactor: improve interactivity and semantics of schema list item
* Added screen reader CSS
* Added description to external links
* Added spinner icon accessibility
* Added accessibility to exclamation and big message
* Added question and exclamation accessibility
* Hide decorative icons
* Standardized link design
* Added a11y to refresh icons
* Added aria-label to anchors and buttons
* Added a11y to conditional icons
* Added applicable labels to Ant Icons
* Changed escape to interpolation
* Replaced external links with opens in new tab
* Improved Tooltip hosts
* Added aria live to temporary elements
* Removed mistakenly added redundant helper
* Undoes unnecessarily added interpolation
* Replaced empty label with hidden
* Improved full icon label
* Improved display of live regions
* Added note
* remove unused class
* Created unique id
* Remove TODOs
* Proper action label
* Improved feedback for autocomplete toggle
* feature: add id hook
* refactor: use id hook
* standardize white space
* Add styles for focused ant menus
* Add disabled styles to clickable button
* Improved dashboard header syntax and added focus
* Improved CSS syntax
* Add interactive styles
* Improved anchor dependent styles
* Improved styles of widget (gray more/delete btns)
* Add interactive style for favorite star
* Improved style of delete btn
* Make table content fill all space
* Added focus and active styles
* Scoped query snippets list
* Fixed behavior for all major browsers
* Replaced button styles with plain button
* Scoped items list styles
* Added focus styles to ant table
* Add plain button (#5419)
* Minor syntax improvements
* Refactor of Link component (#5418)
* Fixed jsx-a11y problems
* Changed tabIndex to type number
* Initial improvements to DesktopNavbar accessibility
* Added accessibility to favorites list
* Improved accessibility in Desktop Navbar
* Improvements in Desktop navbar semantics
* Added aria roles to tags list
* Fixed tabindex type
* Improved aria labels in query control dropdown
* Added tab for help trigger close button
* Fixed typo
* Improved accessibility in query selector
* Changed resizable role to separator
* Added label to empty state close button
* Removed redundant and mistaken roles
* Used semantic components
* Removed tabIndex from anchor tags
* Removed mistakenly set menuitem role from anchors
* Removed tabIndex from Link components
* Removed improper hidden aria label from icon
* Reverted button and link roles in anchors for minimal merge conflicts
* Replaced alt attr with aria-label for icons
* Removed redundant menu role
* Improved accessibility of CodeBlock
* Removed improper role from schema browser
* Reverted favorites list to div
* Removed improper presentation role in query snippets
* Tracked changes for further PR
* Revert "Improved accessibility of CodeBlock"
* Add aria-labelledby to the associated code labels
This reverts commit 00a1685b1b.
* Wrapped close icon into button
* Introduce Link component
* Use Link component for external links as well
* Remove unused file (I hope it's really not needed)
* Use Link component in visualizations library
* Simplify Link component implementation
* CR1
* Trigger build
* CR2
* Set corejs version in .babelrc so Jest doesn't complain.
* Rewrite services/routes in TypeScript.
* Add TypeScript definitions for DialogComponent.
* Make image paths more portable
* Add current route context and hook.
* Make EmptyState more flexible by being able to pass in getSteps function.
* Rewrite ItemsList in TypeScript.
* Introduce the possibility to add custom sorters for a column.
* Rearrange props to be friendly to TypeScript.
* Type definitions for NotificationApi.
* Use Databricks query editor components for databricks_internal type of query runner.
* URL Escape password in Alembic configuration.
* Compare types in migrations.
* TASK Add typescript dependencies to package.json
* TASK Add typescript to build process and npm scripts and TASK Move example components to typescript and add an example definition file.
* TASK Move back to ts-loader instead of babel typescript preset
* FIX Remove unnecessary changes
* FIX Explicitly mention tsconfig file in webpack.config.js to avoid `error while parsing tsconfig.json, The 'files' list in config file 'tsconfig.json' is empty`
See (https://github.com/TypeStrong/ts-loader/issues/405#issuecomment-330108362)
* FIX Move tsconfig to client subdirectory to make it accessible in docker container (only webpack.config.js is copied over from root folder in Dockerfile)
* TASK Move from ts-loader to babel to reduce compatibility issues between ES6/7 and typescript compilation.
* TASK Add types for classnames, hoist-non-react-statics and lodash. Fix default export of DashboardList and run prettier on eslintrc
* Run npm install
* Trigger tests
* Run npm install 2
* Trigger tests
* Migrate router and <app-view> to React: skeleton
* Update layout on route change
* Start moving page routes from angular to react
* Move page routes to react except of public dashboard and visualization embed)
* Move public dashboard and visualization embed routes to React
* Replace $route/$routeParams usages
* Some cleanup
* Replace AngularJS $location service with implementation based on history library
* Minor fix to how ApplicationView handles route change
* Explicitly use global layout for each page instead of handling related stuff in ApplicationArea component
* Error handling
* Remove AngularJS and related dependencies
* Move Parameter factory method to a separate file
* Fix CSS (replace custom components with classes)
* Fix: keep other url parts when updating location partially; refine code
* Fix tests
* Make router work in multi-org mode (respect <base> tag)
* Optimzation: don't resolve route if path didn't change
* Fix search input in header; error handling improvement (handle more errors in pages; global error handler for unhandled errors; dialog dismiss 'unhandled rejection' errors)
* Fix page keys; fix navigateTo calls (third parameter not available)
* Use relative links
* Router: ignore location REPLACE events, resolve only on PUSH/POP
* Fix tests
* Remove unused jQuery reference
* Show error from backend when creating Destination
* Remove route.resolve where not necessary (used constant values)
* New Query page: keep state on saving, reload when creating another new query
* Use currentRoute.key instead of hard-coded keys for page components
* Tidy up Router
* Tidy up location service
* Fix tests
* Don't add parameters changes to browser's history
* Fix test (improved fix)
Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>
* Prettier all the JS files
* Add GitHub Action to autoformat code pushed to master
* Fix eslint violation due to formatting.
* Remove GitHub actions for styling
* Add restyled.io config
* add an bit
* prompt on homepage when user's email hasn't been verified
* set e-mail as verified for new setups and invited users
* 👋 copy & paste invite links, it's time for verified e-mails!
* default `is_invitation_pending` to false and actively set it to true
when inviting users, so that existing users won't show "Invitation
Pending"
* fix tests that broke due to default is_invitation_pending value
* treat admin's e-mail address as verified
* add verification endpoint
* send verification e-mail
* Update client/app/components/empty-state/empty-state.html
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/authentication/account.py
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/handlers/authentication.py
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/templates/emails/verify.html
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/authentication/account.py
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/templates/verify.html
Co-Authored-By: rauchy <omer@rauchy.net>
* Update redash/templates/emails/verify.txt
Co-Authored-By: rauchy <omer@rauchy.net>
* add link in case redirects are disabled
* POSTing to /email_verification makes more sense than GETting /send_verification
* avoid sending invitations when no_invite is passed along
* Update client/app/pages/users/new.html
Co-Authored-By: rauchy <omer@rauchy.net>
* move e-mail verification prompt to home-page
* get rid of redundant $scope
* return JSON
* flip is_email_verified's default value so that existing users do not
show as not-verified
* e-mail verification propmt isn't dangerous, it just wants to warn you