cloudrider 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/cloudrider.gemspec +0 -3
- data/generica/app/assets/javascripts/adapters/admin/taxon.js.em +2 -0
- data/generica/app/assets/javascripts/components/hero-splash.js.em +1 -15
- data/generica/app/assets/javascripts/components/products-showcase.js.em +6 -0
- data/generica/app/assets/javascripts/components/select-locale.js.em +2 -2
- data/generica/app/assets/javascripts/components/tr-span.js.em +1 -0
- data/generica/app/assets/javascripts/components/tree/taxon-li.js.em +27 -2
- data/generica/app/assets/javascripts/components/tree/taxon-wrapper.js.em +5 -18
- data/generica/app/assets/javascripts/config/i18n-translations.js.ls +6 -2
- data/generica/app/assets/javascripts/config/router.js.ls +4 -1
- data/generica/app/assets/javascripts/controllers/admin/messages/index_controller.js.em +10 -0
- data/generica/app/assets/javascripts/controllers/admin/product/edit_controller.js.em +10 -1
- data/generica/app/assets/javascripts/controllers/admin/products/new_controller.js.em +6 -0
- data/generica/app/assets/javascripts/controllers/admin/taxon/edit_controller.js.em +17 -0
- data/generica/app/assets/javascripts/controllers/admin/taxons/new_controller.js.em +25 -0
- data/generica/app/assets/javascripts/controllers/messages/new_controller.js.em +16 -0
- data/generica/app/assets/javascripts/controllers/products/index_controller.js.em +5 -8
- data/generica/app/assets/javascripts/helpers/hash_ex.js.ls +6 -0
- data/generica/app/assets/javascripts/helpers/string_ex.js.ls +1 -1
- data/generica/app/assets/javascripts/models/admin/product.js.em +2 -0
- data/generica/app/assets/javascripts/models/admin/taxon.js.em +4 -1
- data/generica/app/assets/javascripts/models/message.js.em +7 -0
- data/generica/app/assets/javascripts/models/product.js.em +7 -2
- data/generica/app/assets/javascripts/models/taxon.js.em +3 -5
- data/generica/app/assets/javascripts/routes/admin/messages/index_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/admin/taxon_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/taxons/index_route.js.em +1 -1
- data/generica/app/assets/javascripts/routes/admin/taxons/new_route.js.em +2 -0
- data/generica/app/assets/javascripts/routes/index_route.js.em +3 -2
- data/generica/app/assets/javascripts/routes/products/index_route.js.em +1 -1
- data/generica/app/assets/javascripts/templates/admin.emblem +17 -5
- data/generica/app/assets/javascripts/templates/admin/messages/index.emblem +19 -0
- data/generica/app/assets/javascripts/templates/admin/messages/slice.emblem +12 -0
- data/generica/app/assets/javascripts/templates/admin/product/edit.emblem +23 -6
- data/generica/app/assets/javascripts/templates/admin/products/new.emblem +17 -0
- data/generica/app/assets/javascripts/templates/admin/products/slice.emblem +6 -1
- data/generica/app/assets/javascripts/templates/admin/taxon/edit.emblem +36 -0
- data/generica/app/assets/javascripts/templates/admin/taxons/index.emblem +1 -1
- data/generica/app/assets/javascripts/templates/admin/taxons/new.emblem +40 -0
- data/generica/app/assets/javascripts/templates/admin/translations/index.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/product-display.emblem +4 -0
- data/generica/app/assets/javascripts/templates/components/product-listing.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/search-and-filter.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/site-nav/_top-nav.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/table-booths.emblem +3 -65
- data/generica/app/assets/javascripts/templates/components/tree-taxon-li.emblem +11 -3
- data/generica/app/assets/javascripts/templates/components/tree-taxon-ul.emblem +6 -7
- data/generica/app/assets/javascripts/templates/components/tree-taxon-wrapper.emblem +2 -2
- data/generica/app/assets/javascripts/templates/employees/index.emblem +32 -0
- data/generica/app/assets/javascripts/templates/index.emblem +2 -1
- data/generica/app/assets/javascripts/templates/messages/new.emblem +43 -0
- data/generica/app/assets/javascripts/templates/products/product/show.emblem +8 -0
- data/generica/app/assets/javascripts/transforms/form_data_transformer.js.ls +4 -0
- data/generica/app/assets/stylesheets/apiv1/_admin.css.scss +1 -0
- data/generica/app/assets/stylesheets/apiv1/admin/messages/_index.css.scss +34 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-display.css.scss +24 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-listing.css.scss +27 -2
- data/generica/app/assets/stylesheets/apiv1/components/_table-booths.css.scss +10 -0
- data/generica/app/assets/stylesheets/apiv1/components/_tree-taxon-wrapper.css.scss +37 -22
- data/generica/app/assets/stylesheets/apiv1/products/product/_show.css.scss +24 -0
- data/generica/app/assets/stylesheets/apiv1/shared/_constants.css.scss +2 -2
- data/generica/app/controllers/admin/taxons/create_controller.rb +26 -0
- data/generica/app/controllers/apiv1/i18n_translations/index_controller.rb +9 -5
- data/generica/app/controllers/apiv1/messages/create_controller.rb +17 -0
- data/generica/app/controllers/apiv1/messages/index_controller.rb +18 -0
- data/generica/app/controllers/apiv1/products/index_controller.rb +1 -1
- data/generica/app/controllers/apiv1/taxons/destroy_controller.rb +9 -0
- data/generica/app/controllers/apiv1/taxons/index_controller.rb +1 -0
- data/generica/app/controllers/apiv1/taxons/update_controller.rb +28 -0
- data/generica/app/controllers/apiv1/translations/create_controller.rb +5 -4
- data/generica/app/controllers/apiv1/translations/update_controller.rb +2 -2
- data/generica/app/models/admin/product_modifier.rb +16 -3
- data/generica/app/models/admin/taxon_factory.rb +23 -0
- data/generica/app/models/admin/taxon_relationships_factory.rb +32 -0
- data/generica/app/models/apiv1/employee.rb +1 -2
- data/generica/app/models/apiv1/message.rb +24 -0
- data/generica/app/models/apiv1/messages_machine.rb +31 -0
- data/generica/app/models/apiv1/product.rb +33 -13
- data/generica/app/models/apiv1/products_machine.rb +9 -1
- data/generica/app/models/apiv1/taxon.rb +8 -2
- data/generica/app/models/apiv1/translation.rb +73 -14
- data/generica/app/models/i18n/backend/active_record.rb +49 -0
- data/generica/app/varissets/javascripts/templates/components/introductory-lobby.emblem.erb +15 -1
- data/generica/app/varissets/javascripts/templates/components/table-booths.emblem.erb +39 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_introductory-lobby.css.scss.erb +15 -1
- data/generica/app/varissets/stylesheets/apiv1/components/_table-booths.css.scss.erb +71 -0
- data/generica/config/initializers/i18n_backend.rb +7 -0
- data/generica/config/routes.rb +5 -2
- data/generica/db/migrate/20141010215459_create_apiv1_translations.rb +3 -1
- data/generica/db/migrate/20141105231548_add_showcase_priority_to_apiv1_products.rb +5 -0
- data/generica/db/migrate/20141107174821_create_apiv1_messages.rb +12 -0
- data/generica/db/schema.rb +11 -16
- data/generica/lib/tasks/production.rake +2 -1
- data/generica/spec/controllers/admin/taxons/create_controller_spec.rb +44 -0
- data/generica/spec/controllers/apiv1/messages/index_controller_spec.rb +5 -0
- data/generica/spec/controllers/apiv1/taxons/index_controller_spec.rb +59 -0
- data/generica/spec/controllers/apiv1/taxons/update_controller_spec.rb +54 -0
- data/generica/spec/controllers/apiv1/translations/create_controller_spec.rb +50 -0
- data/generica/spec/controllers/apiv1/translations/update_controller_spec.rb +54 -0
- data/generica/spec/factories/apiv1/product_factory.rb +12 -11
- data/generica/spec/models/admin/product_modifier_spec.rb +32 -0
- data/generica/spec/models/admin/taxon_relationships_factory_spec.rb +49 -0
- data/generica/spec/models/apiv1/message_spec.rb +16 -0
- data/generica/spec/models/apiv1/product_spec.rb +13 -12
- data/generica/spec/models/apiv1/translation_spec.rb +41 -0
- data/generica/spec/models/i18n/backend/active_record_spec.rb +27 -0
- data/lib/cloudrider/apiv1/base.rb +4 -4
- data/lib/cloudrider/apiv1/introductory_lobby_component.rb +1 -0
- data/lib/cloudrider/apiv1/introductory_lobby_sass.rb +9 -0
- data/lib/cloudrider/apiv1/table_booths_component.rb +6 -0
- data/lib/cloudrider/master_context.rb +105 -0
- data/lib/cloudrider/version.rb +1 -1
- metadata +43 -31
- data/generica/app/assets/javascripts/components/products-showcase.js.ls +0 -5
- data/generica/config/locales/ar.yml +0 -78
- data/generica/config/locales/ca.yml +0 -78
- data/generica/config/locales/cs.yml +0 -78
- data/generica/config/locales/da.yml +0 -78
- data/generica/config/locales/de.yml +0 -78
- data/generica/config/locales/el.yml +0 -78
- data/generica/config/locales/en.yml +0 -78
- data/generica/config/locales/es.yml +0 -78
- data/generica/config/locales/fi.yml +0 -78
- data/generica/config/locales/fr.yml +0 -78
- data/generica/config/locales/hu.yml +0 -78
- data/generica/config/locales/id.yml +0 -78
- data/generica/config/locales/is.yml +0 -78
- data/generica/config/locales/it.yml +0 -78
- data/generica/config/locales/ja.yml +0 -78
- data/generica/config/locales/ko.yml +0 -78
- data/generica/config/locales/ms.yml +0 -78
- data/generica/config/locales/nl.yml +0 -78
- data/generica/config/locales/no.yml +0 -78
- data/generica/config/locales/pl.yml +0 -78
- data/generica/config/locales/pt.yml +0 -78
- data/generica/config/locales/ru.yml +0 -78
- data/generica/config/locales/sv.yml +0 -78
- data/generica/config/locales/th.yml +0 -78
- data/generica/config/locales/tr.yml +0 -78
- data/generica/config/locales/zh-CN.yml +0 -78
- data/generica/config/locales/zh-TW.yml +0 -78
- data/lib/cloudrider/file_orders_maker.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8089b05ad8f64c7e4231319c59277a353bb9c072
|
4
|
+
data.tar.gz: 3ff73833851a4ef90e8fbe2ec65cc5a587102852
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bff68fc4f0b417ed0453239b886af096d3fd776197c5d592e94cd29b08cc88690809e7e87db07a2bf77ade75f0d8fd015c2f4e7897dc188e9f4fb9fa03b8f33c
|
7
|
+
data.tar.gz: 21db8a52a1ef9f4848c6232a6ae29c4db346fcaab124ae293bfe443bb2d0b5601c48152aaf0226536d41d304bfe9806982da07b56a8520ad4e337950343addea
|
data/README.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
# Cloudrider
|
2
2
|
|
3
|
-
TODO:
|
3
|
+
FUTURE TODO:
|
4
|
+
switch I18n translations to a key-value storage basis with a redis cluster
|
5
|
+
|
6
|
+
Questions that lead to building a website
|
7
|
+
1. What is your company's name
|
8
|
+
2. Give me some taglines / slogans for your company
|
9
|
+
3. Tell me about your company
|
10
|
+
4. How would a customer contact your company?
|
11
|
+
5. Give me some showcase pictures of your company
|
12
|
+
|
13
|
+
|
4
14
|
|
5
15
|
## Installation
|
6
16
|
|
data/cloudrider.gemspec
CHANGED
@@ -24,7 +24,4 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency "functional_support", '>=0.0.12'
|
25
25
|
spec.add_dependency "tilt", ">=1.4"
|
26
26
|
spec.add_dependency "activesupport", '>=3'
|
27
|
-
# spec.add_dependency "actionpack", '>=3'
|
28
|
-
# spec.add_dependency "actionview", '>=3'
|
29
|
-
# spec.add_dependency "mime-types", ">=1.25.1"
|
30
27
|
end
|
@@ -1,17 +1,3 @@
|
|
1
1
|
class Apiv1.HeroSplashComponent extends Ember.Component
|
2
|
-
|
3
|
-
"fluid-by-tall",
|
4
|
-
"fluid-by-short",
|
5
|
-
"fluid-by-sliver",
|
6
|
-
"contained-by-tall",
|
7
|
-
"contained-by-short",
|
8
|
-
"contained-by-sliver"
|
9
|
-
]
|
10
|
-
KnownStyles: [
|
11
|
-
"static",
|
12
|
-
"carousel",
|
13
|
-
"verticals",
|
14
|
-
"slice-and-dice",
|
15
|
-
"gradient"
|
16
|
-
]
|
2
|
+
attributeBindings: ["id"]
|
17
3
|
classNames: ['hero-splash']
|
@@ -5,8 +5,8 @@ class Apiv1.SelectLocaleComponent extends Ember.Component
|
|
5
5
|
|
6
6
|
+computed I18n.locale
|
7
7
|
locale: (key, value) ->
|
8
|
-
if arguments.length > 1
|
9
|
-
I18n.
|
8
|
+
if arguments.length > 1 && I18n.locale? && I18n.locale isnt value
|
9
|
+
I18n.changeLocale value
|
10
10
|
I18n.locale
|
11
11
|
|
12
12
|
+computed KnownLanguages
|
@@ -4,6 +4,7 @@ class Apiv1.TrSpanComponent extends Ember.Component
|
|
4
4
|
opts: {}
|
5
5
|
+computed I18n.locale, key, opts
|
6
6
|
translated: ->
|
7
|
+
return "" if Ember.isBlank I18n.locale
|
7
8
|
Ember.assert "Translations require string keys, not null", @key?
|
8
9
|
if tld = I18n.lookup @key, @opts
|
9
10
|
delete I18n.missingKeys[@key] if I18n.missingKeys?
|
@@ -2,10 +2,32 @@ class Apiv1.TreeTaxonLiComponent extends Ember.Component
|
|
2
2
|
tagName: 'li'
|
3
3
|
classNames: ['tree-taxon-li']
|
4
4
|
classNameBindings: ['isSelected:selected', 'isExpanded:expanded']
|
5
|
-
isExpanded: false
|
6
|
-
isSelected: false
|
7
5
|
adminMode: false
|
8
6
|
|
7
|
+
+computed taxon, activeTaxons.@each, isExpandable
|
8
|
+
isExpanded: (key, expand) ->
|
9
|
+
return false unless @isExpandable
|
10
|
+
if arguments.length > 1
|
11
|
+
@expansionCoefficient = expand
|
12
|
+
unless @expansionCoefficient?
|
13
|
+
@expansionCoefficient = @isExpandable and @activeTaxons.contains @taxon
|
14
|
+
@expansionCoefficient
|
15
|
+
|
16
|
+
+computed taxon.hasChildren
|
17
|
+
isExpandable: -> @get("taxon.hasChildren")
|
18
|
+
|
19
|
+
+computed taxon.hasChildren
|
20
|
+
isSelectable: -> not @get("taxon.hasChildren")
|
21
|
+
|
22
|
+
+computed taxon, activeTaxons.@each, isSelectable
|
23
|
+
isSelected: (key, select) ->
|
24
|
+
return false unless @isSelectable
|
25
|
+
if arguments.length > 1
|
26
|
+
@selectionCoefficient = select
|
27
|
+
unless @selectionCoefficient?
|
28
|
+
@selectionCoefficient = @isSelectable and @activeTaxons.contains @taxon
|
29
|
+
@selectionCoefficient
|
30
|
+
|
9
31
|
+computed adminMode
|
10
32
|
adminModeReasonable: ->
|
11
33
|
@adminMode && @taxon.id
|
@@ -39,6 +61,9 @@ class Apiv1.TreeTaxonLiComponent extends Ember.Component
|
|
39
61
|
@isSelected = true
|
40
62
|
|
41
63
|
actions:
|
64
|
+
killTaxon: ->
|
65
|
+
@taxon.destroyRecord().then -> Apiv1.Flash.register "success", "taxon destroyed", 2000
|
66
|
+
|
42
67
|
interactWithTaxon: ->
|
43
68
|
if @taxon.hasChildren
|
44
69
|
@toggleExpansion()
|
@@ -2,21 +2,8 @@ class Apiv1.TreeTaxonWrapperComponent extends Ember.Component
|
|
2
2
|
classNames: ['tree-taxon-wrapper']
|
3
3
|
activeTaxons: []
|
4
4
|
|
5
|
-
+computed
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
taxonName: rootGenus
|
11
|
-
children: taxons
|
12
|
-
hasChildren: taxons.length > 0
|
13
|
-
|
14
|
-
+computed taxons.@each.rootGenus
|
15
|
-
taxonGroups: ->
|
16
|
-
@taxons.reduce @_groupReducer, {}
|
17
|
-
|
18
|
-
_groupReducer: (groups, taxon) ->
|
19
|
-
return groups if taxon.get "parentId"
|
20
|
-
groups[taxon.get "rootGenus"] ||= []
|
21
|
-
groups[taxon.get "rootGenus"].push taxon
|
22
|
-
groups
|
5
|
+
+computed taxons
|
6
|
+
rootTaxon: ->
|
7
|
+
Ember.Object.create
|
8
|
+
children: @taxons
|
9
|
+
hasChildren: true
|
@@ -1,3 +1,7 @@
|
|
1
|
-
|
1
|
+
throttler = (fun) -> _.throttle fun, 1250
|
2
|
+
window.I18n.changeLocale = throttler (locale) ->
|
3
|
+
(data) <- $.get "apiv1/i18n_translations.js?locale=#{locale}"
|
2
4
|
Ember.set window.I18n, "translations", data.translations
|
3
|
-
Ember.set window.I18n, "locale", data.locale
|
5
|
+
Ember.set window.I18n, "locale", data.locale
|
6
|
+
|
7
|
+
I18n.changeLocale ""
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class Apiv1.AdminMessagesIndexController extends Ember.ObjectController
|
2
|
+
queryParams: ["page", "per"]
|
3
|
+
page: 1
|
4
|
+
per: 15
|
5
|
+
+computed page, per
|
6
|
+
messages: ->
|
7
|
+
@store.find "message", page: @page, per: @per
|
8
|
+
|
9
|
+
+computed messages.content.meta
|
10
|
+
metadatum: -> @get("messages.content.meta")
|
@@ -1,8 +1,15 @@
|
|
1
1
|
class Apiv1.AdminProductEditController extends Ember.ObjectController
|
2
|
+
+computed model.taxons.@each
|
3
|
+
activeTaxons: ->
|
4
|
+
@get("model.taxons") or []
|
5
|
+
|
6
|
+
+computed model
|
7
|
+
rootTaxons: ->
|
8
|
+
@store.find "taxon", parent_id: null
|
9
|
+
|
2
10
|
+computed model.coreAttributes
|
3
11
|
adminProduct: ->
|
4
12
|
return if Ember.isBlank @model.id
|
5
|
-
window.product = @model
|
6
13
|
@store.push "admin_product", @model.get("coreAttributes")
|
7
14
|
|
8
15
|
redirectToIndex: ->
|
@@ -18,4 +25,6 @@ class Apiv1.AdminProductEditController extends Ember.ObjectController
|
|
18
25
|
|
19
26
|
actions:
|
20
27
|
formSubmitted: ->
|
28
|
+
@failureReason = null
|
29
|
+
@adminProduct.taxons = @activeTaxons.map (t) -> t.get("id")
|
21
30
|
@adminProduct.save().then(_.bind @successUpdate, @).catch(_.bind @failedUpdate, @)
|
@@ -1,4 +1,9 @@
|
|
1
1
|
class Apiv1.AdminProductsNewController extends Ember.ObjectController
|
2
|
+
activeTaxons: []
|
3
|
+
+computed model
|
4
|
+
rootTaxons: ->
|
5
|
+
@store.find "taxon", parent_id: null
|
6
|
+
|
2
7
|
redirectToIndex: ->
|
3
8
|
@transitionToRoute 'admin.products.index'
|
4
9
|
notifySuccess: ->
|
@@ -13,4 +18,5 @@ class Apiv1.AdminProductsNewController extends Ember.ObjectController
|
|
13
18
|
actions:
|
14
19
|
formSubmitted: ->
|
15
20
|
@failureReason = null
|
21
|
+
@model.taxons = @activeTaxons.map (t) -> t.get("id")
|
16
22
|
@model.save().then(_.bind @successfulSave, @).catch(_.bind @failedSave, @)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Apiv1.AdminTaxonEditController extends Ember.ObjectController
|
2
|
+
|
3
|
+
redirectToIndex: ->
|
4
|
+
@transitionToRoute 'admin.taxons.index'
|
5
|
+
notifySuccess: ->
|
6
|
+
Apiv1.Flash.register "success", "category updated! You may need to refresh the page"
|
7
|
+
successfulSave: (taxon) ->
|
8
|
+
@notifySuccess()
|
9
|
+
@redirectToIndex()
|
10
|
+
failedSave: (reason) ->
|
11
|
+
Apiv1.Flash.register "warning", "something went wrong with the server", 5000 if reason.status is 500
|
12
|
+
@failureReason = reason.responseJSON if reason.responseJSON
|
13
|
+
|
14
|
+
actions:
|
15
|
+
formSubmitted: ->
|
16
|
+
@failureReason = null
|
17
|
+
@model.save().then(_.bind @successfulSave, @).catch(_.bind @failedSave, @)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Apiv1.AdminTaxonsNewController extends Ember.ObjectController
|
2
|
+
queryParams: ['parent']
|
3
|
+
parent: null
|
4
|
+
|
5
|
+
+computed parent
|
6
|
+
parentTaxon: ->
|
7
|
+
return if Ember.isBlank @parent
|
8
|
+
@store.find "taxon", @parent
|
9
|
+
|
10
|
+
redirectToIndex: ->
|
11
|
+
@transitionToRoute 'admin.taxons.index'
|
12
|
+
notifySuccess: ->
|
13
|
+
Apiv1.Flash.register "success", "category created! You may need to refresh the page"
|
14
|
+
successfulSave: (taxon) ->
|
15
|
+
@notifySuccess()
|
16
|
+
@redirectToIndex()
|
17
|
+
failedSave: (reason) ->
|
18
|
+
Apiv1.Flash.register "warning", "something went wrong with the server", 5000 if reason.status is 500
|
19
|
+
@failureReason = reason.responseJSON if reason.responseJSON
|
20
|
+
|
21
|
+
actions:
|
22
|
+
formSubmitted: ->
|
23
|
+
@failureReason = null
|
24
|
+
@model.parentId = @parent
|
25
|
+
@model.save().then(_.bind @successfulSave, @).catch(_.bind @failedSave, @)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Apiv1.MessagesNewController extends Ember.ObjectController
|
2
|
+
notifySuccess: ->
|
3
|
+
Apiv1.Flash.register "success", "message sent!", 5000
|
4
|
+
successfulSave: (product) ->
|
5
|
+
@swapOutForm()
|
6
|
+
@notifySuccess()
|
7
|
+
swapOutForm: ->
|
8
|
+
@alreadySubmitted = true
|
9
|
+
failedSave: (reason) ->
|
10
|
+
Apiv1.Flash.register "warning", "uh-oh, the server is down", 5000 if reason.status is 500
|
11
|
+
@failureReason = Apiv1.HashEx.camelize reason.responseJSON if reason.responseJSON
|
12
|
+
|
13
|
+
actions:
|
14
|
+
formSubmitted: ->
|
15
|
+
@failureReason = null
|
16
|
+
@model.save().then(_.bind @successfulSave, @).catch(_.bind @failedSave, @)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
class Apiv1.ProductsIndexController extends Ember.ObjectController
|
2
|
-
queryParams: ["per", "page", "query"]
|
2
|
+
queryParams: ["per", "page", "query", "ati"]
|
3
3
|
per: 15
|
4
4
|
page: 1
|
5
5
|
query: null
|
6
|
+
ati: []
|
6
7
|
|
7
8
|
+computed model.taxons.@each.parentId
|
8
9
|
taxons: -> @get("model.taxons")
|
@@ -10,19 +11,15 @@ class Apiv1.ProductsIndexController extends Ember.ObjectController
|
|
10
11
|
+computed products.content.meta
|
11
12
|
metadatum: -> @get("products.content.meta")
|
12
13
|
|
13
|
-
+computed
|
14
|
+
+computed ati.@each, query, per, page
|
14
15
|
products: ->
|
15
|
-
@store.find("product", taxons: @
|
16
|
+
@store.find("product", taxons: @ati, query: @query, per: @per, page: @page)
|
16
17
|
|
17
18
|
+computed searchParams.searchQuery
|
18
19
|
searchQuery: -> @get "searchParams.searchQuery"
|
19
20
|
|
20
|
-
+computed activeTaxons.@each.id
|
21
|
-
activeTaxonIds: ->
|
22
|
-
_.map @get("activeTaxons"), (t) -> t.get "id"
|
23
|
-
|
24
21
|
actions:
|
25
22
|
search: (opts) ->
|
26
23
|
@page = 1
|
27
24
|
@query = opts.searchQuery
|
28
|
-
@
|
25
|
+
@ati = opts.activeTaxons.mapBy "id"
|
@@ -6,6 +6,7 @@ class Apiv1.Product extends DS.Model
|
|
6
6
|
place: DS.attr "string"
|
7
7
|
quality: DS.attr "string"
|
8
8
|
others: DS.attr "string"
|
9
|
+
showcaseOrder: DS.attr "number"
|
9
10
|
createdAt: DS.attr "date"
|
10
11
|
updatedAt: DS.attr "date"
|
11
12
|
attachments: DS.hasMany "attachment", async: true
|
@@ -17,7 +18,7 @@ class Apiv1.Product extends DS.Model
|
|
17
18
|
"#{@price || 'no price'} #{@material || 'unknown material'} #{@amount || 'unknown quantity'} @ #{@place || 'unknown place'} - #{@sku || 'no sku'}"
|
18
19
|
|
19
20
|
|
20
|
-
+computed id, sku, material, price, amount, place, quality, others
|
21
|
+
+computed id, sku, material, price, amount, place, quality, others, showcaseOrder, taxonIds
|
21
22
|
coreAttributes: ->
|
22
23
|
id: @get("id")
|
23
24
|
sku: @get("sku")
|
@@ -26,4 +27,8 @@ class Apiv1.Product extends DS.Model
|
|
26
27
|
amount: @get("amount")
|
27
28
|
place: @get("place")
|
28
29
|
quality: @get("quality")
|
29
|
-
others: @get("others")
|
30
|
+
others: @get("others")
|
31
|
+
showcaseOrder: @get("showcaseOrder")
|
32
|
+
|
33
|
+
+computed showcaseOrder
|
34
|
+
hasShowOrder: -> not Ember.isBlank @showcaseOrder
|
@@ -1,17 +1,15 @@
|
|
1
1
|
class Apiv1.Taxon extends DS.Model
|
2
|
+
permalink: DS.attr "string"
|
2
3
|
rootGenus: DS.attr "string"
|
3
4
|
taxonName: DS.attr "string"
|
4
|
-
permalink: DS.attr "string"
|
5
5
|
explanation: DS.attr "string"
|
6
|
+
parentId: DS.attr "string"
|
6
7
|
firstChildAt: DS.attr "date"
|
7
8
|
createdAt: DS.attr "date"
|
8
9
|
updatedAt: DS.attr "date"
|
9
|
-
parentId: DS.attr "string"
|
10
10
|
|
11
11
|
+computed id
|
12
|
-
children: ->
|
13
|
-
@store.filter "taxon", (taxon) =>
|
14
|
-
taxon.get("parentId") is @id
|
12
|
+
children: -> @store.find "taxon", parent_id: @id
|
15
13
|
|
16
14
|
+computed parentId
|
17
15
|
parent: -> @parentId && @store.find("taxon", @parentId)
|
@@ -0,0 +1 @@
|
|
1
|
+
class Apiv1.AdminMessagesIndexRoute extends Ember.Route
|
@@ -1,2 +1,2 @@
|
|
1
1
|
class Apiv1.AdminTaxonsIndexRoute extends Ember.Route
|
2
|
-
model: -> @store.find "taxon"
|
2
|
+
model: -> @store.find "taxon", parent_id: null
|