* upgrade kea, kea-typegen, kea-loaders, kea-router
* add correct imports to two logics
* upgrade kea
* upgrade typescript to 4.2.4
* add type
* fix one type
* Put Team.plugins_opt_in out of use
* Put Plugins out of BETA
* Add attention-grabbing blip for Plugins in nav
* Add end of Plugins beta banner
* Refactor MenuItem highlighting
* Update Plugins page copy
* Prettier
* Add User.flags field and use it instead of posthog.persistence
* Fix User.flags API
* Update migration
* Update Plugins.tsx
* Roll back extraneous additions
* Roll back more
* Update code ordering
* add `important_data_attributes`
* fix undefined bug
* important data attributes in setup
* add dashes
* remove dead code
* scarier exampe
* support multiple data attributes in the toolbar
* update to simmer that supports wildcards
* rename "important_data_attributes" -> "data_attributes", store as a json array
* update ts blacklist
* another one
* use a tag select for data attributes
* remove needless string serialization
* implement text feedback
* data attribute setup style improvement
* better default handling
* fix out of sync migration
* dropdown and datepicker z-index
* remove dead code
* pass getPopupContainer to range picker
* make DateFilter's custom time range work in a shadow root
* close after selecting
* show date filter instead of date range
* skip updating url on date filter change in toolbar
* actually filter the dates
* fix flickering (always show map)
* refactor date filter component
* upgrade to webpack 5 and @posthog/react-rrweb-player module
* disconnect dashboardLogic from dateFilterLogic (remove broken url changes, etc)
* add bundle tracker
* remove react-hot-loader
* Revert "add bundle tracker"
This reverts commit e59bcfa8
* remove bundle tracker
* remove updatePath
* fix code quality complaints
* revert @cypress/webpack-preprocessor version
* try different cypress webpack plugin
* add crypto-browserify
* add crypto-browserify
* revert to webpack 4
* revert to webpack 4
* revert to webpack 4
* implement feedback and remove debug stuff
* move insights date filter logic out of lib/
* rename DateFilterComponent to DateFilter
* rename DateFilterCustom to DateFilterRange
* Remove hot from new code
* Add crypto-js for calculating MD5
* Add Gravatar support to profile picture
* Add title attribute to ProfilePicture img
* Optimize ProfilePicture
* Fix typing
* Show Gravatar in Members list
* Remove style from ProfilePictureProps
* Update title in ProfilePicture img
* Fix TS
* Show Gravatars in Invites
* Remove debug line
* Use nbsp in /.+ (At|By)/ table headers
* Remove user prefix from ProfilePicture props
* Add test for bar charts
Since our charts are rendered on a canvas we can't really interact well
with it. Instead, we take a screenshot now (new dependency).
* Debug error in CI
* Make sure images are the same size on CI and locally
* WIP: get cypress something doing
* Get a test running
* Get css loading, stub posthog
* Move helpers to separate file
* Givens > given2
It plays nicer with beforeEach
* Test for session filters
* Test date navigation
* Test filtering
* Try keep old tests running
* Try get tests running under CI
* Prettify fixtures
* Cleanup, use cypress 6
* Add yarn build
* Fix e2e cypress tests
* given2 => givens
* Rename `frontend-test-runner` to `e2e-test-runner`
* Fix cypress test
* Add webpack-preprocessor as a devDependency
* Improve freezing time
* Make css inclusions automatic for component tests
* Migration for is_demo
* Populate is_demo when triggered
* Refactor: extract create_demo_team
* Also create ee sample data
* Create demo data if feature flag enabled (and in debug), redirect to root
* Show demo warning
* Solve rease issue
* Redirect to personalization
* Redirect to root
* Update antd to latest, which gives access to Alert action prop
* Update demowarning code
* update tests
* Update naming
* Update link
* Verify no new typescript code breaks "strict" compilation
With this we have a file containing all current errors. As the code
changes, we should not add more errors here.
* remove some lines to show a failure
* Add total count to script
* Update blacklist after rebase
* Remove some fails on purpose.
* Attempt a reorder
* Add missing file
* Update script to write typegen
* Refresh list
* Attempt to use normal tsc
* update blacklist
* Store all errors
* echo for typegen
* Add check command
* typegen 3 times
* typegen 4 times
* typegen 6 times
* typegen 10 times
* remove debug code
* Update kea typegen to latest
* Remove hacks
* Highlight rows from sessions which are matched by the filter
* Send start_time of recording to frontend
This helps us calculate offsets a bit better
* Use timestamp by server for date shown
* Load session events via kea logic
* Update rrweb, rrweb-player
* Highlight events user is filtering for in sessions player
* Handle empty case properly
* Add positive test
* Order session recording events in query
* Fix filtering by multiple events with differing names
previously only the first would have been used due to overlapping
params.
* Return all highlighted times as action_filter_times
* Send back ids not timestamps
This avoids weird rounding errors causing issues
* Show skeleton for longer
* update typing
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* Refactor adding filtering component
* Fix a type error
* Rename events to entries
This makes much more sense since you can select e.g. actions
* Start of the session filter box
* WIP: Sessions filtering
* Make SelectBox more generic
* Make sessions filtering visuals
* Extract operator value selection code
* Make action properties filterable
* Make it possible to filter by cohorts
* Filtering by events
* Make loading sessions possible with the new logic
* Make it possible to filter by actions/events via backend with new code
Note that it's all relying on old 'paths' - will refactor these later.
* Make it possible to filter by user properties
* Update imports
* Small fixes for sessions filter
* Add UserFilter file
* Ignore extra args to Property
* Make it possile to filter by recording duration
* Update how session duration filter works in the backend
* Rename a few columns
* Remove dead mixins
* Remove duplicated logic, put code behind feature flag
* Move sessions filters logic to subfolder
* Don't show properties if feature flag.
* Add saved filters support
This will require some discussion with Paolo - probably want to show
this on the side?
* Add divider before sessions table
* Narrower typing for recordings
* Some frontend for saving filters
* Small rename
* Add SessionsFilter model
* Save filter on backend
* add missing filter
* Extract const
* Make ActionFilterDropdown be able to pick actions again.
* Fix links from person modal to sessions
* Update tests.
* Fix database model
* Use proper deep equal for detecting active filter
* Remove unneeded field
* Only return filters from correct page
* Add missing data-attr
* Add instrumentation
* rename component
* Fix analytics metadata
* Make funnel steps sortable
* sortableElement eats the `index` prop, must pass separately
* properly sort all types of filters
* Lock dragging to Y axis
* Sorting UI improvements (#2888)
* use icon for drag handle
* allow sorting only when there's at least two steps
* add instrumentation
Co-authored-by: Michael Matloka <dev@twixes.com>
Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
* feature flag papercups
* Use @papercups-io/chat-widget instead of weird useEffect hacks
* Rename basicComponents to essentialElements
* Add posthog_domain to Papercups metadata
* Actually rename basicComponents to essentialElements
Co-authored-by: Michael Matloka <dev@twixes.com>
* fix tsc error
* add plugin source, create plugin source version model, add plugin_type
* can create and save source plugins via the api
* make empty source plugins
* message if no config options available
* different image or tag for source plugins
* fix some types
* second drawer
* add fields into drawer
* add monaco editor
* refactor drawer
* save plugin and must be json
* close tab on save
* fix default code
* upgrade to plugin server 0.5.0 - with scheduled plugins
* less height
* upgrade to plugin server 0.5.1 - with posthog.capture
* remove minimap from editor
* upgrade to 0.5.1
* use enum
* reduce quirk
* must enter a name/url
* use the source
* simpler text
* sync image
* add link to docs
* add a link to the documentation inside the source code drawer
* text / ux simplifications
* nicer first plugin experience
* nicer django model choices