* Adds landing_page checkbox for Landing Page * Adds landing_page to page_params in Admin::Pages::Controller * Adds landing_page to admin_manages_pages and admin_creates_pages specs * Adjusts copy for Landing Page in pages/_form.html.erb * Places #post_a_job before #privacy in Pages::Controller - Ensures that all page-related methods are properly alphabetized * Alphabetizes remaining out-of-order page-related methods - Ensures that all page-related methods within the Pages::Controller are in alphabetical order, following the order of the other methods * Adds landing_page check to ApplicationController#verify_private_forem * Adds a single_landing_page validation to the Page model * Adds a lock.svg to /images and uses it in the pages index * Adjusts buttons and checkboxes to use crayons class in pages partial * Ensures that pages/_form.html.erb destroy button uses crayons * Adds a landing_page validation-related test to page_spec.rb * Updates #single_landing_page validation and error message * WIP: Adds JS modal upon landing_page error in pages/_form.html.erb * Adds a working modal upon error in pages/_form.html.erb - Removes redundant #single_landing_page validation from Page - Adds #has_a_landing_page? in place of #single_landing_page - Conditionally renders the landing_page checkbox in _form.html.erb - Adds styles to locked screen/landing page modal - Adds copy to locked screen/landing page modal - Beings adding buttons to overwrite current landing_page * Updates the data-modal-selectors and ids in pages/_form.html.erb * Uses #landing_page_path within pages/_form.html.erb modal - Adds a link_to to link to the current landing page in the modal - Adds styles to buttons and link_to in modal * Adds back single_landing_page validation to Page.rb * Reverts changes and updates methods within Page.rb - Reverts changes to #single_landing_page - Refactors #has_a_landing_page? and #landing_page_path - Updates div id in pages/_form.html.erb * Adjusts #single_landing_page error message slightly * Adds a test for landing_pages in stories_index_spec.rb * Adds an overwrite attribute to Pages for the modal in _form - Fixes anonymous spelling * Refactors pages/_form.html.erb and cleans up spelling * Adds a safe operator to landing_page.path in Page - Adjusts the placement of the hidden value in pages/_form.html.erb * Updates styling for Current Locked Screen link * Adds the ability to overwrite an active landing page on click - Adds Admin::PagesController#update_and_overwrite and refactors AdminPages::Controller#udpate to work with new method - Adds a remote attribute, overwrite, to Admin::PagesController via a hidden_field in pages/_form.html.erb and an attr_accessor in the Page model - Adds a toggleOverwrite() function to pages/_form.html.erb to toggle the (soon to be hidden) overwrite checkbox in the form -- the checkbox is toggled on button click * Adds a guard clause to #landing_page_path in Page.rb * Adds a safe naviagtor to Admin::PagesController#update_and_overwrite_landing_page * Adds a type and return to Overwrite button to prevent submit * Adds a hidden class to the overwrite checkbox field in _form.html.erb - Hides the overwrite checkbox since it is only used to overwrite the landing_page boolean on click of the "Overwrite current locked screen" button * Adds Admin::PagesController#create_and_overwrite and removes hidden class * Adds landing page-related tests to admin_manages_pages_spec.rb * Remove messy commented out code and place it in GH comment instead * PR Review Feedback: Renames remote attr, defines class methods, updates views - Renames remote attribute to overwrite_landing_page - Updates all necessary views, methods, etc. w/ new attr - Defines two class methods to make code more extensible - Updates all necessary views, methods, etc. w/ new methods * Remove unnecessary comments and revert changes to ternary in _form.html.erb * Adjustments for accessibility within _form and index - Adds a descriptive id to <p> in _form.html.erb - Adds an ariadescribedby field to _form.html.erb - Adjusts title within index.html.erb * Refactors landing_page-related code per PR review requests - Adds a landing_page_modal_controller.js that handles and further customizes the dismiss and overwrite button, and handles opening the modal - Adds a _landing_page_modal partial to extract modal-specific html outside of the _form.html.erb partial - Refactors _form.html.erb to account for the _landing_page_modal partial and the landing_page_modal_controller.js - Refactors the overwrite checkbox to be a hidden_field rather than a hidden checkbox and removes existing hidden_field to accomodate it - Loads the @landing_page within Admin::PagesController#edit for use by the _landing_page_modal.html.erb partial - Refactors Page#single_landing_page to be more readable - Removes useless JS from _form.html.erb * Removes #landing_page_exists? class method since it isnt used now * Uses the #landing_page class method within ApplicationController * Removes pending status from test in admin_manages_pages_spec.rb * Adds an e2e test for landing pages and adds to seeds_e2e - Adds a landingPage.spec.js to test landing pages - Adds a Page to seeds_e2e.rb for landingPage.spec.js * Removes references to articles from e2e test and adds clickable link * Adds another Page to seeds_e2e.rb and updates link names in test * Adds the Current Locked Screen title to modal and opens in new link * Renames Dismiss to Cancel and updates all necessary code * Adjusts landingPage.spec.js * check for existing landing page before showing modal * Update Cypress tests and fix bug in LandingPageModalController * Apply suggestions from code review Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * Orders Pages by created_at desc in /admin/pages/index.html.erb for consistency * Targets specific edit button in landingPage.spec.js Co-authored-by: Suzanne Aitchison <suzanne@forem.com> Co-authored-by: rhymes <github@rhymes.dev> |
||
|---|---|---|
| .buildkite | ||
| .gems | ||
| .github | ||
| .vscode | ||
| .yarn/releases | ||
| app | ||
| bin | ||
| config | ||
| cypress | ||
| datadog | ||
| db | ||
| docs | ||
| lib | ||
| log | ||
| public | ||
| scripts | ||
| spec | ||
| vendor | ||
| .codeclimate.yml | ||
| .dockerignore | ||
| .editorconfig | ||
| .env_sample | ||
| .erb-lint.yml | ||
| .eslintignore | ||
| .eslintrc.js | ||
| .gitattributes | ||
| .gitdocs.js | ||
| .gitignore | ||
| .gitpod.dockerfile | ||
| .gitpod.yml | ||
| .nvmrc | ||
| .postcssrc.yml | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .rspec | ||
| .rubocop.yml | ||
| .rubocop_todo.yml | ||
| .ruby-version | ||
| .simplecov | ||
| .slugignore | ||
| .travis.yml | ||
| .yardopts | ||
| .yarnclean | ||
| .yarnrc | ||
| babel.config.js | ||
| CODE_OF_CONDUCT.md | ||
| config.ru | ||
| container-compose.yml | ||
| Containerfile | ||
| CONTRIBUTING.md | ||
| cypress.dev.json | ||
| cypress.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| empty-module.js | ||
| Gemfile | ||
| Gemfile.lock | ||
| Guardfile | ||
| jest.config.js | ||
| jsconfig.json | ||
| LICENSE.md | ||
| package.json | ||
| postcss.config.js | ||
| Procfile | ||
| Procfile.dev | ||
| Procfile.dev-hot | ||
| Rakefile | ||
| README.md | ||
| release-tasks.sh | ||
| SECURITY.md | ||
| svgo.config.js | ||
| testSetup.js | ||
| yarn.lock | ||
Forem 🌱
For Empowering CommunityWelcome to the Forem codebase, the platform that powers dev.to. We are so excited to have you. With your help, we can build out Forem’s usability, scalability, and stability to better serve our communities.
What is Forem?
Forem is open source software for building communities. Communities for your peers, customers, fanbases, families, friends, and any other time and space where people need to come together to be part of a collective. See our announcement post for a high-level overview of what Forem is.
dev.to (or just DEV) is hosted by Forem. It is a community of software developers who write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. ❤️
Table of Contents
- What is Forem?
- Table of Contents
- Community
- Contributing
- Getting Started
- Developer Documentation
- Core team
- Vulnerability disclosure
- License
Community
For a place to have open discussions on features, voice your ideas, or get help with general questions please visit our community at forem.dev.
Contributing
We encourage you to contribute to Forem! Please check out the Contributing to Forem guide for guidelines about how to proceed.
Getting Started
This section provides a high-level quick start guide. If you're looking for the installation guide, you'll want to refer to our complete Developer Documentation.
We run on a Rails backend, and we are currently transitioning to a Preact-first frontend.
A more complete overview of our stack is available in our docs.
Prerequisites
Local
- Ruby: we recommend using rbenv to install the Ruby version listed on the badge.
- Yarn 1.x: please refer to their installation guide.
- PostgreSQL 11 or higher.
- ImageMagick: please refer to ImageMagick's installation instructions.
- Redis 4 or higher.
Containers
Linux
- Podman 1.9.2 or higher
- Podman Compose 0.1.5 or higher
OS X
Installation Documentation
View Full Installation Documentation.
Developer Documentation
Check out our dedicated docs page for more technical documentation.
Core team
- @benhalpern
- @jessleenyc
- @peterkimfrank
- @maestromac
- @zhao-andy
- @lightalloy
- @rhymes
- @jacobherrington
- @mstruve
- @atsmith813
- @citizen428
- @nickytonline
- @joshpuetz
- @juliannatetreault
- @ridhwana
- @fdoxyz
- @msarit
- @jdoss
- @cmgorton
- @andygeorge
- @phannon716
- @s_aitchison
- @jgaskins
- @djuber
Vulnerability disclosure
Forem is the open source software which powers DEV.
We welcome security research on DEV under the terms of our vulnerability disclosure policy.
Acknowledgments
Thank you to the Twemoji project for the usage of their emojis.
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see the LICENSE file in our repository for the full text.
Like many open source projects, we require that contributors provide us with a Contributor License Agreement (CLA). By submitting code to the Forem project, you are granting us a right to use that code under the terms of the CLA.
Our version of the CLA was adapted from the Microsoft Contributor License Agreement, which they generously made available to the public domain under Creative Commons CC0 1.0 Universal.
Any questions, please refer to our license FAQ doc or email yo@dev.to.
Happy Coding ❤️