* Add details=True to export API parameters
This makes the ZIP export add `%{"details" => "True"}` to the query's
`params` when fetching data internally for packaging in the ZIP.
This adds bounce_rate and time_on_page to the data in pages.csv, and
bounce_rate and visit_duration to sources.csv.
* Make API return data with consistent names
Some of the data types returned via the JSON or CSV API use inconsistent
naming, and some have redundant name changes (i.e. count -> visitors ->
count). This makes these all consistent and removes the redundancy.
This addresses #1426, fixes some of the CSV headers, and unifies the
JSON and CSV return data labels.
* Update changelog
* Test should use Timex.shift, not relative time
* Return full country names in CSV export
This also replaces the " character with ' in two country names, as those
are the characters used in the names, yielding a more predictable and
'correct' output.
* Fetch CSV exported data concurrently
* Use spinner to indicate when export has started
* Use 300 as default number of brekadown entries for export
Higher numbers (e.g. 1000) seem to cause clickhouse errors when there
many pages to request. It is unclear what is causing the error, as
clickhouse returns an "unknown" error code and an empty error message.
* Export all dashboard data in zip
This packages all data currently visible in the dashboard into
individual CSVs and downloads them together in a zip.
* Also export conversions in zip of CSVs
* Update export test with zip file response
* Add zip file download to changelog
* Adds pagination for custom props, fixes errant (none) being returned in the middle of a dataset
* Formatting
* Fixes errant (none) value correctly
* Changelog
* Adds tests
* Add conversion_rate to sources api and source table
* Remove percentageFormatter
* Update source tests to include conversionat rate
* Add CR to detals modal
* Correct formatting with linter
* Add change log
* Add CR to Pages, Device and Countries panels
* chore(docker): improve repeat contributions workflow
* This change adds two new commands to gracefully stop and remove the Postgres and Clickhouse docker containers. To do so, it also gives them a recognizable name.
* Additionally, the Postgres container is updated to use a named volume for its data. This lower friction for repeat contributions where one would otherwise sign up and activate their accounts again and again each time.
* Format countries modal
* Remove unused imports
* Run ESLint and make related fixes
* ESlint formatting for entry pages modal
* WIP: proof of concept for scrollable modals on mobile
* Fix modals being too wide on desktop
* Make modals truly responsive
This fixes the desktop behaviour completely now.
* Update changelog with modals responsiveness
* Update desktop modal width to 860px
It was an oversight to set it at 800px in the first place.
Co-authored-by: Uku Taht <Uku.taht@gmail.com>
* chore(docker): improve repeat contributions workflow
* This change adds two new commands to gracefully stop and remove the Postgres and Clickhouse docker containers. To do so, it also gives them a recognizable name.
* Additionally, the Postgres container is updated to use a named volume for its data. This lower friction for repeat contributions where one would otherwise sign up and activate their accounts again and again each time.
* Break words early to maintain spacing; truncate on larger screens
* Update changelog entry on UI bars
* Truncate bar text from md breakpoint
* Turn off form autocompletion for new shared links
Many browser autofill input fields based on their name, but here it makes no sense to use the user's name (email) or even password for the shared link.
* Update changelog
* chore(docker): improve repeat contributions workflow
* This change adds two new commands to gracefully stop and remove the Postgres and Clickhouse docker containers. To do so, it also gives them a recognizable name.
* Additionally, the Postgres container is updated to use a named volume for its data. This lower friction for repeat contributions where one would otherwise sign up and activate their accounts again and again each time.
* Improve bar component to work in a variety of situations
This fixes two issues from #972
- Goals area has display issues depending on the name of your custom events
- It is not possible to view labels for outbound links, 404 and custom props
* Update changelog entry
* Move content to children for Bar component
* Remove redundant fallback width
* Fix text color on root conversion texts
Hyperlinks (<a>) inherit their color. In the case of the root conversion text, we needed to specify the color somewhere.
The same color as the breakdown texts has been chosen.
The Bar component no longer needs to take in text classes.
* chore(docker): improve repeat contributions workflow
* This change adds two new commands to gracefully stop and remove the Postgres and Clickhouse docker containers. To do so, it also gives them a recognizable name.
* Additionally, the Postgres container is updated to use a named volume for its data. This lower friction for repeat contributions where one would otherwise sign up and activate their accounts again and again each time.
* Update the ticks on the X and Y axis of the main chart to be responsive
* Update the changelog for the graph responsiveness fix
* Invite existing user to a site
* Add invitation flow for non-existing users
* Accept and reject invitations
* Use invitation flow for existing users
* Locking mechanism for sites
* Authorization for site settings
* Show usage based on site ownership
* Add ability to remove members from a site
* Do not show settings link to viewer roles
* Ability to remove invitations
* Remove `Plausible.Sites.count_for/1`
* Fix tests
* Do not show the trial banner after the trial
* Correct trial emails
* Transfer ownership
* Send invitation email to existing user
* Add invitation email flows
* Add plug for role-based authorization
* Rename AuthorizeStatsPlug -> AuthorizeSiteAccess
* Add email flow for ownership transfer
* Fix URLs in emails
* Fix small copy issues
* Make 'People' its own section in site settings
* Notify user via email if their access has been removed
* Check site lock status when invitation is accepted
* Check lock status when user subscribes
* Make sure only admins and owners can create shared links
* Changelog
* Add LockSites to daily cron
* Clean invitations after 48 hours
* Add notices about expiry
* Add invitation expired page
* Add doc link
* First pass on manual filter & path regex/negated filters
Still needs:
- Form structure on filter modal
- Edit filter button
- Filter dropdown UI improvement
- Filter modal mount data collection
- Tests
- Potentially negating other filters
* Second pass - mostly everything user-facing is done
Still needs:
- Tests
- Potentially negating other filters
- Potentially some code cleanup
* Bugfix in realtime view, formatting
* Fixes editing UX on list view
* Adds tests for exclusions and wildcards
* Various UI Improvements
- Makes edit buttons full-length & properly sized
- Adds remove filter button in edit menu
* Changelog
* Makes requested changes, adds different version of filter button
* Makes colorings on top bar elements consistent
Currently, both are hard-coded to relatively small values.
This may cause an unnecessary high load on the Clickhouse instance.
It makes sense to make those configurable.
* First pass
Needs more testing & potentially cleanup
* Fixes tests, error handling
* Formatting
* Removes broken test
* Fixes inconsistent test
This was due to Clickhouse setup not inserting the sessions with the exact same timestamp consistently and making the test inconsistent
* Combines `include` param, asyncs time_on_page and bounce_rate
* Fixes CH error when no pageviews exist in period
* Format
* Changelog
* Increases await timeout to accomodate larger data sets
* Improves handling of timeout behavior
* Fixes session-based filtering on time on page queries
* Formatting
* Removes old forced entry page modal from top pages report
* First Pass - 90% wrong
* Second pass - basically done
* Swaps N+1 for multiMatchAllIndices & friends
* New version of query with just one regex computation
* Slight formatting, basic test
* Updates tests to match master new events
* Changelog
* Adds more sophisticated glob tests
* Initial Pass
* Adds support for page visits counting by referrer
* Includes goal selection in entry and exit computation
* Adds goal-based entry and exit page stats, formatting, code cleanup
* Changelog
* Format
* Exit rate, visit duration, updated tests
* I keep forgetting to format :/
* Tests, last time
* Fixes double counting, exit rate >100%, relevant tests
* Fixes exit pages on filter and goal states
* Adds entry and exit filters, fixes various bugs
* Fixes discussed issues
* Format
* Fixes impossible case in tests
Originally, there were only 2 pageviews for `test-site.com`,`/` on `2019-01-01`, but that doesn't make sense when there were 3 sessions that exited on the same site/date.
* Format
* Removes boolean function parameter in favor of separate function
* Adds support for queries that use `page` filter as `entry-page`
* Format
* Makes loader/title interaction in sources report consistent
* Adds data-exclude support and plausible_ignore support
* Splits exclusion into separate script option
* localStorage parsing upgrades
* Additional script type additions
I'm unsure about the formatting decision in tracker.ex - lmk.
* Adds new compiled files
This will certainly have conflicts with my other PRs related to the tracking scripts right now, I'll make one extra PR after both are done to ensure they're consolidated into the compiled scripts.
* Moves localStorage blocker out of special script
* Changelog
* Second thoughts on localStorage exclusion
* Updates `*` to not match `/` or whitespace
* Fix formatting
* Removes zero-length asterisks
* Adds support for double glob, zero-length replacements
* Update to reduce size+allow localStorage exclude
Co-authored-by: Uku Taht <Uku.taht@gmail.com>
* uses tailwind breakpoint to not apply the opacity:0 to the cog on small screen sizes (<768px wide)
* Adds feature description to changelog
Co-authored-by: Uku Taht <Uku.taht@gmail.com>
* Introduce SELFHOST config. Enable cron by default for self hosters
* Fix cron, disable custom domain for selfhost
* Add github links
* Add notice about google search console on self hosted
* Enfore BASE_URL
* Set all selfhost users' trial expiry to 100 years from now
* Fix admin user creation
* Initial Implementation
Still needs clear all functionality, various styles and spacing, and overall cleanup
* Second pass
Most of the styling issues are still present, but collapsing/expanding logic should be complete
* Third pass
* Refactors, comments, cleans up filters code
* Flatpickr color+placement changes
* Last(?) pass on UI
* Actually fixes sticky dates without breaking navigation
* Changelog
* Puts this back where it goes
* Updates based on @ukutaht's comments
- Removes Screenclass hook in favor of simple viewport size storage
- Uses class-based component
- Removes recheck variable in favor of tri-state wrapped
- General formatting & code cleanup
* Fixes goal conversion rate when period is realtime
* Adds unique visitors (30m) to realtime top stats
* Changelog
Co-authored-by: Uku Taht <Uku.taht@gmail.com>
* Adds New Dark Mode Assets
* Moves triangle for dropdown to a reasonable position
* Majority .eex dark implementation
* Fixes Logo Positioning
* Adds theme flag to user schema, uses it
* Uses correct variables for theme applicator script
* Minor missed theme changes/fallbacks
* Individual Component Support + Theme Context
* Sources Tab Support
This was a pain to test D:
* Partial Stats Sections Support
* More of stats modules supported
* Modal +table support
* Improves some Flatpickr in light theme, supports dark theme
* Fixes missed settings tab colors
* Finishes Devices module support
* Fixes bar graph colors
* Better colorizes maps module
* Undoes colorized bars
(they looked bad, on second thought)
* Fixes loading indicator
* Finishes conversions module
* Adds changelog entry
The PR number could be wrong, will double check
* Fixes missed header color
* Fixes naming of migration and removes static alter
* Does migration correctly
As I said, my Elixir is pretty weak heh
* Adds support for spike notifications setting
* Improves contrast and visibility for email settings
* Add initial implementation for sticky header
* Minor mobile formatting improvements
* Finishes (probably) pinned header feature
* Adds changelog entry for pinned header
* Updates PR number in sticky header changelog entry
* Wraps up code cleanup + feature
* Merge conflicts are hard, apparently
* Removes extraneous tailwind variants
* Fixes mentioned issues
* Removes option to unsticky
* py-3
* Tailwind in CSS
* Adds New Dark Mode Assets
* Moves triangle for dropdown to a reasonable position
* Majority .eex dark implementation
* Fixes Logo Positioning
* Adds theme flag to user schema, uses it
* Uses correct variables for theme applicator script
* Minor missed theme changes/fallbacks
* Individual Component Support + Theme Context
* Sources Tab Support
This was a pain to test D:
* Partial Stats Sections Support
* More of stats modules supported
* Modal +table support
* Improves some Flatpickr in light theme, supports dark theme
* Fixes missed settings tab colors
* Finishes Devices module support
* Fixes bar graph colors
* Better colorizes maps module
* Undoes colorized bars
(they looked bad, on second thought)
* Fixes loading indicator
* Finishes conversions module
* Adds changelog entry
The PR number could be wrong, will double check
* Fixes missed header color
* Fixes naming of migration and removes static alter
* Does migration correctly
As I said, my Elixir is pretty weak heh
* Adds support for spike notifications setting
* Improves contrast and visibility for email settings
* Resolves @ukutaht's comments on #467
* Fixes missing dark style
* Found one more missed dark element (shared links)
* Formatting fixes
* WIP
* Actually activate the user
* Send email verification codes
* Send activation code with email
* Only show onboarding steps during first site creation
* Add worker to config
* Consistent form styles
* Send welcome email when user activates account
* Add changelog entry
* Use https in new site form
* Correct spelling in email
* Collect browser and OS version
* Display browser version
* Show operating system versions
* Device categorization
* Treat headless chrome like a bot
* Ignore events from automated browsers
* Only take major and minor of the version
* Add tests
* Add CHANGELOG entry
* Add changelog entry for bots
* Store empty value as browser when unknown
* Add weekdays to the visitor graph
Abbreviate both weekday and month in order to keep horizontal spacing
roughly the same as it's been.
Closes#175.
* Add note to CHANGELOG
* Ability to add event metadata
* Close Dropdown on outside click
* Show (none) value in metadata breakdown
* Allow filtering for metadata key/val pairs
* Use correct clickhouse_ecto
* Better naming for meta filter
* Add tests
* Add changelog entry
* Remove change made for testing
* Filter by screen size
* Filter by browsers
* Add filter for Operating system
* Add changelog entry
* Add filter for countries
* Add tests for filters
* Show utm_medium, utm_source, and utm_campaign in sources modal
* Allow filtering by UTM tags
* Integrate filters with URL bar
* Add CHANGELOG entry
* Refresh modal when filter changes
* Remove Direct / None from campaign results
* Add UTM tabs to top sources report
* Add pagination
* Remove dropdown from top sources popup
* Fix bug in clickhouse_ecto
* Remove referrers_for_goal
* Make sure UTM tags work OK with goals
* Make source tab selection sticky
* Consistent styling for devices and source tabs
* Add noref in realtime to utm tabs
* Fix tests
* Use clickhouse-ecto for stats
* Use clickhouse ecto instead of low-level clickhousex
* Remove defaults from event schema
* Remove all references to Clickhousex
* Document configuration change
* Ensure createdb and migrations can be run in a release
* Remove config added for debug
* Update plausible_variables.sample.env