* feat: add a first version of the confirmation page - still a wip
* feat: style the modal properly
* chore: update the text
* chore: update from master
* fix: add the correct text and layout for the feature flagged confirmation email
* feat: use the view_class functionality to assign some css styling to the confirmations class
* feat: add the Forem background
* feat: add some styling to "Click Here"
* feat: polish styles
* feat: the padding will be used for mobile
* chore: some blank lines
* feat: add some more styles
* feat; use media queries
* feat: add a callback to the modal
* feat: handle all javascript on the confirmation form
* feat: change back to a button
* feat; change from button to span for accessibility
* feat: add the callback in an if condition
* feat: add a main-content
* feat: update the confirmation page html
* feat: add Cypress test
* minimal seeded flows
* fix: rename the file
* feat: update confirm email spec
* fix: remove mistake
* refactor: rename the files appropriately
* feat: change some text
* fix: typo
* fix: update as per suggestions
This matches what happens for the html preview ("Joined" is the user's
created_at timestamp), and what the json builder does:
json.created_at utc_iso_timestamp(@user.created_at)
Update the test cases to assert the profile preview is showing the
user's created_at, not the profile's created at.
Since these are almost always the same thing, we didn't notice
this. However, if a user is created just before the second boundary,
and their profile created immediately after the second boundary (so
that the iso8601 values have distinct seconds) this could fail when
looking at the wrong objects timestamp.
To test this locally I modified the user let block to update the
timestamp to be a day earlier (this would not have happened in
practice but was sufficient to cover the use case).
let(:user) { create(:profile).user.tap {|u| u.update(created_at: 1.day.ago) } }
* fix: github readme liquid tag broken links in HTML
The relative links contained in the README's HTML are replaced by absolute links.
These absolute links have broken URL's: https://raw.githubusercontent.com/forem/forem/main/#what-is-forem
This commit aims to fix the links with a correct URL: https://github.com/forem/forem#what-is-forem
* Add a test for GitHub Readme with relative URLs
* Fix test for GitHub Readme with relative URLs
* Fix test for GitHub Readme with relative URLs
* Revert "Fix test for GitHub Readme with relative URLs"
This reverts commit 1b38da9132baf72f88303316ab6116eb9175909b.
* Use new cassette for for GitHub Readme with relative URLs test
* Add cassette file for GitHub Readme with relative URLs test
I noticed a warning from rspec when this policy spec ran:
Using expect { }.not_to permit_actions could produce
confusing results. Please use `.to forbid_actions` instead. To
clarify, `.not_to permit_actions` will look at all of the actions and
checks if ANY actions fail, not if all actions fail. Therefore, you
could result in something like this:
it { is_expected.to permit_actions([:new, :create, :edit]) }
it { is_expected.not_to permit_actions([:edit, :destroy]) }
In this case, edit would be true and destroy would be false, but both
tests would pass.
I just follow the helpful advice.
* Add a failing test case
Currently fails with the reported error
expected no Exception, got #<ArgumentError: Requires a Node, NodeSet or String argument, and cannot accept a NilClass.
* Only replace inner html if not nil
`sub!` can return nil and you can't set an XML::Element's content to
nil (coercion fails).
* Use sub rather than sub! since we'll be using assignment
The issue we were seeing was that sub! returns nil when no change was
made, while sub always returns a string (with modificationsn made).
Remove temp variable since it's not needed when we use the other method.
* Update admin welcome checklist
* Update invite link text in test
* Remove extraneous invite line and period
* Add overview tracking to all links in checklist
* Fix spec to check for proper link
* Create new Issue templates
Adding a config.yml to give more options in our issues template. Will likely add some for documentation in the near future.
* Fixed url and about mixup in Self Host Bug Report
* Fixed spelling for consistency with Self-Host repo
* update-member-dropdown-to-remain-on-mouseout-when-click
* add test for topNavigation
* fix cypress test for member dropdown button
* fix typo, change file name
* use data-attribute isntead of empty class for clicked event
* refractor syntax
* remove unnecessary alias
* Add release scripts
* Use `delete` over `gsub` with an empty string
Co-authored-by: Michael Kohl <citizen428@dev.to>
* wip
* wip
* Include stable release-channel branches in builds
* Add changelog stub
* Include the union of changes to the changelog
* Add things
* Add stuff
* Remove test changelog content
* Fix String#delete call
Extraneous `.` made Ruby parse it as a range
* Fix suggested release command
* Use backticks to denote a command to run
* Add debugging output to script
* Build more appropriate containers for stable
This includes tags
* Check if branch *starts with* release channel name
* Cache tag builds from production tag
* Skip trying to build containers for untagged pushes
* Clear out stubbed changelog
* Update PR template to incorporate CHANGELOG.md
* Run Rubocop on release scripts
This excludes some linter rules that only make sense in code that is
running as part of the Rails app. For example, we can't rely on
`ActiveSupport::TimeWithZone` because these scripts don't load Rails,
and we define top-level methods because they're scripts rather than
complex applications.
Co-authored-by: Michael Kohl <citizen428@dev.to>
* Tests are failing to find header:nth-child(1)
Not sure why this did not fail in the branch - but the merge build
failed
Use 'div > header' (shudder), replacing the prior 'main > header'
selection, and avoiding the nth-child pseudoclass selector, to find
the "header" in the dashboard body containing the summary statistics.
This avoids the conflict with the top header (forem logo, search,
dropdowns) from the body/summary header (post views, credits
available, etc).
* Specify which div we want to look at
* change dashboard landmark nesting
* switch to main db/schema.rb
* remove unnecessary div
* revert scema.rb to main
* fix user_visits_dashboard test
* change aside to nav, put nav back into main-content
* remove unnecessary file
* remove duplicate nav
* add id to main
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* create new pack, handle user follow buttons, use pack on article page, remove initializeUserFollowButts
* init all follow button types, add pack to tag index and podcast episode pages
* add pack to all relevant pages, listen for newly inserted follow buttons
* change to searchParams to remove follow button initializer calls
* fix bug with tag page, add pack to notifications page
* fix issue with follow back inner text
* update cypress specs
* run the followbuttons code on sponsors page
* remove extra foreach
* add test for follow from article sidebar
* add test for follow and unfollow tag
* add test for the tag index page
* add spec for organisation profile follow
* add tests for follow buttons in search results
* add tests for notification follows
* commit missed file - woops
* show login modal if user is logged out when they click
* add cypress tests for logged out state
* change tag button initialization
* remove data-button-initialized
* init follow buttons from base pack
* handle the case where multiple follow buttons exist on a page for the same user
* account for instantclick and userdata not being defined, lower coverage for jest
* use getInstantClick
* fix issue with set initialisation
* only listen for mutations in areas we know follow buttons may be added dynamically
* small refactors