beautiful_scaffold 2.0.0.pre → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/CHANGELOG +45 -0
- data/Gemfile +5 -4
- data/README.rdoc +22 -4
- data/Rakefile +0 -3
- data/beautiful_scaffold.gemspec +0 -2
- data/lib/beautiful_scaffold/version.rb +1 -1
- data/lib/generators/USAGE +25 -11
- data/lib/generators/beautiful_cancancan_generator.rb +51 -0
- data/lib/generators/beautiful_jointable_generator.rb +3 -5
- data/lib/generators/beautiful_locale_generator.rb +15 -13
- data/lib/generators/beautiful_migration_generator.rb +3 -1
- data/lib/generators/beautiful_scaffold_common_methods.rb +10 -2
- data/lib/generators/beautiful_scaffold_generator.rb +2 -10
- data/lib/generators/beautiful_sorcery_generator.rb +137 -0
- data/lib/generators/beautiful_storage_generator.rb +61 -0
- data/lib/generators/templates/app/assets/javascripts/application-bs.js +0 -2
- data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +15 -30
- data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +16 -15
- data/lib/generators/templates/app/assets/stylesheets/application-bs.css +0 -2
- data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +9 -1
- data/lib/generators/templates/app/controllers/user_sessions_controller.rb +20 -0
- data/lib/generators/templates/app/helpers/beautiful_helper.rb +19 -5
- data/lib/generators/templates/app/locales/beautiful_scaffold.en.yml +8 -0
- data/lib/generators/templates/app/locales/beautiful_scaffold.fr.yml +9 -1
- data/lib/generators/templates/app/locales/beautiful_scaffold.ja.yml +9 -2
- data/lib/generators/templates/app/mailers/user_mailer.rb +13 -0
- data/lib/generators/templates/app/models/ability.rb +39 -0
- data/lib/generators/templates/app/models/concerns/caption_concern.rb +1 -1
- data/lib/generators/templates/app/models/user.rb +11 -0
- data/lib/generators/templates/app/views/_form_habtm_tag.html.erb +3 -3
- data/lib/generators/templates/app/views/layout.html.erb +12 -2
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_needed_email.en.html.erb +16 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_needed_email.en.text.erb +9 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_needed_email.fr.html.erb +16 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_needed_email.fr.text.erb +8 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_success_email.en.html.erb +19 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_success_email.en.text.erb +8 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_success_email.fr.html.erb +19 -0
- data/lib/generators/templates/app/views/login_logout/user_mailer/activation_success_email.fr.text.erb +8 -0
- data/lib/generators/templates/app/views/login_logout/user_sessions/_form.html.erb +15 -0
- data/lib/generators/templates/app/views/login_logout/user_sessions/new.html.erb +3 -0
- data/lib/generators/templates/app/views/partials/_form_field.html.erb +33 -25
- data/lib/generators/templates/app/views/partials/_index_column.html.erb +2 -0
- data/lib/generators/templates/app/views/partials/_login_logout_register.html.erb +7 -0
- data/lib/generators/templates/app/views/partials/_show_field.html.erb +2 -0
- metadata +23 -15
- data/Gemfile.lock +0 -209
- data/lib/generators/beautiful_devisecancan_generator.rb +0 -128
- data/lib/generators/templates/app/assets/javascripts/bootstrap-colorpicker.js +0 -520
- data/lib/generators/templates/app/assets/javascripts/tagit.js +0 -489
- data/lib/generators/templates/app/assets/stylesheets/colorpicker.css +0 -127
- data/lib/generators/templates/app/assets/stylesheets/tagit-dark-grey.css +0 -135
- data/lib/generators/templates/app/views/partials/_register_form.html.erb +0 -44
- data/lib/generators/templates/app/views/partials/_sign_in_form.html.erb +0 -18
- data/lib/generators/templates/app/views/partials/_sign_in_sign_out.html.erb +0 -19
- data/lib/generators/templates/lib/custom_failure.rb +0 -15
@@ -1,127 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Colorpicker for Bootstrap
|
3
|
-
*
|
4
|
-
* Copyright 2012 Stefan Petre
|
5
|
-
* Licensed under the Apache License v2.0
|
6
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
7
|
-
*
|
8
|
-
*/
|
9
|
-
.colorpicker-saturation {
|
10
|
-
width: 100px;
|
11
|
-
height: 100px;
|
12
|
-
background-image: url(/assets/saturation.png);
|
13
|
-
cursor: crosshair;
|
14
|
-
float: left;
|
15
|
-
}
|
16
|
-
.colorpicker-saturation i {
|
17
|
-
display: block;
|
18
|
-
height: 5px;
|
19
|
-
width: 5px;
|
20
|
-
border: 1px solid #000;
|
21
|
-
-webkit-border-radius: 5px;
|
22
|
-
-moz-border-radius: 5px;
|
23
|
-
border-radius: 5px;
|
24
|
-
position: absolute;
|
25
|
-
top: 0;
|
26
|
-
left: 0;
|
27
|
-
margin: -4px 0 0 -4px;
|
28
|
-
}
|
29
|
-
.colorpicker-saturation i b {
|
30
|
-
display: block;
|
31
|
-
height: 5px;
|
32
|
-
width: 5px;
|
33
|
-
border: 1px solid #fff;
|
34
|
-
-webkit-border-radius: 5px;
|
35
|
-
-moz-border-radius: 5px;
|
36
|
-
border-radius: 5px;
|
37
|
-
}
|
38
|
-
.colorpicker-hue, .colorpicker-alpha {
|
39
|
-
width: 15px;
|
40
|
-
height: 100px;
|
41
|
-
float: left;
|
42
|
-
cursor: row-resize;
|
43
|
-
margin-left: 4px;
|
44
|
-
margin-bottom: 4px;
|
45
|
-
}
|
46
|
-
.colorpicker-hue i, .colorpicker-alpha i {
|
47
|
-
display: block;
|
48
|
-
height: 1px;
|
49
|
-
background: #000;
|
50
|
-
border-top: 1px solid #fff;
|
51
|
-
position: absolute;
|
52
|
-
top: 0;
|
53
|
-
left: 0;
|
54
|
-
width: 100%;
|
55
|
-
margin-top: -1px;
|
56
|
-
}
|
57
|
-
.colorpicker-hue {
|
58
|
-
background-image: url(/assets/hue.png);
|
59
|
-
}
|
60
|
-
.colorpicker-alpha {
|
61
|
-
background-image: url(/assets/alpha.png);
|
62
|
-
display: none;
|
63
|
-
}
|
64
|
-
.colorpicker {
|
65
|
-
*zoom: 1;
|
66
|
-
top: 0;
|
67
|
-
left: 0;
|
68
|
-
padding: 4px;
|
69
|
-
min-width: 120px;
|
70
|
-
margin-top: 1px;
|
71
|
-
-webkit-border-radius: 4px;
|
72
|
-
-moz-border-radius: 4px;
|
73
|
-
border-radius: 4px;
|
74
|
-
}
|
75
|
-
.colorpicker:before, .colorpicker:after {
|
76
|
-
display: table;
|
77
|
-
content: "";
|
78
|
-
}
|
79
|
-
.colorpicker:after {
|
80
|
-
clear: both;
|
81
|
-
}
|
82
|
-
.colorpicker:before {
|
83
|
-
content: '';
|
84
|
-
display: inline-block;
|
85
|
-
border-left: 7px solid transparent;
|
86
|
-
border-right: 7px solid transparent;
|
87
|
-
border-bottom: 7px solid #ccc;
|
88
|
-
border-bottom-color: rgba(0, 0, 0, 0.2);
|
89
|
-
position: absolute;
|
90
|
-
top: -7px;
|
91
|
-
left: 6px;
|
92
|
-
}
|
93
|
-
.colorpicker:after {
|
94
|
-
content: '';
|
95
|
-
display: inline-block;
|
96
|
-
border-left: 6px solid transparent;
|
97
|
-
border-right: 6px solid transparent;
|
98
|
-
border-bottom: 6px solid #ffffff;
|
99
|
-
position: absolute;
|
100
|
-
top: -6px;
|
101
|
-
left: 7px;
|
102
|
-
}
|
103
|
-
.colorpicker div {
|
104
|
-
position: relative;
|
105
|
-
}
|
106
|
-
.colorpicker.alpha {
|
107
|
-
min-width: 140px;
|
108
|
-
}
|
109
|
-
.colorpicker.alpha .colorpicker-alpha {
|
110
|
-
display: block;
|
111
|
-
}
|
112
|
-
.colorpicker-color {
|
113
|
-
height: 10px;
|
114
|
-
margin-top: 5px;
|
115
|
-
clear: both;
|
116
|
-
background-image: url(/assets/alpha.png);
|
117
|
-
background-position: 0 100%;
|
118
|
-
}
|
119
|
-
.colorpicker-color div {
|
120
|
-
height: 10px;
|
121
|
-
}
|
122
|
-
.input-group.color .input-group-addon i, .input-group.color .input-group-addon i {
|
123
|
-
display: block;
|
124
|
-
cursor: pointer;
|
125
|
-
width: 16px;
|
126
|
-
height: 16px;
|
127
|
-
}
|
@@ -1,135 +0,0 @@
|
|
1
|
-
.ui-autocomplete {
|
2
|
-
background-color: #fff;
|
3
|
-
position: absolute;
|
4
|
-
cursor: default;
|
5
|
-
list-style: none;
|
6
|
-
margin: 25px 0 0;
|
7
|
-
padding: 0;
|
8
|
-
border: 1px solid #E5E5E5;
|
9
|
-
border-top: none;
|
10
|
-
-moz-border-radius: 0 0 10px 10px;
|
11
|
-
border-radius: 0 0 10px 10px;
|
12
|
-
-moz-box-shadow: 0 3px 5px #888;
|
13
|
-
-webkit-box-shadow: 0 3px 5px #888;
|
14
|
-
box-shadow: 0 3px 5px #888;
|
15
|
-
font-size: 12px;
|
16
|
-
}
|
17
|
-
|
18
|
-
.ui-autocomplete .ui-menu-item {
|
19
|
-
padding: 0;
|
20
|
-
margin: 0;
|
21
|
-
}
|
22
|
-
|
23
|
-
.ui-autocomplete .ui-menu-item a {
|
24
|
-
display: block;
|
25
|
-
padding: 4px 6px;
|
26
|
-
margin: 0;
|
27
|
-
text-decoration: none;
|
28
|
-
line-height: 12px;
|
29
|
-
border-bottom: 1px solid #E5E5E5;
|
30
|
-
border-top: 1px solid #fff;
|
31
|
-
color: #78959D;
|
32
|
-
|
33
|
-
}
|
34
|
-
|
35
|
-
.ui-autocomplete .ui-menu-item a.ui-state-hover,
|
36
|
-
.ui-autocomplete .ui-menu-item a.ui-state-active {
|
37
|
-
background-color: #c0d1e2;
|
38
|
-
color: #555;
|
39
|
-
border-color: #a6cef7;
|
40
|
-
}
|
41
|
-
|
42
|
-
.ui-autocomplete-loading {
|
43
|
-
background: white url(/assets/ui-anim_basic_16x16.gif) right center no-repeat;
|
44
|
-
}
|
45
|
-
|
46
|
-
ul.tagit {
|
47
|
-
cursor: text;
|
48
|
-
overflow: auto;
|
49
|
-
font-size: 14px;
|
50
|
-
width: 97%;
|
51
|
-
padding: 0px;
|
52
|
-
margin: 0px;
|
53
|
-
background: #fff;
|
54
|
-
color: #fff;
|
55
|
-
}
|
56
|
-
|
57
|
-
ul.tagit li {
|
58
|
-
-moz-border-radius: 5px;
|
59
|
-
border-radius: 5px;
|
60
|
-
display: block;
|
61
|
-
float: left;
|
62
|
-
margin: 2px 5px 2px 0;
|
63
|
-
position: relative;
|
64
|
-
}
|
65
|
-
|
66
|
-
ul.tagit.ui-sortable li.tagit-choice a.ui-icon.ui-icon-grip-dotted-vertical{
|
67
|
-
float: left;
|
68
|
-
width: 12px;
|
69
|
-
margin-left: -5px;
|
70
|
-
cursor: move;
|
71
|
-
}
|
72
|
-
|
73
|
-
ul.tagit li.tagit-choice {
|
74
|
-
background-color: #333;
|
75
|
-
border: 1px solid #333;
|
76
|
-
padding: 2px 13px 3px 4px;
|
77
|
-
}
|
78
|
-
|
79
|
-
ul.tagit li.tagit-choice.selected {
|
80
|
-
background-color: #633;
|
81
|
-
border-color: #f76464;
|
82
|
-
}
|
83
|
-
|
84
|
-
ul.tagit li.tagit-choice:hover {
|
85
|
-
background-color: #555;
|
86
|
-
border-color: #444;
|
87
|
-
}
|
88
|
-
|
89
|
-
ul.tagit li.tagit-new {
|
90
|
-
clear: left;
|
91
|
-
padding: 2px 4px 3px;
|
92
|
-
padding: 2px 4px 1px;
|
93
|
-
padding: 2px 4px 1px 0;
|
94
|
-
}
|
95
|
-
|
96
|
-
ul.tagit li.tagit-choice input {
|
97
|
-
display: block;
|
98
|
-
float: left;
|
99
|
-
margin: 0 5px 0 0;
|
100
|
-
padding-top: 2px;
|
101
|
-
padding-bottom: 2px;
|
102
|
-
}
|
103
|
-
|
104
|
-
ul.tagit li.tagit-choice a.tagit-close {
|
105
|
-
color: #ccc;
|
106
|
-
cursor: pointer;
|
107
|
-
font-size: 12px;
|
108
|
-
font-weight: bold;
|
109
|
-
outline: medium none;
|
110
|
-
padding: 2px 0 2px 3px;
|
111
|
-
text-decoration: none;
|
112
|
-
position: absolute;
|
113
|
-
display: block;
|
114
|
-
top: 0;
|
115
|
-
right: 3px;
|
116
|
-
text-shadow: 1px 1px 0 rgba(100, 100, 100, 0.7);
|
117
|
-
}
|
118
|
-
|
119
|
-
ul.tagit li.tagit-choice a.tagit-close:hover {
|
120
|
-
color: #fff;
|
121
|
-
text-shadow: none;
|
122
|
-
}
|
123
|
-
/*
|
124
|
-
ul.tagit input[type="text"] {
|
125
|
-
-moz-box-sizing: border-box;
|
126
|
-
border: none !important;
|
127
|
-
margin: 0 !important;
|
128
|
-
padding: 0 !important;
|
129
|
-
width: inherit !important;
|
130
|
-
outline: none;
|
131
|
-
}
|
132
|
-
*/
|
133
|
-
select.tagit-hiddenSelect {
|
134
|
-
display:none;
|
135
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
|
2
|
-
<div class="modal fade" id="modal-register-form">
|
3
|
-
<div class="modal-dialog">
|
4
|
-
<div class="modal-content">
|
5
|
-
<div class="modal-header">
|
6
|
-
<h5 class="modal-title"><%%= t(:register, :default => "Register") %></h5>
|
7
|
-
<button type="button" class="close" data-dismiss="modal">×</button>
|
8
|
-
</div>
|
9
|
-
<div class="modal-body">
|
10
|
-
<%% resource ||= <%= model.camelize %>.new %>
|
11
|
-
<%%= form_for(resource, :as => '<%= model %>', :url => registration_path('<%= model %>'), :html => { :class => "form-horizontal" }) do |f| %>
|
12
|
-
<%% begin %>
|
13
|
-
<%%= devise_error_messages! %>
|
14
|
-
<%% rescue %>
|
15
|
-
<%% end %>
|
16
|
-
<div class="form-group">
|
17
|
-
<%%= f.label :email, t(:email, :default => "Email"), :class => "control-label" %>
|
18
|
-
<div>
|
19
|
-
<%%= f.email_field :email %>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
<div class="form-group">
|
23
|
-
<%%= f.label :password, t(:password, :default => "Password"), :class => "control-label" %>
|
24
|
-
<div>
|
25
|
-
<%%= f.password_field :password %>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
<div class="form-group">
|
29
|
-
<%%= f.label :password_confirmation, t(:password_confirmation, :default => "Password confirmation"), :class => "control-label" %>
|
30
|
-
<div>
|
31
|
-
<%%= f.password_field :password_confirmation %>
|
32
|
-
</div>
|
33
|
-
</div>
|
34
|
-
|
35
|
-
<div class="form-group">
|
36
|
-
<div>
|
37
|
-
<%%= f.submit t(:sign_up, :default => "Sign up"), :class => 'btn btn-light' %>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
<%% end %>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
</div>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<div style="padding:10px;">
|
2
|
-
<%%= form_for("<%= model %>", :url => <%= model %>_session_path, :html => { :class => "form-horizontal" }) do |f| %>
|
3
|
-
<div class="form-group">
|
4
|
-
<%%= f.text_field :email, :placeholder => t(:email, :default => "Email") %>
|
5
|
-
</div>
|
6
|
-
<div class="form-group">
|
7
|
-
<%%= f.password_field :password, :placeholder => t(:password, :default => "Password") %>
|
8
|
-
</div>
|
9
|
-
<div class="form-group">
|
10
|
-
<label for="<%= model %>_remember_me">
|
11
|
-
<%%= f.check_box :remember_me %> <%%= t(:remember_me, :default => "Remember me") %>
|
12
|
-
</label>
|
13
|
-
</div>
|
14
|
-
<%%= f.submit t(:sign_in, :default => "Sign in"), :class => "btn btn-light" %>
|
15
|
-
<%% end %>
|
16
|
-
<a data-toggle="modal" href="#modal-forget-password"><%%= t(:forgot_your_password, :default => "Forgot your password?") %></a>
|
17
|
-
<a data-toggle="modal" href="#modal-register-form"><%%= t(:register, :default => "Register") %></a>
|
18
|
-
</div>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<%% if <%= model %>_signed_in? %>
|
2
|
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
3
|
-
<i class="icon-user"></i> <%%= current_<%= model %>.caption %>
|
4
|
-
<span class="caret"></span>
|
5
|
-
</a>
|
6
|
-
<ul class="dropdown-menu">
|
7
|
-
<li><a href="#"><%%= t(:profile, :default => "Profile") %></a></li>
|
8
|
-
<li class="dropdown-divider"></li>
|
9
|
-
<li><%%= link_to t(:sign_out, :default => "Sign Out"), destroy_<%= model %>_session_path, :method => :delete %></li>
|
10
|
-
</ul>
|
11
|
-
<%% else %>
|
12
|
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
13
|
-
<i class="icon-user"></i> <%%= t(:login, :default => "Login") %>
|
14
|
-
<span class="caret"></span>
|
15
|
-
</a>
|
16
|
-
<ul class="dropdown-menu">
|
17
|
-
<li><%%= render :partial => "layouts/sign_in_form" %></li>
|
18
|
-
</ul>
|
19
|
-
<%% end %>
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class CustomFailure < Devise::FailureApp
|
2
|
-
def redirect_url
|
3
|
-
#return super unless [:worker, :employer, :user].include?(scope) #make it specific to a scope
|
4
|
-
root_path
|
5
|
-
end
|
6
|
-
|
7
|
-
# You need to override respond to eliminate recall
|
8
|
-
def respond
|
9
|
-
if http_auth?
|
10
|
-
http_auth
|
11
|
-
else
|
12
|
-
redirect
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|