cloudrider 0.1.2 → 0.1.3
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 +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
|