caboose-store 0.0.9 → 0.0.10
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_store/payment_processors/authorizenet.js +21 -0
- data/app/assets/javascripts/caboose_store/payment_processors/base.js +21 -0
- data/app/assets/javascripts/caboose_store/payment_processors/payscape.js +21 -0
- data/app/controllers/caboose_store/orders_controller.rb +35 -0
- data/app/controllers/caboose_store/products_controller.rb +39 -18
- data/app/models/caboose_store/category.rb +1 -1
- data/app/models/caboose_store/payment_processors/authorizenet.rb +3 -0
- data/app/models/caboose_store/payment_processors/base.rb +41 -0
- data/app/models/caboose_store/payment_processors/payscape.rb +3 -0
- data/app/models/caboose_store/schema.rb +2 -12
- data/app/models/caboose_store/search_filter.rb +96 -25
- data/config/routes.rb +3 -6
- data/lib/caboose-store.rb +5 -3
- data/lib/caboose-store/engine.rb +40 -0
- data/lib/caboose-store/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzE4NGU4ODA3MTA0N2ZhMDc1NTc0MmQzOGQ5ZDg5MjQ2MTliYTAzMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDc5ZDM3NmQzNTQxZDQzNGMwODY2NDBlNzczNDgyMTVmZWU5NTY3Mw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Mzc5NjgyMTkwOWEwYTA0NGE2ZDdiNjBjNWYwMjcwZmNlYjJlNDNjN2U3MDkx
|
10
|
+
MmU4NjFiZGI2MGYxM2YxMDZiMjk4MmJiZTZiOTUxYTIxNzJlMmU3ZDFiYjQz
|
11
|
+
ODAwY2JhZDYzZTJmMGY0M2FkOGQ2YjFmMGIwMmUwMjhkZjdkYjk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTljYWMyNGUyZGMzYWQxYWE4MjRhMWUyY2EwZWU5ZDcxYjczMDQ0YzlhM2Fk
|
14
|
+
OWNhOTc2NWEwNDkxYjRkODk4Y2Y5OTY1NmNkZjkyNzg0MTJjOWIxN2RiODNm
|
15
|
+
MjI0ZWEwN2E4NTEwZTMyMmMyODU4MzUxZjg1ZTVhYjMxMGJkYjM=
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
PaymentProcessor = function();
|
3
|
+
|
4
|
+
/*
|
5
|
+
* Authorizes payment for an order.
|
6
|
+
*
|
7
|
+
* Options:
|
8
|
+
* order_id : The id of the order.
|
9
|
+
* address : The billing address.
|
10
|
+
* zip : The billing zip code.
|
11
|
+
* card_num : The 15-16 digit card number.
|
12
|
+
* exp_date : Expiration date in mmYY format.
|
13
|
+
* security_code : The security code on the back of the card.
|
14
|
+
*
|
15
|
+
* Called on /checkout/billing when order information has been confirmed and ready for authorization.
|
16
|
+
* Should set any fields values in the hidden form and submit the form.
|
17
|
+
*/
|
18
|
+
PaymentProcessor.authorize = function(options)
|
19
|
+
{
|
20
|
+
// TODO: Implement this
|
21
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
PaymentProcessor = function();
|
3
|
+
|
4
|
+
/*
|
5
|
+
* Authorizes payment for an order.
|
6
|
+
*
|
7
|
+
* Options:
|
8
|
+
* order_id : The id of the order.
|
9
|
+
* address : The billing address.
|
10
|
+
* zip : The billing zip code.
|
11
|
+
* card_num : The 15-16 digit card number.
|
12
|
+
* exp_date : Expiration date in mmYY format.
|
13
|
+
* security_code : The security code on the back of the card.
|
14
|
+
*
|
15
|
+
* Called on /checkout/billing when order information has been confirmed and ready for authorization.
|
16
|
+
* Should set any fields values in the hidden form and submit the form.
|
17
|
+
*/
|
18
|
+
PaymentProcessor.authorize = function(options)
|
19
|
+
{
|
20
|
+
|
21
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
PaymentProcessor = function();
|
3
|
+
|
4
|
+
/*
|
5
|
+
* Authorizes payment for an order.
|
6
|
+
*
|
7
|
+
* Options:
|
8
|
+
* order_id : The id of the order.
|
9
|
+
* address : The billing address.
|
10
|
+
* zip : The billing zip code.
|
11
|
+
* card_num : The 15-16 digit card number.
|
12
|
+
* exp_date : Expiration date in mmYY format.
|
13
|
+
* security_code : The security code on the back of the card.
|
14
|
+
*
|
15
|
+
* Called on /checkout/billing when order information has been confirmed and ready for authorization.
|
16
|
+
* Should set any fields values in the hidden form and submit the form.
|
17
|
+
*/
|
18
|
+
PaymentProcessor.authorize = function(options)
|
19
|
+
{
|
20
|
+
// TODO: Implement this
|
21
|
+
};
|
@@ -260,5 +260,40 @@ module CabooseStore
|
|
260
260
|
render :text => "Sent email to william@nine.is on #{DateTime.now.strftime("%F %T")}"
|
261
261
|
end
|
262
262
|
|
263
|
+
# GET /admin/orders/google-feed
|
264
|
+
def admin_google_feed
|
265
|
+
d2 = DateTime.now
|
266
|
+
d1 = DateTime.now
|
267
|
+
if Caboose::Setting.exists?(:name => 'google_feed_date_last_submitted')
|
268
|
+
d1 = Caboose::Setting.where(:name => 'google_feed_date_last_submitted').first.value
|
269
|
+
d1 = DateTime.parse(d1)
|
270
|
+
elsif Order.exists?("status = 'shipped' and date_authorized is not null")
|
271
|
+
d1 = Order.where("status = ? and date_authorized is not null", 'shipped').reorder("date_authorized DESC").limit(1).pluck('date_authorized')
|
272
|
+
d1 = DateTime.parse(d1)
|
273
|
+
end
|
274
|
+
|
275
|
+
# Google Feed Docs
|
276
|
+
# https://support.google.com/trustedstoresmerchant/answer/3272612?hl=en&ref_topic=3272286?hl=en
|
277
|
+
tsv = ["merchant order id\ttracking number\tcarrier code\tother carrier name\tship date"]
|
278
|
+
if Order.exists?("status = 'shipped' and date_authorized > '#{d1.strftime("%F %T")}'")
|
279
|
+
Order.where("status = ? and date_authorized > ?", 'shipped', d1).reorder(:id).all.each do |order|
|
280
|
+
tracking_numbers = order.line_items.collect{ |li| li.tracking_number }.compact.uniq
|
281
|
+
tn = tracking_numbers && tracking_numbers.count >= 1 ? tracking_numbers[0] : ""
|
282
|
+
tsv << "#{order.id}\t#{tn}\tUPS\t\t#{order.date_shipped.strftime("%F")}"
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
# Save when we made the last call
|
287
|
+
setting = Caboose::Setting.exists?(:name => 'google_feed_date_last_submitted') ?
|
288
|
+
Caboose::Setting.where(:name => 'google_feed_date_last_submitted').first
|
289
|
+
Caboose::Setting.new(:name => 'google_feed_date_last_submitted')
|
290
|
+
setting.value = d2.strftime("%F %T")
|
291
|
+
setting.save
|
292
|
+
|
293
|
+
# Print out the lines
|
294
|
+
render :text => tsv.join("\n")
|
295
|
+
|
296
|
+
end
|
297
|
+
|
263
298
|
end
|
264
299
|
end
|
@@ -2,11 +2,19 @@ module CabooseStore
|
|
2
2
|
class ProductsController < ApplicationController
|
3
3
|
|
4
4
|
# GET /products/
|
5
|
-
def index
|
6
|
-
|
5
|
+
def index
|
6
|
+
#render :text => params
|
7
7
|
|
8
|
+
## Try to get the category
|
9
|
+
#url2 = request.fullpath.split("?")[0]
|
10
|
+
#@category = nil
|
11
|
+
#if Category.exists?(:url => url2)
|
12
|
+
# @category = Category.where(:url => url2).first
|
13
|
+
# @category = Category.find(@category.parent_id) if @category && (@category.children.nil? || @category.children.count == 0)
|
14
|
+
#end
|
15
|
+
|
8
16
|
# If looking at single item
|
9
|
-
if
|
17
|
+
if params[:id] && Product.exists?(params[:id])
|
10
18
|
@product = Product.find(params[:id])
|
11
19
|
|
12
20
|
if @product.status == 'Inactive'
|
@@ -23,8 +31,9 @@ module CabooseStore
|
|
23
31
|
end
|
24
32
|
|
25
33
|
# Otherwise looking at a category or search parameters
|
26
|
-
@pager = Caboose::
|
27
|
-
'category_id' =>
|
34
|
+
@pager = Caboose::PageBarGenerator.new(params, {
|
35
|
+
'category_id' => '',
|
36
|
+
'category_slug' => '',
|
28
37
|
'title_like' => '',
|
29
38
|
'description_like' => '',
|
30
39
|
'vendor_id' => '',
|
@@ -32,26 +41,38 @@ module CabooseStore
|
|
32
41
|
'price_lte' => '',
|
33
42
|
'sku_like' => ''
|
34
43
|
},{
|
35
|
-
'model' => 'CabooseStore::Product',
|
44
|
+
'model' => 'CabooseStore::Product',
|
36
45
|
'includes' => {
|
37
|
-
'category_id'
|
38
|
-
'
|
39
|
-
'
|
40
|
-
'
|
46
|
+
'category_id' => ['categories' , 'id' ],
|
47
|
+
'category_slug' => ['categories' , 'slug' ],
|
48
|
+
'price_gte' => ['variants' , 'price' ],
|
49
|
+
'price_lte' => ['variants' , 'price' ],
|
50
|
+
'sku_like' => ['variants' , 'sku' ]
|
41
51
|
},
|
52
|
+
'abbreviations' => {
|
53
|
+
'category_slug' => 'category',
|
54
|
+
'title_like' => 'title',
|
55
|
+
'description_like' => 'desc',
|
56
|
+
'vendor_id' => 'vid',
|
57
|
+
'sku_like' => 'sku'
|
58
|
+
},
|
42
59
|
'sort' => 'title',
|
43
60
|
'desc' => false,
|
44
|
-
'base_url' => '/products'
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
61
|
+
'base_url' => '/products',
|
62
|
+
'items_per_page' => 15,
|
63
|
+
'skip' => ['category_id']
|
64
|
+
})
|
65
|
+
|
66
|
+
@filter = SearchFilter.find_from_url(request.fullpath, @pager, ['page'])
|
67
|
+
#@pager.params['category_id'] = @filter.category_id ? @filter.category_id : ''
|
51
68
|
|
69
|
+
@pager.set_item_count
|
70
|
+
@products = @pager.items
|
71
|
+
@category = @filter.category ? Category.find(@filter.category.id) : nil
|
72
|
+
|
52
73
|
end
|
53
74
|
|
54
|
-
def show
|
75
|
+
def show
|
55
76
|
end
|
56
77
|
|
57
78
|
#=============================================================================
|
@@ -3,7 +3,7 @@ module CabooseStore
|
|
3
3
|
self.table_name = "store_categories"
|
4
4
|
|
5
5
|
belongs_to :parent, :class_name => 'Category', :foreign_key => 'parent_id'
|
6
|
-
has_many :children, :class_name => 'Category', :foreign_key => 'parent_id', :order => 'name'
|
6
|
+
has_many :children, :class_name => 'Category', :foreign_key => 'parent_id', :order => 'name'
|
7
7
|
has_many :products, :through => :category_memberships, :order => 'title'
|
8
8
|
has_many :category_memberships
|
9
9
|
has_attached_file :image,
|
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
class CabooseStore::PaymentProcessors::Base
|
3
|
+
|
4
|
+
# Gets a transaction object that obfuscates transaction info.
|
5
|
+
# Included in this info is the relay URL, which should be set to /checkout/payment-relay.
|
6
|
+
def get_authorize_transaction(order)
|
7
|
+
return {}
|
8
|
+
end
|
9
|
+
|
10
|
+
# Gets the hidden form and hidden iframe to which the form will be submitted.
|
11
|
+
# Both are shown on the /checkout/billing page.
|
12
|
+
def get_authorize_form(transaction)
|
13
|
+
return ""
|
14
|
+
end
|
15
|
+
|
16
|
+
# Handles the relay during an authorize transaction.
|
17
|
+
# Should save the transaction information if a successful authorize.
|
18
|
+
# Returns the response required to make the processor to redirect to /checkout/payment-receipt.
|
19
|
+
def authorize_relay(params)
|
20
|
+
return ""
|
21
|
+
end
|
22
|
+
|
23
|
+
# Called during the receipt of an authorize transaction.
|
24
|
+
# Returns true of false indicating whether the authorize transaction was successful.
|
25
|
+
def authorized?(params)
|
26
|
+
return false
|
27
|
+
end
|
28
|
+
|
29
|
+
# Called if authorized? returns false.
|
30
|
+
# Returns the error given by the processor.
|
31
|
+
def authorize_error(params)
|
32
|
+
return ""
|
33
|
+
end
|
34
|
+
|
35
|
+
# Captures funds for the given order.
|
36
|
+
# Returns true or false indicating the success of the transaction.
|
37
|
+
def capture(order)
|
38
|
+
return false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
@@ -1,16 +1,5 @@
|
|
1
1
|
|
2
2
|
class CabooseStore::Schema < Caboose::Utilities::Schema
|
3
|
-
|
4
|
-
def self.removed_columns
|
5
|
-
{
|
6
|
-
CabooseStore::SearchFilter => [
|
7
|
-
:option1_values,
|
8
|
-
:option2_values,
|
9
|
-
:option3_values,
|
10
|
-
:category
|
11
|
-
]
|
12
|
-
}
|
13
|
-
end
|
14
3
|
|
15
4
|
def self.schema
|
16
5
|
{
|
@@ -129,7 +118,8 @@ class CabooseStore::Schema < Caboose::Utilities::Schema
|
|
129
118
|
CabooseStore::SearchFilter => [
|
130
119
|
[ :url , :string ],
|
131
120
|
[ :title_like , :string ],
|
132
|
-
[ :
|
121
|
+
[ :category_id , :integer ],
|
122
|
+
[ :category , :text ],
|
133
123
|
[ :vendors , :text ],
|
134
124
|
[ :option1 , :text ],
|
135
125
|
[ :option2 , :text ],
|
@@ -7,7 +7,8 @@ module CabooseStore
|
|
7
7
|
attr_accessible :id,
|
8
8
|
:url,
|
9
9
|
:title_like,
|
10
|
-
:
|
10
|
+
:category_id,
|
11
|
+
:category,
|
11
12
|
:vendors,
|
12
13
|
:option1,
|
13
14
|
:option2,
|
@@ -17,41 +18,111 @@ module CabooseStore
|
|
17
18
|
before_save :json_encode
|
18
19
|
after_initialize :json_decode
|
19
20
|
|
20
|
-
def json_encode
|
21
|
-
self.
|
22
|
-
self.vendors
|
23
|
-
self.option1
|
24
|
-
self.option2
|
25
|
-
self.option3
|
26
|
-
self.prices
|
21
|
+
def json_encode
|
22
|
+
self.category = self.category.to_json if !self.category.nil?
|
23
|
+
self.vendors = self.vendors.to_json if !self.vendors.nil?
|
24
|
+
self.option1 = self.option1.to_json if !self.option1.nil?
|
25
|
+
self.option2 = self.option2.to_json if !self.option2.nil?
|
26
|
+
self.option3 = self.option3.to_json if !self.option3.nil?
|
27
|
+
self.prices = self.prices.to_json if !self.prices.nil?
|
27
28
|
end
|
28
29
|
|
29
30
|
def json_decode
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
if !self.category.nil?
|
32
|
+
cat = JSON.parse(self.category)
|
33
|
+
self.category = Caboose::StdClass.new({
|
34
|
+
'id' => cat['id'],
|
35
|
+
'name' => cat['name'],
|
36
|
+
'children' => cat['children'].collect { |cat2| Caboose::StdClass.new(cat2) }
|
37
|
+
})
|
38
|
+
end
|
39
|
+
|
40
|
+
#self.category = JSON.parse(self.category).collect{ |hash| Caboose::StdClass.new(hash) } if !self.category.nil?
|
41
|
+
self.vendors = JSON.parse(self.vendors ).collect{ |hash| Caboose::StdClass.new(hash) } if !self.vendors.nil?
|
42
|
+
self.option1 = JSON.parse(self.option1 ) if !self.option1.nil?
|
43
|
+
self.option2 = JSON.parse(self.option2 ) if !self.option2.nil?
|
44
|
+
self.option3 = JSON.parse(self.option3 ) if !self.option3.nil?
|
45
|
+
self.prices = JSON.parse self.prices if !self.prices.nil?
|
36
46
|
|
37
47
|
Caboose.log(self.option1)
|
38
48
|
end
|
39
49
|
|
40
|
-
def self.
|
50
|
+
def self.exclude_params_from_url(url, exclude_params = nil)
|
51
|
+
return url if exclude_params.nil? || exclude_params.count == 0
|
52
|
+
|
53
|
+
url2 = "#{url}"
|
54
|
+
url2[0] = '' if url2.starts_with?('/')
|
55
|
+
|
56
|
+
if Caboose.use_url_params
|
57
|
+
arr = url2.split('/')
|
58
|
+
arr2 = []
|
59
|
+
i = arr.count - 1
|
60
|
+
while i >= 1 do
|
61
|
+
k = arr[i-1]
|
62
|
+
v = arr[i]
|
63
|
+
arr2 << "#{k}/#{v}" if !exclude_params.include?(k)
|
64
|
+
i = i - 2
|
65
|
+
end
|
66
|
+
arr2 << arr[0] if i == 0
|
67
|
+
url2 = arr2.reverse.join('/')
|
68
|
+
else
|
69
|
+
# TODO: Handle removing parameters from the querystring
|
70
|
+
end
|
71
|
+
|
72
|
+
url2 = "/#{url2}" if !url2.starts_with?('/')
|
73
|
+
return url2
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.find_from_url(url, pager, exclude_params = nil)
|
77
|
+
|
78
|
+
url2 = self.exclude_params_from_url(url, exclude_params)
|
79
|
+
Caboose.log("url2 = #{url2}")
|
41
80
|
|
81
|
+
if SearchFilter.exists?(:url => url2)
|
82
|
+
return SearchFilter.where(:url => url2).first
|
83
|
+
end
|
84
|
+
|
42
85
|
f = SearchFilter.new
|
43
|
-
f.url =
|
44
|
-
|
45
|
-
url2 =
|
46
|
-
|
86
|
+
f.url = url2
|
87
|
+
|
88
|
+
url2 = url2.split("?")[0] if url2.include?('?')
|
89
|
+
parent = nil
|
90
|
+
selected_cat_id = nil
|
91
|
+
|
47
92
|
if Category.exists?(:url => url2)
|
48
93
|
parent = Category.where(:url => url2).first
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
94
|
+
f.category_id = parent.id if parent
|
95
|
+
parent = Category.find(parent.parent_id) if parent && parent.children && parent.children.count == 0
|
96
|
+
elsif pager.params['category_id'] && pager.params['category_id'] != ''
|
97
|
+
cat_id = pager.params['category_id'].kind_of?(Array) ? pager.params['category_id'][0] : pager.params['category_id']
|
98
|
+
cat = Category.find(cat_id)
|
99
|
+
parent = cat.parent
|
100
|
+
f.category_id = cat.id if !pager.params['category_id'].kind_of?(Array)
|
101
|
+
elsif pager.params['category_slug'] && pager.params['category_slug'] != ''
|
102
|
+
slug = pager.params['category_slug'].kind_of?(Array) ? pager.params['category_slug'][0] : pager.params['category_slug']
|
103
|
+
cat = Category.where(:slug => slug).first
|
104
|
+
parent = cat.parent
|
105
|
+
f.category_id = cat.id if !pager.params['category_slug'].kind_of?(Array)
|
106
|
+
end
|
107
|
+
f.category = nil
|
108
|
+
if parent && parent.children && parent.children.count > 0
|
109
|
+
f.category = {
|
110
|
+
'id' => parent.id,
|
111
|
+
'name' => parent.name,
|
112
|
+
'selected' => parent.id == f.category_id,
|
113
|
+
'children' => parent.children.collect { |cat| {
|
114
|
+
'id' => cat.id,
|
115
|
+
'name' => cat.name,
|
116
|
+
'url' => cat.url,
|
117
|
+
'selected' => cat.id == f.category_id
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
53
121
|
end
|
122
|
+
pager.params['category_id'] = f.category_id if pager.params['category_id'].nil? || pager.params['category_id'] == ''
|
54
123
|
|
124
|
+
f.title_like = pager.params['title_like'] if pager.params['title_like']
|
125
|
+
|
55
126
|
vendor_ids = []
|
56
127
|
option1 = Caboose::StdClass.new({ 'name' => [], 'values' => [] })
|
57
128
|
option2 = Caboose::StdClass.new({ 'name' => [], 'values' => [] })
|
@@ -100,7 +171,7 @@ module CabooseStore
|
|
100
171
|
end
|
101
172
|
|
102
173
|
vendor_ids = vendor_ids ? vendor_ids.compact.uniq : nil
|
103
|
-
f.vendors = vendor_ids && vendor_ids.count > 0 ? vendor_ids.collect { |vid| Vendor.find(vid) } : nil
|
174
|
+
f.vendors = vendor_ids && vendor_ids.count > 0 ? vendor_ids.collect { |vid| Vendor.find(vid) } : nil
|
104
175
|
|
105
176
|
option1.name = option1.name ? option1.name.compact.uniq : nil
|
106
177
|
option2.name = option2.name ? option2.name.compact.uniq : nil
|
@@ -117,7 +188,7 @@ module CabooseStore
|
|
117
188
|
f.prices = nil if f.prices.count == 0
|
118
189
|
|
119
190
|
f.save
|
120
|
-
return f
|
191
|
+
return SearchFilter.find(f.id)
|
121
192
|
|
122
193
|
end
|
123
194
|
|
data/config/routes.rb
CHANGED
@@ -23,13 +23,10 @@ CabooseStore::Engine.routes.draw do
|
|
23
23
|
put "/cart/:id" => "cart#update"
|
24
24
|
delete "/cart/:id" => "cart#delete"
|
25
25
|
|
26
|
-
post "/reviews/add" => "reviews#add"
|
26
|
+
post "/reviews/add" => "reviews#add"
|
27
27
|
|
28
|
-
get "/products"
|
29
|
-
get "/products
|
30
|
-
get "/products/:id/:id2" => "products#index"
|
31
|
-
get "/products/:id/:id2/:id3" => "products#index"
|
32
|
-
get "/products/:id/:id2/:id3/:id4" => "products#index"
|
28
|
+
get "/products/:id" => "products#index", :constraints => {:id => /.*/}
|
29
|
+
get "/products" => "products#index"
|
33
30
|
|
34
31
|
get "/admin/products" => "products#admin_index"
|
35
32
|
get "/admin/products/new" => "products#admin_new"
|
data/lib/caboose-store.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
require "caboose-store/engine"
|
2
2
|
|
3
3
|
module CabooseStore
|
4
|
-
|
5
|
-
#
|
6
|
-
|
4
|
+
|
5
|
+
# The credit card payment processor.
|
6
|
+
# Must extend from CabooseStore::PaymentProcessors::Base
|
7
|
+
mattr_accessor :payment_processor
|
8
|
+
@@payment_processor = "CabooseStore::PaymentProcessors::Authorizenet"
|
7
9
|
|
8
10
|
end
|
9
11
|
|
data/lib/caboose-store/engine.rb
CHANGED
@@ -4,5 +4,45 @@ require 'caboose'
|
|
4
4
|
module CabooseStore
|
5
5
|
class Engine < ::Rails::Engine
|
6
6
|
isolate_namespace CabooseStore
|
7
|
+
initializer 'caboose_store.assets.precompile' do |app|
|
8
|
+
app.config.assets.precompile += [
|
9
|
+
# Images
|
10
|
+
'caboose_store/caboose_logo_small.png',
|
11
|
+
'caboose_store/caboose_nav_black.png',
|
12
|
+
'caboose_store/caboose_nav.png',
|
13
|
+
'caboose_store/default_user_pic.png',
|
14
|
+
'caboose_store/loading_green.gif',
|
15
|
+
'caboose_store/loading_small_white_on_black.gif',
|
16
|
+
'caboose_store/loading_white_on_black.gif',
|
17
|
+
# Javascript
|
18
|
+
'caboose_store/admin_products.js',
|
19
|
+
'caboose_store/admin.js',
|
20
|
+
'caboose_store/application.js',
|
21
|
+
'caboose_store/modal_integration.js',
|
22
|
+
'caboose_store/modal.js',
|
23
|
+
'caboose_store/model.form.page.js',
|
24
|
+
'caboose_store/model.form.user.js',
|
25
|
+
'caboose_store/shortcut.js',
|
26
|
+
'caboose_store/station.js',
|
27
|
+
# CSS
|
28
|
+
'caboose_store/admin_products.css',
|
29
|
+
'caboose_store/admin.css',
|
30
|
+
'caboose_store/application.css',
|
31
|
+
'caboose_store/bound_input.css',
|
32
|
+
'caboose_store/caboose.css',
|
33
|
+
'caboose_store/fonts/big_noodle_titling_oblique.ttf',
|
34
|
+
'caboose_store/fonts/big_noodle_titling.ttf',
|
35
|
+
'caboose_store/fonts.css',
|
36
|
+
'caboose_store/login.css',
|
37
|
+
'caboose_store/modal.css',
|
38
|
+
'caboose_store/page_bar_generator.css',
|
39
|
+
'caboose_store/register.css',
|
40
|
+
'caboose_store/station_modal.css',
|
41
|
+
'caboose_store/station_sidebar.css',
|
42
|
+
'caboose_store/tinymce.css'
|
43
|
+
]
|
44
|
+
end
|
7
45
|
end
|
8
46
|
end
|
47
|
+
|
48
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: caboose-cms
|
@@ -45,6 +45,9 @@ files:
|
|
45
45
|
- app/assets/javascripts/caboose_store/modal_integration.js
|
46
46
|
- app/assets/javascripts/caboose_store/model.form.page.js
|
47
47
|
- app/assets/javascripts/caboose_store/model.form.user.js
|
48
|
+
- app/assets/javascripts/caboose_store/payment_processors/authorizenet.js
|
49
|
+
- app/assets/javascripts/caboose_store/payment_processors/base.js
|
50
|
+
- app/assets/javascripts/caboose_store/payment_processors/payscape.js
|
48
51
|
- app/assets/javascripts/caboose_store/shortcut.js
|
49
52
|
- app/assets/javascripts/caboose_store/station.js
|
50
53
|
- app/assets/stylesheets/caboose_store/admin.css
|
@@ -86,6 +89,9 @@ files:
|
|
86
89
|
- app/models/caboose_store/order_discount.rb
|
87
90
|
- app/models/caboose_store/order_line_item.rb
|
88
91
|
- app/models/caboose_store/order_pdf.rb
|
92
|
+
- app/models/caboose_store/payment_processors/authorizenet.rb
|
93
|
+
- app/models/caboose_store/payment_processors/base.rb
|
94
|
+
- app/models/caboose_store/payment_processors/payscape.rb
|
89
95
|
- app/models/caboose_store/product.rb
|
90
96
|
- app/models/caboose_store/product_image.rb
|
91
97
|
- app/models/caboose_store/product_image_variant.rb
|