Compare commits

...

2248 Commits

Author SHA1 Message Date
Arik Fraimovich
4a978bada3 Fix: triggers not created for queries.search_vector (#3634) 2019-03-24 15:58:44 +02:00
Arik Fraimovich
ff0967f0d8 Update v7 CHANGELOG and version (#3595) 2019-03-17 22:05:55 +02:00
Ran Byron
e5d082b9b3 Textbox testing - add, remove, edit (#3589) 2019-03-17 18:26:01 +02:00
Arik Fraimovich
93aa6b5b80 Fix: accept integer values in dropdowns. (#3596) 2019-03-17 15:56:23 +02:00
Gabriel Dutra
1f74c0bad5 [Bug fix] Update user list when an user is created (#3594) 2019-03-15 20:56:10 +02:00
Feng
a8cb70910e [Codebase improvement] Reuse handlers base require_fields (#3577) 2019-03-15 13:21:48 +02:00
Bernhard Mäser
852636f07c update to latest stable version (#3588) 2019-03-14 18:13:18 +02:00
Arik Fraimovich
cf5c2c5ba2 Revert "Add SAML scheme override env var (#2947)" (#3587)
This reverts commit 4768fd081e.
2019-03-14 13:54:14 +02:00
Levko Kravets
10f4b99cd3 Widget title link not updated when parameter value changes (#3586) 2019-03-14 11:20:28 +02:00
Jannis Leidel
8456bbf762 Revert "Schema Viewer Drawer (#3291)" (#3585)
This reverts commit cb4d81d6ad.
2019-03-14 10:51:30 +02:00
Ran Byron
ab39242cc4 Cypress test - dashboard create/archive (#3565) 2019-03-14 08:08:56 +02:00
Ran Byron
b799ab6f0b Added alt+enter key binding (#3479) 2019-03-14 08:06:39 +02:00
Marina Samuel
cb4d81d6ad Schema Viewer Drawer (#3291)
* Process extra column metadata for a few sql-based data sources.

* Add Table and Column metadata tables.

* Periodically update table and column schema tables in a celery task.

* Fetching schema returns data from table and column metadata tables.

* Add tests for backend changes.

* Front-end shows extra table metadata and uses new schema response.

* Delete datasource schema data when deleting a data source.

* Process and store data source schema when a data source is first created or after a migration.

* Tables should have a unique name per datasource.

* Addressing review comments.

* Update migration file for mixins.

* Appease PEP8

* Upgrade migration file for rebase.

* Cascade delete.

* Adding org_id

* Remove redundant column and table prefixes.

* Non-existing tables and columns should be filtered out on the server side not client side.

* Fetching table samples should be optional and should happen in a separate task per table.

* Allow users to force a schema refresh.

* Use updated_at to help prune old schema metadata periodically.

* Using settings.SCHEMAS_REFRESH_QUEUE
2019-03-13 18:08:00 +01:00
Ran Byron
adf935b1df Fix for parameter mapping bug #3581 (#3582)
* Fix for parameter mapping bug #3581

* Must run original snapshot with original dashboard params
2019-03-13 16:41:03 +02:00
Arik Fraimovich
f1cb0101b9 👋 goodbye, similar-code false positives. (#3578) 2019-03-13 11:04:02 +01:00
Leo Palmer Sunmo
4768fd081e Add SAML scheme override env var (#2947)
* Add SAML scheme override env var

* Make it pretty, please the linter
2019-03-13 11:39:02 +02:00
Levko Kravets
4a8d9a7fb0 Fork query does not fork tables but instead adds default table (#3580)
* getredash/redash#3572 Fork query does not fork tables but instead adds default table

* Fix code style

* CR1
2019-03-13 11:29:54 +02:00
Arik Fraimovich
ba62b46a45 Append "UTC" to timestamp on embeds (in print view) (#3574)
To communicate what timezone the timestamp is.
2019-03-13 08:26:12 +02:00
Levko Kravets
fbf4dae001 Fix webpack config to work with symlinks (#3573) 2019-03-12 21:24:21 +02:00
Omer Lachish
5943bf04d5 change the order of configuration of the Elasticsearch data source to (#3571)
make sense
2019-03-12 09:42:17 +02:00
Ran Byron
93ec19b93f Prevent blank edit-in-place value (#3557) 2019-03-11 23:24:38 +02:00
Omer Lachish
63d3f22c93 Convert all dropdown values to strings to support parameter lookup (#3563)
* convert all dropdown values to strings to support parameter lookup.
solves #3562

* unicode all the way down

* show correct default values in QueryBasedParameterInput by converting
them to strings
2019-03-11 17:54:56 +02:00
Gabriel Dutra
685c7713e4 Update Amazon Elasticsearch Service image (#3567) 2019-03-11 06:43:03 +02:00
Levko Kravets
4cfa26a55e [Bug fix] Handle errors on Group members, Group datasources and User profile pages (#3564) 2019-03-10 19:34:54 +02:00
Ran Byron
5dc74e1ef7 npm audit fixes (#3561) 2019-03-10 13:35:27 +02:00
Arik Fraimovich
b703f7a3c4 Create weekly-digest.yml 2019-03-10 11:39:13 +02:00
Arik Fraimovich
26f0ce0749 New Celery/Queries Execution Status API (#3057)
* Remove QueryTaskTracker

* Remove scheudling of cleanup_tasks

* Add Celery introspection tools

* First iteration of updating the admin API.

* Show more details

* Add option to skip building npm in Dockerfile

* Show started_at

* update the refresh schedule, as it's too fast

* Update Celery monitor to report on all active tasks.

* Update task parsing for new format

* WIP: improved celery status screen

* Fix property name.

* Update counters

* Update tab name

* Update counters names

* Move component to its own file and fix lint issues

* Add migratin to remove Redis keys

* Improve columns layout

* Remove skip_npm_build arg as it's not used anymore.

* Convert query from SQL to Python

* Simplify column definition.

* Show alert on error.
2019-03-10 11:19:31 +02:00
Levko Kravets
12d2a04946 Download Query Result links: use query name for downloaded filename (#3559)
* getredash/redash#3554 Download Query Result links: use query name for downloaded filename

* CR1
2019-03-10 10:32:08 +02:00
koooge
5501f3e61c Upgrade jest & babel (#3405) 2019-03-10 09:29:44 +02:00
Arik Fraimovich
61f143dfd3 Snowflake: add support for regions and enable by default (#3550)
* Bring back Snowflake from its exile.

* Snowflake: add support for regions.
2019-03-07 23:40:24 +02:00
Arik Fraimovich
8737e8032e Add: Docker entrypoint to do Celery healthchecks. (#3548) 2019-03-07 22:32:27 +02:00
Arik Fraimovich
dfa48caf63 Fix: order dashboard favorites (#3552)
## What type of PR is this? (check all applicable)

- [x] Refactor
- [x] Bug Fix

## Description

Move favorites list handlers to their relevant modules (`redash.handlers.queries` and `redash.handlers.dashboards`) and applied `order_results` to dashboards.
2019-03-07 15:30:11 +01:00
Arik Fraimovich
e4c933af55 Update PULL_REQUEST_TEMPLATE.md (#3549) 2019-03-07 14:35:27 +02:00
Levko Kravets
be1bd2863f [Bug fix] Wrong behavior when clicking table rows on list pages (#3540) 2019-03-07 13:59:39 +02:00
Ran Byron
507ea61151 Fix long tag labels breaking table layout (#3545) 2019-03-07 11:53:28 +02:00
Arik Fraimovich
4f79c86c0e Pin pymapd version to 0.7.1 (#3543)
Newer versions dropped support for Python 2. Closes #3542.
2019-03-07 09:02:40 +02:00
Ran Byron
160c3c1048 Param fix (#3528)
* Name help text for date range only

* Autofocus on name input

* Form acts on enter key

* Fixed range check

* Fixed startsWith
2019-03-06 10:31:33 +02:00
Jannis Leidel
8eb751f0c3 Remove docker-compose.production.yml in favor of setup/docker-compose.yml. (#3533)
Fix #3251.
2019-03-06 08:49:35 +02:00
Paul Graff
75bc469708 Remove duplicate column information for late-binding views (#3537)
Since the svv_columns system view supports them now https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_COLUMNS.html
2019-03-06 08:41:48 +02:00
Jannis Leidel
21082fbe0e Make the "celery" queue the default instead of "schema" to stay backward-compatible. (#3534)
Fix #3325.
2019-03-06 08:37:54 +02:00
Jannis Leidel
4e7d16b642 Remove Flask-Admin. (#3532) 2019-03-06 08:36:46 +02:00
pieter-venter
b68051d3c5 Add Hangouts Chat as alert destination (#3525)
* Add support for Google Hangouts Chat as alert destination

* Remove redundant imports

* Remove code used for debugging

* Fix pep8 warnings

* Update redash/destinations/hangoutschat.py

Add friendly name by separating type and description

Co-Authored-By: pieter-venter <pieterventer@geotab.com>

* Fix pep8 warnings. Rename image to match desitnation type.

* Show message for unknown alert state in default color
2019-03-05 22:06:25 +02:00
Levko Kravets
bc22797009 [Refactor] Refine New user modal (#3529) 2019-03-05 14:17:59 +02:00
Ran Byron
7a4fe5055d Added UTC display to scheduler dialog (#3517) 2019-03-05 11:54:33 +02:00
Gabriel Dutra
6a75ac4a57 Migrate User Pages to React (#3506)
* Create React version for the EmailSettingsWarning

* Migrate the Create User Page

* Migrate UserProfile to React

* Add /users/me to the routes (Percy ftw)

* Fix UserShow test spec

* Remove Error Messages component

* Show invitation link if email server not setup (#3519)

* return invite link to client if e-mail server is not set up

* add a couple of tests to make sure invite links are only returned when neccessary

* show invite link when e-mail is not configured

* remove "an e-mail has been sent" when there's no e-mail configured

* return invite_url in re-invites as well. Also refactor to reuse the code.

* Use CreateUserDialog instead of Page

* Render invite link on Resend Invitation click

* Add email validation to DynamicForm

* Fix EmailWarning position + update user list with user creation success

* Fix console error on UserProfile

* Redirect from /users/new  + rename createUser -> showCreateUserDialog

* Use alert instead of toastr for user creation errors

* Remove logic from CreateUserDialog

* CR

* Use Promise.reject instead of throw to avoid console error
2019-03-04 18:26:51 -03:00
Ran Byron
34da15fd6a Migrated AddTextboxDialog to AntD (#3524) 2019-03-04 21:51:48 +02:00
Ran Byron
dd0fab7275 Moved widget and dashboard save logic out of dialog (#3522) 2019-03-04 16:31:31 +02:00
Gabriel Dutra
ade3cc72a7 Fix eslint error on AlertsList (#3518) 2019-03-03 00:28:17 +02:00
Omer Lachish
02e82a7658 Fix verification_email endpoint when in MULTI_ORG mode (#3502)
* append slug to /verification_email endpoint when in MULTI_ORG mode

* Revert "append slug to /verification_email endpoint when in MULTI_ORG mode"

This reverts commit 817fb034c4.

* fix for /email_verification in MULTI_ORG setups
2019-03-02 14:12:41 +02:00
Ran Byron
6e3b9c2977 Fixed navbar responsiveness (#3510)
* Fixed navbar responsiveness

* Adjustments so that logo should never hide
2019-02-28 16:53:42 +02:00
Ran Byron
34e03b01bb Migrated query edit/add param dialog to React/AntD/Hooks (#3488) 2019-02-28 16:31:34 +02:00
Ran Byron
dab35acd2c QuerySelector in Alert page (#3501) 2019-02-28 15:56:12 +02:00
Arik Fraimovich
a93741e64b CircleCI build improvements (#3511)
* Make sure master builds tarball/docker image only when backend and frontend tests pass.

* Build a redash/preview image alongside redash/redash image.

* Fix version variable
2019-02-28 15:23:47 +02:00
Ran Byron
549f878c98 Added <QuerySelector /> component (#3494)
* Updated npm to support react hooks

* Added <QuerySelector />

* Changed selectQuery to also clear, completed 2->3 dots in msg, avoiding setSearching on stale rejection.

* Removed unused highlight lib
2019-02-28 15:07:57 +02:00
Gabriel Dutra
194f45263b [Feature] Migrate Alerts List Page to React (#3505) 2019-02-28 12:33:03 +02:00
G. Tsirkas
83668a6840 LDAP Authentication. Create two envars REDASH_LDAP_USE_SSL and REDASH_LDAP_AUTH_BIND (#2776)
* Add two new envars. REDASH_LDAP_USE_SSL which determines if the connection will use ssl and LDAP_AUTH_BIND which determines if the binding is SIMPLE or ANONYMOUS

* Add use_ssl paremeter

* Rename LDAP_AUTH_BIND to LDAP_AUTH_METHOD and modify LDAP_SSL using parse_boolean

* Fix typo

* import ANONYMOUS constant from ldap3

* Add NTLM authentication

* Add comment to authentication method envar
2019-02-28 10:05:41 +02:00
Toshimitsu Takahashi
c9a4f07a7a Support AWS IAM profile for Amazon Elasticsearch (#3005) 2019-02-28 09:57:33 +02:00
Omer Lachish
e9c88ea176 Verify address when users change their e-mail (#3504)
* re-verify e-mail address on change

* send verification e-mail to the new address
2019-02-27 12:17:20 +02:00
ialeinikov
fbaded4548 adding gevent worker in requirements.txt, adding some gunicorn config… (#3333)
* adding gevent worker in requirements.txt, adding some gunicorn configurable parameters with defaults

* reverting the change as it's going to be set via env variable(s)
2019-02-27 11:15:31 +02:00
Omer Lachish
570e8d9f23 set invitation as not-pending in render_token_login_page only when (#3500)
handling invites (as opposed to password reset links)
2019-02-27 09:06:41 +02:00
Omer Lachish
0d76c036cb Be more permissive when parameters are safe (#3383)
* use the textless endpoint (/api/queries/:id/results) for pristine
queriest

* reverse conditional. not not is making me the headaches.

* add ParameterizedQuery#is_safe with an inital naive implementation which
treats any query with a text parameter as not safe. This will be
remedied later when DB drivers will handle these parameters.

* allow getting new query results even if user has only view permissions
to the data source (given that the query is safe)

* fix lint error - getDerivedStateFromProps should be placed after state

* Revert "use the textless endpoint (/api/queries/:id/results) for pristine"

This reverts commit cd2cee7738.

* move execution preparation to a different function, which will be soon
reused

* go to textless /api/queries/:id/results by default

* let the query view decide if text or textless endpoint is needed

* allow safe queries to be executed in the UI even if the user has no
permission to execute and create new query results

* change `run_query`'s signature to accept a ParameterizedQuery instead of
constructing it inside

* use dict#get instead of a None guard

* use ParameterizedQuery in queries handler as well

* test that /queries/:id/results allows execution of safe queries even if
user has view_only permissions

* lint

* raise HTTP 400 when receiving invalid parameter values. Fixes #3394

* remove unused methods

* avoid cyclic imports by importing only when needed

* verify that a ParameterizedQuery without any parameters is considered
safe

* introduce query.parameter_schema

* encapsulate ParameterizedQuery creation inside Query
2019-02-26 20:55:01 +02:00
Gabriel Dutra
138c55cf54 Fix DynamicForm ignoring default value for checkboxes (#3487) 2019-02-26 15:10:14 +02:00
Gabriel Dutra
60cd8812a9 Update Percy token (#3492) 2019-02-25 21:22:46 +02:00
Arik Fraimovich
5c5bfbdbbe Make sure Flask app created in Celery's worker process (#3465)
* Make sure Flask app created in worker process

* Add reference to GitHub issue
2019-02-25 19:11:03 +02:00
Sergei Beregov
75c34bf18d Add custom JSON encoder for PostgreSQL (#3442)
To handle columns with [range types][1] and display them as a
string custom JSON encoder for PostgreSQL was added.

Merging this PR will fix issue #1764

[1]:https://www.postgresql.org/docs/9.3/rangetypes.html
2019-02-25 17:52:45 +02:00
Arik Fraimovich
b56cc1cd16 Pin SQLAlchemy-Utils version (#3490)
Pin the version of SQLAlchemy-Utils following the discussion in #2970.
2019-02-25 11:22:48 +01:00
Wei
1a357df9b3 Fix prometheus query runner: get_schema and query range (#3471) 2019-02-25 11:40:35 +02:00
Yoshiken
d36e5acaea Fix update logo (#3489) 2019-02-25 10:12:02 +02:00
Arik Fraimovich
f4f34d02fb Create PULL_REQUEST_TEMPLATE.md (#3485) 2019-02-25 10:11:21 +02:00
Allen Short
3fdd3080c1 Use series name as pie chart label (#3484)
It was unconditionally using the column name; this uses the series name instead
if specified in the chart editor.
2019-02-25 10:10:27 +02:00
taminif
5d525b80b6 fix broken link in CONTRIBUTING.md (#3483) 2019-02-22 14:28:13 -03:00
Levko Kravets
5e5b0d69d8 [Feature, Tech debt] Improve list pages layout (#3482) 2019-02-22 17:26:29 +02:00
Levko Kravets
33b8bd27eb [Feature] Migrate Group List and Details pages to React (#3411) 2019-02-22 14:47:48 +02:00
Subhi Al Hasan
8679b8756e Cleaner approach for _is_collection_a_view (#3113)
* Fix collection fields retreival bug when Views are present in MongoDB

* fixing _is_collection_a_view function

* Update redash/query_runner/mongodb.py

Co-Authored-By: jodevsa <jodevsa@gmail.com>

* using options() instead of try/except on collstats  to detect if a collection  is a view
2019-02-21 23:39:36 +02:00
Omer Lachish
2a37cb31d9 Fix max-age issues on textless endpoint (#3477)
* max_age should default to -1

* pass maxAge along to `execute`
2019-02-21 16:02:06 +02:00
Ran Byron
4ad303b358 Fix some flex layout issue (#3476) 2019-02-21 14:21:54 +02:00
MURAOKA Taro
8fe1d33068 monitor "schemas" queue to run refresh_schema (#3459)
* monitor "schemas" queue to run refresh_schema

`refresh_schema` tasks won't run because "schemas" queue isn't consumed
with default settings.
and it cause leaking redis storage, a "schemas" list is growing with time.

this PR fix it, adds "schemas" queue to monitor by celery.

* use scheduled_worker for "schemas" queue

instead of "adhoc_worker"
2019-02-21 12:06:25 +02:00
Arik Fraimovich
4999ab5de7 Provide default value for .pop to avoid KeyError exception (#3474) 2019-02-21 11:17:07 +02:00
Ran Byron
8b19f16430 Help trigger dynamic component (#3472) 2019-02-20 17:55:35 +02:00
Omer Lachish
a17eb14cdf support e-mail verification for multi org setups (#3468) 2019-02-20 13:45:09 +02:00
Omer Lachish
1ad0fa6a9b avoid Flask debug error message about strict slashes (#3469) 2019-02-20 13:19:06 +02:00
Arik Fraimovich
77dcc80522 Fix: ParameterizedQuery: support for upper cases column names. (#3461)
* Fix: ParameterizedQuery: support for upper cases column names.

* Fix test name
2019-02-20 12:08:38 +02:00
Arik Fraimovich
fe10b06928 Fix: JS Map needs a set call rather than assignment (#3464) 2019-02-20 12:07:46 +02:00
Arik Fraimovich
e35f2b8f51 Fix: when max_age is None the handler fails (#3462) 2019-02-19 20:47:29 +02:00
Omer Lachish
0bca2d8920 when working with a schema, fail in the case that there are parameters (#3452)
which are not part of the schema
2019-02-19 20:46:30 +02:00
Arik Fraimovich
f421119f9d Remove options NullPool does not support (#3460) 2019-02-19 16:04:00 +02:00
Arik Fraimovich
ebef0efe06 Fix: timedelta values were not JSON serialized properly (#3463)
.
2019-02-19 14:27:37 +01:00
Ran Byron
8fc2ecf55c [Bug fix] Widget oblivious to updated parameter values (#3445) 2019-02-18 22:55:46 +02:00
Ran Byron
3147a0bd98 Version data - footer -> header menu (#3458) 2019-02-18 22:15:51 +02:00
Gabriel Dutra
2c705712fc Fixes to Percy (#3440)
* Add check for repository url

* Use CIRCLE_REPOSITORY_URL directly

* Change percy waiting to be with resources instead of time

* Add data sources types resource to Edit Data Source + eslint fixes

* Separate Page Screenshots in different spec files
2019-02-18 16:30:48 -03:00
Levko Kravets
d483785098 [Codebase improvement] Refine ItemsList base component (previously LiveItemsList) (#3415) 2019-02-18 20:48:26 +02:00
Ran Byron
298fe6a779 HelpTrigger in header (#3457)
* Moved component from services->components

* Added help trigger to header

* Reverted tooltip-anchor swap

* Moved trigger location in html (to mirror saas)

* Removed white space

* Changed tooltip text to “Help”
2019-02-18 19:52:10 +02:00
Arik Fraimovich
f07e613631 Fix: ScheduleDialog won't render for "30 days" interval with no time value (#3447) 2019-02-17 15:12:07 +02:00
Arik Fraimovich
60472e2fe0 Add support for Amazon ES service with IAM authentication (#3446)
* Add support for Amazon ES service with IAM authentication

* Add required dependency.
2019-02-17 15:11:40 +02:00
Ran Byron
81c950407d HelpTrigger to open in drawer (#3436)
* HelpTrigger to open in drawer

* Fixed “typo”

* Simplified version - removed postMessage

* Changed some wording
2019-02-17 15:11:16 +02:00
Arik Fraimovich
a34269cc7d Change: encrypt data source options. 🔓 (#2970)
* Change: encrypt data source options
* Implement migration
2019-02-17 13:54:19 +02:00
Omer Lachish
a8f74a1078 remove the word "type" from error message, as enum out-of-range errors (#3449)
have nothing to do with types.
2019-02-17 13:42:44 +02:00
Arik Fraimovich
58a53e3470 Fix: remove widgets when deleting a visualization. (#3423)
Closes #3257.
2019-02-17 10:30:23 +02:00
Ran Byron
fba2a35cef [Feature] Sharing disabled if dashboard has query params (#3439) 2019-02-16 17:06:09 +02:00
Gabriel Dutra
b9644b7456 React version of UserEdit (#3354)
* Update DynamicForm export

* Move UserShow to users folder

* Migrate User profile header and create DynamicForm for basic data

* Update UserShow to use UserProfile prop

* Add API Key input

* Add handler to regenerate API Key button

* Handle user profile save

* Add readOnly prop to DynamicForm and begin disabled user behavior

* Add Change Password Modal

* Remove action buttons for disabled users

* Add send password reset behavior

* Add minLength and password comparison to Password Modal

* Resend Invitation button

* Add Convert User Info

* Fix UserShow test

* Some code updates

* Add enable/disable user button

* Add UserPolicy as an idea

* Remove UserPolicy

* Create Edit Profile spec

* Move User profile screenshot to Edit Profile Spec

* Add tests for saving user and changing password errors

* CC is back :) - Fix trailing spaces

* Add test for succesful password update

* A few improvements from code review

* Remove Toggle User button when seeing your own profile

* Create InputWithCopy

* Fix possible errors when network is off and improve Email not sent alert

* Add default response object for $http possible errors

* Changes in UserEdit
- removed onClick from methods name
- regenerate API Key now uses InputWithCopy
- Password title added

* Update UserEdit render behavior and styling
- Password title changed to h5
- change rendering rules for actions
- Password modal is now closed when password is changed
- change DynamicForm readOnly to the fields and add hideSubmitButton

* Create ChangePasswordDialog and update UserEdit

* Fix possible console error

* Remove password match assertion from spec

* Fix typo
2019-02-14 14:08:30 -02:00
swfz
afaedb9062 [Feature] Table visualization: Raise the upper limit of MAX_JSON_SIZE (#3310)
* move constant value to clientConfig
* change name maxJsonSize to tableCellMaxJSONSize
* value from environment. default is 50000
2019-02-13 11:42:40 +02:00
Ran Byron
f2df7170d2 HelpTrigger (#3431)
* Moved to HelpTrigger

* Moved share dialog “Learn more” to HelpTrigger
2019-02-13 10:38:25 +02:00
Arik Fraimovich
d6827e3601 Version update time (#3429)
* Version update time 

* Need more 
2019-02-13 09:51:07 +02:00
Omer Lachish
c028e49bfd send ip and user id to sentry (#3430) 2019-02-13 09:41:41 +02:00
Ran Byron
9b1f277530 [Widget Params] Updated help url and tooltip (#3428) 2019-02-13 09:00:48 +02:00
Ran Byron
901f28a79f Pre-commit hook to run on modified files only (#3410)
* Pre-commit hook to run on  modified files only

* Removed git add, fixed script dup

* Removed pre-push, testing related files only in pre-commit
2019-02-13 08:21:42 +02:00
Levko Kravets
3fed697c37 [Bug fix] Query Parameters: don't save urlPrefix (#3427) 2019-02-12 21:10:53 +02:00
Levko Kravets
d567765a3c [Bug fix] Notifications randomly shown with visible page or not shown with inactive page (#3426) 2019-02-12 20:07:36 +02:00
Ran Byron
4dbc17572a Converted Share modal to Ant (#3424) 2019-02-12 16:11:08 +02:00
Omer Lachish
330c5a85f1 Enable remote debugging with ptvsd (#3419)
* open port 3000 for remote debugging

* add ptvsd

* use port 5678 to avoid changes in VSCode's default config

* attach to ptvsd

* no need to wait for attach

* actually, --debugger seems to be working

* create a new docker entry point for remote debugging

* alternative method to switch to debugging
2019-02-12 09:10:18 +02:00
Levko Kravets
2c1400d323 [Feature] Alternative implementation of dashboard param title editing (#3417) 2019-02-11 17:17:05 +02:00
Arik Fraimovich
cb22764d68 Bug fix] Saving a new query removes reference to last query result (#3421)
* Correctly test if the current query result is for the current query.
* Serialize a new query with its visualizations.
2019-02-11 14:13:01 +02:00
Arik Fraimovich
eee77a1c9b [Bug fix] Show query result footer only when there is a query result. (#3422) 2019-02-11 13:46:18 +02:00
Omer Lachish
71fb1442f1 Upgrade Sentry SDK (#3418)
* replace raven with sentry-sdk

* use sentry-sdk in celery

* use sentry-sdk with flask

* unify Flask and Celery initializations for Sentry

* extract sentry stuff to own module

* it's time for Sentry 0.7.2
2019-02-10 21:56:16 +02:00
Jannis Leidel
23908edc28 Handle InterruptException in Athena query runnner like in the Presto query runner. (#3403) 2019-02-10 13:41:16 +02:00
Ran Byron
df4ca86d35 Added short modal specific styling (#3366) 2019-02-10 13:39:55 +02:00
Omer Lachish
03f040da0e Unify query based dropdown population (#3337)
* stop testing `collect_query_parameters`, it's an implementation detail

* add tests for `missing_query_params`

* rename SQLQuery -> ParameterizedSqlQuery

* rename sql_query.py to parameterized_query.py

* split to parameterized queries and parameterized SQL queries, where
parameterized queries only do templating and parameterized SQL queries
add tree validation on top of it

* move missing parameter detection to ParameterizedQuery

* get rid of some old code

* fix tests

* set syntax to `custom`

* revert the max-age-related refactoring

* 👋 tree validations 😢

* BaseQueryRunner is no longer a factory for ParameterizedQuery, for now

* add an endpoint for running a query by its id and (optional) parameters
without having to provide the query text

* adds parameter schema to ParameterizedQuery

* adds parameter schema validation (currently for strings)

* validate number parameters

* validate date parameters

* validate parameters on POST /api/queries/<id>/results

* validate enum parameters

* validate date range parameters

* validate query-based dropdowns by preprocessing them at the handler
level and converting them to a populated enum

* change _is_date_range to be a tad more succinct

* a single assignment with a `map` is sufficiently explanatory

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/handlers/query_results.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* build error message inside the error

* support all types of numbers as number parameters

* check for permissions when populating query-based dropdowns

* check for access to query before running it

* check for empty rows when populating query-based enums

* don't bother loading query results if user doesn't have access

* 💥 on unexpected parameter types

* parameter schema default is a list, not a dictionary

* fix a totally unrelated typo

* remove redundant null guards

* introduce /dropdown.json endpoint with dummy data

* wire frontend to /dropdown.json

* always return name/value combos from /dropdown.json

* load actual data into /dropdown.json

* pluck correct values for `name` and `value`

* reuse dropdwon plucking logic in QueryResultResource

* simplify _get_dropdown_values

* when doing parameter validation, we only care about the value and not
the display name

* rename dropdown to dropdownOptions

* move dropdown_values to utils/parameterized_query.py

* stop converting queries to enums and encapsulate the work inside
ParameterizedQuery (almost - /dropdown.json would still access the
dropdown_values method)

* re-order arguments by importance

* test query parameter validation

* tests for dropdown_values logic

* remove `.json` suffix to the dropdown endpoint

* allow `BaseResource` to handle JSON stuff

* move _pluck_name_and_value outside its containing method

* case-insensitive lookup when plucking name and value

* separate concerns and simplify test isolation for `dropdown_values`

* pick the default column according to the order specified in the query
result columns attribute

* use `current_org` instead of passing `org`

* test that user has access to the query when calling the /dropdown
endpoint
2019-02-10 13:10:39 +02:00
Levko Kravets
e21bbcc6fe [UI/UX Improvement] Use Ant's Button component on users list page (#3416) 2019-02-08 17:48:48 +02:00
Levko Kravets
23f5dde488 [Codebase Improvement] Refine dialog wrapper and use it for all existing dialogs (#3407) 2019-02-08 10:00:22 +02:00
Ran Byron
29326f3610 [Widget Params] Title edit fixes (#3413) 2019-02-08 08:45:46 +02:00
Ran Byron
593ebde211 Fix: “Add TextBox” dialog not opening (#3414) 2019-02-08 01:01:50 +02:00
Levko Kravets
11507c5e5e Show active and pending users separately (for admins) (#3400) 2019-02-07 20:30:55 +02:00
Jannis Leidel
c49dccf254 Work around a resizing issue. (#3412)
* Work around a resizing issue.

Fix #3353.

* Add comment to remove this when we delete Angular.

Co-Authored-By: jezdez <jannis@leidel.info>
2019-02-07 16:05:39 +02:00
Marina Samuel
029bee18fb Coerce to moment when 'datetime' selected by user. (#3150) 2019-02-07 14:42:30 +01:00
Levko Kravets
ec475e4b7b [Bug fix] Few small bugs on Queries list page (#3402)
* Link to query page
* Sidebar menu item title: `Archive` -> `Archived`
* Whitespaces in empty state block
2019-02-06 00:19:31 +02:00
Levko Kravets
045c171bb4 Refactor TagsControl; fix TagsEditorModal animation (#3399)
* Refactor TagsControl; fix TagsEditorModal animation

* Update tooltip text

Co-Authored-By: kravets-levko <levko.ne@gmail.com>

* Update tooltip text

Co-Authored-By: kravets-levko <levko.ne@gmail.com>

* CR1
2019-02-05 23:29:09 +02:00
Arik Fraimovich
21341132f6 Fix: cohorts get stuck when passing strings instead of numbers. (#3397)
* Fix: cohorts get stuck when passing strings instead of numbers.

Parse the value to get a number.

* Use parseInt for stage

* Remove redundant parseInt
2019-02-05 21:20:17 +02:00
Levko Kravets
ac68fe1a6d Migrate Dashboards/Queries/Users list pages to React (#3381)
* Refine existing implementation of dashboards/queries/users lists and a common base controller

* Migrate common list page controller to React and refactor it's logic

* Migrate Dashboard list page to React

* Migrate Queries list page to React

* Migrate Users list page to React

* Remove react-timeago dependency

* Use composition instead of inheritance

* Refine implementation

* Merge sidebar into single component

* Refine column definitions

* Use simple controller instead of React context

* Refine implementation

* Restore changes from getredash/redash#2888

* Tweak Users list page

* Ability to render dynamically defined components

* Tweak users list page

* User list page for non-admins

* Fix: ItemsTable ignores isAvailable field

* Refine implementation

* Refine implementation

* Implement LiveItemsList as higher order component

* Some fixes

* Move some definitions to a better place

* Some fixes

* Refine components

* Refine UsersList page

* More comments for a god of comments

* Fix wrong tables size on smaller screens

* Tweak tables
2019-02-05 21:13:32 +02:00
Arik Fraimovich
13855934f9 Add YAML support in QueryEditor (#3395) 2019-02-05 20:37:54 +02:00
Ran Byron
5b62883c1c [Widget Params] Switched parameter list to table style (all parts) (#3332)
* [Widget Params] Split title and mapping editing

* [Widget Params] Restyled source editing

* [Widget Params] Switched parameter list to table style

* Displaying different labels and help phrases when changing type
Added link to knowledge base
Fixed issue with existing param default select value
2019-02-05 20:36:15 +02:00
Ran Byron
c9681d55bf Added pre-push hook (#3390) 2019-02-05 16:16:49 +02:00
Arik Fraimovich
7cfea8a6a0 Fix: only login user when it's the current user. (#3396)
Otherwise it would login the admin as the user...
2019-02-05 15:53:51 +02:00
Ran Byron
2011864fdb Fix: Selected item in dropdown unreadable (#3398) 2019-02-05 15:50:31 +02:00
Omer Lachish
8f0cffe424 Use textless endpoint for pristine queries (#3367)
* use the textless endpoint (/api/queries/:id/results) for pristine
queriest

* Revert "use the textless endpoint (/api/queries/:id/results) for pristine"

This reverts commit cd2cee7738.

* move execution preparation to a different function, which will be soon
reused

* go to textless /api/queries/:id/results by default

* let the query view decide if text or textless endpoint is needed

* lint
2019-02-05 12:08:12 +02:00
Ran Byron
3df372434f [Widget Params] Migrated edit params + new widget dialog to Ant Modal (#3387) 2019-02-04 21:00:59 +02:00
Arik Fraimovich
933dd753a8 Make the logic around schedule['until'] easier to read (#3376) 2019-02-03 21:13:27 +02:00
koooge
3992bcda9b Ignore to copy some files onto docker container (#3388)
* Ignore to copy some files onto docker container

Signed-off-by: koooge <koooooge@gmail.com>

* Dockerignore venv/

Signed-off-by: koooge <koooooge@gmail.com>
2019-02-03 20:30:08 +02:00
Jannis Leidel
69e34f048a Add archived queries section to queries list. (#2888)
* Add archived queries section to queries list.

* Refactor route building for list based controllers.

This also fixes the dashboard empty state page.
2019-02-03 14:35:25 +02:00
Omer Lachish
b0a11983fa fix lint error - getDerivedStateFromProps should be placed after state (#3391) 2019-02-03 11:13:04 +02:00
Levko Kravets
807e6aaaa6 Migrate "time ago" components to React (#3385)
* Replace <am-time-ago> (angular-moment) and <rd-timer> with React component

* PropTypes: Moment validation

* Increase polling interval

* Refine component implementation

* Add tooltip with formatted date/time

* Refine component implementation
2019-02-02 18:46:48 +02:00
Levko Kravets
324a1f55cc Merge pull request #3384 from getredash/step-component
EmptyState alternative implementation with a Step component
2019-02-02 18:29:21 +02:00
Levko Kravets
abccff03f7 Fix Add datasource step; EmptyState.icon is optional 2019-02-02 18:12:27 +02:00
Levko Kravets
aa619c453f Merge branch 'master' into step-component 2019-02-02 17:56:11 +02:00
Levko Kravets
10b5c03248 Merge pull request #3389 from getredash/cypress
Fix Cypress E2E failing in CI
2019-02-02 17:14:21 +02:00
Gabriel Dutra
fde52f5d84 Fix Cypress E2E failing in CI 2019-02-02 12:44:33 -02:00
Arik Fraimovich
78df7e7cc9 Last refinements:
* Update Step implementation to be easier to read.
* Set some props to required to remove default value.
2019-02-01 10:16:17 +02:00
Levko Kravets
e314715335 Refine implementation, fix 'shouldShow' condition, fix eslint warnings 2019-02-01 08:37:09 +02:00
Arik Fraimovich
a1cf065ec6 No need to export Step 2019-02-01 00:04:03 +02:00
Arik Fraimovich
f9570556c5 Bring back data sources step for non admins 2019-02-01 00:00:19 +02:00
Arik Fraimovich
9859610e80 Alternative implementation: Step component 2019-01-31 23:55:40 +02:00
Marina Samuel
feab2a040b BigQuery should correctly handle tmp tables that do not have a schema field. (#3382) 2019-01-31 23:20:13 +02:00
Marina Samuel
35c390a2f9 Show disabled unpublished queries for alert and dashboard modals. (#3347) 2019-01-31 19:58:47 +02:00
Ran Byron
ebb96d7ad7 Widget param url prefix p to p_w (#3380) 2019-01-31 17:03:13 +02:00
Levko Kravets
3d58860f6f Merge pull request #3374 from kravets-levko/fix-eslint-errors
Fix eslint errors
2019-01-31 14:33:28 +02:00
Levko Kravets
c223566302 Merge branch 'master' into fix-eslint-errors 2019-01-31 14:04:05 +02:00
Levko Kravets
1439714fa6 Migrate EmptyState component to React (#3373)
* Migrate EmptyState component to React

* CR1

* CR2
2019-01-31 14:02:45 +02:00
Levko Kravets
9c06e9a0bd CR1 2019-01-31 13:50:05 +02:00
Levko Kravets
f98cf7812b Merge branch 'master' into fix-eslint-errors 2019-01-31 11:25:41 +02:00
Levko Kravets
ee0e81e795 Fix eslint errors 2019-01-31 11:21:45 +02:00
Jannis Leidel
bd559b6eeb Fix some incompatible dependencies (#3348)
* Pin requests-oauthlib to work around incompatible deptree.

* Update boto3/botocore to fix incompatible deptree.
2019-01-31 09:50:47 +02:00
Arik Fraimovich
c51191aaf0 Tune CodeClimate's config to make it less annoying (#3370) 2019-01-31 07:34:31 +02:00
Levko Kravets
4a2645d4c6 Merge pull request #3368 from kravets-levko/feature/react-favorites-and-tags-list
React migration: FavoritesControl and TagsList components
2019-01-30 21:09:05 +02:00
Levko Kravets
3ad1709a0a Merge branch 'master' into feature/react-favorites-and-tags-list 2019-01-30 20:29:07 +02:00
Ran Byron
cc135398e2 Fix: static param text value is [object Object] (#3371) 2019-01-30 20:27:59 +02:00
Levko Kravets
067472643d CR3 2019-01-30 20:21:22 +02:00
Levko Kravets
225c98c52a Merge branch 'master' into feature/react-favorites-and-tags-list 2019-01-30 19:23:03 +02:00
Ran Byron
00e991ecfc Fix: Static param value not editable for Text/Number (#3369) 2019-01-30 19:18:57 +02:00
Levko Kravets
a362e97dfe CR2 2019-01-30 18:54:53 +02:00
Levko Kravets
1ea532fe26 CR1 2019-01-30 18:45:06 +02:00
Levko Kravets
9a1c8290e4 Migrate TagsList component to React 2019-01-30 17:40:42 +02:00
Levko Kravets
0d959116d8 Migrate FavoritesControl component to React 2019-01-30 17:22:54 +02:00
Aidarbek Suleimenov
0b9f575dab Fix: make ClickHouse password and username truly optional (#3362)
* clickhouse optional password

* clickhouse URL and user made optional
2019-01-30 11:17:43 +02:00
koooge
13bc910d7c Update CodeClimate configuration format to Version 2 (#3286)
* codeclimate: Update format v2
* codeclimate: Ignore generated files
2019-01-30 10:51:32 +02:00
Ran Byron
9e2f8e2461 Fix: Escape button in tag edit modal (#3363) 2019-01-30 10:43:38 +02:00
Aidarbek Suleimenov
61e7cdaa81 Filename set when /results called directly (#3359)
* filename set when /results called directly

* /results filename changed from query name to id

* Long line shortened
2019-01-29 19:47:42 +02:00
Vladislav Denisov
53aecdc607 yandex_metrica: changed auth from params to headers (#3360) 2019-01-29 18:17:13 +02:00
koooge
2da511021e Frontend lint update (#3253)
* client: Add lint command

Signed-off-by: koooge <koooooge@gmail.com>

* client: Override eslint rule object-curly-newline to keep current style

Signed-off-by: koooge <koooooge@gmail.com>

* client: Override eslint rule no-else-return to keep current style

Signed-off-by: koooge <koooooge@gmail.com>

* client: Fix eslint import/named

Signed-off-by: koooge <koooooge@gmail.com>

* client: eslint-5

Signed-off-by: koooge <koooooge@gmail.com>

* codeclimate: Delete the old setting

Signed-off-by: koooge <koooooge@gmail.com>

* client: Downgrade eslint 5 to 4 in codeclimate

Signed-off-by: koooge <koooooge@gmail.com>

* client: npx install-peerdeps --dev eslint-config-airbnb

Signed-off-by: koooge <koooooge@gmail.com>

* client: Enbale .jsx lint

Signed-off-by: koooge <koooooge@gmail.com>

* client: Set warn

Signed-off-by: koooge <koooooge@gmail.com>

* client: Fix lint indent, implicit-arrow-linebreak, lines-between-class-members

Signed-off-by: koooge <koooooge@gmail.com>

* client: Disable eslint operator-linebreak

Signed-off-by: koooge <koooooge@gmail.com>

* Revert "client: Downgrade eslint 5 to 4 in codeclimate"

This reverts commit f0fb0f0059.

* client: Fix react/button-has-type

Signed-off-by: koooge <koooooge@gmail.com>

* client: Disable an eslint rule react/jsx-one-expression-per-line

Signed-off-by: koooge <koooooge@gmail.com>

* codeclimate: Disable no-multiple-empty-lines

Signed-off-by: koooge <koooooge@gmail.com>

* client: Disable eslint react/destructuring-assignment

Signed-off-by: koooge <koooooge@gmail.com>
2019-01-29 17:25:58 +02:00
Omer Lachish
371b319e92 Server-side parameter validation (#3315)
* stop testing `collect_query_parameters`, it's an implementation detail

* add tests for `missing_query_params`

* rename SQLQuery -> ParameterizedSqlQuery

* rename sql_query.py to parameterized_query.py

* split to parameterized queries and parameterized SQL queries, where
parameterized queries only do templating and parameterized SQL queries
add tree validation on top of it

* move missing parameter detection to ParameterizedQuery

* get rid of some old code

* fix tests

* set syntax to `custom`

* revert the max-age-related refactoring

* 👋 tree validations 😢

* BaseQueryRunner is no longer a factory for ParameterizedQuery, for now

* add an endpoint for running a query by its id and (optional) parameters
without having to provide the query text

* adds parameter schema to ParameterizedQuery

* adds parameter schema validation (currently for strings)

* validate number parameters

* validate date parameters

* validate parameters on POST /api/queries/<id>/results

* validate enum parameters

* validate date range parameters

* validate query-based dropdowns by preprocessing them at the handler
level and converting them to a populated enum

* change _is_date_range to be a tad more succinct

* a single assignment with a `map` is sufficiently explanatory

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/handlers/query_results.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update redash/utils/parameterized_query.py

Co-Authored-By: rauchy <omer@rauchy.net>

* build error message inside the error

* support all types of numbers as number parameters

* check for permissions when populating query-based dropdowns

* check for access to query before running it

* check for empty rows when populating query-based enums

* don't bother loading query results if user doesn't have access

* 💥 on unexpected parameter types

* parameter schema default is a list, not a dictionary

* remove redundant null guards
2019-01-29 09:18:07 +02:00
Arik Fraimovich
ff42ec2cc6 Cypress tests: preset the admin API key to a static value (#3358) 2019-01-28 17:54:24 +02:00
Levko Kravets
7278d4b1fc Refactor Policy and OrganizationStatus services (#3345)
* Refactor Policy and OrganizationStatus services
2019-01-28 16:46:26 +02:00
Levko Kravets
6930106380 getredash/redash#3355 Widget params: Date/Date range value empty in static param input (#3357) 2019-01-28 15:59:49 +02:00
Zsolt Kocsmárszky
c0859642fd WIP: Add dashboard details section for dashboard owner and more (#2934)
Show dashboard creator on dashboard page
2019-01-28 14:20:55 +02:00
Gabriel Dutra
37821ee008 Add Percy Page Screenshots (#3338)
* Add Percy Page Screenshots

* Add missing space
2019-01-28 10:21:42 +02:00
Arik Fraimovich
c31cb01065 Move BigQueryGCE to its own file (#3356)
* Move BigQueryGCE to its own file

* Add missing import
2019-01-28 09:37:47 +02:00
Levko Kravets
1fa58674f3 Refine SettingsMenu service and <settings-screen> component (#3339)
* Refine SettingsMenu service and <settings-screen> component

* Rename services/settingsMenu file to match default export name

* CR1
2019-01-25 17:29:35 +02:00
Jannis Leidel
d204c158a2 Allow query owners to hard-overwrite query content in case of overlap with other user (#2370)
* Hard overwrite on conflict for query owners (re #283)

* Use AlertDialog instead of custom global function.
2019-01-25 11:28:09 +01:00
Levko Kravets
b0b4d5e26a Convert Angular services to CommonJS-style and use them in React components instead of injecting (#3331)
* Refine Auth service: remove dead code and fix race condition
* Export services in CommonJS style
* Refine Users, Events and OfflineListener services
* Refactor Notifications service - rewrite to CommonJS
* Replace Angular service injection with imports in React components
* Fix Footer tests
* Events service -> recordEvent function
* CR1
2019-01-24 16:24:58 +02:00
Levko Kravets
c2c722e12e Migrate PageHeader component to React (#3324)
* Migrate PageHeader component to React

* CR1
2019-01-23 20:10:52 +02:00
Vibhor Kumar
1a61ee3ec0 Add: Uptycs query runner (#3319)
* adding uptycs query_runner in redash

* as per comment from Arik comment fixed the code

* fixed function_name

* fixed some indentation issues

* fixed the indentation issue and taken out customer_id from secret

* fixed the dependency of urllib3

* fixed the indententaton issue

* remved the urllib3 from requirements

* fixed the indentation issues

* added the new square image for Uptycs. Removed unnecessary variable and made ssl as an option

* fixed indentation issue

* Renamed SSL to verify_ssl and also added verify_ssl validate in verify in missing places
2019-01-23 20:07:40 +02:00
Ran Byron
d5afa1815e Filtering out incompatible dashboard params (#3330) 2019-01-23 16:27:49 +02:00
Arik Fraimovich
87667676e6 Remove link to roadmap (#3329)
It's no longer maintained 😢
2019-01-23 13:48:11 +02:00
Arik Fraimovich
bfeb015d71 Add configuration for the Support probot. (#3327) 2019-01-23 13:38:08 +02:00
Omer Lachish
a9c514aaf7 Textless query result endpoint (#3311)
* add an endpoint for running a query by its id and (optional) parameters
without having to provide the query text

* check for access to query before running it
2019-01-23 11:10:04 +02:00
Levko Kravets
7fa6665445 Use Ant's Paginator component; migrate SortIcon to React (#3317) 2019-01-22 17:26:11 +02:00
Miles Maddox
ff6b20b69c support for fetching all JQL results by way of pagination (#3304) 2019-01-22 15:52:13 +02:00
YOSHIDA Katsuhiko
c4bf44677a Fix an error of exporting dict value as Excel (#3323) 2019-01-22 14:43:52 +02:00
Gabriel Dutra
8bdcfb06c5 add wait time before percy data source page snapshot (#3320) 2019-01-22 08:52:23 +02:00
YOSHIDA Katsuhiko
b3643ffbb7 Add regenerate function of user's API key (#3224)
* Add regenerate function of user's API Key

* Update client/app/pages/users/show.js

Co-Authored-By: kyoshidajp <claddvd@gmail.com>

* Remove unused error message

* Refactoring: Inline temp

* Update client/app/pages/users/show.js

Co-Authored-By: kyoshidajp <claddvd@gmail.com>

* Change action event of regenerate user API key
2019-01-20 13:38:20 +02:00
Eric Chang
b91d4bdcaf override default integer/float formatting with environment variables (#3307) 2019-01-20 10:10:36 +02:00
Eric Chang
8bc8e2dadf Allow execution of highlighted subquery (#3288)
* allow execution of selected subquery
* fix query save while highlighted
* don't modify queryText and update UI when running selected
* code style and transition
* Fix query selection execution background color
* make naming consistent
2019-01-20 10:06:17 +02:00
Gabriel Dutra
84d5becf2a Update form text colors (#3296)
* Create ant variables and update form colors

* Remove less extension from imports in ant.less

* Update font-weight for labels

* Add percy snapshot for create data source page

* Remove bold in labels only for checkboxes and radio buttons
2019-01-20 09:41:52 +02:00
Arik Fraimovich
e8120c5f79 Use None as "not scheduled" default value of a query (#3277)
* Use null as the default scheduled value.

* Don't serialize None to json, so we can use SQL is not null predicate.

* Fix warning about unicode in tests

* Handling empty query.schedule in UI (#3283)

* Add migration to convert empty schedules to null and drop the not null contraint.
2019-01-18 11:30:45 +02:00
Levko Kravets
40c6a2621c Merge pull request #3299 from kravets-levko/fix/multifilter-dropdown
Multifilter's dropdown cropped when visualization container is too small
2019-01-17 15:37:26 +02:00
Levko Kravets
06887f6ff1 Multifilter's dropdown cropped when visualization container is too small 2019-01-17 15:14:46 +02:00
Omer Lachish
7847cf7d63 Fix invitation pending for older invitations (#3298)
* explicitly look for a False under details['is_invitation_pending'] and
not any falsey result, to avoid locking out invitations which were
created before the Pending Invitation feature was introduced. Solves https://github.com/getredash/redash/issues/3297

* test that old invites (that do not have any is_invitation_pending flag set in their details object) are still acceptable
2019-01-17 11:56:16 +02:00
Omer Lachish
121a44ef15 Remove tree validations and introduce ParameterizedQuery (#3230) 2019-01-17 10:26:00 +02:00
Gabriel Dutra
823e4ccdd6 Migrate DynamicForm to React (#3209)
* create DynamicForm React component

* Render fields based on target in DynamicForm

* Add missing title property to fields

* Fix style properties in DynamicForm

* Render File fields in DynamicForm

* Use React for middle component instead of Angular

* Functional save button

* Update label style

* Render functional actions

* Handle file inputs

* Update render methods to fix code climate issues

* Fix ant input number showing duplicate arrows

* Update DynamicForm style to be vertical

* Separate imports from antd in DynamicForm

* Add Feedback Icons to DynamicForm

* Change Action props on DynamicForm
- use type and pullRight instead of class prop
- update data sources and destinations pages accordingly

* Remove setDefaults method from DynamicForm fields

* Update antd version

* Remove unnecessary class selectors

* Remove another unnecessary class selector
2019-01-15 14:23:33 +02:00
Levko Kravets
0c45d69662 Dashboard Parameters (#2756)
* getredash/redash#2641 Step 1: split Add Widget/Add Textbox buttons

* Convert Add widget/textbox dialogs to React components

* getredash/redash#2641 Step 2: Implement new dashboard parameters logic

* Resolve conflicts and fix build errors

* getredash/redash#2641 Refactoring and improve code quality

* Add Edit parameter mappings dialog to the widget

* getredash/redash#2641 Changes after code review

* Use Ant's Select component instead on <select> tags

* Fix Antd imports

* Fix Antd imports

* Fix Cannot read property 'getParametersDefs' of undefined

* Fix widgets static params bugs (don't show input, don't init from URL)

* Minor UI/UX fixes
2019-01-15 13:14:54 +02:00
Gabriel Dutra
df23842c57 Separate Bootstrap/Ant styling (#3279)
* Separate Ant less dependency tree

* Change order between variables and ant imports

* Remove inc/variables from ant.less

* Update input-height-base for antd

* Set same input-color for Ant and Bootstrap
2019-01-15 11:40:38 +02:00
Arik Fraimovich
d68a4dce5f Pin version of pyparsing (#3282) 2019-01-14 17:17:23 +02:00
Levko Kravets
db86e394cf Update Antd to latest version + fix tests (#3281) 2019-01-14 16:25:57 +02:00
koooge
4c9326a9da handlers: Fix post users (#3273) 2019-01-13 15:52:56 +02:00
Ran Byron
200fea952a Pleasant alert-warning colors (#3276)
* Pleasant alert-warning colors

* Fix for json viewer primitive color
2019-01-13 15:27:26 +02:00
Ran Byron
90a0a7d39b Scheduler tests (jest/enzyme) (#3269)
* Setup enzyme and initial ScheduleDialog test

* Added tests for each schedule setting

* Added refreshOptions tests

* Added count out-of-range tests

* Added modal confirm/cancel tests

* Fixed tests failing due to server timezone difference

* Rebased to master
2019-01-13 15:26:44 +02:00
Omer Lachish
26252be75a Verify admin email address (#3267)
* 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
2019-01-13 13:57:12 +02:00
Ran Byron
6c6366e6f0 Fix: Refresh schedule durations not pluralized sufficiently (#3268)
* Fix: Refresh schedule durations not pluralized sufficiently

* Allows omitting single value number in durationHumanize (#3274)
2019-01-13 13:31:41 +02:00
Ran Byron
de04a403d7 Fix: Refresh schedule interval count doesn't adhere to permission rules (#3265)
* Fix: Refresh schedule interval count doesn't adhere to permission rules

* Fix “4.28 weeks” to “30 days”

* Merge interval type and count into one <Select>
2019-01-13 11:39:57 +02:00
Ilya Ruzakov
0b6f1fc21b [Data Sources] Implement Apache Drill (#3188)
* Added support for Apache Drill datasource

* Improvements in `Drill` query runner and minor refactoring

1. Drill query runner now inherits from `BaseHTTPQueryRunner`, because they both have a lot of common code.
2. `BaseHTTPQueryRunner.get_response` method now accepts `http_method` argument (original implementation was only capable of sending `GET` HTTP requests).
3. Added `order` to `BaseHTTPRequestRunner` configuration schema to fix order of UI elements based on the schema.
4. Eliminated duplicate method `_guess_type` in `GoogleSpreadsheet`, `Results` and `Drill` query runners, moved `guess_type` to `redash.query_runner`.
5. Removed tests for `_guess_type` in `GoogleSpreadsheet`, `Results` and `Drill` query runners, merged them into single test case and moved to `tests.query_runner.test_utils`.
6. Various minor changes (code style, imports, etc).
2019-01-10 09:12:35 +02:00
Omer Lachish
445f8e5c36 Fix invitation pending for existing users (#3261)
* 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

* update Flask-OAuthLib
2019-01-09 13:48:47 +02:00
Omer Lachish
a29136037c update Flask-OAuthLib (#3262) 2019-01-09 13:48:21 +02:00
Arik Fraimovich
08953cc919 Redis based implementation of user active_at timestamp update (#3256)
* Switch to simpler implementation
* Fix active_at update code
* Fix sync test
2019-01-08 14:03:49 +02:00
koooge
22f835d3cb client: Remove estraverse (#3254)
Signed-off-by: koooge <koooooge@gmail.com>
2019-01-08 12:29:24 +02:00
Omer Lachish
823f172a9f Invitation Pending changes (#3229)
* determine invitation_pending according to empty password. This commit will be reverted, I'm just deferring the implementation

* show '(Invitation Pending)' to users who haven't accepted their invitation yet

* allow resending invitations

* allow deletion of pending users from user list

* set invitation as not pending when following invite link

* prevent deleting activated users

* test that users who follow invitation links are set as non-pending invitations

* prevent re-using invitations

* invitees who use SSO will now also be marked as "non-pending"

* lint
2019-01-08 08:52:48 +02:00
Jannis Leidel
44dff83046 Add "Active at" column to user list. (#3026)
* add last_active_at to users page

* Use our JSON encoder as the SQLAlchemy JSON serializer.

* Fixed some inconsistencies in the user query class methods.

* Minor cosmetic fixes.

* Add some make tasks for easier development.

* Add user detail sync system based on Redis backend.

There is a periodic Celery task that updates a new “details” JSONB column in the “user” table with the data from Redis.

Currently this is only used for tracking the date of last activity of a user but can be extended with other user information later.

Updates a few dependencies.

* Normalize a few Flask extension API names.

* Reduce implementation complexity of JSONEncoder.

* Use request_started signal to make sure we have a request context.

Otherwise loading the user based on the request won’t work.

* Fix test that checks if disabled users can login.

This correctly uses a URL path that includes the current organization and checks for the error message.

The previous test seems to have been a red herring.

* Minor cosmetic fixes.

* Remove needs_sync in favor of just deleting things.

* Misc review fixes.

* Ignore line length.

* Split redash.models import several modules.

* Move walrus UTC DateTimeField into redash.models.types.

* Restore distinctly loading dashboards.

* Simplify default values for user details.

* Define __repr__ methods generically.

* Consistently have underscore methods at the top of model methods.

* Fix tests.

* Split redash.models import several modules.

* Update to latest walrus and redis-py.

* Update kombu to 4.2.2 for redis-py 3.x compatibility.

* Remove redis-cli container after running Make task.

* Move buffer condition after datetime/time conditions.

* Update walrus to 0.7.1.

* Refactor some query APIs.

This uses the flask-sqlalchemy helpers consistently and makes more use of mixins.

* Post rebase fixes.

* Use correct kombu version

* Fix migration down revision
2019-01-07 10:30:42 +02:00
Ran Byron
569430e5cd Fix: Refresh schedule phrase overlaps title (#3250) 2019-01-06 12:46:55 +02:00
Ran Byron
07a1c23df5 Fix: Able to set out-of-range refresh interval 2019-01-06 12:27:50 +02:00
Ran Byron
b97b8477ad Feature: Refresh schedule - styling (#3247) 2019-01-06 12:14:00 +02:00
Ran Byron
9b72dfe076 Feature: Refresh schedule - save/cancel actions 2019-01-06 11:33:35 +02:00
Ran Byron
3ee83a4c4a Feature: Refresh schedule - code optimizations 2019-01-06 11:17:43 +02:00
Marina Samuel
cdd2259d08 Closes #2396: Add finer-grained scheduling. (#2426)
* Closes #187: Add finer-grained scheduling - backend.

* Closes #2396 - Add finer-grained scheduling - frontend.

* Fix linting issues

* Rename ScheduleDialgo to .jsx
2019-01-06 10:59:50 +02:00
Vincentoo
fc368ee425 Support overriding the default Celery schedule database file via SCHEDULE_DB environment variable. (#3056)
By default Celery will use a file celerybeat-schedule in the current directory.
This is an issue in a Kubernetes/Openshift environment as the file may be lost or even impossible to write.
2019-01-03 20:51:18 +02:00
YOSHIDA Katsuhiko
7a2e08c3eb Upgrade requests package (#3245) 2019-01-03 18:59:58 +02:00
Levko Kravets
ba0d069283 getredash/redash#3213 Scatter charts can have category Y axis (similar to Bubble) (#3243) 2019-01-03 17:15:51 +02:00
Omer Lachish
670d86eb5f Simple user view (#3244)
* show a simple user details page when viewing a user who isn't you (or you arent the admin)

* add a snapshot test

* lint
2019-01-03 15:23:40 +02:00
Ran Byron
63f38b7acd Fix: Query editor duplicates keystrokes [#2972] (#3239) 2019-01-01 17:40:48 +02:00
Arik Fraimovich
8b5ffc6f84 Handle the case when a QueryTracker is None and change order. (#3238) 2019-01-01 15:57:58 +02:00
Arik Fraimovich
cce2052e79 request.view_args might be None and add org_id to ApiUser (#3237) 2019-01-01 15:44:34 +02:00
Arik Fraimovich
8ea6283430 Send argsrepr value with execute_query task (#3235) 2019-01-01 15:32:02 +02:00
Arik Fraimovich
08b86c1c6d Fix: forked query wasn't opening in MULTI_ORG env (#3236) 2019-01-01 15:31:41 +02:00
koooge
0449a3ff31 Delete an unused global (#3231)
Signed-off-by: koooge <koooooge@gmail.com>
2019-01-01 08:58:31 +02:00
Arik Fraimovich
4ea46f197e It's 2019 now ! 🎉 2019-01-01 08:40:51 +02:00
Omer Lachish
d7edaa3ba2 Tests for find_missing_params (#3225)
* stop testing `collect_query_parameters`, it's an implementation detail

* add tests for `missing_query_params`
2018-12-31 12:34:57 +02:00
YOSHIDA Katsuhiko
632fc5aace Merge pull request #3232 from koooge/fix_warn_tapable
Update webpack-build-notifier to dismiss warn
2018-12-31 10:09:23 +09:00
koooge
b9abb36799 Update webpack-build-notifier to dismiss warn
Signed-off-by: koooge <koooooge@gmail.com>
2018-12-30 17:37:42 +00:00
Levko Kravets
d7e7b99a76 Merge pull request #3228 from kyoshidajp/fix_trailing_spaces_error
Fix front-end compile error
2018-12-28 20:43:10 +02:00
Katsuhiko YOSHIDA
db87c8740e Fix front-end compile error 2018-12-29 01:36:16 +09:00
Arik Fraimovich
5f2b54a320 Root folder cleanup (#3220)
* Remove old_migrations folder

* Move Dockerfile.cypress into .circleci
2018-12-26 18:09:41 +02:00
Arik Fraimovich
f62d0e1300 Use lower cased names for groups: (#3221)
Otherwise sorting depends on the Postgres collation and causes tests
to fail on different envoirnments.
2018-12-26 17:16:13 +02:00
Omer Lachish
9e156c1c30 Fix: missing param fails for object values (like date range) (#3218)
* fix: range params not recognized

* Handle parameters with unicode

* Remove debug prints

* DRY up missing_params
2018-12-26 17:06:30 +02:00
Gabriel Dutra
26965b4948 Add dot behavior to autocomplete (#3092)
* Add dot behavior to autocomplete
* Transform the Keyword Builder in an external js
* Remove methods from QueryEditor constructor
2018-12-26 17:04:11 +02:00
Omer Lachish
7a03928f48 we've noticed users with integer legacy session identifiers, so it doesn't hurt to convert to string anyway (#3219) 2018-12-26 16:24:59 +02:00
Omer Lachish
8f14efdaff Avoid exploding sql parse (#3216)
* fail silently when sql_parse explodes

* Update upstream/redash/handlers/query_results.py

Co-Authored-By: rauchy <omer@rauchy.net>

* Update upstream/redash/handlers/query_results.py

Co-Authored-By: rauchy <omer@rauchy.net>
2018-12-26 10:43:00 +02:00
deecay
03a7e24204 Show Sort Y only when type is Heatmap (#3206) 2018-12-24 17:10:16 +02:00
ialeinikov
2f7cb1bc8a [Athena] Fix: missing databases (apply pagination) (#2503)
* adding paginator on databases in glue

* reduce number of nested loops

* fixing indentation

* double for-loop instead of generator

* removing unused generator
2018-12-24 14:02:08 +02:00
koooge
64783b7f06 Switch to MULTI FROM Dockerfile and use Node 10 for builds (#3199) 2018-12-23 15:17:54 +02:00
Takuya Arita
8ed872756c Add test case for redash.utils.generate_token (#3211) 2018-12-23 15:13:00 +02:00
Arik Fraimovich
83ea472d37 Merge pull request #3093 from getredash/backend-parameter-templating
Remove Mustache templating from frontend
2018-12-20 22:24:11 +02:00
Arik Fraimovich
0505163ff9 Merge pull request #3174 from getredash/invalidate-sessions-after-email-or-password-change
Invalidate sessions after email or password change
2018-12-19 15:49:54 +02:00
Arik Fraimovich
3d38bb478f Merge pull request #3205 from kravets-levko/bug/wrong-query-link-in-widget
Widget: fix url parameters in query link
2018-12-19 15:47:30 +02:00
Levko Kravets
654e906f6b getredash/redash#3203 Widget: fix url parameters in query link 2018-12-19 15:13:58 +02:00
Omer Lachish
54da6c69ab Merge branch 'invalidate-sessions-after-email-or-password-change' of github.com:getredash/redash into invalidate-sessions-after-email-or-password-change 2018-12-19 14:36:08 +02:00
Omer Lachish
8284e829fb explain why we call on identity changes 2018-12-19 14:35:42 +02:00
Omer Lachish
bcfff469de Merge branch 'master' into invalidate-sessions-after-email-or-password-change 2018-12-19 14:23:35 +02:00
Omer Lachish
b5ceb268ef Merge branch 'master' into invalidate-sessions-after-email-or-password-change 2018-12-17 12:52:17 +02:00
Arik Fraimovich
8583eaa8ad Merge pull request #3173 from kyoshidajp/golineup
Make it possible to move up one line by Ctrl+P on macOS
2018-12-17 12:08:04 +02:00
Arik Fraimovich
ef66da7d94 V6 release (#3195)
* V6 release

* Remove "-beta"

* Update package.json

* Update package-lock.json

* Update CHANGELOG.md
2018-12-16 16:01:20 +02:00
Omer Lachish
1b4e0f5de7 rename safely_apply_parameters to apply_parameters 2018-12-16 10:58:20 +02:00
Omer Lachish
479247b60c Merge branch 'master' into backend-parameter-templating 2018-12-16 10:22:29 +02:00
Arik Fraimovich
57c8fbe14e README updates
1. Remove link to Slack channel.
2. Update number of data sources.
2018-12-16 09:55:34 +02:00
Arik Fraimovich
938a20e7c0 Use multiple issue templates instead of a single one (#3194)
* Switch to issue templates

* Apply a label to non bugs
2018-12-16 09:42:32 +02:00
Katsuhiko YOSHIDA
dc842e9201 Fix can't open new parameter dialog by Ctrl+P on Windows and Linux 2018-12-14 18:58:33 +09:00
Arik Fraimovich
f5dbdf245a Safely create_app in Celery code (try to fetch current_app first). (#3187)
Closes #3181.
2018-12-13 15:10:31 +02:00
Omer Lachish
35357afb90 transform legacy session identifiers into new session identifiers 2018-12-13 13:02:11 +02:00
Omer Lachish
419877b364 explain the motivation behind support for legacy session identifiers 2018-12-13 13:02:03 +02:00
Omer Lachish
143d515bfc use login_user instead of manually updating user_id in the session 2018-12-13 12:30:21 +02:00
Gabriel Dutra
8481dacff4 Fix eslint issues on user.js (#3186) 2018-12-12 23:32:12 +02:00
Omer Lachish
94905a287a tests for legacy session user identifiers 2018-12-12 13:03:50 +02:00
Katsuhiko YOSHIDA
34af780264 Golineup only macOS 2018-12-12 19:00:13 +09:00
Omer Lachish
3c8a3caa1d backward compatibility so users who have the old session identifier don't get logged out 2018-12-12 10:10:13 +02:00
Omer Lachish
9d566ef302 Merge branch 'master' into invalidate-sessions-after-email-or-password-change 2018-12-12 09:49:11 +02:00
Omer Lachish
e23a07af03 Remove missing coverage from pytest terminal output (#3180)
* Remove missing coverage from pytest terminal output

* move coverage reporting to CI
2018-12-12 08:30:46 +02:00
Omer Lachish
2312db46f2 test that other sessions are invalidated when changing an e-mail. I had
to resort to comments in code in order to explain this. I'm a failure
today. 😭
2018-12-11 15:14:43 +02:00
Arik Fraimovich
52434a837f Make refresh_queries less noisey in logs (#3183) 2018-12-11 15:03:29 +02:00
Arik Fraimovich
230ad33f02 [Redshift] Fix: support for schema names with dots. (#3182) 2018-12-11 14:57:42 +02:00
Omer Lachish
b3495b8c00 test that user does not get logged out when changing email or password 2018-12-11 12:25:51 +02:00
Omer Lachish
dec790a9f3 Merge branch 'master' into invalidate-sessions-after-email-or-password-change 2018-12-11 10:41:27 +02:00
Gabriel Dutra
cfe12c5a5d Add DB Seed to Cypress and setup Percy (#3155)
* Update Cypress element selectors

* Add seed data function to Cypress

* Change Cypress setup to be part of db-seed

* Add DatabaseSource selector to Create Data Source spec

* Add getElement command to Cypress

* Fix eslint issues

* Change Cypress getElement to getByTestId

* Add Percy and test it with the CI

* Change Percy dependency for CI to Cypress' Dockerfile

* Change Percy's execution to the docker container
- add --no-save to avoid errors on Dockerfile.cypress
 - pass PERCY_TOKEN from the CI to docker container

* Fix missed char on CircleCI config file

* Move Percy execution back to host on the CI

* Test adding PERCY_TOKEN to frontend-e2e-tests on CI config

* Undo add PERCY_TOKEN to config.yml

* Add Percy token and .git folder to Cypress

* Remove Percy install from config.yml

* Ignore .git folder again and use Percy env vars instead

* Update PERCY_PULL_REQUEST to be CIRCLE_PR_NUMBER

* Update cypress-server.js to handle other cypress commands
- cypress-server.js -> cypress.js
- new commands added to cypress.js
- CircleCI config updated accordingly
- added a Homepage screenshot

* Remove trailing spaces

* Add Create Query spec

* Disable Cypress videos

* Update run browser to Chrome

* Add missing --browser chrome
2018-12-10 22:29:36 +02:00
Omer Lachish
944bee6101 update identity only after succesfully updating user information 2018-12-10 14:25:04 +02:00
Omer Lachish
38ed046c9f Fix disable error message (#3175)
* display correct error message when attempting to disable yourself
* 403 (Forbidden) feels like a better status code than 400 (Bad Request)
* fix broken test
* remove redundant error title
2018-12-10 14:02:50 +02:00
Takuya Arita
1acf063755 FIX: Reject empty query name (#3171) 2018-12-10 12:35:25 +02:00
Omer Lachish
c426c826f7 fix tests that rely on sessions 2018-12-10 12:27:39 +02:00
Omer Lachish
4b1275ae56 don't sign out the current session when changing email or password 2018-12-09 11:07:42 +02:00
Katsuhiko YOSHIDA
b3c3134a86 Make it possible to move up one line by Ctrl+P 2018-12-09 15:26:01 +09:00
Omer Lachish
c311c12bcf invalidate session when email or password changes - currently not
backwards compatible
2018-12-05 23:49:55 +02:00
Omer Lachish
76321937d7 Remove API permissions for users who have been disabled (#3162) 2018-12-05 12:21:18 +02:00
Arik Fraimovich
c9ca2b99f6 Fix: Alert.evaluate failing when the column is missing. (#3167) 2018-12-05 11:28:05 +02:00
Arik Fraimovich
d42f0b2d40 Directly using record_event task requires timestamp (#3166)
Using the helper instead.
2018-12-05 10:11:08 +02:00
Vladislav Denisov
e530c23d4c clickhouse: fixed int() conversion error (#3161) 2018-12-05 09:29:47 +02:00
Omer Lachish
0973ee8abb Include correct version in production builds (#3163)
* take the first 8 characters for frontend version, not backend version

* run `npm run build` after version has been updated in CI

* `pack` should run last
2018-12-04 22:14:32 +02:00
Arik Fraimovich
3ee7537a6c WIP: Update CHANGELOG (#3159) 2018-12-03 22:07:20 +02:00
Omer Lachish
d769afab6f Merge branch 'master' into backend-parameter-templating 2018-12-03 13:22:44 +02:00
Omer Lachish
cf86509a0b remove leftovers of SQLQuery from utils 2018-12-03 13:17:40 +02:00
Omer Lachish
54894c3a26 track sql injections using an event to detect false positives 2018-12-03 13:12:34 +02:00
Arik Fraimovich
9c12b04578 json_dumps: add support for serializing buffer objects. (#3156) 2018-12-03 10:57:36 +02:00
Omer Lachish
1519849219 use SQLQuery's text property instead of method 2018-12-03 10:03:45 +02:00
Omer Lachish
202b93d8be use SQLQuery in run_query 2018-12-03 09:53:17 +02:00
Omer Lachish
0a62bee3a1 Merge branch 'master' into backend-parameter-templating 2018-12-03 09:44:52 +02:00
Omer Lachish
9579f12a83 Protect against SQL injections by using tree comparisons (#3109)
* add SQLQuery class with tests for safe queries and non-safe tautology attacks

* add test for union query injections

* split .apply calls to newline

* add tests for comment attacks

* remove double underscore

* extract complex children check to variable

* inherit from object because I'm not a lamer

Co-Authored-By: rauchy <omer@rauchy.net>

* simplify cognitive complexity

* check that additional columns are not injected

* detect appended queries

* inline .apply calls

* move SQLQuery to it's own module

* move SQLQuery tests to their own module

* serialize SQLQuery instances

* raise an exception when attempting to serialize an unsafe query

* queries without parameters are safe

* remove redundant parentheses

* use cached properties

* rename SQLInjectionException to SQLInjectionError

* support multiple word params and param negations

* refactor out methods that don't involve any state

* don't cache text()

* reduce cognitive complexity
2018-12-02 21:51:06 +02:00
Zsolt Kocsmárszky
463d4ce518 Fix label positioning on no found screen (#3148)
* Fix label positioning on no found screen

* Use TagsControl component on not found screen
2018-12-02 10:42:30 +02:00
Zsolt Kocsmárszky
2e4d196452 Add and improve recent db logos that didn't fit in size properly (#3147)
* Add and improve recent db logos that didn't fit in size properly

* Update mongodb logo

* Remove Athena Direct as requested
2018-12-02 10:27:01 +02:00
Zsolt Kocsmárszky
4078af2996 Update, replace and fix new alert destination logos so it fits better (#3146) 2018-11-29 21:04:35 +02:00
Zsolt Kocsmárszky
73825ea266 Improve tag link colors and fix group tags on Users page (#3149) 2018-11-29 21:02:54 +02:00
Zsolt Kocsmárszky
b2a0d61844 Better manage permissions modal (#3139)
* Improved design for manage permissions

* Show Owner on Permission modal, remove owner from dropdown options

* Pass owner to Permissions modal
2018-11-29 15:40:44 +02:00
Omer Lachish
1774edabc0 take the first 8 characters for frontend version, not backend version (#3145) 2018-11-29 15:20:30 +02:00
Omer Lachish
54b8e7c136 Merge pull request #3144 from getredash/display-frontend-version
Display only the first 8 characters of frontend version
2018-11-29 15:17:14 +02:00
Omer Lachish
54f09f73db take the first 8 characters for frontend version 2018-11-29 15:03:37 +02:00
Omer Lachish
35aca1d4cf Merge branch 'master' into display-frontend-version 2018-11-29 15:03:11 +02:00
Levko Kravets
757333c2d6 When editing a dashboard title results in the visualizations being replaced by the loading markers (#3142)
* getredash/redash#3015 When editing a dashboard title results in the visualizations being replaced by the loading markers

* CR1

Co-Authored-By: kravets-levko <levko.ne@gmail.com>
2018-11-29 14:48:21 +02:00
Omer Lachish
92728de04c Display frontend version (#3105)
* add git-revision-webpack-plugin

* configure git-revision-webpack-plugin

* add commit to footer

* rename version and commit to backendVersion and frontendVersion

* rename version and commit to backendVersion and frontendVersion

* disable lint error due to use of globals

* fix snapshot test

* read frontend version from VERSION file instead latest git revision

* directly require from version.json file instead of going through WebPack's DefinePlugin

* run snapshots
2018-11-29 14:24:23 +02:00
Omer Lachish
407f14ffca run snapshots 2018-11-29 13:07:04 +02:00
Arik Fraimovich
ecb8a5c244 Hive/Databricks related improvements (#3143)
* Hive: fix issues in building options.

* Hive: add missing import.

* Split Hive into two query runners: one for http and a regular one.

* Upgrade pyhive to support http.

* Specific implementation for databricks:

* Different schema loader, because column names are different (or Hive's schema loader is broken).
* Simpler configuration.

* Simplify Databricks setup even more by removing username.
2018-11-29 13:01:23 +02:00
Omer Lachish
0e8fab4872 directly require from version.json file instead of going through WebPack's DefinePlugin 2018-11-29 13:00:13 +02:00
Omer Lachish
c15fa0c592 read frontend version from VERSION file instead latest git revision 2018-11-29 11:57:53 +02:00
Levko Kravets
09ab00e360 Migrate all tags components to React (#3138) 2018-11-29 11:35:17 +02:00
Truong Hoang Phuoc, Robert
1728f924cf Fix schema refresh to work on MySQL 8 (#3141) 2018-11-29 09:19:36 +02:00
Omer Lachish
8dc10fbd9a Merge branch 'master' into display-frontend-version 2018-11-29 09:13:41 +02:00
Jannis Leidel
a16170e701 Fix tag counts for dashboards and queries. (#3120)
* Fix tag counts for dashboards to be distinct.

This also makes use of the Dashboard.all base query.

Fix #3108.

* Use Query.all_queries as the base query for Query.all_tags.

* Add test case for Dashboard.all_tags.
2018-11-28 14:06:15 +02:00
Arik Fraimovich
07c0bba568 Delete now.json (#3134) 2018-11-28 10:36:33 +02:00
Arik Fraimovich
d36d18f85b Support unicode in Postgres/Redshift schema (#3124) 2018-11-27 09:06:44 +02:00
Arik Fraimovich
bd20ce12ac Don't allow updating user's email to blacklisted domain. (#3127) 2018-11-26 21:22:14 +02:00
Arik Fraimovich
1cdfcfaa3c Vertica: update driver & add support for connection timeout (#3125)
* Update Vertica driver version

* Vertica: add support for connection timeout
2018-11-26 21:21:49 +02:00
Arik Fraimovich
2fdace518a Use lower timeout for the first 5 seconds when polling for results. (#3128) 2018-11-26 21:21:07 +02:00
Igor Canadi
3516e4ef45 Add Rockset query runner (#3068)
* Add Rockset query runner

Per REST API documented here: https://docs.rockset.com/rest/

* Update rockset.py

* Add Rockset logo

* Refactor Rockset qury runner:

* More idomatic names for configuration.
* Move API code to separate class to make it easier removing it when we
  switch to official library.
* Make Test Connection work.

* apply autopep8 to rockset.py
2018-11-26 21:20:37 +02:00
Arik Fraimovich
d842968142 MongoDB: add support for sorting columns. (#3126) 2018-11-26 16:08:04 +02:00
Arik Fraimovich
600741620a Remove (Beta) from Query Results query runner name (#3123) 2018-11-26 15:31:39 +02:00
YOSHIDA Katsuhiko
45f4277eb4 Fix forked query is opened in the same tab (#3121) 2018-11-26 14:23:55 +02:00
Jannis Leidel
bcf3041c91 Show menu divider only if query is archived. (#3122)
Fix #3117.
2018-11-26 14:02:52 +02:00
Zsolt Kocsmárszky
da423340ec Fix mobile padding issues on Query results (#3111) 2018-11-26 13:41:07 +02:00
Arik Fraimovich
4003d4f1aa Add event tracking to autocomplete toggle & trackEvent helper function (#3114)
* Add non Angular version of Events.

* Add event tracking for autocomplete toggle

* Fix lint error in QueryEditor
2018-11-26 09:58:39 +02:00
YOSHIDA Katsuhiko
a6b782e0ce Add get_current_user() into Python Data Source (#3088) 2018-11-25 14:11:27 +02:00
YOSHIDA Katsuhiko
5648de9ba8 Open new tab when forking a query (#3089)
* Open new tab when forking a query

* Delete old fork menu item and add icon
2018-11-25 14:09:52 +02:00
Jannis Leidel
13eb365f7b Update changelog for v6.0.0-beta. (#3112)
* Add v6.0.0-beta changelog entry.

* Update CHANGELOG.md
2018-11-25 14:08:25 +02:00
Udomomo
8257d9d037 Add permissions to the result of "manage.py groups list" command (#3007)
* Add permissions to the result of "groups list" command

* added permissions to test case

* removed setting for debug
2018-11-25 13:47:25 +02:00
Allen Short
babbeb79f0 keep query text in local state for now (#3107) (#3110)
* keep query text in local state for now (#3107)

This will be unnecessary once the queryText prop isn't managed by Angular.

* Fix: make formatQuery work
2018-11-23 15:28:30 +02:00
Omer Lachish
8028397f27 Merge branch 'master' into display-frontend-version 2018-11-22 12:52:43 +02:00
Subhi Al Hasan
e05c8e6060 Fix collection fields retreival bug when Views are present in MONGO DB (#3097)
* Fix collection fields retreival bug when Views are present in MongoDB

* fixing _is_collection_a_view function

* Update redash/query_runner/mongodb.py

Co-Authored-By: jodevsa <jodevsa@gmail.com>
2018-11-21 17:13:12 +02:00
Omer Lachish
ef8839aafa add tests for comment attacks 2018-11-21 13:52:08 +02:00
Omer Lachish
14860f6a8b split .apply calls to newline 2018-11-21 13:51:19 +02:00
Omer Lachish
a52c783857 add test for union query injections 2018-11-21 13:45:52 +02:00
Omer Lachish
5e7c785891 add SQLQuery class with tests for safe queries and non-safe tautology attacks 2018-11-21 13:45:29 +02:00
Omer Lachish
b242cefaa0 Merge branch 'master' into backend-parameter-templating 2018-11-21 10:51:44 +02:00
Omer Lachish
fae2b70866 Merge branch 'display-frontend-version' of github.com:getredash/redash into display-frontend-version 2018-11-21 10:49:29 +02:00
Omer Lachish
1119fce44c Merge branch 'master' into display-frontend-version 2018-11-21 10:48:03 +02:00
Omer Lachish
bfb7edc0eb fix snapshot test 2018-11-21 10:47:54 +02:00
Omer Lachish
a39a739473 disable lint error due to use of globals 2018-11-21 10:44:34 +02:00
Omer Lachish
c9dfac5b1d rename version and commit to backendVersion and frontendVersion 2018-11-21 10:44:18 +02:00
Omer Lachish
1b66fff3be rename version and commit to backendVersion and frontendVersion 2018-11-20 23:34:39 +02:00
Arik Fraimovich
0fe1b5f9d4 Fix: registerAll fails after minification (#3106) 2018-11-20 23:34:37 +02:00
Levko Kravets
143db90a50 Fix query page header (#3046)
* getredash/redash#3017 Improve query page header

* getredash/redash#3017 Resolve conflicts

* getredash/redash#3017 CR1 (fix margins/paddings)
2018-11-20 18:48:41 +02:00
Arik Fraimovich
bac90db3ee Autocomplete toggle improvements (#3091)
* Autocomplete toggle improvements:

* Refactor to its own component.
* Show state in tooltip (enabled/disabled).
* Disable the toggle if autocomplete is not possible (no schema/too many tokens).

* Remove unsued code.

* Custom icons font (currently has only two icons).

Generated with Icomoon. If we extend its use, we should probably automate this and move to its own package.

* Don't disable live autocomplete for data sources without schema.

It can still be useful to autocomplete from local keywords.

* Differentiate between autocomplete toggle states with an icon.

Also added explicit message for the disabled state.

* Remember thes state of autocomplete.

* Only auto register init functions.
2018-11-20 18:45:33 +02:00
Omer Lachish
649d46de89 add commit to footer 2018-11-20 15:25:07 +02:00
Omer Lachish
0163e85eda configure git-revision-webpack-plugin 2018-11-20 15:24:55 +02:00
Omer Lachish
f25beb3fb7 add git-revision-webpack-plugin 2018-11-20 15:24:41 +02:00
Omer Lachish
c66f63d7a5 Prevent Query's updated_at from changing when it is linked to new query results (#3082)
* avoid Query's updated_at from changing when it is linked to new query results

* move comment to previous line

* move QueryResult tests to their own module

* add test which verifies that updated_at is not changed on query data
updates

* tests were false positives - they compared HH:MM:SS, but that never
changed because the original time was 1 week behind.

* remove redundant constructor

* remove hack and use a proper event to prevent updated_at from changing

* use self.assertEqual instead of assert
2018-11-20 12:22:15 +02:00
Levko Kravets
16ae0aa3d8 getredash/redash#2901 Fix docs links (#3102) 2018-11-20 11:06:09 +02:00
Arik Fraimovich
68ada7b590 UI for the feature flag of the share edit permissions feature (#3077)
* Remove unused settings.

* Add: UI feature flag for sharing permissions

* Revise feature flag message
2018-11-20 10:04:42 +02:00
San
9e745ef648 Delete redundant regex segment (#3100) 2018-11-20 09:48:24 +02:00
Allen Short
ee0d7f5ec9 force angular to update query editor properly (re #3098) (#3099) 2018-11-20 08:06:32 +02:00
Omer Lachish
1b3bbb6c3b swap parameters so their order makes more sense 2018-11-19 22:56:51 +02:00
Omer Lachish
7bee07c9da include parameters (and query_id) in the recorded event 2018-11-19 22:54:22 +02:00
Omer Lachish
74ab7a5a42 Merge branch 'master' into backend-parameter-templating 2018-11-19 21:59:14 +02:00
Levko Kravets
e36853ca84 Tags autocomplete: some tags not shown on search (#3094)
* getredash/redash#3052 Tags autocomplete: some tags not shown on search

* getredash/redash#3052 CR1
2018-11-19 12:33:05 +02:00
Omer Lachish
bc65b62776 remove Mustache templating from frontend and send all parameters to the
API (in the POST body)
2018-11-19 10:50:00 +02:00
YOSHIDA Katsuhiko
d43b35ba6f Change Standard SQL as the default (#3085) 2018-11-18 11:21:00 +02:00
Topher Cyll
6e4f0ccee8 Bubble chart marker size override was clobbering seriesColor. (#3063)
Colors can now be set for bubble charts in UI.
2018-11-18 11:05:18 +02:00
Vladislav Denisov
0ce7772aa3 clickhouse: added WITH TOTALS option support (#3083) 2018-11-15 22:11:43 +02:00
San
f6ef38479c support tel, sms, mailto links in the query result (#3084) 2018-11-15 22:08:02 +02:00
Arik Fraimovich
bf85ddaaff Always use basic autocomplete. (#3079) 2018-11-15 08:58:30 +02:00
Arik Fraimovich
8bb96c8c91 Fix: URL data source shouldn't require URL. (#3078)
Closes #2919.
2018-11-14 15:43:34 +02:00
Filipe Veloso
42b05cee00 Update docker-compose.yml (#2905)
* Update docker-compose.yml

jut updating docker-compose dev to version 3, any special reason to keep redis on 3? and pg on 9.5? I could also add a volume to pg, any reason not to do so?

* rollback to redis 3 and pg 9.5 due to consistency in project defaults

* Configure volume directly in worker service.
2018-11-14 14:27:19 +02:00
Anton Burnashev
d0fd02123a Add white-space padding to separators in the footer (#3076) (#3076)
Closes #3075
2018-11-14 10:44:38 +02:00
Takuya Arita
e34203dac3 Remove only Redash containers (#3073) 2018-11-13 16:45:40 +02:00
koooge
c2bd8518a6 Makefile: Add make targets for test (#3032) 2018-11-12 09:06:25 +01:00
Levko Kravets
46363ccc70 Table visualization horizontal scrollbar should not be always visible (#3061) 2018-11-12 07:50:44 +01:00
Levko Kravets
5e1512e777 Mustache: don't html-escape query parameters values (#3058) 2018-11-08 21:54:08 +01:00
Arik Fraimovich
188c045fdb Add Kylin logo (#3054) 2018-11-08 11:20:05 +01:00
Omer Lachish
57d921dc2b Druid query runner (#3047)
* add Druid query runner skeleton

* enable Druid only if package is available

* add Druid

* remove redundant  override

* correct configuration schema

* implements run_query

* implement get_schema

* remove username and password

* fix small lint issues

* proper indentation

* add correct type mapping
2018-11-08 10:48:45 +01:00
Xin Bai
df0804c8fd Add Kylin plugin for SQL query (#2936) 2018-11-08 10:24:05 +01:00
Alexander Leibzon
c289dde806 Google analytics fix fixes #2965 (#3008)
* add PagerDuty as an Alert Destination

* remove comments

* add unknown state handling

* fixes

* revert setup.sh

* Remove test method.

* resolves #2965

* more elegant, as per Arik's suggestion

* Add missing whitespace.
2018-11-08 10:18:33 +01:00
Levko Kravets
b7cadca3b7 Edit-in-place component ignored isEditable flag and didn't work on Groups page (#3049) 2018-11-08 10:17:18 +01:00
Sami Jaktholm
43f8200707 feat(redshift): hide tables the configured user cannot access (#2866)
The SVV_COLUMNS table used to determine the tables of a
Redshift database includes all tables, even those the
current user cannot access, by default. These tables clutter
the schema browser and make it harder for users to determine
which tables they should have access to.

These changes modify the Redshift query runner so that
tables the configured user cannot access are filtered
out from the database schema. The checks are two-fold:

* First, the query uses HAS_SCHEMA_PRIVILEGE to check if the
  current user has USAGE rights on a schema the given table
  belongs to. This privilege is required to access any of
  the tables in a schema.

* Second, the query tries to determine if the current user
  has SELECT access to the given table. Two cases need to
  be considered here:

  * First, we need to check if the table is part of an
    external schema. Access to tables in external schema
    is controlled at schema level - you cannot grant or
    revoke access to specific external tables. Additionally,
    the HAS_TABLE_PRIVILEGE returns an error if it is asked
    to give a verdict for an external table.

    Hence, the query checks if the schema a specific table
    belongs to is an external schema and if it is, the table
    is included in the list (if we got here the user already
    had USAGE on the given schema). This check short-circuits
    the table-level access check for external tables which
    means they are never passed to HAS_TABLE_PRIVILEGE().

  * Then, if the table was not part of an external schema,
    the HAS_TABLE_PRIVILEGE() function is used to determine
    if the user has SELECT access to the given table. The
    table is included in the schema if this check passes.

Together this condition ensures that tables the user definitely
cannot access are not included in the schema browser.

These changes have been tested to work in an environment that
includes normal and external schemas, normal and late-binding
views, and normal and external tables.
2018-11-08 09:53:04 +01:00
Arik Fraimovich
a1b580bba6 Fix Docker Compose version number in Cypress config (#3051)
* Update Docker compose version

* Experiment with Docker-Composeless CI build

* Switch back to Docker compose based tests
2018-11-07 17:21:31 +01:00
Zsolt Kocsmárszky
19d0313ea2 Fixing tag issues (#3006)
* Add title="" for tags

* Fix lines

* Fix long tag and overlaying tag issues on queries
2018-11-07 16:58:15 +01:00
Arik Fraimovich
667fe43e23 Revert "address tag display on query list page" (#3050)
* Revert "remove pytest_watch (#3048)"

This reverts commit 096eba3876.

* Revert "address tag display on query list page (#2803)"

This reverts commit 99115a12e6.
2018-11-07 16:57:37 +01:00
Omer Lachish
096eba3876 remove pytest_watch (#3048) 2018-11-07 16:49:41 +01:00
Alison
99115a12e6 address tag display on query list page (#2803)
* address tag display on query list page

* character limit tags in css

* updates to tags on levko's feedback
2018-11-07 16:12:31 +01:00
Gabriel Dutra
7d601cbbc9 Cypress based E2E tests (#3019) 2018-11-07 14:37:08 +01:00
GitSumito
bf6a09c5aa CLI sort (#3041) 2018-11-06 16:45:39 +01:00
Yossi-a
99967e720f Sort columns with undefined values (#2745)
* sort should treat undefine value as the minimal value

* explicit undefined check
2018-11-05 04:47:42 +02:00
Arik Fraimovich
27f489de20 Build docker image on master branch. (#3039) 2018-11-04 12:12:13 +02:00
yoavbls
46941d3aa1 Update Flask-Admin to 1.5.2 (#3036)
I don't know if someone uses flask-admin but I upgraded it because of this bug:
https://github.com/flask-admin/flask-admin/issues/1588
In 1.4.2 you cant add and edit records/
2018-11-01 15:58:50 +02:00
Levko Kravets
60c230add7 getredash/redash#3034 Postgres query runner: handle NaN/Infinity values (#3035) 2018-11-01 15:57:39 +02:00
Takuya Arita
0784a0c6f5 Add some tests for Query Results (#3031) 2018-10-31 11:05:17 +02:00
Zsolt Kocsmárszky
9288d89248 Fix query result section (#2980) 2018-10-29 22:09:49 +02:00
Levko Kravets
391fbe130b getredash/redash#2998 Charts lose responsive features after refreshing the dashboard (#3024) 2018-10-29 22:08:35 +02:00
Levko Kravets
e25c8c4145 getredash/redash#3022 Toolbox covers part of the chart (#3023) 2018-10-29 11:38:29 +02:00
Arik Fraimovich
57353d1b40 Add -beta to version 2018-10-28 15:58:20 +02:00
Arik Fraimovich
7f4e08154f Bump version 2018-10-28 15:56:32 +02:00
Arik Fraimovich
500c82815b Add netlify config (#2999) 2018-10-28 15:31:27 +02:00
Arik Fraimovich
4a846f04e9 Add settings to import 2018-10-28 11:11:11 +02:00
Takuya Arita
b1e9d87e2a Apply query format options from settings (#2342)
* Apply query format options from settings

* Apply sqlparse format options via env-vars
2018-10-28 10:40:07 +02:00
Arik Fraimovich
ab6ed7da34 Fix: setup.sh fails when run as root. (#2996)
Closes #2979
2018-10-23 09:49:24 +03:00
GitSumito
2e6883c527 Add "Users" users are belong to into groups list (#2991) 2018-10-21 11:40:07 +03:00
YOSHIDA Katsuhiko
4c44999b2c Fix an invalid prop type warning (#2992) 2018-10-21 11:39:37 +03:00
deecay
34c118cf83 Add: Heatmap chart visualization by Plotly (#2080) 2018-10-21 11:39:06 +03:00
Arik Fraimovich
38a89b9783 Table visualization: change default size to 25 and add more size options. (#2982) 2018-10-21 11:38:47 +03:00
YOSHIDA Katsuhiko
6e836795b2 Fix url scheme (#2994) 2018-10-21 11:38:11 +03:00
YOSHIDA Katsuhiko
719fc41dd1 Add page size settings (#2993)
Add page size settings.

| name | default | description |
| :---- | :------ | :---------- |
| `REDASH_PAGE_SIZE` | 20 | How many items are displayed in one page as default. |
| `REDASH_PAGE_SIZE_OPTIONS` | 5,10,20,50,100 | How many steps as page_size. |

This feature has requested at the meetup in Japan.

https://redash-meetup.connpass.com/event/101420/
2018-10-20 14:33:31 +02:00
Arik Fraimovich
467ec201da Add Jest based tests to our stack (#2985)
* Add Jest packages
* Add first test
* Install eslint rules for jest & move deps to dev
* Configure cirlce to run jest
* package.json: Remove dev command
* package.json: clean command
* Don't autoload test files.
* Fix: webpack-dev-server was recompiling all the files on every change
* Update CircleCI step names
2018-10-19 19:04:02 +03:00
koooge
5ab143de41 Rearrange make target (#2989) 2018-10-19 11:25:24 +02:00
Arik Fraimovich
284e497483 Databricks updates: logo, name and enable by default (#2983)
* Add Databricsk logo.
* Enable it by default.
* Rename to Databricks.
2018-10-19 10:00:33 +02:00
dmonego
c5613dddf1 Chnage: switch to Webpack 4 (#2933) 2018-10-18 21:21:47 +03:00
Arik Fraimovich
34fb3ac79f Change: add timeout to destination requests. (#2960) 2018-10-18 17:33:58 +03:00
Arik Fraimovich
5f58c328f1 MongoDB: skip system collections when loading schema. (#2961) 2018-10-18 17:33:24 +03:00
Arik Fraimovich
7d1dbb87db Change: update MongoDB requirements to support srv. (#2962) 2018-10-18 17:32:43 +03:00
GitSumito
45f4d46245 Add "Groups" users are belong to into users list (#2967) 2018-10-18 17:32:21 +03:00
Arik Fraimovich
44d05c35ac Presto query runner improvements (#2968)
* Presto: support for setting protocol (http/https).

* Presto: safe loading error message.
2018-10-18 17:31:48 +03:00
Arik Fraimovich
edd2cb85f7 Update CHANGELOG.md 2018-10-18 14:59:00 +03:00
Hiroka Zaitsu
6c364369bb Fix: TreasureData data source - deduplicate column names (#2867)
* Fix: TreasureData data source - deduplicate column names

* Maping types
2018-10-18 09:43:28 +03:00
YOSHIDA Katsuhiko
869841b2ac Preventing open redirection (#2906)
* Prevent open redirection attack

* Add redirection url after logging in test

* Sanitize url just before redirecting it

* Consider when next parameter is None
2018-10-17 21:55:58 +03:00
Arik Fraimovich
c71f722552 Query Results query runner improvements: (#2969)
- Show meaningful error when failing to create table.
- Quote column names to allow more characters types.
2018-10-16 15:23:00 +03:00
Jannis Leidel
af3a1e00c6 Fix #2757 - Use full text search ranking when searching in list views. (#2798)
This applies to the queries, dashboard and users views.
2018-10-16 10:38:37 +02:00
Gabriel Dutra
5b2ec81e65 Fix no tags shown when having empty set (#2964) 2018-10-15 23:08:18 +03:00
Vladislav Denisov
0008e5803b clickhouse: move timeout to params (#2956)
* clickhouse: timeout moved to params

* clickhouse: use get() method for timeout
2018-10-15 20:06:16 +03:00
Arik Fraimovich
e1c1f67abb Add: option to auto reload widget data in shared dashboards. (#2959) 2018-10-15 20:05:40 +03:00
Marina Samuel
30283235a4 Fix tarball build failure. (#2963) 2018-10-15 20:05:07 +03:00
Levko Kravets
845e33b396 Query page layout improvements for small screens (#2922)
* getredash/redash#2796 Make entire page scrollable on small screens; improve metadata block

* getredash/redash#2796 Improve query page header layout; fix small bugs (margins, etc.)
2018-10-15 19:59:05 +03:00
Arik Fraimovich
17baa66188 Show "Add description" only after saving the query. (#2958)
Closes #2897
2018-10-15 17:45:22 +03:00
Arik Fraimovich
5df7bd12c9 Fix: apply missing CSS classes to EditInPlace component. (#2957) 2018-10-15 17:38:22 +03:00
Nicolas Ferrandini
e14c8b61a0 Add DB2 as a data source using ibm-db python package (#2848)
* Add DB2 as a data source using ibm-db python package

* fix some codeclimate issue

* fix long line and missing white space

* Manage case of bad import

* Add DB2 query_runner as default query runner

* Fixed minor PEP8 rules
2018-10-15 17:13:39 +03:00
Arik Fraimovich
a8a3ec66fd Bring back fix to Box plot hover. (#2941) 2018-10-15 16:01:38 +03:00
GitSumito
a4b9c2da12 fixed https://github.com/getredash/redash/issues/2950 (#2951)
* fixed https://github.com/getredash/redash/issues/2950

* fixed test code

* Effective -> Active. thank you @kravets-levko
2018-10-15 15:57:51 +03:00
Vladislav Denisov
e6146dae0f Clickhouse fixes (#2953)
* clickhouse: avoid last line with comment in query

* clickhouse: add request timeout
2018-10-15 15:03:02 +03:00
Levko Kravets
bd3fe880a4 Add missing default "extensions" directory (webpack fails to build without it) (#2952) 2018-10-15 13:51:13 +02:00
Marina Samuel
02e919c39b Closes #2565: Add frontend extension capability. (#2799) 2018-10-14 15:53:39 +03:00
Arik Fraimovich
99c73aef2d Update snowflake_connector_python version (#2946) 2018-10-14 14:39:52 +03:00
Ralphilius
be377b5f59 Add Counter label (#2900)
* Add Counter label

* Update index.js

* Added visualization name as placeholder

* Backward-compatible for visualization name as label
2018-10-14 11:23:20 +03:00
Zsolt Kocsmárszky
6b11ae4312 Design refinements (#2927)
* Fix search size on smaller tablet size

* Less prominent tag counter

* Fix hiding logo

* Add missing space between icon and button text

* Different embed icon

* Revert embed icon to its original

* Better edit source icon + markup cleanup
2018-10-14 11:00:27 +03:00
YOSHIDA Katsuhiko
9021977a54 Fix admin api recording (#2937) 2018-10-14 10:49:11 +03:00
Sami Jaktholm
9c8d06578a feat: add support for expanding dashboard visualizations (#2824)
* feat: add support for expanding dashboard visualizations

These changes implement support for expanding a dashboard visualization
into a larger modal dialog.

This is useful if you have a dashboard with lots of small widgets and
want to inspect one of the widgets more closely. In the past, this
would've required you to navigate to the query page to see a larger
version of the visualization. With these changes, visualizations can
be expanded right from the dashboard.

The implementation is simple as it just renders the visualization into
a modal dialog. Other parts of the widget (e.g. parameters) are not
included in this dialog.

* chore(widget-dialog): use query-link widget to render title

This reduces code duplication a bit. The link is made read-only
as navigation doesn't close the modal dialog.

* fix: make ui-select dropdown z-index > modal dialog z-index in dashboard page

Otherwise the dropdown renders behind the modal dialog if filter value
is changed from the modal view of a widget.
2018-10-14 10:42:31 +03:00
YOSHIDA Katsuhiko
114beb2480 Auto focus tag input (#2938) 2018-10-14 10:39:08 +03:00
Alexander Leibzon
e97a5cbb29 add PagerDuty as an Alert Destination (#2903) 2018-10-14 10:35:39 +03:00
Alexander Leibzon
e87efc8bc3 fixes #2924 (#2931)
Google Spreadsheets: support for open by url
2018-10-11 21:07:20 +03:00
Arik Fraimovich
be7f601d21 Speed up builds by skipping installing requirements_all_ds.txt in CI unit tests (#2928)
* Speed up builds by skipping requirements_all_ds.txt

* Update docker compose file version

* Start services before running commands

* Add boto and Athena dependencies to requirements_dev.txt
2018-10-11 14:12:28 +03:00
Levko Kravets
9b59d10677 Use Plotly's function to clean y-values (x may be category or date/time) (#2872) 2018-10-11 12:27:28 +03:00
Levko Kravets
a40669e07f getredash/redash#2875 Update plotly.js; some cleanup; fix chart legend issue in horizontal mode (#2902) 2018-10-11 11:23:40 +03:00
Levko Kravets
0bcf5d4be7 Merge pull request #2929 from combineads/fix-date-filter
Fix: date value in a filter is duplicated.
2018-10-11 09:08:31 +03:00
combineads
8bc96764a6 Fix: date value in a filter is duplicated. 2018-10-11 14:56:57 +09:00
Niko Eckerskorn
6ea03e58b4 Address edgecase when retrieving Glue schemas for Athena query runner. (#2868)
Fixes getredash/redash#2858
2018-10-10 19:13:48 +03:00
Gabriel Dutra
94801665ab Fix output file name not changing after rename query (#2917) 2018-10-10 15:07:11 +03:00
Gabriel Dutra
aa12151e19 Fix export query results output file name (#2916)
- regexp `/ /g` will seek for all space ocurrences, not only the first
2018-10-10 14:56:31 +03:00
Jannis Leidel
c2429e92d2 Consistently use simplejson to loading and dumping JSON. (#2817)
* Consistently use simplejson to loading and dumping JSON.

This introduces the new functions redash.utils.json_dumps and redash.utils.json_loads and simplifies the custom encoder setup.

UUIDs are now handled by the default encoder, too.

Fixes #2807.

Use string comparison in parse_boolean instead of the (simple)json module.
2018-10-09 15:38:06 +02:00
Jannis Leidel
5ffc85c066 Extend menu item text a bit for visual consistency. 2018-10-08 20:08:07 +02:00
Jannis Leidel
fad757c878 Don’t show “Add to dashboard” in dropdown to unsaved queries. 2018-10-08 20:08:07 +02:00
Jannis Leidel
3351a281ee Fix webpack build error about BigMessage. (#2910) 2018-10-08 12:03:54 +02:00
Arik Fraimovich
1f0053f531 MySQL: hide sys tables (#2909) 2018-10-08 10:05:16 +03:00
Arik Fraimovich
935dc38360 Update setup files: (#2908)
* Remove use of newgrp
* Updated packer configuration
2018-10-08 09:41:15 +03:00
Arik Fraimovich
bfef7fae93 Remove unused dependencies. (#2907)
Closes #2782
2018-10-08 09:39:57 +03:00
cclauss
da6d456f6f CircleCI: Flake8 tests passing on Legacy Python and Python 3 (#2881) 2018-10-05 13:48:01 +03:00
Arik Fraimovich
c19199c2fb Add margin between format and autocomplete buttons (#2899) 2018-10-04 12:34:03 +03:00
Arik Fraimovich
1e78861f85 Move Ant styles into a central location. (#2898)
This is to ensure that we include our override after loading Ant's styles.
2018-10-04 12:27:36 +03:00
Arik Fraimovich
10bc5a0bf6 Remove misplaced bracket. (#2894) 2018-10-04 12:01:38 +03:00
Marina Samuel
313af904df Add ability for extensions to add periodic tasks. (#2740) 2018-10-04 09:07:58 +03:00
Allen Short
8c478087a9 Rewrite query editor to React (#2636) 2018-10-03 22:25:19 +03:00
Arik Fraimovich
ccac41c6d4 Fix: JS build breaks because registerAll tries to run EditInPlace component (#2886) 2018-10-02 16:22:47 +03:00
Jannis Leidel
69635f2c40 Rename Yandex Metrika to Metrica. (#2884)
Fix #2874.
2018-10-02 16:11:01 +03:00
yoavbls
1867ea50bb Add option to query cached results (#2855) 2018-10-02 16:05:41 +03:00
Jannis Leidel
c64d5ef6c0 Fix #2876 - Remove accidental query-result-link component from 'Add to dashboard link.' (#2883) 2018-10-01 22:29:20 +03:00
Alison
e3a63899d3 Add ability to search table column names in schema browser (#2681) 2018-10-01 11:11:32 +02:00
Jannis Leidel
4685887fe5 Fix name of edit-in-place React component. 2018-09-29 10:14:48 +02:00
Arik Fraimovich
f103357e60 Fix: wrong reference (EditInPlaceText -> EditInPlace) 2018-09-28 21:51:36 +02:00
Jannis Leidel
11738f73ac Removed redundant exception handling since execute_query task handles that. 2018-09-28 21:31:49 +02:00
Allen Short
d07c4f969b Support authentication for the URL query runner.
Adds a new BaseHTTPQueryRunner class and tests.
2018-09-28 21:31:49 +02:00
Allen Short
505aafbce3 Convert edit-in-place component to React (#2637) 2018-09-28 22:30:10 +03:00
Marina Samuel
b765693879 Upgrade Celery to 4.2.1. (#2773) 2018-09-28 21:28:30 +02:00
Jannis Leidel
4620fed0cf Use server side sort order for tag list and show count of tagged items. (#2833)
* Use tag list ordering from backend.

This basically stops resorting the tag list on the client side and use the already existing (and correct) descending sort order bu tag usage count from the backend.

* Show count of tagged items in tag list.
2018-09-28 17:24:13 +03:00
Arik Fraimovich
48ad1d2dce Add v5.0.1 to the CHANGELOG. 2018-09-28 17:18:41 +03:00
Arik Fraimovich
f2c323a089 Disable integration tests
The integration tests are currently not failing and providing false positives when running them. I'm disabling this until the test suite is more stable.

@jrbenny35 @jezdez
2018-09-28 11:52:14 +03:00
Levko Kravets
ec17cc7eab getredash/redash#2854 Widget titles wrong rendering on public dashboards (#2870) 2018-09-28 11:26:37 +03:00
Arik Fraimovich
6c7bbe9041 Merge branch 'master' of github.com:getredash/redash 2018-09-27 21:47:56 +03:00
Arik Fraimovich
551b0222c4 Cleanup packer configuration 2018-09-27 21:47:45 +03:00
Jannis Leidel
2b0e6e9e79 Refactor list based controllers. (#2790)
This reduces the code duplication between the dashboard, user and queries list pages and normalizes many of the APIs between them.

This also:
- allows sorting query favorites
- adds a pagination size select to the dashboard list
- fixes a bunch of UI inconsistencies between the queries and dashboards list (e.g. margins)

The new ListCtrl class is subclassed in the various specific page controllers and extended as needed. New list pages can make use of the same pattern in the future.

This also adds some missing event recordings from 34e39eda4a.
2018-09-27 17:06:26 +02:00
Levko Kravets
4727c19253 getredash/redash#2796 Improve counter text scaling (#2840) 2018-09-27 13:27:10 +03:00
Arik Fraimovich
2ff4d07e83 Change placement (right/bottom) of chart legend depending on chart width (#2852)
Closes getredash/redash#2796.
2018-09-27 12:34:28 +03:00
Arik Fraimovich
1997f53f40 Fix CircleCI setup for release branches. (#2859) 2018-09-27 10:36:48 +03:00
Jannis Leidel
c03b5d51b7 Simplified data source resource. Refs #2856. 2018-09-27 09:20:07 +02:00
yoavbls
197665bb6a Fix bug in DataSourceResource load (#2857) 2018-09-27 09:15:36 +02:00
Levko Kravets
28fbc2ae62 getredash/redash#2796 Change placement (right/bottom) of chart legend depending on chart width 2018-09-27 10:14:58 +03:00
Alexey Korobkov
ea1c4ca85c Add auth via JWT providers (#2768)
* authentication via JWT providers
* add support for IAP JWT auth
* remove jwt_auth Blueprint and /headers endpoint
* fix pep8: imports
2018-09-26 21:17:48 +03:00
Alison
588e0cce43 Add autocomplete toggle (#2780) 2018-09-26 17:32:38 +02:00
Alison
8a50351520 Add ability to add viz to dashboard from query edit page (#2767) 2018-09-26 17:29:38 +02:00
Alison
34e39eda4a Port moving events serverside (#2766) 2018-09-26 17:17:46 +02:00
Alison
28a8525ce3 Add databricks query runner (#2747)
Fixes #2685.
2018-09-26 17:07:03 +02:00
Arik Fraimovich
5e70f9c04a Update README.md 2018-09-25 21:08:46 +03:00
Arik Fraimovich
a05b5ba68d Docker based setup scripts (#2850) 2018-09-25 21:08:24 +03:00
Dan VerWeire
40ba66c58e Fix invalid reference to alert.to_dict() in webhook (#2849) 2018-09-25 19:12:04 +03:00
Arik Fraimovich
3e4adaba9a Update CircleCI config to use release branches 2018-09-24 11:52:38 +03:00
Arik Fraimovich
865b799dfd Merge branch 'master' of github.com:getredash/redash 2018-09-21 17:06:46 +03:00
Arik Fraimovich
eed26c789e Update CHANGELOG & version to V5 2018-09-21 17:06:26 +03:00
Arik Fraimovich
8c9d2af6fe Fix: BigQuery default location is null and not US (#2841)
If no location is specified BigQuery uses US or EU. If we pass US
it breaks querying for EU users.
2018-09-21 16:49:30 +03:00
Arik Fraimovich
03cac7e515 Fix: backport security fix from v4.0.2 - don't expose Google OAuth client secret. (#2839) 2018-09-20 12:32:38 +03:00
Arik Fraimovich
defb3b9750 Fix: favorite button on homepage is not yellow. (#2838) 2018-09-20 10:39:36 +03:00
Arik Fraimovich
ec39bb0779 Fix: query embeds are broken. (#2837) 2018-09-20 10:36:15 +03:00
ariarijp
1661553da7 Fix typo 2018-09-18 08:56:01 +02:00
Arik Fraimovich
a4d5782ea1 Update ISSUE_TEMPLATE.md 2018-09-17 22:08:49 +03:00
Arik Fraimovich
d491eddd7d Add security section to README. 2018-09-17 22:07:31 +03:00
Zsolt Kocsmárszky
47068a6d91 Improved mobile design (#2800)
* Improve mobile views

* Better fontsize for dashboard headers

* Add hidden-xs classes instead

* Move dashboard related styling to dashboards.less
2018-09-16 10:46:30 +03:00
Alison
d8ced1401f add test for using saved parameters in scheduled queries (#2802) 2018-09-16 10:45:25 +03:00
Jannis Leidel
59a5540823 Use QuerySerializer in outdated queries list. (#2821)
This is a regression from aa756b2be6.
2018-09-16 09:49:22 +03:00
Jannis Leidel
b1f5d60460 Minor code smell cleanup. (#2820)
* Remove unused parse_db_url function.

* Fix tests to not show command line warnings anymore.

* Minor code smell cleanup.

Removing unneeded imports fixing PEP8 issues.
2018-09-16 09:43:44 +03:00
Tim Smith
5c9852b9d9 Fix QueryResultListResource docstring
Change the docstring to reflect the behavior of the function
2018-09-14 22:23:06 +02:00
Levko Kravets
8c360d5c8d Fix: sometimes widgets are getting zero height (#2813) 2018-09-14 16:33:24 +03:00
Levko Kravets
eb6f9d5ab8 Merge pull request #2816 from getredash/simplejson-parent-method
Use parent default method of simplejson encoder.
2018-09-14 12:05:45 +03:00
Jannis Leidel
4ab160a14c Use parent default method of simplejson encoder. 2018-09-14 10:29:38 +02:00
Arik Fraimovich
93b34bcbce UI Fixes for favorites and empty state (#2808)
* Better empty state for favorites on homepage
* Fix: show empty state when no dashboards available
* More explicit message in app header
2018-09-12 11:35:34 +03:00
Benjamin Forehand Jr
5113f4ff33 Add npm install for integration test job. (#2795)
* Add npm install.

* Fix typo.
2018-09-07 09:16:58 +02:00
Benjamin Forehand Jr
151683f9f9 Add npm build step to integration tests. (#2794) 2018-09-06 19:55:08 +02:00
Levko Kravets
53abc16780 Athena: Switch to simple_json to serialize NaN/Infinity values as nulls.
Fixes #2544.
2018-09-04 13:03:21 +03:00
Arik Fraimovich
d529a1dfb3 Fix: queries with parameters with no value breaking the scheduler. (#2786) 2018-09-04 11:32:37 +03:00
Arik Fraimovich
7cb7f3a99d Fix: MongoDB query results parser didn't support unicode keys. (#2785) 2018-09-04 11:30:40 +03:00
Arik Fraimovich
c27528fb7e Fix: Google Analytics schema wasn't loading (#2784)
Some Google Analytics properties don't have defaultProfileId, which was preventing the schema from loading.
2018-09-04 11:29:19 +03:00
Arik Fraimovich
841642b9fc Fix: build Docker image only in tagged versions 2018-08-31 08:42:50 +03:00
Arik Fraimovich
04c97067ac Forgot to enable Docker 🤦 2018-08-30 21:35:31 +03:00
Arik Fraimovich
41113404c0 Remove deprecated argument from docker login command 2018-08-30 20:46:08 +03:00
Arik Fraimovich
bcaa54edf1 Merge branch 'master' of github.com:getredash/redash 2018-08-30 20:45:47 +03:00
Arik Fraimovich
a6d501a394 More improvements to CircleCI configuration (#2777)
* Moved configuration to `.circleci/config.yml` as the documentation for V2 suggests.
* Created a dedicated Docker Compose configuration (in `.circleci/docker-compose.yml`) to remove volumes configuration as this is not supported with CircleCI's Docker executer.
* Fix the Docker image build and tarball packing jobs to work and use correct version.
2018-08-30 20:19:52 +03:00
Arik Fraimovich
e4305e05ad Updates to CircleCI 2 configuration (#2774)
* Remove references to Gitter
* Move integration tests to their own workflow and run only on master branch
* Fix error in integration tests configuration
* Update names of stages
2018-08-29 19:34:47 +03:00
Arik Fraimovich
84f1218849 Remove references to Gitter 2018-08-29 12:04:43 +03:00
Benjamin Forehand Jr
99dd4ddca2 Initial update to circleci v2 config. (#2672) 2018-08-29 11:19:25 +03:00
Arik Fraimovich
6f26b9638b Merge pull request #2769 from kravets-levko/bug/dashboard-parameters-not-updated
Date/time params not working as global param
2018-08-29 09:50:11 +03:00
Zsolt Kocsmárszky
72632be04d Remove unnecessary X at the end of the query search (#2736) 2018-08-28 21:56:12 +02:00
Jannis Leidel
bfd128413c Add server-side sorting to dashboard list. (#2760)
Fix #2771. Refs #2731.
2018-08-28 20:45:26 +02:00
Jannis Leidel
bc15c0b6d1 Sort queries in descending order. (#2759)
Refs #2731.
2018-08-28 20:27:35 +02:00
Levko Kravets
636276c9c4 getredash/redash#2730 2018-08-28 14:11:56 +03:00
Arik Fraimovich
57e4496ea5 Merge pull request #2754 from kravets-levko/bug/dashboard-widgets-crumble
Widgets crumble when trying to move / resize a widget
2018-08-27 21:18:31 +03:00
Arik Fraimovich
bd7ce3a2ce Merge pull request #2734 from Yossi-a/master
handling rows with "length" field with forOwn method
2018-08-27 18:42:29 +03:00
Arik Fraimovich
8ef89177ff Merge pull request #2761 from getredash/init_cleanup
Remove unnecessary init methods.
2018-08-24 00:05:47 +03:00
Alison
82af372583 Throw error when non-owner tries to add a user to dashboard permissions (#2650)
Add error message when non owner tries to add a user to a dashboard

Fixes #2592

REDASH_FEATURE_SHOW_PERMISSIONS_CONTROL has to be true for this to be applicable.

Operation threw a 403 Forbidden error before this change but it is in the console not shown to the user.
2018-08-23 20:51:08 +02:00
Alison
341a68c7d4 Propagate query execution errors from Celery tasks properly (#2713)
Refs https://github.com/mozilla/redash/issues/458
2018-08-23 20:33:43 +02:00
Jannis Leidel
8fa2a6649a Remove unnecessary init methods. 2018-08-23 20:29:40 +02:00
Levko Kravets
c6cb6061e3 getredash/redash#2494 Widgets crumble when trying to move / resize a widget 2018-08-20 12:27:36 +03:00
Jannis Leidel
4d2df72f1f Merge pull request #2750 from getredash/search-route-reload
Reload the route when using the app header search input.
2018-08-16 18:35:05 +02:00
Jannis Leidel
038966a39a Merge pull request #2741 from sjakthol/fix-alerts
fix broken query selection in alert page
2018-08-16 18:09:41 +02:00
Jannis Leidel
9044de6142 Merge pull request #2742 from nasmithan/embed-parameters-query-test-fix
Fix query_results for Embedded Parameters (removed deprecated to_dict function)
2018-08-16 17:57:35 +02:00
Jannis Leidel
b746c433ea Reload the route when using the app header search input. 2018-08-16 17:49:25 +02:00
Jannis Leidel
a0e8c3d2e5 Merge pull request #2729 from combineads/master
Fix: support unicode in dashboard search
2018-08-15 19:24:12 +02:00
Jannis Leidel
6ef6a2f484 Merge pull request #2735 from kocsmy/fix/remove-unnecessary-space
Remove space between text and :
2018-08-13 19:11:13 +02:00
Nathan Smith
5581e48474 Change from deprecated to_dict to query.query_text 2018-08-10 14:11:57 -06:00
Sami Jaktholm
a251d8fab0 fix broken query selection in alert page
The following error occurs when a query is selected in the
alert page:

> TypeError: "item.getQueryResultPromise is not a function"

This is because .onQueryHandler() is given a plain object instead of a
Query when a query is selected from the dropdown.

These changes fix the issue by wrapping the plain object into a Query
object before calling .getQueryResultPromise() on it.
2018-08-10 22:31:59 +03:00
Zsolt Kocsmarszky
6ecb215896 Remove space between text and : 2018-08-10 16:58:17 +02:00
Yossi Ayun
df4b34c179 handling rows with "length" field with forOwn method 2018-08-09 22:31:48 +03:00
Byunghwa Yun
e3f20abf16 Fix: support unicode in dashboard search 2018-08-09 12:00:16 +09:00
Arik Fraimovich
1cafcc1eac Merge pull request #2724 from getredash/users-unicode
Fix: support unicode in users search
2018-08-07 18:02:20 +03:00
Arik Fraimovich
f6aab04a4b Fix: support unicode in users search 2018-08-07 17:51:46 +03:00
Arik Fraimovich
674a689400 Update v5-beta release date. 2018-08-06 21:51:33 +03:00
Arik Fraimovich
7e0e498d33 Update CHANGELOG for v5beta 2018-08-06 18:31:57 +03:00
Arik Fraimovich
a1c566fea7 Merge branch 'master' of github.com:getredash/redash 2018-08-06 16:18:06 +03:00
Arik Fraimovich
4f7cb89e91 Update CHANGELOG for v5-beta. #2700 2018-08-06 16:17:28 +03:00
Arik Fraimovich
035b26b631 Merge pull request #2722 from getredash/es-fix
Fix: don't send source_content_type
2018-08-06 16:13:01 +03:00
Arik Fraimovich
a3e0990143 Fix: don't send source_content_type - instead use GET body with content type header 2018-08-06 16:03:48 +03:00
Arik Fraimovich
0772b12f19 Merge pull request #2720 from getredash/users
Fix #2718: query search is broken.
2018-08-05 18:20:46 +03:00
Arik Fraimovich
f3fed27383 Merge branch 'master' into users 2018-08-05 18:20:21 +03:00
Arik Fraimovich
573865f1cc Fix #2718: query search is broken. 2018-08-05 18:19:07 +03:00
Arik Fraimovich
1e6d6bbeb3 Merge pull request #2715 from getredash/users
Improve users list page
2018-08-05 18:10:15 +03:00
Arik Fraimovich
b89bb392ce Fix: enable/disable wasn't working on users list. 2018-08-05 18:09:14 +03:00
Arik Fraimovich
e4dba1ca8e Switch more strings to unicode. 2018-08-05 17:58:29 +03:00
Arik Fraimovich
2e08d8deb4 Reset to page 1 when updating search string. 2018-08-05 17:58:09 +03:00
Arik Fraimovich
1676d34af6 Fix: make sure paginator component reflects current page number. 2018-08-05 17:57:55 +03:00
Arik Fraimovich
f96a0f338d Use unicode strings. 2018-08-05 16:34:43 +03:00
Arik Fraimovich
226dd65d53 Update users handlers tests. 2018-08-05 16:14:24 +03:00
Arik Fraimovich
188467ec64 Switch to sqlalchemy_utils.EmailType 2018-08-05 16:14:12 +03:00
Arik Fraimovich
2d4983a224 Show correct empty state when no users found. 2018-08-05 14:56:41 +03:00
Arik Fraimovich
629f61772f Use new users search API. 2018-08-05 14:51:39 +03:00
Arik Fraimovich
deaa891eb2 Merge pull request #2712 from kravets-levko/feature/date-range-params
Date/Time Range parameter type
2018-08-05 14:03:30 +03:00
Arik Fraimovich
351e0f8fdb Merge pull request #2719 from maxv/closing-input-tag
Remove closing input tags
2018-08-05 13:59:02 +03:00
maxv
3ecec4ba8b Remove closing input tags 2018-08-04 11:02:44 +03:00
Levko Kravets
a2ca793ddd getredash/redash#2643 Date/Time Range parameter type 2018-08-03 12:24:23 +03:00
Arik Fraimovich
5eb280ef01 Update users list to be paginated and sortable. 2018-08-01 23:28:57 +03:00
Arik Fraimovich
d7946dafd6 Link to user page from group users list. 2018-08-01 23:28:02 +03:00
Arik Fraimovich
bdff248dd7 Fix: dashboards list page wasn't updated to new paginator API. 2018-08-01 23:27:27 +03:00
Arik Fraimovich
c6b129d726 Move order_results helper to redash.handlers.base. 2018-08-01 23:27:12 +03:00
Arik Fraimovich
1468d6e257 Change CaseInsensitiveComparator to support all operations. 2018-08-01 23:26:52 +03:00
Arik Fraimovich
a014df36d8 Merge pull request #2686 from jezdez/serverside
Implement server side pagination and sorting for queries lists
2018-08-01 16:55:40 +03:00
Arik Fraimovich
06ad89f75b Merge pull request #2710 from kocsmy/design/ant-to-redash
Update Ant variables to fit Redash's style
2018-08-01 12:23:40 +03:00
Zsolt Kocsmarszky
692e7f9547 Use more variables 2018-08-01 10:58:14 +02:00
Zsolt Kocsmarszky
03262867fe Merge branch 'master' into design/ant-to-redash 2018-08-01 10:39:39 +02:00
Zsolt Kocsmarszky
8eb9ae604e Working version of overwrite (not in component level) 2018-07-31 16:23:43 +02:00
Zsolt Kocsmarszky
9bb8ec2f66 Adjust input colors to match 2018-07-31 14:32:38 +02:00
Zsolt Kocsmarszky
340184a796 Adjust input color 2018-07-31 14:18:12 +02:00
Zsolt Kocsmarszky
f0502ba088 Refine input design 2018-07-31 14:14:29 +02:00
Arik Fraimovich
44014d7eab Merge pull request #2482 from matsumo/add_chatwork_destination
add support ChatWork Alert Destination.
2018-07-31 15:13:29 +03:00
Arik Fraimovich
6b671817a2 Merge pull request #2649 from getredash/js-style-guides
Add references to Airbnb's style guides in contribution guide.
2018-07-31 15:11:27 +03:00
Arik Fraimovich
5da481e2c3 Merge pull request #2709 from getredash/format-button
Move format button next Add New Param button.
2018-07-31 15:10:16 +03:00
Arik Fraimovich
40c8cef821 Move format button next add new param button. 2018-07-31 15:09:23 +03:00
Zsolt Kocsmarszky
13d891bac3 Move styling import to main.less and add var overwrites 2018-07-31 14:07:01 +02:00
Arik Fraimovich
73f7476434 Merge pull request #2678 from kravets-levko/feature/add-parameter-dialog
Explicit "Add Parameter" Button in Query Editor
2018-07-31 14:26:42 +03:00
Arik Fraimovich
8017893c00 Merge. 2018-07-31 14:23:58 +03:00
Levko Kravets
d1ddc4631d getredash/redash#2644 CR1 2018-07-31 14:12:02 +03:00
Arik Fraimovich
a94f2efc80 Fix keyboard shortcut and update the tooltip. 2018-07-31 14:11:10 +03:00
Arik Fraimovich
0127799ec7 Merge with master. 2018-07-31 14:10:47 +03:00
Levko Kravets
e2313e67b6 getredash/redash#2644 Explicit "Add Parameter" Button in Query Editor 2018-07-31 14:06:31 +03:00
Arik Fraimovich
50c37c0469 Use unicode for default message template. 2018-07-31 13:38:23 +03:00
Arik Fraimovich
c6f75ddbb2 Merge pull request #2513 from kyoshidajp/support_location_in_bq_dataset
Add location property to BigQuery data source settings
2018-07-31 13:03:22 +03:00
Arik Fraimovich
85230e3cc3 Merge pull request #2616 from kravets-levko/feature/pie-colors
Pie chart: sectors colors
2018-07-31 13:00:11 +03:00
Arik Fraimovich
ccaf849328 Add schedule & created_at to allowed order_by values for queries. 2018-07-31 11:39:35 +03:00
Arik Fraimovich
494f43b997 Show null duration as '-'. 2018-07-31 11:39:19 +03:00
Arik Fraimovich
f9e2895f16 Merge pull request #2664 from kravets-levko/bug/dashboard-indefinite-spinner
Dashboard shows a spinner when query failed to load
2018-07-30 22:49:36 +03:00
Arik Fraimovich
92bdac0ee2 Merge pull request #2697 from kravets-levko/feature/datetime-current-time
Date/Time parameters: dynamic default value (current date/time)
2018-07-30 14:59:48 +03:00
Levko Kravets
b19dec08d0 getredash/redash#2602 CR1 2018-07-30 11:56:02 +03:00
Levko Kravets
9926359c45 getredash/redash#2602 Dashboard shows a spinner when query failed to load 2018-07-30 11:41:47 +03:00
Levko Kravets
b0f0b49d1c getredash/redash#2642 Date/Time parameters: dynamic default value (current date/time) 2018-07-30 11:18:08 +03:00
Arik Fraimovich
016166c193 Merge pull request #2626 from kravets-levko/feature/query-page-messages
Show real status when loading cached query result
2018-07-29 15:49:38 +03:00
Arik Fraimovich
dd2f24f976 Merge pull request #2458 from kyoshidajp/get_all_tables_in_bq
Get all tables in the BigQuery
2018-07-29 15:11:46 +03:00
Arik Fraimovich
f89d64e467 Merge pull request #2663 from ariarijp/improve-spreadsheets
Set column name implicitly when column name is blank
2018-07-29 14:50:12 +03:00
Arik Fraimovich
02e6edf111 Bump version 2018-07-26 17:42:08 +03:00
Arik Fraimovich
18768885f2 Fix status page layout 2018-07-26 17:33:09 +03:00
Katsuhiko YOSHIDA
5ca59a5002 Change the way to get the default location 2018-07-26 08:09:57 +09:00
Arik Fraimovich
25ae7b4a88 Merge pull request #2698 from getredash/small-07-2018
Make sure we return distinct data source values
2018-07-25 20:26:58 +03:00
Arik Fraimovich
1f01fe2f39 Make sure we return distinct data source values 2018-07-25 19:38:15 +03:00
Arik Fraimovich
d70bcfd615 Merge pull request #2695 from kravets-levko/feature/better-datetime-inputs
Improve Date/DateTime type parameters
2018-07-25 16:27:32 +03:00
Levko Kravets
94da0d90b9 getredash/redash#2642 CR1 2018-07-25 16:15:49 +03:00
Levko Kravets
487dd6b88d getredash/redash#2642 Improve Date/DateTime type parameters 2018-07-25 15:00:09 +03:00
Arik Fraimovich
01b3d428c3 Merge pull request #2315 from yuua/fix_hive_type_match
Fix: pyHive type matches
2018-07-25 13:38:13 +03:00
Arik Fraimovich
d30dd63656 Merge pull request #2694 from getredash/small-07-2018
Block users with disposable email addresses
2018-07-25 13:28:54 +03:00
Arik Fraimovich
3c7dd064ef Block users with temporary domains 2018-07-25 13:06:26 +03:00
Arik Fraimovich
058a7ca368 Merge pull request #2693 from getredash/small-07-2018
Enable search function in Query Editor.
2018-07-25 13:00:16 +03:00
Arik Fraimovich
10ddb73385 Enable search function in Query Editor. 2018-07-25 12:59:41 +03:00
Arik Fraimovich
27dfa3d8ae Merge pull request #2692 from getredash/small-07-2018
Fix: Query.search method was missing
2018-07-25 12:57:40 +03:00
Arik Fraimovich
2390343c67 Fix: Query.search method was missing 2018-07-25 12:57:10 +03:00
Arik Fraimovich
2c3067bdfd Merge pull request #2691 from getredash/small-07-2018
Fix the recent queries API endpoint.
2018-07-25 12:55:20 +03:00
Arik Fraimovich
2e9ef66cbc Fix: Google Spreadsheets tests 2018-07-25 12:42:36 +03:00
Arik Fraimovich
a05c4b3b20 Merge pull request #2687 from denisov-vlad/safe-yaml
YAML: changed load to safe_load
2018-07-25 12:38:35 +03:00
Arik Fraimovich
895786d129 Fix the recent queries API endpoint. 2018-07-24 12:01:41 +03:00
Arik Fraimovich
011142fabb Add fsevents to optional dependencies 2018-07-24 12:01:03 +03:00
Vladislav Denisov
e4af1e6534 yandex_metrika: changed load to safe_load 2018-07-19 17:43:51 +03:00
Arik Fraimovich
25de0b9dab Merge pull request #2514 from atharvai/gsheets_parse_fix_2504
Update value parsing for google spreadsheets source
2018-07-19 12:02:36 +03:00
Jannis Leidel
b86715c7fa Implement frontend for server side pagination and sorting.
Also:

- Adds page size select tag list.
- Adds clear button to search input.
- Shows search also on “my” page.
2018-07-18 22:55:25 +02:00
Jannis Leidel
2af926703a Implement server side sorting and new search.
- Redirect the old search API handler.
- Sort by specific database columns or relationships.
- Allow showing “my” queries per tag as well.
2018-07-18 22:55:19 +02:00
Jannis Leidel
2f09497797 Let the search class methods use the main all_queries base query. 2018-07-18 21:45:43 +02:00
Jannis Leidel
16ea4be157 Add optional property to query class with the lowercase name for easier sorting. 2018-07-18 21:45:42 +02:00
Jannis Leidel
823a681131 Add outerjoins to be able to sort queries by related columns. 2018-07-18 21:45:42 +02:00
Jannis Leidel
08b59c4485 Extend live paginator to handle ordering as well. 2018-07-18 21:44:55 +02:00
Jannis Leidel
486a6068ac Update SQLAlchemy. 2018-07-18 21:44:55 +02:00
Levko Kravets
d651fdc2b7 getredash/redash#2644 CR1 2018-07-18 13:01:41 +03:00
Levko Kravets
2c0ff53894 getredash/redash#2644 Explicit "Add Parameter" Button in Query Editor 2018-07-18 12:27:51 +03:00
Levko Kravets
10ff9ec86e getredash/redash#2601 Show real status when loading cached query result 2018-07-18 12:11:13 +03:00
Arik Fraimovich
35bb558f44 Merge pull request #2573 from getredash/discovery
Tagging and favorites for Queries and Dashboards
2018-07-17 15:49:39 +03:00
Arik Fraimovich
3d39e5cb29 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-07-17 15:41:13 +03:00
Arik Fraimovich
24404b3b86 Fix queries list URLs. 2018-07-17 15:40:50 +03:00
Arik Fraimovich
a9cb08d0d6 Merge branch 'master' into discovery 2018-07-17 15:33:58 +03:00
Arik Fraimovich
12436430cc Styling update. 2018-07-17 15:32:24 +03:00
Arik Fraimovich
9ed7b3d3d4 Queries List empty state. 2018-07-17 15:29:25 +03:00
Arik Fraimovich
9f467f7a2b Support .jsx files. 2018-07-17 13:47:43 +03:00
Arik Fraimovich
052a60512b Implement dashboard list empty states. 2018-07-17 13:47:35 +03:00
Arik Fraimovich
2ff3d8985c Merge pull request #2570 from StantonVentures/2569_fix_query_pagination_alignment
fixes query pagination alignment
2018-07-16 17:59:52 +03:00
Arik Fraimovich
b1139d4891 Merge pull request #2584 from StantonVentures/alison_2581_only
keep query result pagination out of scroll
2018-07-16 17:56:12 +03:00
Arik Fraimovich
197e7d5882 Merge pull request #2640 from kravets-levko/feature/query-editor-shortcuts
Keyboard shortcut to collapse query editor/schema browser
2018-07-16 17:36:34 +03:00
Arik Fraimovich
f771b514e6 Merge pull request #2682 from getredash/now
Add Zeit's now support to have preview builds for every PR
2018-07-15 15:45:19 +03:00
Arik Fraimovich
27128d73fe Trigger new Now deploy. 2018-07-15 15:00:17 +03:00
Arik Fraimovich
fa1b71bc27 Add Zeit now support 2018-07-15 13:39:57 +03:00
Arik Fraimovich
f78ab06369 Merge pull request #2647 from ariarijp/improve-script
Improve Script Query Runner
2018-07-12 23:37:23 +03:00
Arik Fraimovich
64f6c9319d Fix: favorite/unfavorite in dashboards list wasn't working. 2018-07-12 23:34:47 +03:00
Arik Fraimovich
d76a9cd22f Fix loading of favorites in header and home. 2018-07-12 22:55:39 +03:00
Arik Fraimovich
d6f8d7af5a Eagerly load dashboard user to avoid N+1 queries. 2018-07-12 22:48:42 +03:00
Arik Fraimovich
00c413c2d8 Merge pull request #2674 from getredash/chromelogger
Add support for the Chrome Logger extension
2018-07-12 13:41:18 +03:00
Arik Fraimovich
6be54defb4 Styling improvements. 2018-07-12 13:16:42 +03:00
Arik Fraimovich
20261d0632 Add support for ChromeLogger extension 2018-07-12 11:37:35 +03:00
Arik Fraimovich
522c08a7a4 package-lock.json update 2018-07-11 18:26:01 +03:00
Arik Fraimovich
3fa2db4085 Fix linting errors 2018-07-11 18:25:43 +03:00
Arik Fraimovich
8343f2c8b2 Remove usage of underscopre. 2018-07-11 18:03:27 +03:00
Arik Fraimovich
df25bbfa90 Merge with latest master 2018-07-11 17:53:53 +03:00
Arik Fraimovich
5e35156d22 Handle duplicate favorite calls. 2018-07-11 16:35:48 +03:00
Arik Fraimovich
34c2292a98 Merge pull request #2653 from StantonVentures/alison_1411
Add redash db size to status page
2018-07-11 16:02:36 +03:00
Arik Fraimovich
2438475ba2 Merge pull request #2583 from kocsmy/design/query-header-improvements
Query header improvements on widgets
2018-07-11 16:01:28 +03:00
Arik Fraimovich
b91a2d14fd Merge pull request #2668 from ariarijp/upgrade-bootstrap-script
Upgrade bootstrap script to Redash 4.0.1
2018-07-11 15:52:25 +03:00
Arik Fraimovich
d7310f5be9 Merge pull request #2671 from kocsmy/design/save-some-space
Save some space
2018-07-11 15:52:07 +03:00
Zsolt Kocsmarszky
873f51c5f6 Save some space (10px) when we have parameters section present on the query results 2018-07-09 16:10:24 +02:00
Arik Fraimovich
ac1fc6bdd8 Merge pull request #2669 from tdawber/feature/athena_query_id
Store Athena query id with result metadata
2018-07-09 15:40:28 +03:00
tdawber
28f7c048bb Store Athena query id with result metadata 2018-07-09 16:40:49 +10:00
tdawber
8d80077aa8 Store Athena query id with result metadata 2018-07-09 16:39:22 +10:00
tdawber
101c09fcae Store Athena query id with result metadata 2018-07-09 16:37:05 +10:00
tdawber
9141850304 Store Athena query id with result metadata 2018-07-09 16:18:33 +10:00
Alison
e7d8491f0b update to .execute() from .query() 2018-07-08 09:53:12 -05:00
ariarijp
0568d40b27 Upgrade to Redash 4.0.1 2018-07-08 17:22:29 +09:00
Zsolt Kocsmarszky
77831d1c91 Adjust query header colors 2018-07-06 14:37:40 +02:00
Levko Kravets
3772612a97 Pie chart: sectors colors 2018-07-06 14:53:57 +03:00
Zsolt Kocsmarszky
58e21c9807 Merge https://github.com/getredash/redash into design/query-header-improvements 2018-07-06 13:48:27 +02:00
Alison
abcf5b729a pep8 fixes 2018-07-04 17:00:17 -05:00
Alison
7b40d01f51 refactor based on codeclimate review of PR 2018-07-04 16:57:10 -05:00
Alison
f597c04214 change where prettySize happens 2018-07-04 02:04:55 -05:00
ariarijp
53c20e2250 Set column name implicitly when column name is blank 2018-07-03 16:02:41 +09:00
ariarijp
c5f27253b0 Change message for empty output 2018-07-02 21:36:15 +09:00
Arik Fraimovich
140d0ae14f Merge pull request #2638 from kravets-levko/bug/dashboard-not-rendering-empty-query
Dashboard stops rendering when adding widget with empty query
2018-07-02 12:07:42 +03:00
Arik Fraimovich
383d5d3725 Merge pull request #2658 from StantonVentures/alison_2657
delaying schema filtering to improve responsiveness
2018-07-02 12:04:21 +03:00
Arik Fraimovich
e0ce7f8d7d Merge pull request #2648 from Pablohn26/master
Update datasource documentation links
2018-07-01 23:51:00 +03:00
Arik Fraimovich
4b0a2c04df Merge pull request #2639 from ariarijp/add-tests-for-spreadsheets
Add tests for SpreadSheets
2018-07-01 12:35:57 +03:00
Arik Fraimovich
6ce522a863 Update CONTRIBUTING.md 2018-07-01 12:32:46 +03:00
Alison
84302e3d86 delaying schema filtering to improve responsiveness
fixes #2657
2018-06-30 18:57:47 -05:00
Alison
cf29fa09f3 add the size of Redash DB to the status page
fixes #1411
2018-06-30 14:18:02 -05:00
Arik Fraimovich
50b9e99f90 Add references to Airbnb's styleguides in contribution guide. 2018-06-29 21:39:58 +03:00
Pablo Hinojosa
01678beebf Fix URL 2018-06-29 17:53:47 +02:00
Pablo Hinojosa
0a6a807964 Fix URL 2018-06-29 17:52:55 +02:00
Pablo Hinojosa
964eff017c Fix URL 2018-06-29 17:51:37 +02:00
Pablo Hinojosa
7f4e7a947e Update dashboard-list.html 2018-06-29 17:50:32 +02:00
Pablo Hinojosa
ca04732d3f Update datasource documentation links 2018-06-29 17:45:38 +02:00
ariarijp
389c6cb3c5 Improve Script Query Runner 2018-06-29 00:03:17 +09:00
Arik Fraimovich
75df88a8ff Merge pull request #2632 from mozilla/react-eslint
react rules for eslint
2018-06-28 16:32:57 +03:00
Levko Kravets
0c95b47de4 getredash/redash#2402 Keyboard shortcut to collapse query editor/schema browser 2018-06-28 15:10:53 +03:00
ariarijp
bad7e92cce Add tests for SpreadSheets 2018-06-28 18:57:41 +09:00
Levko Kravets
ead1e07e99 getredash/redash#2534 Dashboard stops rendering when adding widget with empty query 2018-06-28 11:50:35 +03:00
Allen Short
b712253276 react rules for eslint 2018-06-28 01:56:57 -05:00
Arik Fraimovich
71531c9910 Merge pull request #2635 from ariarijp/add-tests-for-query-results
Add tests for Query Results
2018-06-28 09:55:25 +03:00
ariarijp
8a4eab1c93 Add tests for Query Results 2018-06-28 15:37:11 +09:00
Alison
5846a5733c Merge pull request #2 from getredash/master
pulling from upstream to SV fork
2018-06-27 10:28:02 -05:00
Zsolt Kocsmarszky
d1d72b30c6 Make visualization name as dark as query name 2018-06-27 16:37:50 +02:00
Zsolt Kocsmarszky
ba980d6b87 Merge branch 'master' into design/query-header-improvements 2018-06-27 16:29:12 +02:00
Arik Fraimovich
258d506215 Add missing comma 2018-06-27 16:04:33 +03:00
Arik Fraimovich
b759536146 Add events to favorites 2018-06-27 15:58:13 +03:00
Arik Fraimovich
91ff4aee63 Move imports to correct location. 2018-06-27 15:52:11 +03:00
Arik Fraimovich
fa6e2cc264 Merge pull request #2546 from washort/upstream-react
Configuration for incorporating React components
2018-06-27 15:20:00 +03:00
Arik Fraimovich
c719d336a9 Reset search term when it's empty. 2018-06-27 11:54:34 +03:00
Arik Fraimovich
720da3310f Merge pull request #2610 from gabrieldutra/master
Fix export query results output file name
2018-06-26 21:53:27 +03:00
Arik Fraimovich
ed8b022e78 Merge pull request #2613 from ariarijp/improve-script
Improve Script Query Runner
2018-06-26 21:52:33 +03:00
Arik Fraimovich
2eefdc1da3 Updated queries screen (& unified API). 2018-06-26 21:50:16 +03:00
Arik Fraimovich
5e4cf5ba30 Add filtering by tags/search to favorites. 2018-06-26 21:48:50 +03:00
Arik Fraimovich
18f51890d2 Only show tags/search on all queries list. 2018-06-25 23:25:10 +03:00
Arik Fraimovich
b0de1be815 Better dashboards GET api (pagination, filter by tags, search by name) 2018-06-25 23:22:28 +03:00
Arik Fraimovich
f39b6b7073 Tags service. 2018-06-25 23:20:30 +03:00
Allen Short
e2a5bb0a06 eslint fix 2018-06-25 12:14:30 -05:00
Arik Fraimovich
bfeeb23443 Update package-lock.json file 2018-06-25 12:13:26 -05:00
Arik Fraimovich
9eb51da7ce Remove underscore usage from new files 2018-06-25 12:13:25 -05:00
Allen Short
d6011ede0c switch underscore usages to lodash
There's still one usage of `numberFormat` from `underscore.string`.
2018-06-25 12:13:25 -05:00
Allen Short
c47ad93eb2 humble beginnings with React components 2018-06-25 12:13:25 -05:00
Arik Fraimovich
4384959760 Merge pull request #2619 from StantonVentures/2567_order_datasources_alpha
data source sort case insensitive
2018-06-22 19:49:09 +03:00
Alison
fccba45e36 data source sort case insensitive
#2567
2018-06-22 07:03:51 -05:00
ariarijp
9d2a3133f0 Improve Script Query Runner 2018-06-21 14:45:12 +09:00
Gabriel Dutra
744ccd163a Fix export query results output file name
- regexp `/ /g` will seek for all space ocurrences, not only the first
2018-06-20 20:23:49 -03:00
Arik Fraimovich
4a833a7401 use tags-list component for mobile view as well 2018-06-20 18:52:56 +03:00
Arik Fraimovich
ece80eb1f7 Refactor: create tags list component to be shared between dashboard and queries list page. 2018-06-20 18:45:44 +03:00
Arik Fraimovich
695c342a69 Filter queries by tags. 2018-06-20 18:17:56 +03:00
Arik Fraimovich
97d4df2532 Merge pull request #2606 from denisov-vlad/pyyaml
requirements: added pyyaml
2018-06-20 14:55:18 +03:00
Vladislav Denisov
8cd8650119 requirements: added pyyaml 2018-06-20 12:03:46 +03:00
Arik Fraimovich
6fb7c310be Merge pull request #2574 from mtrbean/patch-1
commit query result to db before evaluating alerts
2018-06-20 10:52:44 +03:00
Arik Fraimovich
d533a05d54 Merge pull request #2604 from ariarijp/improve-spreadsheets
Improve Google Spreadsheets Query Runner
2018-06-20 10:38:33 +03:00
Arik Fraimovich
783ccfd4c0 Merge pull request #2533 from denisov-vlad/metrika
New datasource: Yandex Metrika&AppMetrika
2018-06-20 10:28:11 +03:00
ariarijp
5757b24ea3 Improve Google Spreadsheets Query Runner 2018-06-19 22:29:46 +09:00
Arik Fraimovich
5c1d2c8877 Merge pull request #2542 from emtwo/emtwo/xaxis
Closes #2541: x-axis improvements.
2018-06-19 12:44:56 +03:00
Arik Fraimovich
ff750b0db1 Merge pull request #2590 from ariarijp/remove-redundant-vars
Remove redundant variables
2018-06-18 15:02:45 +03:00
Alison
f4b32249e9 Merge pull request #1 from getredash/master
pull upstream to my fork
2018-06-17 16:26:19 -05:00
ariarijp
f8245f6e3f Remove redundant variables 2018-06-17 23:41:33 +09:00
Arik Fraimovich
c28702a5be Merge pull request #2580 from StantonVentures/master
add break-word wrap to add/edit text box on dashboard
2018-06-17 11:51:38 +03:00
Arik Fraimovich
d101866c91 Merge pull request #2585 from kravets-levko/fix/query-page-tabs
Show data only mode: allow to add and delete visualizations
2018-06-17 11:43:34 +03:00
Arik Fraimovich
6c11326a5d Merge pull request #2578 from ariarijp/fix-create-tables
Fix connection error when you run "create_tables"
2018-06-17 11:38:35 +03:00
Levko Kravets
17a677b6d0 Dashboard: make etire widget header clickable 2018-06-13 21:23:09 +03:00
Zsolt Kocsmarszky
1678155490 Make + New Visualization a button and add nicer icons 2018-06-13 16:57:20 +02:00
Zsolt Kocsmarszky
7be6164684 Hide - if no visualization name 2018-06-13 15:17:36 +02:00
Levko Kravets
418ac1bb68 Show data only mode: allow to add and delete visualizations 2018-06-12 20:03:21 +03:00
Alison
78421f590b keep query result pagination out of scroll 2018-06-11 23:55:24 -05:00
Zsolt Kocsmarszky
bdbeebdf86 Improve the header of the query by moving the visualization name to the first place 2018-06-11 17:19:45 +02:00
Levko Kravets
b521e65800 Discovery: show tags for both published and draft queries 2018-06-11 12:51:21 +03:00
Levko Kravets
a8a0312b72 Discovery: query & dashboard list: fix default browser behavior on click with modifier keys 2018-06-11 12:44:26 +03:00
Levko Kravets
840a7482c8 Discovery: filter queries by tags 2018-06-11 12:16:47 +03:00
Alison
d11638164e add break-word wrap to add/edit text box on dashboard 2018-06-10 09:33:19 -05:00
ariarijp
1efdb6034f Fix connection error when you run "create_tables" 2018-06-10 20:17:53 +09:00
Eric Wong
d0c6e41c9c commit query result to db before evaluating alerts
`check_alerts_for_query` runs on a separate celery queue and needs to see the latest result
2018-06-06 11:22:34 -07:00
Arik Fraimovich
e79dbe8b95 Merge branch 'master' into discovery 2018-06-06 15:35:45 +03:00
Arik Fraimovich
93dffa0c8a Merge with upstream 2018-06-06 15:28:15 +03:00
Arik Fraimovich
deceaa8888 Fix migrations order 2018-06-06 14:59:04 +03:00
Levko Kravets
11f25d8ba4 Tags: edit (query and dashboard page); show tags in a sidebar (dashboard list page) 2018-06-06 14:45:53 +03:00
Arik Fraimovich
69d5eb9020 tag listing APIs implemented 2018-06-06 14:45:05 +03:00
Zsolt Kocsmarszky
7ac90fe81e Fix tag layouts on headers 2018-06-06 14:45:05 +03:00
Levko Kravets
23deab7b7c Tags: display on all pages 2018-06-06 14:45:05 +03:00
Zsolt Kocsmarszky
f0342c3c45 tags for queries and dashboards 2018-06-06 14:44:32 +03:00
Arik Fraimovich
3835a8286c Simpler data model for tags. 2018-06-06 14:43:23 +03:00
Arik Fraimovich
a4f61df3fb Fixed add dashboard tags migration 2018-06-06 14:43:23 +03:00
Arik Fraimovich
0d764caafe Proper tags models 2018-06-06 14:43:23 +03:00
Levko Kravets
5081e9d245 Show spinner when loading dashboards and queries on list pages 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
312a73dd8d Style tags for queries and dashboards 2018-06-06 14:43:23 +03:00
Arik Fraimovich
d3240cd71b Fix queries search API 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
2b9dd6b5c0 Adding tags markup for query and dashboard 2018-06-06 14:43:23 +03:00
Levko Kravets
3ac52a2af5 Favorites: restore queries search 2018-06-06 14:43:23 +03:00
Levko Kravets
15baef531c Favorites: restore queries search 2018-06-06 14:43:23 +03:00
Zsolt Kocsmarszky
135cb53909 make entire dashboard and query list row clickable 2018-06-06 14:43:06 +03:00
Arik Fraimovich
f29afe9306 Hide my dashboards/queries when you don't have permission to create them 2018-06-06 14:43:06 +03:00
Arik Fraimovich
9feb7773ce add org_id to favorites 2018-06-06 14:43:06 +03:00
Arik Fraimovich
bcf49a700b Make sure user has access to favorite objects. 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
a782d67a8e add empty states for my queries/dashboard and fav queries/dashboards 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
3fbf518061 add empty condition for dashboard and query dropdown 2018-06-06 14:43:06 +03:00
Levko Kravets
0479aa40b3 Favorites: empty states on dashboards and queries list pages 2018-06-06 14:43:06 +03:00
Zsolt Kocsmarszky
b9db9f0b20 Right aligned control area 2018-06-06 14:41:13 +03:00
Arik Fraimovich
aa756b2be6 Almost complete implementation of favorties backend 2018-06-06 14:41:13 +03:00
Zsolt Kocsmarszky
af40375a78 Nicer styling for lists 2018-06-06 14:40:42 +03:00
Levko Kravets
d385b43915 Favorites: remove unnecessary code 2018-06-06 14:40:42 +03:00
Levko Kravets
54d667e59e Favorites: page for favorite dashboards and queries 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
983e3ba350 Further refine styling for tags 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
875e756236 Massive styling improvements for dashboards, queries and alerts lists 2018-06-06 14:40:42 +03:00
Levko Kravets
56b1e3c7aa Favorites: show favorite dashboards and queries in app header 2018-06-06 14:40:42 +03:00
Zsolt Kocsmarszky
7785538d59 add and fix classes 2018-06-06 14:39:52 +03:00
Zsolt Kocsmarszky
82829d5687 Better queries page... 2018-06-06 14:39:52 +03:00
Levko Kravets
34aaf55463 Favorites: show favorites on homepage instead of recent items 2018-06-06 14:39:52 +03:00
Zsolt Kocsmarszky
e6745683fe Add more details for favourites 2018-06-06 14:39:14 +03:00
Levko Kravets
8c7e62f7ff Favorites: models, control on query list, query page, dashboard list, dashboard pages. 2018-06-06 14:37:52 +03:00
Arik Fraimovich
02628d76f1 API stub for query object. 2018-06-06 14:37:52 +03:00
Arik Fraimovich
64f70cfbe8 Query favorites: API stub. 2018-06-06 14:37:52 +03:00
Zsolt Kocsmarszky
5f1c4e9dce Add base stuff for favourites 2018-06-06 14:37:52 +03:00
Arik Fraimovich
672c86efaa Merge pull request #2549 from coreyhuinker/patch-1
Allow get_tables to see views and v10-style partitioned tables
2018-06-06 11:40:01 +03:00
Arik Fraimovich
8bffc6f45d Merge pull request #2568 from StantonVentures/2567_order_datasources_alpha
sort datasources alphabetically
2018-06-06 11:02:25 +03:00
Arik Fraimovich
52b9333b8d Merge pull request #2572 from StantonVentures/2571_archived_query_menu_line
remove extra menu line if query is archived
2018-06-06 10:59:09 +03:00
Alison
2982d77ff2 remove extra menu line if query is archived
fixes #2571

Sames as https://github.com/mozilla/redash/issues/319 fixed in https://github.com/mozilla/redash/pull/414/
2018-06-05 23:11:19 -05:00
Alison
dda024a8d2 fixes query pagination alignment
fixes #2569

Same as https://github.com/mozilla/redash/pull/413/ which fixes https://github.com/mozilla/redash/issues/320
2018-06-05 22:56:15 -05:00
Alison
ea8951711f sort datasources alphabetically
fixes https://github.com/getredash/redash/issues/2567

Same as https://github.com/mozilla/redash/issues/367
2018-06-05 22:50:35 -05:00
Levko Kravets
204e36730e After saving tags in a dashboard, widgets go into refresh mode 2018-06-05 17:11:52 +03:00
Arik Fraimovich
c86423aea9 Merge pull request #2444 from sjakthol/saml-handle-parse-errors
feat: show error if saml response cannot be parsed
2018-06-03 11:41:50 +03:00
Sami Jaktholm
c7cf3653b8 feat: show error if saml response cannot be parsed
Previously, exceptions from pysaml2 would've caused
a 500 Internal Server Error response to be sent back
to the user. Now, the user is redirected back to login
page which includes an user friendly error message.
2018-06-03 09:42:53 +03:00
Marina Samuel
804603014d Closes #2541: x-axis improvements. 2018-05-31 16:29:39 -04:00
Arik Fraimovich
90d642fbe2 Update the tab name. 2018-05-31 21:25:51 +03:00
Arik Fraimovich
ca1b8f2047 Update chart editor labels 2018-05-31 21:07:12 +03:00
Arik Fraimovich
0a0b53b7e9 Merge pull request #2536 from kravets-levko/feature/chart-formats-and-tooltips-2
Chart: formats for values, labels and tooltips
2018-05-31 19:05:51 +03:00
Arik Fraimovich
131811179b Merge pull request #2564 from getredash/policy
Fix: typo fixes in Policy related code.
2018-05-31 18:42:22 +03:00
Levko Kravets
80295ca1e7 Chart tooltips: use date/time format from config 2018-05-31 18:40:18 +03:00
Arik Fraimovich
d71cdf5dbc Fix: typo fixes in Policy related code. 2018-05-31 18:39:20 +03:00
Arik Fraimovich
65881a0f79 Merge pull request #2562 from getredash/policy
Set currentUser value in users list page & use ng-src when needed
2018-05-31 17:27:29 +03:00
Arik Fraimovich
cc3145f895 Fix: set currentUser value in users list page. 2018-05-31 17:26:03 +03:00
Arik Fraimovich
c6b16b62ab Fix: use ng-src in empty-state. 2018-05-31 17:25:52 +03:00
Arik Fraimovich
f2b49ae7ff Merge pull request #2561 from getredash/policy
Add OrganizationStatus service (and some more)
2018-05-31 15:31:57 +03:00
Arik Fraimovich
3113c9b79e Don't count disabled users in users count 2018-05-31 15:30:41 +03:00
Arik Fraimovich
6a89d5ea1c Add extension point to home page 2018-05-31 15:30:27 +03:00
Arik Fraimovich
b7f221542b Load OrganizationStatus on page load 2018-05-31 15:30:09 +03:00
Arik Fraimovich
cfc3912723 Add OrganizationStatus service and use it in empty state. 2018-05-31 15:28:47 +03:00
Arik Fraimovich
c7614997d9 Merge pull request #2560 from getredash/policy
Introduce Policy object
2018-05-31 11:05:51 +03:00
Arik Fraimovich
b323747aaf Remove unused code. 2018-05-31 10:58:04 +03:00
Arik Fraimovich
64c9e5c963 Add Policy object. 2018-05-31 10:54:40 +03:00
Arik Fraimovich
68e5aec861 Save new dashboard on enter key press. 2018-05-31 10:49:02 +03:00
Arik Fraimovich
617df8e4f6 Merge pull request #2380 from kravets-levko/feature/disable-users
Admin should be able to disable a user
2018-05-31 10:24:12 +03:00
Levko Kravets
75f8b8ae7b getredash/redash#728 Use date/time and number formats only for tooltips 2018-05-30 17:25:30 +03:00
Levko Kravets
3fe8272ce4 getredash/redash#2375 Better error message when trying to disable self user; set disabled user avattar URL on backend and remove profileImage filter 2018-05-28 17:05:39 +03:00
Levko Kravets
ac6d6fc68a getredash/redash#2375 More tests + fix bug 2018-05-28 14:04:08 +03:00
Levko Kravets
2c84a383f3 getredash/redash#2375 Tests 2018-05-28 14:04:08 +03:00
Levko Kravets
6fb5548106 getredash/redash#2375 CR1
- only admin should see disabled users;
- add Disable button to user page;
- escape user name in toastr notifications;
- code cleanup.
2018-05-28 14:04:08 +03:00
Levko Kravets
84fb683bf3 getredash/redash#2375 Disabled users should not be able to login 2018-05-28 14:04:08 +03:00
Levko Kravets
40aee8465b getredash/redash#2375 Show gray icon for disabled users 2018-05-28 14:04:08 +03:00
Levko Kravets
d40aa09bcf getredash/redash#2375 Admin should be able to disable a user 2018-05-28 14:04:08 +03:00
Arik Fraimovich
6d1a67fee3 Merge pull request #2554 from kyoshidajp/show_deleting_target_item_name
Display name to be delete
2018-05-28 07:15:17 +03:00
Katsuhiko YOSHIDA
621718c3a0 Change the deleting message format 2018-05-28 06:35:32 +09:00
Katsuhiko YOSHIDA
a7e1b2bf68 Display name to be delete 2018-05-28 05:49:39 +09:00
Arik Fraimovich
7f3db4d7b6 Merge pull request #2510 from kyoshidajp/confirm_delete
Display confirmation dialog when deleting a item
2018-05-27 08:41:40 +03:00
Vladislav Denisov
8101077371 yandex_metrika: new appmetrika logo 2018-05-25 17:29:53 +03:00
Vladislav Denisov
8422a3657a metrika: added yaml support 2018-05-25 16:56:27 +03:00
Corey Huinker
76e86817c8 remove blank line 2018-05-21 15:37:00 -04:00
Corey Huinker
95593481a5 Update pg.py 2018-05-21 15:26:46 -04:00
Corey Huinker
fcd984aca6 Allow get_tables to see views and v10-style partitioned tables
And it does so with just one query.
2018-05-21 15:18:59 -04:00
Zsolt Kocsmarszky
07519596b8 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-21 17:53:16 +02:00
Zsolt Kocsmarszky
3b2bfb9177 fix queries and dashboard list for smaller screens 2018-05-21 17:53:00 +02:00
Arik Fraimovich
a6bc7c02bf Merge pull request #2509 from kyoshidajp/show_custom_date_format
Show custom date format on settings page
2018-05-19 17:49:05 +03:00
Arik Fraimovich
387ca14973 Merge pull request #2526 from deecay/fix-pivot
Fix pivot hide control in dashboards
2018-05-18 18:43:38 +03:00
Arik Fraimovich
ead7635a3d Merge pull request #2511 from kocsmy/fixes/styling-adjustments
Fixing signed_out.html template
2018-05-18 18:40:10 +03:00
Arik Fraimovich
7ebcce5370 Merge pull request #2518 from kocsmy/design/styling-improvements
Design improvements
2018-05-17 19:08:09 +03:00
Zsolt Kocsmarszky
00a2dfd728 Add readme about illustration license 2018-05-17 14:32:16 +02:00
Zsolt Kocsmarszky
6ed03247ca Merge https://github.com/getredash/redash into design/styling-improvements 2018-05-17 14:25:43 +02:00
Vladislav Denisov
fcafc40be3 yandex_metrika: codeclimate fixes #2 2018-05-17 10:58:32 +03:00
Arik Fraimovich
23df796740 Merge pull request #2537 from sieben/remove_trailing_semicolon
Remove trailing semicolon
2018-05-15 15:55:01 +03:00
Rémy Léone
309a8bd958 Remove trailing semicolon 2018-05-15 14:21:14 +02:00
Levko Kravets
2ed67005b9 Remove unused option 2018-05-15 12:47:13 +03:00
Arik Fraimovich
deb523ebd5 Merge pull request #2523 from innovia/hotfix/boolean-nullable-formator
Frontend: fix boolean field with null value display as null.
2018-05-15 11:32:18 +03:00
Arik Fraimovich
acc27f0579 Change migration to be safe to run along with other migrations 2018-05-14 22:02:10 +03:00
Vladislav Denisov
ef3c837a97 metrika: codeclimate fixes 2018-05-14 17:43:53 +03:00
Vladislav Denisov
4a62ab7ce4 Yandex Metrika query runner added 2018-05-14 17:21:58 +03:00
Arik Fraimovich
7553eef024 Remove dashboards recents tests 2018-05-14 11:02:25 +03:00
Arik Fraimovich
2279d32b3b Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 22:10:46 +03:00
Levko Kravets
d3e7393bad Tags: edit (query and dashboard page); show tags in a sidebar (dashboard list page) 2018-05-10 21:51:39 +03:00
Arik Fraimovich
6cd9fe0b52 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 21:34:37 +03:00
Arik Fraimovich
42657ed95f tag listing APIs implemented 2018-05-10 20:59:19 +03:00
Zsolt Kocsmarszky
bd6fac074c Fix tag layouts on headers 2018-05-10 19:34:25 +03:00
Levko Kravets
c0294cdd0a Tags: display on all pages 2018-05-10 19:25:37 +03:00
Zsolt Kocsmarszky
b0f6a78ebb Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 19:04:16 +03:00
Zsolt Kocsmarszky
3b4bd648fe tags for queries and dashboards 2018-05-10 19:04:10 +03:00
Arik Fraimovich
0060c8a54f Simpler data model for tags. 2018-05-10 18:58:58 +03:00
Arik Fraimovich
b1ffcbad79 Fixed add dashboard tags migration 2018-05-10 18:07:40 +03:00
Arik Fraimovich
52bda8d117 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 18:00:59 +03:00
Arik Fraimovich
08611c009c Proper tags models 2018-05-10 18:00:54 +03:00
Zsolt Kocsmarszky
8081ea83bc Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 17:50:51 +03:00
Levko Kravets
6c0afc9c6f Show spinner when loading dashboards and queries on list pages 2018-05-10 17:25:59 +03:00
Zsolt Kocsmarszky
3e16df9092 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 16:54:25 +03:00
Zsolt Kocsmarszky
8c4381a44d Style tags for queries and dashboards 2018-05-10 16:54:15 +03:00
Arik Fraimovich
59f2cb94ab Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 14:15:19 +03:00
Arik Fraimovich
5b0a192784 Fix queries search API 2018-05-10 14:15:06 +03:00
Zsolt Kocsmarszky
1aa3dd15b3 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 14:05:55 +03:00
Zsolt Kocsmarszky
629117d2f0 Adding tags markup for query and dashboard 2018-05-10 14:05:46 +03:00
Levko Kravets
078f24ad6b Favorites: restore queries search 2018-05-10 14:05:18 +03:00
Levko Kravets
f4a36410c0 Favorites: restore queries search 2018-05-10 14:01:42 +03:00
Zsolt Kocsmarszky
4dc2c44c01 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 13:17:30 +03:00
Zsolt Kocsmarszky
1186f31337 make entire dashboard and query list row clickable 2018-05-10 13:17:15 +03:00
Arik Fraimovich
5cc7b88235 Hide my dashboards/queries when you don't have permission to create them 2018-05-10 13:11:59 +03:00
Arik Fraimovich
6bbf6809cf Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-10 12:51:54 +03:00
Arik Fraimovich
28a08526e3 add org_id to favorites 2018-05-10 12:51:11 +03:00
Arik Fraimovich
7fe90675bd Make sure user has access to favorite objects. 2018-05-10 12:41:58 +03:00
Zsolt Kocsmarszky
0958f591d1 add empty states for my queries/dashboard and fav queries/dashboards 2018-05-10 12:32:36 +03:00
Zsolt Kocsmarszky
33314abde7 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-10 12:00:56 +03:00
Zsolt Kocsmarszky
3a59f6cd0f add empty condition for dashboard and query dropdown 2018-05-10 12:00:45 +03:00
Levko Kravets
eb71a655e8 Favorites: empty states on dashboards and queries list pages 2018-05-10 11:58:26 +03:00
Zsolt Kocsmarszky
4bb785eab4 Right aligned control area 2018-05-10 11:30:22 +03:00
deecay
19bfae3741 Fix pivot hide control in dashboards 2018-05-10 03:26:36 -04:00
Arik Fraimovich
afd3dd9860 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 21:43:00 +03:00
Arik Fraimovich
66737f0dc0 Almost complete implementation of favorties backend 2018-05-09 21:42:50 +03:00
Zsolt Kocsmarszky
f374661ad9 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-09 20:19:28 +03:00
Zsolt Kocsmarszky
ea6dbf643a Nicer styling for lists 2018-05-09 20:19:15 +03:00
Levko Kravets
24fe52753e Favorites: remove unnecessary code 2018-05-09 20:15:34 +03:00
Arik Fraimovich
8665747111 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 20:10:30 +03:00
Levko Kravets
fcc75cbd16 Favorites: page for favorite dashboards and queries 2018-05-09 20:07:58 +03:00
Zsolt Kocsmarszky
3974adeacd Further refine styling for tags 2018-05-09 18:43:26 +03:00
Zsolt Kocsmarszky
7dc5d53934 Massive styling improvements for dashboards, queries and alerts lists 2018-05-09 18:27:40 +03:00
Arik Fraimovich
96a90722f1 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 16:55:47 +03:00
Levko Kravets
a4e52bcc96 Favorites: show favorite dashboards and queries in app header 2018-05-09 16:53:12 +03:00
Zsolt Kocsmarszky
3abeb6cf96 add and fix classes 2018-05-09 14:35:08 +03:00
Zsolt Kocsmarszky
057894aaf4 Merge branch 'discovery' of https://github.com/getredash/redash into discovery 2018-05-09 14:20:48 +03:00
Zsolt Kocsmarszky
c9ae48f466 Better queries page... 2018-05-09 14:20:12 +03:00
Levko Kravets
78092e525f Favorites: show favorites on homepage instead of recent items 2018-05-09 14:19:28 +03:00
Arik Fraimovich
189b7889a3 Merge branch 'discovery' of github.com:getredash/redash into discovery 2018-05-09 14:08:18 +03:00
Zsolt Kocsmarszky
32e9b4c71c Merge branch 'discovery' of https://github.com/getredash/redash into discovery
# Conflicts:
#	client/app/pages/queries/query.html
2018-05-09 13:42:18 +03:00
Zsolt Kocsmarszky
6c30f821f7 Add more details for favourites 2018-05-09 13:40:09 +03:00
Levko Kravets
8d99b7380c Favorites: models, control on query list, query page, dashboard list, dashboard pages. 2018-05-09 13:39:47 +03:00
Arik Fraimovich
20f7405f0e API stub for query object. 2018-05-09 12:58:53 +03:00
Arik Fraimovich
e32da8dbe3 Query favorites: API stub. 2018-05-09 12:57:30 +03:00
Zsolt Kocsmarszky
dbc2d984b3 Add base stuff for favourites 2018-05-09 12:56:00 +03:00
Ami Mahloof
ad0a9813e4 Frontend: fix boolean field with null value display as null. 2018-05-09 11:22:16 +03:00
Levko Kravets
e12d539234 getredash/redash#728 Chart: formats for values, labels and tooltips 2018-05-07 22:18:26 +03:00
Zsolt Kocsmarszky
87000ee4d6 Refine spacing and image size 2018-05-07 14:29:55 +03:00
Arik Fraimovich
414fabadf6 Merge pull request #2520 from kyoshidajp/filter_datasources
Filter data sources in a data source input area
2018-05-05 22:00:26 +03:00
Katsuhiko YOSHIDA
d6bebe1dcf Filter data sources 2018-05-05 21:18:51 +09:00
Zsolt Kocsmarszky
66fd9531cc Remove fullstop 2018-05-05 00:26:54 +02:00
Zsolt Kocsmarszky
045230d189 Add Illustration to empty states 2018-05-05 00:25:07 +02:00
Zsolt Kocsmarszky
7bd79124b7 Adjust spacing around Group header 2018-05-04 22:50:51 +02:00
Zsolt Kocsmarszky
11d52949a7 Overwrite toast notification colors to better match our color scheme 2018-05-04 22:48:28 +02:00
Zsolt Kocsmarszky
10fc89fc39 Increase query editor height 2018-05-04 22:26:51 +02:00
Zsolt Kocsmarszky
2e414db0b1 Fix query header on smaller screens 2018-05-04 22:16:23 +02:00
atharva.inamdar
48acc4c7a7 fix code climate lint issue with whitespace 2018-05-04 11:47:36 +01:00
atharva.inamdar
a0d039066d fix tests for google spreadsheets 2018-05-04 11:21:55 +01:00
Katsuhiko YOSHIDA
bd1c5fa9e1 Add location property to BigQuery data source settings 2018-05-04 16:05:54 +09:00
atharva.inamdar
61106dec14 getredash/redash#2504 Update value parsing for google spreadsheets source 2018-05-03 16:35:24 +01:00
Katsuhiko YOSHIDA
26238ccfc1 Confirm delete a data source 2018-05-03 21:23:01 +09:00
Katsuhiko YOSHIDA
3e371d3ffd Confirm delete a destination 2018-05-03 20:48:53 +09:00
Zsolt Kocsmarszky
038933f1f1 signed_out template fixes 2018-05-03 13:15:13 +02:00
Katsuhiko YOSHIDA
8243b6caed Confirm delete a query snippet 2018-05-03 19:11:00 +09:00
Katsuhiko YOSHIDA
813a5db958 Refactoring: extract method about date format config 2018-05-03 18:17:02 +09:00
Katsuhiko YOSHIDA
971e501561 Show custom date format on settings page 2018-05-03 18:03:05 +09:00
Arik Fraimovich
a287fbf128 Remove old style files 2018-05-03 09:38:13 +03:00
Arik Fraimovich
d43bfa9d10 Version bump to 4.0.1 2018-05-02 17:18:00 +03:00
Arik Fraimovich
b4d7a25c74 Update CHANGELOG.md 2018-05-02 17:13:46 +03:00
Katsuhiko YOSHIDA
3021c7c0a9 Refactor to fix Code Climate error 2018-05-02 22:50:24 +09:00
Katsuhiko YOSHIDA
4ffcd6390b Fix pep8 error 2018-05-02 22:02:04 +09:00
Arik Fraimovich
c8a3985f16 Merge pull request #2506 from kocsmy/fixes/overflowing-data-source-box
A nicer way of hiding overflowing text
2018-05-02 14:27:59 +03:00
Zsolt Kocsmarszky
3274a5d670 Add data source name to box title 2018-05-02 13:27:26 +02:00
Arik Fraimovich
8037c21a61 Merge pull request #2496 from akiray03/sorted-redshift-schema-info
Fixes the order of columns in the schema browser when Redshift is used as a DataSource.
2018-05-02 14:14:38 +03:00
Arik Fraimovich
ee8f6c1c71 Merge pull request #2472 from tonyjiangh/fix/disable_view_only_fork
Disable fork button for view_only user
2018-05-02 14:11:55 +03:00
Arik Fraimovich
bce0e8e547 Merge pull request #2507 from getredash/resolution
Log user's screen resolution
2018-05-02 14:09:52 +03:00
Arik Fraimovich
cddf398df4 Log user's screen resolution 2018-05-02 14:05:57 +03:00
Arik Fraimovich
bdb8682646 Merge pull request #2501 from getredash/fix-dashboard-filters
Improve dashboard refresh UX: show previous data while refreshing.
2018-05-02 14:02:59 +03:00
Arik Fraimovich
54bef2c05f Remove console.log call 2018-05-02 14:02:43 +03:00
Zsolt Kocsmarszky
d326f2b46c A nicer way of hiding overflowing text 2018-05-02 12:33:21 +02:00
Arik Fraimovich
06a7a7e65b Merge pull request #2505 from kocsmy/fixes/overflowing-data-source-box
Hide overflowing content
2018-05-02 13:26:31 +03:00
Zsolt Kocsmarszky
fc0a074a07 Hide overflowing content 2018-05-02 12:18:36 +02:00
Arik Fraimovich
44a330a4e6 Merge pull request #2499 from kocsmy/design/design-improvements
Design improvements
2018-05-02 10:36:02 +03:00
Zsolt Kocsmarszky
ab284efac1 Fix contianer width 2018-04-30 16:00:57 +02:00
Arik Fraimovich
9d4fd75ea8 Fix: update tests. 2018-04-30 11:16:27 +03:00
Arik Fraimovich
4a9b93a131 Improve dashboard refresh UX: show previous data while refreshing.
Also refactored the Widget (client side) model to accomodate the necessary changes.
2018-04-30 11:01:36 +03:00
Zsolt Kocsmarszky
31a48cfe2b Subtle background change 2018-04-29 14:59:27 +02:00
Zsolt Kocsmarszky
9df98b1c29 Fix login screen on smaller viewport 2018-04-29 14:59:11 +02:00
Akira Yumiyama
d1bc2fb649 Fixes the order of columns in the schema browser when Redshift is used as a DataSource. 2018-04-27 17:56:04 +09:00
Arik Fraimovich
df774b0304 Merge pull request #2492 from kravets-levko/bug/cohort-js-error
Cohort bug: JS error (value not wrapped with moment instance)
2018-04-26 15:04:44 +03:00
Levko Kravets
7ac0ba52dd Cohort bug: JS error (value not wrapped with moment instance) 2018-04-26 14:00:56 +03:00
Arik Fraimovich
b2decc895f Merge pull request #2487 from getredash/fix-dashboard-filters
Fix: dashboard filters setting wasn't persisting.
2018-04-25 11:46:45 +03:00
Arik Fraimovich
b12f3fb133 Merge pull request #2469 from PublicI/fix/null-number-format
Display nulls and empty values as blank in table numeric fields
2018-04-24 22:53:57 +03:00
Arik Fraimovich
fc30f141ec Merge pull request #2489 from dbravender/2488-alert-date-column
Fixes #2488
2018-04-24 22:33:42 +03:00
Dan Bravender
277eb35aea Fixes #2488 2018-04-24 13:50:44 -04:00
Arik Fraimovich
10bc9402b7 Fix: dashboard filters setting wasn't persisting. 2018-04-24 15:50:33 +03:00
Arik Fraimovich
16a07e19cc Merge pull request #2485 from kocsmy/fixes/new-readme-gif
Update readme gif + some smaller content improvements
2018-04-24 15:12:17 +03:00
Zsolt Kocsmarszky
479b34faed Make gif bigger 2018-04-24 14:04:31 +02:00
Zsolt Kocsmarszky
19eed1580e Refine content 2018-04-24 14:03:42 +02:00
Zsolt Kocsmarszky
d312dffe2c Update readme 2018-04-24 13:58:58 +02:00
matsumo
c426ef323d add support ChatWork Alert Destination. 2018-04-23 17:14:01 +09:00
Arik Fraimovich
90677b2b51 Merge pull request #2475 from ariarijp/fix-pip-version
To avoid "cannot import name main" error
2018-04-22 13:44:28 +03:00
ariarijp
df9bd38c08 To avoid "cannot import name main" error 2018-04-20 11:39:36 +09:00
Hao Jiang
be86d659ed Add $scope.canForkQuery() to data only view 2018-04-20 10:01:04 +09:00
Hao Jiang
66a4315ce2 Move dropdown disabled a tag color change code to disable class 2018-04-20 10:00:46 +09:00
Hao Jiang
b896dd461d Disable fork for view_only user 2018-04-19 10:44:52 +09:00
Chris Zubak-Skees
615aea7678 Merge remote-tracking branch 'upstream/master' into fix-null-number-format 2018-04-17 12:35:07 -04:00
Chris Zubak-Skees
10a9978b04 Fix style in PR branch 2018-04-17 12:34:20 -04:00
Arik Fraimovich
3f3a86eac3 Update CHANGELOG.md 2018-04-16 11:50:46 +03:00
Arik Fraimovich
43a66fae82 Merge branch 'master' of github.com:getredash/redash 2018-04-16 11:21:24 +03:00
Arik Fraimovich
ed739e1292 Update version 2018-04-16 11:21:14 +03:00
Katsuhiko YOSHIDA
ffa70185be Get all tables in the BigQuery 2018-04-15 22:59:37 +09:00
Arik Fraimovich
212c7eed46 Merge pull request #2457 from kyoshidajp/fix_td_syntax_error
Fix syntax error
2018-04-15 10:45:46 +03:00
Katsuhiko YOSHIDA
ce50042407 Fix syntax error 2018-04-14 09:46:05 +09:00
Arik Fraimovich
e17e36f9e4 Update CHANGELOG.md 2018-04-12 15:40:32 +03:00
Arik Fraimovich
0bc570d741 Merge pull request #2407 from alon710/master
adds mattermost destination
2018-04-12 15:17:58 +03:00
Arik Fraimovich
7465c74392 Merge pull request #2428 from toru-takahashi/master
Improve a query failure message for Treasure Data Runner
2018-04-12 15:14:24 +03:00
Arik Fraimovich
a8a91109ee Merge pull request #2452 from kravets-levko/bug/firefox-widget-height-continuously-increases
Firefox: widget height continuously increases
2018-04-11 22:29:54 +03:00
Arik Fraimovich
add60c2552 Merge pull request #2451 from kravets-levko/bug/page-layout-lost
Wrong page layout if route change was cancelled
2018-04-11 22:29:26 +03:00
Chris Zubak-Skees
f055e6750a Displays nulls and blanks in numeric fields as empty strings 2018-04-10 19:03:57 -04:00
Levko Kravets
4dc8826beb Firefox, dashboard, auto-height feature: in some cases (loader shown and widget has params, but possibly other cases) widget start continuously growing 2018-04-10 21:08:27 +03:00
Levko Kravets
d35bbdb257 getredash/redash#2401 Wrong page layout if route change cancelled 2018-04-10 15:42:05 +03:00
Arik Fraimovich
8636c3310d Merge pull request #2449 from getredash/botocore-update
Update botocore version.
2018-04-09 23:02:13 +03:00
Arik Fraimovich
eddd9419a4 Merge pull request #2450 from getredash/map-names
Update map visualizations names.
2018-04-09 22:57:40 +03:00
Arik Fraimovich
2d08314982 Update Choropleth visualization name. 2018-04-09 22:57:22 +03:00
Arik Fraimovich
28d69b0c60 Update map visualizations names. 2018-04-09 22:56:10 +03:00
Arik Fraimovich
7f76400550 Update botocore version.
Fixes #2400.
2018-04-09 22:55:20 +03:00
Arik Fraimovich
f551b348a7 Merge pull request #2447 from getredash/patches
Fixes to new dashboard layout engine
2018-04-09 09:47:43 +03:00
Toru Takahashi
b1567f4d8d Add safe guarding with .get() 2018-04-09 01:29:18 +09:00
Arik Fraimovich
d18c94a587 Merge pull request #2420 from fmy/patch-1
use MongoClient for ReplicaSet
2018-04-08 15:43:56 +03:00
Arik Fraimovich
f75c142981 Merge pull request #2434 from tonyjiangh/fix/funnel_typo
Fix funnel setting page typo
2018-04-08 15:39:09 +03:00
Arik Fraimovich
0959281a01 Merge pull request #2443 from deecay/choropleth-fullscreen
Choropleth: Add fullscreen control
2018-04-08 15:38:07 +03:00
Arik Fraimovich
96a0a512f3 Merge pull request #2446 from getredash/patches
Update pymongo version to support newer MongoDB versions
2018-04-08 15:33:06 +03:00
Levko Kravets
9899abfe6a Fix: some legacy dashboards got their widgets misplaced when using auto height. 2018-04-08 15:32:24 +03:00
Arik Fraimovich
d02386488c Fix: dashboard refresh was broken due to introduction of track by to ng-repeat. 2018-04-08 15:32:14 +03:00
Arik Fraimovich
5f25bc480c Update pymongo version to support newer MongoDB versions 2018-04-08 15:26:35 +03:00
deecay
07b5003c6f Map: Add fullscreen control 2018-04-07 14:37:44 +09:00
Arik Fraimovich
8aba5db862 Merge pull request #2441 from tnetennba3/pronoun-fix
Changed "his" to "their"
2018-04-06 21:22:44 +03:00
deecay
b3ee25079e Choropleth: Add fullscreen control 2018-04-06 13:08:28 -04:00
tnetennba3
85179fd07b Changed "his" to "their" 2018-04-05 16:27:20 +01:00
Hao Jiang
390360cc4e Fix funnel setting page typo 2018-04-03 08:11:53 +09:00
Toru Takahashi
7edd5b9731 Improve a query failure message for Treasure Data Runner 2018-04-01 15:45:28 +09:00
Fumiya Karasawa
c681a50b19 use MongoClient for ReplicaSet
MongoReplicaSetClient is deprecated and will be removed in future.

See http://api.mongodb.com/python/current/api/pymongo/mongo_replica_set_client.html
```
MongoReplicaSetClient will be removed in a future version of PyMongo.

Changed in version 3.0: MongoClient is now the one and only client class for a standalone server, mongos, or replica set. It includes the functionality that had been split into MongoReplicaSetClient: it can connect to a replica set, discover all its members, and monitor the set for stepdowns, elections, and reconfigs.
```
2018-03-29 17:46:27 +09:00
Arik Fraimovich
8df2391a77 Merge pull request #2376 from valentin2105/master
Fix docker-entrypoint broke for other name than "postgres"
2018-03-27 09:16:14 +03:00
Valentin Ouvrard
0982e56ed0 fix entrypoint create_table() func. 2018-03-26 10:01:58 +11:00
Arik Fraimovich
0cb995bb35 Merge pull request #2413 from getredash/fix-bq
Fix: (BigQuery) UDF URI was used even if empty
2018-03-25 14:39:30 +03:00
Arik Fraimovich
d34d58bf33 Merge pull request #2374 from kravets-levko/feature/choropleth
Choropleth visualization
2018-03-25 14:34:45 +03:00
Arik Fraimovich
c19ff41392 Merge pull request #2406 from kravets-levko/feature/dashboard-gridstack
Replace dashboard engine with gridstack
2018-03-25 14:27:36 +03:00
Arik Fraimovich
abb6e56570 Fix: UDF URI was used even if empty 2018-03-25 14:22:36 +03:00
Arik Fraimovich
a7bba81969 Merge pull request #2412 from deecay/box-hover-fix
Fix: Box plot hover
2018-03-24 21:39:05 +03:00
deecay
6356a75478 Fix: Box plot hover 2018-03-24 20:57:04 +09:00
Levko Kravets
61ef5f9a02 gridstack: add comments, exclude lodash and moment locales from bundle 2018-03-23 19:50:55 +02:00
Levko Kravets
2fbf8926c4 gridstack: optimizations and bugfixes 2018-03-23 19:50:55 +02:00
Levko Kravets
ce9e3fcb35 Replace dashboard engine with gridstack 2018-03-23 19:50:28 +02:00
Arik Fraimovich
ffab6d5ec9 Merge pull request #2411 from getredash/patches
Multiple V4 regression fixes
2018-03-23 19:34:07 +03:00
Levko Kravets
be9bcaeb3d Multiple fixes:
* Fix: line chart with category x-axis: when some values missing, wrong hints displayed on hover
* Fix: second Y-axis not displayed when stacking enabled
* Set of dashboard improvements and bug fixes
    - set minimal height of widgets to 1 (was 4)
    - bug: for some widgets auto-height wasn't calculated properly (sometimess too small, sometimes too large)
    - bug: for small widgets, top-right menu was cut to widgets bounds
    - bug: with opened top-right menu widgets with auto-height started "dancing"
    - bug: at some point auto-height feature was disabling by itself (in fact - it depends on `angular-grindter`s internal processes)
    - fix: widget with empty contents had extra 40px of white space (paddings of container)
* Add scrollbars to pivot table widgets
* Fix: 100% CPU loading caused page lags
2018-03-23 19:25:21 +03:00
Arik Fraimovich
d140e0418f Fix: dashboard was reloading when clicking on refresh. 2018-03-23 19:22:23 +03:00
Arik Fraimovich
6685cb9e21 Load dashboard refresh rate from URL. 2018-03-23 19:22:06 +03:00
Arik Fraimovich
2f24cff33c Plotly: increase Y value accuracy. 2018-03-23 19:20:28 +03:00
Arik Fraimovich
193a6cce3f Fix: only try merging query object if it exists. 2018-03-23 19:18:28 +03:00
Arik Fraimovich
17951504f0 Change: apply time limit to alert status checking task. 2018-03-23 19:17:57 +03:00
Arik Fraimovich
ccffe70359 MSSQL Fix: UUID fields were detected as booleans. 2018-03-23 19:17:13 +03:00
Arik Fraimovich
503d6cecd0 DynamoDB fix: always return counter as a number rather than string. 2018-03-23 19:16:54 +03:00
Arik Fraimovich
6fbe06d262 Report Celery queue size. 2018-03-23 19:16:24 +03:00
Arik Fraimovich
2394f3fbe5 Add events property to Organization model. 2018-03-23 19:16:14 +03:00
Arik Fraimovich
cb815f3c8e Render safe HTML by default in tables to remain backward compatible. 2018-03-23 19:15:47 +03:00
Arik Fraimovich
e6f6c02f90 Fix: saving widget was sending too much data to the server, sometimes making saving fail. 2018-03-23 19:13:40 +03:00
Arik Fraimovich
565e66715f Fix: Fork button was shown in data only view, but wasn't working. 2018-03-23 19:13:15 +03:00
Arik Fraimovich
549de1355a Change: show friendly names in dynamic forms labels. 2018-03-23 19:10:26 +03:00
Arik Fraimovich
d892ed48cc Merge pull request #2387 from idalin/fix_ldap_login
fix no login form in ldap login page #2386
2018-03-22 14:04:30 +02:00
alon710
b96204654b adds mattermost dest 2018-03-22 00:29:49 +02:00
Arik Fraimovich
3c75c2bb60 Update CONTRIBUTING.md 2018-03-21 16:41:02 +02:00
Arik Fraimovich
db020576ed Merge pull request #2385 from kocsmy/fixex/cassandra-scylla-images
Add missing Cassandra and ScyllaDB images
2018-03-19 22:13:48 +02:00
idalin
5a93da3177 fix no login form in ldap login page #2386 2018-03-14 13:59:50 +08:00
Zsolt Kocsmarszky
d16285d239 Add missing images 2018-03-12 20:45:45 +01:00
Arik Fraimovich
0410d834d1 Merge pull request #2382 from deecay/webpack-ignore
Webpack: ignore vim swap files
2018-03-11 15:02:44 +02:00
deecay
b79abf52fd Webpack: ignore vim swap files 2018-03-10 17:48:11 +09:00
Levko Kravets
6a61057813 getredash/redash#2317 CR1
- cache GeoJSON to avoid multiple HTTP requests;
- allow to edit map bounds;
- optimize update map calls (do not re-render it every time);
- UI/X imporvements.
2018-03-08 14:46:09 +02:00
Arik Fraimovich
1a75d49041 Merge pull request #2379 from getredash/fix_empty_states
Change: close metadata database connection early in the execute query Celery task
2018-03-08 11:17:30 +02:00
Arik Fraimovich
c054731794 Change: close metadata database connection early in the execute query
Celery task. This to prevent the task holding an idle connection for
a long period of time, while waiting for the query to finish.
2018-03-08 11:06:15 +02:00
Arik Fraimovich
a824bd5da3 Merge pull request #2378 from getredash/fix_empty_states
Empty state screen fix: show connect data source link only to admins
2018-03-08 09:53:29 +02:00
Arik Fraimovich
e1ff31718e fix circle.yml 2018-03-08 09:46:45 +02:00
Arik Fraimovich
797b5582ac Fix: show connect data source link only to admins 2018-03-08 09:43:30 +02:00
Valentin Ouvrard
452904398f Fix docker-entrypoint broke for Other name than "postgres" 2018-03-08 10:04:29 +11:00
Levko Kravets
517f95fa01 Better resize handling 2018-03-07 09:14:24 +02:00
Levko Kravets
d5ee9cd007 Use data from current record for tooltip and popup contents 2018-03-06 21:40:27 +02:00
Levko Kravets
5918253022 Add option to align legend text
Remove Leaflet attribution
2018-03-06 21:24:39 +02:00
Levko Kravets
2f30dbf645 getredash/redash#2317 Choropleth visualization 2018-03-06 20:42:48 +02:00
Arik Fraimovich
88deb5fc47 Merge pull request #2372 from kravets-levko/fix/dancing-widgets
Fix: dashboard "dancing" widgets (when auto-height enabled)
2018-03-06 15:07:14 +02:00
Levko Kravets
27c7e86297 Fix: dashboard "dancing" widgets (when auto-height enabled) 2018-03-06 14:42:15 +02:00
Arik Fraimovich
051f12c712 Fix tags regex in circle.yml 2018-03-05 12:37:31 +02:00
Arik Fraimovich
f9ab83ed80 Merge pull request #2369 from getredash/query-refresh
Add: configuration for query refresh intervals.
2018-03-05 11:28:40 +02:00
Arik Fraimovich
c24bfe82e0 Update changelog. 2018-03-05 11:22:49 +02:00
Arik Fraimovich
4f27de3252 Add: configuration for query refresh intervals. 2018-03-05 11:22:08 +02:00
Arik Fraimovich
bf86d17d56 Stop spamming Docker Hub 2018-03-04 15:36:14 +02:00
Arik Fraimovich
54e23a7c84 Update CHANGELOG and update version. 2018-03-04 15:11:54 +02:00
Arik Fraimovich
6049e2df17 Merge pull request #2356 from kravets-levko/fix/dashboard-auto-height
Dashboard fixes and improvements
2018-03-04 14:50:48 +02:00
Arik Fraimovich
025af41616 Merge pull request #2260 from Top20Talent/master
Extend the Prometheus query runner to support the range query
2018-03-04 10:57:30 +02:00
Arik Fraimovich
d80f93a59d Merge pull request #2355 from jezdez/glue-table-paginator-upstream
Use a paginator when iterating over glue tables
2018-03-04 10:56:56 +02:00
Arik Fraimovich
5aa4b28d53 Merge pull request #2354 from jezdez/redash-extensions
Add a Redash extension system based on Python entrypoints.
2018-03-04 10:56:08 +02:00
Arik Fraimovich
6a072dd33a Merge pull request #2363 from kravets-levko/bug/query-page-unscrollable
Query page long visualization is unscrollable
2018-03-04 10:53:33 +02:00
Levko Kravets
67995085c6 getredash/redash#2361 2018-03-02 13:12:45 +02:00
Levko Kravets
9295a9d8fb Dashboard: save only changed widgets 2018-03-01 16:28:34 +02:00
Levko Kravets
43cd24927f gridsterAutoHeight: disable auto-height when widget resized by user 2018-03-01 14:46:53 +02:00
Jannis Leidel
6b41644557 Add a Redash extension system based on Python entrypoints.
This is along the lines of what Flask does for CLI plugins:

  http://flask.pocoo.org/docs/0.12/cli/#cli-plugins

The API allows specifying Python callbacks that receive the
Redash Flask app as the only argument and allow extending
the Redash process with the usual Flask API as needed. This
does not cover front-end specific extensions (yet).
2018-02-28 23:37:03 +01:00
Blake Imsland
dceb58cd79 Use a paginator when iterating over glue tables
Without this you only get the first 100 tables in the glue database
2018-02-28 22:10:54 +01:00
Arik Fraimovich
570187fc1f Merge pull request #2353 from kocsmy/fixes/filter-spacing-on-dashboards
Fix small spacing glitch on dashboard widgets
2018-02-28 18:16:09 +02:00
Zsolt Kocsmarszky
ca4663e3a4 fix small spacing glitch on dashboard widgets 2018-02-28 17:08:55 +01:00
Arik Fraimovich
6e097d5cec Merge pull request #2352 from kravets-levko/bug/query-result-column-names
Cast column names to string
2018-02-28 17:08:28 +02:00
Arik Fraimovich
2c95231fd7 Merge pull request #2334 from tonyjiangh/feat/funnel_visualization
Add funnel visualization
2018-02-28 17:06:37 +02:00
Hao Jiang
0d80156eec Rename visualization options for review 2018-02-28 23:44:42 +09:00
Levko Kravets
08c709c2ec getredash/redash#1960 Cast column names to string; code style fixes 2018-02-28 13:28:15 +02:00
Arik Fraimovich
bb28b2f0fb Merge pull request #2350 from getredash/auth
Authentication related settings improvements
2018-02-28 12:16:11 +02:00
Arik Fraimovich
0e4313de52 Merge pull request #2349 from kravets-levko/fix/dashboard-issues
Fix/dashboard issues
2018-02-27 23:22:59 +02:00
Arik Fraimovich
e76e29df24 Merge pull request #2348 from kocsmy/fixes/prometheus-logo
Add missing prometheus and snowflake logos
2018-02-27 23:21:09 +02:00
Arik Fraimovich
d1062ce0c4 Properly generate login URLs. 2018-02-27 23:14:57 +02:00
Arik Fraimovich
9ddf3745b8 Configuration for Google Apps. 2018-02-27 23:10:10 +02:00
Arik Fraimovich
0eefc7b592 join array filter. 2018-02-27 23:09:21 +02:00
Arik Fraimovich
bea035025e Callout sections css. 2018-02-27 23:09:12 +02:00
Arik Fraimovich
33aa7b72b7 Enable debug mode for Flask. 2018-02-27 23:09:00 +02:00
Arik Fraimovich
ca54d23f92 Remove unused LESS code. 2018-02-27 23:08:43 +02:00
Levko Kravets
7d6244a322 Revisit default options; set auto-height for Table viz by default 2018-02-27 18:25:57 +02:00
Levko Kravets
f61a74bbee Fix: 'Cannot read property of null' JS error when going away from dashboard page 2018-02-27 18:25:21 +02:00
Levko Kravets
7d258908c6 getredash/redash#2108 Fix: length limit increased 2018-02-27 18:24:26 +02:00
Zsolt Kocsmarszky
0e53356589 add missing prometheus and snowflake logos 2018-02-27 16:52:33 +01:00
Hao Jiang
aa43dcdb2b Add hover text for full step name 2018-02-27 23:22:41 +09:00
Arik Fraimovich
093c48505a Merge pull request #2347 from kravets-levko/fix/download-dataset-dropup
Fix: download dataset dropup is being cut off
2018-02-27 15:30:57 +02:00
Levko Kravets
c19ef632aa Fix: download dataset dropup is being cut off 2018-02-27 15:24:37 +02:00
Arik Fraimovich
bb1455ec71 Merge pull request #2346 from getredash/auth
Authentication fixes (SAML and login page)
2018-02-26 21:11:52 +02:00
Arik Fraimovich
09af43c4a7 remove unnecessary test. 2018-02-26 20:57:21 +02:00
Arik Fraimovich
35594ecb00 Always show login page and generate URLs with url_for.
Close #1259, #2235.
2018-02-26 20:46:27 +02:00
Arik Fraimovich
3044c77309 Make SAML work in MULTI_ORG mode. 2018-02-26 20:40:28 +02:00
Hao Jiang
0632044573 Handle corner cases 2018-02-26 22:21:05 +09:00
jubel
e6551e9774 remove the type 2018-02-26 14:58:30 +08:00
Arik Fraimovich
11d09b2f09 Fix empty-state logic for MULTI_ORG mode 2018-02-25 11:49:07 +02:00
Arik Fraimovich
8676b846c2 Add support for symlinks in webpack config 2018-02-25 11:13:54 +02:00
Arik Fraimovich
d4f98aa7f7 Merge pull request #2337 from ariarijp/upgrade-sqlparse
Upgrade sqlparse to 0.2.4
2018-02-24 21:29:08 +02:00
Arik Fraimovich
35458e846c Merge pull request #2338 from kravets-levko/fix/table-columns-nowrap
Custom CSS based on column type
2018-02-24 21:28:10 +02:00
jubel
49e9133fed style adjustment 2018-02-24 16:35:10 +08:00
Levko Kravets
5dd76674ff getredash/redash#2215 Custom CSS based on column type 2018-02-23 11:19:07 +02:00
Hao Jiang
8bdd5ff662 Fix sort order 2018-02-23 09:25:04 +09:00
Hao Jiang
9e68b36de6 Add support for selecting column to sort 2018-02-23 09:18:37 +09:00
Hao Jiang
e78bfb2e9a Add support for column mapping 2018-02-23 09:15:56 +09:00
ariarijp
f5d4ca85d8 Upgrade sqlparse to 0.2.4
Add test case for /api/queries/format
2018-02-23 01:24:34 +09:00
Arik Fraimovich
c65b637bc4 Merge pull request #2336 from kravets-levko/fix/settings-tabs-order
Explicitly set order of tabs on Settings page
2018-02-22 15:31:52 +02:00
Levko Kravets
062efe349f Explicitly set order of tabs on Settings page 2018-02-22 15:16:09 +02:00
Arik Fraimovich
696f46d64b Merge pull request #2252 from kocsmy/design/empty-states
Empty states for Home, Dashboards, Queries and Alerts
2018-02-22 11:26:13 +02:00
Arik Fraimovich
42b88d9a32 Ignore archived objects. 2018-02-22 11:04:13 +02:00
Arik Fraimovich
3a840fcc5d Implement empty states logic. 2018-02-22 11:02:12 +02:00
Hao Jiang
a333abcaa5 Use ColorPalette instead 2018-02-22 08:44:39 +09:00
Hao Jiang
d583f6f273 Add funnel visualization 2018-02-21 22:41:31 +09:00
Arik Fraimovich
a1aeb1d614 Merge pull request #2330 from getredash/arikfr-patch-1
Sort widgets by col/row to make sure they are placed correctly
2018-02-21 14:49:10 +02:00
Arik Fraimovich
bd13b78e21 Merge pull request #2320 from kravets-levko/bug/few-bugfixes
Few bugfixes
2018-02-20 22:41:05 +02:00
Arik Fraimovich
4d44be76ac Create <empty-state> component. 2018-02-20 22:29:07 +02:00
Levko Kravets
8cd758cfb6 Update 'absoluteUrl' function 2018-02-20 22:13:48 +02:00
Arik Fraimovich
9a1077d192 Merge branch 'master' into design/empty-states 2018-02-20 21:09:43 +02:00
Arik Fraimovich
bc4f174e22 Sort widgets by col/row to make sure they are placed correctly 2018-02-20 20:45:32 +02:00
Levko Kravets
046595825c Rename: fullUrl -> absoluteUrl 2018-02-19 23:19:03 +02:00
Arik Fraimovich
e0c5eabdd5 Merge pull request #2324 from kravets-levko/bug/type-of-first-table
User shouldn't be able to change the type of the first table
2018-02-19 23:07:26 +02:00
Arik Fraimovich
06e9d192ef Merge pull request #2325 from benmanns/patch-1
Reduce restart to unless-stopped for Redis and Postgres
2018-02-19 22:33:43 +02:00
Arik Fraimovich
906c8fc767 Merge pull request #2282 from kocsmy/design/improve-default-visualisation-colors
Improve visualisation colors
2018-02-19 22:32:37 +02:00
Benjamin Manns
6149e00c2f Reduce restart to unless-stopped for Redis and Postgres
`restart: always` will cause containers to restart when the machine is rebooted or the docker process restarts. Setting this to `unless-stopped` will mean the container will restart only if the docker process/computer was rebooted without stopping the container first. Otherwise, running `docker-compose stop` and rebooting will cause the docker containers all to start again (and goodbye laptop battery!)

We might also consider `restart: on-failures` which would mean that rebooting would _not_ cause containers to start again unless requested via `docker-compose up`.
2018-02-19 11:07:02 -05:00
Zsolt Kocsmarszky
b053770998 less vivid colors fo charts 2018-02-18 19:55:00 +01:00
Zsolt Kocsmarszky
45b380ca00 Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-18 18:05:56 +01:00
Arik Fraimovich
631dad11d6 Merge pull request #2319 from kravets-levko/feature/server-pages-redesign
Redesign of all pages that are rendered by backend code
2018-02-18 14:53:49 +02:00
Levko Kravets
9647c37285 getredash/redash#2312 2018-02-18 14:08:44 +02:00
Zsolt Kocsmarszky
9e5f749556 Change default visualization colors 2018-02-17 18:21:11 +01:00
Zsolt Kocsmarszky
c69795c0cd Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-17 17:47:02 +01:00
Levko Kravets
339f5537c6 Remove code related to hidden text widgets + UI improvements 2018-02-16 21:25:29 +02:00
Levko Kravets
d2c5be5bd5 Replace with window.location 2018-02-16 21:04:45 +02:00
Levko Kravets
21b753f9b5 Bug fixed: empty page when trying to open public dashboard 2018-02-16 20:59:53 +02:00
Levko Kravets
a28a6ea127 Bug: Invite user / Reset password links should be full (include shema and host) 2018-02-16 20:39:18 +02:00
Levko Kravets
38da3e9fef Add SSO login buttons to invite user page; UI fixes 2018-02-16 13:32:40 +02:00
Levko Kravets
f1aad2545e redesign of all pages that are rendered by backend code 2018-02-15 21:49:11 +02:00
Arik Fraimovich
927599cf00 Mark current version as v4-beta 2018-02-14 17:06:51 +02:00
Arik Fraimovich
eae3b1dc0f Update changelog for v4 2018-02-14 16:26:44 +02:00
Arik Fraimovich
d6cc7489b1 Merge pull request #2311 from kravets-levko/feature/add-widget-dialog-update
Add Widget Dialog UX Update
2018-02-14 12:52:12 +02:00
Arik Fraimovich
1b6aaeb663 Merge pull request #2314 from kocsmy/design/add-csv-image
Add CSV image for data source images
2018-02-14 10:17:24 +02:00
yuua
edd709838d Fix: pyHive type matches 2018-02-14 11:52:17 +09:00
Zsolt Kocsmarszky
5e72e6bf1a add CSV image 2018-02-14 00:54:39 +01:00
Levko Kravets
fa03e12b96 getredash/redash#2214 CR1 2018-02-13 23:39:10 +02:00
Arik Fraimovich
adb6a1adee Merge pull request #2313 from kravets-levko/bug/cannot-remove-widgets
Fix: widget is not removed from dashboard, only after page refresh
2018-02-13 22:47:30 +02:00
Levko Kravets
8ec0cda10b Fix: widget is not removed from dashboard, only after page refresh 2018-02-13 21:53:21 +02:00
Levko Kravets
41789fa1db getredash/redash#2214 Add Widget Dialog UX Update 2018-02-13 20:47:30 +02:00
Arik Fraimovich
17f3b1e92d Merge pull request #1692 from kakakakakku/fix-redis-metrics
Fixed monitoring metrics for Redis
2018-02-11 15:54:58 +02:00
Arik Fraimovich
aa06e44ff8 Merge pull request #2099 from ariarijp/fix/create_db
Fix create_db command of docker-entrypoint
2018-02-11 15:48:56 +02:00
Arik Fraimovich
94295788ec Merge pull request #2248 from sjakthol/multiorg-header-login
feat: make trusted header authentication compatible with multiorg mode
2018-02-11 15:41:46 +02:00
Arik Fraimovich
5aa620d1ec Merge pull request #2309 from getredash/fix_params
Add: API to return events
2018-02-11 12:11:32 +02:00
Arik Fraimovich
2560d887f0 Fix import call 2018-02-11 12:04:12 +02:00
Arik Fraimovich
f14388f770 Require admin for events GET call. 2018-02-11 11:57:46 +02:00
Arik Fraimovich
7e4cb4c543 Add: API to return events 2018-02-11 11:56:10 +02:00
Arik Fraimovich
953efc472f Merge pull request #2308 from getredash/fix_params
Fix: parameters list was resetting when adding a new parameter
2018-02-11 11:55:47 +02:00
Arik Fraimovich
5343dd9acf Fix: parameters list was resetting when adding a new parameter 2018-02-11 11:48:12 +02:00
Arik Fraimovich
29c675b553 Update RDS CA bundle 2018-02-11 11:40:56 +02:00
Arik Fraimovich
e328b783f3 Make the S3 staging path label mention query results 2018-02-11 10:26:25 +02:00
Arik Fraimovich
e183b51702 Merge pull request #2307 from getredash/mognodb_nested_fields
Add an option to set a common prefix to the backend logs.
2018-02-10 22:09:39 +02:00
Arik Fraimovich
a82239d719 Add an option to set a common prefix to the backend logs. 2018-02-10 22:08:01 +02:00
Arik Fraimovich
12f9c1a159 Merge pull request #2306 from getredash/mognodb_nested_fields
Add Prometheus to the default query runners list.
2018-02-10 22:06:42 +02:00
Arik Fraimovich
037f8b7183 Add Prometheus to the default query runners list. 2018-02-10 22:05:59 +02:00
Arik Fraimovich
ce69d3069b Merge pull request #2305 from getredash/mognodb_nested_fields
Update botocore version to support Glue
2018-02-10 22:05:52 +02:00
Arik Fraimovich
66a8941a23 Update botocore version to support Glue 2018-02-10 22:04:36 +02:00
Arik Fraimovich
94a770ae7a Merge pull request #2304 from getredash/mognodb_nested_fields
Close #1199: support for nested fields in MongoDB results
2018-02-10 22:03:04 +02:00
Arik Fraimovich
0bbfa8bb8e remove whitespaces 2018-02-10 22:00:55 +02:00
Arik Fraimovich
5ad893a266 Close #1199: support for nested fields in MongoDB results 2018-02-10 21:55:06 +02:00
Arik Fraimovich
790ac2ec54 Merge pull request #2303 from kravets-levko/fix/webpack-config-3
Fix webpack config (server-rendered pages); fix assets URLs
2018-02-09 22:34:32 +02:00
Levko Kravets
ceb1c62528 Fix webpack config (server-rendered pages); fix assets URLs 2018-02-09 19:16:48 +02:00
Arik Fraimovich
e460c18d4a Merge pull request #2301 from kravets-levko/fix/webpack-config-2
Fix webpack config and some assets URLs
2018-02-08 20:27:06 +02:00
Levko Kravets
182d2d040e Fix config; fix assets URLs 2018-02-08 16:39:36 +02:00
Levko Kravets
878908cbf7 Fix webpack config and some assets URLs 2018-02-08 14:07:26 +02:00
Arik Fraimovich
f703a602f0 Merge pull request #2266 from javier-sanz/quotedPasswords
Url password can have quoted special characters.
2018-02-08 11:49:24 +02:00
Arik Fraimovich
07d8babab4 Merge pull request #2296 from getredash/webpack
Assets serving changes
2018-02-08 11:39:36 +02:00
Arik Fraimovich
5e97834b80 Fix upgrade script to support CI builds 2018-02-08 11:35:12 +02:00
Arik Fraimovich
943dcf1da3 Merge pull request #2281 from kravets-levko/feature/cohort-improvements
Cohort visualization improvements
2018-02-08 11:27:35 +02:00
Arik Fraimovich
4090875fcd Merge pull request #2257 from kocsmy/design/error-pages
Error screens
2018-02-08 09:38:05 +02:00
Arik Fraimovich
e69f8fa009 Show standard error messages. 2018-02-08 09:33:03 +02:00
Arik Fraimovich
d6eb8f436f Handle unknown routes in Angular by showing Page Not Found error 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
69b3ea4715 Rearrange the error-state box and place it middle 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
8f52f51e91 Fix content to center 2018-02-08 09:33:03 +02:00
Zsolt Kocsmarszky
a668416dae Nicer error message and box with icon 2018-02-08 09:33:03 +02:00
Arik Fraimovich
96ad3aaa25 Use jQuery from npm packages 2018-02-07 23:08:03 +02:00
Arik Fraimovich
4e5c425932 Merge pull request #2297 from kravets-levko/bug/filter-dropdown
Filters dropdown is "trapped" inside the widget area
2018-02-07 21:09:01 +02:00
Arik Fraimovich
549416694f Fix: login_required decorator was misplaced 2018-02-07 21:07:04 +02:00
Levko Kravets
9532540b54 getredash/redash#2295 2018-02-07 20:22:02 +02:00
Arik Fraimovich
a6cf7643c9 Fix webpack-dev-server setup 2018-02-07 17:18:38 +02:00
Arik Fraimovich
568b3e392b Switch back to single assets path. 2018-02-07 16:43:48 +02:00
Arik Fraimovich
40ffa349f0 Load all assets from a single directory (Webpack's output path). Also make sure all assets URLs are prefixed with /static/ and remove our custom assets serving handler. 2018-02-07 16:43:25 +02:00
Arik Fraimovich
95f4d993b7 Added webpack-manifest plugin 2018-02-07 14:15:21 +02:00
Levko Kravets
f303bc7f53 getredash/redash#2163 CR1 2018-02-07 11:04:47 +02:00
Zsolt Kocsmárszky
d81af63f24 Merge pull request #2291 from kravets-levko/fix/query-refresh-schedule
Make "refresh schedule" part of the rest of the query metadata
2018-02-06 12:31:21 +01:00
Arik Fraimovich
722678f6d1 Merge pull request #2278 from getredash/dashboards_migrations
Move widget position logic migration to the backend and remove some unused code.
2018-02-06 08:44:31 +02:00
Arik Fraimovich
c0778809ab Merge pull request #2288 from kocsmy/design/new-user-layout
New user layout improvement
2018-02-05 13:41:43 +02:00
Arik Fraimovich
8679cfefbf Merge pull request #2289 from kocsmy/design/visualisation-editor-improvements
Improve visualisation editor
2018-02-05 13:37:35 +02:00
Levko Kravets
5064744f8b getredash/redash#2279 2018-02-05 13:35:50 +02:00
Arik Fraimovich
ce15f5665c Merge pull request #2290 from kravets-levko/bug/table-html-escape
Don't escape values in non-html mode
2018-02-05 13:12:44 +02:00
Levko Kravets
8d973d847d getredash/redash#1731 Don't escape values in non-html mode 2018-02-05 13:04:11 +02:00
Zsolt Kocsmarszky
fd030e4d77 Further improve design details 2018-02-05 02:22:05 +01:00
Zsolt Kocsmarszky
6d12794c96 better layout for the visualisation editor 2018-02-05 02:14:30 +01:00
Zsolt Kocsmarszky
af4ecb5085 Nicer layout for add user + typoe fix 2018-02-05 01:52:31 +01:00
Arik Fraimovich
a5904a6e50 Merge pull request #2287 from kravets-levko/feature/table-link-column
Table visualization: "Link" column type
2018-02-04 15:26:17 +02:00
Levko Kravets
361b68d857 Table viz: Link column CR1 2018-02-04 15:25:39 +02:00
Levko Kravets
55d47ede08 Table viz: Link column type 2018-02-04 15:06:08 +02:00
Arik Fraimovich
d97b8d0958 Cast totalBytesProcessed to int. 2018-02-03 21:14:50 +02:00
Zsolt Kocsmarszky
2ed446be80 less neon green 2018-02-02 22:41:47 +01:00
Arik Fraimovich
178f46e5b1 Merge pull request #2284 from getredash/bigquery
Improvements to BigQuery query runner
2018-02-02 23:19:51 +02:00
Arik Fraimovich
d01dfe4bf7 BigQuery: show amout of data scanned. 2018-02-02 23:18:27 +02:00
Arik Fraimovich
2f8db2531f BigQuery: properly handle RECORD fields (show nested fields).
Closes #1413.
2018-02-02 23:18:04 +02:00
Sami Jaktholm
4a719fcb39 followup: coding style fixes to tests 2018-02-02 20:17:53 +02:00
Sami Jaktholm
a96b0b6e4c feat: make trusted header authentication compatible with multiorg mode
The previous implementation of remote header login did not
support the multiorg mode of Re:Dash. These changes modify
the trusted header authentication to expose a per-organization
login endpoint that logs users in the specified organization.

The feature itself is not that interesting as multiorg is pretty
much impossible to use in a standalone Re:Dash installation. What's
more interesting is that all tests are executed in multiorg mode. It's
not possible to write tests for the trusted header authentication if
the method does not support multiorg mode.

To make benefits of these changes more concrete, some tests were
written to test the basic functionality of trusted header
authentication.
2018-02-02 20:17:53 +02:00
Arik Fraimovich
daea3337b0 Merge pull request #2283 from kravets-levko/feature/table-image-column
Table visualization: "Image" column type
2018-02-02 17:32:05 +02:00
Levko Kravets
868944bd91 getredash/redash#2138 Table viz: Image column type 2018-02-02 16:34:09 +02:00
Zsolt Kocsmarszky
caf0070d14 Merge branch 'master' into design/improve-default-visualisation-colors 2018-02-01 22:35:01 +01:00
Zsolt Kocsmarszky
c9b28785fb Improve visualisation colors 2018-02-01 22:32:30 +01:00
Levko Kravets
af7fb278e8 Cohort viz: add Mode option and two rendering modes; options to map columns; UI tweaks 2018-02-01 18:16:00 +02:00
Arik Fraimovich
34d22ee418 Merge pull request #2245 from kocsmy/design/query-round-3
Further Query Improvements
2018-02-01 14:47:41 +02:00
Arik Fraimovich
33b4c7c4c3 Move widget position logic migration to the backend and remove some unused code.
Closes #2218.
2018-02-01 14:40:40 +02:00
Arik Fraimovich
a6f3873059 Merge pull request #2247 from sjakthol/saml-groups-fix
fix: commit saml user group assignment to the database
2018-02-01 14:29:34 +02:00
Arik Fraimovich
aa60554389 Merge pull request #2249 from sjakthol/saml-settings-form-fix
fix: update correct settings in saml settings form
2018-02-01 14:25:14 +02:00
Arik Fraimovich
6f7e95d419 Merge pull request #2267 from alexdrans/es_source_content_type_fix
Setting source_content_type on ES queries
2018-02-01 14:23:52 +02:00
Arik Fraimovich
4c7a0cdc3b Merge pull request #2270 from jezdez/celery-3.1.25
Upgrade to Celery 3.1.25 in preparation to Celery 4.
2018-02-01 14:21:26 +02:00
Arik Fraimovich
bbfad16712 Merge pull request #2277 from kocsmy/fixes/widget-parameter-padding
Fix bottom spacing for widget parameter section
2018-02-01 09:19:23 +02:00
Zsolt Kocsmarszky
94d47abee6 Remove code duplicate 2018-01-31 22:07:29 +01:00
Zsolt Kocsmarszky
75c94c2cbd Fix parameter bottom spacing on widgets 2018-01-31 22:06:10 +01:00
Javier Sanz Olivera
44c2526da2 Fixing style 2018-01-31 16:07:23 +01:00
Javier Sanz Olivera
c05e4b7366 Adapting code to redish style plus added the field to the helper 2018-01-31 16:03:50 +01:00
Arik Fraimovich
77eeba264f Merge pull request #2276 from kravets-levko/fix/insert-shema-node-by-click
Insert schema node by click - fixes
2018-01-31 17:02:44 +02:00
Levko Kravets
bbe11f597c Insert only column name; save cursor position 2018-01-31 16:57:55 +02:00
Levko Kravets
3950c9e5e6 Move scrollbars from right-side area to visualization area 2018-01-31 13:39:40 +02:00
Levko Kravets
6839976312 Fix bug: query editor did not restore its size after toggle 2018-01-31 13:35:40 +02:00
Levko Kravets
7fa765911f Remove unused styles 2018-01-31 13:35:40 +02:00
Levko Kravets
d5acf48161 getredash/redash#2234 Toggle resizable blocks 2018-01-31 13:35:40 +02:00
Levko Kravets
dfc9c5d02b getredash/redash#2234 CR1 2018-01-31 13:35:40 +02:00
Levko Kravets
d2c80e96f7 getredash/redash#2234 Improve query page markup + add scrollbars for each region 2018-01-31 13:35:40 +02:00
Zsolt Kocsmarszky
34a2d5fdc4 Move publish button the visible area 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
936144f6a0 attach people data to the bottom too 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
bacddea809 smaller padding fix 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
5404cc6377 fix schema editor on smaller screens 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
9c28948d5c make schema browser fill up the space 2018-01-31 13:28:46 +02:00
Zsolt Kocsmarszky
797393727d Attach refresh tot he bottom 2018-01-31 13:28:46 +02:00
Arik Fraimovich
2655dbe939 Merge pull request #2275 from kravets-levko/bug/insert-node-update-model
Query editor insert node from schema browser update ngModel
2018-01-31 13:09:25 +02:00
Levko Kravets
c2de59ca33 Query editor insert node from schema browser - update ng-model 2018-01-31 13:04:15 +02:00
Arik Fraimovich
a5c954a954 Merge pull request #2273 from kravets-levko/bug/dashboard-dropdown
Open "Refresh" dropdown to the left
2018-01-31 12:13:07 +02:00
Levko Kravets
b6827bb8c2 getredash/redash#2272 Open dropdown to the left 2018-01-31 11:49:25 +02:00
Arik Fraimovich
5dde17e421 Merge pull request #2269 from kravets-levko/fix/remove-progress-when-query-param-changes
Remove loading indicator when updating query parameter value (before executing)
2018-01-31 11:28:07 +02:00
Levko Kravets
06b5b09b86 getredash/redash#2161 Remove loading indicator when query params changed 2018-01-30 21:06:15 +02:00
Jannis Leidel
7b82203fb1 Upgrade to Celery 3.1.25 in preparation to Celery 4.
To prepare for a future Celery upgrade to verson 4.x this upgrades
Redash to 3.1.25 which includes support for Celery's task protocol 2.
It's the first of two steps to get Redash upgraded to Celery 4.x.

3.1.4 release notes: http://docs.celeryproject.org/en/3.1/changelog.html#version-3-1-24
4.0 release notes regarding the two-step-upgrade approach: http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#step-1-upgrade-to-celery-3-1-25
2018-01-30 19:22:33 +01:00
Arik Fraimovich
e2042b13b0 Merge pull request #2268 from getredash/dashboard-refresh-interval
Make dashboard refresh intervals configurable
2018-01-30 13:49:19 +02:00
Arik Fraimovich
a557d9fa70 Make dashboard refresh intervals configurable 2018-01-30 13:46:19 +02:00
Alex Dransfield
21d14c5388 Setting source_content_type on ES queries 2018-01-30 11:02:01 +00:00
Javier Sanz Olivera
e605176673 Fixing style issue. 2018-01-30 01:19:03 +01:00
Javier Sanz Olivera
4a8a23768f Fixing build and some style issues. 2018-01-30 01:15:17 +01:00
Javier Sanz Olivera
11d4fb4dbe Password can be None 2018-01-30 01:07:51 +01:00
Javier Sanz Olivera
a948544d4c Removing unused import. 2018-01-30 00:52:11 +01:00
Javier Sanz Olivera
cf7d04332b Reverting unquote helper change. 2018-01-30 00:51:13 +01:00
Javier Sanz Olivera
c614ff4a15 Url password can have quoted special characters. 2018-01-30 00:37:30 +01:00
Arik Fraimovich
817f2ba9af Merge pull request #2156 from kravets-levko/feature/revisit-chart
Revisit Plotly integration
2018-01-29 16:48:37 +02:00
Levko Kravets
862bc947f7 getredash/redash#2117 CR7 2018-01-29 12:44:43 +02:00
Arik Fraimovich
d38a443053 Merge pull request #2246 from kyoshidajp/enable_list_query
[WIP]Enable list query by one character when adding widget on Dashboard
2018-01-28 14:09:09 +02:00
Arik Fraimovich
c7284d6662 Merge pull request #2264 from kocsmy/design/pivot-table
Improved pivot table design
2018-01-28 13:58:40 +02:00
Arik Fraimovich
76d8613d3e Merge pull request #2219 from kocsmy/design/new-dashboard-creation
Improve dashboard editing flow
2018-01-28 13:18:39 +02:00
Arik Fraimovich
3aee4e9ed8 remove second add-widget-container 2018-01-28 13:17:55 +02:00
Arik Fraimovich
4029821e93 Properly handle dashbaords filters toggle. 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
5a9b86ff69 make button texts consistent with queries 2018-01-28 12:37:35 +02:00
Arik Fraimovich
c7dbe07b33 Single dashboard editing mode. 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
a98eff8901 improve widget description 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
b090b6b9dc Only render parameters div if we have parameters 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
dd3916672a Wider add widget section for dashboards 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
f7512f18f6 Fix schema hover on sub-items 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
cfb4a1c4f7 Simplify markup and add more styling for add new widget box 2018-01-28 12:37:35 +02:00
Zsolt Kocsmarszky
4b74ab361a Styling improvements + show buttons in the right context 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
977608198e position: sticke for dashboard-header 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
7b62ee8715 Add extra header class and fixed styling 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
80e07c6cf9 add ng-if to hide and show sections accordingly 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
043a1eedcf Add missing class for consistency 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d95c9565f3 plenty of dashboard, filter and parameter fixes (still not the best, it's very messy here) 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
84532f84ac Improve dashboard widget creation and publish process with multiple design improvements 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d9892f852b add new widget to the bottom of the dashboard 2018-01-28 12:37:00 +02:00
Zsolt Kocsmarszky
d6847201e5 Optimise and remove unnecessary code 2018-01-27 13:52:07 +01:00
Zsolt Kocsmarszky
b6ac96ef72 various styling improvements for pivot table to match current design direction 2018-01-27 11:31:31 +01:00
jubel
135af39fd4 support the range query of until now 2018-01-26 14:22:27 +08:00
jubel
8a2676701b extend the prometheus query runner to support the range query 2018-01-26 13:16:28 +08:00
Arik Fraimovich
060fe1dd9c Merge pull request #2259 from shinji19/master
Fix google oauth login for multi organization
2018-01-25 19:54:43 +02:00
SHINJI ICHIHARA
01a7b4eca8 Fix google_auth login for organization 2018-01-26 02:06:31 +09:00
Arik Fraimovich
ba0b9da09f Fix syntax errors. 2018-01-25 12:39:47 +02:00
Zsolt Kocsmarszky
e97fd7da5b add spacing between empty state window and content 2018-01-23 15:28:43 +01:00
Zsolt Kocsmarszky
3477a5540a add icons and fix smaller screen layout 2018-01-23 15:27:24 +01:00
Arik Fraimovich
61a0aaa858 Merge pull request #2250 from getredash/ds_ui_select
Use ui-select for data source picker for consistent style across browsers
2018-01-23 09:46:21 +02:00
Zsolt Kocsmárszky
1b03785a24 Merge pull request #2253 from kocsmy/fixes/queries-search-page-fixed-layout
Fix width for queries/search page as well
2018-01-22 22:43:21 +01:00
Zsolt Kocsmarszky
2c3052eaaa Fix width for queries/search page as well 2018-01-22 22:34:38 +01:00
Zsolt Kocsmarszky
490c8f38d8 Make section full width, remove double titles and minor styling improvements 2018-01-22 22:24:30 +01:00
Zsolt Kocsmarszky
5c5c08ae39 Add empty states for home, dashboards, queries and alerts 2018-01-22 22:03:06 +01:00
Zsolt Kocsmárszky
1ac9e6ee4c Merge pull request #2251 from yoavbls/master
Add mapd, oracle and qubole images
2018-01-22 16:37:47 +01:00
Your Name
1f99cd9e55 Add mapd, oracle and qubole images 2018-01-21 01:17:51 +02:00
Arik Fraimovich
b977526b93 Use ui-select for data source picker for consistent style across browsers 2018-01-20 20:51:01 +02:00
Sami Jaktholm
6dacfaffc7 fix: update correct settings in saml settings form
The entity_id and nameid_format form fields didn't work as they
tried to save a setting with an incorrect name. This has now
been fixed and the form can be used to configure these values.

A short debounce delay was also added to the form to avoid
saving the value after every keystroke (if values are inputted
manually).
2018-01-20 17:31:49 +02:00
Sami Jaktholm
fe2772e9db fix: commit saml user group assignment to the database
Relevant tests were also modified to reload the user
object from the database before asserting that the
user belongs to correct groups.

Fixes #1668.
2018-01-20 15:19:03 +02:00
Katsuhiko YOSHIDA
55c4bb16e2 Enable list query by one character 2018-01-20 12:10:17 +09:00
Levko Kravets
92091bf628 Resolve conflicts with master 2018-01-19 19:39:43 +02:00
Levko Kravets
18b30d6baa getredash/redash#2117 CR6 2018-01-19 19:30:53 +02:00
Levko Kravets
084a2f8806 getredash/redash#2117 CR5 2018-01-19 19:30:53 +02:00
Levko Kravets
c5acf6580c getredash/redash#2117 CR4 2018-01-19 19:30:53 +02:00
Levko Kravets
4f4411a46a getredash/redash#2117 CR3 2018-01-19 19:30:53 +02:00
Levko Kravets
2eaec6970e getredash/redash#2117 CR2 2018-01-19 19:30:53 +02:00
Levko Kravets
30836e76d2 getredash/redash#2117 CR1 2018-01-19 19:30:53 +02:00
Levko Kravets
4547b8b735 getredash/redash#2117 Annotations 2018-01-19 19:30:53 +02:00
Levko Kravets
0cefed7108 getredash/redash#2117 Fix line/area stacking; UI improvements 2018-01-19 19:30:53 +02:00
Levko Kravets
878dc91edb getredash/redash#2117 Optimize code, add more stacking options, fix percent stacking bugs 2018-01-19 19:30:53 +02:00
Levko Kravets
249b78c202 getredash/redash#2117 Revisit Plotly integration 2018-01-19 19:30:53 +02:00
Arik Fraimovich
a4d9ed5418 Merge pull request #2231 from kravets-levko/feature/wide-table
100%-wide results table
2018-01-19 19:01:14 +02:00
Arik Fraimovich
0207449162 Merge pull request #2244 from kocsmy/fixes/python-logo
Add missing python logo
2018-01-19 15:42:12 +02:00
Zsolt Kocsmarszky
2e7b1b4066 Add missing python logo 2018-01-19 13:29:10 +01:00
Arik Fraimovich
7ef94c82f4 Update ISSUE_TEMPLATE.md 2018-01-18 20:17:31 +02:00
Arik Fraimovich
4f1d46cb59 Update ISSUE_TEMPLATE.md 2018-01-18 20:16:50 +02:00
Arik Fraimovich
a1473d6dda Make it clearer people should use the forum. 2018-01-18 20:15:45 +02:00
Arik Fraimovich
0efdd479d6 Merge pull request #2225 from kravets-levko/feature/insert-schema-doubleclick
Insert schema node into editor by click
2018-01-18 16:07:05 +02:00
Arik Fraimovich
c2e28b21cf Merge pull request #2185 from kocsmy/design/new-data-source+query-editor
Design/new data source+query editor
2018-01-18 16:05:22 +02:00
Levko Kravets
7d5bcb8dbf getredash/redash#2215 100%-wide results table 2018-01-18 12:26:49 +02:00
Levko Kravets
c0d86c2766 Rename event to be more generic 2018-01-17 22:26:31 +02:00
Arik Fraimovich
dcf867e4c5 Merge pull request #2226 from kravets-levko/feature/dashboard-remove-embed-related-code
Remove ?embed-related code in public dashboards
2018-01-17 21:08:25 +02:00
Levko Kravets
5dc01f762f Replace double-click with icon+single click 2018-01-16 18:26:46 +02:00
Zsolt Kocsmarszky
11cfc66cef Add Redash styling to editor 2018-01-15 22:52:54 +01:00
Levko Kravets
f5ed122430 getredash/redash#1940 Remove ?embed-related code in public dashboards 2018-01-15 20:33:41 +02:00
Zsolt Kocsmarszky
612710f37c Fix Firefox issue 2018-01-14 21:29:57 +01:00
Zsolt Kocsmarszky
ca69a24729 cleanup css 2018-01-14 21:14:40 +01:00
Zsolt Kocsmarszky
45c75a81e6 Smaller fixes for smaller screens 2018-01-14 21:12:57 +01:00
Zsolt Kocsmarszky
e04729a381 Plenty of improvements based on #2185 comments 2018-01-14 19:31:18 +01:00
Zsolt Kocsmarszky
7ba5cc51e3 move updated at time to the right 2018-01-14 18:03:21 +01:00
Levko Kravets
c65597b35d Fix code style 2018-01-14 14:03:50 +02:00
Levko Kravets
6c4023289e Insert schema path into editor by double click 2018-01-14 14:01:49 +02:00
kakakakakku
ee2acc81ff Fixed monitoring metrics for Redis 2018-01-14 00:51:39 +09:00
Arik Fraimovich
3aa3f7f08d Merge pull request #2221 from mozilla/search-result-sort
correctly sort search result columns
2018-01-12 22:42:25 +02:00
Arik Fraimovich
a6e05e0419 Merge pull request #2222 from kakakakakku/rename-elasticsearch
Renamed to "Elasticsearch"
2018-01-12 22:41:16 +02:00
Arik Fraimovich
7e2a14e496 Merge pull request #2223 from shigemk2/license-2018
It's 2018 now ! 🎉
2018-01-12 15:54:06 +02:00
Michihito Shigemura
30cc0cc1a4 It's 2018 now ! 🎉 2018-01-12 19:08:33 +09:00
kakakakakku
cf436e45a4 Renamed to "Elasticsearch" 2018-01-12 17:18:57 +09:00
Allen Short
3b2b27a883 correctly sort search result columns 2018-01-12 03:47:35 +00:00
Arik Fraimovich
691dc6a24c Merge pull request #2041 from jezdez/fulltext-search
Add full text search for queries based on the Postgres tsvector type.
2018-01-11 20:46:33 +02:00
Arik Fraimovich
75d0d2d588 Show data scanned property when available 2018-01-11 18:14:50 +02:00
Arik Fraimovich
bc29c12b4f Properly handle 1row 2018-01-11 17:51:32 +02:00
Arik Fraimovich
ceb966ad63 Merge branch 'master' into design/new-data-source+query-editor 2018-01-11 15:54:36 +02:00
Arik Fraimovich
44770b3fd7 Merge pull request #2101 from ariarijp/fix/script_query_runner
Strip annotation from query when path is specified in Script Query Runner
2018-01-11 15:05:36 +02:00
Zsolt Kocsmarszky
98d0f05a31 Merge branch 'design/new-data-source+query-editor' of https://github.com/kocsmy/redash into design/new-data-source+query-editor 2018-01-09 22:31:14 +01:00
Zsolt Kocsmarszky
f3014f5291 Further styling fixes 2018-01-09 22:30:23 +01:00
Arik Fraimovich
3a413b53be Fix: embed/edit buttons were not working 2018-01-09 23:18:39 +02:00
Zsolt Kocsmarszky
6ce8883c37 More descriptive button text for edit visualisation 2018-01-09 22:07:25 +01:00
Zsolt Kocsmarszky
ffbf24534f Fix minor styling issues 2018-01-09 18:49:54 +01:00
Zsolt Kocsmarszky
28cc7eaa90 Attach result controls to the bottom of the query page 2018-01-09 18:32:21 +01:00
Zsolt Kocsmarszky
5189e6d3d1 Overwrite instead of writing new code 2018-01-09 17:39:23 +01:00
Zsolt Kocsmarszky
d24a5bdd83 Smaller screen improvements for new data source flow 2018-01-09 15:52:22 +01:00
Zsolt Kocsmarszky
192ddd248b Better required * indication without red color 2018-01-09 15:37:19 +01:00
Zsolt Kocsmarszky
7c4b66b1b5 Rename show / hide source 2018-01-09 14:55:24 +01:00
Arik Fraimovich
cbe76f656f Merge pull request #2204 from mozilla/data-scanned
Report amount of data scanned for Athena queries
2018-01-09 14:56:11 +02:00
Arik Fraimovich
3359ab24af Mark required fields in dynamic forms 2018-01-09 12:57:35 +02:00
Arik Fraimovich
5b938f2c3e Add layouts support. 2018-01-09 12:06:46 +02:00
Jannis Leidel
9f6b4fbdf2 Add full text search for queries based on the Postgres tsvector type. 2018-01-08 22:46:53 +01:00
Arik Fraimovich
55b852f8ee Hide query metadata for unsaved queries 2018-01-08 23:16:08 +02:00
Arik Fraimovich
efede57931 Update org settings layout 2018-01-08 23:14:01 +02:00
Arik Fraimovich
2859c46459 Merge pull request #2205 from sjakthol/redshift-sslmode
Make Redshift sslmode configurable
2018-01-08 11:34:26 +02:00
Zsolt Kocsmarszky
c0fb51f6a5 Multiple styling fixes 2018-01-07 22:53:55 +01:00
Zsolt Kocsmarszky
c1208989a2 Refine logos + the header of 2nd step for adding new data source 2018-01-07 22:22:02 +01:00
Zsolt Kocsmarszky
46061a01c1 Merge branch 'master' into design/new-data-source+query-editor
# Conflicts:
#	package.json
2018-01-07 21:48:56 +01:00
Zsolt Kocsmarszky
a3dec53275 Replacing icons 2018-01-07 21:45:41 +01:00
Arik Fraimovich
ef202e75b9 Close #2159: special tab for your own user profile 2018-01-07 14:13:57 +02:00
Sami Jaktholm
1d188875a9 make Redshift sslmode configurable
This makes it possible to configure Redash to require TLS
and verify the certificate Redshift presents.

The setting works similarly to that of the PostgreSQL source
except that Redshift explicitly passes 'prefer' to psycopg2
if sslmode is not configured (for compatibility).
2018-01-06 21:00:45 +02:00
Allen Short
09d4605635 Report amount of data scanned for Athena queries 2018-01-06 01:08:44 +00:00
Zsolt Kocsmarszky
d1de26ba0c Small screen fixes 2018-01-05 19:22:14 +01:00
Zsolt Kocsmarszky
eb9b3130ee Better aligned and spaced cards 2018-01-05 19:19:00 +01:00
Zsolt Kocsmarszky
9850908ef0 Fixing empty query resize issues 2018-01-05 19:11:05 +01:00
Zsolt Kocsmarszky
f23136542e Remove duplicate datasource selector 2018-01-05 19:04:24 +01:00
Zsolt Kocsmarszky
f6ac9c454c Multiple new data source and alert refinements for layout and styling 2018-01-05 18:45:50 +01:00
Arik Fraimovich
0c05102fe7 Merge pull request #2171 from mayconbordin/salesforce_api_version
Added API version to salesforce query runner
2018-01-05 19:11:35 +02:00
Arik Fraimovich
75af80c126 Merge pull request #2196 from kravets-levko/fix/error-handling
Fix to error handling mechanism: fail only on promise rejections
2018-01-05 19:11:06 +02:00
Arik Fraimovich
2231d1562c Update bootstrap script to use v3. 2018-01-05 18:57:15 +02:00
Zsolt Kocsmarszky
7d16cd2a0c Remove unnecessary classes 2018-01-05 15:22:17 +01:00
Zsolt Kocsmarszky
e29e4bf311 Make org settings layout better 2018-01-05 15:21:50 +01:00
Zsolt Kocsmarszky
f91bc2a505 add athena logo 2018-01-04 23:21:04 +01:00
Arik Fraimovich
ea1334ef6a Make results mode hide query editing parts 2018-01-04 20:51:22 +02:00
Arik Fraimovich
bae4016b3a Remove ng-app directive in query page 2018-01-04 19:10:44 +02:00
Arik Fraimovich
56ffb1f932 Update alert destination to use new design 2018-01-04 17:52:58 +02:00
Arik Fraimovich
3b14958515 Working data source setup pages 2018-01-04 16:12:56 +02:00
Arik Fraimovich
59af40fc30 Switch to dev.redashapp.com as the dev server 2018-01-04 14:23:36 +02:00
Arik Fraimovich
9afd23ab60 Use actual data source types + filtering 2018-01-04 14:23:25 +02:00
Arik Fraimovich
ca893a0e77 Rename db logos to their correct names 2018-01-04 14:22:58 +02:00
Arik Fraimovich
20c3ad2fea Merge branch 'master' into design/new-data-source+query-editor 2018-01-04 13:55:39 +02:00
Arik Fraimovich
6f76aec1e0 Merge pull request #2201 from kocsmy/fixes/fix-unsaved-query-alignment
simplifying the code and fixing alignment issues
2018-01-04 13:15:37 +02:00
Zsolt Kocsmarszky
57aa05f547 simplifying the code and fixing alignment issues 2018-01-04 12:12:02 +01:00
Arik Fraimovich
a6b90445cd Merge pull request #2200 from kocsmy/fixes/filter-headers
Fixing filter headers mixed
2018-01-04 13:02:53 +02:00
Levko Kravets
91d29cbbbe Fix to error handling: CR3 2018-01-04 12:44:51 +02:00
Zsolt Kocsmarszky
33a2271b1a Smaller styling improvements 2018-01-03 22:54:25 +01:00
Zsolt Kocsmarszky
2a3c75976f Refine styling and fixes 2018-01-03 22:33:47 +01:00
Zsolt Kocsmarszky
d8594e7662 Fix misplaced div closing tags 2018-01-03 22:25:09 +01:00
Zsolt Kocsmarszky
7605032eec Fix filters so it'll nicely list 2+ filters 2018-01-03 21:00:15 +01:00
Zsolt Kocsmarszky
7ce815cddb Better alignment 2018-01-03 20:10:18 +01:00
Zsolt Kocsmarszky
4c055c663b fix filter headers and filters on unsaved query alignment 2018-01-03 20:08:43 +01:00
Arik Fraimovich
6a4267abd5 Merge pull request #2199 from kocsmy/fixes/unpublished-query-result-table
bug on query page: if creating new query, table is 100% wide
2018-01-03 20:43:58 +02:00
Arik Fraimovich
bea39343c8 Merge pull request #2198 from washort/change-data-source-query-version
Update query version when changing query data source
2018-01-03 20:42:06 +02:00
Zsolt Kocsmarszky
694115e499 Fix unsaved query table visualisation 2018-01-03 19:35:48 +01:00
Zsolt Kocsmarszky
dc84876d27 Fix fullscreen table to fixed width for unpublished query 2018-01-03 19:26:17 +01:00
Allen Short
07628da64d Update query version when saving new data source 2018-01-03 18:26:09 +00:00
Levko Kravets
aa970a0afb Fix to error handling: CR2 2018-01-03 15:28:15 +02:00
Levko Kravets
effb212e4b Fix to error handling: CR1 2018-01-03 14:00:34 +02:00
Zsolt Kocsmarszky
f687cacbee Revert "Add page-specific class to body for each app page"
This reverts commit e9139748a0.
2018-01-03 12:47:44 +01:00
Zsolt Kocsmarszky
a26dbab28b Merge branch 'master' of https://github.com/getredash/redash into design/new-data-source+query-editor 2018-01-03 12:32:52 +01:00
Zsolt Kocsmarszky
84e65f7165 Merge branch 'master' of https://github.com/getredash/redash 2018-01-03 12:30:48 +01:00
Levko Kravets
dd0ffe3d2c Fix to error handling mechanism: fail only on promise rejections 2018-01-02 14:59:41 +02:00
Arik Fraimovich
bb36ec8664 Merge pull request #2195 from getredash/feature/settings
Allow passing options to tests Docker command.
2018-01-02 13:37:51 +02:00
Arik Fraimovich
2f51df3435 Allow passing options to tests Docker command. 2018-01-02 13:30:06 +02:00
Maycon Bordin
3846cf3269 Added default version for salesforce query runner 2018-01-02 08:17:07 -02:00
Arik Fraimovich
a66ac82a23 Merge pull request #2194 from getredash/feature/settings
Move some of the configuration to the UI
2018-01-02 11:26:29 +02:00
Arik Fraimovich
eb85fc9e5b Merge pull request #2179 from kyoshidajp/add_root_user_command
Feature: Add create root user command
2018-01-02 11:23:56 +02:00
Arik Fraimovich
8d2571cba2 Merge pull request #2187 from kravets-levko/feature/error-handling
Improve error handling mechanism
2018-01-02 11:20:43 +02:00
Arik Fraimovich
93aeae63b7 CodeClimate issue fixes. 2018-01-02 11:13:35 +02:00
Arik Fraimovich
7602599738 Update pysaml2 version to latest release. 2018-01-02 10:48:33 +02:00
Arik Fraimovich
153c0139cd Dynamic organization settings support. 2018-01-02 10:48:22 +02:00
Arik Fraimovich
a6faebb04c Make settings menu dynamic. 2018-01-02 10:43:16 +02:00
Arik Fraimovich
1e156739da Turn settings into a package 2017-12-31 14:39:03 +02:00
Arik Fraimovich
c5e5bb714b Merge pull request #2189 from getredash/feature/settings
Replace Makefile with scripts
2017-12-31 14:35:46 +02:00
Arik Fraimovich
6c4989d8a0 Replace Makefile with scripts 2017-12-31 14:34:41 +02:00
Zsolt Kocsmarszky
4d0a6accc6 More css for better collapse and expand 2017-12-29 18:35:18 +01:00
Zsolt Kocsmarszky
ecc6200aaf Refining styling so resize works nicely 2017-12-29 18:12:30 +01:00
Zsolt Kocsmarszky
3b232d3bcc Fixing resizing issues 2017-12-29 17:14:05 +01:00
Zsolt Kocsmarszky
f258d8086c Add border for editor 2017-12-29 16:38:09 +01:00
Levko Kravets
c9ac9d85e2 getredash/redash#2162 CR2 2017-12-29 11:17:27 +02:00
Levko Kravets
fec92b399a getredash/redash#2162 CR1 2017-12-28 18:39:14 +02:00
Arik Fraimovich
9323a93a8d Merge pull request #2188 from rgjodekerken/master
Fix upgrade script for ci channel
2017-12-28 17:17:04 +02:00
Arik Fraimovich
f75833e5a9 Merge pull request #2166 from kravets-levko/bug/query-page-small-counter
Counter is too small on query page
2017-12-28 17:11:46 +02:00
Richard Odekerken
6307cfb9d7 Fix upgrade script for ci channel 2017-12-28 15:10:45 +00:00
Arik Fraimovich
651d56ad95 Merge pull request #2184 from cloudron-io/ldap_search_dn
rename REDASH_SEARCH_DN to REDASH_LDAP_SEARCH_DN
2017-12-28 16:01:57 +02:00
Arik Fraimovich
055b8eff54 Merge pull request #2175 from bamboo-yujiro/fix_user_form
Fix : User Form displays a incorrect error appearance.
2017-12-27 22:01:15 +02:00
Girish Ramakrishnan
c59e7ea2a5 rename REDASH_SEARCH_DN to REDASH_LDAP_SEARCH_DN 2017-12-27 10:33:08 -08:00
Levko Kravets
1bfea8b493 Improve error handling mechanism (related to getredash/redash#2162) 2017-12-27 16:01:29 +02:00
Zsolt Kocsmarszky
c9d5347658 mobile and spacing fixes 2017-12-27 14:47:58 +01:00
Zsolt Kocsmarszky
58eb08e22a Refine format and other smaller elements 2017-12-27 13:33:00 +01:00
Zsolt Kocsmarszky
52bae5cbe5 Rearrange elements for better UX 2017-12-27 13:08:05 +01:00
Zsolt Kocsmarszky
f2585d1124 Better edit in place and other refinements for rearranged layout 2017-12-27 13:07:48 +01:00
Zsolt Kocsmarszky
635aeb3409 Remove classes 2017-12-27 11:23:46 +01:00
Zsolt Kocsmarszky
e6ec50a4e6 Dynamic forms back live again, extra classes added for better form design 2017-12-27 11:19:19 +01:00
Zsolt Kocsmarszky
3bc5c60907 better data source cars + list view has cards now, too 2017-12-27 11:13:09 +01:00
Zsolt Kocsmarszky
a698cb0484 Pluralize database 2017-12-27 10:53:07 +01:00
Arik Fraimovich
6441c4b52d Merge pull request #2174 from tonyjiangh/feature/add_redshift_view_support
Add redshift late binding view data to schema browser
2017-12-26 21:05:54 +02:00
Arik Fraimovich
ff078485f2 Merge pull request #2165 from tonyjiangh/feature/query_result_exception
Fix unicode handling at query result
2017-12-26 20:59:52 +02:00
Zsolt Kocsmarszky
e925568e3d Further improve smaller screen design 2017-12-26 14:19:18 +01:00
Zsolt Kocsmarszky
db6c8769d4 Further refining code and removing junk 2017-12-26 13:50:46 +01:00
Zsolt Kocsmarszky
3c9f59b055 Adjust button size size so it's consistent 2017-12-26 13:35:03 +01:00
Zsolt Kocsmarszky
0a15986619 Code and styling improvements focusing on xs and sm screen sizes 2017-12-26 13:18:36 +01:00
Zsolt Kocsmarszky
696eefad1a Further cleaning up code 2017-12-26 11:39:42 +01:00
Zsolt Kocsmarszky
708cc26c1d Cleaning up code and properly fall back design on narrower screen for query-metadata 2017-12-26 11:33:52 +01:00
Katsuhiko YOSHIDA
da1f99d846 Add create root user command 2017-12-23 18:04:38 +09:00
bamboo-yujiro
4f814408c7 Retry codeclimate 2017-12-22 11:09:15 +09:00
Hao Jiang
87ce1db3bd Add redshift late binding view data to schema browser 2017-12-21 22:24:31 +09:00
bamboo-yujiro
71e6bf13ff Fix : User Form displays a incorrect error appearance. 2017-12-21 17:52:25 +09:00
Zsolt Kocsmarszky
24188ab1de Perfectly calculated schema-container size, finally 2017-12-21 02:12:46 +01:00
Zsolt Kocsmarszky
e6f8b2c502 Flexible query editor 2017-12-20 23:38:46 +01:00
Levko Kravets
e9139748a0 Add page-specific class to body for each app page 2017-12-20 17:28:42 +02:00
Maycon Bordin
3cfd34a897 Added API version to salesforce query runner and fixed issue when row column value does not exist 2017-12-20 10:00:42 -02:00
Zsolt Kocsmarszky
404000e5fe Add missing elements for new data source screen 2017-12-19 14:08:17 +01:00
Zsolt Kocsmarszky
5441ef429e Fix card sizes 2017-12-19 13:23:48 +01:00
Zsolt Kocsmarszky
1110e65e4a Load all images from images folder 2017-12-19 12:37:08 +01:00
Zsolt Kocsmarszky
9ac5d58b89 flexible layout v0.1 (WIP) 2017-12-18 23:27:08 +01:00
Zsolt Kocsmarszky
0810c2b1e0 Change to narrow layout 2017-12-18 20:03:50 +01:00
Levko Kravets
68f0c368c0 getredash/redash#2129 Counter too small on query page 2017-12-18 15:12:55 +02:00
Zsolt Kocsmarszky
64c69ee009 Foundation for New Data Source layout added 2017-12-17 20:48:25 +01:00
Zsolt Kocsmarszky
e2df12e2a2 Merge branch 'design/query-page-improvements' into design/new-data-source-flow 2017-12-17 19:29:15 +01:00
Zsolt Kocsmarszky
0f31de33e8 General styling improvements 2017-12-17 19:27:54 +01:00
Zsolt Kocsmarszky
d37948f44b Merge branch 'master' into design/new-data-source-flow 2017-12-17 18:37:44 +01:00
Hao Jiang
6e2e2e2060 Fix: unicode handling at query result 2017-12-16 09:55:15 +09:00
Zsolt Kocsmarszky
439cc45ca7 Merge branch 'master' into design/query-page-improvements 2017-12-13 22:14:13 +01:00
Zsolt Kocsmarszky
816c61944e Recreate new 2 column layout 2017-12-13 22:12:45 +01:00
Arik Fraimovich
5ba15ef350 Remove trailing spaces 2017-12-13 11:59:43 +02:00
Arik Fraimovich
30136c4e97 Merge pull request #2148 from kyoshidajp/replace_datetime_strings
Replace invalid date time strings
2017-12-13 11:53:15 +02:00
Arik Fraimovich
1a4d7471f5 Stored parsed moment value. 2017-12-13 11:52:56 +02:00
Arik Fraimovich
1d3c2144c4 Merge pull request #2154 from crooy/master
fixing issue #2150
2017-12-13 11:38:12 +02:00
Arik Fraimovich
fdf35328ac Merge pull request #2152 from bamboo-yujiro/fix_appearance_collapse_of_outdated-queries
Fix: Appearance collapse of outdated-queries.
2017-12-13 11:37:36 +02:00
Zsolt Kocsmarszky
c147d30cb5 Separate Data source panel, freely expanding schema browser, freely expandable query editor, better smaller screen layout 2017-12-12 22:31:52 +01:00
Ronald Crooy
80a74934f0 fixing issue #2150 2017-12-12 11:37:24 +01:00
bamboo-yujiro
a36cc6838b Fix: Appearance collapse of outdated-queries. 2017-12-12 00:58:11 +09:00
Arik Fraimovich
073db37cfd Merge pull request #2136 from doddjc21/patch-1
Update oracle.py
2017-12-11 16:34:42 +02:00
Katsuhiko YOSHIDA
b7b8e56722 Consider value is string case 2017-12-11 20:09:27 +09:00
Zsolt Kocsmarszky
8a11183905 Add data source logos 2017-12-11 00:36:40 +01:00
Katsuhiko YOSHIDA
c045ccabe4 Replace invalid date time strings 2017-12-10 22:46:31 +09:00
Arik Fraimovich
c3cb2cc28b Merge pull request #2126 from getredash/layout_fixes
Layout fixes (mainly schema browser)
2017-12-07 19:45:55 +02:00
Arik Fraimovich
990d32cfa2 Remove unneeded code 2017-12-07 17:14:47 +02:00
Arik Fraimovich
1573e06e71 Merge pull request #2134 from getredash/fix_query_results_download
Fix #68: user can't download query results of a new query
2017-12-07 16:33:59 +02:00
Arik Fraimovich
6bb05106cd Hide shcema browser when it's not relevant 2017-12-07 16:31:34 +02:00
Arik Fraimovich
c1d7e0401f Explict response when schema is not supported (vs just some error loading it) 2017-12-07 16:31:02 +02:00
Arik Fraimovich
604540266a Merge pull request #2135 from kocsmy/fixes/query-tables
Fixes/query tables
2017-12-07 16:14:53 +02:00
Joseph Dodd
4954d1c807 Update oracle.py 2017-12-06 17:51:27 -05:00
Joseph Dodd
45b828e361 Update oracle.py 2017-12-06 17:48:36 -05:00
Joseph Dodd
96e2991650 Update oracle.py 2017-12-06 17:44:49 -05:00
Joseph Dodd
54b1f4219d Update oracle.py 2017-12-06 17:39:51 -05:00
Zsolt Kocsmarszky
3a0ffa53e2 Fix filters spacing on Dashboards 2017-12-06 22:44:34 +01:00
Zsolt Kocsmarszky
7381bd11a0 Fix margin on pagination 2017-12-06 22:28:10 +01:00
Zsolt Kocsmarszky
19bd150e4b Fix pagination 2017-12-06 22:21:33 +01:00
Zsolt Kocsmarszky
e65b023fa7 Make embed query tables width: auto too and apply css flexbox 2017-12-06 22:18:15 +01:00
Zsolt Kocsmarszky
69badf67fc Merge branch 'master' into fixes/query-tables 2017-12-06 21:31:54 +01:00
Zsolt Kocsmarszky
68177d31b3 Fix wide tables on queries and related elements like pagination 2017-12-06 21:30:27 +01:00
Joseph Dodd
808a4c5d72 Update oracle.py
Update Oracle.py to make INSERTS and UPDATES to Oracle databases
2017-12-06 14:55:13 -05:00
Arik Fraimovich
8e668d2e09 Fix #68: user can't download query results of a new query 2017-12-06 18:14:34 +02:00
Arik Fraimovich
868f334471 Merge pull request #2127 from getredash/gravatar
Change default gravatar type
2017-12-06 11:50:14 +02:00
Arik Fraimovich
3f37c347f9 Change default gravatar type 2017-12-06 11:17:59 +02:00
Arik Fraimovich
271e6a56da Merge branch 'kyoshidajp-add_user_image' 2017-12-06 11:12:54 +02:00
Arik Fraimovich
0988e8184a Rebase with latest master 2017-12-06 11:12:16 +02:00
Katsuhiko YOSHIDA
62e5e38926 Rename profile image url column and method 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
dce865356c Set default parameter None as picture 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
7f398a7d7f Allow None as image_url in User model 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
56c364f0a3 Change style name of profile image 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
0b9b6a623e Change size of profile immage in User 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
ea5788f173 Display user image before name to each page 2017-12-06 09:16:24 +09:00
Katsuhiko YOSHIDA
4a58b9e944 Add image url as a User field 2017-12-06 09:16:24 +09:00
Arik Fraimovich
18b857363f Handle cases when schema is empty 2017-12-06 00:01:01 +02:00
Arik Fraimovich
f02c0e0b9c Fix: table pagination overlap 2017-12-05 21:53:26 +02:00
Arik Fraimovich
6fc6c67e44 Revert accidental changes to query.html 2017-12-05 18:03:37 +02:00
Arik Fraimovich
2c36563e50 View query link in widget should link to source view 2017-12-05 16:42:27 +02:00
Arik Fraimovich
c9a680b4b7 Consistent size of query editor 2017-12-05 16:42:27 +02:00
Arik Fraimovich
b8543eb2bd Change: query should be first in create menu 2017-12-05 16:41:58 +02:00
Arik Fraimovich
b17794f622 Merge pull request #2124 from kocsmy/fixes/merge-fixes-2017-12-05
Fixes/merge fixes 2017 12 05
2017-12-05 16:40:45 +02:00
Zsolt Kocsmarszky
63e76628cf Fix showing refresh time on public dashboard 2017-12-05 15:34:46 +01:00
Zsolt Kocsmarszky
2567c73dba Add Redash logo to the public dashboard footer 2017-12-05 15:21:59 +01:00
Zsolt Kocsmarszky
9c81b866d5 Fix alert spacing 2017-12-05 15:15:09 +01:00
Zsolt Kocsmarszky
ed7a7d4275 Fix query editor size when schema is there but empty 2017-12-05 15:09:20 +01:00
Arik Fraimovich
bc9bcee064 Merge pull request #2123 from kravets-levko/fix/chart-x-axis-height
Fix: chart x-axis height setting
2017-12-05 15:56:12 +02:00
Levko Kravets
96a73b0c9e getredash/redash#2107 Fix: chart x-axis height setting 2017-12-05 15:37:32 +02:00
Arik Fraimovich
004f550e93 Merge pull request #2113 from kocsmy/design/refinements-2
Design/refinements 2
2017-12-05 14:08:36 +02:00
Zsolt Kocsmarszky
2ef9403516 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/components/dynamic-table/dynamic-table.html
#	client/app/pages/queries/query.html
2017-12-05 13:04:08 +01:00
Zsolt Kocsmarszky
7ac88f91dc Fix height for schema browser 2017-12-05 12:36:42 +01:00
Arik Fraimovich
3d0080a9ca Merge pull request #2120 from negibouze/prevent-remove-self
prevent remove self
2017-12-05 13:28:05 +02:00
Arik Fraimovich
2c39028b8b Merge pull request #2118 from deecay/pie-styling
Change: Pie chart font style
2017-12-05 13:27:41 +02:00
Zsolt Kocsmarszky
06cab14693 Fix layout 2017-12-05 12:12:53 +01:00
板倉義晃
4dd8f8cf84 prevent remove self
The administrator made it impossible to remove him/herself from the
built-in group.
2017-12-05 14:02:46 +09:00
deecay
2be067040e Change: Pie chart font style 2017-12-05 10:42:22 +09:00
ariarijp
ccb20640fe Remove half-baked unit test 2017-12-05 00:27:18 +09:00
Arik Fraimovich
9d7f079d94 Merge pull request #2089 from msumit/Qbol_Support
Add Qubole query runner
2017-12-04 16:31:27 +02:00
Arik Fraimovich
91a2b49f4c Merge pull request #2110 from kravets-levko/feature/table-v2
Table v2
2017-12-04 16:15:56 +02:00
Levko Kravets
6d11e8f57a Table viz: CR3 2017-12-04 16:11:04 +02:00
Levko Kravets
1ca0ac6278 Table viz: CR2 2017-12-04 13:27:32 +02:00
Arik Fraimovich
4cd352599a Add v4 to CHANGELOG. 2017-12-04 11:30:24 +02:00
Zsolt Kocsmarszky
4798361d87 Merge branch 'master' into design/refinements-2 2017-12-03 15:29:14 +01:00
Zsolt Kocsmarszky
08b97d0a4e Hide "Data" text from data source 2017-12-03 15:27:39 +01:00
Levko Kravets
a0d9b94488 Table viz: small fixes 2017-12-03 12:54:34 +02:00
Zsolt Kocsmarszky
7272b9904a Improve visualisation embed design (iframe) so it looks better 2017-12-02 23:59:21 +01:00
Levko Kravets
30833100e5 Table viz: search; CR1 2017-12-02 21:55:36 +02:00
Arik Fraimovich
7974c90042 Merge pull request #2111 from kyoshidajp/upgrade_psycopg2
Upgrade psycopg2 for support PostgreSQL 10.0
2017-12-02 21:22:09 +02:00
Katsuhiko YOSHIDA
f4c4e18bf7 Upgrade psycopg2 latest version 2017-12-02 09:11:43 +09:00
Zsolt Kocsmarszky
ca75eb63c6 Separate Query styling and fix a small issue 2017-12-01 16:50:45 +01:00
Zsolt Kocsmarszky
27458599e8 Turn off link when editing a dashboard + show move cursor so it suggests you can drag the widget with its header and move around 2017-12-01 16:15:39 +01:00
Zsolt Kocsmarszky
1d90f2acad Fix line-height 2017-12-01 16:04:39 +01:00
Zsolt Kocsmarszky
60becaf4c2 Nicer highlights fro query dropdown 2017-12-01 15:46:06 +01:00
Zsolt Kocsmarszky
73af14069d Move view/show query to bottom of its section 2017-12-01 15:39:49 +01:00
Levko Kravets
dc4902a800 Minor fixes 2017-12-01 16:18:51 +02:00
Zsolt Kocsmarszky
ccb440c759 Add ref so we know how many people get to know about Redash through shared dashboards 2017-12-01 15:03:54 +01:00
Zsolt Kocsmarszky
f3633b18e7 Move format back to visible place 2017-12-01 15:00:14 +01:00
Zsolt Kocsmarszky
2b43bd7d28 Fix up fullscreen 2017-12-01 14:59:42 +01:00
Zsolt Kocsmarszky
1beeda6b32 Fix filter spacing and remove inline css 2017-12-01 14:35:49 +01:00
Levko Kravets
ed70002f43 Table viz: code improvements 2017-12-01 15:25:58 +02:00
Zsolt Kocsmarszky
83e1ded008 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/components/filters.html
2017-12-01 14:15:46 +01:00
Levko Kravets
015d0c6edd Table viz: custom cell rendering; JSON cell renderer 2017-12-01 13:40:41 +02:00
Katsuhiko YOSHIDA
e17a1a1378 Upgrade psycopg2 for support PostgreSQL 10.0 as a library 2017-12-01 19:31:05 +09:00
Levko Kravets
8fc3af7bb9 Table viz: editor UI 2017-12-01 07:41:09 +02:00
Zsolt Kocsmarszky
3df9d480a4 Change footer for public dashboards 2017-11-30 21:48:25 +01:00
Levko Kravets
127b45a5b1 Table viz: editor 2017-11-30 21:52:21 +02:00
Levko Kravets
e7d0856831 Table viz: show/hide column, reorder columns, content alignment 2017-11-30 19:30:45 +02:00
Levko Kravets
fb44d32ba3 Table viz: multi-column sort, align data, allow html 2017-11-30 15:52:46 +02:00
ariarijp
736c014d51 Return False from annotate_query instead of strip annotation with regex 2017-11-30 00:43:50 +09:00
Arik Fraimovich
3f30693b74 Merge pull request #2102 from ariarijp/fix/typo_in_settings
Fix typo
2017-11-29 12:26:36 +02:00
Arik Fraimovich
4a06e6266e Merge pull request #2105 from kravets-levko/fix/visualization-filters
Fixes related to filters panel
2017-11-28 16:19:50 +02:00
Levko Kravets
0d1ad21a1b getredash/redash/issues/2103 Fix: unnecessary horizontal scroll; fix: viz overlaps filters panel 2017-11-28 15:01:48 +02:00
Zsolt Kocsmarszky
8e8a63acb9 Fix table styling which sits inside a container and not going full width. Apply this to multiple screens. 2017-11-26 20:36:37 +01:00
Zsolt Kocsmarszky
edbec3f49d Fix last-child padding bottom 2017-11-26 20:17:48 +01:00
Zsolt Kocsmarszky
f2eb225f06 Fix cell padding to fit header padding 2017-11-26 20:13:53 +01:00
Zsolt Kocsmarszky
d0ec1ca68d Further adjust table settings 2017-11-26 20:11:01 +01:00
Zsolt Kocsmarszky
51e6087888 Circle profile pictures on user list 2017-11-26 20:10:48 +01:00
Zsolt Kocsmarszky
50fcd8d34d Adjust table header background color 2017-11-26 19:56:06 +01:00
Zsolt Kocsmarszky
37f27fc29a Adjust table styling 2017-11-26 19:53:11 +01:00
Zsolt Kocsmarszky
690ce521ca Fix spacing for all kind of table (normal, condensed) 2017-11-26 18:08:45 +01:00
Zsolt Kocsmarszky
7cbed96945 Fix pagination margin below dynamic-table 2017-11-26 18:00:04 +01:00
Zsolt Kocsmarszky
baa36c97fb Add to readme 2017-11-26 17:53:42 +01:00
Zsolt Kocsmarszky
6bbd1bf288 Add styling readme 2017-11-26 17:51:51 +01:00
Zsolt Kocsmarszky
12ecd23ceb Add Cantarell to the default font-family 2017-11-26 17:47:20 +01:00
Zsolt Kocsmarszky
b9078a28d4 Refine table styling and improve less organisation 2017-11-26 17:42:56 +01:00
Zsolt Kocsmarszky
8e3c62db83 Fix refreash button size to btn-sm 2017-11-26 17:32:13 +01:00
Zsolt Kocsmarszky
9492ff9444 Fix button margins 2017-11-26 17:16:50 +01:00
Zsolt Kocsmarszky
b0177deda0 Move fork query under dropdown, too and remove redundant text information 2017-11-26 16:54:32 +01:00
Zsolt Kocsmarszky
89592d3e80 Fix padding at no schema sources 2017-11-26 16:51:08 +01:00
Zsolt Kocsmarszky
0a6fc27fdd Rearrange query elements 2017-11-26 16:49:02 +01:00
Zsolt Kocsmarszky
a7ca236903 Change source editor and schema browser 2017-11-26 16:31:42 +01:00
ariarijp
b716e5c23d Fix typo 2017-11-27 00:24:01 +09:00
Zsolt Kocsmarszky
063066dfae Tighten up schema browser 2017-11-26 16:05:46 +01:00
Zsolt Kocsmarszky
5bdb34e451 Fix spacing in filters 2017-11-26 15:47:08 +01:00
ariarijp
f4d0609140 Strip annotation from query when path is specified in Script Query Runner 2017-11-26 23:09:12 +09:00
ariarijp
cb62c10a66 Fix create_db command of docker-entrypoint 2017-11-26 13:26:44 +09:00
Zsolt Kocsmarszky
05cc170ab1 Better organised query editor 2017-11-25 16:36:36 +01:00
Zsolt Kocsmarszky
4540256f3e Add proper styling for parameters 2017-11-25 07:29:22 +01:00
Zsolt Kocsmarszky
3d33ebc916 Tightening up Query editor 2017-11-25 07:29:05 +01:00
Zsolt Kocsmarszky
decc0b8ee8 Fix merge conflicts 2017-11-25 06:29:08 +01:00
Zsolt Kocsmarszky
a488de22c4 Merge branch 'master' into design/refinements-2
# Conflicts:
#	client/app/pages/dashboards/public-dashboard-page.html
2017-11-25 06:27:52 +01:00
Zsolt Kocsmarszky
f835aec980 Adjust top margin 2017-11-25 06:25:06 +01:00
Zsolt Kocsmarszky
5893b68daf Public dashboards: remove navbar and add missing footer 2017-11-25 06:17:56 +01:00
Sumit Maheshwari
660c72e608 Add Qubole query runner 2017-11-24 17:30:08 +05:30
Arik Fraimovich
01cf6de4dc Merge pull request #2098 from kravets-levko/fix/sankey-sunburst
Fixed sunburst/sankey issue with rendering
2017-11-23 18:21:20 +02:00
Levko Kravets
fa460223b7 CR1 2017-11-23 18:13:42 +02:00
Arik Fraimovich
39aeef5486 Merge pull request #2097 from ariarijp/fix/query_results
Handling whitespace characters in Query Results data source
2017-11-23 18:00:31 +02:00
Levko Kravets
4006d72831 getredash/redash#2095 Fixed sunburst/sankey issue with rendering; minor UI fixes 2017-11-23 17:42:03 +02:00
ariarijp
93aa28cdf7 Handling whitespace characters in Query Results data source 2017-11-23 21:46:10 +09:00
Arik Fraimovich
8e8278d05e Merge pull request #2081 from kocsmy/design/refinement
Design/refinement
2017-11-22 18:27:05 +02:00
Arik Fraimovich
3d9d658594 Merge pull request #2087 from yershalom/add_cockraochdb_ds
Added new CockroachDB DS to redash
2017-11-22 18:23:36 +02:00
Arik Fraimovich
9ae1bc3051 Merge branch 'master' into design/refinement 2017-11-22 18:20:17 +02:00
Arik Fraimovich
a9384d3a09 Merge branch 'master' into design/refinement 2017-11-22 18:19:40 +02:00
Arik Fraimovich
9bbce6b06a Merge pull request #2053 from cdessanti/patch-1
SQL Query Runner for MAPD database
2017-11-22 18:15:39 +02:00
Arik Fraimovich
b96ab5eb0e Merge pull request #2048 from arjan/elasticsearch-doc-count-aggregation
Elasticsearch: Collect doc_count field from aggregation
2017-11-22 18:12:59 +02:00
Arik Fraimovich
5b91d97e48 Merge pull request #2043 from jezdez/pytest
Move to pytest since nose is unmaintained.
2017-11-22 18:11:59 +02:00
Arik Fraimovich
9de3e975eb Merge pull request #1985 from miketheman/miketheman/user-email-case-insensitive
Ensure email is case-insensitive
2017-11-22 18:11:07 +02:00
Arik Fraimovich
1b7cc3731c Merge pull request #2092 from jasonsmithj/fix/mysql_query_cancel
Fix doesn't work  mysql query cancel button
2017-11-22 18:00:35 +02:00
Arik Fraimovich
e7fdbee59d Merge pull request #2083 from kravets-levko/feature/responsive-visualizations
Responsive visualizations
2017-11-22 18:00:08 +02:00
jasonsmithj
1e12f70cf4 mysql query cancel 2017-11-22 10:53:25 +09:00
Levko Kravets
0ef04e2839 Rebase CSS changes to LESS 2017-11-21 09:18:17 +02:00
Levko Kravets
24ebd8dc53 CR3 2017-11-21 09:08:09 +02:00
Levko Kravets
4af56bd101 Small CSS fix 2017-11-21 09:08:09 +02:00
Levko Kravets
5faf41a18c CR2: fit counter by height (not by width) 2017-11-21 09:08:09 +02:00
Levko Kravets
485f0e3278 CR1 2017-11-21 09:08:09 +02:00
Levko Kravets
21150ad4ca Counter: fix auto-size 2017-11-21 09:08:09 +02:00
Levko Kravets
059da21280 Chart: fit to container on resize 2017-11-21 09:08:09 +02:00
Levko Kravets
24e7ee51ba Fix: Counter flickering; Map, Counter: disappears in mobile mode 2017-11-21 09:08:09 +02:00
Levko Kravets
584cbea017 Better fix for Map viz 2017-11-21 09:08:09 +02:00
Levko Kravets
1d210c774a Fix visualization previews 2017-11-21 09:08:09 +02:00
Levko Kravets
289aa8561f Some fixes for Map viz 2017-11-21 09:08:09 +02:00
Levko Kravets
d765f6edb6 Some fixes for Table and Pivot viz 2017-11-21 09:08:09 +02:00
Levko Kravets
5f5b95b455 Map viz: constraints and position 2017-11-21 09:08:09 +02:00
Levko Kravets
e57d9f4701 Counter viz: fit text to width 2017-11-21 09:08:09 +02:00
Levko Kravets
b26284933c Allow to specify default size for each visualization type 2017-11-21 09:08:09 +02:00
Zsolt Kocsmarszky
825157a549 Friendlier next and prev arrows 2017-11-20 23:21:26 +01:00
Zsolt Kocsmarszky
961144c3b8 Remove Roboto 2017-11-20 22:20:39 +01:00
Zsolt Kocsmarszky
0abfe19c6a Add newstyle to the soup 2017-11-20 22:15:26 +01:00
Zsolt Kocsmarszky
3c1a756ca3 Merge branch 'master' of https://github.com/getredash/redash
# Conflicts:
#	client/app/config/styles.js
2017-11-20 22:10:31 +01:00
Zsolt Kocsmarszky
7f2328d0a5 Adjust bg-ace and table headers 2017-11-20 21:48:15 +01:00
Arik Fraimovich
457b8d9d8a Merge pull request #2091 from kravets-levko/less2
Convert styles to LESS
2017-11-20 22:35:21 +02:00
Levko Kravets
773e5e6393 Convert styles to LESS 2017-11-20 17:46:37 +02:00
Zsolt Kocsmarszky
dfd2d9ecec Remove uppercase and capitalize table and tab headers 2017-11-20 16:10:10 +01:00
Zsolt Kocsmarszky
a1fdaa998b Revert hiding refresh button, still keep refresh functionality on last refreshed date 2017-11-20 16:03:49 +01:00
Arik Fraimovich
7955a83f1d Add paginator only when there are more than 1 pages 2017-11-20 10:19:54 +02:00
Arik Fraimovich
3af1176e70 Fix: two nav bars on my queries page 2017-11-20 10:11:41 +02:00
Zsolt Kocsmarszky
ab77f00526 Move refresh button under latest refresh time 2017-11-19 21:34:40 +01:00
Zsolt Kocsmarszky
835d417d8d Styling improvements on Query screen 2017-11-19 21:19:36 +01:00
Zsolt Kocsmarszky
895d743ab6 Fix description hover 2017-11-19 21:01:10 +01:00
Zsolt Kocsmarszky
68404b8dd3 Styling refinement 2017-11-19 20:44:38 +01:00
Zsolt Kocsmarszky
5b19efdb73 Layout fix for System Status 2017-11-19 20:17:11 +01:00
Zsolt Kocsmarszky
86fc099873 Clean up admin page markup 2017-11-19 17:54:46 +01:00
Zsolt Kocsmarszky
819b109dde Remove uppercase from tab header so it looks friendlier 2017-11-19 17:41:16 +01:00
Zsolt Kocsmarszky
334289b81c Add system fonts as default and simplify the code 2017-11-19 17:38:18 +01:00
Zsolt Kocsmarszky
e64832867e Better organised stylesheet for easier maintainability + an IE fix 2017-11-19 17:14:49 +01:00
Zsolt Kocsmarszky
c3ca2e2ec1 Small improvement on widget styling 2017-11-18 21:02:50 +01:00
Zsolt Kocsmarszky
1115f2a702 Add missing tiled class 2017-11-18 20:16:59 +01:00
Zsolt Kocsmarszky
0b0762f10c Improved pagination 2017-11-18 19:57:45 +01:00
Zsolt Kocsmarszky
f423e0c030 Remove fancy input hover animation 2017-11-18 19:40:07 +01:00
Shalom Yerushalmy
8da40077fa Added one line for pep8 convention 2017-11-16 09:46:52 +02:00
Shalom Yerushalmy
dbf7c90ebc Added new CockroachDB DS to redash 2017-11-16 09:41:02 +02:00
Arik Fraimovich
ff0f5a0dfd Merge pull request #2082 from deecay/pie-subplot-title
Add: Pie chart subplot title
2017-11-15 23:44:33 +02:00
Arik Fraimovich
b702299067 Version bump. 2017-11-15 23:10:56 +02:00
Zsolt Kocsmarszky
a751c03fca Fixing Firefox issues and fine-tuning smaller details 2017-11-14 22:38:31 +01:00
Zsolt Kocsmarszky
1c926830a8 Styling refinements 2017-11-14 21:34:34 +01:00
Zsolt Kocsmarszky
dc8e8b70c5 Hide username on smaller screens + move Query Snippets and hide divider for users 2017-11-14 21:34:11 +01:00
Zsolt Kocsmarszky
315e77b7dd Cleanup settings/user and remove unnecessary tabs 2017-11-14 21:32:53 +01:00
Zsolt Kocsmarszky
c510b35b16 Add tiled class and adjust layout 2017-11-14 21:32:22 +01:00
Zsolt Kocsmarszky
2c2c626c42 Smaller layout, grid and styling fixes 2017-11-13 21:24:43 +01:00
Zsolt Kocsmarszky
fa7eaaebcd remove redundant buttons from home 2017-11-13 21:24:17 +01:00
Zsolt Kocsmarszky
4ed9e01091 Smaller improvements 2017-11-13 21:03:50 +01:00
Zsolt Kocsmarszky
40a83f3579 Fancy caret is only for nav 2017-11-13 20:57:27 +01:00
Zsolt Kocsmarszky
af90928552 Better styling for navigation 2017-11-13 20:48:28 +01:00
Zsolt Kocsmarszky
bf6687352a Unify headers 2017-11-13 20:18:57 +01:00
Zsolt Kocsmarszky
dce64cfdb3 Fix settings container 2017-11-13 19:08:01 +01:00
Zsolt Kocsmarszky
a26195848a Further refine navbar markup and styling 2017-11-13 17:07:59 +01:00
Zsolt Kocsmarszky
43bf4b1cc8 Major navigation refinement 2017-11-13 16:29:09 +01:00
Zsolt Kocsmarszky
9420d2683e Drop 'Updated:' prefix 2017-11-13 15:38:34 +01:00
Zsolt Kocsmarszky
c67e9e3ff5 Further simplify navigation 2017-11-13 15:28:21 +01:00
Zsolt Kocsmarszky
3e7e06d4b4 Add time icon next to updated time 2017-11-13 14:33:50 +01:00
deecay
539cbf4ffc Add: Pie chart subplot title 2017-11-13 01:59:30 +09:00
Zsolt Kocsmarszky
30003297d4 Refine positions for nav new button and logo 2017-11-10 00:22:34 +01:00
Zsolt Kocsmarszky
f9e416a5dd Massive styling refinement 2017-11-09 23:39:53 +01:00
Zsolt Kocsmarszky
727674673e Make Edit/New dashboard modal more obvious 2017-11-09 23:39:31 +01:00
Zsolt Kocsmarszky
b57f78155c Add container for Settings to resolve vertical scroll issue 2017-11-09 23:39:03 +01:00
Zsolt Kocsmarszky
e9b05ad2fd Massive navigation refinement 2017-11-09 23:38:14 +01:00
Zsolt Kocsmarszky
ea7b09d18e Add extra classes for widget elements for easier styling 2017-11-09 23:37:52 +01:00
Zsolt Kocsmarszky
30dc3d779c consistent footer templates 2017-11-09 23:37:21 +01:00
Zsolt Kocsmarszky
0d638cbe4a Better page title so you know where you are and what you're doing 2017-11-09 23:35:49 +01:00
Zsolt Kocsmarszky
92820872a2 Add missing container + remove container from the middle so the layout works better 2017-11-09 23:35:17 +01:00
Zsolt Kocsmarszky
590b7d66b6 Remove unnecessary row class that messes up the layout 2017-11-09 23:34:40 +01:00
Zsolt Kocsmarszky
dfef594f2e Add extra class for easier styling + remove unnecessary h3 around the top right area (bc it messes up everything with h3's margins) 2017-11-09 23:34:04 +01:00
Zsolt Kocsmarszky
4dad07e329 Change order, so All queries comes first on the tabs 2017-11-09 23:32:31 +01:00
Zsolt Kocsmarszky
90fbb3d94e Move global style out from local file 2017-11-09 23:32:04 +01:00
Zsolt Kocsmarszky
3079917527 Collapse section for profile 2017-11-09 23:31:34 +01:00
Zsolt Kocsmarszky
e84e866220 Collapse change password section by default 2017-11-09 23:30:51 +01:00
Zsolt Kocsmarszky
dd4db4be28 Re-align footer so it feels simpler 2017-11-09 23:30:24 +01:00
Zsolt Kocsmarszky
3f609981b7 Re-organise individual user setting screens into one page 2017-11-09 18:54:07 +01:00
Arik Fraimovich
6eca14e441 Merge pull request #2062 from kravets-levko/feature/dashboard-editor
Add: flexible dashboard layout
2017-11-08 11:09:03 +02:00
Levko Kravets
54ade336f5 CR3 2017-11-08 11:06:53 +02:00
Levko Kravets
627dc26004 In editing mode hide menu button and show remove button instead 2017-11-07 16:31:24 +02:00
Levko Kravets
1bb7cc0ad6 Fix: widget menu not visible on small widgets 2017-11-07 15:55:16 +02:00
Levko Kravets
18b4c3eff8 Fix widget auto-height behaviour 2017-11-07 15:46:24 +02:00
Levko Kravets
43bf051d51 Cleanup CSS 2017-11-07 10:41:29 +02:00
Levko Kravets
bbcbb3edc6 CR2 2017-11-06 21:52:23 +02:00
Levko Kravets
8bb9a1a53e CR1 2017-11-06 21:50:11 +02:00
Levko Kravets
6a7d2291b4 getredash/redash#335 Better dashboard editor 2017-11-06 21:50:11 +02:00
Arik Fraimovich
900d558857 CirlceCI: Docker build for release branches. 2017-11-02 10:59:21 +02:00
Arik Fraimovich
c6dc9affed Redshift: change default SSL mode to prefer. 2017-11-02 10:57:54 +02:00
Arik Fraimovich
96486b5c58 Update v3 CHANGELOG. 2017-11-02 10:33:53 +02:00
Arik Fraimovich
7c1565017f Merge pull request #2072 from getredash/feature/query_results
🎉  Add: data source to run queries on top of query results
2017-11-01 16:22:32 +02:00
Arik Fraimovich
7197370ad4 Add Query Results to the default query runners list. 2017-11-01 16:14:45 +02:00
Arik Fraimovich
1cbf09cbbe Add: data source to run queries on top of query results. 2017-11-01 16:10:04 +02:00
Arik Fraimovich
28b4450fa9 Merge pull request #2068 from kyoshidajp/copy_param_value_when_forking
Copy parameters value when forking a query
2017-11-01 15:18:22 +02:00
Arik Fraimovich
a799303f53 Merge pull request #2071 from getredash/bugfixes
Fix #1824: allow only user API key to be used with query refresh API.
2017-11-01 15:12:53 +02:00
Arik Fraimovich
59d6eb662c Merge pull request #2070 from getredash/bugfixes
Fix: require full access to the data source to fork a query.
2017-11-01 15:06:36 +02:00
Arik Fraimovich
4e4a3e13ab Fix #1824: allow only user API key to be used with query refresh API. 2017-11-01 15:05:55 +02:00
Arik Fraimovich
095d07bcb8 Disable fork button for those can't fork 2017-11-01 14:56:11 +02:00
Arik Fraimovich
71a235c79b Merge pull request #2069 from getredash/bugfixes
Fix #1979: API key of one query could be used to get results of another one
2017-11-01 14:47:23 +02:00
Arik Fraimovich
2bc3885977 Fix: require full access to the data source to fork a query.
Ref #1825.
2017-11-01 14:46:29 +02:00
Arik Fraimovich
97217f56c1 Remove unused variables 2017-11-01 13:52:41 +02:00
Arik Fraimovich
ba36f7395d Fix #1979: API key of one query could be used to get results of another one 2017-11-01 13:51:09 +02:00
Arik Fraimovich
ea7ca9e632 Merge pull request #2067 from getredash/params_refresh
Use query result for drop down values implementation updates
2017-11-01 13:50:49 +02:00
Katsuhiko YOSHIDA
5e5fc736bf Copy parameters value when forking a query 2017-11-01 06:27:03 +09:00
Arik Fraimovich
f38e76ad10 Merge pull request #2061 from kyoshidajp/delete_groupid_from_user_when_deleting_group
Delete the group id from user when deleting a group
2017-10-31 22:45:44 +02:00
Arik Fraimovich
80a6f357e3 Merge pull request #2063 from deecay/box-sortx
Fix: Boxplot xaxis sort issue
2017-10-31 22:39:26 +02:00
Arik Fraimovich
bd91288d1a Save only the query id instead of query id and name 2017-10-31 12:40:02 +02:00
Arik Fraimovich
38389a28ed Update eslint config to use longer lines 2017-10-31 12:06:52 +02:00
Arik Fraimovich
9ef9f29213 Query based parameter changes:
- Use $onChanges instead of $watch (fixes an issue where the query
results was constantly reloading).
- Choose the first value when first loading the options.
2017-10-31 12:05:55 +02:00
Arik Fraimovich
a3c2082b7f Fix: move boto3 import to the correct location 2017-10-30 14:53:22 +02:00
deecay
bc5516e941 Fix: Boxplot xaxis sort issue 2017-10-30 17:08:51 +09:00
Arjan Scherpenisse
87c705e5c8 Make the doc_count column integer 2017-10-30 09:07:03 +01:00
Katsuhiko YOSHIDA
65ac8c715e Add user info to db.session 2017-10-29 22:30:53 +09:00
Arik Fraimovich
9874361466 Merge pull request #2060 from kyoshidajp/fix_export_excel
Fix error when exporting list data as Excel file
2017-10-29 15:10:34 +02:00
Arik Fraimovich
b28c8fa227 Merge pull request #2045 from myouju/master
Added 'Use Glue Data Catalog' options in Athena
2017-10-29 14:43:25 +02:00
Katsuhiko YOSHIDA
048bd53eac Delete the group id from user when deleting a group 2017-10-29 11:28:15 +09:00
Katsuhiko YOSHIDA
95c707d028 Fix error when exporting list data as Excel file 2017-10-28 23:16:02 +09:00
Arik Fraimovich
41ec4c857b Update CHANGELOG 2017-10-26 22:17:58 +03:00
Arik Fraimovich
e62acb1d99 Merge pull request #2056 from getredash/boilerplate
Reduce boilerplate in frontend code
2017-10-26 12:06:43 +03:00
Arik Fraimovich
a9dc00aaa6 Remove last relative imports 2017-10-26 10:54:28 +03:00
Arik Fraimovich
38c6152aa0 Move init code into app/config/index.js from app/index.js 2017-10-26 10:00:59 +03:00
Arik Fraimovich
fb723328d4 Add app/lib folder for general client code (instead of app/utils) 2017-10-26 10:00:36 +03:00
Arik Fraimovich
047475562d Support for non relative path imports in client code:
So this:

import { Paginator } from "../../lib";

Becomes:

import { Paginator } from "@/lib";

Makes code cleaner and more portable.
2017-10-26 09:58:24 +03:00
Arik Fraimovich
acd33ec852 Auto register Angular components, pages, etc 2017-10-25 23:34:51 +03:00
Arik Fraimovich
340a23e71c Merge pull request #2054 from jezdez/docker-entrypoint-wildcard
Allow running any command inside the container via the docker entrypoint script.
2017-10-25 22:39:55 +03:00
Jannis Leidel
3db1b7f265 Allow running any command inside the container via the docker entrypoint script.
This allows running generic things like opening a bash shell:

docker-compose run server bash
2017-10-25 20:43:32 +02:00
Arik Fraimovich
845357fa02 Add logging to route registration. 2017-10-25 17:53:28 +03:00
Candido Dessanti
825fff5fe1 Update mapd.py 2017-10-25 07:18:25 +02:00
Candido Dessanti
abda68380e Update mapd.py 2017-10-25 07:11:05 +02:00
cdessanti
886a5eff43 added python driver of Mapd database
the other packages need will be added as deps when pymapd is installed
2017-10-24 18:25:33 +02:00
cdessanti
c3e19858b5 added mapd.py to default query runners 2017-10-24 18:20:31 +02:00
cdessanti
b9d9bcc0be Create mapd.py
query runner to catalog and access to mapd database
2017-10-24 17:58:38 +02:00
Arik Fraimovich
f75e31fa8e Merge pull request #2042 from isomura/modSetupShMkdir
Make /opt/redash directory if it's not exist.
2017-10-23 10:57:11 +03:00
Arik Fraimovich
38be723179 Merge branch 'master' into modSetupShMkdir 2017-10-23 10:56:50 +03:00
Arik Fraimovich
18bf44453d Update bootstrap script to use v2.0.1. 2017-10-22 15:13:30 +03:00
Arik Fraimovich
374f11252f Add v2.0.1. 2017-10-22 15:03:17 +03:00
Mike Fiedler
45a6651aaf Rename class, guard against calling lower() on None
Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-22 07:53:38 -04:00
Arik Fraimovich
2d3566abce Merge pull request #2046 from sylvainv/patch-1
Make use of REDASH_BASE_PATH variable in setup script
2017-10-22 14:47:58 +03:00
Arik Fraimovich
17d6bfff63 Merge pull request #2012 from yershalom/create_prometheus_ds
Added / on api path to prevent wrong url param
2017-10-22 09:55:41 +03:00
Arik Fraimovich
73540175d8 Merge pull request #2021 from hhamalai/configurable_invitation_token_age
Make invitation token max age configurable
2017-10-22 09:55:11 +03:00
Arjan Scherpenisse
4b9e4593c8 Elasticsearch: Collect doc_count field from aggregation 2017-10-21 07:36:02 +02:00
Sylvain
8c693efb3e Add missing $REDASH_BASE_PATH usage 2017-10-19 01:39:08 -05:00
Sylvain
51392d0398 Add missing $REDASH_BASE_PATH usage 2017-10-19 01:37:11 -05:00
Sylvain
78888c2082 Make use of REDASH_BASE_PATH variable 2017-10-19 01:35:14 -05:00
Arik Fraimovich
bc6bd1b316 Merge pull request #2044 from getredash/redshift
Redshift: add support for the new ACM root CA.
2017-10-18 15:59:05 +03:00
Arik Fraimovich
4060344a72 Merge pull request #2038 from atharvai/feature/redshift-spectrum
Add support for AWS Redshift Spectrum (external) tables
2017-10-18 15:56:14 +03:00
yukimaeno
6522325060 fixed private method 2017-10-18 21:51:46 +09:00
yukimaeno
ae6564e912 Added 'Use Glue Data Catalog' options in Athena 2017-10-18 21:41:13 +09:00
Arik Fraimovich
2af70a6c2d Redshift: add support for the new ACM root CA. 2017-10-18 14:58:50 +03:00
Jannis Leidel
45aad4bdbc Move to pytest since nose is unmaintained. 2017-10-18 13:51:09 +02:00
Arik Fraimovich
a3a1dcf4ba Merge pull request #2040 from cyriac/patch-2
Show query editor's Archive/Publish Query drop-down only on saved queries
2017-10-18 11:20:31 +03:00
isomura
eb979ef130 Make /opt/redash directory if it's not exist. 2017-10-18 09:54:56 +09:00
Cyriac Thomas
7f7fdbba54 show query builder Archive/Publish Query dropdown only on saved queries 2017-10-17 20:28:20 +05:30
Arik Fraimovich
fa213d72a7 Merge pull request #2039 from getredash/filters
Improve filters UI
2017-10-17 17:02:52 +03:00
Arik Fraimovich
d2bf935edb Improve filters UI (labels for */-, label for filter, show values when selected) 2017-10-17 16:35:46 +03:00
Arik Fraimovich
c4349f5c64 Merge pull request #2037 from getredash/patches
Add: option to set allowDiskUse in MongoDB queries
2017-10-16 10:19:55 +03:00
Arik Fraimovich
b5a6f4a166 Merge pull request #2028 from kyoshidajp/autofocus_in_1st_input_item
Set auto focus in first input items
2017-10-16 10:08:19 +03:00
Arik Fraimovich
79807dfa14 Typo fix. 2017-10-16 10:07:25 +03:00
Arik Fraimovich
0b0ec90987 Update gunicorn to latest version 2017-10-16 09:19:13 +03:00
Arik Fraimovich
a9fc220ec8 Merge pull request #2034 from getredash/patches
Add: disabled status to Organization
2017-10-16 09:18:55 +03:00
Arik Fraimovich
ee9bbbaa7c Merge pull request #2024 from cyriac/patch-1
Fixed stage label typo error on sankey and sunburst-sequence editors
2017-10-15 22:51:57 +03:00
Arik Fraimovich
12cc4e5ff9 Add: option to set allowDiskUse in MongoDB queries. 2017-10-15 15:54:04 +03:00
Arik Fraimovich
b5b5643090 Add: disabled status to Organization 2017-10-15 15:51:41 +03:00
Arik Fraimovich
6718081a49 Merge pull request #2033 from getredash/patches
Add: option to disable SQLAlchemy connection pool
2017-10-15 15:51:12 +03:00
Arik Fraimovich
138087861c Add missing import 2017-10-15 15:39:41 +03:00
Arik Fraimovich
9a88cf1743 Merge branch 'patches' of github.com:getredash/redash into patches 2017-10-15 15:37:51 +03:00
Arik Fraimovich
2ca93599ef Merge pull request #2032 from getredash/patches
Add: option to set a time limit on adhoc queries
2017-10-15 15:37:22 +03:00
Arik Fraimovich
ef85a06d60 Fix import. 2017-10-15 15:16:31 +03:00
Arik Fraimovich
f7ffc75ba4 Add: option to disable SQLA connection pool. 2017-10-15 15:09:18 +03:00
Arik Fraimovich
f28eda4174 Merge pull request #2031 from getredash/patches
Add: option to disable sending an invite to a new user
2017-10-15 15:07:17 +03:00
Arik Fraimovich
c5458af1a0 Add: option to set a time limit on adhoc queries 2017-10-15 15:02:34 +03:00
Arik Fraimovich
c28ced14c6 Merge pull request #2030 from getredash/patches
Change: make log format configurable.
2017-10-15 15:00:27 +03:00
Arik Fraimovich
1110e17c4a Add: option to disable sending an invite to a new user 2017-10-15 14:56:26 +03:00
Arik Fraimovich
3b9c31a056 Change: make log format configurable. 2017-10-15 14:52:12 +03:00
Arik Fraimovich
38b655ce3a Merge pull request #2029 from getredash/patches
Change: sort series by name.
2017-10-15 14:36:41 +03:00
Arik Fraimovich
0ec9b73eb2 Change: sort series by name. 2017-10-15 14:33:55 +03:00
Katsuhiko YOSHIDA
b67369daa4 Set auto focus in first input items 2017-10-15 00:02:14 +09:00
Cyriac Thomas
cbc7eee592 fixed stage label typo on sankey and sunburst-sequence editors 2017-10-13 14:44:52 +05:30
Atharva Inamdar
d512cef5af Add support for AWS Redshift Spectrum (external) tables 2017-10-12 14:46:07 +01:00
Atharva Inamdar
c6d1fc103c Merge pull request #1 from getredash/master
merge base master with this fork
2017-10-12 14:43:54 +01:00
Harri Hämäläinen
bf5b31b252 Make invitation token max age configurable 2017-10-12 09:04:45 +03:00
Arik Fraimovich
0c404fa602 Merge pull request #1906 from kitsuyui/add-query-runner-azure-sql-data-warehouse
Query Runner for Azure SQL Data Warehouse
2017-10-11 10:27:02 +03:00
Arik Fraimovich
0ebb6ada3c Merge pull request #2017 from yutannihilation/fix-docker-compose
Fix docker-compose.production.yml
2017-10-11 10:01:25 +03:00
Hiroaki Yutani
d2e519cc3b fix docker-compose.production.yml 2017-10-11 09:53:04 +09:00
Mike Fiedler
be232543d6 Use a custom EmailType/CaseInsensitiveComparator
sqlalchemy doesn't appear to have a case sensitive column, so we craft a
type that can have the semantics of case insensitive comparison.

Ref http://docs.sqlalchemy.org/en/rel_1_1/orm/extensions/hybrid.html#building-custom-comparators

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-10 18:32:00 -04:00
Mike Fiedler
9076715d84 Ensure email is case-insensitive
While RFC 5321 alows for the username/mailbox art of the address to be
case-sensitive, it is hightly discouraged.

    The local-part of a mailbox MUST BE treated as case
    sensitive. Therefore, SMTP implementations MUST take care to
    preserve the case of mailbox local-parts. In particular, for
    some hosts, the user "smith" is different from the user
    "Smith". However, exploiting the case sensitivity of mailbox
    local-parts impedes interoperability and is discouraged.
    Mailbox domains follow normal DNS rules and are hence not
    case sensitive.
    -- https://tools.ietf.org/rfc/rfc5321.txt

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-10-10 17:49:50 -04:00
Shalom Yerushalmy
9b38f1e81c Added / on api path to prevent wrong url param 2017-10-10 16:28:11 +03:00
Arik Fraimovich
f03c173c57 Merge pull request #2003 from yershalom/create_prometheus_ds
Create prometheus ds
2017-10-10 11:43:59 +03:00
Arik Fraimovich
f89842801f Make URL required. 2017-10-10 11:41:34 +03:00
Arik Fraimovich
56d4ad74a8 Change get_schema to call requests directly. 2017-10-10 11:40:33 +03:00
Arik Fraimovich
334e95afa0 Merge pull request #2004 from modomoto/make_test_run_configurable
Allow setting test file with docker test run
2017-10-09 17:31:25 +03:00
Arik Fraimovich
0443d84848 Merge pull request #2008 from getredash/patches
Change: use outdated queries count stored already in Redis.
2017-10-09 16:43:59 +03:00
Arik Fraimovich
d38f251688 Change: use outdated queries count stored already in Redis. 2017-10-09 16:28:34 +03:00
Arik Fraimovich
890243eb20 Merge pull request #2007 from getredash/patches
Show links based on permissions the user have.
2017-10-09 16:23:34 +03:00
Arik Fraimovich
9fed3266e6 Show links based on permissions the user have. 2017-10-09 16:21:23 +03:00
Shalom Yerushalmy
8fb665be08 Some pep8 styling 2017-10-09 16:19:29 +03:00
Shalom Yerushalmy
c19253648e Changed prometheus name 2017-10-09 16:18:04 +03:00
Mehmet Emin INAC
b8d2df7567 Allow setting nosetests options via environment variable
By setting TEST_ARGS environment variable with -e option of docker-compose
we can set nosetests options to run the tests as we want, like so;

`docker-compose run --rm -e TEST_ARGS="--with-coverage tests/handlers/test_dashboards.py" server tests`
2017-10-09 15:12:04 +02:00
Arik Fraimovich
4603152930 Merge pull request #2006 from getredash/patches
Fix: support UTF8 in MySQL schema
2017-10-09 16:10:41 +03:00
Shalom Yerushalmy
e33e90a69d Remove stftime cause redash already handles this 2017-10-09 16:10:22 +03:00
Arik Fraimovich
f5dcb5d58d Merge pull request #2005 from getredash/patches
Fix: TreasureData queries were failing when returning 0 rows.
2017-10-09 16:09:45 +03:00
Arik Fraimovich
f2f6abe775 Fix: support UTF8 in MySQL schema 2017-10-09 16:09:38 +03:00
Arik Fraimovich
c33189a355 Fix: TreasureData queries were failing when returning 0 rows. 2017-10-09 16:05:58 +03:00
Shalom Yerushalmy
781d997e76 Added redash types 2017-10-09 16:05:11 +03:00
Shalom Yerushalmy
35e02d8043 Changed the timestamp to float 2017-10-09 16:03:35 +03:00
Arik Fraimovich
720af7dabf Update .gitignore 2017-10-09 13:45:58 +03:00
Shalom Yerushalmy
487a8c798c Added back the response.raise_for_status() line 2017-10-09 13:43:43 +03:00
Shalom Yerushalmy
0f580f4540 Changed file due to Arik's request 2017-10-09 13:37:23 +03:00
Arik Fraimovich
cb21024e5c Merge pull request #1981 from yershalom/upgrade_cassandra_version
Upgrade cassandra version
2017-10-09 11:39:03 +03:00
Shalom Yerushalmy
df7b970ff7 Fixed line from 123 char to 120 char due to code climate fail 2017-10-09 11:28:26 +03:00
Shalom Yerushalmy
ff4edb4fbd Added new Promethues data source 2017-10-09 11:20:30 +03:00
Arik Fraimovich
131c9ef036 Merge pull request #1976 from muddydixon/feature/docker-compose-restart-always
users using docker-compose require restart always
2017-10-09 09:36:19 +03:00
Arik Fraimovich
a3071a3ba1 Restart only postgres/redis in dev setup. 2017-10-09 09:36:09 +03:00
Arik Fraimovich
8d5ce85954 Merge pull request #1993 from deecay/box-color
Fix: Setting series color for boxplot
2017-10-09 09:28:09 +03:00
Arik Fraimovich
9d3ae2c34a Merge pull request #1998 from modomoto/fix_revoke_permissons_bug
[FIX] Revoke permission should respect to given grantee and access type.
2017-10-09 09:27:10 +03:00
Mehmet Emin INAC
6d2337b332 Revoke permission should respect to given grantee and access type.
The issue is, if you try to revoke the permission of a user from an
object, all the permissions on this object get removed. The fix is
assigning filtered query object to it's own reference.

According to SQLAlchemy documentation, `filter` method applies to
the **copy** of the query object which means calling filter doesn't
affect the object receiving filter call. For more information;
http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.filter
2017-10-06 12:52:35 +02:00
Arik Fraimovich
1ef2238d65 Merge pull request #1995 from cclauss/modernize-python2-code
Modernize Python 2 code to get ready for Python 3
2017-10-04 22:29:32 +03:00
muddydixon
521d05279b fixed according to https://github.com/getredash/redash/pull/1976#issuecomment-333370285 2017-10-04 10:01:10 +09:00
cclauss
01e85f218a Modernize Python 2 code to get ready for Python 3 2017-10-04 02:06:53 +02:00
Arik Fraimovich
8af028bc90 Merge pull request #1994 from kravets-levko/fix/eslint-error
Fixed eslint "Cannot read property 'length' of undefined" error
2017-10-03 22:49:43 +03:00
Levko Kravets
85da5fced1 Fixed eslint "Cannot read property 'length' of undefined" error 2017-10-03 21:15:10 +03:00
deecay
038d3b1004 Fix: Setting series color for boxplot 2017-10-03 10:25:07 +09:00
Arik Fraimovich
6cf2b94a10 Merge pull request #1989 from getredash/patches
Add option to set the flask-limiter storage engine
2017-10-02 17:26:27 +03:00
Arik Fraimovich
c930c44e3a Add option to set the flask-limiter storage engine 2017-10-02 17:25:54 +03:00
Arik Fraimovich
0753332ef8 Merge pull request #1988 from getredash/patches
Fix: don't crash query editor when there are unclosed curly brackets.
2017-10-02 17:01:22 +03:00
Arik Fraimovich
ed9e409e17 Fix: don't crash query editor when there are unclosed curly brackets. 2017-10-02 16:58:27 +03:00
Arik Fraimovich
c40fffa107 Merge pull request #1986 from getredash/patches
Fix: error value in charts wasn't displayed if it was 0.
2017-10-02 16:43:27 +03:00
Arik Fraimovich
d597665a86 Fix: error value in charts wasn't displayed if it was 0. 2017-10-02 16:43:06 +03:00
Arik Fraimovich
b0bec26138 Merge pull request #1975 from rohithmenon/bugfix/query_based_param
Bugfix/query based param
2017-10-01 14:32:48 +03:00
Arik Fraimovich
0d44466967 Merge pull request #1984 from getredash/patches
Cohort visualization: make it friendlier to use.
2017-10-01 14:26:47 +03:00
Arik Fraimovich
f4cb62782a Merge pull request #1983 from getredash/patches
Fix: Queries#all_queries was sometimes returning wrong number of queries
2017-10-01 14:26:20 +03:00
Arik Fraimovich
3cadd6731c Fix: tests entering endless loop, due to bad input. 2017-10-01 14:26:04 +03:00
Arik Fraimovich
fc18b84f69 Cohort visualization: make it friendlier to use.
Now it can handle gaps in data, so it's easier to generate the data needed.
2017-10-01 14:24:10 +03:00
Arik Fraimovich
f7fc679427 Merge pull request #1965 from alexmuller/firefox-textarea-keydown-prevent-enter
Prevent line breaks in EditInPlace description when using Firefox
2017-10-01 14:23:29 +03:00
Arik Fraimovich
e674b715ef Merge pull request #1966 from alexmuller/different-markdown-library
Use a different markdown library
2017-10-01 14:22:23 +03:00
Arik Fraimovich
029f6335ed Add missing import. 2017-10-01 14:19:26 +03:00
Shalom Yerushalmy
fb4153add7 Upgarde cassasndra-driver version to 3.11.0 2017-09-28 13:28:21 +03:00
Arik Fraimovich
ada8a1255b Fix: Queries#all_queries was sometimes returning wrong number of queries. 2017-09-27 18:17:57 +03:00
Arik Fraimovich
505f338da9 Merge pull request #1978 from getredash/patches
Fix #1950: record_event fails for api events
2017-09-27 18:08:57 +03:00
Arik Fraimovich
18d9b2eec9 Fix #1950: record_event fails for api events 2017-09-27 18:04:21 +03:00
muddydixon
41a03352b9 users using docker-compose require restart always 2017-09-27 17:26:39 +09:00
Rohith Menon
50f817e265 Merged with upstream 2017-09-26 23:18:50 -07:00
Rohith Menon
04ddb289ee Merged with upstream 2017-09-26 23:13:02 -07:00
Rohith Menon
0152250e14 Bugfix: column.type not set by many data sources [sqlite, postgres etc] 2017-09-26 23:07:18 -07:00
Alex Muller
f574cdd179 Use a different markdown library
`marked` has some security vulnerabilities which have been unresolved
for a while. `markdown` seems to be better supported.
2017-09-22 19:08:07 +01:00
Alex Muller
458f213ea7 Update npm-shrinkwrap
Not sure why this hadn't been updated previously.
2017-09-22 18:42:46 +01:00
Alex Muller
f2caae6eb1 Use event.preventDefault() on EditInPlace textarea
Before this change, pressing enter in Firefox 55 would insert a line
break into the description field and then save it.

This change prevents the line break from being inserted before saving.

There's no change to Chrome's behaviour from this change.
2017-09-22 17:54:02 +01:00
Alex Muller
c01cd89de9 Remove magic numbers from EditInPlace()
This makes it a lot easier to read and figure out what's going on.
2017-09-22 17:51:30 +01:00
Alex Muller
5ea3ed7308 Update redirected link in README 2017-09-22 17:51:10 +01:00
Arik Fraimovich
50eb9a86c9 Merge pull request #1961 from fan-t-endo/writer_encode_errors
UnicodeWriter errors code to environment
2017-09-21 21:39:59 +03:00
Shalom Yerushalmy
12cbfc5d12 Added timeout to cassandra 2017-09-18 12:06:35 +03:00
kitsuy
ba7ed5c6f0 Renaming SQL Server to SQL Server ODBC 2017-09-15 19:50:39 +09:00
kitsuy
4fbfa682fe Import types_map and MSSQLJSONEncoder from mssql. It is same. 2017-09-15 19:24:47 +09:00
kitsuy
fb1139a2ea Remove query encoding.
Do not have to encode query.
`execute()` take an unicode query arguments in pyodbc.
2017-09-15 19:02:20 +09:00
kitsuy
8d8ec1a5f8 Rename to Microsoft SQL Server (ODBC) 2017-09-15 18:31:33 +09:00
kitsuy
7582b3174d Add default driver in configuration_schema to specify driver more easily 2017-09-15 18:28:38 +09:00
kitsuy
154b554ecd Remove tds_version (no longer used) 2017-09-15 18:26:21 +09:00
kitsuy
316e014cfa Rename to SQLServerODBC for more precise. 2017-09-15 18:24:39 +09:00
fan-t-endo
048d8fcb5b UnicodeWriter errors code to environment 2017-09-15 17:56:27 +09:00
Arik Fraimovich
8bbb1cdfd4 Fix: wrong variable name used (dataRow instead of row)
Thanks @wu123456. 

Closes #1926.
2017-09-13 22:20:05 +03:00
Arik Fraimovich
94175b8a52 Merge pull request #1899 from queeno/add_oracle_53_support
Fix #1843: Remove deprecated cx_Oracle types
2017-09-13 18:48:14 +03:00
Simon Aquino
c350b43a5a Update oracle client version 2017-09-13 17:40:44 +02:00
Simon Aquino
b379c13e8b Update supported Oracle version 2017-09-13 17:39:04 +02:00
Simon Aquino
7d91e9d173 Fix #1843: Remove deprecated cx_Oracle types
FIXED_UNICODE, LONG_NCHAR, LONG_UNICODE and UNICODE have been removed
from cx_Oracle version 5.3 and should be removed from the TYPES_MAP.
2017-09-13 17:31:40 +02:00
Arik Fraimovich
1b15ea8af9 Merge pull request #1727 from crowdworks/salesforce-error-message
improve Salesforce error message
2017-09-13 17:39:19 +03:00
Arik Fraimovich
e76efc9cdf Merge pull request #1896 from StantonVentures/textbox_editing_fix
Textbox editing fix
2017-09-13 16:03:22 +03:00
Arik Fraimovich
0a311bf63f Merge pull request #1873 from deecay/fix-custom-js
Custom JS code chart improvements
2017-09-13 15:46:43 +03:00
Arik Fraimovich
5069edb9b1 Merge pull request #1876 from TylerBrock/ssl-postgres
Add SSL configuration option for PostgreSQL
2017-09-13 15:44:07 +03:00
Arik Fraimovich
90162b6331 Merge pull request #1920 from deecay/counter-format-string
Counter value string formatting
2017-09-13 15:39:52 +03:00
Arik Fraimovich
398812a14f Merge pull request #1928 from rohithmenon/feature/query_based_parameter
Feature/query based parameter
2017-09-13 15:35:50 +03:00
Arik Fraimovich
2e44872b49 Merge pull request #1955 from getredash/fix_mysql
MySQL: multiple queries support & connection timeout
2017-09-13 14:48:44 +03:00
Arik Fraimovich
e02fdb3e37 MySQL: add support for multiple queries (returning results only of the last one) 2017-09-13 14:38:56 +03:00
Arik Fraimovich
234edd339c MySQL: add connection timeout for bad hosts 2017-09-13 14:38:28 +03:00
Arik Fraimovich
e5cbdf3036 Merge pull request #1946 from Posnet/select-all
Add ability to easily select all for multi-filter
2017-09-13 14:29:15 +03:00
Arik Fraimovich
9b85890204 Merge pull request #1954 from labradorcouk/master
Upgraded dql version to 0.5.24
2017-09-13 14:26:53 +03:00
Antonio Terreno
6295e88d43 Upgraded dql version to 0.5.24 - this allows to query tables in dynamo which have keys with dashes in the name 2017-09-13 09:12:44 +01:00
Arik Fraimovich
7796a57d43 Merge pull request #1930 from mfouilleul/master
Cassandra: get_schema support for both C* 2.x and 3.x, support for SortedSet type serialization.
2017-09-12 15:59:36 +03:00
Rohith Menon
df7fd13bfd Hovertext length (#3)
* Namelength for hoverlabel to avoid truncation

* Update npm-shinkwrap.json
2017-09-06 21:08:18 -07:00
Rohith Menon
6a5a843478 Merge branch 'master' of https://github.com/getredash/redash 2017-09-05 10:35:40 -07:00
Alec Posney
7d4fb280ba Add ability to easily select all for multi-filter
The multi filter option is useful but lacking in an easy easy way to
select all values. I have added in a psudo option '*' that when selected
automatically fills out the mutli-select with all possible filters.

I have also added in a second psudo option '-' which becomes available
_if_ the multi-filter has all possible values selected.
This makes it easy to clear the multi-filter.
2017-09-05 13:31:04 +10:00
Arik Fraimovich
2a22b98c77 Merge pull request #1944 from getredash/fix_permissions
Fix: collaborators couldn't edit visualizations or schedule
2017-09-03 15:00:27 +03:00
Arik Fraimovich
6b56e4a3e3 Allow collaborators to update query schedule. 2017-09-03 14:31:42 +03:00
Arik Fraimovich
47fc6612bf Allow collaborators to create, delete and edit visualizations. 2017-09-03 14:28:34 +03:00
Rohith Menon
f3e5c22c07 Merge/query based parameter (#2)
* Feature: Query based parameter (drop-down)

* Restrict to string column for query parameter

* Fix lint errors

* Fix html in paramters.html

* Addressed comments from @arikfr
2017-08-23 20:48:02 -07:00
Maxime Fouilleul
b42d2c5784 Fix codeclimate notices (trailing space) 2017-08-17 18:19:19 +02:00
Maxime Fouilleul
478a86a892 Fix codeclimate notices (SQL) 2017-08-17 18:17:53 +02:00
Maxime Fouilleul
9e0205d148 Improve and fix cassandra query runner 2017-08-17 18:10:16 +02:00
Rohith Menon
59b7961bcd Addressed comments from @arikfr 2017-08-16 16:04:00 -07:00
Arik Fraimovich
5b54a777d9 Merge pull request #1863 from 44px/ng-annotate-deprecation
Replace deprecated ng-annotate with babel plugin
2017-08-16 16:21:23 +03:00
Arik Fraimovich
3af9b333a8 Merge pull request #1898 from StantonVentures/security_lib_updates_7_27_2017
update libraries
2017-08-16 16:19:57 +03:00
Arik Fraimovich
dcaecdbe16 Merge pull request #1921 from deecay/error-bar-color
Fix: error bar color in sync with series color
2017-08-16 16:19:04 +03:00
Arik Fraimovich
3aa7d86699 Update bootstrap.sh 2017-08-16 16:16:00 +03:00
Rohith Menon
feab2a7e7b Fix html in paramters.html 2017-08-15 13:53:55 -07:00
Rohith Menon
d18220c1af Feature/query based parameter (#1)
* Feature: Query based parameter (drop-down)

* Restrict to string column for query parameter

* Fix lint errors
2017-08-14 21:47:48 -07:00
Rohith Menon
8074a91b29 Fix lint errors 2017-08-14 09:20:58 -07:00
Rohith Menon
72560d985f Restrict to string column for query parameter 2017-08-14 09:15:28 -07:00
Rohith Menon
ff2c8524de Feature: Query based parameter (drop-down) 2017-08-14 00:38:41 -07:00
Alison
1bdea11fe3 updates based on PR comments 2017-08-11 21:17:30 -05:00
Arik Fraimovich
a7bed64707 Merge pull request #1836 from amarjayr/master
LDAP (Active Directory) implementation
2017-08-09 20:46:17 +03:00
Arik Fraimovich
dc969fe0b5 Bump version. 2017-08-09 20:45:26 +03:00
Amar Ramachandran
588c868060 Make ldap3 requirement optional 2017-08-09 10:32:44 -07:00
Arik Fraimovich
89de5f2a18 Fix #1776: restart was using wrong command on new AMI builds 2017-08-08 14:21:43 +03:00
Arik Fraimovich
fe32877864 Update CHANGELOG.md 2017-08-08 13:59:31 +03:00
deecay
e739f90405 Fix: error bar color in sync with series color 2017-08-08 18:27:42 +09:00
deecay
a07135c638 Move counter visualiation formatting controls to tab 2017-08-08 17:45:37 +09:00
Arik Fraimovich
6b531ac568 Merge pull request #1891 from yoavbls/master
Update bootstrap.sh to latest release
2017-08-06 22:06:15 +03:00
Arik Fraimovich
5bce695fcc Remove unused import 2017-08-06 21:02:55 +03:00
Arik Fraimovich
ba910280a1 Mark query/visualization view events coming from dashboards 2017-08-06 21:02:11 +03:00
Arik Fraimovich
2f386781d7 Merge pull request #1915 from getredash/patches
Add 12 & 24 hours refresh rate option to dashboards.
2017-08-06 20:53:43 +03:00
Arik Fraimovich
4c70349ee1 Add 12 & 24 hours refresh rate option to dashboards. 2017-08-06 20:53:07 +03:00
Arik Fraimovich
74b9c51dea Merge pull request #1914 from getredash/patches
Enable memory optimization for Excel exporter.
2017-08-06 20:51:47 +03:00
Arik Fraimovich
d95c22fa24 Enable memory optimizatino for Excel exporter. 2017-08-06 20:51:05 +03:00
Arik Fraimovich
3a7611309c Merge pull request #1913 from getredash/patches
Fix: pivottable not updating after first save
2017-08-06 20:49:45 +03:00
Arik Fraimovich
5281d6c281 Merge pull request #1912 from getredash/patches
Snowflake support is no longer enabled by default
2017-08-06 20:47:56 +03:00
Arik Fraimovich
5bc1e71143 Fix: pivottable not updating after first save 2017-08-06 20:47:52 +03:00
Arik Fraimovich
31ebfb80d7 Snowflake support is no longer enabled by default 2017-08-06 20:45:10 +03:00
Arik Fraimovich
1f8ed8a6c2 Merge pull request #1911 from getredash/patches
Add SQLAlchemy pool settings.
2017-08-06 20:40:51 +03:00
Arik Fraimovich
3d10718650 Merge branch 'master' into patches 2017-08-06 20:40:34 +03:00
Arik Fraimovich
4a4ee49187 Add SQLAlchemy pool settings. 2017-08-06 20:39:37 +03:00
Arik Fraimovich
7bf7b00633 Merge pull request #1910 from getredash/patches
Fix: PostgreSQL passwords with spaces were not supported.
2017-08-06 20:38:16 +03:00
Arik Fraimovich
68e3fe65ba Add: support for category type y axis. 2017-08-06 20:37:39 +03:00
Arik Fraimovich
7fe096fba8 Fix: PostgreSQL passwords with spaces were not supported.
Closes #1056.
2017-08-06 20:34:58 +03:00
Arik Fraimovich
f80951457d Fix: handle the case of query's data source is null 2017-08-06 20:32:51 +03:00
Arik Fraimovich
1da165edc1 Add hard timeout on refresh schema job 2017-08-06 20:32:00 +03:00
Arik Fraimovich
61c7c556b6 Update CHANGELOG.
Thank you @laughingman7743, @ziahamza, @yamamanx, @miketheman, @eyalzek, @alexpekurovsky, @44px, @amarjayr, @unixwitch, @danielerapati, @yershalom, @msnider and @alison985.
2017-08-06 15:53:48 +03:00
Arik Fraimovich
6170c48ed2 Merge pull request #1874 from alexpekurovsky/master
Setting optional limit for done tasks
2017-08-06 14:33:42 +03:00
kitsuy
974f69aecf Query Runner for Azure SQL Data Warehouse
- This is almost copied from mssql.py.
- Microsoft's driver installation is here: https://www.microsoft.com/en-us/sql-server/developer-get-started/node/ubuntu/
2017-08-03 13:22:45 +09:00
deecay
1a8078ab03 Fix: Custom code keeps appending trace per refresh 2017-07-31 19:22:25 +09:00
Alison
1bc8d586c3 update libraries
Based on pyup auto-PR httplib2 and cryptography needed updating which
necessitated updating pyOpenSSL as well.
2017-07-27 21:15:39 -05:00
Alison
a795f1463b Fixes dashboard textbox editing
Combines mozilla/redash PR’s 86 and 95.

There was a bug that saved textbox content on a dashboard when you
tried to close without saving. This fixes it.
2017-07-26 23:15:22 -05:00
Alison
aae77a8b25 Merge remote-tracking branch 'getredash/master' 2017-07-25 15:19:24 -05:00
deecay
c278209883 Counter visualiation formatting 2017-07-25 19:26:52 +09:00
alexpekurovsky
7f8ef2a050 Applying better quality code by @arikfr 2017-07-25 10:19:08 +03:00
alexpekurovsky
d21e11ba33 Creating limit filter for each task state and global limit 2017-07-24 10:13:32 +03:00
alexpekurovsky
1fc990f11a Setting limit for all task states 2017-07-23 13:50:23 +03:00
yoavbls
a09a767641 Update bootstrap.sh to latest release 2017-07-22 17:55:57 +03:00
Arik Fraimovich
12ef64f10d Merge pull request #1889 from StantonVentures/upstream_1888
Send alert ID to UI
2017-07-21 21:04:44 +03:00
Alison
776e52a77c Send alert ID to UI
This will allow alert detail page links on the alert list page to work again.
2017-07-21 12:54:21 -05:00
Tyler Brock
6d8880c10d Add SSL configuration option for PostgreSQL 2017-07-19 11:14:40 -07:00
Arik Fraimovich
5d5af369e6 Merge pull request #1870 from eyalzek/log-stream-config
Add the option to configure log stream
2017-07-19 15:40:26 +03:00
Arik Fraimovich
1d7fef4f7d Merge pull request #1871 from unixwitch/configurable-web-worker-count
docker: make gunicorn worker count configurable
2017-07-19 15:39:27 +03:00
Arik Fraimovich
35cb0bc805 Remove REDASH_WEB_WORKERS from docker-compose.yml.
In development (`dev_server`) we don't use this variable.
2017-07-19 15:39:16 +03:00
Arik Fraimovich
5310385f15 Merge pull request #1884 from miketheman/miketheman/query_link
Add link to query page from admin view
2017-07-19 15:35:08 +03:00
Mike Fiedler
41c791ff42 Add link to query page from admin view
When we have a long0running query, it is useful to look up what that
query definition is. Having a link directly from the admin page cuts
down on the manual step of opying the query id and pasting that into the
address bar.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2017-07-18 10:54:13 -04:00
alexpekurovsky
9b3f910326 Setting optional limit for done tasks 2017-07-12 15:23:01 +03:00
deecay
aacc4b7b46 Fix: Custom code keeps appending trace per refresh 2017-07-11 17:44:05 +09:00
deecay
605a70d554 Add toggle for automatically updating graph 2017-07-11 17:31:16 +09:00
deecay
73466dc0e0 Make custom js textarea resizable 2017-07-11 15:43:09 +09:00
deecay
3fd90c6289 Fix: Custom code didn't load into editor 2017-07-11 10:15:47 +09:00
eyalzek
97624a3e2c Add the option to configure log stream
by default when using python's `logging` module and a `StreamHandler`,
the stream is directed to `sys.stderr`
(https://docs.python.org/2/library/logging.handlers.html)

By setting the `REDASH_LOG_STDOUT` environment variable to `true` we
enable the option to stream the logs to `sys.stdout`. Setting this
configuration option to `false` (or leaving it as default) will
initialize the `StreamHandler` to `sys.stderr` - meaning the original
behavior remains unchanged.
2017-07-07 23:09:32 +02:00
Liss Tarnell
d69c9409dd docker: make gunicorn worker count configurable
Allow $REDASH_WEB_WORKERS to be set in the environment to change the
number of Gunicorn workers that are started (currently hardcoded to
four).  If not set, the default is four, so this will not affect
existing users at all.

Documentated by example in docker-compose example manifests.
2017-07-06 18:45:47 +01:00
Arik Fraimovich
5bb5f46c02 Merge pull request #1860 from AmarJayR/patch-1
Remove /forgot endpoint if REDASH_PASSWORD_LOGIN_ENABLED is false
2017-07-03 23:22:27 +03:00
Arik Fraimovich
2b6fe22b3f Merge pull request #1865 from msnider/bug/salesforce-sandbox
Fix bug getting the Salesforce sandbox parameter
2017-07-03 23:21:48 +03:00
Alexander Shepelin
53f0716aca Replace deprecated ng-annotate with babel plugin 2017-07-02 14:22:36 +03:00
Arik Fraimovich
fd798ddcf5 Merge pull request #1833 from 44px/webpack2
Update to Webpack 2
2017-07-01 12:39:53 +03:00
Matt Snider
812177a4e0 Fix bug getting the Salesforce sandbox parameter 2017-06-29 20:54:34 -05:00
Amar Ramachandran
b9e08897ac Move ldap auth logic to function 2017-06-29 11:33:57 -07:00
Amar Ramachandran
e445fa436e 404 on forgot endpoint if password disabled 2017-06-29 11:29:58 -07:00
Arik Fraimovich
797a0a30ca Merge pull request #1859 from getredash/fix/alerts
Add: ability to customize Athena configuration schema
2017-06-29 16:06:02 +03:00
Arik Fraimovich
dfd16f3d7a Add: ability to customize Athena configuration schema 2017-06-29 16:04:50 +03:00
Arik Fraimovich
a80aae0ec7 Merge pull request #1858 from getredash/fix/alerts
Add CLI command to open IPython shell
2017-06-29 15:23:34 +03:00
Arik Fraimovich
c8ad866a53 Add CLI command to open IPython shell 2017-06-29 12:21:09 +03:00
Arik Fraimovich
fe2f08cfd6 Merge pull request #1857 from getredash/fix/alerts
Angular configuration improvements
2017-06-29 12:13:22 +03:00
Arik Fraimovich
f64769cc80 Disable Angular debug info (should improve performance) 2017-06-29 12:11:34 +03:00
Arik Fraimovich
831dfe6c8d Enable strict checking for Angular DI 2017-06-29 12:11:15 +03:00
Arik Fraimovich
3b4da81ec6 Merge pull request #1856 from getredash/fix/alerts
Add: ability to set dashboard level filters from UI
2017-06-29 11:03:57 +03:00
Arik Fraimovich
248c540543 Add: ability to set dashboard level filters from UI
Closes #1855.
2017-06-29 10:57:35 +03:00
Arik Fraimovich
0fb0ba6473 Merge pull request #1853 from getredash/fix/alerts
Update boto version to support Athena
2017-06-29 09:49:42 +03:00
Arik Fraimovich
019a09945e Update boto version to support Athena 2017-06-29 09:49:06 +03:00
Arik Fraimovich
520a5f8fa4 Merge pull request #1839 from yamamanx/writer_encode
UnicodeWriter character code to environment
2017-06-29 09:44:41 +03:00
mitsuhiro_yamashita
f840681377 change this to WRITER_ENCODING and REDASH_CSV_WRITER_ENCODING 2017-06-29 08:21:22 +09:00
Amar Ramachandran
300421792c Add log error when LDAP connection fails
Integrate ldap login in login template
2017-06-28 13:32:24 -07:00
Arik Fraimovich
0ab25c317c Merge pull request #1852 from getredash/fix/alerts
Allow sorting alerts list
2017-06-28 22:15:40 +03:00
Arik Fraimovich
c8adf322a9 Allow sorting alerts 2017-06-28 22:11:05 +03:00
Arik Fraimovich
fae1e7152a Merge pull request #1851 from getredash/fix/alerts
Don't allow saving dashboard with empty name
2017-06-28 19:30:23 +03:00
Arik Fraimovich
e543e0c466 Don't allow saving dashboard with empty name 2017-06-28 19:22:59 +03:00
Arik Fraimovich
d61002a544 Merge pull request #1850 from getredash/fix/alerts
No need to load user for recent queries.
2017-06-28 19:22:49 +03:00
Arik Fraimovich
92f93f8ff6 No need to load user for recent queries. 2017-06-28 19:10:26 +03:00
Arik Fraimovich
bf17bdc32d Merge pull request #1793 from danielerapati/fix/alert_with_no_query_result
safeguard alerts against empty query results
2017-06-28 17:31:43 +03:00
Arik Fraimovich
70292c888c Merge pull request #1524 from rainforestapp/master
Allow params once again in embeds
2017-06-28 17:29:14 +03:00
Arik Fraimovich
69cb5b72e1 Merge pull request #1849 from getredash/fix/alerts
Show friendly error message in case of duplicate data source name.
2017-06-28 17:25:13 +03:00
Arik Fraimovich
470d2ad359 Show friendly error message in case of duplicate data source name. 2017-06-28 17:19:17 +03:00
Arik Fraimovich
e85fa2a42c Merge pull request #1848 from getredash/fix/alerts
Fix: when setting rearm on a new alert, it wasn't persisted.
2017-06-28 16:53:17 +03:00
Arik Fraimovich
42116abcb3 Fix: when setting rearm on a new alert, it wasn't persisted. 2017-06-28 16:34:50 +03:00
Arik Fraimovich
2e0b930192 Merge pull request #1847 from getredash/fix/alerts
Fix: alert destination details were not updating.
2017-06-28 16:30:14 +03:00
Arik Fraimovich
24ba110965 Fix: alert destination details were not updating.
Closes #1842.
2017-06-28 16:01:54 +03:00
Arik Fraimovich
e1eeb67025 Merge pull request #1846 from getredash/athena-updates
Athena updates: bring back ability to disable annotations and disable formatter
2017-06-28 14:19:56 +03:00
Arik Fraimovich
71c9cbd5a4 Missing os import. 2017-06-28 12:40:11 +03:00
Arik Fraimovich
e1ac5bb038 Athena: bring back the option to disable query annotations. 2017-06-28 12:30:37 +03:00
Arik Fraimovich
c2e84c92c6 Athena: use simple formatter to avoid the need to escape "%" character. 2017-06-28 12:28:59 +03:00
Arik Fraimovich
090962d09c Merge pull request #1841 from laughingman7743/fix_query_cancellation_condition
Fix query cancellation condition for Athena query runner
2017-06-25 10:29:24 +03:00
laughingman7743
df945a12b0 Fix query cancellation condition 2017-06-24 20:53:35 +09:00
mitsuhiro-yamashita
3f99f0c6d5 Expected 2 blank lines 2017-06-22 23:38:01 +09:00
mitsuhiro-yamashita
4706bebde0 UnicodeWriter character code to environment 2017-06-22 23:34:21 +09:00
Amar Ramachandran
85f729260b Clean up file 2017-06-20 15:33:32 -07:00
Amar Ramachandran
8bf2c15db8 Add ldap auth logic 2017-06-20 15:33:32 -07:00
Amar Ramachandran
9ea4784f87 Add ldap3 requirement 2017-06-20 15:33:32 -07:00
Amar Ramachandran
8be9613640 Add ldap env. config settings 2017-06-20 15:33:32 -07:00
Amar Ramachandran
b611c98112 Add ldap blueprint 2017-06-20 15:33:32 -07:00
Alexander Shepelin
ad3dbad8ac remove ng-annotate-loader from npm-shrinkwrap since it moved to dev dependencies 2017-06-20 23:14:24 +03:00
Alexander Shepelin
62c8bd3531 fix angular core libraries version mismatch 2017-06-20 22:43:59 +03:00
Alexander Shepelin
c8d66b3335 bring back node-sass, update file-loader 2017-06-20 22:43:58 +03:00
Alexander Shepelin
0217d419d1 update ng-annotate loader, move it to devDependencies 2017-06-20 22:43:58 +03:00
Alexander Shepelin
45f448e0d1 update dev server 2017-06-20 22:43:58 +03:00
Alexander Shepelin
ee4b05eb98 update css-related loaders 2017-06-20 22:43:58 +03:00
Alexander Shepelin
202c53c7d7 update config file to webpack2 format 2017-06-20 22:43:41 +03:00
Arik Fraimovich
9816403c45 Merge pull request #1834 from AmarJayR/patch-1
Fix template variable typo
2017-06-20 08:52:08 +03:00
Amar Ramachandran
b6a1178499 Fix template variable typo
Should be email instead of username (see redash/templates/login.html:47)
2017-06-19 17:10:40 -07:00
Arik Fraimovich
2fe6110e0f Merge pull request #1831 from getredash/feature_auto_publish
Fix: if column had no type it would use previous column's type
2017-06-18 13:02:19 +03:00
Arik Fraimovich
c4e18bb481 Fix: if column had no type it would use previous column's type 2017-06-18 12:31:32 +03:00
Arik Fraimovich
add8f0eeeb Merge pull request #1830 from getredash/feature_auto_publish
Change: auto publish named queries
2017-06-18 12:30:32 +03:00
Arik Fraimovich
694d971df9 Auto publish named queries 2017-06-18 12:12:02 +03:00
Arik Fraimovich
36c93ce212 Merge pull request #1809 from laughingman7743/impl_athena_query_runner_using_restapi
Implement Athena query runner using RestAPI
2017-06-15 15:02:23 +03:00
laughingman7743
35fe1f23e3 Fix configuration schema key name 2017-06-15 20:59:50 +09:00
Arik Fraimovich
2517abb27f Merge pull request #1821 from getredash/fix_api_session
Fix: /api/session API call wasn't working when multi tenancy enabled
2017-06-14 12:13:04 +03:00
Arik Fraimovich
1d749a83e1 Fix: /api/session API call wasn't working when multi tenancy enabled 2017-06-14 12:06:18 +03:00
Arik Fraimovich
fc50a7b9bb Remove outdated comment 2017-06-14 12:05:49 +03:00
Arik Fraimovich
6f72d456d2 Remove unused code 2017-06-14 12:05:49 +03:00
Arik Fraimovich
1182f8c6b0 Merge pull request #1813 from 44px/parameters-styles
UI change: add some space between parameters
2017-06-13 11:24:27 +03:00
Arik Fraimovich
f090f947b7 Merge pull request #1820 from getredash/patches
Fix: clear null values from options dictionary
2017-06-13 09:52:24 +03:00
Arik Fraimovich
a8246471f4 Fix: clear null values from options dictionary 2017-06-13 09:42:20 +03:00
Arik Fraimovich
229c33939c Merge pull request #1819 from getredash/patches
Fix: form component was inserting empty values
2017-06-13 09:41:24 +03:00
Arik Fraimovich
ef2eaf1fa9 Fix: form component was inserting empty values 2017-06-13 09:39:33 +03:00
Arik Fraimovich
d30f4f155a Merge pull request #1818 from getredash/patches
Fix: BigQuery wasn't loading due to bad import
2017-06-13 09:38:53 +03:00
Arik Fraimovich
b2e5df6af2 Fix: BigQuery wasn't loading due to bad import 2017-06-13 09:38:39 +03:00
Arik Fraimovich
0470cd6592 Stupid typo fix 2017-06-12 12:41:44 +03:00
Arik Fraimovich
a517dad456 Merge pull request #1817 from getredash/metrics
Metrics code update
2017-06-12 12:40:32 +03:00
Alexander Shepelin
789ef1614d Merge remote-tracking branch 'upstream/master' into parameters-styles 2017-06-12 12:14:17 +03:00
Alexander Shepelin
3dfab5009c put parameter label on top of input 2017-06-12 12:02:03 +03:00
Arik Fraimovich
7d5d7c4a6b Change: report endpoints without dots for metrics 2017-06-12 11:35:44 +03:00
Arik Fraimovich
5056d2fa90 Fix: table name wasn't found for count queries. 2017-06-12 11:35:05 +03:00
Arik Fraimovich
1fad874dee Change: redirect to / when org not found 2017-06-12 09:47:08 +03:00
Arik Fraimovich
a2c79367de Merge pull request #1812 from 44px/fix-search-input-style
UI change: same view for input on search result page as in header
2017-06-11 14:39:00 +03:00
Arik Fraimovich
bcf129e646 Merge pull request #1814 from yershalom/master
Fixed cassandra DS bug by adding port to connection string
2017-06-11 14:38:18 +03:00
Shalom Yerushalmy
94077ccafd Fixed cassandra DS bug by adding port to connection string 2017-06-08 15:44:09 +03:00
Alexander Shepelin
411ef7bd00 Add some space between parameters 2017-06-07 23:27:39 +03:00
Alexander Shepelin
6b22c2c541 Same view for input on search result page as in header 2017-06-07 23:03:05 +03:00
laughingman7743
e385a147f6 Add Athena query runner as default query runners 2017-06-06 22:01:44 +09:00
laughingman7743
ad69a6be3f Add secret field 2017-06-05 23:28:28 +09:00
laughingman7743
a6c45da2ca Add KeyboardInterrupt handling 2017-06-05 23:26:56 +09:00
laughingman7743
d5c4d9336f Fix configuration schema name to same name as previous query runner 2017-06-05 23:25:49 +09:00
laughingman7743
c1f8e2a4e0 Add query runner name 2017-06-05 23:03:32 +09:00
laughingman7743
fe42195b5a Implement Athena query runner using RestAPI 2017-06-05 22:09:30 +09:00
Arik Fraimovich
6a0bb82f3c Merge pull request #1807 from 44px/fix-setup-redirect
Fix redirect to /setup on the last setup step
2017-06-05 07:42:51 +03:00
Alexander Shepelin
69825e001f fix redirect to /setup after install 2017-06-04 17:24:47 +03:00
Arik Fraimovich
ad8571f2e3 Merge pull request #1803 from getredash/fix_1725
Fix: delete data source doesn't work when query results referenced by queries.
2017-06-02 18:17:52 +03:00
Arik Fraimovich
fbd3b92ba0 Fix: delete data source doesn't work when query results referenced by queries. 2017-06-02 18:11:34 +03:00
Arik Fraimovich
4f6c433f1b Merge pull request #1796 from shotat/feature/re-dash
Fix deprecated `re-dash` expressions in CONTRIBUTING.md
2017-06-01 14:46:39 +03:00
Arik Fraimovich
412f469035 Merge pull request #1800 from hfm/fix-changelog
Fix CHANGELOG markdown
2017-06-01 14:37:48 +03:00
OKUMURA Takahiro
eee38557d1 Fix markdown
the changelog markdown before v1.0 is broken.
2017-06-01 14:46:18 +09:00
Daniele Rapati
23cb92cf6d safeguard alerts against empty query results
alert will revert to UNKNOWN_STATE in case of no data
2017-05-30 22:30:32 +01:00
shotat
108137bd7e fix CONTRIBUTING.md 2017-05-30 23:51:21 +09:00
hamza zia
6bc53c3638 use default embed.py 2017-05-30 16:33:56 +05:00
hamza zia
e54fff402e fixed import bug 2017-05-30 16:32:09 +05:00
hamza zia
8d125354d2 merged changes 2017-05-30 14:19:18 +05:00
hamza zia
fc96e14a8f Only run queries when given parameters 2017-05-30 12:26:09 +05:00
hamza zia
178dfa59c1 Merge branch 'master' into master 2017-05-30 09:09:37 +05:00
Arik Fraimovich
8719de7120 Merge pull request #1792 from getredash/fix_1725
Fix: remove unneeded calls to app_context()
2017-05-29 23:37:27 +03:00
Arik Fraimovich
af8bdf4fd1 Fix: remove unneeded calls to app_context()
When the extra app_context was popped from the stack, it was
triggering flask-sqlalchemy's teardown handler, which was removing
the session causing objects to become detached before they should
be.
2017-05-29 16:41:42 +03:00
Arik Fraimovich
764e347b74 Merge pull request #1736 from shimpeko/extend_redis_expiry_time
Extend expiry time to prevent duplicate execution
2017-05-23 10:53:10 +03:00
Arik Fraimovich
2f1b1a69bd Add CHANGELOG entry. 2017-05-23 10:52:54 +03:00
Arik Fraimovich
b2fea428dd Fix: use correct APIs 2017-05-23 09:19:14 +03:00
Shimpei Kodama
1f1d7996ec Shorten celery task expiry time to avoid too many redis objects 2017-05-23 12:24:03 +09:00
Arik Fraimovich
47dc9a136f Merge pull request #1779 from getredash/patches
Add: "dumb" recents option
2017-05-22 23:15:38 +03:00
Arik Fraimovich
6ed86d9ce5 Merge pull request #1778 from getredash/patches
Upgrade Snowflake connector
2017-05-22 14:26:57 +03:00
Arik Fraimovich
8e760705a6 Add: "dumb" recents option
In some cases showing recent queries/dashboards based on events becomes
too "expensive" in terms of database resources. This is a fallback option
to show recently updated queries/dashboards instead.
2017-05-22 14:26:26 +03:00
Arik Fraimovich
9c606b9660 Update Snowflake connector 2017-05-22 14:18:34 +03:00
Arik Fraimovich
f65b3223f4 Remove chatty log lines 2017-05-22 14:17:27 +03:00
Arik Fraimovich
e85e962466 Update CHANGELOG and bump version 2017-05-18 15:37:18 +03:00
Arik Fraimovich
a7df809c4d Merge pull request #1774 from getredash/patches
Scheduled queries improvements:
2017-05-18 15:17:03 +03:00
Arik Fraimovich
beb29c66c2 Scheduled queries improvements:
* Schedule queries with parameters using the default value.
* Keep track of last execution (including failed ones) for scheduling purposes.
2017-05-18 15:10:19 +03:00
Arik Fraimovich
749171b186 Merge pull request #1746 from alexanderlz/master
[Data Sources] Add: MemSQL query runner
2017-05-18 14:01:53 +03:00
Arik Fraimovich
40a8187b1e Merge pull request #1773 from getredash/patches
Split refresh schemas into separate tasks and add a timeout.
2017-05-18 14:00:26 +03:00
Alexander Leibzon
6b7234c910 fixes 2017-05-18 14:00:13 +03:00
Arik Fraimovich
3807510bfe Split refresh schemas into separate tasks and add a timeout. 2017-05-18 13:39:34 +03:00
Arik Fraimovich
3650617928 Merge pull request #1772 from getredash/patches
Upgrade Sentry client.
2017-05-18 13:33:26 +03:00
Arik Fraimovich
d60843fa5b Sentry: don't install logging hook. 2017-05-18 13:26:36 +03:00
Arik Fraimovich
5a5917a04a Sentry: upgrade client version. 2017-05-18 13:24:53 +03:00
Arik Fraimovich
ae642fddf7 Merge pull request #1771 from getredash/patches
Show API key in a dialog instead of alert
2017-05-18 13:21:28 +03:00
Arik Fraimovich
b4a8fb76de Merge pull request #1770 from getredash/patches
UI changes
2017-05-18 12:58:58 +03:00
Arik Fraimovich
b885ccb09c Show API Key in a modal dialog instead of alert. 2017-05-18 11:53:16 +03:00
Arik Fraimovich
b70c329307 Dynamic form: change order of name and type (type first now). 2017-05-18 11:37:54 +03:00
Arik Fraimovich
1aa54543ed Retry reload of query results if it had an error 2017-05-18 11:28:40 +03:00
Arik Fraimovich
e050c085df Counter: support negative indexes to iterate from the end of the results. 2017-05-18 11:28:25 +03:00
Arik Fraimovich
62962d28ca Only split columns with __/:: that end with filter/MultiFilter. 2017-05-18 11:15:21 +03:00
Arik Fraimovich
d7c502eb50 Query results: better type guessing on the client side. 2017-05-18 11:13:11 +03:00
Arik Fraimovich
dd7841dc15 Merge pull request #1769 from getredash/patches
Improvements to background jobs
2017-05-18 11:09:35 +03:00
Arik Fraimovich
14c751b39e Cohort: handle the case where the value/total might be strings. 2017-05-18 11:07:39 +03:00
Arik Fraimovich
f4297ff3b0 Handle the case when the task object might not exist. 2017-05-18 09:36:21 +03:00
Arik Fraimovich
79ffbbbe4b Don't include paused datasource's queries in outdated queries count. 2017-05-18 09:34:32 +03:00
Arik Fraimovich
4c1cb037a0 Include Celery task name in statsd metrics. 2017-05-18 09:33:28 +03:00
Arik Fraimovich
f679dc7562 Put a limit on how many keys we remove at a time to make sure it
can handle large lists.
2017-05-18 09:31:04 +03:00
Arik Fraimovich
76470b9f09 Fix: don't remove locks for queries with task status of PENDING.
It's possible the Celery metadata object was expired, but the task
is still running (which will result in PENDING status when querying
the AsyncResult object).
2017-05-18 09:25:44 +03:00
Arik Fraimovich
3edec570f1 Merge pull request #1767 from getredash/patches
Google Spreadsheets: add timeout to request.
2017-05-17 18:53:44 +03:00
Arik Fraimovich
a2e07b46f2 Merge pull request #1756 from deecay/dashboard-list-sort
Change: Sort dashboard-list in /dashboards
2017-05-17 18:36:58 +03:00
Arik Fraimovich
326a80895c Merge pull request #1615 from deecay/pivot_hide_control
Add: option to hide pivot table controls
2017-05-17 18:35:31 +03:00
Arik Fraimovich
d200cc7405 Merge pull request #1690 from deecay/sqlite-unicode-error
Fix: SQLite utf-8 error messages
2017-05-17 18:34:10 +03:00
Arik Fraimovich
c4dff40e1d Merge pull request #1760 from rockwotj/master
Add: static enum parameter type.
2017-05-17 18:17:56 +03:00
Arik Fraimovich
21636c4d65 Rename Enum to Dropdown List. 2017-05-17 18:17:08 +03:00
Arik Fraimovich
52084c322f Google Spreadsheets: add timeout to request. 2017-05-17 18:15:04 +03:00
Arik Fraimovich
5fd2dadef4 Merge pull request #1765 from getredash/patches
Multiple improvements to data sources (MySQL, InfluxDB, BigQuery, MongoDB, TreasureData, Postgres, ElasticSearch, MSSQL, Google Spreadsheets)
2017-05-16 12:08:23 +03:00
Arik Fraimovich
f312e89323 Google Analytics: support for mcf queries & better errors. 2017-05-16 11:25:11 +03:00
Tyler Rockwood
0046cfa3ee Make it work 2017-05-15 14:41:20 -07:00
Tyler Rockwood
4ecc8da398 Addressing comments 2017-05-15 13:52:12 -07:00
Arik Fraimovich
382431e34b MySQL: support for RDS MySQL and SSL 2017-05-15 17:22:55 +03:00
Arik Fraimovich
6023dc5f3d MySQL: option to hide SSL settings. 2017-05-15 17:15:11 +03:00
Arik Fraimovich
2d38b38a7d Google Spreadsheets: handle distant future dates. 2017-05-15 16:55:57 +03:00
Arik Fraimovich
3513d84bb8 Less verbose logging in data sources. 2017-05-15 16:53:47 +03:00
Arik Fraimovich
24cd55f5cc Reduce log level for apiclient. 2017-05-15 16:51:39 +03:00
Arik Fraimovich
0bce6996bf MSSQL: return integers as floats. 2017-05-15 16:50:41 +03:00
Arik Fraimovich
6edfdfba63 BigQuery: remove print statement. 2017-05-15 16:49:10 +03:00
Arik Fraimovich
ddbbe1267a InfluxDB: simpler test connection query (show databases requries admin) 2017-05-15 16:48:16 +03:00
Arik Fraimovich
7fada5d5f7 ElasticSearch: debug_enabled should be false by default 2017-05-15 16:47:21 +03:00
Arik Fraimovich
c3f5a37e21 Postgres: support for loading materialized views in schema. 2017-05-15 16:29:03 +03:00
Arik Fraimovich
a76c87b3ae MongoDB: add $oids JSON extension. 2017-05-15 16:27:27 +03:00
Arik Fraimovich
4a0612328e TreasureData: improve error handling and upgrade client. 2017-05-15 16:25:18 +03:00
Arik Fraimovich
931c322ad7 Merge pull request #1763 from getredash/multi_org
Support for MULTI_ORG in v1
2017-05-15 12:58:16 +03:00
Arik Fraimovich
58c61641d3 Merge pull request #1759 from alexanderlz/mongo_csv_download_fix
Change: ignore additional columns in csv output
2017-05-11 15:30:19 +03:00
Tyler Rockwood
b675cd19d7 Add static enum option to redash 2017-05-09 13:41:58 -07:00
Alexander Leibzon
17b9f976c8 fix #1664 2017-05-09 17:56:40 +03:00
Alexander Leibzon
248808e165 Merge remote-tracking branch 'upstream/master' 2017-05-09 17:53:08 +03:00
Arik Fraimovich
7c6327be57 Clicking logo should take to account homepage 2017-05-09 10:42:30 +03:00
Arik Fraimovich
a86ece66b5 Add chunkhash to filename only when running production build. 2017-05-09 10:41:26 +03:00
deecay
fd9461ef20 Resolving merge 2017-05-08 11:48:14 +09:00
deecay
f121c609ad Change: Sort dashboard-list in /dashboards 2017-05-08 11:28:41 +09:00
Arik Fraimovich
24f3e071e3 Merge pull request #1754 from getredash/fix_ds_new
Fix: properties of data source were not reset when changing type.
2017-05-07 12:38:51 +03:00
Arik Fraimovich
914977f279 Fix: properties of data source were not reset when changing type.
Fixes #1748.
2017-05-07 12:35:23 +03:00
Arik Fraimovich
97b92d8887 Merge pull request #1738 from suemoc/disable-annotations-athena
[Athena] Fix: queries throwing errors except for SELECT
2017-05-07 10:21:48 +03:00
Arik Fraimovich
c1981b17a4 Merge pull request #1747 from denisov-vlad/jira-maxresults
[JQL] Fix: allow to override maxResults
2017-05-05 09:34:49 +03:00
Vladislav Denisov
ea7c6c2be3 jql: fixed maxResults in count query 2017-05-05 09:26:09 +03:00
Arik Fraimovich
22e3a4d8f2 Merge pull request #1753 from fbertsch/presto_cancellation
[Presto] Add: query cancellation support
2017-05-04 23:21:59 +03:00
Frank Bertsch
75ebbe148b Add presto query cancellation 2017-05-04 11:10:04 -05:00
Arik Fraimovich
75f90c190b Update test for new path 2017-05-04 11:49:10 +03:00
Arik Fraimovich
8aa053ce21 Log public dashboard view event 2017-05-04 11:27:27 +03:00
Arik Fraimovich
23ba8b4aa1 use relative links 2017-05-04 10:39:39 +03:00
Arik Fraimovich
6dde3170ab Make embed & shared dashboard routes use mutli_org template 2017-05-04 10:39:32 +03:00
Arik Fraimovich
b9144a9d7a WIP: support for MULTI_ORG mode (#1447) 2017-05-03 23:53:23 +03:00
Yohei Susa
a1a0d766fe Add environment variable for switching query annotations of Athena to disable 2017-05-03 22:17:59 +09:00
Vladislav Denisov
48322856d9 jql: maxResults fix 2017-05-03 08:52:51 +03:00
Alexander Leibzon
b9f8b6cdbf reformat, as for pep-8 2017-05-02 23:49:09 +03:00
Alexander Leibzon
805ea3cb46 Merge remote-tracking branch 'upstream/master' 2017-05-02 23:37:12 +03:00
Alexander Leibzon
79187cd29a get_schema fix 2017-05-02 23:36:11 +03:00
Arik Fraimovich
ccaf78767b Merge pull request #1700 from deecay/plotly-bump
Change: upgrade Plotly.js.
2017-05-02 22:02:21 +03:00
Arik Fraimovich
94a14f93a8 Remove dev dependencies from npm-shrinkwrap.json. 2017-05-02 22:00:09 +03:00
Arik Fraimovich
5ba6af6ad4 Merge pull request #1713 from deecay/plotly-box
Change: Box plot library from d3.js to Plotly.js
2017-04-30 23:14:18 +03:00
Arik Fraimovich
25760494d7 Merge pull request #1636 from axibase/propertyOrder
[Feature] add: the propertyOrder field to specify order in DataSource settings
2017-04-30 12:31:04 +03:00
Arik Fraimovich
a1fbd511a9 Merge pull request #1651 from axibase/feature/datasource_default_fileds_values
Fix: set default values in options to enable 'default: True' for checkbox
2017-04-30 12:30:32 +03:00
Arik Fraimovich
1b756de479 Merge pull request #1670 from ahamino/fix-google-integration
Change: newer Google API client library
2017-04-30 12:29:34 +03:00
Arik Fraimovich
a9e53a6c29 Merge pull request #1709 from dotneet/add_maximum_billing_tier_to_bigquery
[BigQuery] Add: maximumBillingTier configuration
2017-04-30 12:27:11 +03:00
Arik Fraimovich
111fbfd483 Merge pull request #1721 from jvanegmond/master
[JIRA JQL] Change: change default max results limit from 50 to 1000
2017-04-30 11:59:19 +03:00
Arik Fraimovich
437778a8be Merge pull request #1730 from mfouilleul/master
[Cassandra] Add: support for UUID serializing and setting protocol version
2017-04-30 11:57:55 +03:00
deecay
1c955a570d Bump Plotly version 2017-04-30 11:47:43 +09:00
Alexander Leibzon
469b041a2f Merge remote-tracking branch 'upstream/master' 2017-04-30 01:53:02 +03:00
deecay
7a47d6741d Change: Chosing box plot turns sortX off 2017-04-29 23:42:58 +09:00
Yohei Susa
214a231371 Disable query annotations to Athena query runner 2017-04-27 18:45:49 +09:00
Shimpei Kodama
eb3e30f70f Extend expiry time to prevent duplicate execution 2017-04-25 11:00:52 +09:00
Abdelrahman Mahmoud
7324f1f4c7 Fix code climate warnings 2017-04-23 12:41:49 -04:00
Abdelrahman Mahmoud
93df24de39 Fix Google analytics, Google Spreadsheet and Big Query integration .. upgrade outh2client and google-api-python-client 2017-04-23 12:41:49 -04:00
Maxime Fouilleul
9f21807647 remove useless param 2017-04-20 11:33:12 +02:00
Maxime Fouilleul
9b59394768 Fix default values for proto/cqlversion 2017-04-20 11:16:37 +02:00
Maxime Fouilleul
ac1b0a46f9 Fix trailing spaces (style) 2017-04-19 23:00:39 +02:00
Maxime Fouilleul
5d7795ca47 Fix code style 2017-04-19 22:14:27 +02:00
Maxime Fouilleul
519fb49f6a Improve cassandra lib 2017-04-19 16:39:43 +02:00
Arik Fraimovich
f504b682f3 Bump version. 2017-04-18 22:50:57 +03:00
Arik Fraimovich
f0719f5ea4 Fix: sort by header no longer working.
Closes #1726.
2017-04-18 22:50:33 +03:00
Akira Yumiyama
f852f935c5 improve Salesforce error message 2017-04-18 23:37:05 +09:00
Arik Fraimovich
939aae086f ADd changelog entry for favicons fix 2017-04-18 15:22:05 +03:00
Arik Fraimovich
742e38b08d Update CHANGELOG and bump version 2017-04-18 15:20:21 +03:00
Arik Fraimovich
3c7c93fc9f Fix: favicon wasn't showing up.
Closes #1719.
2017-04-18 15:19:57 +03:00
Arik Fraimovich
53ffff9759 Merge pull request #1716 from deecay/dashboard-tag-m17n
Fix: Non-ASCII dashboard tag
2017-04-18 15:02:27 +03:00
Arik Fraimovich
2e7fafc4d8 CHANGELOG update. 2017-04-18 14:59:44 +03:00
Jos van Egmond
ccf9cbd2c8 Raise JQL limit from default 50 to 1000 2017-04-14 16:06:38 +02:00
hamza zia
730b7c8cad merged upstream 2017-04-11 13:20:13 -04:00
Arik Fraimovich
c66b09effe Merge pull request #1717 from getredash/fix_embeds
Fix: page freezes when rendering large result set.
2017-04-11 18:33:11 +03:00
Arik Fraimovich
a087fe4bcd Fix: page freezes when rendering large result set.
Closes #1711.
2017-04-11 18:05:43 +03:00
deecay
ac557fd5b5 Change: Box plot library from d3 to Plotly 2017-04-07 19:35:28 +09:00
Arik Fraimovich
1f4946cc04 Merge pull request #1710 from getredash/fix_embeds
Fix: embeds were not rendering in PhantomJS.
2017-04-05 12:58:05 +03:00
Arik Fraimovich
08505a2208 Add changelog entry 2017-04-05 12:40:56 +03:00
Arik Fraimovich
e1c186bbf8 Fix: embeds were not rendering in PhantomJS.
Include polyfill for missing ArrayView functions.

Closes #1708.
2017-04-05 12:38:21 +03:00
devneko
91396f0c52 Add: maximumBillingTier for BigQuery 2017-04-05 16:11:17 +09:00
Arik Fraimovich
c83d354eed Merge pull request #1707 from getredash/docker-compose
Update docker-compose configuration:
2017-04-03 18:30:55 +03:00
Arik Fraimovich
81063731c9 Update docker-compose configuration:
* Use newer versions of Redis & PostgreSQL
* Use image for production docker-compose.
2017-04-03 18:28:46 +03:00
Arik Fraimovich
f66fe5ff80 Update packer configuration to create GCE image 2017-04-03 18:07:19 +03:00
Arik Fraimovich
8425698583 Update env 2017-04-03 13:18:34 +03:00
Arik Fraimovich
8b08b1a563 Merge pull request #1704 from getredash/new_bootstrap
New bootstrap script for Ubuntu 16.04
2017-04-03 13:16:53 +03:00
Arik Fraimovich
15b228b754 Update README 2017-04-03 12:54:23 +03:00
Arik Fraimovich
1db4157b29 Fix bootstrap script to be headless 2017-04-03 12:54:17 +03:00
Arik Fraimovich
079530cf63 Remove unused files 2017-04-03 12:54:05 +03:00
Arik Fraimovich
d2370a94c7 New bootstrap script 2017-04-03 10:30:06 +03:00
deecay
9f3fd021ab Fix backward compatibility and resolve conflict 2017-04-03 16:25:23 +09:00
deecay
83ed9fdc51 Fix: Dashboard tag for unicode dashboard names 2017-04-01 23:28:53 +09:00
deecay
9dedaa31c5 Fix: SQLite utf-8 error messages 2017-03-27 16:48:57 +09:00
deecay
de77ebd961 Bump Plotly version 2017-03-27 15:16:42 +09:00
hamza zia
7bdc42ff05 Merge pull request #1 from getredash/master
Upstream Update
2017-03-21 23:19:53 +08:00
rmakulov
5306814237 rm left overs 2017-03-15 19:01:56 +03:00
rmakulov
7939e04e74 set default values in options 2017-03-03 16:20:07 +03:00
rmakulov
f77da51a7d order on client side 2017-03-02 18:43:05 +03:00
rmakulov
ebaf012701 propertyOrder replaced with the field that defines an order 2017-02-27 19:05:43 +03:00
rmakulov
8c481cd7a7 added propertyOrder field 2017-02-27 15:50:29 +03:00
deecay
081ac5f651 Remove unnecessary comment line. 2017-02-21 17:18:14 +09:00
deecay
ac538c35e9 Add: option to hide pivot table controls 2017-02-20 15:09:48 +09:00
hamza zia
eeee592abc nuke separate endpiont for running queries in sync 2017-02-03 09:34:01 -08:00
hamza zia
ce65578c72 allowed embeds to recieve params 2017-01-15 22:23:18 +05:00
hamza zia
f4c25cb941 Merge branch 'master' of github.com:rainforestapp/redash 2017-01-15 20:36:59 +05:00
hamza zia
ba0daa218e JSON API that accepts params 2017-01-15 20:36:25 +05:00
Alexander Leibzon
fefcb928da add memsql as datasource 2016-09-27 19:13:44 +03:00
818 changed files with 68617 additions and 27940 deletions

View File

@@ -0,0 +1,12 @@
FROM cypress/browsers:chrome67
ENV APP /usr/src/app
WORKDIR $APP
COPY package.json $APP/package.json
RUN npm run cypress:install > /dev/null
COPY cypress $APP/cypress
COPY cypress.json $APP/cypress.json
RUN ./node_modules/.bin/cypress verify

129
.circleci/config.yml Normal file
View File

@@ -0,0 +1,129 @@
version: 2.0
flake8-steps: &steps
- checkout
- run: sudo pip install flake8
- run: ./bin/flake8_tests.sh
jobs:
python-flake8-tests:
docker:
- image: circleci/python:3.7.0
steps: *steps
legacy-python-flake8-tests:
docker:
- image: circleci/python:2.7.15
steps: *steps
backend-unit-tests:
environment:
COMPOSE_FILE: .circleci/docker-compose.circle.yml
COMPOSE_PROJECT_NAME: redash
docker:
- image: circleci/buildpack-deps:xenial
steps:
- setup_remote_docker
- checkout
- run:
name: Build Docker Images
command: |
set -x
docker-compose build --build-arg skip_ds_deps=true
docker-compose up -d
sleep 10
- run:
name: Create Test Database
command: docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests;"
- run:
name: Run Tests
command: docker-compose run --name tests redash tests --junitxml=junit.xml --cov-report xml --cov=redash --cov-config .coveragerc tests/
- run:
name: Copy Test Results
command: |
mkdir -p /tmp/test-results/unit-tests
docker cp tests:/app/coverage.xml ./coverage.xml
docker cp tests:/app/junit.xml /tmp/test-results/unit-tests/results.xml
- store_test_results:
path: /tmp/test-results
- store_artifacts:
path: coverage.xml
frontend-unit-tests:
docker:
- image: circleci/node:8
steps:
- checkout
- run: sudo apt install python-pip
- run: npm install
- run: npm run bundle
- run: npm test
frontend-e2e-tests:
environment:
COMPOSE_FILE: .circleci/docker-compose.cypress.yml
COMPOSE_PROJECT_NAME: cypress
PERCY_TOKEN_ENCODED: ZGRiY2ZmZDQ0OTdjMzM5ZWE0ZGQzNTZiOWNkMDRjOTk4Zjg0ZjMxMWRmMDZiM2RjOTYxNDZhOGExMjI4ZDE3MA==
docker:
- image: circleci/node:8
steps:
- setup_remote_docker
- checkout
- run:
name: Install npm dependencies
command: |
npm install
- run:
name: Setup Redash server
command: |
npm run cypress start
docker-compose run cypress node ./cypress/cypress.js db-seed
- run:
name: Execute Cypress tests
command: npm run cypress run-ci
build-tarball:
docker:
- image: circleci/node:8
steps:
- checkout
- run: sudo apt install python-pip
- run: npm install
- run: .circleci/update_version
- run: npm run bundle
- run: npm run build
- run: .circleci/pack
- store_artifacts:
path: /tmp/artifacts/
build-docker-image:
docker:
- image: circleci/buildpack-deps:xenial
steps:
- setup_remote_docker
- checkout
- run: .circleci/update_version
- run: .circleci/docker_build
workflows:
version: 2
build:
jobs:
- python-flake8-tests
- legacy-python-flake8-tests
- backend-unit-tests
- frontend-unit-tests
- frontend-e2e-tests
- build-tarball:
requires:
- backend-unit-tests
- frontend-unit-tests
- frontend-e2e-tests
filters:
branches:
only:
- master
- /release\/.*/
- build-docker-image:
requires:
- backend-unit-tests
- frontend-unit-tests
- frontend-e2e-tests
filters:
branches:
only:
- master
- preview-image
- /release\/.*/

View File

@@ -0,0 +1,22 @@
version: '3'
services:
redash:
build: ../
command: manage version
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
redis:
image: redis:3.0-alpine
restart: unless-stopped
postgres:
image: postgres:9.5.6-alpine
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
restart: unless-stopped

View File

@@ -0,0 +1,47 @@
version: '3'
services:
server:
build: ../
command: dev_server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
worker:
build: ../
command: scheduler
depends_on:
- server
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
QUEUES: "queries,scheduled_queries,celery,schemas"
WORKERS_COUNT: 2
cypress:
build:
context: ../
dockerfile: .circleci/Dockerfile.cypress
depends_on:
- server
- worker
environment:
CYPRESS_baseUrl: "http://server:5000"
PERCY_TOKEN: ${PERCY_TOKEN}
PERCY_BRANCH: ${CIRCLE_BRANCH}
PERCY_COMMIT: ${CIRCLE_SHA1}
PERCY_PULL_REQUEST: ${CIRCLE_PR_NUMBER}
redis:
image: redis:3.0-alpine
restart: unless-stopped
postgres:
image: postgres:9.5.6-alpine
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
restart: unless-stopped

17
.circleci/docker_build Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
VERSION=$(jq -r .version package.json)
VERSION_TAG=$VERSION.b$CIRCLE_BUILD_NUM
docker login -u $DOCKER_USER -p $DOCKER_PASS
if [ $CIRCLE_BRANCH = master ] || [ $CIRCLE_BRANCH = preview-image ]
then
docker build -t redash/redash:preview -t redash/preview:$VERSION_TAG .
docker push redash/redash:preview
docker push redash/preview:$VERSION_TAG
else
docker build -t redash/redash:$VERSION_TAG .
docker push redash/redash:$VERSION_TAG
fi
echo "Built: $VERSION_TAG"

9
.circleci/pack Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
NAME=redash
VERSION=$(jq -r .version package.json)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
FILENAME=$NAME.$FULL_VERSION.tar.gz
mkdir -p /tmp/artifacts/
tar -zcv -f /tmp/artifacts/$FILENAME --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *

6
.circleci/update_version Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
VERSION=$(jq -r .version package.json)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
sed -ri "s/^__version__ = '([A-Za-z0-9.-]*)'/__version__ = '$FULL_VERSION'/" redash/__init__.py
sed -i "s/dev/$CIRCLE_SHA1/" client/app/version.json

View File

@@ -1,22 +1,40 @@
engines:
version: "2"
checks:
complex-logic:
enabled: false
file-lines:
enabled: false
method-complexity:
enabled: false
method-count:
enabled: false
method-lines:
config:
threshold: 100
nested-control-flow:
enabled: false
identical-code:
enabled: false
similar-code:
enabled: false
plugins:
pep8:
enabled: true
eslint:
enabled: true
channel: "eslint-3"
channel: "eslint-5"
config:
config: client/.eslintrc.js
checks:
import/no-unresolved:
enabled: false
ratings:
paths:
- "redash/**/*.py"
- "client/**/*.js"
exclude_paths:
- tests/**/*.py
- migrations/**/*.py
- old_migrations/**/*.py
- setup/**/*
- bin/**/*
no-multiple-empty-lines: # TODO: Enable
enabled: false
exclude_patterns:
- "tests/**/*.py"
- "migrations/**/*.py"
- "setup/**/*"
- "bin/**/*"
- "**/node_modules/"
- "client/dist/"
- "**/*.pyc"

View File

@@ -1,5 +1,9 @@
[run]
branch = True
source = redash
[report]
omit =
*/settings.py
*/python?.?/*
*/site-packages/nose/*
show_missing = True

View File

@@ -1,4 +1,14 @@
client/.tmp/
client/dist/
node_modules/
.tmp/
.venv/
venv/
.git/
/.codeclimate.yml
/.coverage
/coverage.xml
/.circleci/
/.github/
/netlify.toml
/setup/

View File

@@ -1,24 +0,0 @@
Welcome to Redash's GitHub repo! 👋🎉
Do you need help or have a question? Checkout the Support category in our discussion forum: https://discuss.redash.io/c/support.
Got an idea for a new feature? Check if it isn't on the roadmap already: http://bit.ly/redash-roadmap and start a new discussion in the features category: https://discuss.redash.io/c/feature-requests 🌟.
Found a bug? Please fill out the sections below... thank you 👍
### Issue Summary
A summary of the issue and the browser/OS environment in which it occurs.
### Steps to Reproduce
1. This is the first step
2. This is the second step, etc.
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
### Technical details:
* Redash Version:
* Browser/OS:
* How did you install Redash:

34
.github/ISSUE_TEMPLATE/---bug_report.md vendored Normal file
View File

@@ -0,0 +1,34 @@
---
name: "\U0001F41B Bug report"
about: Report reproducible software issues so we can improve
---
<!--
We use GitHub only for bug reports 🐛
Anything else should be posted to https://discuss.redash.io 👫
🚨For support, help & questions use https://discuss.redash.io/c/support
💡For feature requests & ideas use https://discuss.redash.io/c/feature-requests
**Found a security vulnerability?** Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use this PGP key.
-->
### Issue Summary
A summary of the issue and the browser/OS environment in which it occurs.
### Steps to Reproduce
1. This is the first step
2. This is the second step, etc.
Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
### Technical details:
* Redash Version:
* Browser/OS:
* How did you install Redash:

View File

@@ -0,0 +1,17 @@
---
name: "\U0001F4A1Anything else"
about: "For help, support, features & ideas - please use https://discuss.redash.io \U0001F46B "
labels: "Support Question"
---
We use GitHub only for bug reports 🐛
Anything else should be posted to https://discuss.redash.io 👫
🚨For support, help & questions use https://discuss.redash.io/c/support
💡For feature requests & ideas use https://discuss.redash.io/c/feature-requests
Alternatively, check out these resources below. Thanks! 😁.
- [Forum](https://disucss.redash.io)
- [Knowledge Base](https://redash.io/help)

15
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,15 @@
## What type of PR is this? (check all applicable)
<!-- Please leave only what's applicable -->
- [ ] Refactor
- [ ] Feature
- [ ] Bug Fix
- [ ] New Query Runner (Data Source)
- [ ] New Alert Destination
- [ ] Other
## Description
## Related Tickets & Documents
## Mobile & Desktop Screenshots/Recordings (if there are UI changes)

5
.github/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
# https://github.com/behaviorbot/request-info?installation_id=189571
requestInfoLabelToAdd: needs-more-info
requestInfoReplyComment: >
We would appreciate it if you could provide us with more info about this issue/pr!

23
.github/support.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
# Configuration for Support Requests - https://github.com/dessant/support-requests
# Label used to mark issues as support requests
supportLabel: Support Question
# Comment to post on issues marked as support requests, `{issue-author}` is an
# optional placeholder. Set to `false` to disable
supportComment: >
:wave: @{issue-author}, we use the issue tracker exclusively for bug reports
and planned work. However, this issue appears to be a support request.
Please use [our forum](https://discuss.redash.io) to get help.
# Close issues marked as support requests
close: true
# Lock issues marked as support requests
lock: false
# Assign `off-topic` as the reason for locking. Set to `false` to disable
setLockReason: true
# Repository to extend settings from
# _extends: repo

7
.github/weekly-digest.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
# Configuration for weekly-digest - https://github.com/apps/weekly-digest
publishDay: mon
canPublishIssues: true
canPublishPullRequests: true
canPublishContributors: true
canPublishStargazers: true
canPublishCommits: true

16
.gitignore vendored
View File

@@ -1,7 +1,12 @@
.venv
venv/
.cache
.coverage.*
.coveralls.yml
.idea
*.pyc
.coverage
coverage.xml
client/dist
.DS_Store
celerybeat-schedule*
@@ -9,14 +14,8 @@ celerybeat-schedule*
\#*#
*~
_build
# Vagrant related
.vagrant
Berksfile.lock
redash/dump.rdb
.vscode
.env
.ruby-version
venv
dump.rdb
@@ -24,3 +23,6 @@ node_modules
.tmp
.sass-cache
npm-debug.log
cypress/screenshots
cypress/videos

File diff suppressed because it is too large Load Diff

View File

@@ -6,11 +6,9 @@ The following is a set of guidelines for contributing to Redash. These are guide
## Quick Links:
- [Feature Roadmap](https://trello.com/b/b2LUHU7A/re-dash-roadmap)
- [Feature Requests](https://discuss.redash.io/c/feature-requests)
- [Gitter Chat](https://gitter.im/getredash/redash) or [Slack](https://slack.redash.io)
- [Documentation](https://redash.io/help/)
- [Blog](http://blog.redash.io/)
- [Blog](https://blog.redash.io/)
- [Twitter](https://twitter.com/getredash)
---
@@ -29,7 +27,7 @@ The following is a set of guidelines for contributing to Redash. These are guide
- [Documentation](#documentation)
- Design?
[Addtional Notes](#additional-notes)
[Additional Notes](#additional-notes)
- [Release Method](#release-method)
- [Code of Conduct](#code-of-conduct)
@@ -46,9 +44,9 @@ When creating a new bug report, please make sure to:
### Suggesting Enhancements / Feature Requests
If you would like to suggest an enchancement or ask for a new feature:
If you would like to suggest an enhancement or ask for a new feature:
- Please check [the roadmap](https://trello.com/b/b2LUHU7A/re-dash-roadmap) for existing Trello card for what you want to suggest/ask. If there is, feel free to upvote it to signal interest or add your comments.
- Please check [the roadmap](https://trello.com/b/b2LUHU7A/redash-roadmap) for existing Trello card for what you want to suggest/ask. If there is, feel free to upvote it to signal interest or add your comments.
- If there is no existing card, open a thread in [the forum](https://discuss.redash.io/c/feature-requests) to start a discussion about what you want to suggest. Try to provide as much details and context as possible and include information about *the problem you want to solve* rather only *your proposed solution*.
### Pull Requests
@@ -56,17 +54,19 @@ If you would like to suggest an enchancement or ask for a new feature:
- **Code contributions are welcomed**. For big changes or significant features, it's usually better to reach out first and discuss what you want to implement and how (we recommend reading: [Pull Request First](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6#.ozlqxvj36)). This to make sure that what you want to implement is aligned with our goals for the project and that no one else is already working on it.
- Include screenshots and animated GIFs in your pull request whenever possible.
- Please add [documentation](#documentation) for new features or changes in functionality along with the code.
- Please follow existing code style. We use PEP8 for Python and sensible style for Javascript.
- Please follow existing code style:
- Python: we use PEP8 for Python.
- Javascript: we use Airbnb's style guides for [JavaScript](https://github.com/airbnb/javascript#naming-conventions) and [React](https://github.com/airbnb/javascript/blob/master/react) (currently we don't follow Airbnb's convention for naming files, but we're gradually fixing this). To make it automatic and easy, we recommend using [Prettier](https://github.com/prettier/prettier).
### Documentation
The project's documentation can be found at [https://redash.io/help/](https://redash.io/help/). The [documentation sources](https://github.com/getredash/website/tree/master/user-guide) are hosted on GitHub. To contribute edits / new pages, you can use GitHub's interface. Click the "Edit on GitHub" link on the documentation page to quickly open the edit interface.
The project's documentation can be found at [https://redash.io/help/](https://redash.io/help/). The [documentation sources](https://github.com/getredash/website/tree/master/src/pages/kb) are hosted on GitHub. To contribute edits / new pages, you can use GitHub's interface. Click the "Edit on GitHub" link on the documentation page to quickly open the edit interface.
## Additional Notes
### Release Method
We publish a stable release every ~2 months, although the goal is to get to a stable release every month. You can see the change log on [GitHub releases page](http://github.com/getredash/redash/releases).
We publish a stable release every ~2 months, although the goal is to get to a stable release every month. You can see the change log on [GitHub releases page](https://github.com/getredash/redash/releases).
Every build of the master branch updates the latest *RC release*. These releases are usually stable, but might contain regressions and therefore recommended for "advanced users" only.
@@ -74,4 +74,4 @@ When we release a new stable release, we also update the *latest* Docker image t
## Code of Conduct
This project adheres to the Contributor Covenant [code of conduct](http://redash.io/community/code_of_conduct). By participating, you are expected to uphold this code. Please report unacceptable behavior to team@redash.io.
This project adheres to the Contributor Covenant [code of conduct](https://redash.io/community/code_of_conduct). By participating, you are expected to uphold this code. Please report unacceptable behavior to team@redash.io.

View File

@@ -1,13 +1,27 @@
FROM node:10 as frontend-builder
WORKDIR /frontend
COPY package.json package-lock.json /frontend/
RUN npm install
COPY . /frontend
RUN npm run build
FROM redash/base:latest
# Controls whether to install extra dependencies needed for all data sources.
ARG skip_ds_deps
# We first copy only the requirements file, to avoid rebuilding on every file
# change.
COPY requirements.txt requirements_dev.txt requirements_all_ds.txt ./
RUN pip install -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt
RUN pip install -r requirements.txt -r requirements_dev.txt
RUN if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi
COPY . ./
RUN npm install && npm run build && rm -rf node_modules
COPY . /app
COPY --from=frontend-builder /frontend/client/dist /app/client/dist
RUN chown -R redash /app
USER redash
ENTRYPOINT ["/app/bin/docker-entrypoint"]
CMD ["server"]

View File

@@ -1,4 +1,4 @@
Copyright (c) 2013-2017, Arik Fraimovich.
Copyright (c) 2013-2019, Arik Fraimovich.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,

View File

@@ -1,20 +1,57 @@
NAME=redash
VERSION=`python ./manage.py version`
FULL_VERSION=$(VERSION)+b$(CIRCLE_BUILD_NUM)
BASE_VERSION=$(shell python ./manage.py version | cut -d + -f 1)
# VERSION gets evaluated every time it's referenced, therefore we need to use VERSION here instead of FULL_VERSION.
FILENAME=$(CIRCLE_ARTIFACTS)/$(NAME).$(VERSION).tar.gz
.PHONY: compose_build up test_db create_database clean down bundle tests lint backend-unit-tests frontend-unit-tests test build watch start redis-cli bash
deps:
if [ -d "./client/app" ]; then npm install; fi
if [ -d "./client/app" ]; then npm run build; fi
compose_build:
docker-compose build
pack:
sed -ri "s/^__version__ = '([0-9.]*)'/__version__ = '$(FULL_VERSION)'/" redash/__init__.py
tar -zcv -f $(FILENAME) --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *
up:
docker-compose up -d --build
upload:
python bin/release_manager.py $(CIRCLE_SHA1) $(BASE_VERSION) $(FILENAME)
test_db:
@for i in `seq 1 5`; do \
if (docker-compose exec postgres sh -c 'psql -U postgres -c "select 1;"' 2>&1 > /dev/null) then break; \
else echo "postgres initializing..."; sleep 5; fi \
done
docker-compose exec postgres sh -c 'psql -U postgres -c "drop database if exists tests;" && psql -U postgres -c "create database tests;"'
test:
nosetests --with-coverage --cover-package=redash tests/
create_database:
docker-compose run server create_db
clean:
docker-compose down && docker-compose rm
down:
docker-compose down
bundle:
docker-compose run server bin/bundle-extensions
tests:
docker-compose run server tests
lint:
./bin/flake8_tests.sh
backend-unit-tests: up test_db
docker-compose run --rm --name tests server tests
frontend-unit-tests: bundle
npm install
npm run bundle
npm test
test: lint backend-unit-tests frontend-unit-tests
build: bundle
npm run build
watch: bundle
npm run watch
start: bundle
npm run start
redis-cli:
docker-compose run --rm redis redis-cli -h redis
bash:
docker-compose run --rm server bash

View File

@@ -5,7 +5,6 @@
<img title="Build Status" src='https://circleci.com/gh/getredash/redash.png?circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040'/>
</p>
[![Join the chat at https://gitter.im/getredash/redash](https://badges.gitter.im/getredash/redash.svg)](https://gitter.im/getredash/redash?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Documentation](https://img.shields.io/badge/docs-redash.io/help-brightgreen.svg)](https://redash.io/help/)
**_Redash_** is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.
@@ -13,37 +12,37 @@
Prior to **_Redash_**, we tried to use traditional BI suites and discovered a set of bloated, technically challenged and slow tools/flows. What we were looking for was a more hacker'ish way to look at data, so we built one.
**_Redash_** was built to allow fast and easy access to billions of records, that we process and collect using Amazon Redshift ("petabyte scale data warehouse" that "speaks" PostgreSQL).
Today **_Redash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite,
Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
Today **_Redash_** has support for querying multiple databases, including: Redshift, Google BigQuery, PostgreSQL, MySQL, Graphite, Presto, Google Spreadsheets, Cloudera Impala, Hive and custom scripts.
**_Redash_** consists of two parts:
1. **Query Editor**: think of [JS Fiddle](http://jsfiddle.net) for SQL queries. It's your way to share data in the organization in an open way, by sharing both the dataset and the query that generated it. This way everyone can peer review not only the resulting dataset but also the process that generated it. Also it's possible to fork it and generate new datasets and reach new insights.
2. **Dashboards/Visualizations**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently it supports charts, pivot table and cohorts.
1. **Query Editor**: think of [JS Fiddle](https://jsfiddle.net) for SQL queries. It's your way to share data in the organization in an open way, by sharing both the dataset and the query that generated it. This way everyone can peer review not only the resulting dataset but also the process that generated it. Also it's possible to fork it and generate new datasets and reach new insights.
2. **Visualizations and Dashboards**: once you have a dataset, you can create different visualizations out of it, and then combine several visualizations into a single dashboard. Currently Redash supports charts, pivot table, cohorts and [more](https://redash.io/help/user-guide/visualizations/visualization-types).
## Demo
<img src="https://cloud.githubusercontent.com/assets/71468/17391289/8e83878e-5a1d-11e6-8938-af9054a33b19.gif" width="60%"/>
You can try out the demo instance: http://demo.redash.io/ (login with any Google account).
<img src="https://raw.githubusercontent.com/getredash/website/8e820cd02c73a8ddf4f946a9d293c54fd3fb08b9/website/_assets/images/redash-anim.gif" width="80%"/>
## Getting Started
* [Setting up Redash instance](https://redash.io/help-onpremise/setup/setting-up-redash-instance.html) (includes links to ready made AWS/GCE images).
* [Setting up Redash instance](https://redash.io/help/open-source/setup) (includes links to ready made AWS/GCE images).
* [Documentation](https://redash.io/help/).
## Supported Data Sources
Redash supports more than 35 [data sources](https://redash.io/help/data-sources/supported-data-sources).
## Getting Help
* Issues: https://github.com/getredash/redash/issues
* Discussion Forum: https://discuss.redash.io/
* Slack: http://slack.redash.io/
* Gitter (chat): https://gitter.im/getredash/redash
## Reporting Bugs and Contributing Code
* Want to report a bug or request a feature? Please open [an issue](https://github.com/getredash/redash/issues/new).
* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/setup/setting-up-development-environment-using-vagrant.html), and make a pull request. We need all the help we can get!
* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/dev/guide.html), and make a pull request. We need all the help we can get!
## Security
Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use [this PGP key](https://keybase.io/arikfr/key.asc).
## License

39
bin/bundle-extensions Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env python
import os
from subprocess import call
from distutils.dir_util import copy_tree
from pkg_resources import iter_entry_points, resource_filename, resource_isdir
# Make a directory for extensions and set it as an environment variable
# to be picked up by webpack.
EXTENSIONS_RELATIVE_PATH = os.path.join('client', 'app', 'extensions')
EXTENSIONS_DIRECTORY = os.path.join(
os.path.dirname(os.path.dirname(__file__)),
EXTENSIONS_RELATIVE_PATH)
if not os.path.exists(EXTENSIONS_DIRECTORY):
os.makedirs(EXTENSIONS_DIRECTORY)
os.environ["EXTENSIONS_DIRECTORY"] = EXTENSIONS_RELATIVE_PATH
for entry_point in iter_entry_points('redash.extensions'):
# This is where the frontend code for an extension lives
# inside of its package.
content_folder_relative = os.path.join(
entry_point.name, 'bundle')
(root_module, _) = os.path.splitext(entry_point.module_name)
if not resource_isdir(root_module, content_folder_relative):
continue
content_folder = resource_filename(root_module, content_folder_relative)
# This is where we place our extensions folder.
destination = os.path.join(
EXTENSIONS_DIRECTORY,
entry_point.name)
copy_tree(content_folder, destination)

View File

@@ -3,7 +3,7 @@ set -e
worker() {
WORKERS_COUNT=${WORKERS_COUNT:-2}
QUEUES=${QUEUES:-queries,scheduled_queries,celery}
QUEUES=${QUEUES:-queries,scheduled_queries,celery,schemas}
echo "Starting $WORKERS_COUNT workers for queues: $QUEUES..."
exec /usr/local/bin/celery worker --app=redash.worker -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
@@ -12,14 +12,23 @@ worker() {
scheduler() {
WORKERS_COUNT=${WORKERS_COUNT:-1}
QUEUES=${QUEUES:-celery}
SCHEDULE_DB=${SCHEDULE_DB:-celerybeat-schedule}
echo "Starting scheduler and $WORKERS_COUNT workers for queues: $QUEUES..."
exec /usr/local/bin/celery worker --app=redash.worker --beat -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
exec /usr/local/bin/celery worker --app=redash.worker --beat -s$SCHEDULE_DB -c$WORKERS_COUNT -Q$QUEUES -linfo --maxtasksperchild=10 -Ofair
}
server() {
exec /usr/local/bin/gunicorn -b 0.0.0.0:5000 --name redash -w4 redash.wsgi:app
exec /usr/local/bin/gunicorn -b 0.0.0.0:5000 --name redash -w${REDASH_WEB_WORKERS:-4} redash.wsgi:app
}
create_db() {
exec /app/manage.py database create_tables
}
celery_healthcheck() {
exec /usr/local/bin/celery inspect ping --app=redash.worker -d celery@$HOSTNAME
}
help() {
@@ -31,16 +40,25 @@ help() {
echo "server -- start Redash server (with gunicorn)"
echo "worker -- start Celery worker"
echo "scheduler -- start Celery worker with a beat (scheduler) process"
echo "celery_healthcheck -- runs a Celery healthcheck. Useful for Docker's HEALTHCHECK mechanism."
echo ""
echo "shell -- open shell"
echo "dev_server -- start Flask development server with debugger and auto reload"
echo "debug -- start Flask development server with remote debugger via ptvsd"
echo "create_db -- create database tables"
echo "manage -- CLI to manage redash"
echo "tests -- run tests"
}
tests() {
export REDASH_DATABASE_URL="postgresql://postgres@postgres/tests"
exec make test
if [ $# -eq 0 ]; then
TEST_ARGS=tests/
else
TEST_ARGS=$@
fi
exec pytest $TEST_ARGS
}
case "$1" in
@@ -57,22 +75,34 @@ case "$1" in
scheduler
;;
dev_server)
export FLASK_DEBUG=1
exec /app/manage.py runserver --debugger --reload -h 0.0.0.0
;;
debug)
export FLASK_DEBUG=1
export REMOTE_DEBUG=1
exec /app/manage.py runserver --debugger --no-reload -h 0.0.0.0
;;
shell)
exec /app/manage.py shell
;;
create_db)
exec /app/manage.py database create_tables
create_db
;;
manage)
shift
exec /app/manage.py $*
;;
tests)
tests
shift
tests $@
;;
*)
help)
shift
help
;;
*)
exec "$@"
;;
esac

7
bin/flake8_tests.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
flake8 --version ; pip --version
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

36
bin/get_changes.py Normal file
View File

@@ -0,0 +1,36 @@
#!/bin/env python
from __future__ import print_function
import sys
import re
import subprocess
def get_change_log(previous_sha):
args = ['git', '--no-pager', 'log', '--merges', '--grep', 'Merge pull request', '--pretty=format:"%h|%s|%b|%p"', 'master...{}'.format(previous_sha)]
log = subprocess.check_output(args)
changes = []
for line in log.split('\n'):
try:
sha, subject, body, parents = line[1:-1].split('|')
except ValueError:
continue
try:
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
pull_request = " #{}".format(pull_request)
except Exception as ex:
pull_request = ""
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
changes.append("{}{}: {} ({})".format(sha, pull_request, body.strip(), author))
return changes
if __name__ == '__main__':
previous_sha = sys.argv[1]
changes = get_change_log(previous_sha)
for change in changes:
print(change)

8
bin/pack Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
NAME=redash
VERSION=$(python ./manage.py version)
FULL_VERSION=$VERSION+b$CIRCLE_BUILD_NUM
FILENAME=$NAME.$FULL_VERSION.tar.gz
sed -ri "s/^__version__ = '([A-Za-z0-9.-]*)'/__version__ = '$FULL_VERSION'/" redash/__init__.py
tar -zcv -f $FILENAME --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" *

View File

@@ -1,9 +1,10 @@
from __future__ import print_function
import os
import sys
import json
import re
import subprocess
import requests
import simplejson
github_token = os.environ['GITHUB_TOKEN']
auth = (github_token, 'x-oauth-basic')
@@ -16,7 +17,7 @@ def _github_request(method, path, params=None, headers={}):
url = path
if params is not None:
params = json.dumps(params)
params = simplejson.dumps(params)
response = requests.request(method, url, data=params, auth=auth)
return response
@@ -95,7 +96,7 @@ def get_changelog(commit_sha):
try:
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0]
pull_request = " #{}".format(pull_request)
except Exception, ex:
except Exception as ex:
pull_request = ""
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1]
@@ -124,7 +125,7 @@ def update_release(version, build_filepath, commit_sha):
else:
release = create_release(version, commit_sha)
print "Using release id: {}".format(release['id'])
print("Using release id: {}".format(release['id']))
remove_previous_builds(release)
response = upload_asset(release, build_filepath)
@@ -135,8 +136,8 @@ def update_release(version, build_filepath, commit_sha):
if response.status_code != 200:
raise exception_from_error("Failed updating release description", response)
except Exception, ex:
print ex
except Exception as ex:
print(ex)
if __name__ == '__main__':
commit_sha = sys.argv[1]

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python
import os
import urllib
import argparse
import os
import subprocess
import sys
from collections import namedtuple
@@ -74,13 +75,13 @@ class Release(namedtuple('Release', ('version', 'download_url', 'filename', 'des
def get_latest_release_from_ci():
response = requests.get('https://circleci.com/api/v1.1/project/github/getredash/redash/latest/artifacts')
response = requests.get('https://circleci.com/api/v1.1/project/github/getredash/redash/latest/artifacts?branch=master')
if response.status_code != 200:
exit("Failed getting releases (status code: %s)." % response.status_code)
tarball_asset = filter(lambda asset: asset['url'].endswith('.tar.gz'), response.json())[0]
filename = tarball_asset['pretty_path'].replace('$CIRCLE_ARTIFACTS/', '')
filename = urllib.unquote(tarball_asset['pretty_path'].split('/')[-1])
version = filename.replace('redash.', '').replace('.tar.gz', '')
release = Release(version, tarball_asset['url'], filename, '')
@@ -111,7 +112,10 @@ def restart_services():
# otherwise it won't notice that /opt/redash/current pointing at a different
# directory.
green("Restarting...")
run('sudo /etc/init.d/redash_supervisord restart')
try:
run('sudo /etc/init.d/redash_supervisord restart')
except subprocess.CalledProcessError as e:
run('sudo service supervisor restart')
def update_requirements(version_name):
@@ -200,8 +204,10 @@ def show_description_and_confirm(description):
def verify_newer_version(release):
if not release.is_newer(current_version()):
red("The found release is not newer than your current deployed release ({}). Aborting upgrade.".format(current_version()))
exit(1)
red("The found release is not newer than your current deployed release ({}).".format(current_version()))
if not confirm("Continue with upgrade?"):
red("Cancelling upgrade.")
exit(1)
def deploy_release(channel):

View File

@@ -1,37 +0,0 @@
machine:
services:
- docker
- redis
node:
version:
6.9.1
dependencies:
override:
- pip install --upgrade setuptools
- pip install -r requirements_dev.txt
- pip install -r requirements.txt
- make deps
cache_directories:
- node_modules/
test:
override:
- nosetests --with-xunit --xunit-file=$CIRCLE_TEST_REPORTS/junit.xml --with-coverage --cover-package=redash tests/
deployment:
github_and_docker:
branch: master
commands:
- make pack
# Skipping uploads for now, until master is stable.
# - make upload
#- echo "client/app" >> .dockerignore
#- docker pull redash/redash:latest
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- docker build -t redash/redash:$(./manage.py version | sed -e "s/\+/./") .
- docker push redash/redash:$(./manage.py version | sed -e "s/\+/./")
notify:
webhooks:
- url: https://webhooks.gitter.im/e/895d09c3165a0913ac2f
general:
branches:
ignore:
- gh-pages

View File

@@ -1,4 +1,17 @@
{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-object-assign"]
"presets": [
["@babel/preset-env", {
"targets": "> 0.5%, last 2 versions, Firefox ESR, ie 11, not dead",
"useBuiltIns": "usage"
}],
"@babel/preset-react"
],
"plugins": [
"angularjs-annotate",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-object-assign",
["babel-plugin-transform-builtin-extend", {
"globals": ["Error"]
}]
]
}

View File

@@ -1,2 +1,3 @@
build/*.js
config/*.js
node_modules

View File

@@ -1,15 +1,60 @@
module.exports = {
root: true,
extends: 'airbnb-base',
extends: ["airbnb", "plugin:jest/recommended"],
plugins: ["jest", "cypress"],
settings: {
"import/resolver": "webpack"
},
parser: "babel-eslint",
env: {
"jest/globals": true,
"cypress/globals": true,
"browser": true,
"node": true
},
rules: {
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'no-param-reassign': 0,
'no-mixed-operators': 0,
'no-underscore-dangle': 0,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
"no-use-before-define": ["error", "nofunc"],
"prefer-destructuring": "off",
"prefer-template": "off",
"no-restricted-properties": "off",
"no-restricted-globals": "off",
"no-multi-assign": "off",
"no-lonely-if": "off",
"consistent-return": "off",
"no-control-regex": "off",
'no-multiple-empty-lines': 'warn',
"no-script-url": "off", // some <a> tags should have href="javascript:void(0)"
'operator-linebreak': 'off',
'react/destructuring-assignment': 'off',
"react/jsx-filename-extension": "off",
'react/jsx-one-expression-per-line': 'off',
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
'react/jsx-wrap-multilines': 'warn',
'react/no-access-state-in-setstate': 'warn',
"react/prefer-stateless-function": "warn",
"react/forbid-prop-types": "warn",
"react/prop-types": "warn",
"jsx-a11y/anchor-is-valid": "off",
"jsx-a11y/click-events-have-key-events": "off",
"jsx-a11y/label-has-associated-control": ["warn", {
"controlComponents": true
}],
"jsx-a11y/label-has-for": "off",
"jsx-a11y/no-static-element-interactions": "off",
"max-len": ['error', 120, 2, {
ignoreUrls: true,
ignoreComments: false,
ignoreRegExpLiterals: true,
ignoreStrings: true,
ignoreTemplateLiterals: true,
}],
"no-else-return": ["error", {"allowElseIf": true}],
"object-curly-newline": ["error", {"consistent": true}],
}
}
};

View File

@@ -0,0 +1,4 @@
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });

View File

@@ -0,0 +1,5 @@
import MockDate from 'mockdate';
const date = new Date('2000-01-01T02:00:00.000');
MockDate.set(date);

View File

@@ -1,695 +0,0 @@
body {
padding-top: 50px;
}
body.headless {
padding-top: 0px;
}
body.headless nav.app-header {
display: none;
}
a[ng-click] {
cursor: pointer;
}
a.link {
cursor: pointer;
}
a.page-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 400px;
}
a.navbar-brand {
padding: 5px 5px 0px 0px;
margin-left: 0px !important;
}
.navbar .fa {
font-size: 18px;
}
a.navbar-brand img {
height: 40px;
}
.avatar {
margin-top: 5px;
margin-bottom: 5px;
}
.avatar img {
width: 40px;
height: 40px;
}
#logout {
color: white;
position: relative;
left: -9px;
bottom: -11px;
}
.details-toggle {
cursor: pointer;
}
.details-toggle::before {
content: '▸';
margin-right: 5px;
}
.details-toggle.open::before {
content: '▾';
margin-right: 5px;
}
.edit-in-place span {
white-space: pre-line;
}
.edit-in-place span.editable {
cursor: pointer;
}
.edit-in-place span.editable:hover {
background: #FCFCA2;
}
.edit-in-place input,
.edit-in-place textarea {
display: none;
}
.edit-in-place.active span {
display: none;
}
.edit-in-place.active input,
.edit-in-place.active textarea {
display: inline-block;
}
.delete-button {
float: none !important;
}
.list-group-item.active button {
color: white;
}
.panel-heading > p:last-child {
margin-bottom: 0px;
}
.panel-heading > a,
.panel-heading .query-link {
color: inherit;
}
.panel-heading .query-link:hover {
text-decoration: underline;
}
.form-group.required .control-label:after {
content: "*";
color: red;
}
.form-group .help-block.error {
display: none;
}
.form-group.has-error .help-block.error {
display: block;
}
/* angular-growl */
.growl {
position: fixed;
bottom: 10px;
right: 10px;
float: right;
width: 250px;
z-index: 10000;
}
.growl-item.ng-enter,
.growl-item.ng-leave {
-webkit-transition: 0.5s linear all;
-moz-transition: 0.5s linear all;
-o-transition: 0.5s linear all;
transition: 0.5s linear all;
}
.growl-item.ng-enter,
.growl-item.ng-leave.ng-leave-active {
opacity: 0;
}
.growl-item.ng-leave,
.growl-item.ng-enter.ng-enter-active {
opacity: 1;
}
/* Gridster */
li.widget {
/*background-color:grey;*/
border-width: 1px;
border-style: solid;
border-color: grey;
opacity: 0.7;
cursor: move;
}
li.widget:hover {
opacity: 1.0 !important;
-webkit-transition: opacity .6s;
-moz-transition: opacity .6s;
-o-transition: opacity .6s;
-ms-transition: opacity .6s;
transition: opacity .6s;
}
.gridster .preview-holder {
border: none !important;
border-radius: 0 !important;
background: rgba(0, 0, 0, 0.5) !important;
}
.gridster li .heading {
border: #ddd;
background-color: #f5f5f5;
padding: 5px;
}
/* Editor */
.ace_editor {
border: 1px solid #eee;
height: 100%;
margin-bottom: 10px;
}
/* Support for Font-Awesome in btn-xs */
.btn-xs > .fa {
font-size: 14px;
top: 1px;
position: relative;
}
/* Because of ng-repeat we add span between the .dropdown-menu element and the li element, so we had
to add those CSS styles here. */
.dropdown-menu > span > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.428571429;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > span > li > a:hover,
.dropdown-menu > span > li > a:focus {
color: #ffffff;
text-decoration: none;
background-color: #428bca;
}
/* Dropdown submenus */
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px 6px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
/*border-left-color: #ffffff;*/
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
-webkit-border-radius: 6px 0 6px 6px;
-moz-border-radius: 6px 0 6px 6px;
border-radius: 6px 0 6px 6px;
}
.rd-tab .remove {
cursor: pointer;
color: #A09797;
padding: 0 3px 1px 4px;
font-size: 11px;
}
.rd-tab .remove:hover {
color: white;
background-color: #FF8080;
border-radius: 50%;
}
.tab-nav > li.rd-tab-btn {
float: right;
padding-right: 10px;
padding-top: 10px;
}
/* light version of bootstrap's form-control */
.rd-form-control {
display: block;
padding: 6px 12px;
line-height: 1.428571429;
color: #555555;
vertical-align: middle;
background-color: #ffffff;
border: 1px solid #cccccc;
border-radius: 4px;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.rd-form-control {
width: 90%;
}
pivot-table-renderer > table, grid-renderer > div, visualization-renderer > div {
overflow: auto;
}
counter-renderer {
display: block;
text-align: center;
}
counter-renderer counter {
margin: 0 auto;
padding: 15px 50px;
display: block;;
}
counter-renderer value,
counter-renderer counter-target {
font-size: 80px;
display: block;
}
counter-renderer counter-target {
color: #ccc;
}
counter-renderer counter.positive value {
color: #5cb85c;
}
counter-renderer counter.negative value {
color: #d9534f;
margin-right: 15px;
}
counter-renderer counter-name {
font-size: 40px;
display: block;
}
.box {
font: 10px sans-serif;
}
.box line,
.box rect,
.box circle {
fill: #fff;
stroke: #000;
stroke-width: 1.5px;
}
.box .center {
stroke-dasharray: 3, 3;
}
.box .outlier {
fill: none;
stroke: #000;
}
.axis text {
font: 10px sans-serif;
}
.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.grid-background {
fill: #ddd;
}
.grid path,
.grid line {
fill: none;
stroke: #fff;
shape-rendering: crispEdges;
}
.grid .minor line {
stroke-opacity: .5;
}
.grid text {
display: none;
}
.iframe-container {
height: 100%;
}
.schema-container {
height: 100%;
z-index: 10;
background-color: white;
}
.schema-control {
display: flex;
padding: 5px 0;
}
.schema-control .form-control {
height: 30px;
margin-right: 5px;
}
.schema-browser {
height: calc(100% - 45px);
overflow-y: auto;
overflow-x: hidden;
border: 1px solid rgba(0,0,0,.15);
}
div.table-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
padding: 0 10px;
}
div.table-name:hover {
background: #f4f4f4;
}
.blankslate {
text-align: center;
padding: 30px;
}
/* Footer */
.footer {
color: #818d9f;
padding-bottom: 30px;
}
.footer a {
color: #818d9f;
margin-left: 20px;
}
.col-table .missing-value {
color: #b94a48;
}
.col-table .super-small-input {
padding-left: 3px;
height: 24px;
}
.col-table .ui-select-toggle, .col-table .ui-select-search {
padding: 2px;
padding-left: 5px;
height: 24px;
}
.clearable button {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
/* Immediately apply ng-cloak, instead of waiting for angular.js to load: */
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
.voffset {
margin-top: 2px;
}
.voffset1 {
margin-top: 5px;
}
.voffset2 {
margin-top: 10px;
}
.voffset3 {
margin-top: 15px;
}
.voffset4 {
margin-top: 30px;
}
.voffset5 {
margin-top: 40px;
}
.voffset6 {
margin-top: 60px;
}
.voffset7 {
margin-top: 80px;
}
.voffset8 {
margin-top: 100px;
}
.voffset9 {
margin-top: 150px;
}
.overlay {
background-color: #808080;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
padding: 0;
z-index: 1000;
opacity: 0.8;
}
.container-fluid {
padding-left: 5px;
padding-right: 5px;
}
.modal-xl {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
}
.modal-xl .modal-dialog {
position: fixed;
margin: 0;
width: 100%;
height: 100%;
padding: 0;
}
.modal-xl .modal-content {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border: 2px solid #3c7dcf;
border-radius: 0;
box-shadow: none;
}
.modal-xl .modal-header {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 50px;
padding: 10px;
border: 0;
}
.modal-xl .modal-body {
position: absolute;
top: 50px;
bottom: 60px;
width: 100%;
overflow: auto;
}
.modal-xl .modal-footer {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 60px;
padding: 10px;
}
/* Bootstrap Overrides */
.flex-parent {
display: flex;
flex-direction: column;
justify-content: center;
}
.collapsing,
.collapse.in {
padding: 5px 10px;
transition: all 0.35s ease;
}
.schema-browser .collapse.in {
background: #f4f4f4;
}
.navbar .collapse.in {
background: #222;
}
/* Fixes for SuperFlat */
.table-hover > tbody > tr:hover {
background-color: #f4f4f4;
}
.dropdown-menu {
z-index: 1000000000;
}
.t-body a.actions {
font-size: 24px;
line-height: 100%;
padding: 4px 10px 3px;
display: block;
}
.t-body a.actions:hover,
.t-body a.actions.open > a {
background-color: rgba(0, 0, 0, 0.1);
}
/* ui-select adjustments for SuperFlat */
/* Same definition as .form-control */
.ui-select-toggle.btn-default {
height: 35px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #9E9E9E;
background: #fff none;
border: 1px solid #e8e8e8;
border-radius: 5px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.t-header.widget {
padding: 5px;
}
/* Sankey Visualization */
.sankey .node rect {
fill-opacity: .9;
shape-rendering: crispEdges;
stroke-width: 0;
}
.sankey .node text {
text-shadow: 0 1px 0 #fff;
}
.sankey .link {
fill: none;
stroke: #000;
stroke-opacity: .2;
}
/*Dashboard list view */
.m-2{
margin:2px;
}
.dropdown-menu > .disabled{
cursor: not-allowed;
}
/* The real magic ;) */
.dropdown-menu > .disabled > a{
pointer-events: none;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="630" height="630" viewBox="0 0 630 630" version="1.1">
<g transform="translate(-56.611934,-184.36221)">
<path fill="#a7a7a7" d="m 58.467329,810.92426 c 0,-10.37237 6.53079,-28.55017 15.29935,-42.58418 9.70782,-15.53729 28.965401,-35.11964 51.655121,-52.52627 7.21357,-5.53395 6.57284,-5.08564 22.23877,-15.56023 20.2393,-13.53245 55.34935,-32.58361 79.80676,-43.30416 19.72995,-8.64834 57.2268,-21.58721 62.55974,-21.58721 0.76988,0 3.09659,-0.67892 5.17046,-1.50872 7.3197,-2.92876 12.5713,-16.1286 13.89202,-34.91737 l 0.64689,-9.20257 -8.38455,-10.04931 c -7.66622,-9.18836 -11.59308,-14.62897 -20.80286,-28.82203 -9.85543,-15.1881 -22.91997,-47.26171 -24.69185,-60.61889 -0.56037,-4.22429 -1.0976,-5.21546 -3.27999,-6.05157 -10.15146,-3.88918 -15.7489,-9.08881 -20.96084,-19.47118 -6.6162,-13.17971 -8.62087,-36.5618 -4.2711,-49.81738 2.29242,-6.98599 4.4873,-10.89589 8.72413,-15.54098 2.11744,-2.32146 2.22102,-2.9999 1.45041,-9.5 -2.58899,-21.83821 -3.34954,-41.36055 -2.18394,-56.05862 3.87891,-48.91259 20.17112,-81.47548 50.89033,-101.71339 16.68129,-10.98968 34.4196,-16.74492 62.2113,-20.1846 32.20647,-3.98609 68.82401,0.75436 93.8318,12.14731 14.67849,6.68717 28.98155,17.91433 38.99893,30.61215 19.81832,25.12131 29.57328,66.42856 26.24603,111.13853 -0.69821,9.38224 -1.63714,20.17477 -2.08651,23.9834 -0.81425,6.90129 -0.80559,6.93815 2.55469,10.86388 7.03777,8.22205 10.02312,18.44949 9.84447,33.72599 -0.27308,23.35114 -10.37432,43.49379 -24.44339,48.74202 l -5.34465,1.99373 -1.18738,6.3748 c -4.9831,26.75313 -22.71761,61.14702 -45.76986,88.76506 l -7.88572,9.44759 0.64805,9.21931 c 1.18682,16.88381 6.49256,31.6953 12.30203,34.34227 1.23595,0.56314 6.42637,1.99946 11.53427,3.19182 35.45428,8.27628 97.76078,37.16683 137.59386,63.80012 15.66594,10.47459 15.02521,10.02628 22.23877,15.56023 22.46534,17.23449 41.43241,36.56563 52.11597,53.1163 7.31528,11.33263 13.49882,27.98884 14.54335,39.17447 l 0.58435,6.25763 -313.14461,0 -313.144601,0 0,-3.43795 z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48"><defs><path id="a" d="M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z"/></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FBBC05" d="M0 37V11l17 13z"/><path clip-path="url(#b)" fill="#EA4335" d="M0 11l17 13 7-6.1L48 14V0H0z"/><path clip-path="url(#b)" fill="#34A853" d="M0 37l30-23 7.9 1L48 0v48H0z"/><path clip-path="url(#b)" fill="#4285F4" d="M48 48L17 24l-4-3 35-10z"/></svg>

After

Width:  |  Height:  |  Size: 688 B

View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="844px" height="561px" viewBox="0 0 844 561" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch -->
<title>alert</title>
<desc>Created with Sketch.</desc>
<defs>
<path d="M16.1038207,9.60213053 C11.5200489,10.2779745 8.52171196,12.444141 6.39769565,16.0301575 C8.22444293,8.88931733 9.90197283,2.94073518 8.3864837,0.0421155289 C-3.90646467,5.86130533 1.23687228,25.24012 0.672644022,34.6950038 L0.9384375,34.7227307 C1.78827717,26.9072018 17.6985815,15.7205401 16.1038207,9.60213053 Z" id="path-1"></path>
<path d="M16.1038207,9.60213053 C11.5200489,10.2779745 8.52171196,12.444141 6.39769565,16.0301575 C8.22444293,8.88931733 9.90197283,2.94073518 8.3864837,0.0421155289 C-3.90646467,5.86130533 1.23687228,25.24012 0.672644022,34.6950038 L0.9384375,34.7227307 C1.78827717,26.9072018 17.6985815,15.7205401 16.1038207,9.60213053 Z" id="path-3"></path>
</defs>
<g id="alert" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Layer_3" transform="translate(165.000000, 26.000000)">
<path d="M457.831075,86.1467907 C448.970378,84.9675232 425.223707,91.0761286 411.514436,97.9182384 L19.0505003,294.681371 C7.37564487,300.508132 0,312.419912 0,325.450818 L0,431.514132 C0,444.543858 7.37564487,456.45446 19.0505003,462.282399 C78.8298874,481.970662 117.580279,494.762963 135.301674,500.6593 C161.883768,509.503806 184.667576,507.883492 198.380392,507.883492 L362.910555,507.883492 C376.621008,507.883492 397.189641,506.366954 414.326231,496.101431 C455.932284,478.305658 485.639644,463.479122 503.448311,451.621822 C511.961503,445.953599 516.523558,436.335266 514.539542,423.417282 C509.25454,389.006494 478.348459,113.067594 474.961758,101.477268 C471.575057,89.8869406 466.691773,87.3260581 457.831075,86.1467907 Z" id="Shape-Copy-4" fill="#7F5949" fill-rule="nonzero"></path>
<path d="M457.831075,74.1467907 C448.970378,72.9675232 425.223707,79.0761286 411.514436,85.9182384 L19.0505003,282.681371 C7.37564487,288.508132 0,300.419912 0,313.450818 L0,419.514132 C0,432.543858 7.37564487,444.45446 19.0505003,450.282399 C78.8298874,469.970662 117.580279,482.762963 135.301674,488.6593 C161.883768,497.503806 184.667576,495.883492 198.380392,495.883492 L362.910555,495.883492 C376.621008,495.883492 397.189641,494.366954 414.326231,484.101431 C455.932284,466.305658 485.639644,451.479122 503.448311,439.621822 C511.961503,433.953599 516.523558,424.335266 514.539542,411.417282 C509.25454,377.006494 478.348459,101.067594 474.961758,89.4772675 C471.575057,77.8869406 466.691773,75.3260581 457.831075,74.1467907 Z" id="Shape-Copy-3" fill="#6D9E3E" fill-rule="nonzero"></path>
<path d="M457.831075,63.1467907 C448.970378,61.9675232 425.223707,68.0761286 411.514436,74.9182384 L19.0505003,271.681371 C7.37564487,277.508132 0,289.419912 0,302.450818 L0,408.514132 C0,421.543858 7.37564487,433.45446 19.0505003,439.282399 C78.8298874,458.970662 117.580279,471.762963 135.301674,477.6593 C161.883768,486.503806 184.667576,484.883492 198.380392,484.883492 L362.910555,484.883492 C376.621008,484.883492 397.189641,483.366954 414.326231,473.101431 C455.932284,455.305658 485.639644,440.479122 503.448311,428.621822 C511.961503,422.953599 516.523558,413.335266 514.539542,400.417282 C509.25454,366.006494 478.348459,90.0675945 474.961758,78.4772675 C471.575057,66.8869406 466.691773,64.3260581 457.831075,63.1467907 Z" id="Shape" fill="#94C36C" fill-rule="nonzero"></path>
<g id="Group" transform="translate(376.000000, 299.000000)" fill-rule="nonzero">
<path d="M25.9420909,61.1810309 C30.4314545,62.1896907 35.2677273,64.5435052 35.9590909,69.2494845 C35.9590909,69.5868041 31.8141818,75.3030928 31.4689091,75.974433 C27.324,81.3542268 18.6880909,80.3463918 13.5065455,77.6560825 C9.70690909,75.6387629 5.562,75.302268 1.41709091,73.6206186 C-1.34590909,72.6119588 2.45372727,65.5513402 5.90727273,64.5426804 C9.70690909,63.5331959 11.7793636,60.8437113 15.579,61.5158763" id="Shape" fill="#E5C19E"></path>
<path d="M25.9429091,74.9657732 C23.5955455,75.8441237 21.1066364,76.3117526 18.6880909,76.3117526 C16.2703636,76.3117526 14.8876364,75.974433 13.1620909,74.6301031 C11.4349091,73.2849485 8.32581818,72.6127835 7.63445455,70.9319588 C6.94390909,69.2503093 5.21672727,68.2408247 6.94390909,66.56 C8.67027273,64.8791753 14.1979091,60.1715464 16.2695455,59.1628866 C18.3428182,58.1534021 17.6506364,57.4820619 21.105,58.4898969 C24.5601818,59.4993814 25.5951818,60.0461856 26.631,62.4 C27.6684545,64.7538144 34.9224545,71.6041237 25.9429091,74.9657732 Z" id="Shape" fill="#603E2F"></path>
<path d="M22.3011818,3.24948454 C22.3011818,3.24948454 22.1481818,4.16329897 21.9493636,5.7756701 C21.8495455,6.58061856 21.7300909,7.55876289 21.6278182,8.68371134 C21.5050909,9.80783505 21.4044545,11.0787629 21.3054545,12.4668041 C21.1835455,13.8540206 21.1352727,15.3608247 21.0534545,16.9534021 C21.0035455,17.7501031 20.9953636,18.5690722 20.9888182,19.4061856 C20.9781818,20.2449485 20.9675455,21.1010309 20.9577273,21.9703093 C20.9585455,23.7113402 21.0272727,25.5101031 21.06,27.3393814 C21.0853636,29.1579381 21.1115455,31.0045361 21.1377273,32.8527835 C21.0845455,34.691134 21.0305455,36.5319588 20.9781818,38.342268 C20.8849091,40.1575258 20.7932727,41.942268 20.7057273,43.6709278 C20.6402727,45.4004124 20.5363636,47.0713402 20.4946364,48.6589691 C20.4340909,50.2465979 19.0096364,61.3369072 18.9891818,62.1468041 C18.8599091,63.785567 20.2851818,63.1554639 20.3563636,61.7501031 C20.4414545,61.3212371 20.5347273,60.691134 20.6697273,59.8878351 C20.8088182,59.0870103 20.9503636,58.1113402 21.1017273,56.988866 C21.2539091,55.868866 21.4232727,54.6020619 21.5631818,53.2189691 C21.7112727,51.8342268 21.8830909,50.3364948 21.9951818,48.7447423 C22.1211818,47.1546392 22.2529091,45.4787629 22.3216364,43.7402062 C22.3617273,41.9991753 22.4288182,40.2028866 22.4320909,38.3727835 C22.4149091,36.5393814 22.3969091,34.6771134 22.3805455,32.8148454 C22.2954545,30.9616495 22.2111818,29.1076289 22.1260909,27.2824742 C22.0369091,25.4705155 21.9117273,23.6865979 21.8560909,21.9571134 C21.834,20.2268041 21.7669091,18.5542268 21.7849091,16.9674227 C21.8004545,15.3797938 21.7824545,13.8787629 21.8462727,12.4931959 C21.8863636,11.1068041 21.933,9.83670103 22.0090909,8.71340206 C22.0655455,7.58680412 22.1424545,6.60783505 22.2087273,5.80123711 C22.338,4.18886598 22.4517273,3.27010309 22.4517273,3.27010309 C22.4566364,3.22804124 22.4263636,3.19092784 22.3838182,3.18597938 C22.3453636,3.18103093 22.3077273,3.21072165 22.3011818,3.24948454 Z" id="Shape" fill="#B26B56"></path>
<path d="M33.9136364,29.2816495 C33.9136364,29.2816495 33.0234545,29.9035052 31.7454545,30.9096907 C30.4731818,31.9216495 28.7852727,33.28 27.2405455,34.7818557 C26.8576364,35.1604124 26.469,35.5323711 26.1204545,35.9290722 C25.7612727,36.316701 25.4078182,36.694433 25.0879091,37.0771134 C24.7393636,37.436701 24.4333636,37.8037113 24.129,38.1426804 C23.8131818,38.4750515 23.562,38.8181443 23.31,39.1249485 C23.0465455,39.4276289 22.8518182,39.7286598 22.6693636,39.996701 C22.4779091,40.2597938 22.3142727,40.4940206 22.2136364,40.7026804 C21.9935455,41.1134021 21.8454545,41.3558763 21.8454545,41.3558763 L21.8405455,41.3641237 C21.825,41.3872165 21.7939091,41.3954639 21.7701818,41.3806186 C21.753,41.3698969 21.744,41.3501031 21.7464545,41.3303093 C21.7464545,41.3303093 21.7808182,41.0589691 21.8806364,40.5715464 C21.9109091,40.3175258 22.0090909,40.0362887 22.1408182,39.7195876 C22.2676364,39.3987629 22.4059091,39.0276289 22.6300909,38.6721649 C22.8379091,38.3051546 23.0620909,37.9002062 23.3582727,37.5241237 C23.6348182,37.1290722 23.9465455,36.7282474 24.3057273,36.3529897 C24.6616364,35.9719588 25.0396364,35.5925773 25.4536364,35.2395876 C25.8545455,34.8725773 26.2759091,34.5195876 26.6980909,34.1682474 C28.3819091,32.7579381 30.1581818,31.4894845 31.5400909,30.614433 C32.913,29.7303093 33.8596364,29.1934021 33.8596364,29.1934021 C33.8841818,29.1793814 33.9152727,29.1876289 33.9291818,29.2123711 C33.9422727,29.2371134 33.9349091,29.2659794 33.9136364,29.2816495 Z" id="Shape" fill="#B26B56"></path>
<path d="M15.1003636,12.7298969 C15.1003636,12.7298969 15.6976364,13.4037113 16.5305455,14.4701031 C17.3724545,15.5298969 18.4000909,17.0185567 19.3270909,18.5839175 C19.5700909,18.9690722 19.7779091,19.3756701 20.0045455,19.7649485 C20.2336364,20.1534021 20.4087273,20.5641237 20.5993636,20.9501031 C20.7638182,21.3484536 20.8963636,21.7476289 21.0133636,22.1253608 C21.1205455,22.508866 21.1982727,22.88 21.2694545,23.2189691 C21.3340909,23.5604124 21.3512727,23.8861856 21.3799091,24.1657732 C21.4134545,24.4445361 21.3962727,24.697732 21.3815455,24.9014433 C21.3619091,25.308866 21.33,25.5364948 21.33,25.5364948 C21.3259091,25.5645361 21.2997273,25.5851546 21.2710909,25.5810309 C21.2522727,25.5785567 21.2375455,25.5653608 21.2301818,25.548866 L21.2277273,25.5430928 C21.2277273,25.5430928 21.1418182,25.3228866 21.0256364,24.9492784 C20.916,24.5756701 20.7065455,24.0560825 20.4848182,23.4408247 C20.3514545,23.1373196 20.2262727,22.8049485 20.0855455,22.457732 C19.9227273,22.1162887 19.782,21.7468041 19.6224545,21.3674227 C19.3107273,20.6053608 19.0006364,19.7740206 18.6111818,18.9748454 C17.8453636,17.3698969 16.9330909,15.8292784 16.2400909,14.6771134 C15.5380909,13.5307216 15.0226364,12.7958763 15.0226364,12.7958763 C15.0062727,12.7727835 15.0111818,12.7406186 15.0349091,12.7241237 C15.0537273,12.7068041 15.084,12.7109278 15.1003636,12.7298969 Z" id="Shape" fill="#B26B56"></path>
<path d="M24.5601818,0.403298969 C24.5601818,0.403298969 21.726,0.862680412 22.4345455,3.39051546 C22.4345455,3.39051546 24.0856364,3.6214433 24.5601818,0.403298969 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M24.0414545,14.3991753 C24.0414545,14.3991753 21.2080909,14.8602062 21.9166364,17.3872165 C21.9166364,17.3872165 23.5685455,17.6164948 24.0414545,14.3991753 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M18.6447273,9.75092784 C18.6447273,9.75092784 18.5743636,12.5459794 21.258,12.345567 C21.258,12.3463918 21.8020909,10.8090722 18.6447273,9.75092784 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M26.7790909,4.55835052 C26.7790909,4.55835052 22.7282727,3.46886598 22.068,7.24865979 C22.0688182,7.24865979 24.1159091,8.5443299 26.7790909,4.55835052 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M25.3521818,21.4639175 C25.3521818,21.4639175 21.2056364,22.131134 22.2357273,25.8301031 C22.2365455,25.8301031 24.6526364,26.1707216 25.3521818,21.4639175 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M12.7914545,19.1661856 C12.7914545,19.1661856 15.8498182,21.971134 18.2479091,18.9303093 C18.2479091,18.9303093 17.0599091,16.8536082 12.7914545,19.1661856 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M15.7647273,27.9694845 C15.7647273,27.9694845 17.694,32.3901031 21.2596364,33.0507216 C21.2588182,33.0507216 21.5967273,29.0160825 15.7647273,27.9694845 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M11.4913636,9.29484536 C11.4913636,9.29484536 12.159,14.1039175 15.2967273,12.8420619 C15.2967273,12.8412371 15.5299091,10.025567 11.4913636,9.29484536 Z" id="Shape" fill="#D3FF8D"></path>
</g>
<g id="Group" transform="translate(416.000000, 309.000000)" fill-rule="nonzero">
<path d="M10.8245455,61.6261224 C6.48818182,62.6377959 1.818,64.9958878 1.15118182,69.7137245 C1.15118182,70.0501224 5.15536364,75.7796327 5.48836364,76.4532551 C9.49172727,81.8438878 17.8298182,80.8338673 22.833,78.1377245 C26.5017273,76.1160306 30.5059091,75.7788061 34.5084545,74.0943367 C37.1773636,73.0826633 33.5078182,66.0067347 30.1720909,64.9950612 C26.5041818,63.9842143 24.5012727,61.288898 20.8317273,61.9625204" id="Shape" fill="#E5C19E"></path>
<path d="M10.8245455,75.4415816 C13.0917273,76.3210102 15.4939091,76.7888265 17.8298182,76.7888265 C20.1657273,76.7888265 21.4985455,76.451602 23.1668182,75.1035306 C24.8334545,73.7562857 27.8361818,73.0818367 28.503,71.3973673 C29.1698182,69.712898 30.8380909,68.7012245 29.1698182,67.0175816 C27.5023636,65.3322857 22.1645455,60.614449 20.1640909,59.603602 C18.1628182,58.5927551 18.8296364,57.9183061 15.4939091,58.9299796 C12.1573636,59.9408265 11.1567273,60.4896429 10.1577273,62.8477347 C9.15709091,65.2074796 2.15263636,72.0718163 10.8245455,75.4415816 Z" id="Shape" fill="#603E2F"></path>
<path d="M14.3410909,3.56978571 C14.3410909,3.56978571 14.4883636,4.48558163 14.679,6.10144898 C14.7763636,6.90896939 14.8917273,7.88840816 14.9907273,9.01579592 C15.1101818,10.1423571 15.2067273,11.4152143 15.3024545,12.8079184 C15.4202727,14.1973163 15.4652727,15.7073878 15.5446364,17.3025918 C15.5929091,18.1018469 15.6010909,18.9225918 15.6084545,19.7623469 C15.6182727,20.602102 15.6272727,21.4592143 15.6370909,22.3303776 C15.6370909,24.0751837 15.5708182,25.8786735 15.5389091,27.7119184 C15.5143636,29.5344184 15.4881818,31.3850204 15.4628182,33.2372755 C15.5151818,35.0804388 15.5667273,36.9244286 15.6174545,38.7394898 C15.7066364,40.5570306 15.7966364,42.3464694 15.8809091,44.0788776 C15.9430909,45.8121122 16.0445455,47.4866633 16.0838182,49.0777347 C16.1419091,50.6688061 17.5189091,61.7831633 17.5369091,62.5948163 C17.6620909,64.2379592 16.2859091,63.6064898 16.2171818,62.1972551 C16.1345455,61.7674592 16.0453636,61.1359898 15.9152727,60.330949 C15.7802727,59.5275612 15.6444545,58.5497755 15.4971818,57.4256939 C15.3499091,56.3032653 15.1870909,55.0345408 15.0512727,53.6476224 C14.9080909,52.2607041 14.7428182,50.758898 14.634,49.1645204 C14.5120909,47.5709694 14.3844545,45.8906327 14.3173636,44.1474796 C14.2780909,42.4035 14.2142727,40.6041429 14.211,38.7700714 C14.2281818,36.9318673 14.2445455,35.0655612 14.2625455,33.1992551 C14.3435455,31.3412143 14.4253636,29.484 14.5071818,27.6557143 C14.5922727,25.839 14.7125455,24.0512143 14.7665455,22.3179796 C14.7878182,20.5847449 14.8524545,18.9077143 14.8369091,17.3166429 C14.8213636,15.7272245 14.8377273,14.2212857 14.7763636,12.8327143 C14.7379091,11.4449694 14.6912727,10.1712857 14.6192727,9.04472449 C14.5660909,7.91733673 14.4916364,6.93541837 14.427,6.12707143 C14.3026364,4.51120408 14.1921818,3.59044898 14.1921818,3.59044898 C14.1872727,3.54829592 14.2159091,3.51110204 14.2576364,3.50614286 C14.2985455,3.50118367 14.3353636,3.53011224 14.3410909,3.56978571 Z" id="Shape" fill="#B26B56"></path>
<path d="M3.18109091,29.5724388 C3.18109091,29.5724388 4.10318182,30.1146429 5.43845455,31.008949 C6.78190909,31.8925102 8.50581818,33.1744592 10.134,34.5927857 C10.5439091,34.9457143 10.9497273,35.301949 11.3375455,35.6714082 C11.7384545,36.0251633 12.1025455,36.4086735 12.4453636,36.7897041 C12.7922727,37.164949 13.0884545,37.5682959 13.3543636,37.9600714 C13.6399091,38.3344898 13.8485455,38.7403163 14.049,39.1031633 C14.2633636,39.4560918 14.3893636,39.8272041 14.5104545,40.1421122 C14.5685455,40.3008061 14.6233636,40.4487551 14.6732727,40.5859592 C14.7133636,40.7272959 14.7289091,40.8661531 14.7542727,40.9851735 C14.8467273,41.4653878 14.877,41.7331837 14.877,41.7331837 C14.8802727,41.7604592 14.8598182,41.7852551 14.8328182,41.7885612 C14.8123636,41.7910408 14.7935455,41.7811224 14.7837273,41.7645918 L14.7788182,41.7571531 C14.7788182,41.7571531 14.6356364,41.5174592 14.4229091,41.1091531 C14.3255455,40.9025204 14.1725455,40.6686122 13.9868182,40.4057755 C13.8084545,40.1412857 13.6268182,39.8387755 13.3715455,39.5362653 C13.1260909,39.230449 12.8896364,38.8857857 12.5844545,38.5526939 C12.2890909,38.2154694 11.9986364,37.8460102 11.6623636,37.4856429 C11.3530909,37.1037857 11.016,36.7235816 10.6690909,36.3367653 C10.3328182,35.9400306 9.95972727,35.5647857 9.58909091,35.1862347 C8.09836364,33.6802959 6.46363636,32.3107347 5.22981818,31.294102 C3.98945455,30.281602 3.12545455,29.6559184 3.12545455,29.6559184 C3.10336364,29.6393878 3.09763636,29.6079796 3.11318182,29.5856633 C3.12954545,29.5658265 3.159,29.5600408 3.18109091,29.5724388 Z" id="Shape" fill="#B26B56"></path>
<path d="M21.3733636,13.1335714 C21.3733636,13.1335714 20.8742727,13.8741429 20.1943636,15.0255 C19.5242727,16.1818163 18.6422727,17.7299082 17.9050909,19.3391633 C17.5295455,20.140898 17.2325455,20.9723878 16.9322727,21.734449 C16.7800909,22.1146531 16.6434545,22.4841122 16.4855455,22.8262959 C16.3521818,23.1759184 16.2294545,23.5065306 16.1001818,23.8106939 C15.8858182,24.4256327 15.6829091,24.9446939 15.5757273,25.3174592 C15.4628182,25.691051 15.3785455,25.9100816 15.3785455,25.9100816 L15.3769091,25.9150408 C15.3662727,25.9414898 15.3368182,25.9547143 15.3114545,25.9447959 C15.2934545,25.9373571 15.282,25.9216531 15.2795455,25.9034694 C15.2795455,25.9034694 15.2476364,25.6778265 15.2271818,25.2728265 C15.2124545,25.0695 15.1936364,24.8190612 15.2247273,24.5413469 C15.2517273,24.2628061 15.2680909,23.9396327 15.3278182,23.599102 C15.3940909,23.261051 15.4693636,22.8932449 15.57,22.5097347 C15.6812727,22.1320102 15.8097273,21.734449 15.9668182,21.3360612 C16.1500909,20.9492449 16.3194545,20.5401122 16.5387273,20.1491633 C16.7604545,19.7598673 16.9592727,19.3515612 17.1940909,18.9647449 C18.09,17.3926837 19.0857273,15.8941837 19.9039091,14.8254796 C20.7130909,13.7509898 21.294,13.0699286 21.294,13.0699286 C21.312,13.0492653 21.3439091,13.0467857 21.3651818,13.0641429 C21.384,13.0831531 21.3872727,13.1120816 21.3733636,13.1335714 Z" id="Shape" fill="#B26B56"></path>
<path d="M12.1598182,0.716602041 C12.1598182,0.716602041 14.8966364,1.17863265 14.2126364,3.71194898 C14.2126364,3.71194898 12.6155455,3.94172449 12.1598182,0.716602041 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M12.6605455,14.7436531 C12.6605455,14.7436531 15.3973636,15.2048571 14.7133636,17.7381735 C14.7125455,17.7381735 13.1162727,17.9671224 12.6605455,14.7436531 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M17.8715455,10.0853265 C17.8715455,10.0853265 17.9402727,12.8872653 15.3482727,12.6864184 C15.3482727,12.6872449 14.823,11.1457653 17.8715455,10.0853265 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M10.0161818,4.88231633 C10.0161818,4.88231633 13.9279091,3.78964286 14.5660909,7.57763265 C14.5660909,7.57763265 12.5893636,8.87611224 10.0161818,4.88231633 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M0.522818182,25.6150102 C0.522818182,25.6150102 4.527,26.2828469 3.53290909,29.9906633 C3.53209091,29.9906633 1.19863636,30.3311939 0.522818182,25.6150102 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M8.54672727,34.1795204 C8.54672727,34.1795204 5.59227273,36.990551 3.27681818,33.9431327 C3.27681818,33.9423061 4.42309091,31.861102 8.54672727,34.1795204 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M20.6533636,28.3433878 C20.6533636,28.3433878 18.7887273,32.7727653 15.3474545,33.4356429 C15.3474545,33.4356429 15.021,29.3922551 20.6533636,28.3433878 Z" id="Shape" fill="#D3FF8D"></path>
<path d="M24.7794545,9.62742857 C24.7794545,9.62742857 24.1347273,14.446102 21.1041818,13.1823367 C21.1041818,13.1823367 20.88,10.3605612 24.7794545,9.62742857 Z" id="Shape" fill="#D3FF8D"></path>
</g>
<g id="Group" transform="translate(226.000000, 0.000000)" fill-rule="nonzero">
<path d="M5.44478127e-05,96.4371271 C0.0165546295,94.4848627 1.44853468,92.2058397 3.20226828,91.3486903 L20.7891048,82.7251041 C19.7224859,81.1801041 19.1084434,79.082219 19.1225864,76.5084029 C19.172087,68.7111845 24.9035429,59.5986443 31.9208345,56.1605753 C34.273289,55.006265 36.4630988,54.6534604 38.3452981,54.9683799 C38.3111191,54.3349891 38.2651543,53.7098857 38.2675115,53.0457133 C38.3724055,37.4489087 49.8270673,19.2332995 63.8616504,12.3524259 C69.4882124,9.59510408 74.6680909,9.09075926 78.8556012,10.4664604 C78.8827087,10.4415983 78.9192448,10.4048972 78.9192448,10.4048972 L79.5415374,10.7091616 C80.2156877,10.9719891 80.8568376,11.2869087 81.4744158,11.6503685 L85.5181389,13.6251271 C89.2283226,8.77465581 93.7953372,4.71503512 98.7524632,2.28802362 C104.091451,-0.330780975 108.963718,-0.617286722 112.765832,0.998747761 C112.777618,0.990460405 112.805904,0.959678795 112.805904,0.959678795 L119.847945,4.39774776 C119.847945,4.39774776 119.13608,4.97431098 118.202642,5.72490868 C119.658193,8.04892017 120.573953,11.0086903 120.758991,14.553311 C122.650619,12.3985983 124.846322,10.6073455 127.189348,9.45895466 C130.13463,8.01458684 132.831231,7.81213857 134.975076,8.62429949 L134.996291,8.60298914 L135.200186,8.70243742 C135.289758,8.74032247 135.372259,8.7876788 135.458296,8.82793167 L142.037154,12.0410581 C142.037154,12.0410581 140.79964,13.0426443 139.439554,14.1318397 C139.675271,15.1050121 139.810808,16.1717133 139.804915,17.347334 C139.784879,19.9258857 139.141372,22.6394029 138.04411,25.2499202 L152.462912,18.1808052 C153.18067,17.8315524 153.832427,17.7830121 154.360433,17.9665179 C154.374576,17.9534949 154.405219,17.9227133 154.405219,17.9227133 L161.447261,21.3595983 C161.447261,21.3595983 154.699865,26.8268857 155.375194,26.0798397 C156.050523,25.3339776 149.286627,28.3564949 148.27658,28.3564949 C147.912397,28.3564949 147.739145,28.0084259 147.597715,27.6035294 L31.7699757,84.3802075 C31.7593684,84.387311 31.7522969,84.3920466 31.7381539,84.400334 C31.7287252,84.400334 31.7192965,84.4086213 31.7110465,84.412173 L11.7234335,94.2113799 C11.8601493,94.7607133 11.8130059,95.3727937 11.4936096,95.7279662 C10.8182807,96.4726443 7.82939065,101.817989 7.82939065,101.817989 L1.39078405,98.6747133 C1.19160328,98.6226213 1.01481562,98.5267248 0.849813804,98.408334 L0.78734883,98.3799202 L0.792063168,98.3574259 C0.297057718,97.9809432 -0.00465988981,97.326242 5.44478127e-05,96.4371271 Z" id="Shape" fill="#DEEBFF"></path>
<path d="M10.2726468,94.9108416 L27.8606619,86.2872554 C26.7916859,84.7422554 26.178822,82.6443703 26.192965,80.0705542 C26.2424655,72.2745197 31.9727429,63.1619795 38.9900344,59.7239105 C41.3436675,58.5707841 43.5334773,58.2167956 45.4133195,58.5317151 C45.3814977,57.8983243 45.3355329,57.2732209 45.3378901,56.6090485 C45.4427841,41.0122439 56.8986245,22.7966347 70.932029,15.9157611 C79.7042327,11.6158071 87.408639,12.7665657 91.9285102,18.0479795 C95.7447665,12.813922 100.569891,8.42399101 105.819306,5.85254273 C117.615757,0.0667841087 127.170541,5.57195652 127.825834,18.1166462 C129.717462,15.9631174 131.913165,14.1706807 134.256191,13.0222899 C141.273482,9.57948526 146.921259,13.1146347 146.870579,20.9106692 C146.851722,23.4892209 146.205858,26.203922 145.109774,28.8132554 L159.528576,21.7441404 C161.28231,20.8858071 162.693075,21.7666347 162.683646,23.7177151 C162.668325,25.66406 161.238702,27.943083 159.481433,28.804968 L38.8332827,87.9447266 C38.823854,87.9518301 38.815604,87.9577496 38.8026395,87.9648531 C38.7920323,87.9648531 38.7837822,87.9731404 38.7755321,87.9766922 L10.2219677,101.974037 C8.47176986,102.83237 7.05746857,101.945623 7.07161159,99.9992784 C7.08693318,98.047014 8.51655607,95.7691749 10.2726468,94.9108416 Z" id="Shape" fill="#E9F2FF"></path>
</g>
<g id="Group" transform="translate(16.000000, 77.000000)" fill-rule="nonzero">
<path d="M0.628863309,96.6435977 C0.645381295,94.6913333 2.07772662,92.4134943 3.83453237,91.553977 L21.4415252,82.9327586 C20.3725755,81.3865747 19.7590504,79.2910575 19.7720288,76.7148736 C19.8215827,68.9176552 25.559223,59.8051149 32.5852662,56.367046 C34.9378993,55.2127356 37.1324317,54.859931 39.0143022,55.1748506 C38.982446,54.5414598 38.9364317,53.9163563 38.9387914,53.251 C39.0426187,37.6565632 50.5108201,19.4397701 64.5593669,12.5588966 C70.1908201,9.8003908 75.3774676,9.29722989 79.5706763,10.672931 C79.5954532,10.648069 79.6332086,10.6101839 79.6332086,10.6101839 L80.2561727,10.9168161 C80.9334101,11.1772759 81.5740719,11.4945632 82.1911367,11.8568391 L86.2404029,13.8315977 C89.9545899,8.98112644 94.5241727,4.92268966 99.4866475,2.49567816 C104.832576,-0.123126437 109.708921,-0.409632184 113.517496,1.2064023 C113.528115,1.19693103 113.556432,1.16614943 113.556432,1.16614943 L120.606072,4.6054023 C120.606072,4.6054023 119.893439,5.18196552 118.957813,5.93137931 C120.416115,8.2542069 121.331683,11.2151609 121.518101,14.7609655 C123.41177,12.605069 125.611022,10.8126322 127.955396,9.66542529 C130.903856,8.22105747 133.603367,8.0186092 135.749525,8.83077011 L135.770763,8.80945977 L135.976058,8.90772414 C136.063367,8.9467931 136.148317,8.99296552 136.235626,9.03321839 L142.820403,12.2475287 C142.820403,12.2475287 141.580374,13.2502989 140.21882,14.3383103 C140.454791,15.3114828 140.591655,16.377 140.584576,17.5538046 C140.564518,20.1323563 139.920317,22.8458736 138.82305,25.4563908 L153.25741,18.3872759 C153.974763,18.0368391 154.628403,17.9882989 155.155799,18.1729885 C155.169957,18.1599655 155.200633,18.128 155.200633,18.128 L162.250273,21.5672529 C162.250273,21.5672529 155.495597,27.0333563 156.172835,26.2863103 C156.847712,25.5404483 150.077698,28.5629655 149.065381,28.5629655 C148.701986,28.5629655 148.527367,28.2148966 148.386964,27.81 L32.4318849,84.5878621 C32.422446,84.5949655 32.4153669,84.6008851 32.4023885,84.6091724 C32.3917698,84.6091724 32.3835108,84.6162759 32.3752518,84.6198276 L12.3637122,94.4190345 C12.5017554,94.9695517 12.455741,95.5816322 12.1348201,95.9356207 C11.4587626,96.6814828 8.46664748,102.026828 8.46664748,102.026828 L2.02227338,98.8835517 C1.82169784,98.8302759 1.64471942,98.7343793 1.47953957,98.6171724 L1.41818705,98.5887586 L1.42290647,98.5662644 C0.927366906,98.1874138 0.624143885,97.5327126 0.628863309,96.6435977 Z" id="Shape" fill="#DEEBFF"></path>
<path d="M10.7119137,94.9103563 L28.3200863,86.2867701 C27.2511367,84.7417701 26.6376115,82.645069 26.6517698,80.0712529 C26.7001439,72.2728506 32.4377842,63.1614943 39.4614676,59.7222414 C41.8176403,58.5691149 44.0098129,58.2163103 45.8928633,58.5312299 C45.8598273,57.8966552 45.8138129,57.2727356 45.8161727,56.6085632 C45.9211799,41.0117586 57.3882014,22.7961494 71.4379281,15.9152759 C80.220777,11.6153218 87.9323165,12.7660805 92.4558849,18.0474943 C96.2786187,12.8122529 101.10895,8.42232184 106.364029,5.85205747 C118.172029,0.0651149425 127.738302,5.57265517 128.393122,18.1161609 C130.286791,15.9626322 132.484863,14.1701954 134.831597,13.0229885 C141.855281,9.579 147.507971,13.1141494 147.458417,20.9113678 C147.43954,23.4911034 146.792978,26.2034368 145.694532,28.813954 L160.131252,21.7448391 C161.886878,20.8865057 163.299165,21.7661494 163.287367,23.7184138 C163.275568,25.6647586 161.843223,27.9437816 160.082878,28.8056667 L39.3045468,87.9466092 C39.2951079,87.9525287 39.2880288,87.9572644 39.2738705,87.9655517 C39.2632518,87.9655517 39.2561727,87.9738391 39.2467338,87.9785747 L10.6635396,101.973552 C8.91027338,102.833069 7.49680576,101.945138 7.50860432,99.999977 C7.5251223,98.0453448 8.95628777,95.7686897 10.7119137,94.9103563 Z" id="Shape" fill="#E9F2FF"></path>
</g>
<g id="Group" transform="translate(286.000000, 99.000000)" fill-rule="nonzero">
<path d="M40.8528671,60.2199265 L40.0563357,58.6380441 C44.6898462,55.1919706 43.366993,51.2205882 39.3220699,44.6965147 L37.5633566,41.1992206 C41.6834685,38.2093676 40.5474126,34.76925 37.0264615,29.0921029 L22.636028,0.480044118 L6.69717483,32.8014265 C5.6645035,33.9211324 5.08648951,35.1051618 4.97723077,36.2963382 L4.93963636,36.3666176 L4.96665734,36.3666176 C4.81627972,38.2069853 5.77141259,40.0330588 7.83793007,41.5815882 L4.18304895,48.9954706 C2.98472727,50.2902794 2.31625175,51.6672794 2.1834965,53.0430882 L2.14355245,53.1276618 L2.1693986,53.1276618 C2.00257343,55.22175 3.06579021,57.3039265 5.3801958,59.0787794 L2.50422378,64.9107794 C1.20016783,66.3258971 0.468251748,67.8255882 0.324923077,69.3288529 L0.281454545,69.4181912 L0.308475524,69.4181912 C0.0735104895,72.4044706 2.12123077,75.3728824 6.51507692,77.5944265 C15.1559161,81.9588971 29.5674965,81.8016618 38.6911888,77.2156324 C47.1017622,72.9988676 45.9739301,68.4866912 40.8528671,60.2199265 Z" id="Shape" fill="#B4D38C"></path>
<path d="M40.8528671,60.2199265 L40.0563357,58.6380441 C44.6898462,55.1919706 43.366993,51.2205882 39.3220699,44.6965147 L37.5633566,41.1992206 C41.6834685,38.2093676 40.5474126,34.76925 37.0264615,29.0921029 L22.636028,0.480044118 L22.5502657,1.28766176 L26.164028,29.0921029 C29.6873287,34.76925 30.8010629,40.5488382 26.680951,43.5386912 L28.4596364,44.6965147 C32.5057343,51.2217794 34.6251189,56.7750441 29.9916084,60.2199265 C35.1126713,68.4866912 38.326993,75.5634706 29.9152448,79.7790441 C26.6492308,81.4216765 32.5633007,80.2983971 38.6923636,77.2156324 C47.1017622,72.9988676 45.9739301,68.4866912 40.8528671,60.2199265 Z" id="Shape" fill="#8AA563"></path>
</g>
<g id="Group" transform="translate(51.000000, 308.000000)" fill-rule="nonzero">
<ellipse id="Oval" fill="#050E26" cx="8.69817143" cy="39.644" rx="8.04990476" ry="3.87084211"></ellipse>
<g transform="translate(0.809524, 0.000000)" id="Shape">
<path d="M15.0777587,37.5991579 C15.8091365,35.4558947 14.7013841,32.4256842 14.2134032,30.0890526 C13.074781,24.6098947 8.36475556,1.90010526 7.62506667,0.597473684 L7.54907937,0.597473684 C6.80939048,1.91515789 2.35226032,23.1324211 1.10440635,29.8273684 C0.656793651,32.2311579 -0.294234921,35.5751579 0.286355556,37.2645263 C1.13765079,39.754 4.69480635,42.0732632 7.60013333,42.0732632 C11.5942159,42.0732632 14.4009968,39.5861053 15.0777587,37.5991579 Z" fill="#7A9B54"></path>
<path d="M14.767873,30.3171579 C13.6304381,24.8368421 8.36475556,1.90010526 7.62506667,0.597473684 L10.067346,13.178 C11.4481778,19.5672632 10.5683873,25.9449474 11.1252317,28.6173684 C11.6096508,30.9574737 13.1068381,33.3230526 12.3778349,35.4651579 C11.701073,37.4544211 8.89191746,39.9415789 4.89664762,39.9415789 C3.92662222,39.9415789 2.88417143,39.6822105 1.8939619,39.2445263 C3.3840254,40.9697895 5.95453333,42.3002105 8.15222857,42.3002105 C12.1474984,42.3002105 14.9542794,39.8130526 15.6334159,37.8261053 C16.3636063,35.684 15.2534794,32.6514737 14.767873,30.3171579 Z" fill="#466025"></path>
</g>
</g>
<g id="Group" transform="translate(72.000000, 332.000000)" fill-rule="nonzero">
<ellipse id="Oval" fill="#050E26" cx="8.64236825" cy="39.6984211" rx="8.04990476" ry="3.87084211"></ellipse>
<g transform="translate(0.809524, 0.000000)" id="Shape">
<path d="M15.0207683,37.6535789 C15.7533333,35.5091579 14.645581,32.4812632 14.1564127,30.1434737 C13.0189778,24.6631579 8.30895238,1.95452632 7.56926349,0.651894737 L7.49327619,0.651894737 C6.7535873,1.96957895 2.29645714,23.1868421 1.04741587,29.8817895 C0.600990476,32.2855789 -0.350038095,35.6295789 0.230552381,37.3189474 C1.08184762,39.8072632 4.63900317,42.1276842 7.54195556,42.1276842 C11.5372254,42.1276842 14.3440063,39.6393684 15.0207683,37.6535789 Z" fill="#8BAD60"></path>
<path d="M14.7108825,30.3704211 C13.5734476,24.8901053 8.30895238,1.95452632 7.56926349,0.651894737 L10.0127302,13.2324211 C11.3911873,19.6216842 10.5125841,25.9993684 11.0694286,28.6729474 C11.5550349,31.0130526 13.0522222,33.3786316 12.3196571,35.5207368 C11.6428952,37.5088421 8.83492698,39.9948421 4.83965714,39.9948421 C3.86963175,39.9948421 2.82836825,39.7354737 1.83815873,39.2989474 C3.32822222,41.0242105 5.89873016,42.3546316 8.0964254,42.3546316 C12.0928825,42.3546316 14.8996635,39.8674737 15.5776127,37.8805263 C16.3078032,35.7384211 15.1964889,32.7070526 14.7108825,30.3704211 Z" fill="#56722E"></path>
</g>
</g>
<g id="Group" transform="translate(34.000000, 340.000000)" fill-rule="nonzero">
<ellipse id="Oval" fill="#050E26" opacity="0.4" cx="7.98285714" cy="49.8423612" rx="7.74857143" ry="3.98595853"></ellipse>
<g id="Shape">
<path d="M14.4742857,46.5310595 C15.1794286,44.3247171 14.1108571,41.2065151 13.6422857,38.801113 C12.5462857,33.1606957 8.01371429,1.74504883 7.30057143,0.405270903 L7.22857143,0.405270903 C6.51657143,1.76173645 2.224,31.6409298 1.024,38.5317271 C0.594285714,41.0062635 -0.321142857,44.4498742 0.237714286,46.1877712 C1.056,48.7493217 4.48114286,51.1392281 7.27542857,51.1392281 C11.12,51.1392281 13.8228571,48.5776776 14.4742857,46.5310595 Z" fill="#B0D384"></path>
<path d="M14.176,39.0347398 C13.08,33.3931304 8.01371429,1.74743278 7.30057143,0.405270903 L9.65257143,21.3923438 C10.2731429,24.4700187 7.72342857,30.3893579 9.128,37.598412 C9.59542857,40.00739 8.512,40.9013699 7.80685714,43.1077124 C7.15542857,45.1543304 9.01257143,47.2402836 5.16571429,47.2402836 C4.23314286,47.2402836 2.736,48.6766114 1.784,48.2272375 C3.21714286,50.0044696 5.69257143,51.3728548 7.80685714,51.3728548 C11.6537143,51.3728548 14.3565714,48.8124963 15.0102857,46.7658783 C15.712,44.5619197 14.6434286,41.4413338 14.176,39.0347398 Z" fill="#7A9B54"></path>
</g>
</g>
<g id="Group" transform="translate(132.000000, 179.000000)" fill-rule="nonzero">
<path d="M25.792,62.5469824 C25.792,65.9563983 20.0192375,68.7149364 12.8972199,68.7149364 C5.78008211,68.7149364 0.00731964809,65.9563983 0.00731964809,62.5469824 C0.00731964809,59.1458505 5.78008211,56.3873123 12.8972199,56.3873123 C20.0180176,56.3861289 25.792,59.1458505 25.792,62.5469824 Z" id="Shape" fill="#050E26"></path>
<g id="Shape">
<path d="M24.4146862,59.2890436 C25.5882698,55.8748941 23.8083754,51.0489316 23.0276129,47.3270944 C21.2062405,38.5946822 13.6633431,2.41771489 12.4775601,0.343190073 L12.3567859,0.343190073 C11.1722229,2.44138317 4.03068622,36.2420551 2.03364223,46.9105327 C1.31631672,50.7388771 -0.204950147,56.0642403 0.72342522,58.7565073 C2.08609971,62.7233111 7.78322581,66.4202966 12.4348622,66.4202966 C18.8334545,66.4179298 23.3277185,62.4534927 24.4146862,59.2890436 Z" fill="#6A8C3E"></path>
<path d="M23.9157302,47.6868523 C22.0931378,38.9556235 14.5490205,2.77983959 13.3656774,0.702947942 L16.389912,20.3831235 C18.6004457,30.5628511 17.1926334,40.7236441 18.0844106,44.9827512 C18.8615132,48.7081386 21.2586979,52.4784958 20.0887742,55.8914619 C19.0018065,59.0594613 14.5075425,63.0227149 8.10651026,63.0227149 C6.55596481,63.0227149 4.88342522,62.60852 3.29872141,61.9126725 C5.68492669,64.6617433 9.80344868,66.7800545 13.3241994,66.7800545 C19.7227918,66.7800545 24.2207155,62.8168008 25.3052434,59.6511683 C26.4702874,56.2370188 24.6940528,51.4086895 23.9157302,47.6868523 Z" fill="#466025"></path>
</g>
</g>
<g id="Group" transform="translate(97.000000, 201.000000)" fill-rule="nonzero">
<path d="M25.4220909,62.6653238 C25.4220909,66.0747397 19.8297273,68.8332778 12.9302727,68.8332778 C6.03554545,68.8332778 0.443181818,66.0747397 0.443181818,62.6653238 C0.443181818,59.2630085 6.03554545,56.5056538 12.9302727,56.5056538 C19.8285455,56.5056538 25.4220909,59.2630085 25.4220909,62.6653238 Z" id="Shape" fill="#050E26"></path>
<g transform="translate(0.812500, 0.000000)" id="Shape">
<path d="M23.2753182,59.407385 C24.4110455,55.9920521 22.6867727,51.167273 21.9315909,47.4442524 C20.1659545,38.7118402 12.8587727,2.53487288 11.7124091,0.460348063 L11.5930455,0.460348063 C10.4455,2.55972458 3.52831818,36.3603965 1.59368182,47.0276907 C0.898772727,50.8572185 -0.576136364,56.1825817 0.324409091,58.8760321 C1.64331818,62.8404691 7.16359091,66.538638 11.6698636,66.538638 C17.8685,66.5374546 22.2211364,62.5718341 23.2753182,59.407385 Z" fill="#7A9B54"></path>
<path d="M22.7931364,47.8051937 C21.0275,39.0739649 13.7179545,2.89936441 12.5727727,0.82247276 L15.5025,20.5026483 C17.6439545,30.6823759 16.2789545,40.8431689 17.1440455,45.102276 C17.8956818,48.82648 20.2191364,52.5980206 19.0857727,56.0109867 C18.0327727,59.1789861 13.6777727,63.1422397 7.47795455,63.1422397 C5.97468182,63.1422397 4.35440909,62.7268614 2.82040909,62.0310139 C5.13086364,64.7800847 9.12186364,66.8983959 12.5314091,66.8983959 C18.7312273,66.8983959 23.0874091,62.9351423 24.1392273,59.7706931 C25.2666818,56.3553602 23.5447727,51.5293977 22.7931364,47.8051937 Z" fill="#466025"></path>
</g>
</g>
<g id="Group" transform="translate(68.000000, 232.000000)" fill-rule="nonzero">
<path d="M25.5000909,61.6924138 C25.5000909,65.0713103 19.9100909,67.8030345 13.0094545,67.8030345 C6.11472727,67.8030345 0.521181818,65.0713103 0.521181818,61.6924138 C0.521181818,58.3217241 6.11472727,55.59 13.0094545,55.59 C19.9100909,55.59 25.5000909,58.3217241 25.5000909,61.6924138 Z" id="Shape" fill="#050E26"></path>
<g transform="translate(0.812500, 0.000000)" id="Shape">
<path d="M23.3533182,58.4647586 C24.4914091,55.0823448 22.7671364,50.3012414 22.0107727,46.6128276 C20.2463182,37.9627586 12.9379545,2.12206897 11.7915909,0.0656551724 L11.6722273,0.0656551724 C10.5258636,2.14551724 3.6075,35.6308276 1.67168182,46.2001379 C0.979136364,49.994069 -0.495772727,55.2711034 0.403590909,57.9383448 C1.7225,61.8671034 7.24277273,65.5297241 11.7478636,65.5297241 C17.9476818,65.5285517 22.3003182,61.6009655 23.3533182,58.4647586 Z" fill="#B0D384"></path>
<path d="M22.8711364,46.9704138 C21.1066818,38.3203448 13.7971364,2.48082759 12.6507727,0.423241379 L15.5805,19.9216552 C17.7219545,30.0067586 16.3569545,40.0731034 17.2208636,44.2926207 C17.9736818,47.9822069 20.2959545,51.7186897 19.1625909,55.099931 C18.1107727,58.2384828 13.7557727,62.1637241 7.55477273,62.1637241 C6.05268182,62.1637241 4.43359091,61.7533793 2.89722727,61.064 C5.20886364,63.7863448 9.19868182,65.8861379 12.6094091,65.8861379 C18.8080455,65.8861379 23.1665909,61.9597241 24.2160455,58.8235172 C25.3470455,55.4422759 23.6263182,50.6588276 22.8711364,46.9704138 Z" fill="#8BAA61"></path>
</g>
</g>
<g id="Group" transform="translate(265.000000, 338.000000)" fill-rule="nonzero">
<g opacity="0.3" transform="translate(12.658915, 22.852941)" fill="#616D3C" id="Shape">
<path d="M0.261901938,23.0750882 C5.9123186,27.1107426 18.8272186,32.361 26.0917019,32.361 C32.1444519,31.9561324 45.0581686,30.7462647 51.1121019,28.7278456 C65.2387353,24.6898235 53.5355686,1.67747794 41.0241853,0.0615588235"></path>
</g>
<g id="Shape">
<path d="M38.7174833,0.167330882 C37.19335,3.21922794 29.4034667,12.0860662 29.4034667,12.0860662 C29.4034667,12.0860662 8.04903333,27.3443676 3.47308333,28.8715 C-1.10286667,30.3986324 0.42245,39.5519559 3.47308333,42.6062206 C6.52371667,45.6581176 28.04145,52.0507647 28.04145,52.0507647 L57.0212833,42.8950735 C55.49715,38.3172279 55.49715,23.0577426 55.49715,23.0577426 C47.8693833,16.9539485 38.7174833,0.167330882 38.7174833,0.167330882 Z" fill="#89756D"></path>
<path d="M3.47308333,42.6062206 L37.19335,20.0046618 C37.19335,12.3749191 38.7174833,0.167330882 38.7174833,0.167330882 L21.939,16.9539485 C21.939,16.9539485 1.57975,27.2354559 0.583383333,32.2134338 C-0.939566667,39.8419926 3.47308333,42.6062206 3.47308333,42.6062206 Z" fill="#C19B7C"></path>
<path d="M37.19335,20.0046618 C37.19335,12.3749191 38.7174833,0.167330882 38.7174833,0.167330882 L21.939,16.9539485 L37.19335,20.0046618 Z" fill="#F9E8DE"></path>
<path d="M34.71545,25.3389706 C34.71545,25.3389706 34.1415333,35.2653309 32.6162167,36.7900956 C31.0920833,38.3160441 28.04145,50.5248162 28.04145,52.0507647 C28.04145,53.5767132 23.4158,39.8739559 23.4158,39.8739559 L34.71545,25.3389706 Z" fill="#C19B7C"></path>
</g>
</g>
<g id="Group" opacity="0.2" transform="translate(178.000000, 231.000000)" fill="#285128" fill-rule="nonzero">
<path d="M0.127459459,60.8479437 C6.62317117,82.5530704 25.388036,76.283831 39.8228198,74.1128451 C61.4755856,71.2189859 80.480027,84.7240563 102.852703,83.2771268 C129.55664,81.1061408 133.647144,65.1887324 129.315883,44.207662 C125.708072,28.2914366 137.496892,14.7851831 117.04673,3.69126761 C97.4935045,-6.91757746 76.1499459,13.8209577 59.5495315,22.5013521 C45.837018,29.736 0.126279279,44.207662 0.126279279,63.0189296" id="Shape"></path>
</g>
<g id="Group" transform="translate(161.000000, 166.000000)">
<g transform="translate(15.692798, 94.237288)" id="Shape" stroke="#703D33" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.714">
<path d="M23.6830533,43.6306864 L23.6830533,11.7407881"></path>
<path d="M0.0353900975,0.216745763 L0.0353900975,32.1054661"></path>
</g>
<g transform="translate(119.146662, 42.406780)" id="Shape" stroke="#703D33" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.714">
<path d="M23.8513953,43.8792373 L23.8513953,11.989339"></path>
<path d="M0.204911853,0.464118644 L0.204911853,32.352839"></path>
</g>
<path d="M17.198057,55.5764407 C17.198057,55.5764407 20.8503151,86.5239661 21.8129257,87.4804746" id="Shape" stroke="#703D33" stroke-width="1.714" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M103.166502,13.0353729 C103.166502,13.0353729 106.81876,43.9840763 107.780191,44.9405847" id="Shape" stroke="#703D33" stroke-width="1.714" stroke-linecap="round" stroke-linejoin="round"></path>
<g transform="translate(7.435109, 35.338983)" fill-rule="nonzero" id="Shape">
<g>
<polygon fill="#77462B" points="9.51167854 64.6938983 123.204726 7.19501695 123.204726 4.97101695 114.206204 2.61508475 0.513156414 57.892322 0.513156414 60.1139661"></polygon>
<polygon fill="#EAA16E" points="9.51167854 62.4710763 123.204726 4.97101695 114.206204 0.391084746 0.513156414 57.892322"></polygon>
</g>
<g transform="translate(10.617029, 5.534350)">
<polygon fill="#77462B" points="9.16131658 64.3696928 122.855544 6.86845547 122.855544 4.64563344 113.857022 2.28852327 0.162794449 57.5657606 0.162794449 59.7885826"></polygon>
<polygon fill="#EAA16E" points="9.16131658 62.1456928 122.855544 4.64563344 113.857022 0.0657012336 0.162794449 57.5657606"></polygon>
</g>
<g transform="translate(20.876969, 10.601695)">
<polygon fill="#77462B" points="9.24708177 64.4535932 122.941309 6.95235593 122.941309 4.73071186 113.942787 2.37360169 0.24973931 57.649661 0.24973931 59.8724831"></polygon>
<polygon fill="#EAA16E" points="9.24708177 62.2295932 122.941309 4.73071186 113.942787 0.149601695 0.24973931 57.649661"></polygon>
</g>
</g>
<g fill-rule="nonzero" id="Shape">
<g transform="translate(2.359340, 11.779661)">
<polygon fill="#77462B" points="2.11833646 66.9438136 3.75217929 67.5492881 115.805486 9.58275424 115.614379 0.731516949 114.012387 0.159025424 0.324058515 57.5189068"></polygon>
<polygon fill="#E08344" points="3.72150788 67.5163051 117.409837 10.1564237 115.614379 0.731516949 1.92722993 58.0913983"></polygon>
</g>
<g>
<polygon fill="#77462B" points="2.04283758 67.1322881 3.67668042 67.7377627 115.731167 9.77122881 113.935709 0.3475 0.24737997 57.7073814"></polygon>
<polygon fill="#E08344" points="3.64364966 67.7059576 117.331979 10.3448983 115.537701 0.919991525 1.84937172 58.2810508"></polygon>
</g>
</g>
</g>
<g id="Group" transform="translate(97.000000, 305.000000)">
<g transform="translate(0.000000, 8.428357)" fill-rule="nonzero" id="Shape">
<path d="M8.06360326,8.02117029 L0.16557337,0.0508327082 C0.16557337,0.0508327082 1.64725543,3.21516879 3.09046739,7.45623406 C4.53251359,11.6996099 7.64742663,17.4621905 8.76305978,20.167877 C9.87869293,22.8747187 10.9395353,25.3262416 10.9395353,25.3262416 C10.9395353,25.3262416 11.6436549,18.4973293 10.989663,15.4277269 C10.3345054,12.3569692 10.3345054,12.3569692 10.3345054,12.3569692" fill="#B0E082"></path>
<path d="M0.16557337,0.0508327082 C0.16557337,0.0508327082 9.43686957,5.59737434 10.7833234,10.65985 C12.1321087,15.7269467 11.194837,15.8494074 10.775163,25.9396999 C10.775163,25.9396999 11.0666033,16.2133233 5.04195109,6.06988747 C4.07670109,4.44555139 0.16557337,0.0508327082 0.16557337,0.0508327082 Z" fill="#85B557"></path>
</g>
<path d="M25.7831685,9.60213053 C21.1993967,10.2779745 17.3896902,14.6230158 15.2656739,18.2090323 C17.0912554,11.0693473 19.5813207,2.94073518 18.0658315,0.0421155289 C7.18811685,4.2623856 10.9162201,25.24012 10.3519918,34.6950038 L10.8754185,34.6233758 C11.7264239,26.8066917 27.3779293,15.7205401 25.7831685,9.60213053 Z" id="Shape" fill="#85B557" fill-rule="nonzero"></path>
<g transform="translate(9.679348, 0.000000)">
<g id="SVGID_51_-link" fill="#85B557" fill-rule="nonzero">
<path d="M16.1038207,9.60213053 C11.5200489,10.2779745 8.52171196,12.444141 6.39769565,16.0301575 C8.22444293,8.88931733 9.90197283,2.94073518 8.3864837,0.0421155289 C-3.90646467,5.86130533 1.23687228,25.24012 0.672644022,34.6950038 L0.9384375,34.7227307 C1.78827717,26.9072018 17.6985815,15.7205401 16.1038207,9.60213053 Z" id="SVGID_51_"></path>
</g>
<g id="Clipped">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="SVGID_51_"></g>
<path d="M9.77257337,-2.12289572 C9.77257337,-2.12289572 5.72854891,3.14637659 4.49633967,7.39783946 C3.26413043,11.6504576 1.53297554,21.5582146 1.41173641,24.3135784 C1.29049728,27.0689422 0.673809783,34.6950038 0.673809783,34.6950038 L-0.854502717,34.1162041 C-0.854502717,34.1162041 -0.476796196,8.30474119 1.48984239,5.45579895 C3.45648098,2.60685671 9.77257337,-2.12289572 9.77257337,-2.12289572 Z" id="Shape" fill="#B0E082" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
<g id="Clipped">
<mask id="mask-4" fill="white">
<use xlink:href="#path-3"></use>
</mask>
<g id="SVGID_51_"></g>
<path d="M16.7275027,8.86967742 C16.7275027,8.86967742 12.2078478,13.4203601 10.3682772,16.1329782 C8.526375,18.8455964 4.3704375,25.3417854 3.42500543,27.4836909 C2.47957337,29.6255964 0.673809783,34.6950038 0.673809783,34.6950038 L-0.285611413,34.8729182 C-0.285611413,34.8729182 2.20911685,24.4036909 3.65582609,21.7107127 C5.1002038,19.0188897 5.17248098,17.835874 7.02021196,15.2549587 C8.86677717,12.6740435 10.0068913,11.6989797 10.0068913,11.6989797 C10.0068913,11.6989797 12.6520027,9.20702176 13.7058505,9.15387847" id="Shape" fill="#B0E082" fill-rule="nonzero" mask="url(#mask-4)"></path>
</g>
</g>
</g>
<g id="Group" transform="translate(362.000000, 204.000000)">
<g transform="translate(33.476721, 0.000000)">
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(24.227076, 17.756414) rotate(-179.329603) translate(-24.227076, -17.756414) " cx="24.2270761" cy="17.7564137" rx="2.03962441" ry="1.77604566"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(15.810171, 7.832777) rotate(-179.358250) translate(-15.810171, -7.832777) " cx="15.8101711" cy="7.83277731" rx="2.03841718" ry="1.77484909"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(6.198341, 1.847034) rotate(-179.341062) translate(-6.198341, -1.847034) " cx="6.19834132" cy="1.84703447" rx="2.03961968" ry="1.77366874"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(24.380487, 47.149680) rotate(-179.346791) translate(-24.380487, -47.149680) " cx="24.3804868" cy="47.1496803" rx="2.03961734" ry="1.7748531"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(26.488087, 25.058694) rotate(-179.329603) translate(-26.488087, -25.058694) " cx="26.4880871" cy="25.0586941" rx="2.03962441" ry="1.77604566"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(16.920576, 32.139989) rotate(-179.329603) translate(-16.920576, -32.139989) " cx="16.9205763" cy="32.1399891" rx="2.03962441" ry="1.77367285"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" transform="translate(26.236463, 37.378770) rotate(-179.312415) translate(-26.236463, -37.378770) " cx="26.236463" cy="37.3787697" rx="2.03963166" ry="1.77486556"></ellipse>
<path d="M22.197457,24.6898305 C22.197457,24.6898305 4.66163335,24.1357627 0.728118674,46.8110169" id="Shape" stroke="#F7F7F7" stroke-width="0.639"></path>
<path d="M20.6216599,18.8762712 C20.6216599,18.8762712 12.9746204,21.6276271 11.2685033,28.2372881" id="Shape" stroke="#FFFFFF" stroke-width="0.639"></path>
<path d="M13.1168965,32.9901695 C13.1168965,32.9901695 7.38998608,34.3462712 6.31633983,33.150339" id="Shape" stroke="#F7F7F7" stroke-width="0.639"></path>
<path d="M12.5609438,10.3801695 C12.5609438,10.3801695 0.600189777,21.6038983 0.0298899291,35.7972881" id="Shape" stroke="#F7F7F7" stroke-width="0.639"></path>
<path d="M22.4186425,39.9557627 C22.4186425,39.9557627 12.5549658,46.2332203 6.81490385,48.6535593" id="Shape" stroke="#F7F7F7" stroke-width="0.639"></path>
<path d="M4.46316422,4.9640678 C4.46316422,4.9640678 0.694641953,13.4411864 5.1028087,20.2371186" id="Shape" stroke="#F7F7F7" stroke-width="0.639"></path>
<path d="M20.8428454,46.089661 L14.4691169,44.5971186" id="Shape" stroke="#E8E4E7" stroke-width="0.639"></path>
</g>
<g transform="translate(0.000000, 15.423729)">
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" cx="4.82662576" cy="2.26966102" rx="1.78861336" ry="1.77491525"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" cx="2.3218497" cy="9.72288136" rx="1.78861336" ry="1.77491525"></ellipse>
<ellipse id="Oval" fill="#FF7A71" fill-rule="nonzero" cx="11.2649165" cy="17.8879661" rx="1.78861336" ry="1.77491525"></ellipse>
<path d="M6.61404352,9.01457627 C6.61404352,9.01457627 21.9954011,8.65864407 25.2151442,31.3777966" id="Shape" stroke="#F4F4F4" stroke-width="0.5984" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M13.5891574,16.2898305 C13.5891574,16.2898305 16.9882401,14.3369492 19.8493041,16.8213559" id="Shape" stroke="#F4F4F4" stroke-width="0.5984" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M8.04517333,3.51186441 C8.04517333,3.51186441 14.3029289,6.88372881 15.3777707,11.8537288" id="Shape" stroke="#F4F4F4" stroke-width="0.5984" stroke-linecap="round" stroke-linejoin="round"></path>
</g>
</g>
<g id="Group" transform="translate(222.000000, 148.000000)">
<g id="Shape">
<path d="M43.2711781,33.4327532 C43.2711781,33.4327532 48.3088356,49.3287967 49.3683288,51.9356155 C50.4290137,54.5412532 54.3070685,64.5090575 54.3070685,64.5090575 L49.3361507,65.7799851 C49.3361507,65.7799851 44.5964384,59.7525285 42.7432192,56.6271807 C41.4286849,54.4148691 36.5113973,42.2938112 36.5113973,42.2938112" fill="#FFC0B6" fill-rule="nonzero"></path>
<path d="M44.1995753,37.3081372 L39.8245479,47.6350141 C38.9295205,46.2672314 36.4434658,42.1627025 36.4434658,42.1627025" fill="#DD705E" fill-rule="nonzero"></path>
<g transform="translate(36.945205, 133.471014)" fill-rule="nonzero">
<path d="M0.698383562,4.0195213 C2.60880822,8.12759376 1.55884932,10.8064633 5.11035616,13.9719706 C8.85731507,17.3063836 9.29469863,20.6915865 12.6936575,21.3553981 C14.7232603,15.6704778 8.72979452,9.17410101 6.62749315,0.0201155029" fill="#FFC0B6"></path>
<g transform="translate(2.383562, 7.444884)">
<path d="M13.2597534,12.4151667 C15.9496027,16.5775725 13.8175068,19.1501377 11.3636301,19.4572391 C8.25784932,19.8446594 4.3809863,17.8307826 3.72193151,15.9291159 C3.04380822,13.9731159 2.93416438,13.7794058 2.48247945,12.8533768 C2.01172603,11.8836449 0.815178082,10.7013043 0.50769863,9.35360145 C0.106068493,7.59485507 0.104876712,6.90387681 0.104876712,6.90387681 L0.0989178082,2.60681884 C0.0989178082,2.60681884 0.777041096,3.56828261 1.68279452,2.83005797 C2.98421918,1.77055797 4.57047945,-0.581130435 6.70257534,0.309463768 C10.0383699,1.70323188 9.75710959,6.99364493 13.2597534,12.4151667 Z" fill="#000000"></path>
<path d="M0.23239726,7.83935507 C0.287219178,8.12755797 0.355150685,8.45710145 0.442150685,8.84334058 C0.750821918,10.1910435 1.4229863,11.2871594 2.08680822,12.2013768 C2.69342466,13.0364565 2.97826027,13.4652174 3.65519178,15.4223986 C4.31424658,17.3217029 8.19230137,19.3367609 11.2968904,18.9481594 C12.990411,18.737913 14.365726,17.6028188 14.5111233,15.507442 C15.4562055,18.5241232 13.561274,20.2167246 11.494726,20.4765797 C6.35576712,21.115587 4.42389041,18.5949928 3.8530274,16.9472754 C3.17371233,14.9924565 3.0140137,14.8235507 2.71487671,13.8455507 C2.41573973,12.8651884 0.902178082,11.4808696 0.593506849,10.1319855 C0.191876712,8.37323913 0.235972603,7.92203623 0.235972603,7.92203623 L0.23239726,7.83935507 Z" fill="#FFFFFF"></path>
<path d="M13.860411,17.8662174 C13.860411,17.8662174 12.9463151,16.1724348 10.7844247,16.1901522 C8.71430137,16.2078696 7.20312329,18.6989348 7.20312329,18.6989348 C7.20312329,18.6989348 9.70467123,19.9710435 10.9095616,19.8210362" fill="#FFFFFF"></path>
</g>
</g>
<g transform="translate(63.164384, 118.473869)" fill-rule="nonzero">
<path d="M1.2740137,4.47423188 C3.18563014,8.58112319 0.611383562,10.4012899 4.16408219,13.5644348 C7.9110411,16.9012101 12.5077397,19.4607826 15.910274,20.123413 C17.9410685,14.4384928 7.34375342,9.36186957 7.84191781,0.663811594" fill="#FFC0B6"></path>
<path d="M1.80793151,8.84215942 C1.80793151,8.84215942 -1.12146575,14.0534348 3.30480822,15.9173043 C9.78094521,18.6469638 12.033411,21.8042029 15.621863,22.5034493 C21.0075205,23.5535 23.4006164,21.0848768 22.7594384,19.5505507 C21.4866164,16.5067029 14.5242329,13.4002536 11.7581096,8.1559058 C8.95861644,2.84895652 7.99446575,8.98744203 7.00171233,9.91465217 C3.88639726,12.825029 1.80793151,8.84215942 1.80793151,8.84215942 Z" fill="#000000"></path>
<path d="M0.937931507,13.1699275 C1.21442466,14.1113116 1.63989041,15.0715942 5.57991781,16.5905652 C10.0622055,18.3162391 12.0572466,21.6978986 15.621863,22.5046304 C20.5272329,23.612558 22.0848904,20.8226594 22.7153425,19.3946377 C22.7522877,19.4383406 22.8309452,19.6202391 22.8643151,19.663942 C23.9071233,20.967942 21.6046027,24.8787609 15.4109178,23.635 C11.8248493,22.9168551 8.98841096,18.8229565 2.92343836,17.4941522 C0.0726986301,16.8693188 0.927205479,14.1680072 0.937931507,13.1699275 Z" fill="#FFFFFF"></path>
<path d="M23.0454658,20.2427101 C23.0454658,20.2427101 21.1255068,18.3871087 20.0612466,19.4241667 C18.9969863,20.4624058 18.3403151,22.7184203 18.3403151,22.7184203 C18.3403151,22.7184203 20.5987397,22.6451884 20.8573562,22.523529" fill="#FFFFFF"></path>
</g>
<path d="M45.2602603,65.6819488 C40.1582466,58.4414416 39.4038493,35.9391735 37.4147671,35.8411372 C33.1672603,35.6332532 23.9798219,35.802159 19.7311233,37.1451372 C15.2464521,38.7916735 4.34761644,46.3947967 2.48486301,51.2458184 C1.67326027,53.5195503 6.99694521,59.1028909 8.12436986,61.4073329 C10.3756438,66.0150358 12.1216027,75.3650938 14.142863,78.1916083" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M12.566137,74.7957749 C13.0488082,82.5902459 13.098863,85.0009923 19.1137808,92.5580503 C24.495863,99.3178256 29.6836849,103.370384 30.6776301,110.573094 C32.0672466,120.629485 37.2550685,138.377587 37.7067534,138.703587 C38.7221507,139.437087 46.5581096,137.968905 45.713137,135.80384 C44.6739041,133.14505 44.9694658,114.095311 43.2699863,103.145963 C42.7396438,99.7300503 36.9463973,85.7415793 36.9082603,84.6643619 C36.8546301,83.1772822 39.0832603,83.3072097 39.0832603,83.3072097 C40.2500137,84.0099996 59.3161233,94.7089416 59.1754932,97.0547242 C58.7106986,104.872818 63.2525753,120.801934 64.6421918,123.831608 C65.2690685,125.194666 72.7141233,124.826144 72.0002466,121.487007 C70.383,113.947666 71.3030548,91.7182459 68.5202466,87.8676662 C63.1524658,80.441717 46.7011233,66.3363112 46.7011233,66.3363112 C46.7011233,66.3363112 35.941726,73.1846735 31.1412329,73.9914054 C15.1368082,76.6773619 12.566137,74.7957749 12.566137,74.7957749 Z" fill="#F26D5B" fill-rule="nonzero"></path>
<path d="M24.9296712,74.3800068 C30.6847808,79.7271155 27.6397808,81.8532025 29.1473836,81.8520213 C32.4641096,81.8461155 36.8689315,85.1982459 38.0035068,88.0613764 C38.2073014,88.5787242 36.599589,84.9974488 38.1632055,84.2604054 C39.7256301,83.5221807 43.2521096,86.4703546 45.9550685,87.0845575 C45.9550685,87.0845575 42.4047534,80.3814778 46.9323288,76.9218619 C51.4587123,73.4587025 53.3441096,74.0882604 53.3441096,74.0882604 C47.5306027,70.2754778 47.0717671,66.5831735 47.0717671,66.5831735 L24.9296712,74.3800068 Z" fill="#D85648" fill-rule="nonzero"></path>
<g transform="translate(15.129941, 61.778217)" fill-rule="nonzero">
<path d="M16.1817162,23.3668768 C17.0183464,23.7708333 18.6451272,23.6468116 19.8166477,23.0881232 L45.083593,10.0587536 C46.2539217,9.5036087 46.3004012,9.16343478 45.463771,8.75947826 L30.6999902,1.65362319 C29.8621683,1.24966667 29.3926067,0.85515942 28.2234697,1.41148551 L1.00081213,13.6766449 C-0.171900196,14.2341522 0.030702544,15.559413 0.868524462,15.9645507 L16.1817162,23.3668768 Z" fill="#2D3B54"></path>
<path d="M16.0947162,22.5105362 C16.906319,22.9026812 18.483045,22.7822029 19.6164286,22.2412319 L45.5424286,9.82724638 C46.6758121,9.28745652 46.6317162,8.50671014 45.8201135,8.11574638 L31.2875382,0.965007246 C30.4747436,0.574043478 28.4153464,0.291746377 27.2795793,0.831536232 L1.35596282,13.2443406 C0.222579256,13.7853116 -0.0658317025,14.6841739 0.745771037,15.0763188 L16.0947162,22.5105362 Z" fill="#FFFFFF"></path>
<path d="M17.2042642,21.212442 C17.6630998,21.4333188 18.5509765,21.3648116 19.1921546,21.0600725 L33.8164971,14.0569783 C34.4564834,13.7534203 34.6018806,13.3258406 34.1442368,13.1037826 L25.7743601,9.05831159 C25.3167162,8.83625362 24.4276477,8.90357971 23.7888532,9.2095 L9.16451076,16.2102319 C8.52452446,16.5173333 8.37793542,16.9437319 8.83438748,17.1634275 L17.2042642,21.212442 Z" fill="#2D3B54"></path>
</g>
<path d="M27.3358767,74.7060068 C27.2166986,74.7213619 26.6672877,74.7060068 25.8246986,74.6741155 C23.8785205,74.6020648 20.368726,74.4508764 17.0269726,74.4059923 C14.5444932,74.3752822 7.35924658,72.9850575 5.11393151,72.7228401 C3.99365753,72.5905503 2.77565753,65.282717 2.12375342,60.4683112 C1.52786301,56.0696735 0.659054795,48.40513 2.32158904,46.2979416 C3.306,45.360101 11.3576712,43.2434633 11.8653699,44.7352677 C13.1989726,48.642543 12.5125068,64.7393836 12.615,65.5402097 C12.615,65.5402097 23.8606438,70.2494923 29.2975479,69.572688 C31.0649589,69.3518112 34.8035753,68.3442822 34.8035753,68.3442822 C34.8035753,68.3442822 35.6449726,73.8071445 34.1671644,74.1272387 C32.6893562,74.4473329 28.285726,74.5878909 27.3358767,74.7060068 Z" fill="#FFC0B6" fill-rule="nonzero"></path>
<path d="M1.79363014,57.8969271 C0.996328767,51.9344343 1.55050685,47.6350141 1.79363014,47.2428691 C1.12265753,48.3295358 12.392137,54.0321735 12.4195479,54.117217 L1.79363014,57.8969271 Z" fill="#DD705E" fill-rule="nonzero"></path>
<path d="M13.9438356,54.3451807 C9.57,54.7349633 0.622109589,53.9731155 0.731753425,51.9663256 C0.871191781,49.4150213 1.22038356,41.4433764 2.03317808,39.1696445 C3.89593151,34.3209851 14.7935753,26.7154996 19.2794384,25.0689633 C23.5269452,23.7248039 31.0435068,25.4174054 33.7273973,25.8083691 C41.8207808,26.9871662 43.8682603,32.453572 45.6571233,35.7749923 C45.6571233,35.7749923 41.7814521,41.9323764 38.6983151,42.4213764 C38.008274,42.5312242 39.1678767,49.0524054 39.1952877,50.3363256 C39.2226986,51.6249706 40.3882603,54.9310358 40.3882603,54.9310358" fill="#FFFFFF" fill-rule="nonzero"></path>
<g transform="translate(32.178082, 50.789855)">
<path d="M0.734136986,33.9749054 C0.675739726,34.7485648 1.22276712,35.0745648 1.95690411,34.6954126 L28.487137,21.2620865 C29.2224658,20.8864778 29.8696027,19.9509996 29.9291918,19.1749778 L31.3295342,0.900079271 C31.3879315,0.122876372 30.8397123,-0.200761309 30.1043836,0.177209706 L3.57534247,13.611717 C2.83882192,13.9885068 2.19406849,14.9228039 2.13447945,15.7000068 L0.734136986,33.9749054 Z" fill="#629AF4" fill-rule="nonzero"></path>
<path d="M0.636410959,33.9760865 L2.03794521,15.6988256 C2.09872603,14.9239851 2.74347945,13.9885068 3.47880822,13.6105358 L30.0090411,0.178390865 C30.5155479,-0.0814642073 30.9314795,-0.0105946421 31.1257397,0.31186188 C30.9302877,0.284695213 30.6978904,0.327216952 30.4404658,0.460687967 L3.91023288,13.8916517 C3.17609589,14.2684416 2.5289589,15.205101 2.47056164,15.9823039 L1.0690274,34.2560213 C1.04876712,34.4993401 1.09286301,34.6965938 1.17867123,34.8442387 C0.819945205,34.7899054 0.601849315,34.4792604 0.636410959,33.9760865 Z" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M15.9996575,18.2241445 C15.9936986,19.0769416 16.7254521,19.4371952 17.6347808,19.0332387 C18.5429178,18.628101 19.2806301,17.6087604 19.2842055,16.7559633 C19.286589,15.9055285 18.5572192,15.5440938 17.6478904,15.9468691 C16.7397534,16.353188 16.0020411,17.3713474 15.9996575,18.2241445 Z" stroke="#FFFFFF" stroke-width="0.2128" stroke-linecap="round" stroke-linejoin="round"></path>
</g>
<g transform="translate(14.301370, 0.000000)" fill-rule="nonzero">
<path d="M16.5204658,6.38065898 C14.5218493,2.50527492 4.71945205,7.75789087 2.6660137,10.3540793 C0.0119178082,14.0014996 3.05453425,22.9865793 7.32468493,25.3524416 C17.1938219,30.9617677 17.7384658,9.40678942 17.9839726,4.56167347" fill="#FFC0B6"></path>
<path d="M12.169274,29.8148619 C12.4850959,33.5331517 3.61109589,35.3367822 1.99146575,31.2617822 C1.08809589,28.9845068 1.7459589,28.51913 2.0260274,23.0031155 C2.06773973,22.1503184 2.22147945,18.2265068 2.61476712,17.6808112 C4.90894521,14.50113 9.94064384,17.1008619 11.6139041,20.6171735 C12.9641918,23.4519561 13.2251918,20.9821517 12.566137,24.9284054 C12.566137,24.9295865 11.9702466,27.4702604 12.169274,29.8148619 Z" fill="#FFC0B6"></path>
<path d="M12.6293014,25.4327604 C12.6293014,25.4327604 10.1503973,27.3793112 7.93726027,25.9678256 C5.98393151,24.7240648 4.76593151,22.6204199 4.76593151,22.6204199 C4.76593151,22.6204199 5.1890137,26.911572 8.14582192,28.1364343 C11.1026301,29.3612967 12.6293014,25.4327604 12.6293014,25.4327604 Z" fill="#DD705E"></path>
<path d="M16.1450548,2.90686913 C12.4052466,2.7474126 7.79424658,-2.8264787 3.85183562,2.25723144 C1.18820548,5.69086188 10.6366438,8.71344884 13.6887945,8.05318072" fill="#000000"></path>
<path d="M10.3124795,10.7261445 C16.0783151,9.84618072 18.7622055,10.8879633 20.1208356,8.64021695 C23.0752603,3.75376043 15.263137,1.27568797 12.6900822,3.30846333" fill="#000000"></path>
<path d="M11.5721918,9.29221695 C7.95990411,10.1958039 6.48924658,14.0487459 5.01143836,16.1334923 C1.76621918,9.76940536 3.06287671,2.53480391 11.3457534,1.59223869" fill="#000000"></path>
<path d="M6.54049315,10.5619633 C2.92939726,11.4643691 1.8889726,14.6464126 2.20121918,17.3807967 C-1.04280822,11.0155285 0.140630137,0.595340141 5.60613699,2.06115898" fill="#000000"></path>
</g>
</g>
<path d="M21.5628904,40.0496083 C21.9073151,39.6291155 22.3184795,39.2830358 22.7737397,39.0562532 C23.5710411,38.654659 24.3242466,38.7160793 24.8617397,39.136572 C25.2729041,38.240072 25.9414932,37.4640503 26.7423699,37.0624561 C27.1916712,36.8368546 27.627863,36.7612604 28.0223425,36.8085068 C28.8673151,36.9171735 29.5013425,37.6223256 29.6133699,38.7467894 C29.6467397,39.0668836 29.6312466,39.3964271 29.5776164,39.7247894 C29.3630959,42.240659 26.4730274,47.2877532 26.4730274,47.2877532 C26.4730274,47.2877532 21.3805479,46.2447894 20.7083836,44.1730358 C20.5975479,43.9273546 20.5224658,43.6426952 20.4902877,43.3214199 C20.3782603,42.1993184 20.8180274,40.9567387 21.5628904,40.0496083 Z" id="Shape" fill="#FF7373" fill-rule="nonzero"></path>
<g transform="translate(22.280626, 47.604304)" fill="#2D3B54" fill-rule="nonzero" id="Shape">
<path d="M2.45597652,5.94005072 C2.22000391,5.9495 1.96853816,6.031 1.68489432,6.19636232 C1.23320939,6.50582609 0.847072407,6.98183333 0.547935421,7.58894928 C0.232113503,8.23386232 0.0747984344,8.96263768 0.0759902153,9.80952899 C0.142729941,10.5631087 0.336990215,11.1631377 0.652812133,11.5966232 C0.962675147,12.0159348 1.32020939,12.2876014 1.71230528,12.3962681 C2.08175734,12.5025725 2.47623679,12.6242319 2.89336008,12.765971 C3.27353816,12.8923551 3.51904501,13.2490652 3.644182,13.8337391 C3.72879843,14.3924275 3.67397652,14.7703986 3.61081213,14.9062319 C3.47971624,15.1767174 3.19964775,15.477913 2.89097652,15.707058 C2.57992172,15.8877754 2.01501761,15.9657319 1.05563405,15.2948333 C0.885209393,15.2440435 0.714784736,15.3361739 0.543168297,15.5688623 C0.454976517,15.6917029 0.296469667,15.9539203 0.223771037,16.3425217 C0.182058708,16.5574928 0.178483366,16.7452971 0.214236791,16.9023913 C0.24164775,17.0335 0.297661448,17.1386232 0.397771037,17.2342971 C0.864949119,17.5803768 1.26538748,17.7717246 1.61934638,17.8248768 C1.98999022,17.878029 2.40353816,17.7658188 2.87905871,17.4811594 C3.34504501,17.1575217 3.70138748,16.8197101 3.96834638,16.4511884 C4.06368885,16.3212609 4.14830528,16.1830652 4.22457926,16.0413261 C4.4891546,15.5357899 4.67626419,15.0125362 4.77994912,14.4869203 C4.87886693,13.9872899 4.8931683,13.4805725 4.81808611,12.9195217 C4.69056556,12.202558 4.49868885,11.6875725 4.24841487,11.3970072 C4.00529159,11.1147101 3.7121135,10.9115507 3.36888063,10.7934348 C3.04233268,10.6824058 2.70386693,10.5749203 2.35229159,10.4757029 C2.02931898,10.3835725 1.75759295,10.194587 1.54903131,9.9111087 C1.34881213,9.64298551 1.23797652,9.30044928 1.2200998,8.91657246 C1.2141409,8.53978261 1.26777104,8.33189855 1.33570254,8.25866667 C1.6241135,7.97282609 1.86366145,7.84053623 2.07579843,7.8617971 C2.3201135,7.88542029 2.59303131,8.00707971 2.87429159,8.22441304 C3.06736008,8.39095652 3.296182,8.11928986 3.38675734,7.99644928 L3.38675734,7.99526812 C3.47733268,7.87242754 3.55956556,7.71651449 3.61677104,7.56650725 C3.69304501,7.38933333 3.80745597,7.04443478 3.73952446,6.73497101 C3.71926419,6.64047826 3.68351076,6.55543478 3.59651076,6.44558696 C3.05782583,6.09123913 2.69433268,5.92942029 2.45597652,5.94005072 Z"></path>
<path d="M6.94899022,2.42492029 C6.3530998,2.83478261 5.83229159,3.586 5.45568885,4.58762319 C5.10292172,5.51955797 4.9241546,6.6511087 4.90151076,8.04723913 C4.88125049,9.18115217 4.97897652,10.239471 5.19230528,11.1973913 C5.4830998,12.5025725 5.90141487,13.3872609 6.4341409,13.825471 C6.98831898,14.2825797 7.6211546,14.2731304 8.32192172,13.7912174 C8.55074364,13.6258551 8.76883953,13.4108841 8.97144227,13.1522101 C9.14901761,13.454587 9.3671135,13.6884565 9.61500391,13.847913 C9.78185323,13.9825652 9.93678474,13.9943768 10.1012505,13.8798043 C10.1822916,13.8242899 10.2609491,13.743971 10.3372231,13.6364855 C10.4254149,13.5148261 10.5052642,13.366 10.5874971,13.1616594 C10.6971409,12.8687319 10.8353875,12.3313043 10.517182,11.9852246 C10.2478395,11.8647464 10.0297436,11.6745797 9.86408611,11.4135435 C10.1381957,10.5572029 10.2895519,9.57093478 10.3181546,8.41457971 C10.3503327,7.15546377 10.2502231,5.99556522 10.0214012,4.9715 C9.73894912,3.70765942 9.32420939,2.8465942 8.79148337,2.41547101 C8.23849706,1.96072464 7.61996282,1.96544928 6.94899022,2.42492029 Z M7.99060665,10.1508841 C7.86189432,10.3316014 7.75105871,10.5690145 7.68431898,10.817058 L7.64737378,11.0379348 C7.62353816,11.4229928 7.72245597,11.7147391 7.9381683,11.906087 L8.02755186,11.9320725 C8.13362035,11.9190797 8.23134638,11.9556957 8.32192172,12.0336522 C7.91790802,12.2816957 7.5341546,12.2533478 7.17662035,11.9438841 C6.77737378,11.5989855 6.45797652,10.8961957 6.22677104,9.85441304 C6.05634638,9.09256522 5.97530528,8.25394203 5.98245597,7.36098551 C5.98960665,6.14557246 6.14572994,5.45813768 6.27563405,5.09197826 C6.35905871,4.8581087 6.45201761,4.67148551 6.55689432,4.5262029 C6.64746967,4.401 6.75592172,4.29587681 6.87748337,4.21083333 C7.28030528,3.93680435 7.67478474,3.95688406 8.04781213,4.2817029 C8.44467515,4.62187681 8.7581135,5.30222464 8.97859295,6.29912319 C9.16451076,7.12593478 9.2491272,8.05196377 9.23601761,9.05122464 C9.22886693,9.50951449 9.20145597,9.88866667 9.15974364,10.2016739 C8.98693542,9.99497101 8.8081683,9.87331159 8.61986693,9.8296087 C8.53763405,9.8118913 8.28140117,9.75047101 7.99060665,10.1508841 Z"></path>
<path d="M15.0435656,8.07794928 L14.9565656,8.13346377 C14.2653327,8.70750725 13.5669491,9.22839855 12.8363875,9.71976087 L12.0057162,0.605934783 C11.9330176,0.153550725 11.7101546,0.138195652 11.5361546,0.20315942 L11.4646477,0.2445 C11.3716888,0.311826087 11.2834971,0.401594203 11.202456,0.511442029 C11.0153464,0.770115942 10.8175108,1.23076812 10.8735245,1.65598551 L11.7554423,10.9564348 C11.762593,10.9942319 11.7685519,11.0343913 11.7792779,11.0757319 C11.8186067,11.2564493 11.8972642,11.4111812 12.0259765,11.5529203 C12.1928258,11.7182826 12.3894697,11.7277319 12.6230587,11.5753623 C13.4298943,11.0072246 14.2426888,10.3942029 15.041182,9.7481087 L15.1162642,9.68668841 L15.1889628,9.5792029 C15.3069491,9.41147826 15.5619902,8.965 15.4320861,8.39331884 C15.3427025,8.10747826 15.2187573,8.00471739 15.0435656,8.07794928 Z"></path>
</g>
<path d="M28.5526849,15.8405648 C28.5526849,15.8405648 29.3476027,18.7722025 29.1485753,19.7502025 C28.9507397,20.7270213 26.5063973,20.0301372 26.5063973,20.0301372 L28.5526849,15.8405648 Z" id="Shape" fill="#EF9D97" fill-rule="nonzero"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 70 KiB

Some files were not shown because too many files have changed in this diff Show More