tailwind_views_generator 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.fasterer.yml +23 -0
- data/.gitignore +11 -0
- data/.rubocop.yml +34 -0
- data/.simplecov +9 -0
- data/.tool-versions +1 -0
- data/.yardopts +12 -0
- data/CHANGELOG.md +10 -0
- data/CODE_OF_CONDUCT.md +22 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +98 -0
- data/LICENSE.txt +21 -0
- data/README.md +121 -0
- data/Rakefile +16 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/generators/tailwind_views/devise_generator.rb +52 -0
- data/lib/generators/tailwind_views/install_generator.rb +134 -0
- data/lib/tailwind_views_generator.rb +10 -0
- data/lib/tailwind_views_generator/helpers.rb +15 -0
- data/lib/tailwind_views_generator/version.rb +6 -0
- data/lib/templates/.DS_Store +0 -0
- data/lib/templates/devise/.DS_Store +0 -0
- data/lib/templates/devise/erb/confirmations/new.html.erb.tt +25 -0
- data/lib/templates/devise/erb/mailer/confirmation_instructions.html.erb +5 -0
- data/lib/templates/devise/erb/mailer/email_changed.html.erb +7 -0
- data/lib/templates/devise/erb/mailer/password_change.html.erb +3 -0
- data/lib/templates/devise/erb/mailer/reset_password_instructions.html.erb +8 -0
- data/lib/templates/devise/erb/mailer/unlock_instructions.html.erb +7 -0
- data/lib/templates/devise/erb/passwords/edit.html.erb.tt +33 -0
- data/lib/templates/devise/erb/passwords/new.html.erb.tt +23 -0
- data/lib/templates/devise/erb/registrations/edit.html.erb.tt +53 -0
- data/lib/templates/devise/erb/registrations/new.html.erb.tt +37 -0
- data/lib/templates/devise/erb/sessions/new.html.erb.tt +36 -0
- data/lib/templates/devise/erb/shared/_error_messages.html.erb +15 -0
- data/lib/templates/devise/erb/shared/_links.html.erb +28 -0
- data/lib/templates/devise/erb/unlocks/new.html.erb.tt +24 -0
- data/lib/templates/devise/haml/confirmations/new.html.haml.tt +15 -0
- data/lib/templates/devise/haml/mailer/confirmation_instructions.html.haml +3 -0
- data/lib/templates/devise/haml/mailer/email_changed.html.haml +7 -0
- data/lib/templates/devise/haml/mailer/password_change.html.haml +2 -0
- data/lib/templates/devise/haml/mailer/reset_password_instructions.html.haml +5 -0
- data/lib/templates/devise/haml/mailer/unlock_instructions.html.haml +4 -0
- data/lib/templates/devise/haml/passwords/edit.html.haml.tt +23 -0
- data/lib/templates/devise/haml/passwords/new.html.haml.tt +15 -0
- data/lib/templates/devise/haml/registrations/edit.html.haml.tt +42 -0
- data/lib/templates/devise/haml/registrations/new.html.haml.tt +27 -0
- data/lib/templates/devise/haml/sessions/new.html.haml.tt +25 -0
- data/lib/templates/devise/haml/shared/_error_messages.html.haml +6 -0
- data/lib/templates/devise/haml/shared/_links.html.haml +20 -0
- data/lib/templates/devise/haml/unlocks/new.html.haml.tt +16 -0
- data/lib/templates/devise/simple_form/erb/confirmations/new.html.erb.tt +18 -0
- data/lib/templates/devise/simple_form/erb/passwords/edit.html.erb.tt +20 -0
- data/lib/templates/devise/simple_form/erb/passwords/new.html.erb.tt +17 -0
- data/lib/templates/devise/simple_form/erb/registrations/edit.html.erb.tt +27 -0
- data/lib/templates/devise/simple_form/erb/registrations/new.html.erb.tt +19 -0
- data/lib/templates/devise/simple_form/erb/sessions/new.html.erb.tt +18 -0
- data/lib/templates/devise/simple_form/erb/unlocks/new.html.erb.tt +17 -0
- data/lib/templates/devise/simple_form/haml/confirmations/new.html.haml.tt +13 -0
- data/lib/templates/devise/simple_form/haml/passwords/edit.html.haml.tt +15 -0
- data/lib/templates/devise/simple_form/haml/passwords/new.html.haml.tt +12 -0
- data/lib/templates/devise/simple_form/haml/registrations/edit.html.haml.tt +21 -0
- data/lib/templates/devise/simple_form/haml/registrations/new.html.haml.tt +14 -0
- data/lib/templates/devise/simple_form/haml/sessions/new.html.haml.tt +13 -0
- data/lib/templates/devise/simple_form/haml/unlocks/new.html.haml.tt +12 -0
- data/lib/templates/devise/simple_form/slim/confirmations/new.html.slim.tt +13 -0
- data/lib/templates/devise/simple_form/slim/passwords/edit.html.slim.tt +15 -0
- data/lib/templates/devise/simple_form/slim/passwords/new.html.slim.tt +12 -0
- data/lib/templates/devise/simple_form/slim/registrations/edit.html.slim.tt +21 -0
- data/lib/templates/devise/simple_form/slim/registrations/new.html.slim.tt +14 -0
- data/lib/templates/devise/simple_form/slim/sessions/new.html.slim.tt +13 -0
- data/lib/templates/devise/simple_form/slim/unlocks/new.html.slim.tt +12 -0
- data/lib/templates/devise/slim/confirmations/new.html.slim.tt +16 -0
- data/lib/templates/devise/slim/mailer/confirmation_instructions.html.slim +3 -0
- data/lib/templates/devise/slim/mailer/email_changed.html.slim +5 -0
- data/lib/templates/devise/slim/mailer/password_change.html.slim +2 -0
- data/lib/templates/devise/slim/mailer/reset_password_instructions.html.slim +5 -0
- data/lib/templates/devise/slim/mailer/unlock_instructions.html.slim +4 -0
- data/lib/templates/devise/slim/passwords/edit.html.slim.tt +24 -0
- data/lib/templates/devise/slim/passwords/new.html.slim.tt +16 -0
- data/lib/templates/devise/slim/registrations/edit.html.slim.tt +43 -0
- data/lib/templates/devise/slim/registrations/new.html.slim.tt +28 -0
- data/lib/templates/devise/slim/sessions/new.html.slim.tt +26 -0
- data/lib/templates/devise/slim/shared/_error_messages.html.slim +6 -0
- data/lib/templates/devise/slim/shared/_links.html.slim +20 -0
- data/lib/templates/devise/slim/unlocks/new.html.slim.tt +17 -0
- data/lib/templates/layouts/application.html.erb.tt +36 -0
- data/lib/templates/layouts/application.html.haml.tt +32 -0
- data/lib/templates/layouts/application.html.slim.tt +31 -0
- data/lib/templates/scaffolds/erb/_form.html.erb +22 -0
- data/lib/templates/scaffolds/erb/edit.html.erb.tt +13 -0
- data/lib/templates/scaffolds/erb/index.html.erb.tt +38 -0
- data/lib/templates/scaffolds/erb/new.html.erb.tt +14 -0
- data/lib/templates/scaffolds/erb/show.html.erb.tt +20 -0
- data/lib/templates/scaffolds/haml/_form.html.haml +17 -0
- data/lib/templates/scaffolds/haml/edit.html.haml.tt +13 -0
- data/lib/templates/scaffolds/haml/index.html.haml.tt +29 -0
- data/lib/templates/scaffolds/haml/new.html.haml.tt +10 -0
- data/lib/templates/scaffolds/haml/show.html.haml.tt +18 -0
- data/lib/templates/scaffolds/simple_form/_form.html.erb +9 -0
- data/lib/templates/scaffolds/simple_form/_form.html.haml +9 -0
- data/lib/templates/scaffolds/simple_form/_form.html.slim +9 -0
- data/lib/templates/scaffolds/slim/_form.html.slim +17 -0
- data/lib/templates/scaffolds/slim/edit.html.slim.tt +13 -0
- data/lib/templates/scaffolds/slim/index.html.slim.tt +29 -0
- data/lib/templates/scaffolds/slim/new.html.slim.tt +11 -0
- data/lib/templates/scaffolds/slim/show.html.slim.tt +18 -0
- data/lib/templates/shared/footer/_footer.html.erb.tt +5 -0
- data/lib/templates/shared/footer/_footer.html.haml.tt +3 -0
- data/lib/templates/shared/footer/_footer.html.slim.tt +3 -0
- data/lib/templates/shared/navigation/_navigation.html.erb.tt +32 -0
- data/lib/templates/shared/navigation/_navigation.html.haml.tt +23 -0
- data/lib/templates/shared/navigation/_navigation.html.slim.tt +23 -0
- data/lib/templates/shared/pagination/_pagination.html.erb +5 -0
- data/lib/templates/shared/pagination/_pagination.html.haml +3 -0
- data/lib/templates/shared/pagination/_pagination.html.slim +3 -0
- data/tailwind_views_generator.gemspec +38 -0
- metadata +223 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
.text-center.text-sm.mt-2
|
2
|
+
- if controller_name != 'sessions'
|
3
|
+
= link_to "Log in", new_session_path(resource_name)
|
4
|
+
br
|
5
|
+
- if devise_mapping.registerable? && controller_name != 'registrations'
|
6
|
+
= link_to "Sign up", new_registration_path(resource_name)
|
7
|
+
br
|
8
|
+
- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations'
|
9
|
+
= link_to "Forgot your password?", new_password_path(resource_name)
|
10
|
+
br
|
11
|
+
- if devise_mapping.confirmable? && controller_name != 'confirmations'
|
12
|
+
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
|
13
|
+
br
|
14
|
+
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
|
15
|
+
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
|
16
|
+
br
|
17
|
+
- if devise_mapping.omniauthable?
|
18
|
+
- resource_class.omniauth_providers.each do |provider|
|
19
|
+
= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider)
|
20
|
+
br
|
@@ -0,0 +1,17 @@
|
|
1
|
+
div class='md:mx-auto md:max-w-md overflow-hidden mx-0'
|
2
|
+
.shadow-md.rounded.px-8.pt-6.pb-8.mb-4.flex.flex-col.justify-center.bg-gray-50
|
3
|
+
h2.text-center.text-xl.text-black
|
4
|
+
<%- if options[:metatags] -%>
|
5
|
+
= title('Resend unlock instructions')
|
6
|
+
<%- else -%>
|
7
|
+
| Resend unlock instructions
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
|
11
|
+
= render 'devise/shared/error_messages', resource: resource
|
12
|
+
|
13
|
+
.mb-4
|
14
|
+
= f.label :email, class: 'block email optional text-sm font-medium text-gray-600'
|
15
|
+
= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'shadow appearance-none border border-gray-300 rounded w-full py-2 px-3 bg-white focus:outline-none focus:ring-0 focus:border-blue-500 text-gray-400 leading-6 transition-colors duration-200 ease-in-out'
|
16
|
+
= f.submit 'Resend unlock instructions', class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full'
|
17
|
+
= render 'devise/shared/links'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta content="IE=Edge" http-equiv="X-UA-Compatible" />
|
6
|
+
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
|
7
|
+
<%- if options[:metatags] -%>
|
8
|
+
<%%= display_meta_tags site: '<%= app_name %>' %>
|
9
|
+
<%- else -%>
|
10
|
+
<title><%= app_name %></title>
|
11
|
+
<%- end -%>
|
12
|
+
<%%= csrf_meta_tags %>
|
13
|
+
<%%= csp_meta_tag %>
|
14
|
+
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
|
15
|
+
<%%= stylesheet_link_tag 'application', media: 'all'<%= (options[:skip_turbolinks] || options[:skip_javascript]) ? '' : ", 'data-turbolinks-track': 'reload'" %> %>
|
16
|
+
<%- unless options[:skip_javascript] -%>
|
17
|
+
<%- if Gem::Version.new(Rails.version) < Gem::Version.new('6.0') -%>
|
18
|
+
<%%= javascript_include_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': true" -%> %>
|
19
|
+
<%- else -%>
|
20
|
+
<%%= javascript_pack_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': 'reload'" -%> %>
|
21
|
+
<%- end -%>
|
22
|
+
<%- end -%>
|
23
|
+
<!--IE Polyfill for CSS Properties-->
|
24
|
+
<!--[if lte IE 11]>
|
25
|
+
<script>window.MSInputMethodContext && document.documentMode && document.write('<scrip src="https://cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js"><\/script>');</script>
|
26
|
+
<![endif]-->
|
27
|
+
</head>
|
28
|
+
<body class="antialiased flex flex-col min-h-screen font-sans font-normal leading-normal bg-white text-gray-400">
|
29
|
+
<%%= render 'shared/navigation' %>
|
30
|
+
<main class="w-full flex-grow px-5 my-7" role="main">
|
31
|
+
<%%= flash_messages %>
|
32
|
+
<%%= yield %>
|
33
|
+
</main>
|
34
|
+
<%%= render 'shared/footer' %>
|
35
|
+
</body>
|
36
|
+
</html>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}
|
5
|
+
%meta{charset: "utf-8"}
|
6
|
+
%meta{content: "IE=Edge", "http-equiv" => "X-UA-Compatible"}
|
7
|
+
%meta{content: "width=device-width, initial-scale=1.0", name: "viewport"}
|
8
|
+
<%- if options[:metatags] -%>
|
9
|
+
= display_meta_tags site: '<%= app_name %>'
|
10
|
+
<%- else -%>
|
11
|
+
%title= '<%= app_name %>'
|
12
|
+
<%- end -%>
|
13
|
+
= csrf_meta_tags
|
14
|
+
= csp_meta_tag
|
15
|
+
%link{href: "https://rsms.me/inter/inter.css", rel: "stylesheet"}
|
16
|
+
= stylesheet_link_tag 'application', media: 'all'<%= (options[:skip_turbolinks] || options[:skip_javascript]) ? '' : ", 'data-turbolinks-track': 'reload'" %>
|
17
|
+
<%- unless options[:skip_javascript] -%>
|
18
|
+
<%- if Gem::Version.new(Rails.version) < Gem::Version.new('6.0') -%>
|
19
|
+
= javascript_include_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': true" -%>
|
20
|
+
<%- else -%>
|
21
|
+
= javascript_pack_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': 'reload'" -%>
|
22
|
+
<%- end -%>
|
23
|
+
<%- end %>
|
24
|
+
/ IE Polyfill for CSS Properties
|
25
|
+
/[if lte IE 11]
|
26
|
+
<script>window.MSInputMethodContext && document.documentMode && document.write('<scrip src="https://cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js"><\/script>');</script>
|
27
|
+
%body.antialiased.flex.flex-col.min-h-screen.font-sans.font-normal.leading-normal.bg-white.text-gray-400
|
28
|
+
= render 'shared/navigation'
|
29
|
+
%main.w-full.flex-grow.px-5.my-7{role: "main"}
|
30
|
+
= flash_messages
|
31
|
+
= yield
|
32
|
+
= render 'shared/footer'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
doctype html
|
2
|
+
html
|
3
|
+
head
|
4
|
+
meta charset="utf-8"
|
5
|
+
meta content="IE=Edge" http-equiv="X-UA-Compatible"
|
6
|
+
meta content="width=device-width, initial-scale=1.0" name="viewport"
|
7
|
+
<%- if options[:metatags] -%>
|
8
|
+
= display_meta_tags site: '<%= app_name %>'
|
9
|
+
<%- else -%>
|
10
|
+
title <%= app_name %>
|
11
|
+
<%- end -%>
|
12
|
+
= csrf_meta_tags
|
13
|
+
= csp_meta_tag
|
14
|
+
link rel="stylesheet" href="https://rsms.me/inter/inter.css"
|
15
|
+
= stylesheet_link_tag 'application', media: 'all'<%= (options[:skip_turbolinks] || options[:skip_javascript]) ? '' : ", 'data-turbolinks-track': 'reload'" %>
|
16
|
+
<%- unless options[:skip_javascript] -%>
|
17
|
+
<%- if Gem::Version.new(Rails.version) < Gem::Version.new('6.0') -%>
|
18
|
+
= javascript_include_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': true" -%>
|
19
|
+
<%- else -%>
|
20
|
+
= javascript_pack_tag 'application'<%= options[:skip_turbolinks] ? '' : ", 'data-turbolinks-track': 'reload'" -%>
|
21
|
+
<%- end -%>
|
22
|
+
<%- end %>
|
23
|
+
/! IE Polyfill for CSS Properties
|
24
|
+
/[if lte IE 11]
|
25
|
+
script window.MSInputMethodContext && document.documentMode && document.write('<scrip src="https://cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js"><\/script>');
|
26
|
+
body.antialiased.flex.flex-col.min-h-screen.font-sans.font-normal.leading-normal.bg-white.text-gray-400
|
27
|
+
= render 'shared/navigation'
|
28
|
+
main.w-full.flex-grow.px-5.my-7 role="main"
|
29
|
+
= flash_messages
|
30
|
+
= yield
|
31
|
+
= render 'shared/footer'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%%= form_with(model: @<%= singular_table_name %>, local: true) do |f| %>
|
2
|
+
<%%= errors_for(@<%= singular_table_name %>) %>
|
3
|
+
|
4
|
+
<% attributes.each do |attribute| -%>
|
5
|
+
<%- if attribute.field_type == :check_box %>
|
6
|
+
<div class="mb-4 flex items-start">
|
7
|
+
<div class="flex items-center h5">
|
8
|
+
<%%= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'focus:ring-2 focus:ring-indigo-500:focus ring-offset-2 h-4 w-4 text-indigo-600 border-gray-300 rounded' %>
|
9
|
+
</div>
|
10
|
+
<div class="ml-3 text-sm">
|
11
|
+
<%%= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600' %>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
<%- else -%>
|
15
|
+
<div class="mb-4">
|
16
|
+
<%%= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600' %>
|
17
|
+
<%%= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'shadow appearance-none border border-gray-300 rounded w-full py-2 px-3 bg-white focus:outline-none focus:ring-0 focus:border-blue-500 text-gray-400 leading-6 transition-colors duration-200 ease-in-out' %>
|
18
|
+
</div>
|
19
|
+
<% end -%>
|
20
|
+
<% end -%>
|
21
|
+
<%%= f.submit class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full' %>
|
22
|
+
<%% end -%>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div class="md:mx-auto w-full lg:w-1/2 overflow-hidden mx-0">
|
2
|
+
<div class="shadow-md rounded px-8 pt-6 pb-8 mb-4 flex flex-col justify-center bg-gray-50">
|
3
|
+
<%- if options[:metatags] %>
|
4
|
+
<h2 class="text-center text-xl text-black mb-3"><%%%= title('Editing <%%= singular_table_name.titleize %>') %></h1>
|
5
|
+
<%- else -%>
|
6
|
+
<h2 class="text-center text-xl text-black mb-3">Editing <%%= plural_table_name.titleize %></h1>
|
7
|
+
<%- end -%>
|
8
|
+
<%%%= render 'form', <%%= singular_table_name %>: @<%%= singular_table_name %> %>
|
9
|
+
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<%%%= link_to 'Show', @<%%= singular_table_name %> %> | <%%%= link_to 'Back', <%%= index_helper %>_path %>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<div class="flex flex-row justify-start mb-5">
|
2
|
+
<h1 class="text-xl text-gray-600 mr-10">
|
3
|
+
<%- if options[:metatags] -%>
|
4
|
+
<%%%= title('<%%= plural_table_name.titleize %>') %>
|
5
|
+
<%- else -%>
|
6
|
+
<%%= plural_table_name.titleize %>
|
7
|
+
<%- end -%>
|
8
|
+
</h1>
|
9
|
+
<%%%= link_to 'New <%%= singular_table_name.titleize %>', new_<%%= singular_route_name %>_path, class: 'px-2 py-1 inline-flex text-xs font-semibold rounded-full bg-green-100 text-green-800 hover:bg-green-200' %>
|
10
|
+
</div>
|
11
|
+
<div class="shadow overflow-hidden border-b border-gray-200 sm:rounded-lg">
|
12
|
+
<table class="min-w-full divide-y divide-gray-200 border-collapse">
|
13
|
+
<thead class="bg-gray-200">
|
14
|
+
<tr>
|
15
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
16
|
+
<th class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" scope="col"><%%= attribute.human_name %></th>
|
17
|
+
<%% end -%>
|
18
|
+
<th class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" scope="col" colspan="3"></th>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
<tbody class="bg-white divide-y divide-gray-200">
|
22
|
+
<%%% @<%%= plural_table_name %>.each do |<%%= singular_table_name %>| %>
|
23
|
+
<tr class="bg-white hover:bg-blue-50 hover:text-gray-500">
|
24
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
25
|
+
<td class="px-3 py-3 text-sm whitespace-nowrap"><%%%= <%%= singular_table_name %>.<%%= attribute.column_name %> %></td>
|
26
|
+
<%% end -%>
|
27
|
+
<td class="px-3 py-3 text-sm whitespace-nowrap"><%%%= link_to 'Show', <%%= model_resource_name %>, class: 'inline-flex text-xs leading-5 font-semibold text-indigo-500 hover:underline cursor-pointer' %></td>
|
28
|
+
<td class="px-3 py-3 text-sm whitespace-nowrap"><%%%= link_to 'Edit', edit_<%%= singular_route_name %>_path(<%%= singular_table_name %>), class: 'inline-flex text-xs leading-5 font-semibold text-yellow-500 hover:underline cursor-pointer' %></td>
|
29
|
+
<td class="px-3 py-3 text-sm whitespace-nowrap"><%%%= link_to 'Destroy', <%%= model_resource_name %>, method: :delete, data: { confirm: 'Are you sure?' }, class: 'inline-flex text-xs leading-5 font-semibold text-red-500 hover:underline cursor-pointer' %></td>
|
30
|
+
</tr>
|
31
|
+
<%%% end %>
|
32
|
+
</tbody>
|
33
|
+
</table>
|
34
|
+
|
35
|
+
<%- if options[:pagination] -%>
|
36
|
+
<%%%= render 'shared/pagination' %>
|
37
|
+
<% end -%>
|
38
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="md:mx-auto w-full lg:w-1/2 overflow-hidden mx-0">
|
2
|
+
<div class="shadow-md rounded px-8 pt-6 pb-8 mb-4 flex flex-col justify-center bg-gray-50">
|
3
|
+
|
4
|
+
<%- if options[:metatags] %>
|
5
|
+
<h2 class="text-center text-xl text-black mb-3"><%%%= title('New <%%= singular_table_name.titleize %>') %></h1>
|
6
|
+
<%- else -%>
|
7
|
+
<h2 class="text-center text-xl text-black mb-3">New <%%= plural_table_name.titleize %></h1>
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
<%%%= render 'form', <%%= singular_table_name %>: @<%%= singular_table_name %> %>
|
11
|
+
|
12
|
+
<%%%= link_to 'Back', <%%= index_helper %>_path %>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%- if options[:metatags] %>
|
2
|
+
<h1 class="text-xl text-gray-600 mr-10"><%%%= title('<%%= singular_table_name.titleize %>') %></h1>
|
3
|
+
<%- else -%>
|
4
|
+
<h1 class="text-xl text-gray-600 mr-10"><%%= plural_table_name.titleize %></h1>
|
5
|
+
<%- end -%>
|
6
|
+
|
7
|
+
<div class="border border-gray-200 my-7 shadow overflow-hidden rounded-sm">
|
8
|
+
<dl>
|
9
|
+
<%%- attributes.reject(&:password_digest?).each do |attribute| -%>
|
10
|
+
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-4 sm:gap-4 sm:px-6">
|
11
|
+
<dt class="text-sm font-medium text-gray-500"><%%= attribute.human_name %></dt>
|
12
|
+
<dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-3"><%%%= @<%%= singular_table_name %>.<%%= attribute.name %> %></dd>
|
13
|
+
</div>
|
14
|
+
<%%- end -%>
|
15
|
+
</dl>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<%%%= link_to 'Edit', edit_<%%= singular_table_name %>_path(@<%%= singular_table_name %>), class: 'hover:underline' %>
|
19
|
+
|
|
20
|
+
<%%%= link_to 'Back', <%%= index_helper %>_path, class: 'hover:underline' %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= form_with(model: @<%= singular_table_name %>, local: true) do |f|
|
2
|
+
= errors_for(@<%= singular_table_name %>)
|
3
|
+
|
4
|
+
<% attributes.each do |attribute| -%>
|
5
|
+
<%- if attribute.field_type == :check_box %>
|
6
|
+
.mb-4.flex.items-start
|
7
|
+
.flex.items-center.h5
|
8
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'focus:ring-2 focus:ring-indigo-500:focus ring-offset-2 h-4 w-4 text-indigo-600 border-gray-300 rounded'
|
9
|
+
.ml-3.text-sm
|
10
|
+
= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600'
|
11
|
+
<%- else -%>
|
12
|
+
.mb-4
|
13
|
+
= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600'
|
14
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'shadow appearance-none border border-gray-300 rounded w-full py-2 px-3 bg-white focus:outline-none focus:ring-0 focus:border-blue-500 text-gray-400 leading-6 transition-colors duration-200 ease-in-out'
|
15
|
+
<%- end -%>
|
16
|
+
<%- end -%>
|
17
|
+
= f.submit class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
%div{class: 'md:mx-auto w-full lg:w-1/2 overflow-hidden mx-0'}
|
2
|
+
.shadow-md.rounded.px-8.pt-6.pb-8.mb-4.flex.flex-col.justify-center.bg-gray-50
|
3
|
+
%h2.text-center.text-xl.text-black.mb-3
|
4
|
+
<%- if options[:metatags] %>
|
5
|
+
= title('Editing <%%= singular_table_name.titleize %>')
|
6
|
+
<%- else -%>
|
7
|
+
Editing <%%= plural_table_name.titleize %>
|
8
|
+
<%- end -%>
|
9
|
+
= render 'form', <%%= singular_table_name %>: @<%%= singular_table_name %>
|
10
|
+
|
11
|
+
= link_to 'Show', @<%%= singular_table_name %>
|
12
|
+
|
|
13
|
+
= link_to 'Back', <%%= index_helper %>_path
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.flex.flex-row.justify-start.mb-5
|
2
|
+
%h1.text-xl.text-gray-600.mr-10
|
3
|
+
<%- if options[:metatags] -%>
|
4
|
+
= title('<%%= plural_table_name.titleize %>')
|
5
|
+
<%- else -%>
|
6
|
+
<%%= plural_table_name.titleize %>
|
7
|
+
<%- end -%>
|
8
|
+
= link_to 'New <%%= singular_table_name.titleize %>', new_<%%= singular_route_name %>_path, class: 'px-2 py-1 inline-flex text-xs font-semibold rounded-full bg-green-100 text-green-800 hover:bg-green-200'
|
9
|
+
%div{class: "shadow overflow-hidden border-b border-gray-200 sm:rounded-lg"}
|
10
|
+
%table.min-w-full.divide-y.divide-gray-200.border-collapse
|
11
|
+
%thead.bg-gray-200
|
12
|
+
%tr
|
13
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
14
|
+
%th.px-3.py-3.text-left.text-xs.font-medium.text-gray-500.uppercase.tracking-wider{scope: 'col'} <%%= attribute.human_name %>
|
15
|
+
<%% end -%>
|
16
|
+
%th.px-3.py-3.text-left.text-xs.font-medium.text-gray-500.uppercase.tracking-wider{scope: 'col', colspan: '3'}
|
17
|
+
%tbody.bg-white.divide-y.divide-gray-200
|
18
|
+
- @<%%= plural_table_name %>.each do |<%%= singular_table_name %>|
|
19
|
+
%tr.bg-white.hover:bg-blue-50.hover:text-gray-500
|
20
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
21
|
+
%td.px-3.py-3.text-sm.whitespace-nowrap= <%%= singular_table_name %>.<%%= attribute.column_name %>
|
22
|
+
<%% end -%>
|
23
|
+
%td.px-3.py-3.text-sm.whitespace-nowrap= link_to 'Show', <%%= model_resource_name %>, class: 'inline-flex text-xs leading-5 font-semibold text-indigo-500 hover:underline cursor-pointer'
|
24
|
+
%td.px-3.py-3.text-sm.whitespace-nowrap= link_to 'Edit', edit_<%%= singular_route_name %>_path(<%%= singular_table_name %>), class: 'inline-flex text-xs leading-5 font-semibold text-yellow-500 hover:underline cursor-pointer'
|
25
|
+
%td.px-3.py-3.text-sm.whitespace-nowrap= link_to 'Destroy', <%%= model_resource_name %>, method: :delete, data: { confirm: 'Are you sure?' }, class: 'inline-flex text-xs leading-5 font-semibold text-red-500 hover:underline cursor-pointer'
|
26
|
+
|
27
|
+
<%- if options[:pagination] -%>
|
28
|
+
= render 'shared/pagination'
|
29
|
+
<% end -%>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
%div{class: 'md:mx-auto w-full lg:w-1/2 overflow-hidden mx-0'}
|
2
|
+
.shadow-md.rounded.px-8.pt-6.pb-8.mb-4.flex.flex-col.justify-center.bg-gray-50
|
3
|
+
%h2.text-center.text-xl.text-black.mb-3
|
4
|
+
<%- if options[:metatags] -%>
|
5
|
+
= title('New <%%= singular_table_name.titleize %>')
|
6
|
+
<%- else -%>
|
7
|
+
New <%%= plural_table_name.titleize %>
|
8
|
+
<%- end -%>
|
9
|
+
= render 'form', <%%= singular_table_name %>: @<%%= singular_table_name %>
|
10
|
+
= link_to 'Back', <%%= index_helper %>_path
|
@@ -0,0 +1,18 @@
|
|
1
|
+
%h1.text-xl.text-gray-600.mr-10
|
2
|
+
<%- if options[:metatags] %>
|
3
|
+
= title('<%%= singular_table_name.titleize %>')
|
4
|
+
<%- else -%>
|
5
|
+
<%%= plural_table_name.titleize %>
|
6
|
+
<%- end -%>
|
7
|
+
|
8
|
+
%div{class: "border border-gray-200 my-7 shadow overflow-hidden rounded-sm"}
|
9
|
+
%dl
|
10
|
+
<%%- attributes.reject(&:password_digest?).each do |attribute| -%>
|
11
|
+
%div{class: "bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-4 sm:gap-4 sm:px-6"}
|
12
|
+
%dt.text-sm.font-medium.text-gray-500 <%%= attribute.human_name %>
|
13
|
+
%dd{class: "mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-3"}= @<%%= singular_table_name %>.<%%= attribute.name %>
|
14
|
+
<%%- end -%>
|
15
|
+
|
16
|
+
= link_to 'Edit', edit_<%%= singular_table_name %>_path(@<%%= singular_table_name %>), class: 'hover:underline'
|
17
|
+
|
|
18
|
+
= link_to 'Back', <%%= index_helper %>_path, class: 'hover:underline'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%%= simple_form_for(@<%= singular_table_name %>) do |f| %>
|
2
|
+
<%%= errors_for(@<%= singular_table_name %>) %>
|
3
|
+
|
4
|
+
<%- attributes.each do |attribute| -%>
|
5
|
+
<%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
|
6
|
+
<%- end -%>
|
7
|
+
|
8
|
+
<%%= f.button :submit %>
|
9
|
+
<%% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
= simple_form_for(@<%= singular_table_name %>) do |f|
|
2
|
+
= errors_for(@<%= singular_table_name %>)
|
3
|
+
|
4
|
+
<%- attributes.each do |attribute| -%>
|
5
|
+
.mb-4
|
6
|
+
= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %>
|
7
|
+
<%- end -%>
|
8
|
+
|
9
|
+
= f.button :submit, class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
= simple_form_for(@<%= singular_table_name %>) do |f|
|
2
|
+
= errors_for(@<%= singular_table_name %>)
|
3
|
+
|
4
|
+
<%- attributes.each do |attribute| -%>
|
5
|
+
.mb-4
|
6
|
+
= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %>
|
7
|
+
<%- end -%>
|
8
|
+
|
9
|
+
= f.button :submit, class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= form_with(model: @<%= singular_table_name %>, local: true) do |f|
|
2
|
+
= errors_for(@<%= singular_table_name %>)
|
3
|
+
|
4
|
+
<% attributes.each do |attribute| -%>
|
5
|
+
<%- if attribute.field_type == :check_box %>
|
6
|
+
.mb-4.flex.items-start
|
7
|
+
.flex.items-center.h5
|
8
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'focus:ring-2 focus:ring-indigo-500:focus ring-offset-2 h-4 w-4 text-indigo-600 border-gray-300 rounded'
|
9
|
+
.ml-3.text-sm
|
10
|
+
= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600'
|
11
|
+
<%- else -%>
|
12
|
+
.mb-4
|
13
|
+
= f.label :<%= attribute.name %>, class: 'text-sm font-medium text-gray-600'
|
14
|
+
= f.<%= attribute.field_type %> :<%= attribute.name %>, class: 'shadow appearance-none border border-gray-300 rounded w-full py-2 px-3 bg-white focus:outline-none focus:ring-0 focus:border-blue-500 text-gray-400 leading-6 transition-colors duration-200 ease-in-out'
|
15
|
+
<%- end -%>
|
16
|
+
<%- end -%>
|
17
|
+
= f.submit class: 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded w-full'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
.md:mx-auto.w-full.lg:w-1/2.overflow-hidden.mx-0
|
2
|
+
.shadow-md.rounded.px-8.pt-6.pb-8.mb-4.flex.flex-col.justify-center.bg-gray-50
|
3
|
+
h2.text-center.text-xl.text-black.mb-3
|
4
|
+
<%- if options[:metatags] %>
|
5
|
+
= title('Editing <%%= singular_table_name.titleize %>')
|
6
|
+
<%- else -%>
|
7
|
+
<%%= plural_table_name.titleize %>
|
8
|
+
<%- end -%>
|
9
|
+
= render 'form', <%%= singular_table_name %>: @<%%= singular_table_name %>
|
10
|
+
|
11
|
+
= link_to 'Show', @<%%= singular_table_name %>
|
12
|
+
' |
|
13
|
+
= link_to 'Back', <%%= index_helper %>_path
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.flex.flex-row.justify-start.mb-5
|
2
|
+
h1.text-xl.text-gray-600.mr-10
|
3
|
+
<%- if options[:metatags] -%>
|
4
|
+
= title('<%%= plural_table_name.titleize %>')
|
5
|
+
<%- else -%>
|
6
|
+
<%%= plural_table_name.titleize %>
|
7
|
+
<%- end -%>
|
8
|
+
= link_to 'New <%%= singular_table_name.titleize %>', new_<%%= singular_route_name %>_path, class: 'px-2 py-1 inline-flex text-xs font-semibold rounded-full bg-green-100 text-green-800 hover:bg-green-200'
|
9
|
+
div class="shadow overflow-hidden border-b border-gray-200 sm:rounded-lg"
|
10
|
+
table.min-w-full.divide-y.divide-gray-200.border-collapse
|
11
|
+
thead.bg-gray-200
|
12
|
+
tr
|
13
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
14
|
+
th.px-3.py-3.text-left.text-xs.font-medium.text-gray-500.uppercase.tracking-wider scope='col' <%%= attribute.human_name %>
|
15
|
+
<%% end -%>
|
16
|
+
th.px-3.py-3.text-left.text-xs.font-medium.text-gray-500.uppercase.tracking-wider scope='col' colspan='3'
|
17
|
+
tbody.bg-white.divide-y.divide-gray-200
|
18
|
+
- @<%%= plural_table_name %>.each do |<%%= singular_table_name %>|
|
19
|
+
tr.bg-white.hover:bg-blue-50.hover:text-gray-500
|
20
|
+
<%% attributes.reject(&:password_digest?).each do |attribute| -%>
|
21
|
+
td.px-3.py-3.text-sm.whitespace-nowrap = <%%= singular_table_name %>.<%%= attribute.column_name %>
|
22
|
+
<%% end -%>
|
23
|
+
td.px-3.py-3.text-sm.whitespace-nowrap = link_to 'Show', <%%= model_resource_name %>, class: 'inline-flex text-xs leading-5 font-semibold text-indigo-500 hover:underline cursor-pointer'
|
24
|
+
td.px-3.py-3.text-sm.whitespace-nowrap = link_to 'Edit', edit_<%%= singular_route_name %>_path(<%%= singular_table_name %>), class: 'inline-flex text-xs leading-5 font-semibold text-yellow-500 hover:underline cursor-pointer'
|
25
|
+
td.px-3.py-3.text-sm.whitespace-nowrap = link_to 'Destroy', <%%= model_resource_name %>, method: :delete, data: { confirm: 'Are you sure?' }, class: 'inline-flex text-xs leading-5 font-semibold text-red-500 hover:underline cursor-pointer'
|
26
|
+
|
27
|
+
<%- if options[:pagination] -%>
|
28
|
+
= render 'shared/pagination'
|
29
|
+
<% end -%>
|