caboose-cms 0.9.6 → 0.9.8

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e70b82b6cfdc472f97cc722cadf5bdc5d6b64de4
4
- data.tar.gz: 6e777b617dd35613e5a211adbe49c13cc3a75a5f
3
+ metadata.gz: c98b08e4c257fd3373839e4de959db0931d3785c
4
+ data.tar.gz: 822ea095f72aebd54c20c8c6552e28b0df7cca24
5
5
  SHA512:
6
- metadata.gz: d35c00d7a8c43a37b5af8e5983230b11dcf684b7ae4d55f5dbdeb1451f40419e516bb37618ae7638a21563d16050f076bd1d6a8b24fc84230ed58ef7b38fc2ee
7
- data.tar.gz: 57f5445a919934ba2da225f8f5b268617369926ca74c59c4cf526b9fd404703be0645f18a58bec38ea81b763db92b86f66fd87cba9aa614937340adc0dfb5add
6
+ metadata.gz: 82006d6ddc689439f838c6c471c3a6a994341c801af00b7fd8f61932a41e453af824e4562a3488a1e31b67f8f4930215dcd9eb16be9baf64742023802fc35c02
7
+ data.tar.gz: d239512ce0344384b4a09d602d0ce9bdeb488e9201394dc5084a4773bfb34f29db94cf998571e63ba18220dedd4e334925c2c53ad004a0d38eb84ef6f9b189a2
@@ -51,7 +51,7 @@ module Caboose
51
51
  resp.invoice_transactions = invoice.invoice_transactions.reorder(:date_processed).all
52
52
 
53
53
  render :json => resp
54
- end
54
+ ends
55
55
 
56
56
  # @route GET /admin/invoices/new
57
57
  def admin_new
@@ -198,7 +198,9 @@ module Caboose
198
198
  def admin_print
199
199
  return if !user_is_allowed('invoices', 'edit')
200
200
 
201
- pdf = InvoicePdf.new
201
+ pdf = @site.store_config.custom_invoice_pdf
202
+ pdf = "InvoicePdf" if pdf.nil? || pdf.strip.length == 0
203
+ eval("pdf = #{pdf}.new")
202
204
  pdf.invoice = Invoice.find(params[:id])
203
205
  send_data pdf.to_pdf, :filename => "invoice_#{pdf.invoice.id}.pdf", :type => "application/pdf", :disposition => "inline"
204
206
  end
@@ -165,6 +165,21 @@ module Caboose
165
165
  :invoice_transactions
166
166
  ])
167
167
  end
168
+
169
+ # @route GET /my-account/invoices/:id/print
170
+ def invoice_pdf
171
+ invoice = Invoice.find(params[:id])
172
+
173
+ if invoice.customer_id != logged_in_user.id
174
+ @error = "The given invoice does not belong to you."
175
+ render :file => 'caboose/extras/error'
176
+ return
177
+ end
178
+
179
+ pdf = InvoicePdf.new
180
+ pdf.invoice = Invoice.find(params[:id])
181
+ send_data pdf.to_pdf, :filename => "invoice_#{pdf.invoice.id}.pdf", :type => "application/pdf", :disposition => "inline"
182
+ end
168
183
 
169
184
  # @route GET /my-account/invoices/authnet-relay
170
185
  # @route POST /my-account/invoices/authnet-relay
@@ -1,14 +1,14 @@
1
1
  module Caboose
2
2
  class VendorsController < Caboose::ApplicationController
3
3
 
4
- # @route GET /admin/vendors/:id
4
+ # @route GET /admin/store/vendors/:id
5
5
  def admin_edit
6
6
  return if !user_is_allowed('vendors', 'edit')
7
7
  @vendor = Vendor.find(params[:id])
8
8
  render :layout => 'caboose/admin'
9
9
  end
10
10
 
11
- # @route GET /admin/vendors
11
+ # @route GET /admin/store/vendors
12
12
  def admin_index
13
13
  return if !user_is_allowed('vendors', 'view')
14
14
 
@@ -30,13 +30,13 @@ module Caboose
30
30
  end
31
31
 
32
32
  # @route_priority 3
33
- # @route GET /admin/vendors/new
33
+ # @route GET /admin/store/vendors/new
34
34
  def admin_new
35
35
  return if !user_is_allowed('vendors', 'add')
36
36
  render :layout => 'caboose/admin'
37
37
  end
38
38
 
39
- # @route POST /admin/vendors/:id/image
39
+ # @route POST /admin/store/vendors/:id/image
40
40
  def admin_update_image
41
41
  return if !user_is_allowed('vendors', 'edit')
42
42
 
@@ -50,7 +50,7 @@ module Caboose
50
50
  render :json => resp
51
51
  end
52
52
 
53
- # @route PUT /admin/vendors/:id/update
53
+ # @route PUT /admin/store/vendors/:id/update
54
54
  def admin_update
55
55
  return if !user_is_allowed('vendors', 'edit')
56
56
  vendor = Vendor.find(params[:id])
@@ -67,7 +67,7 @@ module Caboose
67
67
  render :json => { :success => vendor.save }
68
68
  end
69
69
 
70
- # @route POST /admin/vendors
70
+ # @route POST /admin/store/vendors
71
71
  def admin_add
72
72
  return if !user_is_allowed('vendors', 'add')
73
73
 
@@ -81,7 +81,7 @@ module Caboose
81
81
  render :json => { :success => vendor.save, :redirect => "/admin/vendors/#{vendor.id}" }
82
82
  end
83
83
 
84
- # @route DELETE /admin/vendors/:id
84
+ # @route DELETE /admin/store/vendors/:id
85
85
  def admin_delete
86
86
  return if !user_is_allowed('vendors', 'delete')
87
87
  v = Vendor.find(params[:id])
@@ -94,13 +94,13 @@ module Caboose
94
94
  end
95
95
 
96
96
  # @route_priority 1
97
- # @route GET /admin/vendors/options
97
+ # @route GET /admin/store/vendors/options
98
98
  def options
99
99
  render :json => Vendor.where(:site_id => @site.id).reorder(:name).all.collect{ |v| { :value => v.id, :text => v.name }}
100
100
  end
101
101
 
102
102
  # @route_priority 2
103
- # @route GET /admin/vendors/status-options
103
+ # @route GET /admin/store/vendors/status-options
104
104
  def status_options
105
105
  render :json => [
106
106
  { :text => 'Active' , :value => 'Active' },
@@ -39,7 +39,7 @@ class Caboose::CorePlugin < Caboose::CaboosePlugin
39
39
  item['children'] << { 'id' => 'invoices' , 'href' => '/admin/invoices' , 'text' => 'Invoices' , 'modal' => false } if user.is_allowed('invoices' , 'view')
40
40
  item['children'] << { 'id' => 'products' , 'href' => '/admin/products' , 'text' => 'Products' , 'modal' => false } if user.is_allowed('products' , 'view')
41
41
  item['children'] << { 'id' => 'shippingpackages' , 'href' => '/admin/shipping-packages' , 'text' => 'Shipping Packages' , 'modal' => false } if user.is_allowed('shippingpackages' , 'view')
42
- item['children'] << { 'id' => 'vendors' , 'href' => '/admin/vendors' , 'text' => 'Vendors' , 'modal' => false } if user.is_allowed('vendors' , 'view')
42
+ item['children'] << { 'id' => 'vendors' , 'href' => '/admin/store/vendors' , 'text' => 'Vendors' , 'modal' => false } if user.is_allowed('vendors' , 'view')
43
43
  nav << item if item['children'].count > 0
44
44
  end
45
45
 
@@ -14,9 +14,8 @@ module Caboose
14
14
  font_size 9
15
15
 
16
16
  img = open("http://cabooseit.s3.amazonaws.com/uploads/template.jpg")
17
- # image img, :width => 610, :at => [-30, 755]
18
-
19
- #image open("https://dmwwflw4i3miv.cloudfront.net/logo.png"), :position => :center
17
+
18
+ header_info
20
19
  move_down 10
21
20
  invoice_info
22
21
  move_down 15
@@ -28,6 +27,9 @@ module Caboose
28
27
  render
29
28
  end
30
29
 
30
+ def header_info
31
+ end
32
+
31
33
  def formatted_phone(str)
32
34
  return '' if str.nil?
33
35
  str = str.gsub(/[^0-9]/i, '')
@@ -52,6 +54,8 @@ module Caboose
52
54
  sc = self.invoice.site.store_config
53
55
  ot = self.invoice.invoice_transactions.where(:transaction_type => InvoiceTransaction::TYPE_AUTHORIZE, :success => true).first
54
56
 
57
+ return unless ot
58
+
55
59
  case ot.payment_processor
56
60
  when StoreConfig::PAYMENT_PROCESSOR_AUTHNET
57
61
 
@@ -82,6 +86,18 @@ module Caboose
82
86
  invoice_info = "Invoice Number: #{invoice.invoice_number}\n"
83
87
  invoice_info << "Invoice Date: #{invoice.date_created.strftime('%d %b %Y %H:%M:%S %p')}\n"
84
88
  invoice_info << "Status: #{invoice.status.capitalize}\n"
89
+
90
+ if invoice.status == Invoice::STATUS_PENDING
91
+ s = self.invoice.site
92
+ sc = self.invoice.site.store_config
93
+ invoice_info << "\n"
94
+ invoice_info << "Please mail payments to:\n"
95
+ invoice_info << "#{s.description}\n"
96
+ invoice_info << "#{sc.origin_address1}\n"
97
+ invoice_info << "#{sc.origin_address2}\n"
98
+ invoice_info << "#{sc.origin_city}, " << "#{sc.origin_state} " << "#{sc.origin_zip}\n"
99
+ end
100
+
85
101
  tbl = []
86
102
  tbl << [
87
103
  { :content => invoice_info }
@@ -92,6 +108,7 @@ module Caboose
92
108
 
93
109
 
94
110
  def customer_info
111
+ return if self.invoice.status == Invoice::STATUS_PENDING
95
112
 
96
113
  c = invoice.customer
97
114
 
@@ -254,6 +271,7 @@ module Caboose
254
271
  end
255
272
 
256
273
  def payment_info
274
+ return if self.invoice.status == Invoice::STATUS_PENDING
257
275
 
258
276
  trans = invoice.invoice_transactions.where(:transaction_type => InvoiceTransaction::TYPE_AUTHORIZE, :success => true).first
259
277
  tbl = []
@@ -841,7 +841,8 @@ class Caboose::Schema < Caboose::Utilities::Schema
841
841
  [ :default_vendor_id , :integer ],
842
842
  [ :default_product_status , :string ],
843
843
  [ :default_taxable , :boolean ],
844
- [ :allow_instore_pickup , :boolean , { :default => false }]
844
+ [ :allow_instore_pickup , :boolean , { :default => false }],
845
+ [ :custom_invoice_pdf , :string ]
845
846
  ],
846
847
  Caboose::Subscription => [
847
848
  [ :variant_id , :integer ],
@@ -47,7 +47,8 @@ module Caboose
47
47
  :length_unit,
48
48
  :download_instructions,
49
49
  :weight_unit,
50
- :allow_instore_pickup
50
+ :allow_instore_pickup,
51
+ :custom_invoice_pdf
51
52
 
52
53
  WEIGHT_UNIT_METRIC = 'g'
53
54
  WEIGHT_UNIT_IMPERIAL = 'oz'
@@ -12,7 +12,10 @@ store_config = @invoice.site.store_config
12
12
  <div id='invoice_table'></div>
13
13
  <div id='message'></div>
14
14
 
15
- <p><input type='button' value='< Back' class='btn' onclick="window.location='/my-account/invoices';" /></p>
15
+ <p>
16
+ <input type='button' value='< Back' class='btn' onclick="window.location='/my-account/invoices';" />
17
+ <input type='button' value='Print Invoice' class='btn' onclick='window.location="/my-account/invoices/<%= @invoice.id %>/print";' />
18
+ </p>
16
19
 
17
20
  <% content_for :caboose_js do %>
18
21
  <%= javascript_include_tag 'https://js.stripe.com/v2/' %>
@@ -4,7 +4,7 @@
4
4
  <p><div id="vendor_<%= @vendor.id %>_featured"></div></p>
5
5
  <p><div id="vendor_<%= @vendor.id %>_image"></div></p>
6
6
  <div id='message'></div>
7
- <input type="button" value="< Back" onclick="window.location='/admin/vendors';" />
7
+ <input type="button" value="< Back" onclick="window.location='/admin/store/vendors';" />
8
8
  <input type="button" value="Delete" onclick="delete_vendor(<%= @vendor.id %>);" />
9
9
 
10
10
  <% content_for :caboose_js do %>
@@ -14,13 +14,13 @@ $(document).ready(function() {
14
14
  m = new ModelBinder({
15
15
  id: <%= @vendor.id %>,
16
16
  name: 'Vendor',
17
- update_url: '/admin/vendors/<%= @vendor.id %>',
17
+ update_url: '/admin/store/vendors/<%= @vendor.id %>',
18
18
  authenticity_token: '<%= form_authenticity_token %>',
19
19
  attributes: [
20
20
  { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@vendor.name) %>, width: 500 },
21
- { name: 'status' , nice_name: 'Status' , type: 'select' , value: <%= raw Caboose.json(@vendor.status) %>, width: 500, options_url: '/admin/vendors/status-options' },
21
+ { name: 'status' , nice_name: 'Status' , type: 'select' , value: <%= raw Caboose.json(@vendor.status) %>, width: 500, options_url: '/admin/store/vendors/status-options' },
22
22
  { name: 'featured' , nice_name: 'Featured' , type: 'checkbox' , value: <%= @vendor.featured ? 1 : 0 %>, width: 500 },
23
- { name: 'image' , nice_name: 'Image' , type: 'image' , value: <%= raw Caboose.json(@vendor.image.url(:thumb)) %>, width: 500 , update_url: '/admin/vendors/<%= @vendor.id %>/image' }
23
+ { name: 'image' , nice_name: 'Image' , type: 'image' , value: <%= raw Caboose.json(@vendor.image.url(:thumb)) %>, width: 500 , update_url: '/admin/store/vendors/<%= @vendor.id %>/image' }
24
24
  ]
25
25
  })
26
26
  });
@@ -38,7 +38,7 @@ function delete_vendor(vendor_id, confirm)
38
38
  }
39
39
  $('#message').html("<p class='loading'>Deleting vendor...</p>");
40
40
  $.ajax({
41
- url: '/admin/vendors/' + vendor_id,
41
+ url: '/admin/store/vendors/' + vendor_id,
42
42
  type: 'delete',
43
43
  success: function(resp) {
44
44
  if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
@@ -1,8 +1,8 @@
1
1
  <h1>Vendors</h1>
2
2
 
3
- <p><a href="/admin/vendors/new">New Vendor</a></p>
3
+ <p><a href="/admin/store/vendors/new">New Vendor</a></p>
4
4
 
5
- <form action="/admin/vendors" method="get" style="margin: 0 0 12px">
5
+ <form action="/admin/store/vendors" method="get" style="margin: 0 0 12px">
6
6
  <input name="name_like" value="<%= params[:name_like] %>" placeholder="Search for vendor" />
7
7
  <input type="submit" value="Search" />
8
8
  </form>
@@ -20,7 +20,7 @@
20
20
  </tr>
21
21
 
22
22
  <% @vendors.each do |vendor| %>
23
- <tr onclick="window.location='/admin/vendors/<%= vendor.id %>';">
23
+ <tr onclick="window.location='/admin/store/vendors/<%= vendor.id %>';">
24
24
  <td style="text-align: center"><%= raw vendor.id %></td>
25
25
  <td><% if vendor.image %><img src='<%= raw vendor.image.url(:tiny) %>' /><% else %>&nbsp;<% end %></td>
26
26
  <td><%= raw vendor.name %></td>
@@ -1,12 +1,12 @@
1
1
  <h1>New Vendor</h1>
2
2
 
3
- <form id="new-vendor" action="/admin/vendors" method="post">
3
+ <form id="new-vendor" action="/admin/store/vendors" method="post">
4
4
  <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" />
5
5
  <p><input id="name" name="name" id='name' type="text" placeholder="Vendor Name" style="width: 400px" /></p>
6
6
  <p><input type='checkbox' name='stay' id='stay' value='1' /> Stay here so I can add another vendor</p>
7
7
  <div id='message'></div>
8
8
  <p>
9
- <input type="button" value="< Back" onclick="window.location='/admin/vendors';" />
9
+ <input type="button" value="< Back" onclick="window.location='/admin/store/vendors';" />
10
10
  <input type="submit" value="Add Vendor" />
11
11
  </p>
12
12
  </form>
@@ -20,7 +20,7 @@ $(document).ready(function() {
20
20
 
21
21
  $('#message').html("<p class='loading'>Adding vendor...</p>");
22
22
  $.ajax({
23
- url: '/admin/vendors',
23
+ url: '/admin/store/vendors',
24
24
  type: 'post',
25
25
  data: $('#new-vendor').serialize(),
26
26
  success: function(resp) {
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.9.6'
2
+ VERSION = '0.9.8'
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.9.6
4
+ version: 0.9.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry