Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

introduce specialized view for rails 8 authentication generator #384

Merged
merged 5 commits into from
Aug 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions .github/workflows/upstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,42 @@ on:
- .github/workflows/upstream.yml # this file

jobs:
tests:
name: "tests (rails main)"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ["3.3"]
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{matrix.ruby}}
- run: |
rm Gemfile.lock
bundle remove actionmailer
git clone --depth 1 --branch main https://github.com/rails/rails
bundle add actionmailer --path=rails
bundle add railties --path=rails
bundle install
- name: Run tests
run: bin/test

user-journey:
name: "user-journey (rails main)"
runs-on: ${{matrix.plat}}-latest
strategy:
fail-fast: false
matrix:
plat: ["ubuntu", "windows", "macos"]
runs-on: ${{matrix.plat}}-latest
env:
RAILSOPTS: --git=https://github.com/rails/rails --branch main
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
ruby-version: "3.3"
bundler: latest
- run: test/integration/user_journey_test.sh
shell: bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
require "rails/generators/erb/authentication/authentication_generator"

module Tailwindcss
module Generators
class AuthenticationGenerator < Erb::Generators::AuthenticationGenerator
source_root File.expand_path("templates", __dir__)
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<div class="mx-auto md:w-2/3 w-full">
<%% if alert = flash[:alert] %>
<p class="py-2 px-3 bg-red-50 mb-5 text-red-500 font-medium rounded-lg inline-block" id="alert"><%%= alert %></p>
<%% end %>

<h1 class="font-bold text-4xl">Update your password</h1>

<%%= form_with url: password_path(params[:token]), method: :put, class: "contents" do |form| %>
<div class="my-5">
<%%= form.password_field :password, required: true, autocomplete: "new-password", placeholder: "Enter new password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>

<div class="my-5">
<%%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", placeholder: "Repeat new password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>

<div class="inline">
<%%= form.submit "Save", class: "rounded-lg py-3 px-5 bg-blue-600 text-white inline-block font-medium cursor-pointer" %>
</div>
<%% end %>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div class="mx-auto md:w-2/3 w-full">
<%% if alert = flash[:alert] %>
<p class="py-2 px-3 bg-red-50 mb-5 text-red-500 font-medium rounded-lg inline-block" id="alert"><%%= alert %></p>
<%% end %>

<h1 class="font-bold text-4xl">Forgot your password?</h1>

<%%= form_with url: passwords_path, class: "contents" do |form| %>
<div class="my-5">
<%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>

<div class="inline">
<%%= form.submit "Email reset instructions", class: "rounded-lg py-3 px-5 bg-blue-600 text-white inline-block font-medium cursor-pointer" %>
</div>
<%% end %>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<div class="mx-auto md:w-2/3 w-full">
<%% if alert = flash[:alert] %>
<p class="py-2 px-3 bg-red-50 mb-5 text-red-500 font-medium rounded-lg inline-block" id="alert"><%%= alert %></p>
<%% end %>

<%% if notice = flash[:notice] %>
<p class="py-2 px-3 bg-green-50 mb-5 text-green-500 font-medium rounded-lg inline-block" id="notice"><%%= notice %></p>
<%% end %>

<h1 class="font-bold text-4xl">Sign in</h1>

<%%= form_with url: session_url, class: "contents" do |form| %>
<div class="my-5">
<%%= form.email_field :email_address, required: true, autofocus: true, autocomplete: "username", placeholder: "Enter your email address", value: params[:email_address], class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>

<div class="my-5">
<%%= form.password_field :password, required: true, autocomplete: "current-password", placeholder: "Enter your password", maxlength: 72, class: "block shadow rounded-md border border-gray-400 outline-none px-3 py-2 mt-2 w-full" %>
</div>

<div class="col-span-6 sm:flex sm:items-center sm:gap-4">
<div class="inline">
<%%= form.submit "Sign in", class: "rounded-lg py-3 px-5 bg-blue-600 text-white inline-block font-medium cursor-pointer" %>
</div>

<div class="mt-4 text-sm text-gray-500 sm:mt-0">
<%%= link_to "Forgot password?", new_password_path, class: "text-gray-700 underline" %>
</div>
</div>
<%% end %>
</div>
16 changes: 16 additions & 0 deletions test/lib/generators/tailwindcss/authentication_generator_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
require "test_helper"

if Rails::VERSION::MAJOR >= 8
require "generators/tailwindcss/authentication/authentication_generator"

class Tailwindcss::Generators::AuthenticationGeneratorTest < Rails::Generators::TestCase
tests Tailwindcss::Generators::AuthenticationGenerator
destination TAILWINDCSS_TEST_APP_ROOT

test "generates the new session template" do
run_generator

assert_file "app/views/sessions/new.html.erb"
end
end
end