caboose-cms 0.6.16 → 0.6.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/javascripts/caboose/admin_media_index_new.js +466 -0
- data/app/assets/javascripts/caboose/jquery.nestable.js +484 -0
- data/app/assets/stylesheets/caboose/nestable.css +107 -0
- data/app/controllers/caboose/login_controller.rb +1 -1
- data/app/controllers/caboose/login_logs_controller.rb +34 -0
- data/app/controllers/caboose/media_categories_controller.rb +7 -1
- data/app/controllers/caboose/social_controller.rb +1 -0
- data/app/controllers/caboose/users_controller.rb +2 -1
- data/app/mailers/caboose/login_mailer.rb +5 -0
- data/app/models/caboose/authenticator.rb +54 -32
- data/app/models/caboose/login_log.rb +22 -0
- data/app/models/caboose/media_category.rb +14 -0
- data/app/models/caboose/schema.rb +25 -12
- data/app/views/caboose/blocks/_ga.html.erb +18 -0
- data/app/views/caboose/login/index.html.erb +2 -4
- data/app/views/caboose/login_logs/admin_index.html.erb +41 -0
- data/app/views/caboose/login_mailer/locked_account.html.erb +8 -0
- data/app/views/caboose/media/admin_index.html.erb +6 -0
- data/app/views/caboose/products/admin_index.html.erb +1 -1
- data/app/views/caboose/social/admin_edit.html.erb +13 -11
- data/app/views/caboose/users/edit.html.erb +6 -4
- data/config/routes.rb +1 -0
- data/lib/caboose/version.rb +1 -1
- metadata +9 -17
- data/app/controllers/caboose/#Untitled-1# +0 -3
@@ -20,10 +20,8 @@
|
|
20
20
|
<ul id="login-options">
|
21
21
|
<li><a href="/register?return_url=<%= @return_url %>" class='register'>Need to register?</a></li>
|
22
22
|
<li><a href="/login/forgot-password?return_url=<%= @return_url %>" class='forgot'>Forgot your password?</a></li>
|
23
|
-
</ul>
|
24
|
-
|
25
|
-
<div id="message"></div>
|
26
|
-
|
23
|
+
</ul>
|
24
|
+
<div style='clear: both;' id="message"></div>
|
27
25
|
<p class="buttons">
|
28
26
|
<input type="button" class="btn" value="Cancel" onclick="parent.$.fn.colorbox.close();" />
|
29
27
|
<input type="submit" class="btn" value="Login" onclick='login(); return false;' />
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<h1>Login Logs</h1>
|
2
|
+
|
3
|
+
<form action='/admin/users' method='get' class='search_form'>
|
4
|
+
<input type='text' name='first_name_like' value="<%= @gen.params['first_name_like'] %>" placeholder='First name' />
|
5
|
+
<input type='text' name='last_name_like' value="<%= @gen.params['last_name_like'] %>" placeholder='Last name' />
|
6
|
+
<input type='text' name='email_like' value="<%= @gen.params['email_like'] %>" placeholder='Email' />
|
7
|
+
<input type='submit' value='Search' />
|
8
|
+
</form>
|
9
|
+
|
10
|
+
<p>
|
11
|
+
<a href='/admin/users/new'>New User</a> |
|
12
|
+
<a href='/admin/users/import'>Import CSV</a>
|
13
|
+
</p>
|
14
|
+
|
15
|
+
<table class='data' id='users_table'>
|
16
|
+
<tr>
|
17
|
+
<%= raw @gen.sortable_table_headings({
|
18
|
+
'first_name' => 'First Name',
|
19
|
+
'last_name, first_name' => 'Last Name',
|
20
|
+
'username' => 'Username',
|
21
|
+
'email' => 'Email'
|
22
|
+
})
|
23
|
+
%>
|
24
|
+
</tr>
|
25
|
+
<% @users.each do |user| %>
|
26
|
+
<tr onclick="window.location='/admin/users/<%= user.id %>';">
|
27
|
+
<td><%= user.first_name %></td>
|
28
|
+
<td><%= user.last_name %></td>
|
29
|
+
<td><%= user.username %></td>
|
30
|
+
<td><%= user.email %></td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</table>
|
34
|
+
|
35
|
+
<p><%= raw @gen.generate %></p>
|
36
|
+
|
37
|
+
<% content_for :caboose_js do %>
|
38
|
+
<script type='text/javascript'>
|
39
|
+
|
40
|
+
</script>
|
41
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%
|
2
|
+
d = @user.site.primary_domain
|
3
|
+
d = @user.site.domains.first if d.nil?
|
4
|
+
%>
|
5
|
+
|
6
|
+
<h1>Account Locked</h1>
|
7
|
+
<p>The account for <%= @user.email %> on the site "<%= @user.site.description %>" has been locked due to too many failed login attempts.</p>
|
8
|
+
<p><a href='http://<%= d.domain %>/admin/users/<%= @user.id %>'>Manage this user</a></p>
|
@@ -11,11 +11,17 @@
|
|
11
11
|
|
12
12
|
<% content_for :caboose_css do %>
|
13
13
|
<%= stylesheet_link_tag 'caboose/admin_media_index' %>
|
14
|
+
<%
|
15
|
+
#=stylesheet_link_tag 'caboose/nestable.css'
|
16
|
+
%>
|
14
17
|
<%= stylesheet_link_tag 'plupload/jquery.ui.plupload/css/jquery.ui.plupload.css' %>
|
15
18
|
<% end %>
|
16
19
|
|
17
20
|
<% content_for :caboose_js do %>
|
18
21
|
<%= javascript_include_tag 'caboose/model/all' %>
|
22
|
+
<%
|
23
|
+
#= javascript_include_tag 'caboose/jquery.nestable.js'
|
24
|
+
%>
|
19
25
|
<%= javascript_include_tag 'caboose/admin_media_index.js' %>
|
20
26
|
<%= javascript_include_tag 'caboose/jquery-ui.drag-multiple.min.js' %>
|
21
27
|
|
@@ -56,7 +56,7 @@ $(document).ready(function() {
|
|
56
56
|
{ show: false, name: 'category_id' , nice_name: 'Categories' , sort: 'categories.name' , type: 'checkbox-multiple' , value: function(p) { return p.categories ? p.categories.map(function(c) { return c.id }) : []; }, text: function(p) { return p.categories ? p.categories.map(function(c) { return c.name }).join(', ') : ''; }, width: 200, height: 200, options_url: '/admin/categories/options' },
|
57
57
|
{ show: true , name: 'stackable_group_id' , nice_name: 'Stackable Group' , sort: 'stackable_group_id' , type: 'select' , value: function(p) { return p.stackable_group_id }, width: 200, options_url: '/admin/stackable-groups/options' },
|
58
58
|
{ show: false, name: 'allow_gift_wrap' , nice_name: 'Allow Gift Wrap' , sort: 'allow_gift_wrap' , type: 'checkbox' , value: function(p) { return p.allow_gift_wrap ? 'Yes' : 'No' }, width: 500 },
|
59
|
-
{ show: false, name: 'gift_wrap_price' , nice_name: 'Gift Wrap Price' , sort: 'gift_wrap_price' , type: 'text' , value: function(p) { return p.gift_wrap_price.length > 0 ? '$' + parseFloat(p.gift_wrap_price).toFixed(2) : '' }, width: 500 }
|
59
|
+
{ show: false, name: 'gift_wrap_price' , nice_name: 'Gift Wrap Price' , sort: 'gift_wrap_price' , type: 'text' , value: function(p) { return p.gift_wrap_price != null && p.gift_wrap_price.length > 0 ? '$' + parseFloat(p.gift_wrap_price).toFixed(2) : '' }, width: 500 }
|
60
60
|
],
|
61
61
|
new_model_text: 'New Product',
|
62
62
|
new_model_fields: [
|
@@ -14,6 +14,7 @@ sc = @social_config
|
|
14
14
|
<p><div id="socialconfig_<%= sc.id %>_google_plus_url" ></div></p>
|
15
15
|
<p><div id="socialconfig_<%= sc.id %>_linkedin_url" ></div></p>
|
16
16
|
<p><div id="socialconfig_<%= sc.id %>_google_analytics_id" ></div></p>
|
17
|
+
<p><div id="socialconfig_<%= sc.id %>_google_analytics_id2" ></div></p>
|
17
18
|
<p><div id="socialconfig_<%= sc.id %>_auto_ga_js" ></div></p>
|
18
19
|
|
19
20
|
<div id='message'></div>
|
@@ -30,17 +31,18 @@ $(document).ready(function() {
|
|
30
31
|
update_url: '/admin/social',
|
31
32
|
authenticity_token: '<%= form_authenticity_token %>',
|
32
33
|
attributes: [
|
33
|
-
{ name: 'facebook_page_id'
|
34
|
-
{ name: 'twitter_username'
|
35
|
-
{ name: 'instagram_username'
|
36
|
-
{ name: 'youtube_url'
|
37
|
-
{ name: 'pinterest_url'
|
38
|
-
{ name: 'vimeo_url'
|
39
|
-
{ name: 'rss_url'
|
40
|
-
{ name: 'google_plus_url'
|
41
|
-
{ name: 'linkedin_url'
|
42
|
-
{ name: 'google_analytics_id'
|
43
|
-
{ name: '
|
34
|
+
{ name: 'facebook_page_id' , nice_name: 'Facebook Page ID' , type: 'text' , value: <%= raw Caboose.json(sc.facebook_page_id) %>, width: 500 },
|
35
|
+
{ name: 'twitter_username' , nice_name: 'Twitter Username' , type: 'text' , value: <%= raw Caboose.json(sc.twitter_username) %>, width: 500 },
|
36
|
+
{ name: 'instagram_username' , nice_name: 'Instagram Username' , type: 'text' , value: <%= raw Caboose.json(sc.instagram_username) %>, width: 500 },
|
37
|
+
{ name: 'youtube_url' , nice_name: 'YouTube Channel ID' , type: 'text' , value: <%= raw Caboose.json(sc.youtube_url) %>, width: 500 },
|
38
|
+
{ name: 'pinterest_url' , nice_name: 'Pinterest URL' , type: 'text' , value: <%= raw Caboose.json(sc.pinterest_url) %>, width: 500 },
|
39
|
+
{ name: 'vimeo_url' , nice_name: 'Vimeo URL' , type: 'text' , value: <%= raw Caboose.json(sc.vimeo_url) %>, width: 500 },
|
40
|
+
{ name: 'rss_url' , nice_name: 'RSS Feed URL' , type: 'text' , value: <%= raw Caboose.json(sc.rss_url) %>, width: 500 },
|
41
|
+
{ name: 'google_plus_url' , nice_name: 'Google Plus URL' , type: 'text' , value: <%= raw Caboose.json(sc.google_plus_url) %>, width: 500 },
|
42
|
+
{ name: 'linkedin_url' , nice_name: 'LinkedIn URL' , type: 'text' , value: <%= raw Caboose.json(sc.linkedin_url) %>, width: 500 },
|
43
|
+
{ name: 'google_analytics_id' , nice_name: 'Primary Google Analytics Tracking ID' , type: 'text' , value: <%= raw Caboose.json(sc.google_analytics_id) %>, width: 500 },
|
44
|
+
{ name: 'google_analytics_id2' , nice_name: 'Secondary Google Analytics Tracking ID' , type: 'text' , value: <%= raw Caboose.json(sc.google_analytics_id2) %>, width: 500 },
|
45
|
+
{ name: 'auto_ga_js' , nice_name: 'Auto Embed Google Analytics JS' , type: 'checkbox' , value: <%= sc.auto_ga_js ? 1 : 0 %>, width: 500 }
|
44
46
|
]
|
45
47
|
});
|
46
48
|
|
@@ -8,6 +8,7 @@ pic = "http://gravatar.com/avatar/#{gravatar_id}.png?s=150" #&d=/assets/caboose/
|
|
8
8
|
<p><div id='user_<%= @edituser.id %>_last_name' ></div></p>
|
9
9
|
<p><div id='user_<%= @edituser.id %>_username' ></div></p>
|
10
10
|
<p><div id='user_<%= @edituser.id %>_email' ></div></p>
|
11
|
+
<p><div id='user_<%= @edituser.id %>_locked' ></div></p>
|
11
12
|
<div id='roles'>
|
12
13
|
<table class='data'>
|
13
14
|
<% Caboose::Role.flat_tree(@site.id).each do |r| %>
|
@@ -40,10 +41,11 @@ $(document).ready(function() {
|
|
40
41
|
update_url: '/admin/users/<%= @edituser.id %>',
|
41
42
|
authenticity_token: '<%= form_authenticity_token %>',
|
42
43
|
attributes: [
|
43
|
-
{ name: 'first_name' , nice_name: 'First name', type: 'text', value: <%= raw Caboose.json(@edituser.first_name) %>, width: 280 },
|
44
|
-
{ name: 'last_name' , nice_name: 'Last name' , type: 'text', value: <%= raw Caboose.json(@edituser.last_name) %>, width: 280 },
|
45
|
-
{ name: 'username' , nice_name: 'Username' , type: 'text', value: <%= raw Caboose.json(@edituser.username) %>, width: 280 },
|
46
|
-
{ name: 'email' , nice_name: 'Email' , type: 'text', value: <%= raw Caboose.json(@edituser.email) %>, width: 280 }
|
44
|
+
{ name: 'first_name' , nice_name: 'First name', type: 'text' , value: <%= raw Caboose.json(@edituser.first_name) %>, width: 280 },
|
45
|
+
{ name: 'last_name' , nice_name: 'Last name' , type: 'text' , value: <%= raw Caboose.json(@edituser.last_name) %>, width: 280 },
|
46
|
+
{ name: 'username' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(@edituser.username) %>, width: 280 },
|
47
|
+
{ name: 'email' , nice_name: 'Email' , type: 'text' , value: <%= raw Caboose.json(@edituser.email) %>, width: 280 },
|
48
|
+
{ name: 'locked' , nice_name: 'Locked' , type: 'checkbox' , value: <%= @edituser.locked ? 1 : 0 %>, width: 280 }
|
47
49
|
]
|
48
50
|
});
|
49
51
|
});
|
data/config/routes.rb
CHANGED
@@ -228,6 +228,7 @@ Caboose::Engine.routes.draw do
|
|
228
228
|
get "/admin/media-categories/json" => "media_categories#admin_json"
|
229
229
|
get "/admin/media-categories/options" => "media_categories#admin_options"
|
230
230
|
get "/admin/media-categories/flat-tree" => "media_categories#admin_flat_tree"
|
231
|
+
get "/admin/media-categories/tree" => "media_categories#admin_tree"
|
231
232
|
post "/admin/media-categories" => "media_categories#admin_add"
|
232
233
|
post "/admin/media-categories/:id/attach" => "media_categories#admin_attach"
|
233
234
|
put "/admin/media-categories/:id" => "media_categories#admin_update"
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|
@@ -262,20 +262,6 @@ dependencies:
|
|
262
262
|
- - ! '>='
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0'
|
265
|
-
- !ruby/object:Gem::Dependency
|
266
|
-
name: tax_cloud
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
268
|
-
requirements:
|
269
|
-
- - ! '>='
|
270
|
-
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
272
|
-
type: :runtime
|
273
|
-
prerelease: false
|
274
|
-
version_requirements: !ruby/object:Gem::Requirement
|
275
|
-
requirements:
|
276
|
-
- - ! '>='
|
277
|
-
- !ruby/object:Gem::Version
|
278
|
-
version: '0'
|
279
265
|
- !ruby/object:Gem::Dependency
|
280
266
|
name: rspec-rails
|
281
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -400,6 +386,7 @@ files:
|
|
400
386
|
- app/assets/javascripts/caboose/admin_edit_order.js
|
401
387
|
- app/assets/javascripts/caboose/admin_main.js
|
402
388
|
- app/assets/javascripts/caboose/admin_media_index.js
|
389
|
+
- app/assets/javascripts/caboose/admin_media_index_new.js
|
403
390
|
- app/assets/javascripts/caboose/admin_page_edit_content.js
|
404
391
|
- app/assets/javascripts/caboose/admin_page_new_blocks.js
|
405
392
|
- app/assets/javascripts/caboose/admin_post_edit_content.js
|
@@ -425,6 +412,7 @@ files:
|
|
425
412
|
- app/assets/javascripts/caboose/jquery.detect.js
|
426
413
|
- app/assets/javascripts/caboose/jquery.fileupload.js
|
427
414
|
- app/assets/javascripts/caboose/jquery.iframe-transport.js
|
415
|
+
- app/assets/javascripts/caboose/jquery.nestable.js
|
428
416
|
- app/assets/javascripts/caboose/jquery.placeholder.js
|
429
417
|
- app/assets/javascripts/caboose/jquery.timepicker.js
|
430
418
|
- app/assets/javascripts/caboose/lodash.min.js
|
@@ -568,6 +556,7 @@ files:
|
|
568
556
|
- app/assets/stylesheets/caboose/model_binder.css
|
569
557
|
- app/assets/stylesheets/caboose/my_account.css
|
570
558
|
- app/assets/stylesheets/caboose/my_account_edit_order.css.scss
|
559
|
+
- app/assets/stylesheets/caboose/nestable.css
|
571
560
|
- app/assets/stylesheets/caboose/page_bar_generator.css
|
572
561
|
- app/assets/stylesheets/caboose/print.css
|
573
562
|
- app/assets/stylesheets/caboose/product_images.css.scss
|
@@ -592,7 +581,6 @@ files:
|
|
592
581
|
- app/assets/templates/caboose/product/images.jst.ejs
|
593
582
|
- app/assets/templates/caboose/product/images_old.jst.ejs
|
594
583
|
- app/assets/templates/caboose/product/options.jst.ejs
|
595
|
-
- app/controllers/caboose/#Untitled-1#
|
596
584
|
- app/controllers/caboose/ab_options_controller.rb
|
597
585
|
- app/controllers/caboose/ab_variants_controller.rb
|
598
586
|
- app/controllers/caboose/admin_controller.rb
|
@@ -615,6 +603,7 @@ files:
|
|
615
603
|
- app/controllers/caboose/google_spreadsheets_controller.rb
|
616
604
|
- app/controllers/caboose/line_items_controller.rb
|
617
605
|
- app/controllers/caboose/login_controller.rb
|
606
|
+
- app/controllers/caboose/login_logs_controller.rb
|
618
607
|
- app/controllers/caboose/logout_controller.rb
|
619
608
|
- app/controllers/caboose/media_categories_controller.rb
|
620
609
|
- app/controllers/caboose/media_controller.rb
|
@@ -697,6 +686,7 @@ files:
|
|
697
686
|
- app/models/caboose/gift_card.rb
|
698
687
|
- app/models/caboose/line_item.rb
|
699
688
|
- app/models/caboose/line_item_modification.rb
|
689
|
+
- app/models/caboose/login_log.rb
|
700
690
|
- app/models/caboose/media.rb
|
701
691
|
- app/models/caboose/media_category.rb
|
702
692
|
- app/models/caboose/menu_block.rb
|
@@ -881,7 +871,9 @@ files:
|
|
881
871
|
- app/views/caboose/login/forgot_password_form.html.erb
|
882
872
|
- app/views/caboose/login/index.html.erb
|
883
873
|
- app/views/caboose/login/reset_password_form.html.erb
|
874
|
+
- app/views/caboose/login_logs/admin_index.html.erb
|
884
875
|
- app/views/caboose/login_mailer/forgot_password_email.html.erb
|
876
|
+
- app/views/caboose/login_mailer/locked_account.html.erb
|
885
877
|
- app/views/caboose/media/admin_edit.html.erb
|
886
878
|
- app/views/caboose/media/admin_edit_description.html.erb
|
887
879
|
- app/views/caboose/media/admin_index.html.erb
|