translation_center 1.2.0 → 1.2.1
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.
- data/README.md +3 -2
- data/app/assets/stylesheets/translation_center/translation_keys.css +5 -0
- data/app/assets/stylesheets/translation_center/translations.css +0 -1
- data/app/helpers/translation_center/application_helper.rb +5 -0
- data/app/views/translation_center/translation_keys/_show.html.haml +2 -2
- data/app/views/translation_center/translation_keys/_show_keys.html.haml +5 -0
- data/app/views/translation_center/translations/_index.html.haml +1 -1
- data/app/views/translation_center/translations/_show.html.haml +9 -9
- data/lib/generators/translation_center/install/templates/config/translation_center.yml +1 -1
- data/lib/translation_center.rb +3 -0
- data/lib/translation_center/locale/en.yml +65 -0
- data/lib/translation_center/translation_helpers.rb +5 -3
- data/lib/translation_center/version.rb +1 -1
- data/test/dummy/app/assets/javascripts/{posts.js → articles.js} +0 -0
- data/test/dummy/app/assets/stylesheets/{posts.css → articles.css} +0 -0
- data/test/dummy/app/controllers/articles_controller.rb +85 -0
- data/test/dummy/app/helpers/articles_helper.rb +2 -0
- data/test/dummy/app/models/article.rb +5 -0
- data/test/dummy/app/models/user.rb +1 -5
- data/test/dummy/app/views/articles/_form.html.haml +16 -0
- data/test/dummy/app/views/articles/edit.html.haml +7 -0
- data/test/dummy/app/views/articles/index.html.haml +21 -0
- data/test/dummy/app/views/articles/new.html.haml +5 -0
- data/test/dummy/app/views/articles/show.html.haml +12 -0
- data/test/dummy/config/initializers/devise.rb +13 -5
- data/test/dummy/config/locales/devise.en.yml +48 -47
- data/test/dummy/config/locales/en.yml +0 -419
- data/test/dummy/config/routes.rb +4 -4
- data/test/dummy/config/translation_center.yml +45 -11
- data/test/dummy/db/migrate/{20121129070437_devise_create_users.rb → 20130410082611_devise_create_users.rb} +0 -1
- data/test/dummy/db/migrate/{20121121124501_create_posts.rb → 20130410082701_create_articles.rb} +2 -2
- data/test/dummy/db/migrate/{20121219092928182074_create_translation_center_categories.rb → 20130410084711234392_create_translation_center_categories.rb} +0 -0
- data/test/dummy/db/migrate/{20121219092928182741_create_translation_center_translation_keys.rb → 20130410084711235054_create_translation_center_translation_keys.rb} +0 -2
- data/test/dummy/db/migrate/{20121219092928183282_create_translation_center_translations.rb → 20130410084711235601_create_translation_center_translations.rb} +0 -0
- data/test/dummy/db/migrate/{20130103124224_install_audited.rb → 20130410084711235602_install_audited.rb} +0 -0
- data/test/dummy/db/migrate/{20130218091808_acts_as_votable_migration.rb → 20130410084711_acts_as_votable_migration.rb} +0 -0
- data/test/dummy/db/migrate/20130410113111070575_add_de_status_translation_center_translation_keys.rb +5 -0
- data/test/dummy/db/schema.rb +16 -18
- data/test/dummy/log/development.log +65885 -0
- data/test/dummy/test/fixtures/articles.yml +9 -0
- data/test/dummy/test/fixtures/users.yml +1 -1
- data/test/dummy/test/functional/articles_controller_test.rb +49 -0
- data/test/dummy/test/unit/article_test.rb +7 -0
- data/test/dummy/test/unit/helpers/articles_helper_test.rb +4 -0
- data/test/dummy/tmp/cache/assets/CD6/F30/sprockets%2F3d4924f68747fc1d600b4d7a0b181f20 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/0B0/sprockets%2Fd44248d455dc32b5d0d0694193b9a3f3 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/260/sprockets%2F5aac1d5511a4610034d1d00628abd48f +0 -0
- data/test/dummy/tmp/cache/assets/D20/350/sprockets%2F35207dd785a3f4e98ceeaf12894a5917 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/A50/sprockets%2F117dc38b0a178661ba6d8ab89dcd3654 +0 -0
- data/test/dummy/tmp/cache/assets/D4D/010/sprockets%2Fec636c8534d9e6236a1cd8d7a45e94a7 +0 -0
- data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/C10/sprockets%2Fd4ea295413a05aab4f4a3c04a380f3ca +0 -0
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/E20/sprockets%2Fb865317c6a5e8d0a7287d5bbe5aeab34 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/B80/sprockets%2F97e683d4fae31c45cfb5db8ad7151c31 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/E10/sprockets%2F5832171b4dbe59aae921ccd70f9a9fd8 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -1
- metadata +55 -42
- data/test/dummy/app/controllers/posts_controller.rb +0 -84
- data/test/dummy/app/helpers/posts_helper.rb +0 -2
- data/test/dummy/app/models/post.rb +0 -3
- data/test/dummy/app/views/posts/_form.html.haml +0 -16
- data/test/dummy/app/views/posts/edit.html.haml +0 -7
- data/test/dummy/app/views/posts/index.html.haml +0 -22
- data/test/dummy/app/views/posts/new.html.haml +0 -5
- data/test/dummy/app/views/posts/show.html.haml +0 -12
- data/test/dummy/config/locales/ar.yml +0 -42
- data/test/dummy/config/locales/de.yml +0 -12
- data/test/dummy/db/migrate/20121219094037954653_add_ar_status_translation_center_translation_keys.rb +0 -5
data/README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Translation Center Status
|
|
2
2
|
[](https://codeclimate.com/github/BadrIT/translation_center)
|
|
3
|
+
[](http://badge.fury.io/rb/translation_center)
|
|
3
4
|
|
|
4
5
|
## Introduction
|
|
5
6
|
|
|
@@ -33,7 +34,7 @@ Manage all app translations; collect stats, accept, add, edit, remove translatio
|
|
|
33
34
|
|
|
34
35
|
## Getting started
|
|
35
36
|
|
|
36
|
-
TranslationCenter works with Rails 3.
|
|
37
|
+
TranslationCenter works with Rails 3.1 onwards. You can add it to your Gemfile with:
|
|
37
38
|
|
|
38
39
|
```ruby
|
|
39
40
|
gem 'translation_center'
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
%span.badge.badge-info.pull-left.translations_count{ id: "translations_#{translation_key.id}_count"}
|
|
9
9
|
= translation_key.translations.in(to_lang).count
|
|
10
10
|
%span
|
|
11
|
-
= t('.
|
|
11
|
+
= t('.translations')
|
|
12
12
|
|
|
13
13
|
%li
|
|
14
14
|
%a{"data-toggle" => "tab", :href => "#add_translations#{translation_key.id}"}
|
|
15
|
-
= t('.
|
|
15
|
+
= t('.add_edit_translation')
|
|
16
16
|
.tab-content
|
|
17
17
|
|
|
18
18
|
.tab-pane.active{ id: "translations#{translation_key.id}" }
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
.translation_key_badge.badge-important{title: t('.untranslated')}
|
|
6
6
|
- else
|
|
7
7
|
.translation_key_badge.badge-warning{title: t('.waiting_acceptance')}
|
|
8
|
+
|
|
8
9
|
- if translation_admin?
|
|
9
10
|
%div
|
|
10
11
|
= link_to '×', translation_key_path(translation_key), method: :delete, data: { confirm: t('actions.are_you_sure', :default => 'Are you sure?') }, class: 'close', remote: true
|
|
@@ -14,6 +15,10 @@
|
|
|
14
15
|
%b
|
|
15
16
|
%em
|
|
16
17
|
= t(translation_key.name)
|
|
18
|
+
%span
|
|
19
|
+
%em.created_time
|
|
20
|
+
= t('.created_at')
|
|
21
|
+
= format_date(translation_key.created_at)
|
|
17
22
|
|
|
18
23
|
%small
|
|
19
24
|
%div{ 'data-key-id' => translation_key.id, class: "#{translation_admin? ? 'key_editable' : '' }"}
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
= t('.you')
|
|
15
15
|
- else
|
|
16
16
|
= translation.user.send(TranslationCenter::CONFIG['identifier_type'])
|
|
17
|
-
= t('.
|
|
18
|
-
=
|
|
17
|
+
= t('.on_date')
|
|
18
|
+
= format_date(translation.created_at)
|
|
19
19
|
%div.translation_voting
|
|
20
|
-
|
|
20
|
+
- if translation_admin?
|
|
21
|
+
= render 'translation_center/translations/accept_translation', translation: translation
|
|
22
|
+
.votes_count.badge.badge-success.pull-right
|
|
23
|
+
%span.count{ 'data-translation-id' => translation.id }
|
|
24
|
+
= translation.votes.count
|
|
25
|
+
= t('.votes')
|
|
26
|
+
%a.pull-right{href: '#'}
|
|
21
27
|
- voted = current_user.voted_on?(translation)
|
|
22
28
|
%span.badge.pull-left.translations_vote{ class: "#{voted ? 'badge-success' : ''}", 'data-translation-id' => translation.id, voted: voted.to_s}
|
|
23
29
|
- if voted
|
|
24
30
|
= t('.unvote')
|
|
25
31
|
- else
|
|
26
32
|
= t('.vote')
|
|
27
|
-
- if translation_admin?
|
|
28
|
-
= render 'translation_center/translations/accept_translation', translation: translation
|
|
29
|
-
.votes_count.badge.badge-success
|
|
30
|
-
%span.count{ 'data-translation-id' => translation.id }
|
|
31
|
-
= translation.votes.count
|
|
32
|
-
= t('.votes')
|
|
33
33
|
|
|
34
34
|
|
|
@@ -22,7 +22,7 @@ development:
|
|
|
22
22
|
# "missing" to inspect only untranslated keys
|
|
23
23
|
# "all" to enable inspector for translated and untranslated keys
|
|
24
24
|
# "off" to turn off keys inspector
|
|
25
|
-
inspector: '
|
|
25
|
+
inspector: 'missing' # default missing
|
|
26
26
|
|
|
27
27
|
# I18n.translate source
|
|
28
28
|
i18n_source: 'db' # can be db or yaml; default is yaml
|
data/lib/translation_center.rb
CHANGED
|
@@ -4,6 +4,9 @@ require "translation_center/translation_helpers"
|
|
|
4
4
|
require "translation_center/translations_transfer"
|
|
5
5
|
|
|
6
6
|
module TranslationCenter
|
|
7
|
+
|
|
8
|
+
# add translations for translations center
|
|
9
|
+
I18n.load_path += Dir[File.join(File.dirname(__FILE__), 'translation_center', 'locale', '*.yml')]
|
|
7
10
|
end
|
|
8
11
|
|
|
9
12
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
en:
|
|
2
|
+
translation_center:
|
|
3
|
+
back_to_app: "Back To App"
|
|
4
|
+
categories:
|
|
5
|
+
category:
|
|
6
|
+
complete: Complete
|
|
7
|
+
keys: Keys
|
|
8
|
+
index:
|
|
9
|
+
categories: Categories
|
|
10
|
+
show:
|
|
11
|
+
all: All
|
|
12
|
+
pending: Pending
|
|
13
|
+
translated: Translated
|
|
14
|
+
untranslated: Untranslated
|
|
15
|
+
center:
|
|
16
|
+
activity:
|
|
17
|
+
ago: Ago
|
|
18
|
+
changes: Changes
|
|
19
|
+
key: Key
|
|
20
|
+
locale: Locale
|
|
21
|
+
time: Time
|
|
22
|
+
user: User
|
|
23
|
+
dashboard:
|
|
24
|
+
activity: Activity
|
|
25
|
+
all: All
|
|
26
|
+
controls: Controls
|
|
27
|
+
dashboard: Dashboard
|
|
28
|
+
language: Language
|
|
29
|
+
pending: Pending
|
|
30
|
+
progress: Progress
|
|
31
|
+
reset: Reset
|
|
32
|
+
search: Search
|
|
33
|
+
select_locale: "Select Locale"
|
|
34
|
+
these_actions_will_affect_existing_data: "These actions will affect existing data"
|
|
35
|
+
translated: Translated
|
|
36
|
+
untranslated: Untranslated
|
|
37
|
+
dashboard: Dashboard
|
|
38
|
+
search_keys: "Search Keys"
|
|
39
|
+
translate_to: "Translate To"
|
|
40
|
+
translation_center: "Translation Center"
|
|
41
|
+
translation_keys:
|
|
42
|
+
destroyed_successfully: "Destroyed Successfully"
|
|
43
|
+
show:
|
|
44
|
+
translations: Translations
|
|
45
|
+
add_edit_translation: "Add/Edit Translation"
|
|
46
|
+
back_to_category: "Back To Category"
|
|
47
|
+
destroy: Destroy
|
|
48
|
+
show_keys:
|
|
49
|
+
created_at: "created at"
|
|
50
|
+
translated: Translated
|
|
51
|
+
translation_keys:
|
|
52
|
+
no_translation_keys: "No Translation Keys"
|
|
53
|
+
translations:
|
|
54
|
+
accept_translation:
|
|
55
|
+
unaccept: Unaccept
|
|
56
|
+
index:
|
|
57
|
+
date: Date
|
|
58
|
+
sort_by: "Sort by"
|
|
59
|
+
votes: Votes
|
|
60
|
+
show:
|
|
61
|
+
by: by
|
|
62
|
+
on_date: "on date"
|
|
63
|
+
vote: Vote
|
|
64
|
+
votes: Votes
|
|
65
|
+
you: You
|
|
@@ -32,7 +32,7 @@ module TranslationCenter
|
|
|
32
32
|
# wraps a span if inspector option is set to all
|
|
33
33
|
def wrap_span(translation, translation_key)
|
|
34
34
|
# put the inspector class if inspector is all and the key doesn't belongs to translation_center
|
|
35
|
-
if TranslationCenter::CONFIG['inspector'] == 'all' && translation_key.name.split('.').first != 'translation_center'
|
|
35
|
+
if TranslationCenter::CONFIG['inspector'] == 'all' && translation_key.name.to_s.split('.').first != 'translation_center'
|
|
36
36
|
"<span class='tc-inspector-key' data-type='#{translation_key.status(I18n.locale)}' data-id='#{translation_key.id}'> #{translation} </span>".html_safe
|
|
37
37
|
else
|
|
38
38
|
translation
|
|
@@ -41,7 +41,8 @@ module TranslationCenter
|
|
|
41
41
|
|
|
42
42
|
def translate_with_adding(locale, key, options = {})
|
|
43
43
|
# handle calling translation with a blank key
|
|
44
|
-
|
|
44
|
+
# or translation center tables don't exist
|
|
45
|
+
return translate_without_adding(locale, key, options) if key.blank? || !ActiveRecord::Base.connection.table_exists?('translation_center_translation_keys')
|
|
45
46
|
|
|
46
47
|
# add the new key or update it
|
|
47
48
|
translation_key = TranslationCenter::TranslationKey.find_or_create_by_name(key)
|
|
@@ -83,6 +84,7 @@ module I18n
|
|
|
83
84
|
module Base
|
|
84
85
|
# added another class to be used
|
|
85
86
|
def html_message
|
|
87
|
+
category = keys.first
|
|
86
88
|
key = keys.last.to_s.gsub('_', ' ').gsub(/\b('?[a-z])/) { $1.capitalize }
|
|
87
89
|
translation_key = keys
|
|
88
90
|
# remove locale
|
|
@@ -90,7 +92,7 @@ module I18n
|
|
|
90
92
|
|
|
91
93
|
translation_key = TranslationCenter::TranslationKey.find_by_name(translation_key.join('.'))
|
|
92
94
|
# don't put the inspector class if inspector is off or the key belongs to translation_center
|
|
93
|
-
if TranslationCenter::CONFIG['inspector'] == 'off' ||
|
|
95
|
+
if TranslationCenter::CONFIG['inspector'] == 'off' || category == 'translation_center'
|
|
94
96
|
%(<span class="translation_missing" title="translation missing: #{keys.join('.')}">#{key}</span>)
|
|
95
97
|
else
|
|
96
98
|
%(<span class="translation_missing tc-inspector-key" data-type="#{translation_key.status(I18n.locale)}" data-id="#{translation_key.id}" title="translation missing: #{keys.join('.')}">#{key}</span>)
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
class ArticlesController < ApplicationController
|
|
2
|
+
before_filter :authenticate_user!
|
|
3
|
+
|
|
4
|
+
# GET /articles
|
|
5
|
+
# GET /articles.json
|
|
6
|
+
def index
|
|
7
|
+
@articles = Article.all
|
|
8
|
+
|
|
9
|
+
respond_to do |format|
|
|
10
|
+
format.html # index.html.erb
|
|
11
|
+
format.json { render json: @articles }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# GET /articles/1
|
|
16
|
+
# GET /articles/1.json
|
|
17
|
+
def show
|
|
18
|
+
@article = Article.find(params[:id])
|
|
19
|
+
|
|
20
|
+
respond_to do |format|
|
|
21
|
+
format.html # show.html.erb
|
|
22
|
+
format.json { render json: @article }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# GET /articles/new
|
|
27
|
+
# GET /articles/new.json
|
|
28
|
+
def new
|
|
29
|
+
@article = Article.new
|
|
30
|
+
|
|
31
|
+
respond_to do |format|
|
|
32
|
+
format.html # new.html.erb
|
|
33
|
+
format.json { render json: @article }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# GET /articles/1/edit
|
|
38
|
+
def edit
|
|
39
|
+
@article = Article.find(params[:id])
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# POST /articles
|
|
43
|
+
# POST /articles.json
|
|
44
|
+
def create
|
|
45
|
+
@article = Article.new(params[:article])
|
|
46
|
+
|
|
47
|
+
respond_to do |format|
|
|
48
|
+
if @article.save
|
|
49
|
+
format.html { redirect_to @article, notice: 'Article was successfully created.' }
|
|
50
|
+
format.json { render json: @article, status: :created, location: @article }
|
|
51
|
+
else
|
|
52
|
+
format.html { render action: "new" }
|
|
53
|
+
format.json { render json: @article.errors, status: :unprocessable_entity }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# PUT /articles/1
|
|
59
|
+
# PUT /articles/1.json
|
|
60
|
+
def update
|
|
61
|
+
@article = Article.find(params[:id])
|
|
62
|
+
|
|
63
|
+
respond_to do |format|
|
|
64
|
+
if @article.update_attributes(params[:article])
|
|
65
|
+
format.html { redirect_to @article, notice: 'Article was successfully updated.' }
|
|
66
|
+
format.json { head :ok }
|
|
67
|
+
else
|
|
68
|
+
format.html { render action: "edit" }
|
|
69
|
+
format.json { render json: @article.errors, status: :unprocessable_entity }
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# DELETE /articles/1
|
|
75
|
+
# DELETE /articles/1.json
|
|
76
|
+
def destroy
|
|
77
|
+
@article = Article.find(params[:id])
|
|
78
|
+
@article.destroy
|
|
79
|
+
|
|
80
|
+
respond_to do |format|
|
|
81
|
+
format.html { redirect_to articles_url }
|
|
82
|
+
format.json { head :ok }
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -7,14 +7,10 @@ class User < ActiveRecord::Base
|
|
|
7
7
|
|
|
8
8
|
# Setup accessible (or protected) attributes for your model
|
|
9
9
|
attr_accessible :email, :password, :password_confirmation, :remember_me
|
|
10
|
-
# attr_accessible :title, :body
|
|
11
10
|
|
|
12
|
-
acts_as_voter
|
|
13
11
|
acts_as_translator
|
|
14
12
|
|
|
15
13
|
def can_admin_translations?
|
|
16
|
-
self.
|
|
14
|
+
self.id == User.first.id
|
|
17
15
|
end
|
|
18
|
-
|
|
19
|
-
|
|
20
16
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
= form_for @article do |f|
|
|
2
|
+
- if @article.errors.any?
|
|
3
|
+
#error_explanation
|
|
4
|
+
%h2= "#{pluralize(@article.errors.count, "error")} prohibited this article from being saved:"
|
|
5
|
+
%ul
|
|
6
|
+
- @article.errors.full_messages.each do |msg|
|
|
7
|
+
%li= msg
|
|
8
|
+
|
|
9
|
+
.field
|
|
10
|
+
= f.label :title
|
|
11
|
+
= f.text_field :title
|
|
12
|
+
.field
|
|
13
|
+
= f.label :content
|
|
14
|
+
= f.text_area :content
|
|
15
|
+
.actions
|
|
16
|
+
= f.submit 'Save'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
%h1 Listing articles
|
|
2
|
+
|
|
3
|
+
%table
|
|
4
|
+
%tr
|
|
5
|
+
%th Title
|
|
6
|
+
%th Content
|
|
7
|
+
%th
|
|
8
|
+
%th
|
|
9
|
+
%th
|
|
10
|
+
|
|
11
|
+
- @articles.each do |article|
|
|
12
|
+
%tr
|
|
13
|
+
%td= article.title
|
|
14
|
+
%td= article.content
|
|
15
|
+
%td= link_to 'Show', article
|
|
16
|
+
%td= link_to 'Edit', edit_article_path(article)
|
|
17
|
+
%td= link_to 'Destroy', article, :method => :delete, :data => { :confirm => 'Are you sure?' }
|
|
18
|
+
|
|
19
|
+
%br
|
|
20
|
+
|
|
21
|
+
= link_to 'New Article', new_article_path
|
|
@@ -82,7 +82,7 @@ Devise.setup do |config|
|
|
|
82
82
|
config.stretches = Rails.env.test? ? 1 : 10
|
|
83
83
|
|
|
84
84
|
# Setup a pepper to generate the encrypted password.
|
|
85
|
-
# config.pepper = "
|
|
85
|
+
# config.pepper = "04916f04c90691d81f589fcb4c6a5b3ab711fc0fb33e1b061b4d0922ecb1feeee72d10bb61537350d8fa35a12513266c8b087714ae65b9e4a8ed9cc5aa56581a"
|
|
86
86
|
|
|
87
87
|
# ==> Configuration for :confirmable
|
|
88
88
|
# A period that the user is allowed to access the website even without
|
|
@@ -92,6 +92,14 @@ Devise.setup do |config|
|
|
|
92
92
|
# the user cannot access the website without confirming his account.
|
|
93
93
|
# config.allow_unconfirmed_access_for = 2.days
|
|
94
94
|
|
|
95
|
+
# A period that the user is allowed to confirm their account before their
|
|
96
|
+
# token becomes invalid. For example, if set to 3.days, the user can confirm
|
|
97
|
+
# their account within 3 days after the mail was sent, but on the fourth day
|
|
98
|
+
# their account can't be confirmed with the token any more.
|
|
99
|
+
# Default is nil, meaning there is no restriction on how long a user can take
|
|
100
|
+
# before confirming their account.
|
|
101
|
+
# config.confirm_within = 3.days
|
|
102
|
+
|
|
95
103
|
# If true, requires any email changes to be confirmed (exactly the same way as
|
|
96
104
|
# initial account confirmation) to be applied. Requires additional unconfirmed_email
|
|
97
105
|
# db field (see migrations). Until confirmed new email is stored in
|
|
@@ -113,8 +121,8 @@ Devise.setup do |config|
|
|
|
113
121
|
# config.rememberable_options = {}
|
|
114
122
|
|
|
115
123
|
# ==> Configuration for :validatable
|
|
116
|
-
# Range for password length. Default is
|
|
117
|
-
|
|
124
|
+
# Range for password length. Default is 8..128.
|
|
125
|
+
config.password_length = 8..128
|
|
118
126
|
|
|
119
127
|
# Email regex used to validate email formats. It simply asserts that
|
|
120
128
|
# an one (and only one) @ exists in the given string. This is mainly
|
|
@@ -125,7 +133,7 @@ Devise.setup do |config|
|
|
|
125
133
|
# The time you want to timeout the user session without activity. After this
|
|
126
134
|
# time the user will be asked for credentials again. Default is 30 minutes.
|
|
127
135
|
# config.timeout_in = 30.minutes
|
|
128
|
-
|
|
136
|
+
|
|
129
137
|
# If true, expires auth token on session timeout.
|
|
130
138
|
# config.expire_auth_token_on_timeout = false
|
|
131
139
|
|
|
@@ -229,4 +237,4 @@ Devise.setup do |config|
|
|
|
229
237
|
# When using omniauth, Devise cannot automatically set Omniauth path,
|
|
230
238
|
# so you need to do it manually. For the users scope, it would be:
|
|
231
239
|
# config.omniauth_path_prefix = "/my_engine/users/auth"
|
|
232
|
-
end
|
|
240
|
+
end
|