* Add the preview card to logged out feed initial content
* initialise the initial dropdowns added on the logged out feed
* minor tweak to selector
* flip the follow button and the summary
* add minimal preview card to build article HTML
* WIP: data fetched an inserted into card on logged out feed
* WIP: cards added to logged in feed
* create separate profile preview card component
* small style tweak, import pack on each page that shows feed cards
* rename
* tweak some styling issues
* make sure follow buttons init in cards
* populate all matching metadata placeholders after fetch
* don't render full preview card upfront on logged out feed
* refactors from PR comments
* fix issue in person search results
* remove check for article author link that will be superseded by cypress test for preview card
* Revert "remove check for article author link that will be superseded by cypress test for preview card"
This reverts commit 9b42804ffd0f051891c87293d0b791ed2bb0367f.
* Revert "fix issue in person search results"
This reverts commit 04941e3520c0895212141193b60f2933faed5ca1.
* only show the preview cards on story cards for Posts (not users etc in search results)
* correct display on collections view
* remove link check that will be replaced by cypress test
* tweaks to small issues, add a test for the logged out feed
* add tests for logged in home feed, logged out tag index
* add search test and tag index logged in test
* fixes to preview profile spec
* tweak to followauthor spec
* add cypress test for preview on series page
* use a unique test user for series test
* correct the jsdoc comments
* tweaks following PR review
* allow feed preview cards to reposition
* move to separate file from pack
* Edit buttons styles for Templates responses (Mod)
* Update comments.scss
* Edit classic CSS buttons to SCSS
* added m-1 to submit buttons
* Deleted CSS class for .response-templates-container and added mb-3 to header
* Add crayons-btn to personal and moderator buttons
* Update app/assets/stylesheets/views/comments.scss
Co-authored-by: rhymes <github@rhymes.dev>
* fix analytic page have no back-to-dashboard button when user have no organization
* resolve conflict with main
* remove dump
* add test for back to dashboard button
* added aria-pressed to comment buttons
* Added accessibility title
* updated set attribute and text content of aria-title
* removed 'x likes' from svg titles
* Added e2e tests to test behaviour of like toggle button
* changed reaction button's description to save instead of Saved
* Fixed cypress test
* schema file undelete description
* update with main
* update with origin
* update
* fix nav link spacing in Admin
* fix alignment issues for large position numbers
* Removing :apple_auth feature flag and debugging
* Fix tests failing due to nil in Devise initializer
* Remove db/schema.rb changes
* Devise config tweak
* cleaning up
* Fix spec + delete debug logs
* Removes temporary beta_access_providers spec + remove feature flag DUS
* Add test to avoid connecting an existing user with SIWA
* Fix merge conflict mistake + more feature flag cleanups
* 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
* 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
* 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
* schema file undelete description
* update with main
* update with origin
* add sections in Admin
* Add "Section" radio btns to New-Link form
* Ensure links created in correct section
* Ensure links created in correct section pt2
* fix styling in admin
* complete section split on frontend
* start on specs
* complete specs
* remove unnecessary Cypress test file
* address all a11y comments in PR review
* fix broken specs due to a11y changes
* Show the navigation options regardless of screen size
* Add link back to forem homepage for small screens
* Fix link URL + add small padding
* Remove padding class
* Validate website_url profile field is a url
related to issue #14300
May need a data update script to (fixup? remove?) invalid profiles
since not being able to save existing profiles will cause problems.
* Check that URI is a valid url
Require the scheme to be one of https or http, not something like
mailto:// or telnet:// (nobody would do that, but don't try and link
to it if they did).
* Rubocop fixup for validation rule
URI::regexp is obsolete and should not be used. Instead, use URI::DEFAULT_PARSER.make_regexp
Prefer %w[] literals for arrays of words
Prefer the new style validations `validates :column, format: value` to validates_format_of
* Permit empty website_url fields
The previous validation was rejecting nil, which was the default. This
caused a lot of user factory calls to fail (since users didn't need
website urls in the profiles during testing unless the test was about
the website url link).
* Use :url validation as suggested
* Update validation error message
The validate_url gem gives a more complete error message to the
user. Update the spec to expect this.
* Use url_field rather than text_field in profile form
https://apidock.com/rails/v6.1.3.1/ActionView/Helpers/FormHelper/url_field
* Add data update to either fixup or clear invalid website urls
Checking blazer there are about 2600 profiles with "invalid" website
urls, typically a hostname, sometimes a hostname + path component,
which should be fixed up.
Naively add https:// to the front of the url, check that a valid
scheme and host are present on the resulting url, and save.
If an invalid url is generated (specifically, if host or scheme are
nil), just set the website url (with the invalid link) to an empty
string.
It's possible we'd want to notify users affected by this, that was not
included in this pass.
* Skip validations for intentionally invalid test cases
* Add tests and Railsify a few things
* Adds JSON representation of ProfilePreviewCardsController
* Load profile and setting eagerly
* Add profile preview card color
* change readonly input to p tag
* add pointer cursor and focus on copy post url option
* add Enter keypress eventListener to copy post url option
* add test for enter press event, refractor some test to click on copy post url option instead of just the image
* make copy post url font bold
* add scss class sidebar for dropdown && fix sidebar dropdown reaching under topheader in large screen resolution
* resolve conflict with main
* Update _actions.html.erb
* changin markup to improve accessibility
* make variable name appropriate, switch cypress to imitate user interaction
* remove dump file, fix test to use alias
* Remove unused profile fields
* Clean up CSV
* Account for user settings in Profiles::Update
* Move brand color validation to Users::Setting
* Fix specs
* Show pinned article to logged out users
* Check if pinned is defined
* Update app/views/articles/_single_story.html.erb
Co-authored-by: Michael Kohl <citizen428@dev.to>
Co-authored-by: Michael Kohl <citizen428@dev.to>
* fix: modal appears under the navbar-13195
* removed unncessary made changes to schema.rb
* made sure schema file is equivalent to file in main branch
* Banner v2 - first working version
* Move pack_with_chunks_tag up + removing comments
* Trying to fix unlrelated tests
* Revert experiment
* Defer initialization until page is ready
* Test refactor + trying out UDL Server refactor
* Revert experiment - to be handled in separate PR
* refactor to use function component
* Cleanup unused lines in cypress test
* Update app/javascript/runtimeBanner/RuntimeBanner.jsx
Co-authored-by: Nick Taylor <nick@forem.com>
* Apply review feedback
* Update app/javascript/runtimeBanner/RuntimeBanner.jsx
Co-authored-by: Nick Taylor <nick@forem.com>
* Add import clause + extract functions outside of component
Co-authored-by: Nick Taylor <nick@forem.com>
* search js in a separate file
* add file searchParams and import utilities
* fix imports
* use global header eslint
* add spaces in eslint comments in searchParams.js
Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: rhymes <github@rhymes.dev>
* Uses Settings::UserExperience.public to conditionally render btn
* Updates landing page-related specs to account for private forem
* Uses Settings::UserExperience in place of ForemInstance in admin_creates_new_page_spec.rb
* Reverts Settings::UserExperience.public? changes throughout codebase
- Removes any changes to ForemInstance.private?
- Adds a new helper method, self.invitation_only?
- Updates self.private? logic
* Updates landing page specs and reverts unnecessary changes
- Reverts any changes that removed the check for
ForemInstance.private?
- Updates landingPage.spec.js to use findByRole rather
than findByText
* Reverts a change to admin_manages_pages_spec.rb
* Updates landingPage.spec.js per PR review comment
* Updates #private_forem_or_no_enabled_auth_options and spec
* Uses .invite_only? in _providers_registration_form.html.erb
* Adjusts authenticationSection.spec.js to test that FB is enabled
* Updates necessary specs to check .invitation_only?
* Consistently uses invite_only_mode_or_no_enabled_auth_options
- Updates all necessary places within the codebase to use
reverted method name, invite_only_mode_or_no_enabled_auth_providers
- Updates #self.enabled to check ForemInstance.invitation_only?
rather than ForemInstance.private?
- Reverts change to Facebook assertion within authenticationSection
e2e test
* Removes superfluous .to from authenticationSection.spec.js
* fetch preview card follow buttons in one network call
* when new comment is submitted, only fetch new comment status
* make sure individual button follow requests continue to init
* Add follow-user class to all follow user buttons via the application helper
Co-authored-by: mstruve <mollylbs@gmail.com>
* schema file undelete description
* feat: v1 of the script
* Flesh out remaining enums under their categories
* complete UsersSettings data update script
* complete DUS for relevant attributes in users and profiles tables
* complete DUS for users_notification_settings
* alphabetize user_settings sql file
* safeguard against null values for "null: false" settings
* Set up actual UsersSettings DUS and specs files
* fix broken DUS script
* complete specs for UsersSetting DUS
* Address QA of specs
* complete specs for users_notification_settings DUS
* fix the typos (thanks Julianna!)
* begin implementation
* still building
* add missing attribute "email_membership_newsletter"
* complete sync code (except race condition for user profile)
* complete implementation, remains tests
* Address PR review and fix Travis fails
* remove superfluous Profile.new
* fix travis fails
* feat: update the users_notification_setting attributes from the user model
* feat: use the config fonts enums to display the fonts
* feat: loop through the keys
* fix profile = nil blowing up; add specs for notification_setting model
* remove unneeded spec
* remove feed validation until after sync code removed; fixes feed_import spec failures
* remove spec associated with feed_url validation in user_setting model
* fix failing spec 😅
* add TODO
* feat: set the user settings in the user controller and use it in the customization form
* feat: move some update logic to the users settings controller thats being used from customization
* feat: show the updated values form the users_settingd and not the user instance
* Generalize redirect back to current tab
* still trying to reflect changed theme upon refresh
* customizations take effect on refresh
* remove 'with_feed' scope from user model
Co-authored-by: Jamie Gaskins <jamie@forem.com>
* start with takeover for fields previously in profiles table
* Takeover code for `publishing_from_rss` section in Settings (#13914)
* implement takeover code part 1
* implement takeover code
* fix feed fetch
* need rhymes help
* complete implementation; specs pending
* fix STUPID omission that caused so many headaches 😫
* implement profile fields pointing to users_settings 🎉
* run migrations
* implement inbox type & guidelines takeover code; specs pending (#13911)
* Point changes in notification settings to `users_notification_settings` table (#13910)
* implement takeover code; remains specs
* address PR feedback; remove related sync code
* address PR review feedback
* need help with routing and specs
* address pr review
* addressing pr review
* Treat implementation edge cases and omissions 😅
* fix uncommented comment
* fixing implementation cases
* address more PR review feedback
* fixing notifications use-cases
* refactor settings controller
* more pr review changes
* solving bugs
* fix broken onboarding
* handle eperience_level calls
* more fixes
* remove unneeded mappings
* add To-dos for quety updates
* remove done TODO
* purge done TODOs
* update notification_settings-related queries
* start fixing specs
* fixing specs
* fix notification and lrg_forem specs
* fixing broken specs
* still fixing
* fix line dif and remove reloads from user.rb
* run specs
* silence bullet and other fixes
* remove setting migration scripts and specs, fix more settings for specs
* handle missing user for article builder and fix notification specs
* fix some final controller specs and re-add incorrectly removed specs
* remove deprecated data update scripts and related workers, put travis back
* refactor admin tags mods controller, write/move specs for users notifications settings controller
* schema cleanup and other small refactors for consistency
* set field we can invalidate in spec via active record instead of at the db level
* remove I think an uneccessary hook call from subscribe_to_mailchimp_newsletter
* use bnefore_create to setup settings, please dont blow up the test suite
* mailchimp bot fix
* remove decorator in favor of single model method
Co-authored-by: Arit Amana <msarit@gmail.com>
Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>
Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com>
Co-authored-by: Jamie Gaskins <jamie@forem.com>
* fix wrong markup ul - use div instead
* fix inline styles on link tag
* fix markup button follow
* use button tag function - e2e
* fix e2e error with button_tag() undefined