caboose-cms 0.5.64 → 0.5.66
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 +8 -8
- data/app/assets/javascripts/caboose/admin.js +1 -1
- data/app/assets/javascripts/caboose/admin_edit_order.js +724 -0
- data/app/assets/javascripts/caboose/cart2.js +4 -4
- data/app/assets/javascripts/caboose/model/index_table.js +122 -80
- data/app/assets/stylesheets/caboose/admin_main.css +8 -0
- data/app/controllers/caboose/application_controller.rb +1 -1
- data/app/controllers/caboose/block_type_sources_controller.rb +1 -1
- data/app/controllers/caboose/block_types_controller.rb +1 -1
- data/app/controllers/caboose/calendars_controller.rb +1 -1
- data/app/controllers/caboose/cart_controller.rb +8 -1
- data/app/controllers/caboose/checkout_controller.rb +17 -9
- data/app/controllers/caboose/line_items_controller.rb +135 -0
- data/app/controllers/caboose/order_packages_controller.rb +304 -0
- data/app/controllers/caboose/orders_controller.rb +31 -74
- data/app/controllers/caboose/pages_controller.rb +2 -1
- data/app/controllers/caboose/product_images_controller.rb +11 -0
- data/app/controllers/caboose/products_controller.rb +25 -8
- data/app/controllers/caboose/shipping_addresses_controller.rb +46 -0
- data/app/controllers/caboose/shipping_packages_controller.rb +125 -54
- data/app/controllers/caboose/sites_controller.rb +2 -79
- data/app/controllers/caboose/smtp_controller.rb +52 -0
- data/app/controllers/caboose/store_controller.rb +94 -0
- data/app/controllers/caboose/vendors_controller.rb +25 -4
- data/app/models/caboose/address.rb +1 -3
- data/app/models/caboose/caboose_plugin.rb +1 -1
- data/app/models/caboose/category.rb +18 -0
- data/app/models/caboose/core_plugin.rb +21 -19
- data/app/models/caboose/order.rb +12 -7
- data/app/models/caboose/order_package.rb +5 -2
- data/app/models/caboose/order_transaction.rb +25 -0
- data/app/models/caboose/page.rb +1 -1
- data/app/models/caboose/schema.rb +50 -22
- data/app/models/caboose/shipping_calculator.rb +26 -30
- data/app/models/caboose/shipping_package.rb +45 -5
- data/app/models/caboose/store_config.rb +18 -6
- data/app/models/caboose/tax_calculator.rb +6 -5
- data/app/views/caboose/blocks/admin_edit.html.erb +1 -1
- data/app/views/caboose/line_items/admin_new.html.erb +100 -0
- data/app/views/caboose/orders/admin_edit.html.erb +21 -247
- data/app/views/caboose/orders/admin_edit_old.html.erb +155 -0
- data/app/views/caboose/orders/admin_new.html.erb +8 -23
- data/app/views/caboose/products/#Untitled-1# +0 -0
- data/app/views/caboose/products/admin_edit_images.html.erb +20 -4
- data/app/views/caboose/products/admin_index.html.erb +9 -3
- data/app/views/caboose/products/admin_sort.html.erb +138 -142
- data/app/views/caboose/roles/index.html.erb +1 -1
- data/app/views/caboose/shipping_packages/admin_edit.html.erb +52 -137
- data/app/views/caboose/shipping_packages/admin_index.html.erb +56 -19
- data/app/views/caboose/sites/_admin_header.html.erb +3 -5
- data/app/views/caboose/sites/admin_edit.html.erb +5 -3
- data/app/views/caboose/smtp/admin_edit.html.erb +41 -0
- data/app/views/caboose/station/index.html.erb +1 -1
- data/app/views/caboose/store/admin_edit.html.erb +96 -0
- data/app/views/caboose/vendors/admin_edit.html.erb +7 -3
- data/app/views/layouts/caboose/_station.html.erb +1 -1
- data/config/routes.rb +67 -25
- data/lib/caboose/engine.rb +1 -1
- data/lib/caboose/version.rb +1 -1
- metadata +28 -5
- data/app/views/caboose/shipping_packages/admin_new.html.erb +0 -33
- data/app/views/caboose/sites/admin_edit_smtp_config.html.erb +0 -51
- data/app/views/caboose/sites/admin_edit_store_config.html.erb +0 -77
@@ -1,162 +1,77 @@
|
|
1
1
|
<%
|
2
|
-
|
3
|
-
|
4
|
-
user_ids = Caboose::SiteMembership.where(:site_id => s.id, :role => Caboose::SiteMembership::ROLE_USER ).pluck(:user_id)
|
5
|
-
admin_ids = [] if admin_ids.nil?
|
6
|
-
user_ids = [] if user_ids.nil?
|
2
|
+
sp = @shipping_package
|
3
|
+
sc = @site.store_config
|
7
4
|
%>
|
8
|
-
<%= render :partial => 'caboose/sites/admin_header' %>
|
9
5
|
|
10
|
-
<
|
11
|
-
<p><div id='site_<%= @site.id %>_description' ></div></p>
|
12
|
-
<p><div id='site_<%= @site.id %>_under_construction_html' ></div></p>
|
6
|
+
<h1>Edit Shipping Packages</h1>
|
13
7
|
|
14
|
-
<
|
15
|
-
<p><
|
16
|
-
<div id='
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
<% end %>
|
33
|
-
</table>
|
34
|
-
<% else %>
|
35
|
-
<p>This site doesn't have any domains yet.</p>
|
36
|
-
<% end %>
|
37
|
-
<div id='domain_message'></div>
|
38
|
-
|
39
|
-
<h2>Members</h2>
|
40
|
-
<div id='members'>
|
41
|
-
<table class='data'>
|
42
|
-
<tr><th>User</th><th>None</th><th>User</th><th>Admin</th></tr>
|
43
|
-
<% Caboose::User.reorder('last_name, first_name').all.each do |u| %>
|
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
|
-
<% end %>
|
51
|
-
</table>
|
52
|
-
</div>
|
53
|
-
|
54
|
-
<%= render :partial => 'caboose/sites/admin_footer' %>
|
8
|
+
<p><div id='shippingpackage_<%= sp.id %>_name' ></div></p>
|
9
|
+
<p><div id='shippingpackage_<%= sp.id %>_inside_length' ></div></p>
|
10
|
+
<p><div id='shippingpackage_<%= sp.id %>_inside_width' ></div></p>
|
11
|
+
<p><div id='shippingpackage_<%= sp.id %>_inside_height' ></div></p>
|
12
|
+
<p><div id='shippingpackage_<%= sp.id %>_outside_length' ></div></p>
|
13
|
+
<p><div id='shippingpackage_<%= sp.id %>_outside_width' ></div></p>
|
14
|
+
<p><div id='shippingpackage_<%= sp.id %>_outside_height' ></div></p>
|
15
|
+
<p><div id='shippingpackage_<%= sp.id %>_volume' ></div></p>
|
16
|
+
<p><div id='shippingpackage_<%= sp.id %>_empty_weight' ></div></p>
|
17
|
+
<p><div id='shippingpackage_<%= sp.id %>_cylinder' ></div></p>
|
18
|
+
<p><div id='shippingpackage_<%= sp.id %>_flat_rate_price' ></div></p>
|
19
|
+
<p><div id='shippingpackage_<%= sp.id %>_priority' ></div></p>
|
20
|
+
<p><div id='shippingpackage_<%= sp.id %>_shipping_method_id' ></div></p>
|
21
|
+
<div id='message'></div>
|
22
|
+
<p>
|
23
|
+
<input type='button' value='< Back' onclick="window.location='/admin/shipping-packages';" />
|
24
|
+
<input type='button' value='Delete Shipping Package' onclick="delete_shipping_package(<%= sp.id %>);" />
|
25
|
+
</p>
|
55
26
|
|
56
27
|
<% content_for :caboose_js do %>
|
57
|
-
|
28
|
+
<%= javascript_include_tag 'caboose/model/all' %>
|
29
|
+
<script type='text/javascript'>
|
58
30
|
|
59
31
|
$(document).ready(function() {
|
60
32
|
new ModelBinder({
|
61
|
-
name: '
|
62
|
-
id: <%=
|
63
|
-
update_url: '/admin/
|
33
|
+
name: 'ShippingPackage',
|
34
|
+
id: <%= sp.id %>,
|
35
|
+
update_url: '/admin/shipping-packages/<%= sp.id %>',
|
64
36
|
authenticity_token: '<%= form_authenticity_token %>',
|
65
|
-
attributes: [
|
66
|
-
{ name: 'name'
|
67
|
-
{ name: '
|
68
|
-
{ name: '
|
37
|
+
attributes: [
|
38
|
+
{ name: 'name' , nice_name: 'name' , type: 'text' , value: <%= raw Caboose.json(sp.name ) %>, width: 400, align: 'left' },
|
39
|
+
{ name: 'inside_length' , nice_name: 'Inside Length (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.inside_length ) %>, width: 400, align: 'right' },
|
40
|
+
{ name: 'inside_width' , nice_name: 'Inside Width (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.inside_width ) %>, width: 400, align: 'right' },
|
41
|
+
{ name: 'inside_height' , nice_name: 'Inside Height (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.inside_height ) %>, width: 400, align: 'right' },
|
42
|
+
{ name: 'outside_length' , nice_name: 'Outside Length (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.outside_length ) %>, width: 400, align: 'right' },
|
43
|
+
{ name: 'outside_width' , nice_name: 'Outside Width (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.outside_width ) %>, width: 400, align: 'right' },
|
44
|
+
{ name: 'outside_height' , nice_name: 'Outside Height (<%= sc.length_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.outside_height ) %>, width: 400, align: 'right' },
|
45
|
+
{ name: 'volume' , nice_name: 'Volume (<%= sc.length_unit %><sup>3</sup>)' , type: 'text' , value: <%= raw Caboose.json(sp.volume ) %>, width: 400, align: 'right' },
|
46
|
+
{ name: 'empty_weight' , nice_name: 'Empty Weight (<%= sc.weight_unit %>)' , type: 'text' , value: <%= raw Caboose.json(sp.empty_weight ) %>, width: 400, align: 'right' },
|
47
|
+
{ name: 'cylinder' , nice_name: 'Cylinder' , type: 'text' , value: <%= raw Caboose.json(sp.cylinder ) %>, width: 400, align: 'right' },
|
48
|
+
{ name: 'flat_rate_price' , nice_name: 'Flat Rate Price' , type: 'text' , value: <%= raw Caboose.json(sp.flat_rate_price ) %>, width: 400, align: 'right' },
|
49
|
+
{ name: 'priority' , nice_name: 'Priority' , type: 'text' , value: <%= raw Caboose.json(sp.priority ) %>, width: 400, align: 'right' },
|
50
|
+
{ name: 'shipping_method_id' , nice_name: 'Shipping Methods' , type: 'checkbox-multiple' , value: <%= raw Caboose.json(sp.shipping_methods.collect{ |sm| sm.id }) %>, width: 400, height: 600, options_url: '/admin/shipping-methods/options' }
|
69
51
|
]
|
70
52
|
});
|
71
53
|
});
|
72
54
|
|
73
|
-
function
|
55
|
+
function delete_shipping_package(sp_id, confirm)
|
74
56
|
{
|
75
|
-
$.ajax({
|
76
|
-
url: '/admin/sites/' + site_id + '/domains/' + domain_id,
|
77
|
-
type: 'put',
|
78
|
-
data: { under_construction: checked ? 1 : 0 }
|
79
|
-
});
|
80
|
-
}
|
81
|
-
|
82
|
-
function add_site_membership(site_id, user_id, role)
|
83
|
-
{
|
84
|
-
$.ajax({
|
85
|
-
url: '/admin/sites/' + site_id +'/members',
|
86
|
-
type: 'post',
|
87
|
-
data: {
|
88
|
-
user_id: user_id,
|
89
|
-
role: role
|
90
|
-
},
|
91
|
-
succes: function(resp) {}
|
92
|
-
});
|
93
|
-
}
|
94
|
-
|
95
|
-
function remove_site_membership(site_id, user_id)
|
96
|
-
{
|
97
|
-
$.ajax({
|
98
|
-
url: '/admin/sites/' + site_id +'/members/' + user_id,
|
99
|
-
type: 'delete',
|
100
|
-
succes: function(resp) {}
|
101
|
-
});
|
102
|
-
}
|
103
|
-
|
104
|
-
function add_domain(site_id, domain)
|
105
|
-
{
|
106
|
-
if (!domain)
|
107
|
-
{
|
108
|
-
var div = $('<div/>')
|
109
|
-
.append($('<p/>')
|
110
|
-
.addClass('note warning')
|
111
|
-
.append("What domain would you like to add?<br />")
|
112
|
-
.append($('<input/>').attr('type','text').attr('id','new_domain').css('width', '200px')).append(' ')
|
113
|
-
.append($('<input/>').attr('type','button').val('Add').click(function() { add_domain(site_id, $('#new_domain').val()); })).append(' ')
|
114
|
-
.append($('<input/>').attr('type','button').val('Cancel').click(function() { $('#new_domain_container').empty(); }))
|
115
|
-
)
|
116
|
-
.append($('<div/>').attr('id', 'new_domain_message'));
|
117
|
-
$('#new_domain_container').empty().append(div);
|
118
|
-
return;
|
119
|
-
}
|
120
|
-
$('#new_domain_message').empty().html("<p class='loading'>Adding domain...</p>");
|
121
|
-
$.ajax({
|
122
|
-
url: '/admin/sites/' + site_id + '/domains',
|
123
|
-
type: 'post',
|
124
|
-
data: { domain: domain },
|
125
|
-
success: function(resp) {
|
126
|
-
if (resp.error) $('#new_domain_message').html("<p class='note error'>" + resp.error + "<br /></p>");
|
127
|
-
if (resp.refresh) window.location.reload(true);
|
128
|
-
}
|
129
|
-
});
|
130
|
-
}
|
131
|
-
|
132
|
-
function delete_domain(site_id, domain_id, confirm)
|
133
|
-
{
|
134
57
|
if (!confirm)
|
135
58
|
{
|
136
|
-
var p = $('<p/>')
|
137
|
-
.
|
138
|
-
.append(
|
139
|
-
.append($('<input/>').attr('type','button').val('
|
140
|
-
|
141
|
-
|
59
|
+
var p = $('<p/>')
|
60
|
+
.addClass('note warning')
|
61
|
+
.append("Are you sure you want to delete the shipping package? ")
|
62
|
+
.append($('<input/>').attr('type','button').val('Yes').click(function(e) { delete_shipping_package(sp_id, true); })).append(' ')
|
63
|
+
.append($('<input/>').attr('type','button').val('No' ).click(function(e) { $('#message').empty(); }));
|
64
|
+
$('#message').empty().append(p);
|
65
|
+
return;
|
142
66
|
}
|
143
|
-
$('#
|
67
|
+
$('#message').html("<p class='loading'>Deleting shipping package...</p>");
|
144
68
|
$.ajax({
|
145
|
-
url: '/admin/
|
69
|
+
url: '/admin/shipping-packages/' + sp_id,
|
146
70
|
type: 'delete',
|
147
71
|
success: function(resp) {
|
148
72
|
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
149
|
-
if (resp.
|
150
|
-
}
|
151
|
-
});
|
152
|
-
}
|
153
|
-
|
154
|
-
function set_primary_domain(site_id, domain_id)
|
155
|
-
{
|
156
|
-
$.ajax({
|
157
|
-
url: '/admin/sites/' + site_id + '/domains/' + domain_id + '/set-primary',
|
158
|
-
type: 'put',
|
159
|
-
success: function(resp) {}
|
73
|
+
if (resp.redirect) window.location = resp.redirect;
|
74
|
+
}
|
160
75
|
});
|
161
76
|
}
|
162
77
|
|
@@ -1,40 +1,77 @@
|
|
1
|
-
|
1
|
+
<%
|
2
|
+
sc = @site.store_config
|
3
|
+
%>
|
2
4
|
|
3
|
-
<
|
5
|
+
<h1>Shipping Packages</h1>
|
4
6
|
<div id='shipping_packages'></div>
|
5
7
|
|
6
|
-
|
8
|
+
<p><a href='#' onclick='toggle_standard_dimensions();'>Standard package dimensions</a></p>
|
9
|
+
<div id='standard_dimensions'>
|
10
|
+
<table class='data'>
|
11
|
+
<tr><th>Carrier</th><th>Box</th><th>IL</th><th>IW</th><th>IH</th><th>OL</th><th>OW</th><th>OH</th></tr>
|
12
|
+
<tr><td>USPS</td><td>Small Flat Rate Box </td><td align='right'> 5.375</td><td align='right'> 8.625</td><td align='right'> 1.625</td><td align='right'> 5.500</td><td align='right'> 9.000</td><td align='right'> 2.000</td></tr>
|
13
|
+
<tr><td>USPS</td><td>Medium Flat Rate Box 1 </td><td align='right'> 11.000</td><td align='right'> 8.500</td><td align='right'> 5.500</td><td align='right'> 11.250</td><td align='right'> 8.750</td><td align='right'> 6.000</td></tr>
|
14
|
+
<tr><td>USPS</td><td>Medium Flat Rate Box 2 </td><td align='right'> 11.875</td><td align='right'> 3.375</td><td align='right'> 13.625</td><td align='right'> 12.000</td><td align='right'> 3.500</td><td align='right'> 14.000</td></tr>
|
15
|
+
<tr><td>USPS</td><td>Large Flat Rate Box </td><td align='right'> 12.000</td><td align='right'> 12.000</td><td align='right'> 5.500</td><td align='right'> 12.250</td><td align='right'> 12.250</td><td align='right'> 6.000</td></tr>
|
16
|
+
</table>
|
17
|
+
</div>
|
7
18
|
|
8
19
|
<% content_for :caboose_js do %>
|
20
|
+
<%= javascript_include_tag 'caboose/model/all' %>
|
9
21
|
<script type='text/javascript'>
|
10
22
|
|
23
|
+
function toggle_standard_dimensions()
|
24
|
+
{
|
25
|
+
var el = $('#standard_dimensions');
|
26
|
+
if (el.is(':visible')) el.slideUp();
|
27
|
+
else el.slideDown();
|
28
|
+
}
|
29
|
+
|
11
30
|
$(document).ready(function() {
|
31
|
+
$('#standard_dimensions').hide();
|
12
32
|
var that = this;
|
13
33
|
var table = new IndexTable({
|
14
34
|
form_authenticity_token: '<%= form_authenticity_token %>',
|
15
35
|
container: 'shipping_packages',
|
16
|
-
base_url: '/admin/
|
17
|
-
allow_bulk_edit:
|
36
|
+
base_url: '/admin/shipping-packages',
|
37
|
+
allow_bulk_edit: true,
|
18
38
|
allow_bulk_delete: true,
|
19
39
|
allow_duplicate: false,
|
20
|
-
allow_advanced_edit:
|
40
|
+
allow_advanced_edit: true,
|
21
41
|
fields: [
|
22
|
-
{ show: true , name: 'name' , nice_name: '
|
23
|
-
{ show: true , name: '
|
24
|
-
{ show: true , name: '
|
25
|
-
{ show: true , name: '
|
26
|
-
{ show: true , name: '
|
27
|
-
{ show: true , name: '
|
28
|
-
{ show: true , name: '
|
42
|
+
{ show: true , bulk_edit: false , name: 'name' , nice_name: 'name' , sort: 'name' , type: 'text' , value: function(sp) { return sp.name }, width: 75, align: 'left' },
|
43
|
+
{ show: true , bulk_edit: true , name: 'inside_length' , nice_name: 'Inside Length (<%= sc.length_unit %>)' , sort: 'inside_length' , type: 'text' , value: function(sp) { return sp.inside_length }, width: 50, align: 'right' },
|
44
|
+
{ show: true , bulk_edit: true , name: 'inside_width' , nice_name: 'Inside Width (<%= sc.length_unit %>)' , sort: 'inside_width' , type: 'text' , value: function(sp) { return sp.inside_width }, width: 50, align: 'right' },
|
45
|
+
{ show: true , bulk_edit: true , name: 'inside_height' , nice_name: 'Inside Height (<%= sc.length_unit %>)' , sort: 'inside_height' , type: 'text' , value: function(sp) { return sp.inside_height }, width: 50, align: 'right' },
|
46
|
+
{ show: true , bulk_edit: true , name: 'outside_length' , nice_name: 'Outside Length (<%= sc.length_unit %>)' , sort: 'outside_length' , type: 'text' , value: function(sp) { return sp.outside_length }, width: 50, align: 'right' },
|
47
|
+
{ show: true , bulk_edit: true , name: 'outside_width' , nice_name: 'Outside Width (<%= sc.length_unit %>)' , sort: 'outside_width' , type: 'text' , value: function(sp) { return sp.outside_width }, width: 50, align: 'right' },
|
48
|
+
{ show: true , bulk_edit: true , name: 'outside_height' , nice_name: 'Outside Height (<%= sc.length_unit %>)' , sort: 'outside_height' , type: 'text' , value: function(sp) { return sp.outside_height }, width: 50, align: 'right' },
|
49
|
+
{ show: true , bulk_edit: true , name: 'volume' , nice_name: 'Volume (<%= sc.length_unit %><sup>3</sup>)' , sort: 'volume' , type: 'text' , value: function(sp) { return sp.volume }, width: 50, align: 'right' },
|
50
|
+
{ show: true , bulk_edit: true , name: 'empty_weight' , nice_name: 'Empty Weight (<%= sc.weight_unit %>)' , sort: 'empty_weight' , type: 'text' , value: function(sp) { return sp.empty_weight }, width: 50, align: 'right' },
|
51
|
+
{ show: true , bulk_edit: true , name: 'cylinder' , nice_name: 'Cylinder' , sort: 'cylinder' , type: 'text' , value: function(sp) { return sp.cylinder }, width: 50, align: 'right' },
|
52
|
+
{ show: false , bulk_edit: true , name: 'flat_rate_price' , nice_name: 'Flat Rate Price' , sort: 'flat_rate_price' , type: 'text' , value: function(sp) { return sp.flat_rate_price }, width: 50, align: 'right' },
|
53
|
+
{ show: false , bulk_edit: true , name: 'priority' , nice_name: 'Priority' , sort: 'priority' , type: 'text' , value: function(sp) { return sp.priority }, width: 50, align: 'right' },
|
54
|
+
{ show: true , bulk_edit: true , name: 'shipping_method_id' , nice_name: 'Shipping Methods' , sort: 'name' , type: 'checkbox-multiple' ,
|
55
|
+
options_url: '/admin/shipping-methods/options',
|
56
|
+
value: function(sp) { return sp.shipping_methods.map(function(sm) { return sm.id }); },
|
57
|
+
text: function(sp) { return sp.shipping_methods.map(function(sm) { return sm.service_name }).join(', '); },
|
58
|
+
width: 400,
|
59
|
+
height: 200
|
60
|
+
}
|
29
61
|
],
|
30
62
|
new_model_text: 'New Shipping Package',
|
31
|
-
|
32
|
-
|
33
|
-
{ name: '
|
34
|
-
{ name: '
|
63
|
+
no_models_text: 'There are no shipping packages right now.',
|
64
|
+
new_model_fields: [
|
65
|
+
{ name: 'name' , nice_name: 'Name' , type: 'text' , width: 400 },
|
66
|
+
{ name: 'inside_length' , nice_name: 'Inside Length (<%= sc.length_unit %>)' , type: 'text' , width: 400 },
|
67
|
+
{ name: 'inside_width' , nice_name: 'Inside Width (<%= sc.length_unit %>)' , type: 'text' , width: 400 },
|
68
|
+
{ name: 'inside_height' , nice_name: 'Inside Height (<%= sc.length_unit %>)' , type: 'text' , width: 400 },
|
69
|
+
{ name: 'outside_length' , nice_name: 'Outside Length (<%= sc.length_unit %>)' , type: 'text' , width: 400 },
|
70
|
+
{ name: 'outside_width' , nice_name: 'Outside Width (<%= sc.length_unit %>)' , type: 'text' , width: 400 },
|
71
|
+
{ name: 'outside_height' , nice_name: 'Outside Height (<%= sc.length_unit %>)' , type: 'text' , width: 400 }
|
35
72
|
],
|
36
|
-
bulk_import_fields: ['
|
37
|
-
bulk_import_url: '/admin/
|
73
|
+
bulk_import_fields: ['name', 'inside_length', 'inside_width', 'inside_height', 'outside_length', 'outside_width', 'outside_height'],
|
74
|
+
bulk_import_url: '/admin/shipping-packages/bulk'
|
38
75
|
});
|
39
76
|
});
|
40
77
|
|
@@ -24,11 +24,9 @@
|
|
24
24
|
<ul id='tabs'>
|
25
25
|
<%
|
26
26
|
tabs = {
|
27
|
-
'General'
|
28
|
-
'Block Types'
|
29
|
-
'
|
30
|
-
'SMTP Config' => "/admin/sites/#{@site.id}/smtp",
|
31
|
-
'Delete Site' => "/admin/sites/#{@site.id}/delete"
|
27
|
+
'General' => "/admin/sites/#{@site.id}",
|
28
|
+
'Block Types' => "/admin/sites/#{@site.id}/block-types",
|
29
|
+
'Delete Site' => "/admin/sites/#{@site.id}/delete"
|
32
30
|
}
|
33
31
|
|
34
32
|
%>
|
@@ -10,6 +10,7 @@ user_ids = [] if user_ids.nil?
|
|
10
10
|
<p><div id='site_<%= @site.id %>_name' ></div></p>
|
11
11
|
<p><div id='site_<%= @site.id %>_description' ></div></p>
|
12
12
|
<p><div id='site_<%= @site.id %>_under_construction_html' ></div></p>
|
13
|
+
<p><div id='site_<%= @site.id %>_use_store' ></div></p>
|
13
14
|
|
14
15
|
<h2>Domains</h2>
|
15
16
|
<p><a href='#' onclick="add_domain(<%= @site.id %>);">New Domain</a></p>
|
@@ -63,9 +64,10 @@ $(document).ready(function() {
|
|
63
64
|
update_url: '/admin/sites/<%= @site.id %>',
|
64
65
|
authenticity_token: '<%= form_authenticity_token %>',
|
65
66
|
attributes: [
|
66
|
-
{ name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name)
|
67
|
-
{ name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description)
|
68
|
-
{ name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html)
|
67
|
+
{ name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name) %>, width: 400 },
|
68
|
+
{ name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 },
|
69
|
+
{ name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html) %>, width: 600, height: 75 },
|
70
|
+
{ name: 'use_store' , nice_name: 'Enable Store' , type: 'checkbox' , value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 }
|
69
71
|
]
|
70
72
|
});
|
71
73
|
});
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<%
|
2
|
+
sc = @smtp_config
|
3
|
+
%>
|
4
|
+
<h1>SMTP Config</h1>
|
5
|
+
|
6
|
+
<p><div id='smtpconfig_<%= sc.id %>_address' ></div></p>
|
7
|
+
<p><div id='smtpconfig_<%= sc.id %>_port' ></div></p>
|
8
|
+
<p><div id='smtpconfig_<%= sc.id %>_domain' ></div></p>
|
9
|
+
<p><div id='smtpconfig_<%= sc.id %>_user_name' ></div></p>
|
10
|
+
<p><div id='smtpconfig_<%= sc.id %>_password' ></div></p>
|
11
|
+
<p><div id='smtpconfig_<%= sc.id %>_authentication' ></div></p>
|
12
|
+
<p><div id='smtpconfig_<%= sc.id %>_enable_starttls_auto' ></div></p>
|
13
|
+
|
14
|
+
<div id='message'></div>
|
15
|
+
|
16
|
+
<% content_for :caboose_js do %>
|
17
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
18
|
+
<script type="text/javascript">
|
19
|
+
|
20
|
+
$(document).ready(function() {
|
21
|
+
|
22
|
+
new ModelBinder({
|
23
|
+
name: 'SmtpConfig',
|
24
|
+
id: <%= sc.id %>,
|
25
|
+
update_url: '/admin/smtp',
|
26
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
27
|
+
attributes: [
|
28
|
+
{ name: 'address' , nice_name: 'Address' , type: 'text' , value: <%= raw Caboose.json(sc.address ) %>, width: 400 },
|
29
|
+
{ name: 'port' , nice_name: 'Port' , type: 'text' , value: <%= raw Caboose.json(sc.port ) %>, width: 400 },
|
30
|
+
{ name: 'domain' , nice_name: 'Domain' , type: 'text' , value: <%= raw Caboose.json(sc.domain ) %>, width: 400 },
|
31
|
+
{ name: 'user_name' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(sc.user_name ) %>, width: 400 },
|
32
|
+
{ name: 'password' , nice_name: 'Password' , type: 'text' , value: <%= raw Caboose.json(sc.password ) %>, width: 400 },
|
33
|
+
{ name: 'authentication' , nice_name: 'Authentication' , type: 'select' , value: <%= raw Caboose.json(sc.authentication ) %>, width: 400 , options_url: '/admin/smtp/auth-options' },
|
34
|
+
{ name: 'enable_starttls_auto' , nice_name: 'Enable Start TLS Auto' , type: 'checkbox' , value: <%= raw sc.enable_starttls_auto ? 1 : 0 %>, width: 400 }
|
35
|
+
]
|
36
|
+
});
|
37
|
+
|
38
|
+
});
|
39
|
+
|
40
|
+
</script>
|
41
|
+
<% end %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
@nav = Caboose.plugin_hook('admin_nav', [], @user, @page)
|
2
|
+
@nav = Caboose.plugin_hook('admin_nav', [], @user, @page, @site)
|
3
3
|
return_url = session[:caboose_station_return_url].nil? ? '/' : session[:caboose_station_return_url]
|
4
4
|
return_url = '/' if return_url.starts_with?('/admin/') || return_url == '/admin'
|
5
5
|
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<%
|
2
|
+
sc = @store_config
|
3
|
+
%>
|
4
|
+
<h1>Edit Store</h1>
|
5
|
+
|
6
|
+
<p><div id='site_<%= @site.id %>_use_store' ></div></p>
|
7
|
+
|
8
|
+
<h2>Payment Processor</h2>
|
9
|
+
<p><div id='storeconfig_<%= sc.id %>_pp_name' ></div></p>
|
10
|
+
<p><div id='storeconfig_<%= sc.id %>_pp_username' ></div></p>
|
11
|
+
<p><div id='storeconfig_<%= sc.id %>_pp_password' ></div></p>
|
12
|
+
|
13
|
+
<h2>Fulfillment Contacts</h2>
|
14
|
+
<p><div id='storeconfig_<%= sc.id %>_fulfillment_email' ></div></p>
|
15
|
+
<p><div id='storeconfig_<%= sc.id %>_shipping_email' ></div></p>
|
16
|
+
|
17
|
+
<h2>Dimension Units</h2>
|
18
|
+
<p><div id='storeconfig_<%= sc.id %>_length_unit' ></div></p>
|
19
|
+
<p><div id='storeconfig_<%= sc.id %>_weight_unit' ></div></p>
|
20
|
+
|
21
|
+
<h2>Shipping Carriers</h3>
|
22
|
+
<p><div id='storeconfig_<%= sc.id %>_ups_username' ></div></p>
|
23
|
+
<p><div id='storeconfig_<%= sc.id %>_ups_password' ></div></p>
|
24
|
+
<p><div id='storeconfig_<%= sc.id %>_ups_key' ></div></p>
|
25
|
+
<p><div id='storeconfig_<%= sc.id %>_ups_origin_account' ></div></p>
|
26
|
+
<p><div id='storeconfig_<%= sc.id %>_usps_username' ></div></p>
|
27
|
+
<p><div id='storeconfig_<%= sc.id %>_usps_secret_key' ></div></p>
|
28
|
+
<p><div id='storeconfig_<%= sc.id %>_usps_publishable_key' ></div></p>
|
29
|
+
<p><div id='storeconfig_<%= sc.id %>_fedex_username' ></div></p>
|
30
|
+
<p><div id='storeconfig_<%= sc.id %>_fedex_password' ></div></p>
|
31
|
+
<p><div id='storeconfig_<%= sc.id %>_fedex_key' ></div></p>
|
32
|
+
<p><div id='storeconfig_<%= sc.id %>_fedex_account' ></div></p>
|
33
|
+
|
34
|
+
<h2>Shipping Origin</h2>
|
35
|
+
<p><div id='storeconfig_<%= sc.id %>_origin_country' ></div></p>
|
36
|
+
<p><div id='storeconfig_<%= sc.id %>_origin_state' ></div></p>
|
37
|
+
<p><div id='storeconfig_<%= sc.id %>_origin_city' ></div></p>
|
38
|
+
<p><div id='storeconfig_<%= sc.id %>_origin_zip' ></div></p>
|
39
|
+
|
40
|
+
<h2>Other</h2>
|
41
|
+
<p><div id='storeconfig_<%= sc.id %>_handling_percentage' ></div></p>
|
42
|
+
|
43
|
+
<div id='message'></div>
|
44
|
+
|
45
|
+
<% content_for :caboose_js do %>
|
46
|
+
<%= javascript_include_tag "caboose/model/all" %>
|
47
|
+
<script type="text/javascript">
|
48
|
+
|
49
|
+
$(document).ready(function() {
|
50
|
+
|
51
|
+
new ModelBinder({
|
52
|
+
name: 'Site',
|
53
|
+
id: <%= @site.id %>,
|
54
|
+
update_url: '/admin/sites/<%= @site.id %>',
|
55
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
56
|
+
attributes: [
|
57
|
+
{ name: 'use_store', nice_name: 'Enable Store', type: 'checkbox', value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 }
|
58
|
+
]
|
59
|
+
});
|
60
|
+
|
61
|
+
new ModelBinder({
|
62
|
+
name: 'StoreConfig',
|
63
|
+
id: <%= sc.id %>,
|
64
|
+
update_url: '/admin/store',
|
65
|
+
authenticity_token: '<%= form_authenticity_token %>',
|
66
|
+
attributes: [
|
67
|
+
{ name: 'pp_name' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(sc.pp_name ) %>, width: 400 , options_url: '/admin/store/payment-processor-options' },
|
68
|
+
{ name: 'pp_username' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(sc.pp_username ) %>, width: 400 },
|
69
|
+
{ name: 'pp_password' , nice_name: 'Password' , type: 'text' , value: <%= raw Caboose.json(sc.pp_password ) %>, width: 400 },
|
70
|
+
{ name: 'fulfillment_email' , nice_name: 'Fulfillment Email' , type: 'text' , value: <%= raw Caboose.json(sc.fulfillment_email ) %>, width: 400 },
|
71
|
+
{ name: 'shipping_email' , nice_name: 'Shipping Email' , type: 'text' , value: <%= raw Caboose.json(sc.shipping_email ) %>, width: 400 },
|
72
|
+
{ name: 'handling_percentage' , nice_name: 'Handling Percentage' , type: 'text' , value: <%= raw Caboose.json(sc.handling_percentage ) %>, width: 400 },
|
73
|
+
{ name: 'length_unit' , nice_name: 'Length' , type: 'select' , value: <%= raw Caboose.json(sc.length_unit ) %>, width: 400 , options_url: '/admin/store/length-unit-options' },
|
74
|
+
{ name: 'weight_unit' , nice_name: 'Weight' , type: 'select' , value: <%= raw Caboose.json(sc.weight_unit ) %>, width: 400 , options_url: '/admin/store/weight-unit-options' },
|
75
|
+
{ name: 'ups_username' , nice_name: 'UPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.ups_username ) %>, width: 400 },
|
76
|
+
{ name: 'ups_password' , nice_name: 'UPS Password' , type: 'text' , value: <%= raw Caboose.json(sc.ups_password ) %>, width: 400 },
|
77
|
+
{ name: 'ups_key' , nice_name: 'UPS Key' , type: 'text' , value: <%= raw Caboose.json(sc.ups_key ) %>, width: 400 },
|
78
|
+
{ name: 'ups_origin_account' , nice_name: 'UPS Origin Account' , type: 'text' , value: <%= raw Caboose.json(sc.ups_origin_account ) %>, width: 400 },
|
79
|
+
{ name: 'usps_username' , nice_name: 'USPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.usps_username ) %>, width: 400 },
|
80
|
+
{ name: 'usps_secret_key' , nice_name: 'USPS Secret Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_secret_key ) %>, width: 400 },
|
81
|
+
{ name: 'usps_publishable_key' , nice_name: 'USPS Publishable Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_publishable_key ) %>, width: 400 },
|
82
|
+
{ name: 'fedex_username' , nice_name: 'FedEx Username' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_username ) %>, width: 400 },
|
83
|
+
{ name: 'fedex_password' , nice_name: 'FedEx Password' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_password ) %>, width: 400 },
|
84
|
+
{ name: 'fedex_key' , nice_name: 'FedEx Key' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_key ) %>, width: 400 },
|
85
|
+
{ name: 'fedex_account' , nice_name: 'FedEx Account' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_account ) %>, width: 400 },
|
86
|
+
{ name: 'origin_country' , nice_name: 'Country' , type: 'text' , value: <%= raw Caboose.json(sc.origin_country ) %>, width: 400 },
|
87
|
+
{ name: 'origin_state' , nice_name: 'State' , type: 'text' , value: <%= raw Caboose.json(sc.origin_state ) %>, width: 400 },
|
88
|
+
{ name: 'origin_city' , nice_name: 'City' , type: 'text' , value: <%= raw Caboose.json(sc.origin_city ) %>, width: 400 },
|
89
|
+
{ name: 'origin_zip' , nice_name: 'Zip' , type: 'text' , value: <%= raw Caboose.json(sc.origin_zip ) %>, width: 400 }
|
90
|
+
]
|
91
|
+
});
|
92
|
+
|
93
|
+
});
|
94
|
+
|
95
|
+
</script>
|
96
|
+
<% end %>
|