* fix: end tag not in the correct place :(
* feat: update the footer links to be dynamic
* feat: make the layout dynamic as well
* spec: update
* fix: column flow rather than row
* Remove extra character from meta_keywords in /listings/index.html.erb
* Remove meta_keywords from MANDATORY_CONFIGS
* Add and use meta_keywords_tag helper
* Use modern tag syntax instead of deprecated syntax
* Add and use meta_keywords_default helper
* Add and use meta_keywords_article helper
* Remove * from meta_keywords_field.label
* Update meta_keyword specs to account for no keywords being set
* Add ga tracking to config
* Remove empty line
* Remove console.log
* Fix typo
* Update app/assets/javascripts/initializers/initializeBaseTracking.js.erb
* Add google tracking id example
* Update mobile version of /new registration view
* Optimize styles for desktop view
* Fix typo
* Fix typo
* Add twemojis in footer area
* Update messaging to fulfill all intents
* cache
* cache
* hr-label fix on mobile
* hr-label fix on mobile
* crayons for checkbox
* crayons for checkbox
* remove old styles
* move signin to appropriate folder
* Remove schema changes
* Fix registraction specs and hide password hint for no SSO enabled
* Disable email hint for password reset page
* Fix specs
* Revert "Disable email hint for password reset page"
This reverts commit b33a6dda4c13534541294281f83f7ad5a4864c0d.
* Transfer User.registered.estimated_count to the controller
* Fix import path
Co-authored-by: ludwiczakpawel <ludwiczakpawel@gmail.com>
Co-authored-by: rhymes <rhymes@hey.com>
* Replace in Cache-Control header to support Nginx caching
* Add 'X-Accel-Expires' header for Nginx caching
* Remove max-age directive from remaining specs
* Update caching header specs to test against x-accel-expires header
* Introduce domain model for campaigns
* Move main_tag method to decorator
* Add options argument to decorator method
* Change more code to use Campaign domain model
* active? -> show_in_sidebar? and fix spec
* Switch back to leading dots after merge
* Remove sort links from tags for logged-out (SEO)
* Fix tests
* Fix tests take 2
* Final test fix
* Read error message more clearly
* Adjust tests
* Final test fix
* Change models and related files
* Update controllers and specs
* More renaming
* Seek and destroy, I mean search and replace
* Round up the stragglers
* Ground control to Major Travis...
* More fixes
* PR feedback
* Various fixes
* Rename view
* Fix list query builder
* Unify request specs
* Fix some API spec errors
* Fix remaining API specs
* Make spec conform to API
* Fix leftover problems
* Fix JS tests
* Fix column name in select
* Fix API specs
* Fix search specs
* Paging Mr. Travis
* Remove unnecessary .downcases from methods in Stories::Controller
* Removes .downcase from methods using params[:username]
* Removes .downcase from handle_user_or_organization_or_podcast_or_page_index
* Removes .downcase from handle_user_index
* Add shared_examples for lowercase routing to stories_index_spec.rb
* Replace create with build in stories_index_spec.rb
* Add route_downcaser gem to Gemfile to make routes case-insensitive
* Ensures paths are downcased and redirects to lowercase routes
* Resolves SEO issue where uppercase routes do not redirect to lowercase
* Add before_action to redirect to lowercase user routes
* Adds a before_action for the index only
* Redirects lowercase usernames and article titles
* Comments out route_downcaser gem in Gemfile for now
* Redirect to lowercase usernames in StoriesController#show for uppercase usernames
* Redirects in before_action for the index method only
* Adds nil check in #redirect_to_lowercase_username
* Adjusts stories_index_spec.rb to be more concise
* Removes old and unnecessary code from StoriesController and spec
* Add additional testing around lowercase name redirects and aggregate_failures
* Replace hardcoded URL with URL helper in Stories::Controller and stories_index_spec
* Fix GET request in stories_index_spec.rb
* Use upper in place of A-Z in regex in redirect_to_lowercase_username
* Revert URL helper changes and use params instead in Stories::Controller and stories_index_spec
* Added configurable meta keywords
* Replaced hardcoded meta-keywords with the configurable ones
* Added tests for configurable meta_keywords
* Improve info for configuring meta-keywords
* wip
* Removed reference to cached_tag_list as the feed enpoint only returns tag_list now.
* Removed reference to cached_properties.
* Updated <CommentsCount /> and <TagList /> to support additinal className
* wip
* wip
* Undid init scrolling for Algolia articles
* Converted homePageFeed.jsx to an ERB template to access Sprockets.
* Now the homePageFeed.jsx files is an ERB so it can load Sprockets assets.
* wip
* Removed accidental commit of debugger statement in ERB.
* Now different feed time frames are loaded based on the homepage feed tab clicked.
* Prevent default Algolia paging when on the homepage.
* Added a tiny comment about feed time frame.
* Now feed loads properly for each time frame on home page.
* prop name refactor.
* Reneabled default Algolia scrolling.
* On the homepage, we no longer overwrite article HTML with Algolia data for initial articles.
* Assumption is the proper URL for main_image of featured article will be sent in the feed.
* Fixed Google Analytics for featured article.
* No longer need the new-feed ID for checking if we're on the homepage.
* Trying to make codeclimate happy.
* wip
* Removed reference to cached_tag_list as the feed enpoint only returns tag_list now.
* Removed reference to cached_properties.
* Updated <CommentsCount /> and <TagList /> to support additinal className
* wip
* wip
* Undid init scrolling for Algolia articles
* Converted homePageFeed.jsx to an ERB template to access Sprockets.
* Now the homePageFeed.jsx files is an ERB so it can load Sprockets assets.
* wip
* Removed accidental commit of debugger statement in ERB.
* Now different feed time frames are loaded based on the homepage feed tab clicked.
* Prevent default Algolia paging when on the homepage.
* Added a tiny comment about feed time frame.
* Now feed loads properly for each time frame on home page.
* prop name refactor.
* Reneabled default Algolia scrolling.
* On the homepage, we no longer overwrite article HTML with Algolia data for initial articles.
* Assumption is the proper URL for main_image of featured article will be sent in the feed.
* Fixed Google Analytics for featured article.
* No longer need the new-feed ID for checking if we're on the homepage.
* Added postcst episodes to <Feed /> state.
* Breaking up Article.jsx to make codeclimate happy.
* wip
* Created the <TodaysPodcastEpisodes /> and <PodcastEpisode /> components.
* Fixed issues with some components that were updated for the <FeaturedArticle />
* Added tests for <FeaturedArticle />
* Barreled up <FeaturedArticle />
* Added Storybook stories for <FeaturedArticle />
* Featured articles don't display org, so removed that test.
* Added proper today's podcasts components to feed.
* Converted some leftover ERB + removed pro checkmark as it doesn't exist yet.
* Now logic is same as master for feed timeframe.
* Updated <FeaturedArticle /> snapshots.
* On frontpage, bookmark button state is managed by Preact components now.
* bookmarkedFeedItems is now a prop on <Feed />.
* Fixed logic check for initializing reading list icons.
* Now <Article /> and <FeaturedArticle /> receive a bookmarkClick prop.
* Removed beginnings of scroll handler in <Feed /> as we're using what's there already for now.
* Removed logic to not show main image on other time frame feeds as it was not correct.
* Fixed issue with 0 rendering when no podcast episodes in feed.
* Converted <SaveButton /> to a stateful component.
* wip - <Feed /> render prop now passes bookmarked feed item ID set and a click event.
* Moved FEED_ICONS to an export so it's easier to use JSX/JS in <Feed />
* Moved <Feed /> into article components.
* Now reading list save buttons work properly in Preact components.
* Fixed issue with Save buttons in Algolia paging/<Feed />
* Updated snapshots.
* Took <Feed /> out of articles barrel file as jest was trying to import FEED_ICONs which is an ERB template.
* Now the Preact feed is dynamically imported.
* Now the Preact <Feed /> only loads for a logged on user.
* Fixed <FeaturedArticle /> so that the save button behaves properly now.
* Updated article stories for Storybook.
* Putting this back to the order it was because I've removed my code changes for this block.
* Fixed when renderFeed is imported for a logged on user.
* Add podcasts to feed and render home from server
* Add padding to feature laoding div
* Update tests
* Add more loading articles
* Fix conflicts
* Add readinglist javascript to initscrolling
* Ensure first article is one with image
* Organize feed items outside of feed instead of in it
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
Co-authored-by: Josh Puetz <josh@grorichpuetz.com>
* de-emphasizing right sidebar: mostly colors & spacing
* adding a bit more love to typography in sidebar
* changing language on LISTINGS widget header
* hiding profile widget from left sidebar
* cards shadow now looks like a bit less random and annoying
* actually doing the same with all shadows! YOLO
* some spacing cleanups around sidebars
* this time some typography love
* im committing but not really sure what exactly
* adding a bit more love to feed card
* looks like i broke some other views.. time to fix em all
* cleaning up typography a bit more
* .
* separating empty search results styling
* created a card styling mixing to reduce some code.. also moved cheese around a bit
* several more cleanups
* improving responsiveness
* i fixed what i broke
* more cleanups
* org badge
* .
* ...
* responsiveness
* .
* some adjustments
* bring back profile card
* tiny logo adjustment
* bunch of further refainments
* typography
* a bit more refainments
* whoops
* bringing back CTAs styling to loggedout sidebar
* fixes to left tags in left sidebar after merge
* buttons fix
* fixing border-color
* Update app/assets/stylesheets/articles.scss
Typo!
Co-Authored-By: Nick Taylor <nick@iamdeveloper.com>
* .
* css cleanup + double border on article page
* removing unnecessary comments
* get rid of loading glitch
* static vs fixed header
* Update system specs
* Update client test snapshots
* Further modify homepage specs
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Add json support at stories/index endpoint
* Tweak tests
* Add main image
* Some light refactoring in StoriesController
* Tiny test refactor
* Split feed generation to it's own controller
* Use Jbuilder for article formatting
* Blank lines thanks Rubocop
* Don't cache this response: we want it generated per use each time
* Whoops!
* PR changes and tweaks to Timeframmer constants
* Remove initializer test since arguments aren't required
* feat: port over changes (+ suggestions) from https://github.com/thepracticaldev/dev.to/pull/5892/files
* chore: add query over multiple lines
* refactor: move the sql logic into the controller instead of in the template
* chore: appease code climate
* show blurb for tag sponsors
* check that sponsorhip is live and account for expiration time
* automatically add expiration date to tags
* update tag offering
* rewrite tag auto expiration
* night mode compatibility for sponsor logos
* fix spec
* update specs
* Small css adjustment
* Don't hide podcasts if they have reachable episodes
Recheck episodes' reachability after the podcast status is set to
unreachable
* Update db/schema.rb
* Fix GetEpisodesJob specs
* Fix stories spec
* Episodes are reachable even if the podcast is unreachable
* Improve the Podcast.reachable query
* Fix podcasts root page spec
* Add index concurrently
* Add Sponsorship model
* Add Sponsorship to admin
* Add correct relationships between models
* Add temporary script to migrate sponsorship data
* Use constants for enums
* Use Sponsorship model in PartnershipsController
* Use Sponsorship in the views
* Validate sponsorship levels and tag combos
* Replace the rest of the sponsorship code to use Sponsorship
* Add db relationship for comment and notifications
* Use delete instead of destroy
* Add comment's ancestors' data
* Delete descendant notification data appropriately
* Update notifications for comments up the tree as well
* Update descendant notifications appropriately
* Fix apostrophe edge case
* Make ancestor_data method private