* When an api key was not set - handle gibbon error as mailchimp error
see https://app.honeybadger.io/projects/72638/faults/73753178
It's possible the right answer is instead to either (1) not make the
call at all (2) not log as a mailchimp error but treat distinctly
* Only report error if GibbonError, don't attempt to resubscribe
Separate the rescue blocks since resubscribing doesn't make sense if
we're handling a gibbon error rather than a mailchimp error
* Add test for gibbon error being raised (and rescued)
Copied the existing test specifying that resubscribe is attempted on a
raised mailchimp error.
* Remove irrelevant resubscribe check - assert error is handled only
* Add feature flag for connect
* Start using Connect feature flag
* Add feature flag check to plaintext mailers
* Minor fixes/formatting issues
* Fix typo
* Enable Connect feature flag for tests
* Fix feature flag in tests
* Update rails_helper
* Fix typo
* (╯°□°)╯︵ ┻━┻
* One more try
* connect announcement
* Use connect feature flag in admin and admin routes
* Add aria-live attribute to announcement
* Undo schema.rb changes
Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
* In dashboard show api eager load collection with articles
* Dashboard Article Row view now loads collection to suppress bullet warning of eager loading
* enable debug for warnings in dev env
* remove preact/devtools call no longer needed
* fix majority of proptype errors on home page
* sweep up proptype errors from listings page
* fix article form error
ActiveRecord already implements this at the model level and also makes
use of the ActiveRecord schema cache. `Database.table_available?` did
not use this query cache and ended up sending *all* of those queries to
Postgres every single time.
* remove duplicate header, convert heading to h1
* hide decorative image from sr, convert nav to a nav
* minor fix for items in nav list
* minor fixes to the podcast page
* trigger CI checks
* Add counts for number of views when showing referrers
We're sampling unauthenticated page views (every 10th visit is
recorded) and using the "counts_for_number_of_views" attribute to mark
the 10x weight of these sampled events.
The referrers section of the statistics page however was counting the
number of page view rows (without regard to the weight) and it looked
like external referrers (like a google search) were counting 10 times
on the statistics page.
Update the analytics service to show the sum of the weights, rather
than the count of events, on the "Traffic Source Summary" of the
article stats page.
This is loaded from /api/analytics/referrers?article_id=:id on the
front end.
Needs a test that demonstrates this (currently all specs for this
stayed green suggesting the coverage didn't include anything that
represents this situation).
* Avoid calling sum twice by reusing the value alias
the .sum(:column) method in this chain creates an alias 'select
sum(column) as sum_column' which can be used here to avoid
recalculating the sum once for sorting and again for return value.
Sort by the return value's alias.
* Update the test to include weighted page views
Since we want to demonstrate that the count shown for visits matches
the sum of the weighted page views, add weighting to the top url
visits and expect the sum of the weights to be presented.
* This does not work
* Revert "This does not work"
This reverts commit b2292e61fb10faa6051b009214e732a9927c7746.
* Tried with a partial, works
* Improved with component
* chore: add my name to the chaore so that I can search after cleanup
* feat: update the forem creator signup template and copy over some stuff from the email_resgistration
* feat: update the fields
* feat: make sure that it saves
* feat: add an eye svg to the password input
* feat: update eye and eye-off svg
* feat: update the placeholder for the password field
* reveak and hide the password when clicking on the icon
* eye visiblibility functionality
* feat: display the username
* feat: show the username row when we click edit
* feat: update the interaction design
* chore: remove extra line
* chore: remove unneeded function
* feat: never show the username hint when the user field is not hidden
* feat: ensure that the username works
* chore: update the existing specs
* feat: move to packs
* refactor: manage the visibility with a avariable and not with the password type
* optimize the way we use password visibility
* chore: validate the username field
* chore: update the statement
* feat: add a background
* feat: accessibility changes
* feat: set a max length on the username
* feat: some more accessibility changes
* feat: validate the length of the password
* chore: add some margin to the error box
* feat: by_email shows the error states and we should cater for the Forem Creator
* feat: tackle any errors
* WIP/test: first pass of some integration specs
* feat: update the Cypress tests
* Update app/views/shared/authentication/_forem_creator_signup.html.erb
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Update app/views/shared/authentication/_forem_creator_signup.html.erb
Co-authored-by: Michael Kohl <me@citizen428.net>
* chore: temporarily disable the background on large screens
* chore: remove title
* prevent default
* feat; update the style of the button
* feat: update the tests to use accessibility tags
* feat: update icons
* chore: oops
* little forntend updates
* Update app/views/shared/authentication/_forem_creator_signup.html.erb
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Update cypress/integration/creatorOnboardingFlows/creatorSignup.spec.js
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* fea: change the aria label and pressed
* feat: change to just John
* feat: update cypress tests
* test if this is causing the test to fail
* feat: add some margin
* feat: mostly for Cypress - required is true or false based on whether the field is needed
* refactor: use the password label and skip last test
* Update app/views/shared/authentication/_forem_creator_signup.html.erb
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Update app/views/shared/authentication/_forem_creator_signup.html.erb
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* fix: do not toggle the label (accessibility)
* fix: add a comma
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Remove hardcoded instances of education field
* WIP Access display_email_on_profile via User Settings
* Remove unused profile column
* WIP Fix reference to bg_color_hex and text_color_hex
* WIP fix issues revealed by systems specs
* WIP fix issues revealed by services specs
* WIP Fix failing tests
* WIP Fix spec failures
* wip
* Move two attributes from controller to decorator
* Update comment
* Match user settings changes
* More consistently use user.tag_line
Even before the profile changes we sometimes used the user.summary
attribute directly but used the user.tag_line method in other places.
* Remove delegation, rename inline concern
* Drop profile columns from users table
* Remove duplicated work display from header
* Update work profile field handling
* Update DUS + spec
* Delegate more carefully
* Update delegation guard
* Adapt for removed delegation
* Undo accidental schema changes
* Fix seeds
* Remove accidentaly change
* Fix User#processed_website_url
* Update guard clause
* Update profile card content
* Add Organization#profile
* Be more conservative with profile fields
* Spec fixes round 1
* Fix typo
* Update spec
* Limit number of header fields and update card content
* Decorate correct model
* Update factory
* Update schema.rb
* Fix validation
* How bad could this possibly be?
* Pretty bad, nevermind
* Remove obsolete code
* Reset profile fields during test runs
* Move profile fields back to before(:suite)
* Spec fixes
* Remove accidentally re-added files
* More spec fixes
* Specs
* Change User#tag_keywords_for_search
* More spec fixes
* Add comment
* Undo accidental schema changes
* Attempt spec fix
* Remove fix attempt
* Fix e2e test
* Update spec
* Remove guard clause
* Remove hardcoded instances of education field
* WIP Access display_email_on_profile via User Settings
* Remove unused profile column
* WIP fix issues revealed by systems specs
* WIP fix issues revealed by services specs
* WIP Fix failing tests
* WIP Fix spec failures
* wip
* Move two attributes from controller to decorator
* Update comment
* More consistently use user.tag_line
Even before the profile changes we sometimes used the user.summary
attribute directly but used the user.tag_line method in other places.
* Remove education
* Add comment
* WIP
* Clean up mostly_work_with
* WIP
* Update work profile field handling
* More work-related changes
* Remove settings_only from display_area enum
* Remove quickfix from _metadata partial
* Remove special attributes
* Remove leftover spec
* Retrieve location from profile, not user
* Profile.special_attributes no longer exists
* Update specs
* More spec fixes
* Update UsersController
* Update UsersController and spec
* Fix e2e seeds
* Minor cleanup
* More e2e seed fixes
* Fix profile field CSV
* Fix e2e seeds
* Move one more attribute in e2e seeds
* Remove duplicate line
* Clear inputs before typing in them
* Fix formatting issues
* Profiles::Update -> Users::Update
* Remove RegistrationsController#resolve_profile_field_issues
* Fix schema.rb
* More cleanup
* Fix specs
* Fix remaining spec
Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
* Make podcast-playback to be controllable via keyboard
* Add improved state handling for the play/pause controller
* Fix business logic + Improve HTML semantics
* Remove manual tabIndex addition (not required now)
* Refactor redudant event-listener
* Keep aria-pressed label in sync in all cases
* Code refactor
* Add seed data to create a test podcast
* Add a static file and use that as example podcast episode (#1)
Rather than relying at test time on external media, and requiring the
podcast episode import flow to run during e2e testing, just insert a
canned episode that shows.
Confirmed in cypress this does show after visit('/pod') in the
togglePodcastPlayback.spec.js
* Add cypress test
* Move cypress tests
* Update cypress/integration/seededFlows/podcastFlows/togglePodcastPlayback.spec.js
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* fix button name in test
Co-authored-by: Daniel Uber <djuber@gmail.com>
Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>