caboose-cms 0.5.15 → 0.5.16
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 +9 -9
- data/app/assets/javascripts/caboose/cart2.js +98 -0
- data/app/assets/javascripts/caboose/model/index_table.js +82 -30
- data/app/assets/javascripts/caboose/model/model_binder.js +4 -4
- data/app/assets/stylesheets/caboose/admin.css +1 -0
- data/app/assets/stylesheets/caboose/admin_main.css +0 -42
- data/app/assets/stylesheets/caboose/cart.scss +41 -0
- data/app/assets/stylesheets/caboose/checkout.css.scss +2 -3
- data/app/assets/stylesheets/caboose/message_boxes.scss +49 -0
- data/app/assets/templates/caboose/cart/add_to_cart.jst.ejs +1 -1
- data/app/controllers/caboose/block_types_controller.rb +3 -1
- data/app/controllers/caboose/cart_controller.rb +30 -23
- data/app/controllers/caboose/checkout_controller.rb +11 -1
- data/app/controllers/caboose/products_controller.rb +28 -14
- data/app/controllers/caboose/stackable_groups_controller.rb +107 -0
- data/app/models/caboose/line_item.rb +20 -6
- data/app/models/caboose/order.rb +2 -1
- data/app/models/caboose/order_package.rb +103 -0
- data/app/models/caboose/product.rb +2 -1
- data/app/models/caboose/schema.rb +45 -3
- data/app/models/caboose/shipping_calculator.rb +101 -60
- data/app/models/caboose/shipping_package.rb +80 -0
- data/app/models/caboose/site.rb +3 -1
- data/app/models/caboose/stackable_group.rb +17 -0
- data/app/models/caboose/tax_calculator.rb +1 -2
- data/app/models/caboose/variant.rb +2 -5
- data/app/views/caboose/cart/index.html.erb +19 -6
- data/app/views/caboose/checkout/_cart.html.erb +49 -52
- data/app/views/caboose/checkout/empty.html.erb +9 -2
- data/app/views/caboose/checkout/step_one.html.erb +2 -3
- data/app/views/caboose/checkout/step_three.html.erb +28 -10
- data/app/views/caboose/checkout/step_two.html.erb +2 -4
- data/app/views/caboose/pages/admin_edit_content.html.erb +1 -1
- data/app/views/caboose/products/admin_index.html.erb +12 -11
- data/app/views/caboose/sites/admin_edit.html.erb +33 -6
- data/app/views/caboose/stackable_groups/admin_index.html.erb +43 -0
- data/config/routes.rb +15 -6
- data/lib/caboose/version.rb +1 -1
- data/lib/tasks/caboose.rake +7 -1
- metadata +36 -14
@@ -1,52 +1,49 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<td align="right"><%= number_to_currency(@order.total) %></td>
|
51
|
-
</tr>
|
52
|
-
</table>
|
1
|
+
|
2
|
+
<div class='constrain'>
|
3
|
+
<table id="cart">
|
4
|
+
<tr>
|
5
|
+
<th>Item</th>
|
6
|
+
<th>Quantity</th>
|
7
|
+
<th>Subtotal</th>
|
8
|
+
</tr>
|
9
|
+
<% @order.line_items.each do |line_item| %>
|
10
|
+
<tr>
|
11
|
+
<td>
|
12
|
+
<%= line_item.variant.product.title %> - <%= line_item.variant.title %>
|
13
|
+
|
14
|
+
<% line_item.customizations.each do |customization| %>
|
15
|
+
<p><%= "- #{customization.variant.product.custom_input}: #{customization.custom_input}"%></p>
|
16
|
+
<% end %>
|
17
|
+
</td>
|
18
|
+
<td align="right"><%= line_item.quantity %></td>
|
19
|
+
<td align="right"><%= number_to_currency(line_item.subtotal) %></td>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
<tr>
|
23
|
+
<td colspan="2" align="right">Subtotal</td>
|
24
|
+
<td align="right"><%= number_to_currency(@order.subtotal) %></td>
|
25
|
+
</tr>
|
26
|
+
<% if @order.tax and @order.tax > 0 %>
|
27
|
+
<tr>
|
28
|
+
<td colspan="2" align="right">Tax <span class="float: right">+</span></td>
|
29
|
+
<td align="right"><%= number_to_currency(@order.tax) %></td>
|
30
|
+
</tr>
|
31
|
+
<% end %>
|
32
|
+
<% if @order.shipping and @order.handling %>
|
33
|
+
<tr>
|
34
|
+
<td colspan="2" align="right">Shipping & Handling <span class="float: right">+</span></td>
|
35
|
+
<td align="right"><%= number_to_currency(@order.shipping + @order.handling) %></td>
|
36
|
+
</tr>
|
37
|
+
<% end %>
|
38
|
+
<% if @order.discounts.any? %>
|
39
|
+
<tr>
|
40
|
+
<td colspan="2" align="right">Gift Card <span class="float: right">-</span></td>
|
41
|
+
<td align="right"><%= number_to_currency(@order.discounts.first.amount_current) %></td>
|
42
|
+
</tr>
|
43
|
+
<% end %>
|
44
|
+
<tr>
|
45
|
+
<td colspan="2" align="right">Total <span class="float: right">=</span></td>
|
46
|
+
<td align="right"><%= number_to_currency(@order.total) %></td>
|
47
|
+
</tr>
|
48
|
+
</table>
|
49
|
+
</div>
|
@@ -1,2 +1,9 @@
|
|
1
|
-
|
2
|
-
<
|
1
|
+
|
2
|
+
<div id='checkout' class='constrain'>
|
3
|
+
<p> </p>
|
4
|
+
<p class='note'>Your cart is empty. <a href="/products">Go back to the store</a></p>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<% content_for :caboose_css do %>
|
8
|
+
<%= stylesheet_link_tag 'caboose/message_boxes' %>
|
9
|
+
<% end %>
|
@@ -1,7 +1,5 @@
|
|
1
1
|
<div id="checkout">
|
2
|
-
|
3
|
-
<%= raw checkout_nav(1) %>
|
4
|
-
|
2
|
+
|
5
3
|
<% if @logged_in_user.id == 1 %>
|
6
4
|
<p class='note error'>You are logged in as the admin user. Please <a href='/logout'>logout</a> and complete your order as a different user.</p>
|
7
5
|
<% else %>
|
@@ -48,5 +46,6 @@
|
|
48
46
|
<%= javascript_include_tag 'caboose/checkout_step1' %>
|
49
47
|
<% end %>
|
50
48
|
<%= content_for :caboose_css do %>
|
49
|
+
<%= stylesheet_link_tag 'caboose/message_boxes' %>
|
51
50
|
<%= stylesheet_link_tag 'caboose/checkout' %>
|
52
51
|
<% end %>
|
@@ -1,15 +1,32 @@
|
|
1
|
-
<div id="checkout">
|
2
|
-
<h2>Checkout</h2>
|
3
|
-
<%= raw checkout_nav(3) %>
|
1
|
+
<div id="checkout" class='constrain'>
|
4
2
|
<section id="checkout-shipping">
|
5
|
-
<div class="wrapper">
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
<div class="wrapper">
|
4
|
+
<% if @rates.count > 1 %>
|
5
|
+
<p>Your package must be shipped in multiple packages. Please select
|
6
|
+
how you would like each package to be delivered.</p>
|
7
|
+
<% end %>
|
8
|
+
<table>
|
9
|
+
<tr>
|
10
|
+
<th>Package</th>
|
11
|
+
<th>Shipping Options</th>
|
12
|
+
</tr>
|
13
|
+
<% @rates.each_with_index do |arr, i| %>
|
14
|
+
<% op = arr[0] %>
|
15
|
+
<% sp = op.shipping_package %>
|
16
|
+
<tr>
|
17
|
+
<td valign='top'>
|
18
|
+
<ul><% op.line_items.each do |li| %><li><%= li.variant.product.title %> (<%= li.variant.title %>)<% end %></ul>
|
19
|
+
</td>
|
20
|
+
<td valign='top'>
|
21
|
+
<% arr[1].each do |rate| %>
|
22
|
+
<button class="blue" data-shipping-code="<%= rate[:service_code] %>" data-shipping-method="<%= rate[:service_name] %>">
|
23
|
+
<%= number_to_currency(rate[:total_price], :precision => 2) %><br /><%= rate[:service_name] %>
|
24
|
+
</button>
|
25
|
+
<% end %>
|
26
|
+
</td>
|
27
|
+
</tr>
|
11
28
|
<% end %>
|
12
|
-
</
|
29
|
+
</table>
|
13
30
|
</div>
|
14
31
|
</section>
|
15
32
|
<section id="checkout-continue">
|
@@ -22,5 +39,6 @@
|
|
22
39
|
<%= javascript_include_tag 'caboose/checkout_step3' %>
|
23
40
|
<% end %>
|
24
41
|
<%= content_for :caboose_css do %>
|
42
|
+
<%= stylesheet_link_tag 'caboose/message_boxes' %>
|
25
43
|
<%= stylesheet_link_tag 'caboose/checkout' %>
|
26
44
|
<% end %>
|
@@ -2,10 +2,7 @@
|
|
2
2
|
sa = @order.shipping_address
|
3
3
|
ba = @order.billing_address
|
4
4
|
%>
|
5
|
-
|
6
|
-
<div id="checkout" class='constrain'>
|
7
|
-
<h2>Checkout</h2>
|
8
|
-
<%= raw checkout_nav(2) %>
|
5
|
+
<div id="checkout" class='constrain'>
|
9
6
|
<% if @logged_in_user.id == 1 %>
|
10
7
|
<p class='note error'>You are logged in as the admin user. Please <a href='/logout'>logout</a> and complete your order as a different user.</p>
|
11
8
|
<% else %>
|
@@ -55,6 +52,7 @@ ba = @order.billing_address
|
|
55
52
|
<%= javascript_include_tag 'caboose/checkout_step2' %>
|
56
53
|
<% end %>
|
57
54
|
<%= content_for :caboose_css do %>
|
55
|
+
<%= stylesheet_link_tag 'caboose/message_boxes' %>
|
58
56
|
<%= stylesheet_link_tag 'caboose/checkout' %>
|
59
57
|
<% end %>
|
60
58
|
|
@@ -61,7 +61,7 @@ $(document).ready(function() {
|
|
61
61
|
.attr('id', 'tiny_header')
|
62
62
|
.append($('<a/>').attr('href', '/admin/pages').html("< Back"))
|
63
63
|
.append($('<a/>').attr('href', '/admin/pages/<%= @page.id %>/layout').html("Page Layout"))
|
64
|
-
.append($('<a/>').attr('href', '/admin/pages/<%= @page.id
|
64
|
+
.append($('<a/>').attr('href', '/admin/pages/<%= @page.id %>').html("Page Settings"))
|
65
65
|
);
|
66
66
|
});
|
67
67
|
|
@@ -30,17 +30,18 @@ $(document).ready(function() {
|
|
30
30
|
allow_duplicate: false,
|
31
31
|
allow_advanced_edit: true,
|
32
32
|
fields: [
|
33
|
-
{ show: true , name: 'id'
|
34
|
-
{ show: true , name: 'title'
|
35
|
-
{ show: true , name: 'caption'
|
36
|
-
{ show: true , name: 'status'
|
37
|
-
{ show: true , name: 'handle'
|
38
|
-
{ show: true , name: 'seo_title'
|
39
|
-
{ show: false, name: 'seo_description'
|
40
|
-
{ show: true , name: 'alternate_id'
|
41
|
-
{ show: true , name: 'date_available'
|
42
|
-
{ show: false, name: 'featured'
|
43
|
-
{ show: false, name: 'category_id'
|
33
|
+
{ show: true , name: 'id' , nice_name: 'ID' , sort: 'id' , type: 'text' , value: function(p) { return p.id }, width: 500, editable: false },
|
34
|
+
{ show: true , name: 'title' , nice_name: 'Title' , sort: 'title' , type: 'text' , value: function(p) { return p.title }, width: 200 },
|
35
|
+
{ show: true , name: 'caption' , nice_name: 'Caption' , sort: 'caption' , type: 'text' , value: function(p) { return p.caption }, width: 200 },
|
36
|
+
{ show: true , name: 'status' , nice_name: 'Status' , sort: 'status' , type: 'select' , value: function(p) { return p.status }, width: 200, options_url: '/admin/products/status-options' },
|
37
|
+
{ show: true , name: 'handle' , nice_name: 'URL Handle' , sort: 'handle' , type: 'text' , value: function(p) { return p.handle }, width: 200 },
|
38
|
+
{ show: true , name: 'seo_title' , nice_name: 'SEO Page Title' , sort: 'seo_title' , type: 'text' , value: function(p) { return p.seo_title }, width: 200 },
|
39
|
+
{ show: false, name: 'seo_description' , nice_name: 'SEO Meta Description' , sort: 'seo_description' , type: 'textarea' , value: function(p) { return p.seo_description }, width: 200, height: 150 },
|
40
|
+
{ show: true , name: 'alternate_id' , nice_name: 'Alternate ID' , sort: 'alternate_id' , type: 'text' , value: function(p) { return p.alternate_id }, width: 200 },
|
41
|
+
{ show: true , name: 'date_available' , nice_name: 'Date Available' , sort: 'date_available' , type: 'date' , value: function(p) { return p.date_available }, width: 200 },
|
42
|
+
{ show: false, name: 'featured' , nice_name: 'Featured' , sort: 'featured' , type: 'checkbox' , value: function(p) { return p.featured }, width: 200 },
|
43
|
+
{ 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' },
|
44
|
+
{ 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' },
|
44
45
|
],
|
45
46
|
new_model_text: 'New Product',
|
46
47
|
new_model_fields: [
|
@@ -41,16 +41,31 @@ user_ids = [] if user_ids.nil?
|
|
41
41
|
<table class='data'>
|
42
42
|
<tr><th>User</th><th>None</th><th>User</th><th>Admin</th></tr>
|
43
43
|
<% Caboose::User.reorder('last_name, first_name').all.each do |u| %>
|
44
|
-
<tr>
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
</tr>
|
44
|
+
<tr>
|
45
|
+
<td><%= u.first_name %> <%= u.last_name %> (<%= u.email %>)</td>
|
46
|
+
<td align='center'><input type='radio' name='user<%= u.id %>' <%= !admin_ids.include?(u.id) && !user_ids.include?(u.id) ? "checked='true'" : '' %> onclick="remove_site_membership(<%= s.id %>, <%= u.id %>);" /></td>
|
47
|
+
<td align='center'><input type='radio' name='user<%= u.id %>' <%= user_ids.include?(u.id) ? "checked='true'" : '' %> onclick="add_site_membership(<%= s.id %>, <%= u.id %>, 'User');" /></td>
|
48
|
+
<td align='center'><input type='radio' name='user<%= u.id %>' <%= admin_ids.include?(u.id) ? "checked='true'" : '' %> onclick="add_site_membership(<%= s.id %>, <%= u.id %>, 'Admin');" /></td>
|
49
|
+
</tr>
|
50
50
|
<% end %>
|
51
51
|
</table>
|
52
52
|
</div>
|
53
53
|
|
54
|
+
<h2>Block Types</h2>
|
55
|
+
<div id='block_types'>
|
56
|
+
<table class='data'>
|
57
|
+
<tr><th> </th><th>Name</th><th>Description</th></tr>
|
58
|
+
<% bt_ids = @site.block_type_site_memberships.collect{ |bt| bt.block_type_id } %>
|
59
|
+
<% Caboose::BlockType.where("parent_id is null").reorder('name').all.each do |bt| %>
|
60
|
+
<tr>
|
61
|
+
<td align='center'><input type='checkbox' name='block_type_id_<%= bt.id %>' <%= bt_ids.include?(bt.id) ? "checked='true'" : '' %> onclick="toggle_block_type_site_membership(<%= @site.id %>, <%= bt.id %>, $(this).prop('checked'));" /></td>
|
62
|
+
<td><%= bt.name %></td>
|
63
|
+
<td><%= bt.description %></td>
|
64
|
+
</tr>
|
65
|
+
<% end %>
|
66
|
+
</table><br/>
|
67
|
+
</div>
|
68
|
+
|
54
69
|
<div id='message'></div>
|
55
70
|
<div id='controls'>
|
56
71
|
<input type='button' value='Back' onclick="window.location='/admin/sites';" />
|
@@ -134,6 +149,18 @@ function remove_site_membership(site_id, user_id)
|
|
134
149
|
});
|
135
150
|
}
|
136
151
|
|
152
|
+
function toggle_block_type_site_membership(site_id, block_type_id, checked)
|
153
|
+
{
|
154
|
+
$.ajax({
|
155
|
+
url: '/admin/block-types/' + block_type_id,
|
156
|
+
type: 'put',
|
157
|
+
data: {
|
158
|
+
site_id: [site_id, checked ? 1 : 0]
|
159
|
+
},
|
160
|
+
succes: function(resp) {}
|
161
|
+
});
|
162
|
+
}
|
163
|
+
|
137
164
|
function add_domain(site_id, domain)
|
138
165
|
{
|
139
166
|
if (!domain)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<h1>Stackable Groups</h1>
|
2
|
+
|
3
|
+
<div id='stackable_groups'></div>
|
4
|
+
|
5
|
+
<% content_for :caboose_js do %>
|
6
|
+
<%= javascript_include_tag 'caboose/model/all' %>
|
7
|
+
<script type='text/javascript'>
|
8
|
+
|
9
|
+
$(document).ready(function() {
|
10
|
+
var that = this;
|
11
|
+
var table = new IndexTable({
|
12
|
+
form_authenticity_token: '<%= form_authenticity_token %>',
|
13
|
+
container: 'stackable_groups',
|
14
|
+
base_url: '/admin/stackable-groups',
|
15
|
+
delete_url: function(sg_id) { '/admin/stackable-groups/' + sg_id; },
|
16
|
+
allow_bulk_edit: false,
|
17
|
+
allow_bulk_delete: true,
|
18
|
+
allow_duplicate: false,
|
19
|
+
allow_advanced_edit: true,
|
20
|
+
fields: [
|
21
|
+
{ show: true, name: 'name' , nice_name: 'Name' , sort: 'name' , type: 'text', value: function(sg) { return sg.name }, width: 100 },
|
22
|
+
{ show: true, name: 'extra_length' , nice_name: 'Extra length (in)' , sort: 'extra_length' , type: 'text', value: function(sg) { return sg.extra_length }, width: 100 },
|
23
|
+
{ show: true, name: 'extra_width' , nice_name: 'Extra width (in)' , sort: 'extra_width' , type: 'text', value: function(sg) { return sg.extra_width }, width: 100 },
|
24
|
+
{ show: true, name: 'extra_height' , nice_name: 'Extra height (in)' , sort: 'extra_height' , type: 'text', value: function(sg) { return sg.extra_height }, width: 100 },
|
25
|
+
{ show: true, name: 'max_length' , nice_name: 'Max length (in)' , sort: 'max_length' , type: 'text', value: function(sg) { return sg.max_length }, width: 100 },
|
26
|
+
{ show: true, name: 'max_width' , nice_name: 'Max width (in)' , sort: 'max_width' , type: 'text', value: function(sg) { return sg.max_width }, width: 100 },
|
27
|
+
{ show: true, name: 'max_height' , nice_name: 'Max height (in)' , sort: 'max_height' , type: 'text', value: function(sg) { return sg.max_height }, width: 100 }
|
28
|
+
],
|
29
|
+
new_model_text: 'New Stackable Group',
|
30
|
+
new_model_fields: [
|
31
|
+
{ name: 'name', nice_name: 'Name', type: 'text', width: 400 }
|
32
|
+
],
|
33
|
+
});
|
34
|
+
});
|
35
|
+
|
36
|
+
</script>
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
<% content_for :caboose_css do %>
|
40
|
+
<style>
|
41
|
+
|
42
|
+
</style>
|
43
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -243,12 +243,12 @@ Caboose::Engine.routes.draw do
|
|
243
243
|
delete "admin/ab-options/:id" => "ab_options#admin_delete"
|
244
244
|
|
245
245
|
# Cart
|
246
|
-
get '/cart'
|
247
|
-
get '/cart/items'
|
248
|
-
get '/cart/item-count'
|
249
|
-
post '/cart
|
250
|
-
put '/cart
|
251
|
-
delete '/cart
|
246
|
+
get '/cart' => 'cart#index'
|
247
|
+
get '/cart/items' => 'cart#list'
|
248
|
+
get '/cart/item-count' => 'cart#item_count'
|
249
|
+
post '/cart' => 'cart#add'
|
250
|
+
put '/cart/:line_item_id' => 'cart#update'
|
251
|
+
delete '/cart/:line_item_id' => 'cart#remove'
|
252
252
|
|
253
253
|
# Checkout
|
254
254
|
get '/checkout' => 'checkout#index'
|
@@ -341,6 +341,15 @@ Caboose::Engine.routes.draw do
|
|
341
341
|
post "/admin/products/:id/variants" => "variants#admin_add"
|
342
342
|
delete "/admin/variants/:id" => "variants#admin_delete"
|
343
343
|
|
344
|
+
get "/admin/stackable-groups/options" => "stackable_groups#admin_options"
|
345
|
+
get "/admin/stackable-groups/json" => "stackable_groups#admin_json"
|
346
|
+
get "/admin/stackable-groups/:id/json" => "stackable_groups#admin_json_single"
|
347
|
+
get "/admin/stackable-groups" => "stackable_groups#admin_index"
|
348
|
+
put "/admin/stackable-groups/:id" => "stackable_groups#admin_update"
|
349
|
+
post "/admin/stackable-groups" => "stackable_groups#admin_add"
|
350
|
+
delete "/admin/stackable-groups/bulk" => "stackable_groups#admin_bulk_delete"
|
351
|
+
delete "/admin/stackable-groups/:id" => "stackable_groups#admin_delete"
|
352
|
+
|
344
353
|
get "/admin/categories" => "categories#admin_index"
|
345
354
|
get "/admin/categories/new" => "categories#admin_new"
|
346
355
|
get "/admin/categories/options" => "categories#admin_options"
|
data/lib/caboose/version.rb
CHANGED
data/lib/tasks/caboose.rake
CHANGED
@@ -92,7 +92,13 @@ namespace :caboose do
|
|
92
92
|
max = rows[0]['max']
|
93
93
|
max = max.to_i if !max.nil?
|
94
94
|
|
95
|
-
rows =
|
95
|
+
rows = nil
|
96
|
+
begin
|
97
|
+
rows = c.execute("select nextval('#{tbl}_id_seq')")
|
98
|
+
rescue
|
99
|
+
next
|
100
|
+
end
|
101
|
+
|
96
102
|
nextval = rows[0]['nextval']
|
97
103
|
nextval = nextval.to_i if !nextval.nil?
|
98
104
|
|
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.5.
|
4
|
+
version: 0.5.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -220,6 +220,20 @@ dependencies:
|
|
220
220
|
- - ! '>='
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: box_packer
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ! '>='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ! '>='
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
223
237
|
description: CMS built on rails with love.
|
224
238
|
email:
|
225
239
|
- william@nine.is
|
@@ -228,6 +242,9 @@ executables:
|
|
228
242
|
extensions: []
|
229
243
|
extra_rdoc_files: []
|
230
244
|
files:
|
245
|
+
- MIT-LICENSE
|
246
|
+
- README.md
|
247
|
+
- Rakefile
|
231
248
|
- app/assets/fonts/avenir-medium.eot
|
232
249
|
- app/assets/fonts/avenir-medium.ttf
|
233
250
|
- app/assets/fonts/icomoon.eot
|
@@ -256,6 +273,7 @@ files:
|
|
256
273
|
- app/assets/javascripts/caboose/admin_products.js
|
257
274
|
- app/assets/javascripts/caboose/application.js
|
258
275
|
- app/assets/javascripts/caboose/cart.js
|
276
|
+
- app/assets/javascripts/caboose/cart2.js
|
259
277
|
- app/assets/javascripts/caboose/checkout.js
|
260
278
|
- app/assets/javascripts/caboose/checkout_module.js
|
261
279
|
- app/assets/javascripts/caboose/checkout_step1.js
|
@@ -270,6 +288,8 @@ files:
|
|
270
288
|
- app/assets/javascripts/caboose/main.js
|
271
289
|
- app/assets/javascripts/caboose/modal.js
|
272
290
|
- app/assets/javascripts/caboose/modal_integration.js
|
291
|
+
- app/assets/javascripts/caboose/model.form.page.js
|
292
|
+
- app/assets/javascripts/caboose/model.form.user.js
|
273
293
|
- app/assets/javascripts/caboose/model/all.js
|
274
294
|
- app/assets/javascripts/caboose/model/attribute.js
|
275
295
|
- app/assets/javascripts/caboose/model/bound_checkbox.js
|
@@ -292,8 +312,6 @@ files:
|
|
292
312
|
- app/assets/javascripts/caboose/model/model_binder.js
|
293
313
|
- app/assets/javascripts/caboose/model/pager.js
|
294
314
|
- app/assets/javascripts/caboose/model/s3.js
|
295
|
-
- app/assets/javascripts/caboose/model.form.page.js
|
296
|
-
- app/assets/javascripts/caboose/model.form.user.js
|
297
315
|
- app/assets/javascripts/caboose/product.js
|
298
316
|
- app/assets/javascripts/caboose/s3upload.js
|
299
317
|
- app/assets/javascripts/caboose/shortcut.js
|
@@ -309,15 +327,17 @@ files:
|
|
309
327
|
- app/assets/stylesheets/caboose/application.css
|
310
328
|
- app/assets/stylesheets/caboose/bound_input.css
|
311
329
|
- app/assets/stylesheets/caboose/caboose.css
|
330
|
+
- app/assets/stylesheets/caboose/cart.scss
|
312
331
|
- app/assets/stylesheets/caboose/checkout.css.scss
|
332
|
+
- app/assets/stylesheets/caboose/fonts.css
|
313
333
|
- app/assets/stylesheets/caboose/fonts/avenir-medium.eot
|
314
334
|
- app/assets/stylesheets/caboose/fonts/avenir-medium.ttf
|
315
335
|
- app/assets/stylesheets/caboose/fonts/big_noodle_titling.ttf
|
316
336
|
- app/assets/stylesheets/caboose/fonts/big_noodle_titling_oblique.ttf
|
317
|
-
- app/assets/stylesheets/caboose/fonts.css
|
318
337
|
- app/assets/stylesheets/caboose/icomoon_fonts.css
|
319
338
|
- app/assets/stylesheets/caboose/icons.txt
|
320
339
|
- app/assets/stylesheets/caboose/login.css
|
340
|
+
- app/assets/stylesheets/caboose/message_boxes.scss
|
321
341
|
- app/assets/stylesheets/caboose/modal.css
|
322
342
|
- app/assets/stylesheets/caboose/model_binder.css
|
323
343
|
- app/assets/stylesheets/caboose/page_bar_generator.css
|
@@ -374,6 +394,7 @@ files:
|
|
374
394
|
- app/controllers/caboose/roles_controller.rb
|
375
395
|
- app/controllers/caboose/settings_controller.rb
|
376
396
|
- app/controllers/caboose/sites_controller.rb
|
397
|
+
- app/controllers/caboose/stackable_groups_controller.rb
|
377
398
|
- app/controllers/caboose/station_controller.rb
|
378
399
|
- app/controllers/caboose/users_controller.rb
|
379
400
|
- app/controllers/caboose/variants_controller.rb
|
@@ -421,6 +442,7 @@ files:
|
|
421
442
|
- app/models/caboose/message.rb
|
422
443
|
- app/models/caboose/order.rb
|
423
444
|
- app/models/caboose/order_discount.rb
|
445
|
+
- app/models/caboose/order_package.rb
|
424
446
|
- app/models/caboose/order_pdf.rb
|
425
447
|
- app/models/caboose/page.rb
|
426
448
|
- app/models/caboose/page_bar_generator.rb
|
@@ -447,9 +469,11 @@ files:
|
|
447
469
|
- app/models/caboose/search_filter.rb
|
448
470
|
- app/models/caboose/setting.rb
|
449
471
|
- app/models/caboose/shipping_calculator.rb
|
472
|
+
- app/models/caboose/shipping_package.rb
|
450
473
|
- app/models/caboose/site.rb
|
451
474
|
- app/models/caboose/site_membership.rb
|
452
475
|
- app/models/caboose/smtp_config.rb
|
476
|
+
- app/models/caboose/stackable_group.rb
|
453
477
|
- app/models/caboose/states.rb
|
454
478
|
- app/models/caboose/std_class.rb
|
455
479
|
- app/models/caboose/tax_calculator.rb
|
@@ -641,6 +665,7 @@ files:
|
|
641
665
|
- app/views/caboose/sites/admin_edit.html.erb
|
642
666
|
- app/views/caboose/sites/admin_index.html.erb
|
643
667
|
- app/views/caboose/sites/admin_new.html.erb
|
668
|
+
- app/views/caboose/stackable_groups/admin_index.html.erb
|
644
669
|
- app/views/caboose/station/index.html.erb
|
645
670
|
- app/views/caboose/users/edit.html.erb
|
646
671
|
- app/views/caboose/users/edit_password.html.erb
|
@@ -688,10 +713,11 @@ files:
|
|
688
713
|
- config/routes.rb
|
689
714
|
- config/tinymce.yml
|
690
715
|
- db/migrate/000_add_linked_resources_to_page.rb
|
716
|
+
- lib/caboose.rb
|
691
717
|
- lib/caboose/caboose_helper.rb
|
692
718
|
- lib/caboose/engine.rb
|
693
719
|
- lib/caboose/version.rb
|
694
|
-
- lib/
|
720
|
+
- lib/sample_files/Gemfile
|
695
721
|
- lib/sample_files/app/assets/stylesheets/login.css
|
696
722
|
- lib/sample_files/app/controllers/application_controller.rb
|
697
723
|
- lib/sample_files/app/views/layouts/layout_default.html.erb
|
@@ -706,18 +732,17 @@ files:
|
|
706
732
|
- lib/sample_files/config/initializers/session_store.rb
|
707
733
|
- lib/sample_files/config/routes.rb
|
708
734
|
- lib/sample_files/config/tinymce.yml
|
709
|
-
- lib/sample_files/Gemfile
|
710
735
|
- lib/sample_files/timezone_abbreviations.csv
|
711
736
|
- lib/tasks/caboose.rake
|
712
|
-
- MIT-LICENSE
|
713
|
-
- Rakefile
|
714
|
-
- README.md
|
715
737
|
- test/caboose_test.rb
|
738
|
+
- test/dummy/README.rdoc
|
739
|
+
- test/dummy/Rakefile
|
716
740
|
- test/dummy/app/assets/javascripts/application.js
|
717
741
|
- test/dummy/app/assets/stylesheets/application.css
|
718
742
|
- test/dummy/app/controllers/application_controller.rb
|
719
743
|
- test/dummy/app/helpers/application_helper.rb
|
720
744
|
- test/dummy/app/views/layouts/application.html.erb
|
745
|
+
- test/dummy/config.ru
|
721
746
|
- test/dummy/config/application.rb
|
722
747
|
- test/dummy/config/boot.rb
|
723
748
|
- test/dummy/config/database.yml
|
@@ -733,15 +758,12 @@ files:
|
|
733
758
|
- test/dummy/config/initializers/wrap_parameters.rb
|
734
759
|
- test/dummy/config/locales/en.yml
|
735
760
|
- test/dummy/config/routes.rb
|
736
|
-
- test/dummy/config.ru
|
737
761
|
- test/dummy/db/test.sqlite3
|
738
762
|
- test/dummy/log/test.log
|
739
763
|
- test/dummy/public/404.html
|
740
764
|
- test/dummy/public/422.html
|
741
765
|
- test/dummy/public/500.html
|
742
766
|
- test/dummy/public/favicon.ico
|
743
|
-
- test/dummy/Rakefile
|
744
|
-
- test/dummy/README.rdoc
|
745
767
|
- test/dummy/script/rails
|
746
768
|
- test/integration/navigation_test.rb
|
747
769
|
- test/test_helper.rb
|
@@ -764,7 +786,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
764
786
|
version: '0'
|
765
787
|
requirements: []
|
766
788
|
rubyforge_project:
|
767
|
-
rubygems_version: 2.
|
789
|
+
rubygems_version: 2.2.2
|
768
790
|
signing_key:
|
769
791
|
specification_version: 4
|
770
792
|
summary: CMS built on rails.
|