rightnow_oms 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/CHANGELOG +12 -0
  2. data/README.md +145 -66
  3. data/app/assets/javascripts/rightnow_oms/app/app.js.coffee +12 -4
  4. data/app/assets/javascripts/rightnow_oms/app/controllers/cart.js.coffee +17 -32
  5. data/app/assets/javascripts/rightnow_oms/app/models/cart.js.coffee +50 -28
  6. data/app/assets/javascripts/rightnow_oms/app/models/cart_item.js.coffee +28 -49
  7. data/app/assets/javascripts/rightnow_oms/app/templates/cart_items/show.handlebars +30 -0
  8. data/app/assets/javascripts/rightnow_oms/app/templates/cart_items/{show_in_detail.hjs → show_in_detail.handlebars} +3 -3
  9. data/app/assets/javascripts/rightnow_oms/app/templates/carts/{show.hjs → show.handlebars} +4 -3
  10. data/app/assets/javascripts/rightnow_oms/app/templates/carts/show_cartable_count.handlebars +2 -0
  11. data/app/assets/javascripts/rightnow_oms/app/templates/carts/show_in_detail.handlebars +30 -0
  12. data/app/assets/javascripts/rightnow_oms/app/views/cart_items/show_in_detail.js.coffee +4 -1
  13. data/app/assets/javascripts/rightnow_oms/application.js.coffee +10 -0
  14. data/app/assets/javascripts/rightnow_oms/cart_items.js +10 -0
  15. data/app/assets/javascripts/rightnow_oms/config/app.js.coffee +5 -0
  16. data/app/assets/javascripts/rightnow_oms/config/locales/en.js.coffee +24 -0
  17. data/app/assets/javascripts/rightnow_oms/config/locales/zh_CN.js.coffee +24 -0
  18. data/app/assets/javascripts/rightnow_oms/lib/ember/data/my_rest_adapter.js.coffee +2 -167
  19. data/app/assets/javascripts/rightnow_oms/vendor/cldr.js +240 -0
  20. data/app/assets/javascripts/rightnow_oms/vendor/ember-data.js +1530 -587
  21. data/app/assets/javascripts/rightnow_oms/vendor/ember-data.min.js +1 -1
  22. data/app/assets/javascripts/rightnow_oms/vendor/ember-i18n.js +123 -0
  23. data/app/assets/javascripts/rightnow_oms/vendor/{ember-0.9.5.js → ember.js} +1584 -928
  24. data/app/assets/javascripts/rightnow_oms/vendor/ember.min.js +5 -5
  25. data/app/assets/stylesheets/rightnow_oms/carts.css.scss +93 -85
  26. data/app/controllers/rightnow_oms/cart_items_controller.rb +2 -2
  27. data/app/controllers/rightnow_oms/orders_controller.rb +27 -5
  28. data/app/models/rightnow_oms/cart.rb +1 -0
  29. data/app/models/rightnow_oms/cart_item.rb +1 -0
  30. data/app/models/rightnow_oms/order.rb +26 -2
  31. data/app/views/rightnow_oms/cart_items/_list.html.haml +24 -0
  32. data/app/views/rightnow_oms/orders/show.html.haml +2 -0
  33. data/config/initializers/rightnow_oms.rb +4 -0
  34. data/config/initializers/validates_timeliness.rb +40 -0
  35. data/config/locales/validates_timeliness.en.yml +16 -0
  36. data/config/locales/validates_timeliness.zh-CN.yml +16 -0
  37. data/db/migrate/20120224051751_add_required_arrival_time_to_rightnow_oms_orders.rb +6 -0
  38. data/db/migrate/20120302085200_add_tastes_to_rightnow_oms_order_items.rb +6 -0
  39. data/lib/rightnow_oms.rb +5 -1
  40. data/lib/rightnow_oms/controller_extension.rb +33 -0
  41. data/lib/rightnow_oms/controller_helpers.rb +4 -21
  42. data/lib/rightnow_oms/version.rb +1 -1
  43. metadata +71 -35
  44. data/app/assets/javascripts/rightnow_oms/app/templates/cart_items/show.hjs +0 -23
  45. data/app/assets/javascripts/rightnow_oms/app/templates/carts/show_cartable_count.hjs +0 -1
  46. data/app/assets/javascripts/rightnow_oms/app/templates/carts/show_in_detail.hjs +0 -27
  47. data/app/assets/javascripts/rightnow_oms/application.js +0 -8
@@ -0,0 +1,16 @@
1
+ en:
2
+ errors:
3
+ messages:
4
+ invalid_date: "is not a valid date"
5
+ invalid_time: "is not a valid time"
6
+ invalid_datetime: "is not a valid datetime"
7
+ is_at: "must be at %{restriction}"
8
+ before: "must be before %{restriction}"
9
+ on_or_before: "must be on or before %{restriction}"
10
+ after: "must be after %{restriction}"
11
+ on_or_after: "must be on or after %{restriction}"
12
+ validates_timeliness:
13
+ error_value_formats:
14
+ date: '%Y-%m-%d'
15
+ time: '%H:%M:%S'
16
+ datetime: '%Y-%m-%d %H:%M:%S'
@@ -0,0 +1,16 @@
1
+ 'zh-CN':
2
+ errors:
3
+ messages:
4
+ invalid_date: "不是有效的日期"
5
+ invalid_time: "不是有效的时间"
6
+ invalid_datetime: "不是有效的日期时间"
7
+ is_at: "必须正好在%{restriction}"
8
+ before: "必须在%{restriction}之前"
9
+ on_or_before: "必须正好或在%{restriction}之前"
10
+ after: "必须在%{restriction}之后"
11
+ on_or_after: "必须正好或在%{restriction}之后"
12
+ validates_timeliness:
13
+ error_value_formats:
14
+ date: '%Y-%m-%d'
15
+ time: '%H:%M:%S'
16
+ datetime: '%Y-%m-%d %H:%M:%S'
@@ -0,0 +1,6 @@
1
+ class AddRequiredArrivalTimeToRightnowOmsOrders < ActiveRecord::Migration
2
+ def change
3
+ add_column :rightnow_oms_orders, :required_arrival_time, :timestamp
4
+
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddTastesToRightnowOmsOrderItems < ActiveRecord::Migration
2
+ def change
3
+ add_column :rightnow_oms_order_items, :tastes, :string
4
+
5
+ end
6
+ end
@@ -1,9 +1,11 @@
1
1
  require 'acts_as_api'
2
2
  require 'confstruct'
3
+ require 'validates_timeliness'
3
4
 
4
5
  require 'rightnow_oms/engine'
5
6
  require 'rightnow_oms/cartable_validator'
6
7
  require 'rightnow_oms/acts_as_cartable'
8
+ require 'rightnow_oms/controller_extension'
7
9
  require 'rightnow_oms/controller_helpers'
8
10
  require 'rightnow_oms/order_no_generator'
9
11
 
@@ -20,4 +22,6 @@ module RightnowOms
20
22
  end
21
23
 
22
24
  ActiveRecord::Base.extend(RightnowOms::ActsAsCartable)
23
- ActionController::Base.send(:include, RightnowOms::ControllerHelpers)
25
+ ActionController::Base.send(:include, RightnowOms::ControllerExtension)
26
+ ActionController::Base.send(:helper, RightnowOms::ControllerHelpers)
27
+ ActionController::Base.send(:helper, RightnowOms::Engine.helpers)
@@ -0,0 +1,33 @@
1
+ module RightnowOms
2
+ module ControllerExtension
3
+ extend ActiveSupport::Concern
4
+
5
+ def has_cart?
6
+ !@cart.nil?
7
+ end
8
+
9
+ def remove_null_params(data = params)
10
+ data.each do |k, v|
11
+ remove_null_params(v) if v.is_a? Hash
12
+ data.delete(k) if v == 'null'
13
+ end
14
+ end
15
+
16
+ def load_cart(key = nil)
17
+ key ||= :current_cart_id
18
+ @cart = RightnowOms::Cart.find_by_id(session[key])
19
+ end
20
+
21
+ def load_or_create_cart(name = nil)
22
+ key = name ? "#{name}_cart_id".to_sym : :current_cart_id
23
+ load_cart key
24
+
25
+ unless has_cart?
26
+ @cart = RightnowOms::Cart.create
27
+ end
28
+
29
+ session[:current_cart_id] = session[key] = @cart.id
30
+ end
31
+
32
+ end
33
+ end
@@ -1,28 +1,11 @@
1
1
  module RightnowOms
2
2
  module ControllerHelpers
3
- extend ActiveSupport::Concern
4
-
5
- def has_cart?
6
- !@cart.nil?
7
- end
8
-
9
- def load_or_create_cart
10
- load_cart
11
-
12
- unless has_cart?
13
- @cart = RightnowOms::Cart.create! and session[:cart_id] = @cart.id
14
- end
15
- end
16
-
17
- def load_cart
18
- @cart = RightnowOms::Cart.find_by_id(session[:cart_id])
3
+ def current_cart
4
+ @cart
19
5
  end
20
6
 
21
- def remove_null_params(data = params)
22
- data.each do |k, v|
23
- remove_null_params(v) if v.is_a? Hash
24
- data.delete(k) if v == 'null'
25
- end
7
+ def list_items(items)
8
+ render partial: "rightnow_oms/cart_items/list", locals: { items: items }
26
9
  end
27
10
  end
28
11
  end
@@ -1,3 +1,3 @@
1
1
  module RightnowOms
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rightnow_oms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,96 +9,118 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-22 00:00:00.000000000 Z
12
+ date: 2012-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &17779620 !ruby/object:Gem::Requirement
16
+ requirement: &6485080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: '3.1'
21
+ version: 3.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *17779620
24
+ version_requirements: *6485080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &15954100 !ruby/object:Gem::Requirement
27
+ requirement: &6524660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 1.0.19
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *15954100
35
+ version_requirements: *6524660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: coffee-rails
38
- requirement: &15834820 !ruby/object:Gem::Requirement
38
+ requirement: &6534900 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
- version: '0'
43
+ version: 3.1.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *15834820
46
+ version_requirements: *6534900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sass-rails
49
- requirement: &15833020 !ruby/object:Gem::Requirement
49
+ requirement: &6532120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 3.1.5
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *15833020
57
+ version_requirements: *6532120
58
+ - !ruby/object:Gem::Dependency
59
+ name: validates_timeliness
60
+ requirement: &6530220 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 3.0.2
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *6530220
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: acts_as_api
60
- requirement: &15848500 !ruby/object:Gem::Requirement
71
+ requirement: &6528740 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
64
75
  - !ruby/object:Gem::Version
65
- version: '0'
76
+ version: 0.3.11
66
77
  type: :runtime
67
78
  prerelease: false
68
- version_requirements: *15848500
79
+ version_requirements: *6528740
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: ember-rails
71
- requirement: &15847660 !ruby/object:Gem::Requirement
82
+ requirement: &6550780 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
75
86
  - !ruby/object:Gem::Version
76
- version: '0'
87
+ version: 0.2.4
77
88
  type: :runtime
78
89
  prerelease: false
79
- version_requirements: *15847660
90
+ version_requirements: *6550780
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: haml-rails
82
- requirement: &15846940 !ruby/object:Gem::Requirement
93
+ requirement: &6546980 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ! '>='
86
97
  - !ruby/object:Gem::Version
87
- version: '0'
98
+ version: 0.3.4
88
99
  type: :runtime
89
100
  prerelease: false
90
- version_requirements: *15846940
101
+ version_requirements: *6546980
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: confstruct
93
- requirement: &15845720 !ruby/object:Gem::Requirement
104
+ requirement: &6544440 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.2.2
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *6544440
113
+ - !ruby/object:Gem::Dependency
114
+ name: ransack
115
+ requirement: &6543620 !ruby/object:Gem::Requirement
94
116
  none: false
95
117
  requirements:
96
118
  - - ! '>='
97
119
  - !ruby/object:Gem::Version
98
- version: '0'
120
+ version: 0.6.0
99
121
  type: :runtime
100
122
  prerelease: false
101
- version_requirements: *15845720
123
+ version_requirements: *6543620
102
124
  description: A common mountable engine can be used to manage the orders.
103
125
  email:
104
126
  - towerhe@gmail.com
@@ -118,20 +140,22 @@ files:
118
140
  - app/assets/stylesheets/rightnow_oms/carts.css.scss
119
141
  - app/assets/stylesheets/rightnow_oms/orders.css.scss
120
142
  - app/assets/images/rightnow_oms/cart.png
121
- - app/assets/javascripts/rightnow_oms/application.js
122
143
  - app/assets/javascripts/rightnow_oms/vendor/ember-data.min.js
123
144
  - app/assets/javascripts/rightnow_oms/vendor/ember-data.js
124
- - app/assets/javascripts/rightnow_oms/vendor/ember-0.9.5.js
145
+ - app/assets/javascripts/rightnow_oms/vendor/ember.js
146
+ - app/assets/javascripts/rightnow_oms/vendor/ember-i18n.js
147
+ - app/assets/javascripts/rightnow_oms/vendor/cldr.js
125
148
  - app/assets/javascripts/rightnow_oms/vendor/ember.min.js
126
149
  - app/assets/javascripts/rightnow_oms/lib/utils.js.coffee
127
150
  - app/assets/javascripts/rightnow_oms/lib/ember/data/types.js.coffee
128
151
  - app/assets/javascripts/rightnow_oms/lib/ember/data/extensions.js
129
152
  - app/assets/javascripts/rightnow_oms/lib/ember/data/my_rest_adapter.js.coffee
130
- - app/assets/javascripts/rightnow_oms/app/templates/cart_items/show.hjs
131
- - app/assets/javascripts/rightnow_oms/app/templates/cart_items/show_in_detail.hjs
132
- - app/assets/javascripts/rightnow_oms/app/templates/carts/show.hjs
133
- - app/assets/javascripts/rightnow_oms/app/templates/carts/show_cartable_count.hjs
134
- - app/assets/javascripts/rightnow_oms/app/templates/carts/show_in_detail.hjs
153
+ - app/assets/javascripts/rightnow_oms/application.js.coffee
154
+ - app/assets/javascripts/rightnow_oms/app/templates/cart_items/show.handlebars
155
+ - app/assets/javascripts/rightnow_oms/app/templates/cart_items/show_in_detail.handlebars
156
+ - app/assets/javascripts/rightnow_oms/app/templates/carts/show_cartable_count.handlebars
157
+ - app/assets/javascripts/rightnow_oms/app/templates/carts/show.handlebars
158
+ - app/assets/javascripts/rightnow_oms/app/templates/carts/show_in_detail.handlebars
135
159
  - app/assets/javascripts/rightnow_oms/app/app.js.coffee
136
160
  - app/assets/javascripts/rightnow_oms/app/controllers/cart.js.coffee
137
161
  - app/assets/javascripts/rightnow_oms/app/models/cart.js.coffee
@@ -141,9 +165,19 @@ files:
141
165
  - app/assets/javascripts/rightnow_oms/app/views/carts/show_in_detail.js.coffee
142
166
  - app/assets/javascripts/rightnow_oms/app/views/carts/show.js.coffee
143
167
  - app/assets/javascripts/rightnow_oms/app/views/carts/show_cartable_count.js.coffee
168
+ - app/assets/javascripts/rightnow_oms/cart_items.js
169
+ - app/assets/javascripts/rightnow_oms/config/app.js.coffee
170
+ - app/assets/javascripts/rightnow_oms/config/locales/zh_CN.js.coffee
171
+ - app/assets/javascripts/rightnow_oms/config/locales/en.js.coffee
144
172
  - app/views/rightnow_oms/orders/show.html.haml
173
+ - app/views/rightnow_oms/cart_items/_list.html.haml
145
174
  - app/views/rightnow_oms/carts/show.html.haml
175
+ - config/locales/validates_timeliness.zh-CN.yml
176
+ - config/locales/validates_timeliness.en.yml
177
+ - config/initializers/rightnow_oms.rb
178
+ - config/initializers/validates_timeliness.rb
146
179
  - config/routes.rb
180
+ - db/migrate/20120224051751_add_required_arrival_time_to_rightnow_oms_orders.rb
147
181
  - db/migrate/20120202104431_create_rightnow_oms_carts.rb
148
182
  - db/migrate/20120207085551_add_group_to_rightnow_oms_cart_items.rb
149
183
  - db/migrate/20120207095146_add_parent_id_to_rightnow_oms_cart_items.rb
@@ -151,11 +185,13 @@ files:
151
185
  - db/migrate/20120203045059_create_rightnow_oms_cart_items.rb
152
186
  - db/migrate/20120217081138_add_base_quantity_to_rightnow_oms_cart_items.rb
153
187
  - db/migrate/20120214074943_create_rightnow_oms_orders.rb
188
+ - db/migrate/20120302085200_add_tastes_to_rightnow_oms_order_items.rb
154
189
  - db/migrate/20120214081113_create_rightnow_oms_order_items.rb
155
190
  - lib/rightnow_oms.rb
156
191
  - lib/rightnow_oms/controller_helpers.rb
157
192
  - lib/rightnow_oms/acts_as_cartable.rb
158
193
  - lib/rightnow_oms/order_no_generator.rb
194
+ - lib/rightnow_oms/controller_extension.rb
159
195
  - lib/rightnow_oms/engine.rb
160
196
  - lib/rightnow_oms/version.rb
161
197
  - lib/rightnow_oms/cartable_validator.rb
@@ -177,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
213
  version: '0'
178
214
  segments:
179
215
  - 0
180
- hash: -1275997018015637822
216
+ hash: 1453687471519212132
181
217
  required_rubygems_version: !ruby/object:Gem::Requirement
182
218
  none: false
183
219
  requirements:
@@ -186,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
222
  version: '0'
187
223
  segments:
188
224
  - 0
189
- hash: -1275997018015637822
225
+ hash: 1453687471519212132
190
226
  requirements: []
191
227
  rubyforge_project:
192
228
  rubygems_version: 1.8.10
@@ -1,23 +0,0 @@
1
- {{#unless cartItem.hasParent }}
2
- <dt>
3
- <ul>
4
- <li class="name" {{ action "toggleChildren" }}>{{ cartItem.name }}</li>
5
- <li class="price r-money">¥{{ cartItem.priceString }}x{{ cartItem.quantity }}</li>
6
- <li class="delete">
7
- <a href="#" {{ action "deleteRecord" }}>删除</a>
8
- </li>
9
- <ul>
10
- </dt>
11
- {{#if isChildrenHidden}}
12
- {{#if cartItem.hasChildren}}
13
- <dd>
14
- {{#each cartItem.children }}
15
- <ul class='child'>
16
- <li class="name">{{ name }}</li>
17
- <li class="price r-money">¥{{ priceString }}x{{ quantity }}</li>
18
- </ul>
19
- {{/each}}
20
- </dd>
21
- {{/if}}
22
- {{/if}}
23
- {{/unless}}
@@ -1 +0,0 @@
1
- <a href="/rightnow_oms/cart">购物车 {{ cartableCount }} 件</a>
@@ -1,27 +0,0 @@
1
- <h2>我的购物车</h2>
2
- <div class="r-cart-items">
3
- <ul class='title'>
4
- <li class="name">名称</li>
5
- <li class="others">
6
- <div class="price">价格</div>
7
- <div class="quantity">数量</div>
8
- <div class="subtotal">小计</div>
9
- <div class="delete"></div>
10
- </li>
11
- </ul>
12
- <div class='r-clear'></div>
13
- {{#each cart.cartItems}}
14
- {{ view RightnowOms.ShowCartItemInDetailView cartItemBinding="this" }}
15
- {{/each}}
16
- <div class='r-clear'></div>
17
- </div>
18
- <div class="r-bottom-bar">
19
- <div class="left-conner">
20
- <span class="r-cleanup-cart"><a href="#" {{ action cleanUp }}>清空购物车</a></span>
21
- </div>
22
- <div class="right-conner">
23
- <span>总价:<span class="r-money">¥{{ cart.total }}</span></span>
24
- <span class="r-continue-to-shop"><a href="/"><< 继续购物</a></span>
25
- <span class="r-checkout"><a {{ bindAttr href="newOrderUrl" }}>去结算 >></a></span>
26
- </div>
27
- </div>
@@ -1,8 +0,0 @@
1
- //= require_tree ./lib
2
- //
3
- //= require ./app/app
4
- //= require ./app/models/cart_item
5
- //= require ./app/models/cart
6
- //= require_tree ./app/controllers
7
- //= require_tree ./app/views
8
- //= require_tree ./app/templates