caboose-cms 0.9.6 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
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