caboose-cms 0.5.135 → 0.5.136

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjUxMjFiZDZmNDQ4YmM5ZTBkODRkNDdmMDZhNjM3N2MyZjgzNjFkNg==
4
+ ZGFkZTczZWFhYmQzMjA1N2EwMjA1MjM3ZWQ5YzQwZTQ3MDAwZTI2Mg==
5
5
  data.tar.gz: !binary |-
6
- ZTIyNGU4NzczZTAyMDczYjQ4NzNjN2Q5NTY5YTQxMmFmZGQyYjdkYw==
6
+ YTRjZGQ0NGQ5ODY3ZWE0ZWUzZmNlMjg4YzUyMDhlNDBlNjU1MzFkNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODllZTllY2JhMGFlODhlNzAyMDMyZTExMDE1ZmRmZGJlOTE0MjYxMzg1YjIy
10
- MDM4NDIwNTNhNzlhZDAwMWUxYjVkOWZjM2QxMjM5ZWMwOTNmY2I2Y2U5NTdl
11
- YTlhMjNhOTE4OTAyNmZiNDM3ODhiM2JhMGU4NjhiYjBjODdmNzU=
9
+ M2YzMmMzYzAyYzIwZThjYTA3ZjZlZTc4ZTAxMWIyNzQ3MDcyOTNkYzJhMGFh
10
+ MTZiZDU1YzczNzVhZGJhMGY1ZjJkZDNkMDExZTU3OGE4MTg0NmM3ZmZkZDc3
11
+ N2JhYWMyNGJlNDc4NmNjNzhmNzAxYzdjZWQyNWU0ZjZjZWIxNDI=
12
12
  data.tar.gz: !binary |-
13
- ZTM3ODQ3OWUwZDEyZTJiYTFmMDc5NjhlOGZhMjRkMzhjNTdjNTIxMzBkMzJh
14
- ZWE0YzRkYmM2N2Q3ZWU5NzNjZDE5Zjk5NjdmNzAwODYzZGRjMDU4ZjVkMzhj
15
- MzFmYmU3ZTAwMjIyODlmZmM5YzIzNjcwYjlhM2NmMTE1NGRkZWE=
13
+ ZDYzZTNiMDVkNmY1MzY1MDJhZDNjMzkyOThhMDUzNjc4M2Y1NDhmZGFkNWU3
14
+ OGViNzczNjYyZjRlZWIzODVmNTI3NzQyOWZmNjdhMjA2YjQxNDAyZjQyZmRm
15
+ N2JkNDhhZjcxM2EzNzUwNzk1MzU4MGY4MGIxOWVlMTU0YmQzNWE=
@@ -5,7 +5,35 @@ module Caboose
5
5
  layout 'caboose/admin'
6
6
 
7
7
  # GET /admin/store
8
- def admin_edit
8
+ def admin_edit_general
9
+ return if !user_is_allowed('sites', 'edit')
10
+ @store_config = @site.store_config
11
+ @store_config = StoreConfig.create(:site_id => @site.id) if @store_config.nil?
12
+ end
13
+
14
+ # GET /admin/store/payment
15
+ def admin_edit_payment
16
+ return if !user_is_allowed('sites', 'edit')
17
+ @store_config = @site.store_config
18
+ @store_config = StoreConfig.create(:site_id => @site.id) if @store_config.nil?
19
+ end
20
+
21
+ # GET /admin/store/shipping
22
+ def admin_edit_shipping
23
+ return if !user_is_allowed('sites', 'edit')
24
+ @store_config = @site.store_config
25
+ @store_config = StoreConfig.create(:site_id => @site.id) if @store_config.nil?
26
+ end
27
+
28
+ # GET /admin/store/tax
29
+ def admin_edit_tax
30
+ return if !user_is_allowed('sites', 'edit')
31
+ @store_config = @site.store_config
32
+ @store_config = StoreConfig.create(:site_id => @site.id) if @store_config.nil?
33
+ end
34
+
35
+ # GET /admin/store/packages
36
+ def admin_edit_packages
9
37
  return if !user_is_allowed('sites', 'edit')
10
38
  @store_config = @site.store_config
11
39
  @store_config = StoreConfig.create(:site_id => @site.id) if @store_config.nil?
@@ -0,0 +1,2 @@
1
+ <br style='clear: left; line-height: 0;' />
2
+ </div><!-- modal_content2 -->
@@ -0,0 +1,28 @@
1
+
2
+ <% content_for :caboose_css do %>
3
+ <style type='text/css'>
4
+ #content input[type=checkbox] { position: relative; }
5
+ </style>
6
+ <% end %>
7
+
8
+ <% content_for :caboose_js do %>
9
+ <%= javascript_include_tag "caboose/model/all" %>
10
+ <% end %>
11
+
12
+ <h1 id='page_title'>Edit Store</h1>
13
+ <ul id='tabs'>
14
+ <%
15
+ tabs = {
16
+ 'General' => "/admin/store",
17
+ 'Payment Processor' => "/admin/store/payment",
18
+ 'Tax' => "/admin/store/tax",
19
+ 'Order Packages' => "/admin/store/packages",
20
+ 'Shipping' => "/admin/store/shipping"
21
+ }
22
+
23
+ %>
24
+ <% tabs.each do |text, href| %>
25
+ <li<%= raw request.fullpath == href ? " class='selected'" : '' %>><a href='<%= href %>'><%= raw text %></a></li>
26
+ <% end %>
27
+ </ul>
28
+ <div id='content2'>
@@ -0,0 +1,54 @@
1
+ <%
2
+ sc = @store_config
3
+ %>
4
+ <%= render :partial => 'caboose/store/admin_header' %>
5
+
6
+ <p><div id='site_<%= @site.id %>_use_store' ></div></p>
7
+ <p><div id='storeconfig_<%= sc.id %>_fulfillment_email' ></div></p>
8
+ <p><div id='storeconfig_<%= sc.id %>_shipping_email' ></div></p>
9
+ <p><div id='storeconfig_<%= sc.id %>_handling_percentage' ></div></p>
10
+ <p><div id='storeconfig_<%= sc.id %>_download_url_expires_in' ></div></p>
11
+ <p><div id='storeconfig_<%= sc.id %>_starting_order_number' ></div></p>
12
+
13
+ <h2>Dimension Units</h2>
14
+ <p><div id='storeconfig_<%= sc.id %>_length_unit' ></div></p>
15
+ <p><div id='storeconfig_<%= sc.id %>_weight_unit' ></div></p>
16
+
17
+ <%= render :partial => 'caboose/store/admin_footer' %>
18
+
19
+ <% content_for :caboose_js do %>
20
+ <%= javascript_include_tag "caboose/model/all" %>
21
+ <script type="text/javascript">
22
+
23
+ $(document).ready(function() {
24
+
25
+ new ModelBinder({
26
+ name: 'Site',
27
+ id: <%= @site.id %>,
28
+ update_url: '/admin/sites/<%= @site.id %>',
29
+ authenticity_token: '<%= form_authenticity_token %>',
30
+ attributes: [
31
+ { name: 'use_store', nice_name: 'Enable Store', type: 'checkbox', value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 }
32
+ ]
33
+ });
34
+
35
+ new ModelBinder({
36
+ name: 'StoreConfig',
37
+ id: <%= sc.id %>,
38
+ update_url: '/admin/store',
39
+ authenticity_token: '<%= form_authenticity_token %>',
40
+ attributes: [
41
+ { name: 'fulfillment_email' , nice_name: 'Fulfillment Email' , type: 'text' , value: <%= raw Caboose.json(sc.fulfillment_email ) %>, width: 400 },
42
+ { name: 'shipping_email' , nice_name: 'Shipping Email' , type: 'text' , value: <%= raw Caboose.json(sc.shipping_email ) %>, width: 400 },
43
+ { name: 'handling_percentage' , nice_name: 'Handling Percentage' , type: 'text' , value: <%= raw Caboose.json(sc.handling_percentage ) %>, width: 400 },
44
+ { name: 'length_unit' , nice_name: 'Length' , type: 'select' , value: <%= raw Caboose.json(sc.length_unit ) %>, width: 400 , options_url: '/admin/store/length-unit-options' },
45
+ { name: 'weight_unit' , nice_name: 'Weight' , type: 'select' , value: <%= raw Caboose.json(sc.weight_unit ) %>, width: 400 , options_url: '/admin/store/weight-unit-options' },
46
+ { name: 'download_url_expires_in' , nice_name: 'Download URL Expires In (minutes)' , type: 'text' , value: <%= raw Caboose.json(sc.download_url_expires_in ) %>, width: 400 },
47
+ { name: 'starting_order_number' , nice_name: 'Starting Order Number' , type: 'text' , value: <%= raw Caboose.json(sc.starting_order_number ) %>, width: 400 }
48
+ ]
49
+ });
50
+
51
+ });
52
+
53
+ </script>
54
+ <% end %>
@@ -0,0 +1,44 @@
1
+ <%
2
+ sc = @store_config
3
+ %>
4
+ <%= render :partial => 'caboose/store/admin_header' %>
5
+
6
+ <p>If calculating order packages automatically, all shippable variants must have dimensions and weights populated. Otherwise, a custom order packages function is required.</p>
7
+ <p><div id='storeconfig_<%= sc.id %>_auto_calculate_packages' ></div></p>
8
+ <div id='custom_packages_container' <% if sc.auto_calculate_packages %>style='display: none;'<% end %>>
9
+ <h3>Custom Order Packages Function</h3>
10
+ <p><code>def custom_order_packages_function(order) {</code></p>
11
+ <p><div id='storeconfig_<%= sc.id %>_custom_packages_function' ></div></p>
12
+ <p><code># This function does not return anything, but creates the Caboose::OrderPackage objects for the given order<br />}</code></p>
13
+ </div>
14
+
15
+ <%= render :partial => 'caboose/store/admin_footer' %>
16
+
17
+ <% content_for :caboose_js do %>
18
+ <script type="text/javascript">
19
+
20
+ $(document).ready(function() {
21
+
22
+ new ModelBinder({
23
+ name: 'StoreConfig',
24
+ id: <%= sc.id %>,
25
+ update_url: '/admin/store',
26
+ authenticity_token: '<%= form_authenticity_token %>',
27
+ attributes: [
28
+ { name: 'auto_calculate_packages' , nice_name: 'Automatically Calculate Packages' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_packages ? 1 : 0 ) %>, width: 400 , after_update: function() { toggleCustomPackages(this.value); }},
29
+ { name: 'custom_packages_function' , nice_name: 'Custom Packages Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_packages_function ) %>, width: 800, height: 200, fixed_placeholder: false }
30
+ ]
31
+ });
32
+
33
+ });
34
+
35
+ function toggleCustomPackages(checked) {
36
+ var el = $('#custom_packages_container');
37
+ if (checked)
38
+ el.slideUp()
39
+ else
40
+ el.slideDown();
41
+ }
42
+
43
+ </script>
44
+ <% end %>
@@ -0,0 +1,36 @@
1
+ <%
2
+ sc = @store_config
3
+ %>
4
+ <%= render :partial => 'caboose/store/admin_header' %>
5
+
6
+ <p><div id='storeconfig_<%= sc.id %>_pp_name' ></div></p>
7
+ <p><div id='storeconfig_<%= sc.id %>_pp_username' ></div></p>
8
+ <p><div id='storeconfig_<%= sc.id %>_pp_password' ></div></p>
9
+ <p><div id='storeconfig_<%= sc.id %>_pp_relay_domain' ></div></p>
10
+ <p><div id='storeconfig_<%= sc.id %>_pp_testing' ></div></p>
11
+
12
+ <%= render :partial => 'caboose/store/admin_footer' %>
13
+
14
+ <% content_for :caboose_js do %>
15
+ <script type="text/javascript">
16
+
17
+ $(document).ready(function() {
18
+
19
+ new ModelBinder({
20
+ name: 'StoreConfig',
21
+ id: <%= sc.id %>,
22
+ update_url: '/admin/store',
23
+ authenticity_token: '<%= form_authenticity_token %>',
24
+ attributes: [
25
+ { name: 'pp_name' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(sc.pp_name ) %>, width: 400 , options_url: '/admin/store/payment-processor-options' },
26
+ { name: 'pp_username' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(sc.pp_username ) %>, width: 400 },
27
+ { name: 'pp_password' , nice_name: 'Password' , type: 'text' , value: <%= raw Caboose.json(sc.pp_password ) %>, width: 400 },
28
+ { name: 'pp_relay_domain' , nice_name: 'Relay Domain' , type: 'text' , value: <%= raw Caboose.json(sc.pp_relay_domain ) %>, width: 400 },
29
+ { name: 'pp_testing' , nice_name: 'Test Mode' , type: 'checkbox' , value: <%= raw Caboose.json(sc.pp_testing ? 1 : 0 ) %>, width: 400 }
30
+ ]
31
+ });
32
+
33
+ });
34
+
35
+ </script>
36
+ <% end %>
@@ -0,0 +1,90 @@
1
+ <%
2
+ sc = @store_config
3
+ %>
4
+ <%= render :partial => 'caboose/store/admin_header' %>
5
+
6
+ <p>If calculating shipping rates automatically, all shippable variants must have dimensions and weights populated. Otherwise, a custom shipping rates function is required.</p>
7
+ <p><div id='storeconfig_<%= sc.id %>_auto_calculate_shipping' ></div></p>
8
+ <div id='custom_shipping_container' <% if sc.auto_calculate_shipping %>style='display: none;'<% end %>>
9
+ <h3>Custom Shipping Rates Function</h3>
10
+ <p><code>def custom_shipping_rates_function(order) {</code></p>
11
+ <p><div id='storeconfig_<%= sc.id %>_custom_shipping_function' ></div></p>
12
+ <p><code>
13
+ # Returns an empty array by default.<br />
14
+ # Return an array of order packages and their rates<br />
15
+ # return [{<br />
16
+ # &nbsp;&nbsp;:order_package => Caboose::OrderPackage.new,<br />
17
+ # &nbsp;&nbsp;:rates => [{ <br />
18
+ # &nbsp;&nbsp;&nbsp;&nbsp;:shipping_method => Caboose::ShippingMethod.new,<br />
19
+ # &nbsp;&nbsp;&nbsp;&nbsp;:total_price => 3.50 <br />
20
+ # &nbsp;&nbsp;}]<br />
21
+ # }]<br />
22
+ }</code></p>
23
+ </div>
24
+ <h3>Shipping Origin</h3>
25
+ <p><div id='storeconfig_<%= sc.id %>_origin_address1' ></div></p>
26
+ <p><div id='storeconfig_<%= sc.id %>_origin_address2' ></div></p>
27
+ <p><div id='storeconfig_<%= sc.id %>_origin_city' ></div></p>
28
+ <p><div id='storeconfig_<%= sc.id %>_origin_state' ></div></p>
29
+ <p><div id='storeconfig_<%= sc.id %>_origin_zip' ></div></p>
30
+ <p><div id='storeconfig_<%= sc.id %>_origin_country' ></div></p>
31
+ <h3>Shipping Carriers</h3>
32
+ <p><div id='storeconfig_<%= sc.id %>_ups_username' ></div></p>
33
+ <p><div id='storeconfig_<%= sc.id %>_ups_password' ></div></p>
34
+ <p><div id='storeconfig_<%= sc.id %>_ups_key' ></div></p>
35
+ <p><div id='storeconfig_<%= sc.id %>_ups_origin_account' ></div></p>
36
+ <p><div id='storeconfig_<%= sc.id %>_usps_username' ></div></p>
37
+ <p><div id='storeconfig_<%= sc.id %>_usps_secret_key' ></div></p>
38
+ <p><div id='storeconfig_<%= sc.id %>_usps_publishable_key' ></div></p>
39
+ <p><div id='storeconfig_<%= sc.id %>_fedex_username' ></div></p>
40
+ <p><div id='storeconfig_<%= sc.id %>_fedex_password' ></div></p>
41
+ <p><div id='storeconfig_<%= sc.id %>_fedex_key' ></div></p>
42
+ <p><div id='storeconfig_<%= sc.id %>_fedex_account' ></div></p>
43
+
44
+ <%= render :partial => 'caboose/store/admin_footer' %>
45
+
46
+ <% content_for :caboose_js do %>
47
+ <script type="text/javascript">
48
+
49
+ $(document).ready(function() {
50
+
51
+ new ModelBinder({
52
+ name: 'StoreConfig',
53
+ id: <%= sc.id %>,
54
+ update_url: '/admin/store',
55
+ authenticity_token: '<%= form_authenticity_token %>',
56
+ attributes: [
57
+ { name: 'ups_username' , nice_name: 'UPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.ups_username ) %>, width: 400 },
58
+ { name: 'ups_password' , nice_name: 'UPS Password' , type: 'text' , value: <%= raw Caboose.json(sc.ups_password ) %>, width: 400 },
59
+ { name: 'ups_key' , nice_name: 'UPS Key' , type: 'text' , value: <%= raw Caboose.json(sc.ups_key ) %>, width: 400 },
60
+ { name: 'ups_origin_account' , nice_name: 'UPS Origin Account' , type: 'text' , value: <%= raw Caboose.json(sc.ups_origin_account ) %>, width: 400 },
61
+ { name: 'usps_username' , nice_name: 'USPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.usps_username ) %>, width: 400 },
62
+ { name: 'usps_secret_key' , nice_name: 'USPS Secret Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_secret_key ) %>, width: 400 },
63
+ { name: 'usps_publishable_key' , nice_name: 'USPS Publishable Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_publishable_key ) %>, width: 400 },
64
+ { name: 'fedex_username' , nice_name: 'FedEx Username' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_username ) %>, width: 400 },
65
+ { name: 'fedex_password' , nice_name: 'FedEx Password' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_password ) %>, width: 400 },
66
+ { name: 'fedex_key' , nice_name: 'FedEx Key' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_key ) %>, width: 400 },
67
+ { name: 'fedex_account' , nice_name: 'FedEx Account' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_account ) %>, width: 400 },
68
+ { name: 'origin_address1' , nice_name: 'Address 1' , type: 'text' , value: <%= raw Caboose.json(sc.origin_address1 ) %>, width: 400 },
69
+ { name: 'origin_address2' , nice_name: 'Address 2' , type: 'text' , value: <%= raw Caboose.json(sc.origin_address2 ) %>, width: 400 },
70
+ { name: 'origin_city' , nice_name: 'City' , type: 'text' , value: <%= raw Caboose.json(sc.origin_city ) %>, width: 400 },
71
+ { name: 'origin_state' , nice_name: 'State' , type: 'text' , value: <%= raw Caboose.json(sc.origin_state ) %>, width: 400 },
72
+ { name: 'origin_zip' , nice_name: 'Zip' , type: 'text' , value: <%= raw Caboose.json(sc.origin_zip ) %>, width: 400 },
73
+ { name: 'origin_country' , nice_name: 'Country' , type: 'text' , value: <%= raw Caboose.json(sc.origin_country ) %>, width: 400 },
74
+ { name: 'auto_calculate_shipping' , nice_name: 'Calculate Shipping Automatically' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_shipping ? 1 : 0 ) %>, width: 400, after_update: function() { toggleCustomShipping(this.value); }},
75
+ { name: 'custom_shipping_function' , nice_name: 'Custom Shipping Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_shipping_function ) %>, width: 800, height: 200, fixed_placeholder: false }
76
+ ]
77
+ });
78
+
79
+ });
80
+
81
+ function toggleCustomShipping(checked) {
82
+ var el = $('#custom_shipping_container');
83
+ if (checked)
84
+ el.slideUp()
85
+ else
86
+ el.slideDown();
87
+ }
88
+
89
+ </script>
90
+ <% end %>
@@ -0,0 +1,48 @@
1
+ <%
2
+ sc = @store_config
3
+ %>
4
+ <%= render :partial => 'caboose/store/admin_header' %>
5
+
6
+ <p>If calculating tax automatically, a TaxCloud (<a href='http://taxcloud.net'>taxcloud.net</a>) account is required. Otherwise, a custom tax function is required.</p>
7
+ <p><div id='storeconfig_<%= sc.id %>_auto_calculate_tax' ></div></p>
8
+ <p><div id='storeconfig_<%= sc.id %>_taxcloud_api_id' ></div></p>
9
+ <p><div id='storeconfig_<%= sc.id %>_taxcloud_api_key' ></div></p>
10
+ <div id='custom_tax_container' <% if sc.auto_calculate_tax %>style='display: none;'<% end %>>
11
+ <h3>Custom Tax Function</h3>
12
+ <p><code>def custom_tax_function(order) {</code></p>
13
+ <p><div id='storeconfig_<%= sc.id %>_custom_tax_function' ></div></p>
14
+ <p><code># return 0.00<br />}</code></p>
15
+ </div>
16
+
17
+ <%= render :partial => 'caboose/store/admin_footer' %>
18
+
19
+ <% content_for :caboose_js do %>
20
+ <script type="text/javascript">
21
+
22
+ $(document).ready(function() {
23
+
24
+ new ModelBinder({
25
+ name: 'StoreConfig',
26
+ id: <%= sc.id %>,
27
+ update_url: '/admin/store',
28
+ authenticity_token: '<%= form_authenticity_token %>',
29
+ attributes: [
30
+ { name: 'auto_calculate_tax' , nice_name: 'Automatically Calculate Tax' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_tax ? 1 : 0 ) %>, width: 400 , after_update: function() { toggleCustomTax(this.value); }},
31
+ { name: 'taxcloud_api_id' , nice_name: 'TaxCloud API ID' , type: 'text' , value: <%= raw Caboose.json(sc.taxcloud_api_id ) %>, width: 400 },
32
+ { name: 'taxcloud_api_key' , nice_name: 'TaxCloud API Key' , type: 'text' , value: <%= raw Caboose.json(sc.taxcloud_api_key ) %>, width: 600 },
33
+ { name: 'custom_tax_function' , nice_name: 'Custom Tax Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_tax_function ) %>, width: 800, height: 200, fixed_placeholder: false }
34
+ ]
35
+ });
36
+
37
+ });
38
+
39
+ function toggleCustomTax(checked) {
40
+ var el = $('#custom_tax_container');
41
+ if (checked)
42
+ el.slideUp()
43
+ else
44
+ el.slideDown();
45
+ }
46
+
47
+ </script>
48
+ <% end %>
data/config/routes.rb CHANGED
@@ -68,9 +68,11 @@ Caboose::Engine.routes.draw do
68
68
  get "admin/store/payment-processor-options" => "store#payment_processor_options"
69
69
  get "admin/store/length-unit-options" => "store#length_unit_options"
70
70
  get "admin/store/weight-unit-options" => "store#weight_unit_options"
71
- get "admin/store/payment-processor" => "store#admin_edit_payment_processor"
71
+ get "admin/store/payment" => "store#admin_edit_payment"
72
72
  get "admin/store/shipping" => "store#admin_edit_shipping"
73
- get "admin/store" => "store#admin_edit"
73
+ get "admin/store/tax" => "store#admin_edit_tax"
74
+ get "admin/store/packages" => "store#admin_edit_packages"
75
+ get "admin/store" => "store#admin_edit_general"
74
76
  put "admin/store" => "store#admin_update"
75
77
 
76
78
  #=============================================================================
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.135'
2
+ VERSION = '0.5.136'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.135
4
+ version: 0.5.136
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
@@ -862,7 +862,13 @@ files:
862
862
  - app/views/caboose/social/analytics.html.erb
863
863
  - app/views/caboose/stackable_groups/admin_index.html.erb
864
864
  - app/views/caboose/station/index.html.erb
865
- - app/views/caboose/store/admin_edit.html.erb
865
+ - app/views/caboose/store/_admin_footer.html.erb
866
+ - app/views/caboose/store/_admin_header.html.erb
867
+ - app/views/caboose/store/admin_edit_general.html.erb
868
+ - app/views/caboose/store/admin_edit_packages.html.erb
869
+ - app/views/caboose/store/admin_edit_payment.html.erb
870
+ - app/views/caboose/store/admin_edit_shipping.html.erb
871
+ - app/views/caboose/store/admin_edit_tax.html.erb
866
872
  - app/views/caboose/users/edit.html.erb
867
873
  - app/views/caboose/users/edit_password.html.erb
868
874
  - app/views/caboose/users/import_form.html.erb
@@ -1,156 +0,0 @@
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
- <p><div id='storeconfig_<%= sc.id %>_pp_relay_domain' ></div></p>
13
- <p><div id='storeconfig_<%= sc.id %>_pp_testing' ></div></p>
14
- <hr />
15
-
16
- <h2>Fulfillment Contacts</h2>
17
- <p><div id='storeconfig_<%= sc.id %>_fulfillment_email' ></div></p>
18
- <p><div id='storeconfig_<%= sc.id %>_shipping_email' ></div></p>
19
- <hr />
20
-
21
- <h2>Dimension Units</h2>
22
- <p><div id='storeconfig_<%= sc.id %>_length_unit' ></div></p>
23
- <p><div id='storeconfig_<%= sc.id %>_weight_unit' ></div></p>
24
- <hr />
25
-
26
- <h2>Tax</h2>
27
- <p>If calculating tax automatically, a TaxCloud (<a href='http://taxcloud.net'>taxcloud.net</a>) account is required. Otherwise, a custom tax function is required.</p>
28
- <p><div id='storeconfig_<%= sc.id %>_auto_calculate_tax' ></div></p>
29
- <p><div id='storeconfig_<%= sc.id %>_taxcloud_api_id' ></div></p>
30
- <p><div id='storeconfig_<%= sc.id %>_taxcloud_api_key' ></div></p>
31
- <h3>Custom Tax Function</h3>
32
- <p><code>def custom_tax_function(order) {</code></p>
33
- <p><div id='storeconfig_<%= sc.id %>_custom_tax_function' ></div></p>
34
- <p><code># return 0.00<br />}</code></p>
35
- <hr />
36
-
37
- <h2>Order Packages</h2>
38
- <p>If calculating order packages automatically, all shippable variants must have dimensions and weights populated. Otherwise, a custom order packages function is required.</p>
39
- <p><div id='storeconfig_<%= sc.id %>_auto_calculate_packages' ></div></p>
40
- <h3>Custom Order Packages Function</h3>
41
- <p><code>def custom_order_packages_function(order) {</code></p>
42
- <p><div id='storeconfig_<%= sc.id %>_custom_packages_function' ></div></p>
43
- <p><code># This function does not return anything, but creates the Caboose::OrderPackage objects for the given order<br />}</code></p>
44
- <hr />
45
-
46
- <h2>Shipping</h2>
47
- <p>If calculating shipping rates automatically, all shippable variants must have dimensions and weights populated. Otherwise, a custom shipping rates function is required.</p>
48
- <p><div id='storeconfig_<%= sc.id %>_auto_calculate_shipping' ></div></p>
49
- <h3>Custom Shipping Rates Function</h3>
50
- <p><code>def custom_shipping_rates_function(order) {</code></p>
51
- <p><div id='storeconfig_<%= sc.id %>_custom_shipping_function' ></div></p>
52
- <p><code>
53
- # Returns an empty array by default.<br />
54
- # Return an array of order packages and their rates<br />
55
- # return [{<br />
56
- # &nbsp;&nbsp;:order_package => Caboose::OrderPackage.new,<br />
57
- # &nbsp;&nbsp;:rates => [{ <br />
58
- # &nbsp;&nbsp;&nbsp;&nbsp;:shipping_method => Caboose::ShippingMethod.new,<br />
59
- # &nbsp;&nbsp;&nbsp;&nbsp;:total_price => 3.50 <br />
60
- # &nbsp;&nbsp;}]<br />
61
- # }]<br />
62
- }</code></p>
63
- <h3>Shipping Origin</h3>
64
- <p><div id='storeconfig_<%= sc.id %>_origin_address1' ></div></p>
65
- <p><div id='storeconfig_<%= sc.id %>_origin_address2' ></div></p>
66
- <p><div id='storeconfig_<%= sc.id %>_origin_city' ></div></p>
67
- <p><div id='storeconfig_<%= sc.id %>_origin_state' ></div></p>
68
- <p><div id='storeconfig_<%= sc.id %>_origin_zip' ></div></p>
69
- <p><div id='storeconfig_<%= sc.id %>_origin_country' ></div></p>
70
- <h3>Shipping Carriers</h3>
71
- <p><div id='storeconfig_<%= sc.id %>_ups_username' ></div></p>
72
- <p><div id='storeconfig_<%= sc.id %>_ups_password' ></div></p>
73
- <p><div id='storeconfig_<%= sc.id %>_ups_key' ></div></p>
74
- <p><div id='storeconfig_<%= sc.id %>_ups_origin_account' ></div></p>
75
- <p><div id='storeconfig_<%= sc.id %>_usps_username' ></div></p>
76
- <p><div id='storeconfig_<%= sc.id %>_usps_secret_key' ></div></p>
77
- <p><div id='storeconfig_<%= sc.id %>_usps_publishable_key' ></div></p>
78
- <p><div id='storeconfig_<%= sc.id %>_fedex_username' ></div></p>
79
- <p><div id='storeconfig_<%= sc.id %>_fedex_password' ></div></p>
80
- <p><div id='storeconfig_<%= sc.id %>_fedex_key' ></div></p>
81
- <p><div id='storeconfig_<%= sc.id %>_fedex_account' ></div></p>
82
- <hr />
83
-
84
- <h2>Other</h2>
85
- <p><div id='storeconfig_<%= sc.id %>_handling_percentage' ></div></p>
86
- <p><div id='storeconfig_<%= sc.id %>_download_url_expires_in' ></div></p>
87
- <p><div id='storeconfig_<%= sc.id %>_starting_order_number' ></div></p>
88
-
89
- <div id='message'></div>
90
-
91
- <% content_for :caboose_js do %>
92
- <%= javascript_include_tag "caboose/model/all" %>
93
- <script type="text/javascript">
94
-
95
- $(document).ready(function() {
96
-
97
- new ModelBinder({
98
- name: 'Site',
99
- id: <%= @site.id %>,
100
- update_url: '/admin/sites/<%= @site.id %>',
101
- authenticity_token: '<%= form_authenticity_token %>',
102
- attributes: [
103
- { name: 'use_store', nice_name: 'Enable Store', type: 'checkbox', value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 }
104
- ]
105
- });
106
-
107
- new ModelBinder({
108
- name: 'StoreConfig',
109
- id: <%= sc.id %>,
110
- update_url: '/admin/store',
111
- authenticity_token: '<%= form_authenticity_token %>',
112
- attributes: [
113
- { name: 'pp_name' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(sc.pp_name ) %>, width: 400 , options_url: '/admin/store/payment-processor-options' },
114
- { name: 'pp_username' , nice_name: 'Username' , type: 'text' , value: <%= raw Caboose.json(sc.pp_username ) %>, width: 400 },
115
- { name: 'pp_password' , nice_name: 'Password' , type: 'text' , value: <%= raw Caboose.json(sc.pp_password ) %>, width: 400 },
116
- { name: 'pp_relay_domain' , nice_name: 'Relay Domain' , type: 'text' , value: <%= raw Caboose.json(sc.pp_relay_domain ) %>, width: 400 },
117
- { name: 'pp_testing' , nice_name: 'Test Mode' , type: 'checkbox' , value: <%= raw Caboose.json(sc.pp_testing ? 1 : 0 ) %>, width: 400 },
118
- { name: 'fulfillment_email' , nice_name: 'Fulfillment Email' , type: 'text' , value: <%= raw Caboose.json(sc.fulfillment_email ) %>, width: 400 },
119
- { name: 'shipping_email' , nice_name: 'Shipping Email' , type: 'text' , value: <%= raw Caboose.json(sc.shipping_email ) %>, width: 400 },
120
- { name: 'handling_percentage' , nice_name: 'Handling Percentage' , type: 'text' , value: <%= raw Caboose.json(sc.handling_percentage ) %>, width: 400 },
121
- { name: 'length_unit' , nice_name: 'Length' , type: 'select' , value: <%= raw Caboose.json(sc.length_unit ) %>, width: 400 , options_url: '/admin/store/length-unit-options' },
122
- { name: 'weight_unit' , nice_name: 'Weight' , type: 'select' , value: <%= raw Caboose.json(sc.weight_unit ) %>, width: 400 , options_url: '/admin/store/weight-unit-options' },
123
- { name: 'ups_username' , nice_name: 'UPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.ups_username ) %>, width: 400 },
124
- { name: 'ups_password' , nice_name: 'UPS Password' , type: 'text' , value: <%= raw Caboose.json(sc.ups_password ) %>, width: 400 },
125
- { name: 'ups_key' , nice_name: 'UPS Key' , type: 'text' , value: <%= raw Caboose.json(sc.ups_key ) %>, width: 400 },
126
- { name: 'ups_origin_account' , nice_name: 'UPS Origin Account' , type: 'text' , value: <%= raw Caboose.json(sc.ups_origin_account ) %>, width: 400 },
127
- { name: 'usps_username' , nice_name: 'USPS Username' , type: 'text' , value: <%= raw Caboose.json(sc.usps_username ) %>, width: 400 },
128
- { name: 'usps_secret_key' , nice_name: 'USPS Secret Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_secret_key ) %>, width: 400 },
129
- { name: 'usps_publishable_key' , nice_name: 'USPS Publishable Key' , type: 'text' , value: <%= raw Caboose.json(sc.usps_publishable_key ) %>, width: 400 },
130
- { name: 'fedex_username' , nice_name: 'FedEx Username' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_username ) %>, width: 400 },
131
- { name: 'fedex_password' , nice_name: 'FedEx Password' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_password ) %>, width: 400 },
132
- { name: 'fedex_key' , nice_name: 'FedEx Key' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_key ) %>, width: 400 },
133
- { name: 'fedex_account' , nice_name: 'FedEx Account' , type: 'text' , value: <%= raw Caboose.json(sc.fedex_account ) %>, width: 400 },
134
- { name: 'taxcloud_api_id' , nice_name: 'TaxCloud API ID' , type: 'text' , value: <%= raw Caboose.json(sc.taxcloud_api_id ) %>, width: 400 },
135
- { name: 'taxcloud_api_key' , nice_name: 'TaxCloud API Key' , type: 'text' , value: <%= raw Caboose.json(sc.taxcloud_api_key ) %>, width: 400 },
136
- { name: 'origin_address1' , nice_name: 'Address 1' , type: 'text' , value: <%= raw Caboose.json(sc.origin_address1 ) %>, width: 400 },
137
- { name: 'origin_address2' , nice_name: 'Address 2' , type: 'text' , value: <%= raw Caboose.json(sc.origin_address2 ) %>, width: 400 },
138
- { name: 'origin_city' , nice_name: 'City' , type: 'text' , value: <%= raw Caboose.json(sc.origin_city ) %>, width: 400 },
139
- { name: 'origin_state' , nice_name: 'State' , type: 'text' , value: <%= raw Caboose.json(sc.origin_state ) %>, width: 400 },
140
- { name: 'origin_zip' , nice_name: 'Zip' , type: 'text' , value: <%= raw Caboose.json(sc.origin_zip ) %>, width: 400 },
141
- { name: 'origin_country' , nice_name: 'Country' , type: 'text' , value: <%= raw Caboose.json(sc.origin_country ) %>, width: 400 },
142
- { name: 'download_url_expires_in' , nice_name: 'Download URL Expires In (minutes)' , type: 'text' , value: <%= raw Caboose.json(sc.download_url_expires_in ) %>, width: 400 },
143
- { name: 'starting_order_number' , nice_name: 'Starting Order Number' , type: 'text' , value: <%= raw Caboose.json(sc.starting_order_number ) %>, width: 400 },
144
- { name: 'auto_calculate_packages' , nice_name: 'Automatically Calculate Packages' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_packages ? 1 : 0 ) %>, width: 400 },
145
- { name: 'auto_calculate_shipping' , nice_name: 'Calculate Shipping Automatically' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_shipping ? 1 : 0 ) %>, width: 400 },
146
- { name: 'auto_calculate_tax' , nice_name: 'Automatically Calculate Tax' , type: 'checkbox' , value: <%= raw Caboose.json(sc.auto_calculate_tax ? 1 : 0 ) %>, width: 400 },
147
- { name: 'custom_packages_function' , nice_name: 'Custom Packages Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_packages_function ) %>, width: 800, height: 200, fixed_placeholder: false },
148
- { name: 'custom_shipping_function' , nice_name: 'Custom Shipping Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_shipping_function ) %>, width: 800, height: 200, fixed_placeholder: false },
149
- { name: 'custom_tax_function' , nice_name: 'Custom Tax Function' , type: 'textarea' , value: <%= raw Caboose.json(sc.custom_tax_function ) %>, width: 800, height: 200, fixed_placeholder: false },
150
- ]
151
- });
152
-
153
- });
154
-
155
- </script>
156
- <% end %>