cloudrider 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/cloudrider.gemspec +30 -0
- data/generica/.bowerrc +3 -0
- data/generica/.rspec +2 -0
- data/generica/Gemfile +67 -0
- data/generica/Gemfile.lock +363 -0
- data/generica/LICENSE.txt +22 -0
- data/generica/README.md +156 -0
- data/generica/Rakefile +5 -0
- data/generica/app/assets/images/.keep +0 -0
- data/generica/app/assets/images/cookie-splash/albatross.jpg +0 -0
- data/generica/app/assets/images/cookie-splash/california.png +0 -0
- data/generica/app/assets/images/hero-splash/albatross.jpg +0 -0
- data/generica/app/assets/images/hero-splash/california.jpg +0 -0
- data/generica/app/assets/images/hero-splash/rocks.jpg +0 -0
- data/generica/app/assets/images/hero-splash/seaweed.png +0 -0
- data/generica/app/assets/images/introductory-lobby/fishing.jpg +0 -0
- data/generica/app/assets/images/products-showcase/rocks.jpg +0 -0
- data/generica/app/assets/images/table-booths/411.png +0 -0
- data/generica/app/assets/javascripts/adapters/admin/employee.js.ls +20 -0
- data/generica/app/assets/javascripts/adapters/admin/product.js.ls +20 -0
- data/generica/app/assets/javascripts/adapters/admin/session.js.em +2 -0
- data/generica/app/assets/javascripts/adapters/application.js.em +2 -0
- data/generica/app/assets/javascripts/apiv1.js.ls +24 -0
- data/generica/app/assets/javascripts/application.js +23 -0
- data/generica/app/assets/javascripts/components/.gitkeep +0 -0
- data/generica/app/assets/javascripts/components/block-grid-pictures.js.em +3 -0
- data/generica/app/assets/javascripts/components/block-picture.js.em +8 -0
- data/generica/app/assets/javascripts/components/cookie-splash.js.em +2 -0
- data/generica/app/assets/javascripts/components/fancy-paginator.js.em +23 -0
- data/generica/app/assets/javascripts/components/files-field.js.em +28 -0
- data/generica/app/assets/javascripts/components/flash-message.js.em +6 -0
- data/generica/app/assets/javascripts/components/flash-slice.js.em +32 -0
- data/generica/app/assets/javascripts/components/form-for.js.em +28 -0
- data/generica/app/assets/javascripts/components/hero-splash.js.em +17 -0
- data/generica/app/assets/javascripts/components/introductory-lobby.js.em +13 -0
- data/generica/app/assets/javascripts/components/product-display.js.em +3 -0
- data/generica/app/assets/javascripts/components/product-listing.js.em +3 -0
- data/generica/app/assets/javascripts/components/products-catalog.js.em +2 -0
- data/generica/app/assets/javascripts/components/products-showcase.js.ls +5 -0
- data/generica/app/assets/javascripts/components/promise-button.js.em +20 -0
- data/generica/app/assets/javascripts/components/search-and-filter.js.em +13 -0
- data/generica/app/assets/javascripts/components/select-locale.js.em +19 -0
- data/generica/app/assets/javascripts/components/site-footer.js.em +8 -0
- data/generica/app/assets/javascripts/components/site-nav.js.em +3 -0
- data/generica/app/assets/javascripts/components/table-booths.js.em +10 -0
- data/generica/app/assets/javascripts/components/tr-span.js.em +18 -0
- data/generica/app/assets/javascripts/components/tree/taxon-li.js.em +46 -0
- data/generica/app/assets/javascripts/components/tree/taxon-ul.js.em +3 -0
- data/generica/app/assets/javascripts/components/tree/taxon-wrapper.js.em +22 -0
- data/generica/app/assets/javascripts/components/type-ahead.js.em +17 -0
- data/generica/app/assets/javascripts/config/i18n-translations.js.ls +3 -0
- data/generica/app/assets/javascripts/config/router.js.ls +29 -0
- data/generica/app/assets/javascripts/controllers/.gitkeep +0 -0
- data/generica/app/assets/javascripts/controllers/admin/employees/new_controller.js.em +16 -0
- data/generica/app/assets/javascripts/controllers/admin/employees/slice_controller.js.em +4 -0
- data/generica/app/assets/javascripts/controllers/admin/product/edit_controller.js.em +21 -0
- data/generica/app/assets/javascripts/controllers/admin/products/new_controller.js.em +16 -0
- data/generica/app/assets/javascripts/controllers/admin/products/slice_controller.js.em +4 -0
- data/generica/app/assets/javascripts/controllers/admin/translation/edit_controller.js.em +19 -0
- data/generica/app/assets/javascripts/controllers/admin/translation/form_controller.js.em +10 -0
- data/generica/app/assets/javascripts/controllers/admin/translations/index_controller.js.em +19 -0
- data/generica/app/assets/javascripts/controllers/admin/translations/sliver_controller.js.em +8 -0
- data/generica/app/assets/javascripts/controllers/application_controller.js.em +9 -0
- data/generica/app/assets/javascripts/controllers/index_controller.js.em +20 -0
- data/generica/app/assets/javascripts/controllers/modals/login_controller.js.em +24 -0
- data/generica/app/assets/javascripts/controllers/products/index_controller.js.em +28 -0
- data/generica/app/assets/javascripts/controllers/products/product/show_controller.js.em +17 -0
- data/generica/app/assets/javascripts/helpers/.gitkeep +0 -0
- data/generica/app/assets/javascripts/helpers/array_ex.js.ls +27 -0
- data/generica/app/assets/javascripts/helpers/i18n.js.ls +3 -0
- data/generica/app/assets/javascripts/helpers/string_ex.js.ls +21 -0
- data/generica/app/assets/javascripts/mixins/.gitkeep +0 -0
- data/generica/app/assets/javascripts/mixins/file_drag_and_drop.js.em +57 -0
- data/generica/app/assets/javascripts/mixins/type_ahead_builder.js.em +41 -0
- data/generica/app/assets/javascripts/models/.gitkeep +0 -0
- data/generica/app/assets/javascripts/models/admin/employee.js.em +6 -0
- data/generica/app/assets/javascripts/models/admin/offer.js.em +1 -0
- data/generica/app/assets/javascripts/models/admin/product.js.em +12 -0
- data/generica/app/assets/javascripts/models/admin/session.js.em +3 -0
- data/generica/app/assets/javascripts/models/admin/taxon.js.em +1 -0
- data/generica/app/assets/javascripts/models/attachment.js.em +9 -0
- data/generica/app/assets/javascripts/models/employee.js.em +16 -0
- data/generica/app/assets/javascripts/models/listing.js.em +20 -0
- data/generica/app/assets/javascripts/models/offer.js.em +12 -0
- data/generica/app/assets/javascripts/models/picture.js.em +11 -0
- data/generica/app/assets/javascripts/models/product.js.em +29 -0
- data/generica/app/assets/javascripts/models/session.js.ls +4 -0
- data/generica/app/assets/javascripts/models/taxon.js.em +31 -0
- data/generica/app/assets/javascripts/models/translation.js.em +46 -0
- data/generica/app/assets/javascripts/packages/flash.js.em +36 -0
- data/generica/app/assets/javascripts/packages/tranny.js.ls +51 -0
- data/generica/app/assets/javascripts/routes/.gitkeep +0 -0
- data/generica/app/assets/javascripts/routes/admin/employees/index_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/employees/new_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/index_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/admin/product_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/products/index_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/products/new_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/taxons/index_route.js.em +2 -0
- data/generica/app/assets/javascripts/routes/admin/translation/edit_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/admin/translation_route.js.em +12 -0
- data/generica/app/assets/javascripts/routes/admin/translations/index_route.js.em +20 -0
- data/generica/app/assets/javascripts/routes/admin_route.js.em +4 -0
- data/generica/app/assets/javascripts/routes/application_route.js.em +19 -0
- data/generica/app/assets/javascripts/routes/index_route.js.em +4 -0
- data/generica/app/assets/javascripts/routes/products/index_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/products_route.js.em +4 -0
- data/generica/app/assets/javascripts/templates/.gitkeep +0 -0
- data/generica/app/assets/javascripts/templates/admin.emblem +23 -0
- data/generica/app/assets/javascripts/templates/admin/employees/index.emblem +22 -0
- data/generica/app/assets/javascripts/templates/admin/employees/new.emblem +35 -0
- data/generica/app/assets/javascripts/templates/admin/employees/slice.emblem +22 -0
- data/generica/app/assets/javascripts/templates/admin/index.emblem +3 -0
- data/generica/app/assets/javascripts/templates/admin/product/edit.emblem +69 -0
- data/generica/app/assets/javascripts/templates/admin/products/index.emblem +22 -0
- data/generica/app/assets/javascripts/templates/admin/products/new.emblem +56 -0
- data/generica/app/assets/javascripts/templates/admin/products/slice.emblem +22 -0
- data/generica/app/assets/javascripts/templates/admin/taxons/index.emblem +10 -0
- data/generica/app/assets/javascripts/templates/admin/taxons/new.emblem +0 -0
- data/generica/app/assets/javascripts/templates/admin/translation/edit.emblem +11 -0
- data/generica/app/assets/javascripts/templates/admin/translation/form.emblem +20 -0
- data/generica/app/assets/javascripts/templates/admin/translations/index.emblem +43 -0
- data/generica/app/assets/javascripts/templates/admin/translations/slice.emblem +23 -0
- data/generica/app/assets/javascripts/templates/admin/translations/sliver.emblem +18 -0
- data/generica/app/assets/javascripts/templates/application.emblem +14 -0
- data/generica/app/assets/javascripts/templates/components/.gitkeep +0 -0
- data/generica/app/assets/javascripts/templates/components/block-grid-pictures.emblem +5 -0
- data/generica/app/assets/javascripts/templates/components/block-picture.emblem +7 -0
- data/generica/app/assets/javascripts/templates/components/cookie-splash.emblem +14 -0
- data/generica/app/assets/javascripts/templates/components/fancy-paginator.emblem +31 -0
- data/generica/app/assets/javascripts/templates/components/flash-message.emblem +2 -0
- data/generica/app/assets/javascripts/templates/components/flash-slice.emblem +6 -0
- data/generica/app/assets/javascripts/templates/components/form-for.emblem +2 -0
- data/generica/app/assets/javascripts/templates/components/hero-splash.emblem +13 -0
- data/generica/app/assets/javascripts/templates/components/hero-splash/_splash-cta.emblem +7 -0
- data/generica/app/assets/javascripts/templates/components/hero-splash/_splash-tagline.emblem +8 -0
- data/generica/app/assets/javascripts/templates/components/introductory-lobby.emblem +12 -0
- data/generica/app/assets/javascripts/templates/components/product-display.emblem +47 -0
- data/generica/app/assets/javascripts/templates/components/product-listing.emblem +26 -0
- data/generica/app/assets/javascripts/templates/components/products-catalog.emblem +16 -0
- data/generica/app/assets/javascripts/templates/components/products-showcase.emblem +12 -0
- data/generica/app/assets/javascripts/templates/components/products-showcase/_contained-media-one.emblem +20 -0
- data/generica/app/assets/javascripts/templates/components/promise-button.emblem +6 -0
- data/generica/app/assets/javascripts/templates/components/search-and-filter.emblem +11 -0
- data/generica/app/assets/javascripts/templates/components/select-locale.emblem +1 -0
- data/generica/app/assets/javascripts/templates/components/site-footer.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/site-nav.emblem +7 -0
- data/generica/app/assets/javascripts/templates/components/site-nav/_left-nav.emblem +19 -0
- data/generica/app/assets/javascripts/templates/components/site-nav/_top-nav.emblem +22 -0
- data/generica/app/assets/javascripts/templates/components/table-booths.emblem +75 -0
- data/generica/app/assets/javascripts/templates/components/tr-span.emblem +1 -0
- data/generica/app/assets/javascripts/templates/components/tree-taxon-li.emblem +29 -0
- data/generica/app/assets/javascripts/templates/components/tree-taxon-ul.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/tree-taxon-wrapper.emblem +3 -0
- data/generica/app/assets/javascripts/templates/index.emblem +7 -0
- data/generica/app/assets/javascripts/templates/modals/login.emblem +27 -0
- data/generica/app/assets/javascripts/templates/products.emblem +3 -0
- data/generica/app/assets/javascripts/templates/products/index.emblem +7 -0
- data/generica/app/assets/javascripts/templates/products/product/show.emblem +71 -0
- data/generica/app/assets/javascripts/transforms/files_transform.js.ls +7 -0
- data/generica/app/assets/javascripts/transforms/form_data_transformer.js.ls +25 -0
- data/generica/app/assets/javascripts/transforms/strings_transform.js.ls +4 -0
- data/generica/app/assets/javascripts/views/.gitkeep +0 -0
- data/generica/app/assets/stylesheets/apiv1.css.scss +8 -0
- data/generica/app/assets/stylesheets/apiv1/_admin.css.scss +14 -0
- data/generica/app/assets/stylesheets/apiv1/_application.css.scss +70 -0
- data/generica/app/assets/stylesheets/apiv1/admin/contacts/_index.css.scss +3 -0
- data/generica/app/assets/stylesheets/apiv1/admin/products/_index.css.scss +64 -0
- data/generica/app/assets/stylesheets/apiv1/admin/products/_new.css.scss +11 -0
- data/generica/app/assets/stylesheets/apiv1/admin/translations/_index.css.scss +68 -0
- data/generica/app/assets/stylesheets/apiv1/components/_block-grid-pictures.css.scss +21 -0
- data/generica/app/assets/stylesheets/apiv1/components/_cookie-splash.css.scss +60 -0
- data/generica/app/assets/stylesheets/apiv1/components/_fancy-paginator.css.scss +22 -0
- data/generica/app/assets/stylesheets/apiv1/components/_files-field.css.scss +10 -0
- data/generica/app/assets/stylesheets/apiv1/components/_flash-message.css.scss +35 -0
- data/generica/app/assets/stylesheets/apiv1/components/_hero-splash.css.scss +39 -0
- data/generica/app/assets/stylesheets/apiv1/components/_introductory-lobby.css.scss +22 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-display.css.scss +27 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-listing.css.scss +34 -0
- data/generica/app/assets/stylesheets/apiv1/components/_products-catalog.css.scss +2 -0
- data/generica/app/assets/stylesheets/apiv1/components/_products-showcase.css.scss +2 -0
- data/generica/app/assets/stylesheets/apiv1/components/_promise-button.css.scss +8 -0
- data/generica/app/assets/stylesheets/apiv1/components/_search-and-filter.css.scss +9 -0
- data/generica/app/assets/stylesheets/apiv1/components/_select-locale.css.scss +48 -0
- data/generica/app/assets/stylesheets/apiv1/components/_site-footer.css.scss +23 -0
- data/generica/app/assets/stylesheets/apiv1/components/_site-nav.css.scss +1 -0
- data/generica/app/assets/stylesheets/apiv1/components/_table-booths.css.scss +25 -0
- data/generica/app/assets/stylesheets/apiv1/components/_tree-taxon-wrapper.css.scss +92 -0
- data/generica/app/assets/stylesheets/apiv1/components/_type-ahead.css.scss +59 -0
- data/generica/app/assets/stylesheets/apiv1/components/products-catalog/_expanding-media.css.scss +3 -0
- data/generica/app/assets/stylesheets/apiv1/components/products-showcase/_contained-media-one.css.scss +35 -0
- data/generica/app/assets/stylesheets/apiv1/components/site-nav/_left-nav.css.scss +105 -0
- data/generica/app/assets/stylesheets/apiv1/components/site-nav/_top-nav.css.scss +106 -0
- data/generica/app/assets/stylesheets/apiv1/modals/_login.css.scss +26 -0
- data/generica/app/assets/stylesheets/apiv1/products/product/_show.css.scss +18 -0
- data/generica/app/assets/stylesheets/apiv1/shared/_constants.css.scss +77 -0
- data/generica/app/assets/stylesheets/apiv1/shared/_variables.css.scss +23 -0
- data/generica/app/assets/stylesheets/application.css +15 -0
- data/generica/app/assets/stylesheets/foundation_and_overrides.scss +1322 -0
- data/generica/app/controllers/admin/base_controller.rb +9 -0
- data/generica/app/controllers/admin/employees/create_controller.rb +26 -0
- data/generica/app/controllers/admin/products/create_controller.rb +26 -0
- data/generica/app/controllers/admin/products/update_controller.rb +29 -0
- data/generica/app/controllers/admin/sessions/create_controller.rb +34 -0
- data/generica/app/controllers/apiv1/employees/destroy_controller.rb +9 -0
- data/generica/app/controllers/apiv1/employees/index_controller.rb +9 -0
- data/generica/app/controllers/apiv1/home_controller.rb +4 -0
- data/generica/app/controllers/apiv1/i18n_translations/index_controller.rb +11 -0
- data/generica/app/controllers/apiv1/pictures/destroy_controller.rb +13 -0
- data/generica/app/controllers/apiv1/pictures/show_controller.rb +9 -0
- data/generica/app/controllers/apiv1/product_metadatum/show_controller.rb +16 -0
- data/generica/app/controllers/apiv1/products/destroy_controller.rb +9 -0
- data/generica/app/controllers/apiv1/products/index_controller.rb +21 -0
- data/generica/app/controllers/apiv1/products/show_controller.rb +12 -0
- data/generica/app/controllers/apiv1/taxons/index_controller.rb +11 -0
- data/generica/app/controllers/apiv1/taxons/show_controller.rb +9 -0
- data/generica/app/controllers/apiv1/translations/create_controller.rb +31 -0
- data/generica/app/controllers/apiv1/translations/index_controller.rb +22 -0
- data/generica/app/controllers/apiv1/translations/show_controller.rb +9 -0
- data/generica/app/controllers/apiv1/translations/update_controller.rb +35 -0
- data/generica/app/controllers/application_controller.rb +5 -0
- data/generica/app/controllers/concerns/.keep +0 -0
- data/generica/app/helpers/application_helper.rb +2 -0
- data/generica/app/mailers/.keep +0 -0
- data/generica/app/models/.keep +0 -0
- data/generica/app/models/admin.rb +5 -0
- data/generica/app/models/admin/employee_factory.rb +31 -0
- data/generica/app/models/admin/pictures_factory.rb +17 -0
- data/generica/app/models/admin/product_factory.rb +51 -0
- data/generica/app/models/admin/product_modifier.rb +39 -0
- data/generica/app/models/admin/user.rb +25 -0
- data/generica/app/models/apiv1.rb +5 -0
- data/generica/app/models/apiv1/attachment.rb +45 -0
- data/generica/app/models/apiv1/employee.rb +29 -0
- data/generica/app/models/apiv1/listings.rb +5 -0
- data/generica/app/models/apiv1/listings/taxon_relationship.rb +19 -0
- data/generica/app/models/apiv1/permalinkifier.rb +22 -0
- data/generica/app/models/apiv1/picture.rb +37 -0
- data/generica/app/models/apiv1/product.rb +71 -0
- data/generica/app/models/apiv1/products_machine.rb +65 -0
- data/generica/app/models/apiv1/taxon.rb +88 -0
- data/generica/app/models/apiv1/translation.rb +57 -0
- data/generica/app/models/apiv1/translation_machine.rb +57 -0
- data/generica/app/models/concerns/.keep +0 -0
- data/generica/app/varissets/javascripts/templates/application.emblem.erb +28 -0
- data/generica/app/varissets/javascripts/templates/components/cookie-splash.emblem.erb +17 -0
- data/generica/app/varissets/javascripts/templates/components/hero-splash.emblem.erb +25 -0
- data/generica/app/varissets/javascripts/templates/components/introductory-lobby.emblem.erb +12 -0
- data/generica/app/varissets/javascripts/templates/components/product-display.emblem.erb +51 -0
- data/generica/app/varissets/javascripts/templates/components/product-listing.emblem.erb +29 -0
- data/generica/app/varissets/javascripts/templates/components/products-catalog.emblem.erb +18 -0
- data/generica/app/varissets/javascripts/templates/components/products-showcase.emblem.erb +23 -0
- data/generica/app/varissets/javascripts/templates/components/site-nav.emblem.erb +47 -0
- data/generica/app/varissets/javascripts/templates/components/table-booths.emblem.erb +71 -0
- data/generica/app/varissets/javascripts/templates/index.emblem.erb +11 -0
- data/generica/app/varissets/stylesheets/apiv1/_application.css.scss.erb +66 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_cookie-splash.css.scss.erb +61 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_hero-splash.css.scss.erb +42 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_introductory-lobby.css.scss.erb +26 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_product-display.css.scss.erb +30 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_product-listing.css.scss.erb +37 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_products-catalog.css.scss.erb +5 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_products-showcase.css.scss.erb +39 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_site-nav.css.scss.erb +213 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_table-booths.css.scss.erb +28 -0
- data/generica/app/views/apiv1/home/index.html.haml +2 -0
- data/generica/app/views/apiv1/layouts/application.html.haml +21 -0
- data/generica/app/views/layouts/application.html.erb +14 -0
- data/generica/bin/bundle +3 -0
- data/generica/bin/rails +8 -0
- data/generica/bin/rake +8 -0
- data/generica/bin/spring +18 -0
- data/generica/bower.json +21 -0
- data/generica/config.ru +4 -0
- data/generica/config/application.rb +23 -0
- data/generica/config/boot.rb +4 -0
- data/generica/config/database.yml +54 -0
- data/generica/config/database.yml.erb +53 -0
- data/generica/config/desired_languages.yml +28 -0
- data/generica/config/environment.rb +5 -0
- data/generica/config/environments/development.rb +37 -0
- data/generica/config/environments/production.rb +82 -0
- data/generica/config/environments/test.rb +39 -0
- data/generica/config/initializers/assets.rb +8 -0
- data/generica/config/initializers/backtrace_silencers.rb +7 -0
- data/generica/config/initializers/cookies_serializer.rb +3 -0
- data/generica/config/initializers/filter_parameter_logging.rb +4 -0
- data/generica/config/initializers/inflections.rb +16 -0
- data/generica/config/initializers/mime_types.rb +4 -0
- data/generica/config/initializers/session_store.rb +3 -0
- data/generica/config/initializers/sorcery.rb +437 -0
- data/generica/config/initializers/wrap_parameters.rb +14 -0
- data/generica/config/locales/ar.yml +78 -0
- data/generica/config/locales/ca.yml +78 -0
- data/generica/config/locales/cs.yml +78 -0
- data/generica/config/locales/da.yml +78 -0
- data/generica/config/locales/de.yml +78 -0
- data/generica/config/locales/el.yml +78 -0
- data/generica/config/locales/en.yml +78 -0
- data/generica/config/locales/es.yml +78 -0
- data/generica/config/locales/fi.yml +78 -0
- data/generica/config/locales/fr.yml +78 -0
- data/generica/config/locales/hu.yml +78 -0
- data/generica/config/locales/id.yml +78 -0
- data/generica/config/locales/is.yml +78 -0
- data/generica/config/locales/it.yml +78 -0
- data/generica/config/locales/ja.yml +78 -0
- data/generica/config/locales/ko.yml +78 -0
- data/generica/config/locales/ms.yml +78 -0
- data/generica/config/locales/nl.yml +78 -0
- data/generica/config/locales/no.yml +78 -0
- data/generica/config/locales/pl.yml +78 -0
- data/generica/config/locales/pt.yml +78 -0
- data/generica/config/locales/ru.yml +78 -0
- data/generica/config/locales/sv.yml +78 -0
- data/generica/config/locales/th.yml +78 -0
- data/generica/config/locales/tr.yml +78 -0
- data/generica/config/locales/zh-CN.yml +78 -0
- data/generica/config/locales/zh-TW.yml +78 -0
- data/generica/config/nginx.conf +36 -0
- data/generica/config/routes.rb +35 -0
- data/generica/config/secrets.yml +22 -0
- data/generica/config/unicorn.conf.rb +101 -0
- data/generica/db/migrate/20140930052333_create_apiv1_taxons.rb +14 -0
- data/generica/db/migrate/20140930052559_create_apiv1_listings_plastics.rb +18 -0
- data/generica/db/migrate/20140930180107_create_apiv1_pictures.rb +8 -0
- data/generica/db/migrate/20140930180108_add_attachment_pic_to_apiv1_pictures.rb +11 -0
- data/generica/db/migrate/20141001063631_create_commerce_units_dimensions.rb +11 -0
- data/generica/db/migrate/20141001212635_create_apiv1_listings_taxon_relationships.rb +9 -0
- data/generica/db/migrate/20141006231820_create_apiv1_employees.rb +11 -0
- data/generica/db/migrate/20141010215459_create_apiv1_translations.rb +11 -0
- data/generica/db/migrate/20141018235809_add_attachment_document_to_attachments.rb +13 -0
- data/generica/db/migrate/20141021003733_sorcery_core.rb +13 -0
- data/generica/db/migrate/20141021003734_sorcery_remember_me.rb +8 -0
- data/generica/db/schema.rb +141 -0
- data/generica/db/seeds.rb +15 -0
- data/generica/db/seeds/dimensions.rb +42 -0
- data/generica/db/seeds/products.rb +30 -0
- data/generica/db/seeds/taxons.rb +81 -0
- data/generica/db/seeds/translation_seeds.rb +2132 -0
- data/generica/db/seeds/users.rb +2 -0
- data/generica/lib/assets/.keep +0 -0
- data/generica/lib/generica.rb +4 -0
- data/generica/lib/generica/locale.yml.erb +6 -0
- data/generica/lib/generica/seed.en.yml +77 -0
- data/generica/lib/generica/seed_generator.rb +119 -0
- data/generica/lib/generica/translation_seeds.rb.erb +4 -0
- data/generica/lib/generica/yaml_writer.rb +54 -0
- data/generica/lib/tasks/.keep +0 -0
- data/generica/lib/tasks/assets_unretardifier.rake +7 -0
- data/generica/lib/tasks/cloudrider.rake +7 -0
- data/generica/lib/tasks/elasticsearch.rake +10 -0
- data/generica/lib/tasks/production.rake +14 -0
- data/generica/lib/tasks/seeds.rake +13 -0
- data/generica/lib/tasks/translation.rake +7 -0
- data/generica/log/.keep +0 -0
- data/generica/public/404.html +67 -0
- data/generica/public/422.html +67 -0
- data/generica/public/500.html +66 -0
- data/generica/public/favicon.ico +0 -0
- data/generica/public/javascripts/translations.js +2 -0
- data/generica/public/robots.txt +5 -0
- data/generica/public/tests/dog.png +0 -0
- data/generica/public/tests/husky.png +0 -0
- data/generica/spec/controllers/admin/employees/create_controller_spec.rb +48 -0
- data/generica/spec/controllers/admin/products/create_controller_spec.rb +55 -0
- data/generica/spec/controllers/admin/products/update_controller_spec.rb +44 -0
- data/generica/spec/controllers/admin/sessions/create_controller_spec.rb +66 -0
- data/generica/spec/controllers/apiv1/pictures/destroy_controller_spec.rb +36 -0
- data/generica/spec/factories/admin/user_factory.rb +22 -0
- data/generica/spec/factories/apiv1/picture_factory.rb +25 -0
- data/generica/spec/factories/apiv1/product_factory.rb +48 -0
- data/generica/spec/factories/apiv1/taxon_factory.rb +40 -0
- data/generica/spec/factories/base_factory.rb +30 -0
- data/generica/spec/models/admin/pictures_factory_spec.rb +14 -0
- data/generica/spec/models/admin/product_factory_spec.rb +54 -0
- data/generica/spec/models/admin/product_modifier_spec.rb +123 -0
- data/generica/spec/models/apiv1/product_spec.rb +61 -0
- data/generica/spec/rails_helper.rb +51 -0
- data/generica/spec/spec_helper.rb +85 -0
- data/generica/vendor/assets/javascripts/.keep +0 -0
- data/generica/vendor/assets/stylesheets/.keep +0 -0
- data/lib/cloudrider.rb +4 -0
- data/lib/cloudrider/apiv1.rb +72 -0
- data/lib/cloudrider/apiv1/application_emblem.rb +12 -0
- data/lib/cloudrider/apiv1/application_sass.rb +31 -0
- data/lib/cloudrider/apiv1/base.rb +63 -0
- data/lib/cloudrider/apiv1/cookie_splash_component.rb +14 -0
- data/lib/cloudrider/apiv1/cookie_splash_sass.rb +20 -0
- data/lib/cloudrider/apiv1/hero_splash_component.rb +37 -0
- data/lib/cloudrider/apiv1/hero_splash_sass.rb +43 -0
- data/lib/cloudrider/apiv1/index_emblem.rb +11 -0
- data/lib/cloudrider/apiv1/introductory_lobby_component.rb +17 -0
- data/lib/cloudrider/apiv1/introductory_lobby_sass.rb +17 -0
- data/lib/cloudrider/apiv1/product_display_component.rb +11 -0
- data/lib/cloudrider/apiv1/product_display_sass.rb +11 -0
- data/lib/cloudrider/apiv1/product_listing_component.rb +11 -0
- data/lib/cloudrider/apiv1/product_listing_sass.rb +11 -0
- data/lib/cloudrider/apiv1/products_catalog_component.rb +11 -0
- data/lib/cloudrider/apiv1/products_catalog_sass.rb +11 -0
- data/lib/cloudrider/apiv1/products_showcase_component.rb +11 -0
- data/lib/cloudrider/apiv1/products_showcase_sass.rb +20 -0
- data/lib/cloudrider/apiv1/site_nav_component.rb +15 -0
- data/lib/cloudrider/apiv1/site_nav_sass.rb +11 -0
- data/lib/cloudrider/apiv1/table_booths_component.rb +11 -0
- data/lib/cloudrider/apiv1/table_booths_sass.rb +11 -0
- data/lib/cloudrider/application_commander.rb +119 -0
- data/lib/cloudrider/file_orders_maker.rb +24 -0
- data/lib/cloudrider/protofile.rb +9 -0
- data/lib/cloudrider/templates/application.emblem.erb +28 -0
- data/lib/cloudrider/version.rb +3 -0
- data/lib/generators/cloudrider/USAGE +1 -0
- data/lib/generators/cloudrider/backend/backend_generator.rb +49 -0
- data/lib/generators/cloudrider/client/client_generator.rb +110 -0
- data/lib/generators/cloudrider/varissets/varissets_generator.rb +35 -0
- data/spec/cloudrider/apiv1_base_spec.rb +46 -0
- data/spec/cloudrider/apiv1_spec.rb +20 -0
- data/spec/spec_helper.rb +1 -0
- metadata +555 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
class Apiv1.ModalsLoginController extends Ember.ObjectController
|
2
|
+
+computed model
|
3
|
+
session: ->
|
4
|
+
@login @model
|
5
|
+
@model
|
6
|
+
|
7
|
+
+computed session.id
|
8
|
+
isAuthenticated: -> @get("session.id")
|
9
|
+
|
10
|
+
login: (session) ->
|
11
|
+
session.save().then(_.bind @successfulLogin, @).catch(_.bind @failedLogin, @)
|
12
|
+
|
13
|
+
successfulLogin: (session) ->
|
14
|
+
Apiv1.Flash.register "success", "Admin logged in", 5000
|
15
|
+
@transitionToRoute "admin.index"
|
16
|
+
|
17
|
+
failedLogin: _.after 1, (reason) ->
|
18
|
+
Apiv1.Flash.register "warning", "login failed", 5000
|
19
|
+
@failureReason = reason.responseJSON.admin_session if reason.responseJSON?
|
20
|
+
|
21
|
+
|
22
|
+
actions:
|
23
|
+
formSubmitted: ->
|
24
|
+
@login @session
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Apiv1.ProductsIndexController extends Ember.ObjectController
|
2
|
+
queryParams: ["per", "page", "query"]
|
3
|
+
per: 15
|
4
|
+
page: 1
|
5
|
+
query: null
|
6
|
+
|
7
|
+
+computed model.taxons.@each.parentId
|
8
|
+
taxons: -> @get("model.taxons")
|
9
|
+
|
10
|
+
+computed products.content.meta
|
11
|
+
metadatum: -> @get("products.content.meta")
|
12
|
+
|
13
|
+
+computed activeTaxons.@each, query, per, page
|
14
|
+
products: ->
|
15
|
+
@store.find("product", taxons: @activeTaxonIds, query: @query, per: @per, page: @page)
|
16
|
+
|
17
|
+
+computed searchParams.searchQuery
|
18
|
+
searchQuery: -> @get "searchParams.searchQuery"
|
19
|
+
|
20
|
+
+computed activeTaxons.@each.id
|
21
|
+
activeTaxonIds: ->
|
22
|
+
_.map @get("activeTaxons"), (t) -> t.get "id"
|
23
|
+
|
24
|
+
actions:
|
25
|
+
search: (opts) ->
|
26
|
+
@page = 1
|
27
|
+
@query = opts.searchQuery
|
28
|
+
@activeTaxons = opts.activeTaxons
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Apiv1.ProductsProductShowController extends Ember.ObjectController
|
2
|
+
queryParams: ['mp']
|
3
|
+
mp: null
|
4
|
+
+computed model
|
5
|
+
product: -> @get "model"
|
6
|
+
|
7
|
+
+computed model.pictures
|
8
|
+
pictures: -> @model.pictures
|
9
|
+
|
10
|
+
+computed model.pictures.@each, mp
|
11
|
+
mainPic: (key, pic) ->
|
12
|
+
return @get("pictures.firstObject") if Ember.isBlank @mp
|
13
|
+
@pictures.findBy("id", @mp) || @get("pictures.firstObject")
|
14
|
+
|
15
|
+
actions:
|
16
|
+
selectMainPic: (picture) ->
|
17
|
+
@mp = picture.get("id")
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Apiv1.ArrayEx
|
2
|
+
# Assumes your array has been presorted
|
3
|
+
@greater-weave = (greater-than, xxs, yys) -->
|
4
|
+
return xxs unless yys? and yys.length > 0
|
5
|
+
return yys unless xxs? and xxs.length > 0
|
6
|
+
[x,...xs] = xxs
|
7
|
+
[y,...ys] = yys
|
8
|
+
if x `greater-than` y
|
9
|
+
[y].concat @weave(greater-than, xxs, ys)
|
10
|
+
else
|
11
|
+
[x].concat @weave(greater-than, xs, yys)
|
12
|
+
|
13
|
+
@lesser-weave = (lesser-than, xxs, yys) ->
|
14
|
+
greater-than = (x,y) -> lesser-than y, x
|
15
|
+
@greater-weave greater-than, xxs, yys
|
16
|
+
|
17
|
+
# iterates through xs, wherever predicate returns true,
|
18
|
+
# the first element of ys is substituted instead
|
19
|
+
@replace-concat = (predicate, xxs, yys) -->
|
20
|
+
return [] unless xxs? and xxs.length > 0
|
21
|
+
return xxs unless yys? and yys.length > 0
|
22
|
+
[x,...xs] = xxs
|
23
|
+
[y,...ys] = yys
|
24
|
+
if predicate x, y
|
25
|
+
[y].concat Apiv1.ArrayEx.replace-concat(predicate, xs, ys)
|
26
|
+
else
|
27
|
+
[x].concat Apiv1.ArrayEx.replace-concat(predicate, xs, yys)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Apiv1.StringEx
|
2
|
+
@keyify = (s) ->
|
3
|
+
s
|
4
|
+
|> ( .trim! )
|
5
|
+
|> Apiv1.StringEx.wordify-comma
|
6
|
+
|> Apiv1.StringEx.wordify-period
|
7
|
+
|> Apiv1.StringEx.kill-useless-crap
|
8
|
+
|> Apiv1.StringEx.unify-spaces
|
9
|
+
|> Apiv1.StringEx.underscorify
|
10
|
+
|
11
|
+
@wordify-comma = (s) ->
|
12
|
+
s.split(/\s*,+\s*/).join " comma "
|
13
|
+
@wordify-period = (s) ->
|
14
|
+
s.split(/\s*\.+\s*/).join " period "
|
15
|
+
@kill-useless-crap = (s) ->
|
16
|
+
s.split("").filter ( is /[a-z0-9\s]/i )
|
17
|
+
|> ( .join "" )
|
18
|
+
@unify-spaces = (s) ->
|
19
|
+
s.split(/\s+/).join " "
|
20
|
+
@underscorify = (s) ->
|
21
|
+
s.split(/[\s\-]/).join "_"
|
File without changes
|
@@ -0,0 +1,57 @@
|
|
1
|
+
mixin Apiv1.FileDragDropMixin
|
2
|
+
bindOnlyElement: ->
|
3
|
+
@$().on "dragenter", (e) =>
|
4
|
+
e.stopPropagation()
|
5
|
+
e.preventDefault()
|
6
|
+
@dragEntered e
|
7
|
+
|
8
|
+
@$().on "dragleave", (e) =>
|
9
|
+
e.stopPropagation()
|
10
|
+
e.preventDefault()
|
11
|
+
@dragLeft e
|
12
|
+
|
13
|
+
@$().on "drop", (e) =>
|
14
|
+
e.stopPropagation()
|
15
|
+
e.preventDefault()
|
16
|
+
@dragDropped e.originalEvent.dataTransfer.files
|
17
|
+
|
18
|
+
unbindDocument: ->
|
19
|
+
$(document).on "dragenter", (e) =>
|
20
|
+
e.stopPropagation()
|
21
|
+
e.preventDefault()
|
22
|
+
|
23
|
+
$(document).on "dragleave", (e) =>
|
24
|
+
e.stopPropagation()
|
25
|
+
e.preventDefault()
|
26
|
+
|
27
|
+
$(document).on "drop", (e) =>
|
28
|
+
e.stopPropagation()
|
29
|
+
e.preventDefault()
|
30
|
+
|
31
|
+
bindDragAndDrop: ->
|
32
|
+
@bindOnlyElement()
|
33
|
+
@unbindDocument()
|
34
|
+
|
35
|
+
unbindOnlyElement: ->
|
36
|
+
@$().off "dragenter"
|
37
|
+
@$().off "dragleave"
|
38
|
+
@$().off "drop"
|
39
|
+
|
40
|
+
unbindDragAndDrop: ->
|
41
|
+
@unbindOnlyElement()
|
42
|
+
@rebindDocument()
|
43
|
+
|
44
|
+
rebindDocument: ->
|
45
|
+
$(document).off "dragenter"
|
46
|
+
$(document).off "dragleave"
|
47
|
+
$(document).off "drop"
|
48
|
+
|
49
|
+
dragEntered: (e) ->
|
50
|
+
console.log "You haven't implemented dragEntered in #{this}"
|
51
|
+
console.log e
|
52
|
+
dragLeft: (e) ->
|
53
|
+
console.log "You haven't implemented dragLeft in #{this}"
|
54
|
+
console.log e
|
55
|
+
dragDropped: (e) ->
|
56
|
+
console.log "You haven't implemented dragDropped in #{this}"
|
57
|
+
console.log e
|
@@ -0,0 +1,41 @@
|
|
1
|
+
mixin Apiv1.TypeAheadBuilderMixin
|
2
|
+
typeaheadOpts:
|
3
|
+
hint: true
|
4
|
+
highlight: true
|
5
|
+
minLength: 1
|
6
|
+
|
7
|
+
initializeTypeahead: (data) ->
|
8
|
+
@typeahead = @$().typeahead @typeaheadOpts, @generateTypeaheadParams data
|
9
|
+
@typeahead.on "typeahead:selected", (e, item) =>
|
10
|
+
@set "selection", item.emberObject
|
11
|
+
@typeahead.on "typeahead:autocompleted", (e, item) => @set "selection", item.emberObject
|
12
|
+
if @get "selection"
|
13
|
+
@typeahead.val @get "selection.presentation"
|
14
|
+
|
15
|
+
bloodhoundSource: (data)->
|
16
|
+
b = new Bloodhound @bloodOptionsMaker data
|
17
|
+
b.initialize()
|
18
|
+
b
|
19
|
+
|
20
|
+
generateTypeaheadParams: (data) ->
|
21
|
+
name: @$().attr('id') || "typeahead"
|
22
|
+
limit: @get("limit") || 5
|
23
|
+
displayKey: "presentation"
|
24
|
+
source: @bloodhoundSource(data).ttAdapter()
|
25
|
+
|
26
|
+
localizeData: (data) ->
|
27
|
+
data.map _.bind(@transformItem2Datum, @)
|
28
|
+
|
29
|
+
transformItem2Datum: (item) ->
|
30
|
+
value: item.get(@get("name"))
|
31
|
+
name: item.get(@get("name"))
|
32
|
+
presentation: item.get('presentation') || item.get(@get("name"))
|
33
|
+
emberObject: item
|
34
|
+
|
35
|
+
bloodOptionsMaker: (data) ->
|
36
|
+
datumTokenizer: @_datumTokenizer
|
37
|
+
queryTokenizer: Bloodhound.tokenizers.whitespace
|
38
|
+
local: @localizeData data
|
39
|
+
|
40
|
+
_datumTokenizer: (datum) ->
|
41
|
+
datum.presentation.split /[\s\-_:\+]+/
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
class Apiv1.AdminOffer extends DS.Model
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Apiv1.AdminProduct extends DS.Model
|
2
|
+
sku: DS.attr "string"
|
3
|
+
material: DS.attr "string"
|
4
|
+
price: DS.attr "string"
|
5
|
+
amount: DS.attr "string"
|
6
|
+
quality: DS.attr "string"
|
7
|
+
place: DS.attr "string"
|
8
|
+
others: DS.attr "string"
|
9
|
+
|
10
|
+
taxons: DS.attr "strings"
|
11
|
+
attachments: DS.attr "files"
|
12
|
+
pictures: DS.attr "files"
|
@@ -0,0 +1 @@
|
|
1
|
+
class Apiv1.AdminTaxon extends DS.Model
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Apiv1.Employee extends DS.Model
|
2
|
+
personName: DS.attr "string"
|
3
|
+
employeeTitle: DS.attr "string"
|
4
|
+
email: DS.attr "string"
|
5
|
+
phoneNumber: DS.attr "string"
|
6
|
+
mugShot: DS.attr "string"
|
7
|
+
|
8
|
+
+computed email, phoneNumber
|
9
|
+
roughSummary: ->
|
10
|
+
"email - #{@email} , phone - #{@phoneNumber}"
|
11
|
+
|
12
|
+
+computed mugShot
|
13
|
+
mugUrl: -> @get("mugShot") || "assets/table-booths/411.png"
|
14
|
+
|
15
|
+
+computed email
|
16
|
+
emailTo: -> "mailto:#{@email}"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Apiv1.Listing extends DS.Model
|
2
|
+
permalink: DS.attr "string"
|
3
|
+
materialName: DS.attr "string"
|
4
|
+
priceUnit: DS.attr "string"
|
5
|
+
askingPrice: DS.attr "number"
|
6
|
+
quantity: DS.attr "number"
|
7
|
+
quantityUnit: DS.attr "string"
|
8
|
+
incoterm: DS.attr "string"
|
9
|
+
locationName: DS.attr "string"
|
10
|
+
otherNotes: DS.attr "string"
|
11
|
+
timeInterval: DS.attr "string"
|
12
|
+
createdAt: DS.attr "date"
|
13
|
+
updatedAt: DS.attr "date"
|
14
|
+
|
15
|
+
pictures: DS.hasMany "picture", async: true
|
16
|
+
taxons: DS.hasMany "taxon", async: true
|
17
|
+
|
18
|
+
+computed priceUnit, askingPrice, locationName, createdAt
|
19
|
+
roughSummary: ->
|
20
|
+
"#{@askingPrice} #{@priceUnit} @ #{@locationName} on #{@createdAt}"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Apiv1.Offer extends DS.Model
|
2
|
+
price: DS.attr "number"
|
3
|
+
priceUnit: DS.attr "string"
|
4
|
+
incoterm: DS.attr "string"
|
5
|
+
locationName: DS.attr "string"
|
6
|
+
buyerCompany: DS.attr "string"
|
7
|
+
buyerEmail: DS.attr "string"
|
8
|
+
message: DS.attr "string"
|
9
|
+
createdAt: DS.attr "date"
|
10
|
+
updatedAt: DS.attr "date"
|
11
|
+
|
12
|
+
listing: DS.belongsTo "listing"
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Apiv1.Picture extends DS.Model
|
2
|
+
createdAt: DS.attr "date"
|
3
|
+
updatedAt: DS.attr "date"
|
4
|
+
picUrl: DS.attr "string"
|
5
|
+
thumbUrl: DS.attr "string"
|
6
|
+
picFileName: DS.attr "string"
|
7
|
+
picContentType: DS.attr "string"
|
8
|
+
picFileSize: DS.attr "string"
|
9
|
+
picUpdatedAt: DS.attr "date"
|
10
|
+
|
11
|
+
product: DS.belongsTo "product"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class Apiv1.Product extends DS.Model
|
2
|
+
sku: DS.attr "string"
|
3
|
+
material: DS.attr "string"
|
4
|
+
price: DS.attr "string"
|
5
|
+
amount: DS.attr "string"
|
6
|
+
place: DS.attr "string"
|
7
|
+
quality: DS.attr "string"
|
8
|
+
others: DS.attr "string"
|
9
|
+
createdAt: DS.attr "date"
|
10
|
+
updatedAt: DS.attr "date"
|
11
|
+
attachments: DS.hasMany "attachment", async: true
|
12
|
+
pictures: DS.hasMany "picture", async: true
|
13
|
+
taxons: DS.hasMany "taxon", async: true
|
14
|
+
|
15
|
+
+computed material, price, amount, place, sku
|
16
|
+
roughSummary: ->
|
17
|
+
"#{@price || 'no price'} #{@material || 'unknown material'} #{@amount || 'unknown quantity'} @ #{@place || 'unknown place'} - #{@sku || 'no sku'}"
|
18
|
+
|
19
|
+
|
20
|
+
+computed id, sku, material, price, amount, place, quality, others
|
21
|
+
coreAttributes: ->
|
22
|
+
id: @get("id")
|
23
|
+
sku: @get("sku")
|
24
|
+
material: @get("material")
|
25
|
+
price: @get("price")
|
26
|
+
amount: @get("amount")
|
27
|
+
place: @get("place")
|
28
|
+
quality: @get("quality")
|
29
|
+
others: @get("others")
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Apiv1.Taxon extends DS.Model
|
2
|
+
rootGenus: DS.attr "string"
|
3
|
+
taxonName: DS.attr "string"
|
4
|
+
permalink: DS.attr "string"
|
5
|
+
explanation: DS.attr "string"
|
6
|
+
firstChildAt: DS.attr "date"
|
7
|
+
createdAt: DS.attr "date"
|
8
|
+
updatedAt: DS.attr "date"
|
9
|
+
parentId: DS.attr "string"
|
10
|
+
|
11
|
+
+computed id
|
12
|
+
children: ->
|
13
|
+
@store.filter "taxon", (taxon) =>
|
14
|
+
taxon.get("parentId") is @id
|
15
|
+
|
16
|
+
+computed parentId
|
17
|
+
parent: -> @parentId && @store.find("taxon", @parentId)
|
18
|
+
|
19
|
+
+computed children.@each, children.length
|
20
|
+
hasChildren: ->
|
21
|
+
@get("children.length") > 0
|
22
|
+
|
23
|
+
+computed taxonName, rootGenus, parent.fullName
|
24
|
+
fullName: ->
|
25
|
+
if Ember.isBlank @parent
|
26
|
+
"+" + [@rootGenus, @taxonName].join ":"
|
27
|
+
else
|
28
|
+
[@parent.fullName, @taxonName].join ":"
|
29
|
+
|
30
|
+
+computed fullName
|
31
|
+
presentation: -> @get "fullName"
|
@@ -0,0 +1,46 @@
|
|
1
|
+
class Apiv1.Translation extends DS.Model
|
2
|
+
locale: DS.attr "string"
|
3
|
+
key: DS.attr "string"
|
4
|
+
translatedText: DS.attr "string"
|
5
|
+
|
6
|
+
+computed key
|
7
|
+
peersHash: ->
|
8
|
+
return unless @key
|
9
|
+
@store.find("translation", key: @key).reduce @reducer, {}
|
10
|
+
|
11
|
+
reducer: (output, translation) ->
|
12
|
+
output[translation.get("locale")] = translation
|
13
|
+
output
|
14
|
+
|
15
|
+
+computed locale
|
16
|
+
language: ->
|
17
|
+
Apiv1.Translation.KnownLanguages[@locale] || "Unknown Language for #{@locale}"
|
18
|
+
|
19
|
+
Apiv1.Translation.KnownLanguages =
|
20
|
+
"ar": "العربية"
|
21
|
+
"id": "Bahasa Indonesia"
|
22
|
+
"ms": "Bahasa Melayu"
|
23
|
+
"ca": "Català"
|
24
|
+
"da": "Dansk"
|
25
|
+
"de": "Deutsch"
|
26
|
+
"en": "English"
|
27
|
+
"es": "Español"
|
28
|
+
"el": "Eλληνικά"
|
29
|
+
"fr": "Français"
|
30
|
+
"it": "Italiano"
|
31
|
+
"hu": "Magyar"
|
32
|
+
"nl": "Nederlands"
|
33
|
+
"no": "Norsk"
|
34
|
+
"pl": "Polski"
|
35
|
+
"pt": "Português"
|
36
|
+
"fi": "Suomi"
|
37
|
+
"sv": "Svenska"
|
38
|
+
"tr": "Türkçe"
|
39
|
+
"is": "Íslenska"
|
40
|
+
"cs": "Čeština"
|
41
|
+
"ru": "Русский"
|
42
|
+
"th": "ภาษาไทย"
|
43
|
+
"zh-CN": "中文 (简体)"
|
44
|
+
"zh-TW": "中文 (繁體)"
|
45
|
+
"ja": "日本語"
|
46
|
+
"ko": "한국어"
|