0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-24 09:14:46 +01:00
Commit Graph

42 Commits

Author SHA1 Message Date
Michael Matloka
8a629179a9
Organizations – models (#1674)
* Update only models

* Bring in line with master and use uuid1_macless

* Update models and annotation scope support

* Delete test_team_model.py

* Update user creation, team retrieval and fix tests

* Make fixes

* Rename migration

* Fix migrating from master

* Bring back previous company_name max_length

* Use get_price_id()

* Temporarily disable team member deletion

* Update user joining and leaving, and billing

* Improve first_name handling

* Update warning

* Update TestTeamUser

* Fix migration

* Update 0085_org_models.py

* Improve bootstrapping

* Move multitenancy price tests to posthog-production

* Update team_user.py

* Update setup_review.py

* Enhance opt_slash_path

* Update team.py

* Fix default test email

* Fix typing
2020-09-24 00:53:51 +02:00
James Greenhill
97a665d277
Leverage Postgres for Persons and reorder order by's on clickhouse" (#1681)
* Query optimizations

* more sql optimizations

* checkpoint

* fix migration

* add UUID field to person

* use django signals to signal that clickhouse needs to be updated

* cleanup person logic

* cleanups

* update migration

* Don't setup the django signals unless we are for sure using ee setup

* expecting back to 30 queries for capturing with new person

* add .venv to .gitignore

* add env back to .gitignore

Co-authored-by: Ubuntu <ubuntu@ip-172-31-73-18.ec2.internal>
2020-09-22 13:41:08 +01:00
Paolo D'Amico
1da7f43ef3
Improvements to PH user metrics (#1508)
* feat: first event ingested event & team_setup_complete property

* fix: typechecking

* refactor: optimization - reduce number of queries

* add `first_team_user` to `user signed up` event
2020-09-01 15:37:03 +02:00
Michael Matloka
c040601f49
Personal API keys and Zapier integration (#1281)
* Add missing migration

* Add generate_random_token() model util

* Move PublicTokenAuthentication to utils

* Make use of generate_random_token

* Add User.personal_access_token field

* Add PersonalAccessTokenAuthentication

* Fix PublicTokenAuthentication

* Fix migration and auth import

* Add personal_access_token to user API

* Update Setup.js

* Support trailing slash in API

* Improve PAT auth quality

* Add django-rest-hooks requirement

* Update settings.py for rest_hooks

* Fix django-rest-hooks requirement

* Bring back API routes with no double trailing slash

* Rename posthog.api.team to team_user

* Add API TODO

* Ad PAT auth with X-PAT HTTP header

* Replace User.personal_access_token with PersonalAPIKey model

* Fix PersonalAPIKey max_lengths

* Describe posthog.models.utils.generate_random_token better

* Add personal_api_key to API

* Add authenticate_header to PersonalAPIKeyAuthentication

* Add hook API endpoint

* Use django.utils.timezone in place of datetime.datetime

* Add Personal API Keys to Setup

* Sort personal_api_keys in ORM

* Add Action.on_perform()

* Remove requirements.txt comment

* Add a

* Add REST hook tasks

* Optimize PersonalAPIKeyAuthentication query

* Add a trailing slash version of /e endpoint

* Add team field to PersonalAPIKey model

* Add personal API key support to capture endpoint, get_cached_from_token

* Reject personal API keys from inactive users

* Add extra_properties_json field to /capture

* Improve PAK auth header regex

* Use custom hook model

* Deliver hooks

* Handle action.on_perform

* Consolidate userLogic in userLogic.tsx

* Update PersonalAPIKeys.js

* Make PersonalAPIKey foreign keys read-only

* Update requirements/dev.txt

* Make PersonalAPIKeys TSX

* Fix conflict

* Fix migration

* Fix minor mishaps

* Update and fix tests

* Use CharField of random 32 bits as hook.id

* Fix conflicting migrations

* Fix ValidationError in HookSerializer.validate_event

* Use query param in /api/event/actions ID filtering

* Rename endpoint `hook` to `hooks`

* Satisfy mypy

* Add tests

* Use DRF serialization in action_defined and annotation_created triggers

* Update migration leafs

* Make mypy ignore rest_hooks

* Update Django signal receiver names

* Update TS dependencies

* Revert "Update TS dependencies"

This reverts commit 7fc26fefcd.

* Add field user to Hook model

* Update migration leafs

* Fix circular import

* Fix some code

* Install git before running pip install in Dockerfiles

* Improve personal API keys UI

* Satisfy mypy

* Reword key label placeholder

* Add personal API key support to /api/user/*

Unfortunately these endpoints are still limited by CSRF protections at the moment, so not accessible outside PostHog itself.

* Improve PersonalAPIKeyAuthentication and add CsrfOrKeyViewMiddleware

* Run collectstatic before test

* Don't install dev dependencies in CI

* Update dependency installation order in CI

* Fix bug and describe PersonalAPIKeyAuthentication

* Fix CI issues

* Fix typing issues

* Fix more typing issues

* Use /api/personal_api_keys to list keys

* Move REST hooks (and therefore Zapier) to ee/

* Refactor personal API logic with kea-loaders

* Add "More about API authentication in PostHog docs."

* Update PersonalAPIKeys.tsx

* Use TestMixin

* Fix "Authentication" that should've been "Authorization"

* Add option to skip self.client.force_login in API tests

* Include team_id and user_id in personal API key serialization

* Update test_hooks.py

* Add personal API key tests

* Remove leftover

* Make ee.settings override posthog.settings

* Don't directly import from models

* Remove unused imports

* Fix mypy issues

* Fix HOOK_DELIVERER

* Use decorator for /api/user PAK auth

* Don't fire REST hook if user doesn't have "zapier" feature

* Import Optional

* Reword to "premium Zapier"

* Make mypy happy

* Fix test_delete_personal_api_key

* Fix misclick

* Fix and test /capture with personal API key

* Make mypy happy

* Remove extra_properties_json

* Resolve migrations

* Remove apt-utils

* Optimize and test PAK user.is_active filtering

* Replace DEBUG true with 1

* Remove unused instance_id

* Improve typing

* Fix deletion toast

* Refactor CopyToClipboard and use it in PAKs

* Use toast.success

* Update migrations

* Fix migration

* Fix migrations

* Complete merge

Co-authored-by: Tim Glaser <tim@glsr.nl>
2020-08-26 10:34:57 +02:00
Yakko Majuri
ba4a752646
Close #1292: Added tabs for distinguishing between different users (#1382)
* #1292: Added tabs for switching between user types in People

* updated fetchPeople implementation

* refactored and fixed pagination

* fixed search query across tabs issue

* updated api query param for person

* added tests

* added tests & fixed queries

* added cypress tests

* Improve code style

* Improve regex and add compatilibity with demo data

* Improve variable naming

* Switched user identifying mechanism

* made it demo friendly

* Improved method for identifying users, added tests

* fixing minor mistakes

* made cypress test more robust

* cypress test update

* fixed migrations conflict

* updated cypress tests

* Optimize process_event conditions

* Update comment

* Make _set_is_identified more versatile

* Update demo.py

* Rename queryset_anonymous_pass

* Improve rudimental identification detection

* User kea-router for All Users category tab

* Optimize People

* Make category play well with cohort in People

* Simplify way of filtering by identification

* Remove need for deep copy

* Check location in People tabs E2E test

* Update test_process_event.py

* Black test_process_event.py

* Fix test_set_is_identified

* Try E2E test with cy.wait(200)

* Try E2E with more waiting

* Don't check location in E2E test

* Add test_category_param

* Update migration

Co-authored-by: Twixes <dev@twixes.com>
2020-08-25 01:58:12 +02:00
Eric Duong
b172eee920
Insight history (#1379)
* add insight history

* add table

* edit format

* links working

* add modal

* add tab switch

* saving insights

* remove insights model

* no model for insight history

* initial working

* remove wrong typegen

* made the history per user

* missing param

* added funnel support

* add details

* add delete saved insight functionality

* add line break logic and funnel name

* fix reload logic

* fix rendering error

* add pagination component

* fix bugs

* add backend tests

* add insight-history-panel check

* add drawer and replace table

* add loading next

* add date

* add callback

* update test

* use table

* fix spacing

* fix rows

* adjust spacing

* fix spacing and styling

* fix spacing and styling

* .

* add missing package

* Funnel refactor (#1381)

* main funnel-insight page working

* consolidated funnels

* refactor funnel dashboard item

* dashboard modals working

* update demo creation

* updated migration

* fix frontend for funnels

* remove funnel code and fix bugs

* fix test and remove caching temp

* remove old tests

* fix types

* added panel for past funnels

* implement polling for funnel refactor

* .

* fix dashbaord item bug

* add params

* fix params

* clean up caching functionality

* fix types

* caching working properly

* fix dashboard update bug

* fix migrations

* fix check

* update caching to work properly

* Fix default

* fix api and styling for insight history

* more spacing

* update funnel automatically

* update tests

* fix clear condition

* merge insight history

* return save functionality

* remove file

* added extra save functionality
2020-08-24 17:02:13 -04:00
Michael Matloka
dcc61e364c
Migrate cohortpeople_id to BigAutoField (#1478) 2020-08-21 18:18:28 +02:00
Tim Glaser
b85415c8d3
Move to bigints (#1471)
* Move to bigints everywhere

* Move only cohortpeople to bigint
2020-08-19 14:54:23 +02:00
Tim Glaser
23f5918477
Add enterprise edition and licensing (#1390)
* Add enterprise edition and licensing

* Cypress test

* License wording change

* Fix typos
2020-08-14 11:23:55 +02:00
Max Ungless
d14b0404ae
Enhancement (#1156) Adding more slack context via tokenisation (#1219)
* Added ability to customise Slack/Teams messages with additional context

* Refactor slightly and improve UX

* Reword Setup #webhooks description

* Update test_user.py

* Improve Edit action webhook configuration UI

* Refactor webhooks to be more universal

* Change tasks.slack to tasks.webhooks

* Make message format input clearer

* Make post_event_to_webhook more resilient with retries

* Minor fixes

Co-authored-by: Twixes <dev@twixes.com>
2020-08-11 10:53:35 +02:00
Eric Duong
249ec347c3
Revert "Insight history (#1303)" (#1363)
This reverts commit 4166e96364.
2020-08-05 17:00:56 +02:00
Eric Duong
4166e96364
Insight history (#1303)
* add insight history

* add table

* edit format

* links working

* add modal

* add tab switch

* saving insights

* remove insights model

* no model for insight history

* initial working

* remove wrong typegen

* made the history per user

* missing param

* added funnel support

* add details

* add delete saved insight functionality

* add line break logic and funnel name

* fix reload logic

* fix rendering error

* add pagination component

* fix bugs

* add backend tests

* add insight-history-panel check

* add drawer and replace table

* add loading next

* add date

* add callback

* update test

* use table

* fix spacing

* fix rows

* adjust spacing

* fix spacing and styling

* fix spacing and styling
2020-08-05 10:13:57 -04:00
Marius Andra
863e75bf9f
Toolbar Default On + Load Test (#1326)
* set user.toolbar_mode default to "toolbar", turning it on for new users

* test that the toolbar loads when you open /demo
2020-08-04 14:46:08 +02:00
Tim Glaser
2d650c7934
1327 fix cumulative (#1328)
* Closes #1327 fix cumulative

* Fix events

* Add more checks for falsey values
2020-08-03 14:49:50 +02:00
Marius Andra
3fb85aabf6
Add missing migration for ActionStep URL matching regex (#1311) 2020-07-30 16:33:15 +02:00
Tim Glaser
31f3185776
Closes #1020 WIP shared dashboards (#1071)
* add test for caching funnels and refreshing

* Closes #1020 WIP shared dashboards

* Make webpack work

* Progress?

* Hash the entire filter and add share tokens

* Make webpack work properly

* Fix sentry error

* Tighten up the caching logic

* Correctly refresh items and show in frontend'

* Add some padding

* fix caching, update layout

* Add cypress tests

* Fix merge conflict mistake

* Convert share_token to boolean

* Hide text when small

* Redo tooltip for lock

* Remove move cursor when in shared mode

* Improve spacing

* Fix state being incorrect

* Use selectors instead of value

* Use const instead of let

* Fix type errors et al

* Increase cache size

* Fix dashboard tests

* Fix team tests

* Add wait time

* Fix tests

* Fix refreshing

* Fix dashboard tests

* Fix test

* Excluded deleted dashboard items and don't show refreshing

* Fix renaming issue

* Fix migrations and fix display of status change

* Use grid for responsive header

* Don't load annotations

* Eslint

* Fix variable naming

Co-authored-by: Eric <eeoneric@gmail.com>
2020-07-23 10:41:59 +02:00
Michael Matloka
4fe9b3c0ad
Aggregate functions on Trends (closes #1193) (#1217)
* Update entityFilterLogic for filter.math_property

* Add new math types and math_property to ActionFilterRow

* Add backend support for new math types

* Update data-attrs

* Add dropdown Cy test

* Add API tests

* Improve process_math style

* Add resiliency to non-number property value occurences

* Annotate for clarity

* Update UI text

* Update UI text a bit more

* Reword tooltip

* Update UI slightly

* Update capitalization

* Improve internal style

* Improve code style

* Filter out property `token`

* Utilize formatted string

* Don't show empty dropdown contents

* Add event_properties_numerical for the future

* Fix dropdown button title
2020-07-21 16:18:11 +02:00
James Greenhill
56ec7e9be7
Closes #1059: Async processing of Event -> Action mapping (#1170)
* Make Async processing of event -> action mappings optional for large installations

* black format python

* Bump frequency for mapping Events -> Actions to hourly

* make the recalculation of action -> events incremental

* just use naive datetime for default start

* add created_at field for events to base incremental event->action mapping off of

* use timezone aware now's

* remove old test for a migration long gone

* use naive date for default start period on calculate_events_for_period

* default old events to created_at null and fix time calculated

* set last calculated when EmptyResultSet

* black format migration

* update migration to not conflict

* consolidate calculate_events functions

* Consolidate logic and handle nulls in created_at gracefully

* add ACTION_EVENT_MAPPING_INTERVAL_MINUTES as env var

* Feedbacked, no env var for calc period and add null=true on event model

* update migrations w/ feedback

* black format migration
2020-07-14 12:36:43 -07:00
Eric Duong
9fb2f64cba
Annotations (#1120)
* draw a vertical line

* some annotation

* progress

* progress on logic and mouse events

* popover aligned

* comment popup working

* fix spacing

* add model

* annotation endpoint

* initial working

* frontend create dashbaord item with annotations working/ modified model

* remove plugin

* add sizing hook

* fully working basic implementation

* style the notes

* annotations delete

* annotations base complete

* tweaking spacing and styling

* enforce input limit

* format

* add margin

* restrict deletes to proper users

* modify styling

* add api tests

* add error boundary to graph

* fix code comments

* fix lint

* fix how name is determined

* nit

* refactor into logic

* ux fixes

* colors

* inting errors

* fix dashbaord test

* remove hardcoded test

* fix linting again

* remove autofocus

* add dynamic spacing for annotations and fix margins

* more patches

* disable annotations on compared graph

* code fixes

* fix mouseover detail

* add patch

* add control for mousedown

* add condition

* add escape key functionality

* refine boundary recalculation condition

* missing call

* fix dragging listener

* some refactoring and add control for dragging/popup

* better control when clustered

* one more tweak

* use ref again

* add condition

* another condition

* remove animations

* limit area

* adjust spacing

* condition

* minor fix

* colors

* more patches

* use draggablecancel

Co-authored-by: Marius Andra <marius.andra@gmail.com>
2020-07-10 10:28:15 -04:00
Eric Duong
f8f27316c5
Team timestamp with proper defaults (#1083)
* team-timestamp

* add updated_at field

* update manifest

* use proper default

* remove blank
2020-06-30 11:46:41 +02:00
Karl-Aksel Puulmann
02b68b6b1b
Add index to Action model (#1085)
This is a micro-optimization, likely doesn't matter for the actual bug
but something I noticed debugging issue 1059.

The query in question is:

```
last_updated_action_ts = Action.objects.filter(team_id=self.team_id).aggregate(models.Max("updated_at"))['updated_at__max']
```

The query plan before:
```
d25vf5hht9th9v> explain analyze SELECT MAX("posthog_action"."updated_at") AS "updated_at__
  max"
    FROM "posthog_action"
   WHERE "posthog_action"."team_id" = 1;
+----------------------------------------------------------------------------------------------------
| QUERY PLAN
|----------------------------------------------------------------------------------------------------
| Aggregate  (cost=5.46..5.47 rows=1 width=8) (actual time=0.026..0.026 rows=1 loops=1)
|   ->  Bitmap Heap Scan on posthog_action  (cost=2.06..5.46 rows=2 width=8) (actual time=0.019..0.02
|         Recheck Cond: (team_id = 1)
|         Heap Blocks: exact=1
|         ->  Bitmap Index Scan on posthog_action_team_id_3a21e3a6  (cost=0.00..2.06 rows=2 width=0)
|               Index Cond: (team_id = 1)
| Planning Time: 0.145 ms
| Execution Time: 0.062 ms
```

After:
```
+----------------------------------------------------------------------------------------------------
| QUERY PLAN
|----------------------------------------------------------------------------------------------------
| Result  (cost=2.06..2.06 rows=1 width=8) (actual time=0.024..0.024 rows=1 loops=1)
|   InitPlan 1 (returns $0)
|     ->  Limit  (cost=0.06..2.06 rows=1 width=8) (actual time=0.020..0.020 rows=1 loops=1)
|           ->  Index Only Scan using posthog_act_team_id_8c04de_idx on posthog_action  (cost=0.06..4
|                 Index Cond: ((team_id = 1) AND (updated_at IS NOT NULL))
|                 Heap Fetches: 1
| Planning Time: 0.147 ms
| Execution Time: 0.049 ms
```
2020-06-25 20:52:38 +02:00
Marius Andra
684bb13772
Toolbar BETA Toggle (#951)
* per-user toggle to use new toolbar

* add migration

* fix test and remove setting

* add choices to toolbar setting

* fix latest_migrations.manifest

* update text

* add hint to restart the browser

* fix test now that the setting is gone

* simplify language
2020-06-25 13:46:49 +02:00
Eric Duong
c6428e9190
Onboarding Wizard (#1051)
* intiial working

* remove animation and added snippets

* full flow working

* reorganize

* more cleanup

* fix linting

* add test for the onboarding flow

* add elixir and send event script

* try without cache

* restore cache and move directory

* udpate case

* add lazy loading to onboarding flow

* move field to team

* .

* update styling

* add default

* migration with default working

* add missing model field

* conditional test based on DOM

* add promise return

* try wait

* test again x2
2020-06-24 12:03:28 -04:00
Tim Glaser
dfb9fd5dee
Revert "Add created_at to team model (#1075)" (#1082)
This reverts commit 9e90215709.
2020-06-24 15:20:17 +02:00
Eric Duong
9e90215709
Add created_at to team model (#1075)
* team-timestamp

* add updated_at field

* update manifest
2020-06-24 09:03:06 -04:00
Karl-Aksel Puulmann
5257c30ff1
Enable discarding of IP address data (#1081)
* Add migration to add `anonymize_ips` boolean field

Issue #947

* Add setting to not capture ip data

This solves issue 947
2020-06-24 10:38:45 +02:00
Tim Glaser
f61e9c111b
517 feature flags (#1017)
* WIP #517 feature flags

* Fix default filters

* Move decide to its own file

* Bump posthog-js 1.2.2

* Fix decide endpoint

* Add logic, update posthog-js

* yarn lock

* update snippet

* Add cypress tests

* Add example code

* Fix example code

* Add tests for query size

* Add errors when trying to create feature flag with same key

* Add explanation comment

* Fix cypress tests

* Do caching of teams in Team model

* Use <= instead of <

* Instrumentation and fix

* Fix ci test

* Add patch for team

* Debug test

* It passed
2020-06-22 10:57:09 +02:00
Tim Glaser
5201fab32f
Fix long href inserts (#1027)
* Bump posthog-js 1.2.2

* Fix long href insertions
2020-06-16 10:33:32 +02:00
Eric Duong
f0d6db7714
1022 caching adjustments (#1023)
* refreshing spinner

* expire results that haven't been accessed in more than 7 days

* missing param
2020-06-15 22:41:28 +02:00
Eric Duong
063d73953a
Use redis to cache results (#972)
* initial working

* small adjustments and make tests run

* working cache

* edited arg handling in actions

* caching dashboard trend items with periodic update

* funnel and trend cache working

* update intervals

* update tests

* updated types and funnel refersh logic

* refresh working

* refresh dashboart item logic

* refresh from dashboard working for trends components

* refresh from dashboard working for funnels and funnel refactored to hook

* dashboard item reload

* let deleted items run stale

* fix tests

* tweak decorator logic

* update datetime format and default expiry

* add team to cache signature

* make sure different workers pick up task

* use tooltip and change dashboard refresh order

* fix redundant calls and cache overwriting

* updated types

* Show tooltip when never refreshed

Co-authored-by: Tim Glaser <tim.glaser@hiberly.com>
2020-06-15 19:38:55 +02:00
Tim Glaser
37fa876732
Revert "Closes #888 filter on elements (#917)" (#968)
This reverts commit ac46f09429.
2020-06-09 17:58:18 +01:00
Tim Glaser
ac46f09429
Closes #888 filter on elements (#917)
* Closes #888 filter on elements

* Add joinfield as requirement

* Fix tests

* Use correct element

* Fix paths query

* Delete old migration test

* Clean up

* Add frontend filters for elements, closes #419

* Add element api

* Fix paths and add test

* Keep elements field, otherwise breaks parititons

* Don't use join field

* Remove other join field references

* Fix test
2020-06-08 14:58:51 +01:00
James Greenhill
db574b61c7
Cache actions and events queries between event processings (#845)
* Cache actions and events queries between event processings

* feedbacked

* BaseTest -> TransactionBaseTest, BaseTest is causing problems
2020-06-01 09:51:46 +01:00
Tim Glaser
4b31532025
Add property filters to actions + lots of improvements (#841)
* Add property filters to actions

* Show calculating of acitons and other improvements

* Fix delete, add toast back in and change toast colour

* Fix cypress tests

* Fix e2e

* Fix cy tests

* Remove double events

* Fix tests and event not saving

* change name

* Fix tes

* Empty result set error
2020-05-27 11:26:36 +01:00
Tim Glaser
df48f475ba
Closes #790 opt out to boolean and allow anonymizing of data (#821)
* Closes #790 opt out to boolean and allow anonymizing of data

* Add deprecated note
2020-05-21 15:38:28 +01:00
Marius Andra
bc7eabc315
Resize dashboard items (#746)
* Fix Error404

* resize and drag dashboard items

* fix funnel resize issues

* store layouts in kea

* layouts for different breakpoints

* save layouts after updating

* colors in submenu, but disabled

* save item colors

* 1920-sidebar breakpoint

* add graph colors for graphs with backgrounds

* pie chart label color and z-index to put over the chart if a long number
2020-05-13 11:14:09 +01:00
Tim Glaser
8e6b4f56b5
Closes #169 break down by cohort (#690)
* Closes #169 break down by cohort

* Fix test

* Prettier breakdown filters

* Rerender each time it's opened

* Fix tests

* Add 'all users' option in breakdown

* Make people work with cohorts

* Precalculate cohorts

* Return last_calculation

* Show precalculation in the frontend

* Closes #675 fix icon alignment

* Frontend fixes, antd and more

* Make sure unsetting breakdown doesn't break things

* Semantic name for migration

* Separate data migration + cohort key bugfix

* Correctly filter people by event

* Typing
2020-05-11 22:06:35 +01:00
Marius Andra
c324582076
703 multiple dashboards (#740)
* create dashboard model

* add pinned dashboards to submenu

* rename "Default Dashboard" -> "Dashboard"

* refactor SaveToDashboard modal

* save onto right dashboard

* load and show dashboard data

* move logic to separate file

* dashboard selection

* prompt for name

* add promise cancellation for prompts, so that they close when we change the url

* show a global loading progress bar if it takes more than 500ms for any loader to work

* add dashboards on the dashboard page

* pin dashboards

* rename dashboard

* cut off text nicely in the sidebar

* delete dashboards

* dash item "more" link in antd style

* revert to ellipsis

* trigger by click, redirect well with delete

* remember last visited dash, update icons

* better view icons

* refactor Dashboard into subcomponents

* add a sad hedgehog for the 404 page

* fix loading keys

* add a few more overlay hedgehogs

* add new dashboard from "no dashboards" page

* use a hedgehog with a better license

* better redirect when deleting dashboard

* update dashboard items design

* dark sidebar

* make a few other scenes darker

* add a few styles that can be toggled

* add menu to change color of dashboard panel

* move to prompt logic

* new dashboard on dashboards page

* show success message in model

* refactor shared listeners

* rename dashboard item

* add new dashboard when adding to dashboards

* redirect after adding

* fix icon alignment

* undo deleting dashboards

* replace antd message with toast to close programmatically

* remove the style dropdown for now

* set the scene on a new "thread" to avoid react's reconciliation triggering logic building on the current run heap

* fix action run heap issue properly

* use table in dashboard list, link to all dashboards

* support links without hrefs

* empty dashboard style fix

* ignore type

* save created_by user

* remove nprogress spinner

* use antd table to render dashboards

* show "all dashboards" as the default when clicking the link

* pin dashboards automatically

* soft delete

* remove nprogress

* remove nprogress

* remove all caps

* export deleteWithUndo function

* add delete and pin links to dashboards list
2020-05-11 18:09:02 +02:00
Tim Glaser
65c4b6386e
Move models to separate files (#631)
* Move models to separate files

* Remove FunnelStep and move action step into separate file

* Add delete funnelstep migration
2020-04-23 10:26:14 +01:00
Tim Glaser
89137eb481
Closes #613 add more indexes and fix issues to allow loading of /tren… (#630)
* Closes #613 add more indexes and fix issues to allow loading of /trends with millions of events

* Fix signup test
2020-04-21 09:48:30 +01:00
Tim Glaser
12e3b3128f
Fix unable to sign up to teams (#610) 2020-04-16 17:56:11 +01:00
Tim Glaser
0b5d2d6a17
Fix migration conflicts (#582) 2020-04-16 10:14:04 +01:00