devise-bootstrap-form 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +31 -0
- data/CHANGELOG.md +35 -2
- data/CONTRIBUTING.md +3 -3
- data/README.md +18 -11
- data/app/views/i18n/confirmations/new.html.erb +23 -0
- data/app/views/i18n/mailer/confirmation_instructions.html.erb +4 -0
- data/app/views/i18n/mailer/email_changed.html.erb +7 -0
- data/app/views/i18n/mailer/password_change.html.erb +3 -0
- data/app/views/i18n/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/i18n/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/i18n/passwords/edit.html.erb +29 -0
- data/app/views/i18n/passwords/new.html.erb +19 -0
- data/app/views/i18n/registrations/edit.html.erb +33 -0
- data/app/views/i18n/registrations/new.html.erb +25 -0
- data/app/views/i18n/sessions/new.html.erb +24 -0
- data/app/views/i18n/shared/_links.html.erb +25 -0
- data/app/views/i18n/unlocks/new.html.erb +20 -0
- data/devise-bootstrap-form.gemspec +5 -4
- data/lib/{devise/bootstrap_form.rb → devise_bootstrap_form.rb} +1 -1
- data/lib/devise_bootstrap_form/railtie.rb +4 -0
- data/lib/devise_bootstrap_form/version.rb +5 -0
- data/lib/generators/devise/views/bootstrap_form_generator.rb +6 -1
- metadata +20 -7
- data/lib/devise/bootstrap_form/railtie.rb +0 -6
- data/lib/devise/bootstrap_form/version.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9f4f512d9aec46299cf96863bbc67fb56c297bb78c02733535d729ed5ad53d7
|
4
|
+
data.tar.gz: f92f4bd410f63afd7f7b093a7ffe12218245cf63d2b7e5164960230efdee3370
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da59caa8cd1eb13663d70c9d6fb0f9228247778c8e55df40a12f154f23f261a19834bd3eb36a579ee759c875ca7d3fcda1e3d613c5d612a94bce760cf1ad83bb
|
7
|
+
data.tar.gz: bb08c554aa8bc6e918013782775feb8d2b0633ac91e29e9103d1ad8318b650e71769a988ead4b5f27adb61eca2a4d5522ffb3828f561dbe8f75149756677655c
|
data/.rubocop.yml
CHANGED
@@ -8,6 +8,7 @@ Style/StringLiterals:
|
|
8
8
|
ConsistentQuotesInMultiline: false
|
9
9
|
Exclude:
|
10
10
|
- "test/rails_app/app/mailers/*"
|
11
|
+
- "test/es_rails_app/app/mailers/*"
|
11
12
|
|
12
13
|
Layout/AlignParameters:
|
13
14
|
# Alignment of parameters in multi-line method calls.
|
@@ -76,11 +77,41 @@ AllCops:
|
|
76
77
|
- test/rails_app/Gemfile
|
77
78
|
- test/rails_app/Guardfile
|
78
79
|
- test/rails_app/Rakefile
|
80
|
+
- "test/es_rails_app/bin/**/*"
|
81
|
+
- "test/es_rails_app/config/**/*"
|
82
|
+
- test/es_rails_app/config.ru
|
83
|
+
- "test/es_rails_app/db/**/*"
|
84
|
+
- "test/es_rails_app/log/**/*"
|
85
|
+
- "test/es_rails_app/tmp/**/*"
|
86
|
+
- "test/es_rails_app/vendor/**/*"
|
87
|
+
# - test/es_rails_app/config/boot.rb
|
88
|
+
# - test/es_rails_app/config/application.rb
|
89
|
+
# - test/es_rails_app/config/environment.rb
|
90
|
+
# - "test/es_rails_app/config/environments/*"
|
91
|
+
# - "test/es_rails_app/config/initializers/*"
|
92
|
+
# - test/es_rails_app/db/schema.rb
|
93
|
+
- "test/es_rails_app/node_modules/**/*"
|
94
|
+
- "test/es_rails_app/bower_components/**/*"
|
95
|
+
- test/es_rails_app/Gemfile
|
96
|
+
- test/es_rails_app/Guardfile
|
97
|
+
- test/es_rails_app/Rakefile
|
79
98
|
|
80
99
|
Metrics/BlockLength:
|
81
100
|
Exclude:
|
82
101
|
- devise-bootstrap-form.gemspec
|
83
102
|
|
103
|
+
Metrics/AbcSize:
|
104
|
+
Exclude:
|
105
|
+
- test/**/*.rb
|
106
|
+
|
107
|
+
Metrics/ClassLength:
|
108
|
+
Exclude:
|
109
|
+
- test/**/*.rb
|
110
|
+
|
111
|
+
Metrics/MethodLength:
|
112
|
+
Exclude:
|
113
|
+
- test/**/*.rb
|
114
|
+
|
84
115
|
# TODO: Remove this when minimum Ruby is 2.3.
|
85
116
|
Layout/IndentHeredoc:
|
86
117
|
Exclude:
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
## [Pending Release][0.
|
1
|
+
## [Pending Release][0.0.0]
|
2
2
|
|
3
3
|
### Breaking changes
|
4
4
|
|
@@ -10,4 +10,37 @@
|
|
10
10
|
|
11
11
|
### Bugfixes
|
12
12
|
|
13
|
-
*
|
13
|
+
* None.
|
14
|
+
|
15
|
+
## [0.2.0][] (2018-09-30)
|
16
|
+
|
17
|
+
### Breaking changes
|
18
|
+
|
19
|
+
* None.
|
20
|
+
|
21
|
+
### New features
|
22
|
+
|
23
|
+
* Initial support for internationalization.
|
24
|
+
|
25
|
+
### Bugfixes
|
26
|
+
|
27
|
+
* None.
|
28
|
+
|
29
|
+
## [0.1.0][] (2018-08-27)
|
30
|
+
|
31
|
+
### Breaking changes
|
32
|
+
|
33
|
+
* N/A.
|
34
|
+
|
35
|
+
### New features
|
36
|
+
|
37
|
+
* Devise forms using [`bootstrap_form`](https://github.com/bootstrap-ruby/bootstrap_form).
|
38
|
+
|
39
|
+
### Bugfixes
|
40
|
+
|
41
|
+
* N/A.
|
42
|
+
|
43
|
+
```
|
44
|
+
[0.2.0]: https://github.com/lcreid/devise-bootstrap-form/compare/v0.1.0..v0.2.0
|
45
|
+
[0.1.0]: https://github.com/lcreid/devise-bootstrap-form/compare/...v0.2.0
|
46
|
+
```
|
data/CONTRIBUTING.md
CHANGED
@@ -8,12 +8,12 @@ If you find a bug or have an idea for a feature:
|
|
8
8
|
|
9
9
|
## Testing
|
10
10
|
### Manual and Exploratory Testing
|
11
|
-
There
|
11
|
+
There are test apps in `test/rails_app`, for the default locale, and `es_rails_app` for a Spanish locale.
|
12
12
|
|
13
13
|
To use the `devise-bootstrap-form` gem:
|
14
14
|
|
15
15
|
```
|
16
|
-
cd rails_app
|
16
|
+
cd test/rails_app # or cd test/es_rails_app
|
17
17
|
# Generate the view in the test app
|
18
18
|
rails g devise:views:bootstrap_form
|
19
19
|
rails s -b 0.0.0.0 &
|
@@ -27,7 +27,7 @@ rake test
|
|
27
27
|
```
|
28
28
|
|
29
29
|
## Gotchas
|
30
|
-
To test that the views work for a model other than the default `User`, the test
|
30
|
+
To test that the views work for a model other than the default `User`, the test apps use `Person` as the Devise model. It's a bit frustrating to remember that you can't just cut and paste examples that assume the model is `User`.
|
31
31
|
|
32
32
|
## Coding guidelines
|
33
33
|
|
data/README.md
CHANGED
@@ -4,11 +4,9 @@ This gem gives you a nicer place to start customizing views for your Devise mode
|
|
4
4
|
|
5
5
|
It also makes the Devise views simpler, because the code to define forms using `bootstrap_form` is simpler than the code for a "raw" Rails form. So any customization you do to the Devise views will be simpler.
|
6
6
|
|
7
|
-
You can find usage information below, but the gist of it is you'll run `rails g devise:views:
|
7
|
+
You can find usage information below, but the gist of it is you'll run `rails g devise:views:bootstrap_form` instead of the normal `rails g devise:views`.
|
8
8
|
|
9
|
-
If you
|
10
|
-
|
11
|
-
If you're just looking for Bootstrap markup on your Devise views, and don't want to use `bootstrap_form`, then you should look into the [`devise-bootstrapped`](https://github.com/king601/devise-bootstrapped) gem, or one of its forks.
|
9
|
+
If you're just looking for Bootstrap markup on your Devise views, and don't want to use `bootstrap_form`, then you should look into the [`devise-bootstrapped`](https://github.com/king601/devise-bootstrapped) gem, or [`devise-bootstrap-views`](https://github.com/hisea/devise-bootstrap-views).
|
12
10
|
|
13
11
|
## Installation
|
14
12
|
|
@@ -17,8 +15,9 @@ Add these lines to your application's `Gemfile`:
|
|
17
15
|
```ruby
|
18
16
|
gem 'bootstrap', '~> 4.0'
|
19
17
|
gem "bootstrap_form", ">= 4.0.0.alpha1"
|
20
|
-
gem 'devise'
|
21
|
-
gem '
|
18
|
+
gem 'devise' # gem 'devise-i18n'
|
19
|
+
# gem 'devise_invitable'
|
20
|
+
gem 'devise-bootstrap-form'
|
22
21
|
```
|
23
22
|
|
24
23
|
And then execute:
|
@@ -26,14 +25,15 @@ And then execute:
|
|
26
25
|
bundle install
|
27
26
|
```
|
28
27
|
|
29
|
-
There are additional installation instructions for
|
28
|
+
There are additional installation instructions for [`bootstrap_form`](https://github.com/bootstrap-ruby/bootstrap_form#installation), [`bootstrap`](https://github.com/twbs/bootstrap-rubygem#a-ruby-on-rails), [`devise`](https://github.com/plataformatec/devise) that you must complete before using `devise-bootstrap-form`, and
|
29
|
+
[`devise-i18n`](https://github.com/tigrish/devise-i18n).
|
30
30
|
|
31
31
|
## Usage
|
32
32
|
|
33
|
-
|
33
|
+
Once all the gems are installed and configured, and the user model is generated, you can generate the Bootstrap Form views with:
|
34
34
|
|
35
35
|
```bash
|
36
|
-
rails generate devise:views:
|
36
|
+
rails generate devise:views:bootstrap_form
|
37
37
|
```
|
38
38
|
|
39
39
|
If you've already generated the Devise views you can use the `-f` argument to force an override, but that will erase any of the changes you've made to the views.
|
@@ -44,6 +44,8 @@ Generate the mailer views from normal Devise, as they're not included in `devise
|
|
44
44
|
rails generate devise:views -v mailer
|
45
45
|
```
|
46
46
|
|
47
|
+
To switch back to what Devise gives you, remove the `app/views/devise` folder. Your application will then use the default Devise views, or you can run the normal Devise `rails g devise:views` generator command and customize the default Devise views.
|
48
|
+
|
47
49
|
## Generated Layout
|
48
50
|
|
49
51
|
Each of the forms in enclosed in the following:
|
@@ -85,9 +87,9 @@ You may want to adjust to your own tastes. For example, if the layout used by yo
|
|
85
87
|
}
|
86
88
|
```
|
87
89
|
|
88
|
-
from `app/assets/stylesheets/devise_bootstrap_form.scss
|
90
|
+
from `app/assets/stylesheets/devise_bootstrap_form.scss`.
|
89
91
|
|
90
|
-
|
92
|
+
You can also modify the views to change the surrounding `div`s to your needs, or change the SASS in `app/assets/stylesheets/devise_bootstrap_form.scss`.
|
91
93
|
|
92
94
|
If you don't want the `devise_bootstrap_form`-generated styles at all, remove the following line from `app/asserts/application.scss`:
|
93
95
|
|
@@ -95,6 +97,11 @@ If you don't want the `devise_bootstrap_form`-generated styles at all, remove th
|
|
95
97
|
@include "devise_bootstrap_form.scss";
|
96
98
|
```
|
97
99
|
|
100
|
+
## Internationalization
|
101
|
+
If your `Gemfile` includes `devise-i18n`, `devise-bootstrap-form` will generate views with translations. If you're also using `devise_invitable`, you have to manually copy its translations into your application from the [`devise_invitable` wiki](https://github.com/scambra/devise_invitable/wiki/I18n).
|
102
|
+
|
103
|
+
Also, don't forget to add `gem "rails-i18n"` to your `Gemfile`.
|
104
|
+
|
98
105
|
## Contributing
|
99
106
|
|
100
107
|
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Code of Conduct](CODE_OF_CONDUCT.md).
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.resend_confirmation_instructions') %></h2>
|
5
|
+
|
6
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
|
7
|
+
<%= devise_error_messages! %>
|
8
|
+
|
9
|
+
<%= f.email_field :email,
|
10
|
+
autofocus: true,
|
11
|
+
autocomplete: "email",
|
12
|
+
value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %>
|
13
|
+
<%= f.form_group do %>
|
14
|
+
<%= f.submit t('.resend_confirmation_instructions'), class: 'btn btn-primary btn-lg btn-block' %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<div class="text-center">
|
19
|
+
<%= render "devise/shared/links" %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.change_your_password') %></h2>
|
5
|
+
|
6
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
|
7
|
+
<%= devise_error_messages! %>
|
8
|
+
<%= f.hidden_field :reset_password_token %>
|
9
|
+
|
10
|
+
<%= f.password_field :password,
|
11
|
+
autofocus: true,
|
12
|
+
autocomplete: "new-password",
|
13
|
+
help: "t('devise.shared.minimum_password_length', count: @minimum_password_length)",
|
14
|
+
label: t('.new_password') %>
|
15
|
+
<%= f.password_field :password_confirmation,
|
16
|
+
label: t('.confirm_new_password'),
|
17
|
+
autocomplete: "off",
|
18
|
+
class: "required" %>
|
19
|
+
<%= f.form_group do %>
|
20
|
+
<%= f.submit t('.change_my_password'), class: 'btn btn-primary btn-block btn-lg' %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<div class="text-center">
|
25
|
+
<%= render "devise/shared/links" %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.forgot_your_password') %></h2>
|
5
|
+
|
6
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
|
7
|
+
<%= devise_error_messages! %>
|
8
|
+
<br>
|
9
|
+
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
|
10
|
+
<%= f.form_group do %>
|
11
|
+
<%= f.submit t('.send_me_reset_password_instructions'), class: 'btn btn-primary btn-block btn-lg' %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
<div class="text-center">
|
15
|
+
<%= render "devise/shared/links" %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center">t('.title', resource: resource_name.to_s.humanize)</h2>
|
5
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
|
6
|
+
<%= devise_error_messages! %>
|
7
|
+
|
8
|
+
<%= f.email_field :email %>
|
9
|
+
|
10
|
+
<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
|
11
|
+
<div><%= t('.currently_waiting_confirmation_for_email', email: resource.unconfirmed_email) %></div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= f.password_field :password, autocomplete: "off", help: t('.leave_blank_if_you_don_t_want_to_change_it') + " " + t('devise.shared.minimum_password_length', count: @minimum_password_length) %>
|
15
|
+
<%= f.password_field :password_confirmation, autocomplete: "off", class: "required" %>
|
16
|
+
<%= f.password_field :current_password,
|
17
|
+
autocomplete: "off",
|
18
|
+
class: "required",
|
19
|
+
help: t('.we_need_your_current_password_to_confirm_your_changes') %>
|
20
|
+
|
21
|
+
<%= f.form_group do %>
|
22
|
+
<%= f.submit t('.update'), class: "btn btn-lg btn-block btn-primary" %>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<h2><%= t('.cancel_my_account') %></h2>
|
27
|
+
|
28
|
+
<p><%= t('.unhappy') %> <%= button_to t('.cancel_my_account'), registration_path(resource_name), class: "btn btn-block btn-danger", data: { confirm: t('.are_you_sure') }, method: :delete %></p>
|
29
|
+
|
30
|
+
<%= link_to t('devise.shared.links.back'), :back %>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.sign_up') %></h2>
|
5
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
6
|
+
<%= devise_error_messages! %>
|
7
|
+
|
8
|
+
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
|
9
|
+
<%= f.password_field :password,
|
10
|
+
autocomplete: "new-password",
|
11
|
+
help: t('devise.shared.minimum_password_length', count: @minimum_password_length) %>
|
12
|
+
<%= f.password_field :password_confirmation,
|
13
|
+
autocomplete: "new-password",
|
14
|
+
label_class: "required" %>
|
15
|
+
|
16
|
+
<%= f.form_group do %>
|
17
|
+
<%= f.submit t('.sign_up'), class: "btn btn-primary btn-block btn-lg" %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
20
|
+
<div class="text-center">
|
21
|
+
<%= render "devise/shared/links" %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.sign_in') %></h2>
|
5
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
|
6
|
+
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
|
7
|
+
<%= f.password_field :password, autocomplete: "current-password", placeholder: 'Password' %>
|
8
|
+
|
9
|
+
<% if devise_mapping.rememberable? -%>
|
10
|
+
<%= f.form_group do %>
|
11
|
+
<%= f.check_box :remember_me %>
|
12
|
+
<% end %>
|
13
|
+
<% end -%>
|
14
|
+
|
15
|
+
<%= f.form_group do %>
|
16
|
+
<%= f.submit t('.sign_in'), class: "btn btn-primary btn-block btn-lg" %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
<div class="text-center">
|
20
|
+
<%= render "devise/shared/links" %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%- if controller_name != 'sessions' %>
|
2
|
+
<%= link_to t(".sign_in"), new_session_path(resource_name) %><br />
|
3
|
+
<% end -%>
|
4
|
+
|
5
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
6
|
+
<%= link_to t(".sign_up"), new_registration_path(resource_name) %><br />
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
|
10
|
+
<%= link_to t(".forgot_your_password"), new_password_path(resource_name) %><br />
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
14
|
+
<%= link_to t('.didn_t_receive_confirmation_instructions'), new_confirmation_path(resource_name) %><br />
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
18
|
+
<%= link_to t('.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name) %><br />
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<%- if devise_mapping.omniauthable? %>
|
22
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
23
|
+
<%= link_to t('.sign_in_with_provider', provider: OmniAuth::Utils.camelize(provider)), omniauth_authorize_path(resource_name, provider) %><br />
|
24
|
+
<% end -%>
|
25
|
+
<% end -%>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="devise-bootstrap-form">
|
2
|
+
<div class="devise-bootstrap-form-row">
|
3
|
+
<div class="devise-bootstrap-form-col">
|
4
|
+
<h2 class="text-center"><%= t('.resend_unlock_instructions') %></h2>
|
5
|
+
|
6
|
+
<%= bootstrap_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| %>
|
7
|
+
<%= devise_error_messages! %>
|
8
|
+
|
9
|
+
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
|
10
|
+
<%= f.form_group do %>
|
11
|
+
<%= f.submit t('.resend_unlock_instructions'), class: "btn btn-primary btn-block btn-lg" %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div class="text-center">
|
16
|
+
<%= render "devise/shared/links" %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require "
|
5
|
+
require "devise_bootstrap_form/version"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "devise-bootstrap-form"
|
9
|
-
spec.version =
|
10
|
-
spec.authors = ["
|
9
|
+
spec.version = DeviseBootstrapForm::VERSION
|
10
|
+
spec.authors = ["Larry Reid"]
|
11
11
|
spec.email = ["larry.reid@jadesystems.ca"]
|
12
12
|
|
13
13
|
spec.summary = "Generates nicer views for Devise that use Bootstrap via the `bootstrap_form` gem."
|
@@ -17,7 +17,8 @@ gem. If you plan to use, or are using, `bootstrap_form` in your app, your Devise
|
|
17
17
|
forms will be consistent with the rest of your forms.
|
18
18
|
|
19
19
|
The generator will detect if you're using `devise_invitable`, and will generate
|
20
|
-
`bootstrap_form` forms for its views as well.
|
20
|
+
`bootstrap_form` forms for its views as well. If you're using `devise-i18n`, the
|
21
|
+
forms will use translations.
|
21
22
|
DESC
|
22
23
|
spec.homepage = "https://github.com/lcreid/devise-bootstrap-form"
|
23
24
|
spec.license = "MIT"
|
@@ -10,6 +10,10 @@ module Devise
|
|
10
10
|
def invitable
|
11
11
|
Object.const_get(:DeviseInvitable).is_a?(Module) rescue false # rubocop:disable Style/RescueModifier
|
12
12
|
end
|
13
|
+
|
14
|
+
def i18n
|
15
|
+
Object.const_get(:DeviseI18n).is_a?(Module) rescue false # rubocop:disable Style/RescueModifier
|
16
|
+
end
|
13
17
|
end
|
14
18
|
|
15
19
|
desc "Copies views styled for Bootstrap 4 via the `bootstrap_form` gem"
|
@@ -18,7 +22,8 @@ module Devise
|
|
18
22
|
|
19
23
|
def copy_views
|
20
24
|
%w[confirmations passwords registrations sessions shared unlocks].each do |dir|
|
21
|
-
directory File.join("views
|
25
|
+
directory File.join("views/#{BootstrapFormGenerator.i18n ? 'i18n' : 'devise'}", dir),
|
26
|
+
"app/views/devise/#{dir}"
|
22
27
|
end
|
23
28
|
|
24
29
|
if BootstrapFormGenerator.invitable # rubocop:disable Style/GuardClause
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-bootstrap-form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Andrew Fomera
|
8
7
|
- Larry Reid
|
9
8
|
autorequire:
|
10
9
|
bindir: exe
|
11
10
|
cert_chain: []
|
12
|
-
date: 2018-
|
11
|
+
date: 2018-10-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bootstrap_form
|
@@ -101,7 +100,8 @@ description: |
|
|
101
100
|
forms will be consistent with the rest of your forms.
|
102
101
|
|
103
102
|
The generator will detect if you're using `devise_invitable`, and will generate
|
104
|
-
`bootstrap_form` forms for its views as well.
|
103
|
+
`bootstrap_form` forms for its views as well. If you're using `devise-i18n`, the
|
104
|
+
forms will use translations.
|
105
105
|
email:
|
106
106
|
- larry.reid@jadesystems.ca
|
107
107
|
executables: []
|
@@ -135,12 +135,25 @@ files:
|
|
135
135
|
- app/views/devise/sessions/new.html.erb
|
136
136
|
- app/views/devise/shared/_links.html.erb
|
137
137
|
- app/views/devise/unlocks/new.html.erb
|
138
|
+
- app/views/i18n/confirmations/new.html.erb
|
139
|
+
- app/views/i18n/mailer/confirmation_instructions.html.erb
|
140
|
+
- app/views/i18n/mailer/email_changed.html.erb
|
141
|
+
- app/views/i18n/mailer/password_change.html.erb
|
142
|
+
- app/views/i18n/mailer/reset_password_instructions.html.erb
|
143
|
+
- app/views/i18n/mailer/unlock_instructions.html.erb
|
144
|
+
- app/views/i18n/passwords/edit.html.erb
|
145
|
+
- app/views/i18n/passwords/new.html.erb
|
146
|
+
- app/views/i18n/registrations/edit.html.erb
|
147
|
+
- app/views/i18n/registrations/new.html.erb
|
148
|
+
- app/views/i18n/sessions/new.html.erb
|
149
|
+
- app/views/i18n/shared/_links.html.erb
|
150
|
+
- app/views/i18n/unlocks/new.html.erb
|
138
151
|
- bin/console
|
139
152
|
- bin/setup
|
140
153
|
- devise-bootstrap-form.gemspec
|
141
|
-
- lib/
|
142
|
-
- lib/
|
143
|
-
- lib/
|
154
|
+
- lib/devise_bootstrap_form.rb
|
155
|
+
- lib/devise_bootstrap_form/railtie.rb
|
156
|
+
- lib/devise_bootstrap_form/version.rb
|
144
157
|
- lib/generators/devise/views/bootstrap_form_generator.rb
|
145
158
|
homepage: https://github.com/lcreid/devise-bootstrap-form
|
146
159
|
licenses:
|