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,22 @@
|
|
1
|
+
Copyright (c) 2014 Thomas Chen
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/generica/README.md
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
#TODO
|
2
|
+
1. admin.products.new
|
3
|
+
2. admin.translations.new
|
4
|
+
3. admin.taxons.new
|
5
|
+
4. admin.product.edit
|
6
|
+
5. admin.translation.edit
|
7
|
+
6. admin.taxon.edit
|
8
|
+
7. admin.product.delete
|
9
|
+
8. admin.translation.delete
|
10
|
+
9. admin.taxon.delete
|
11
|
+
10. admin.contacts.new
|
12
|
+
11. admin.contacts.index
|
13
|
+
12. admin.contact.edit
|
14
|
+
13. admin.contact.delete
|
15
|
+
|
16
|
+
|
17
|
+
#TODO before 12pm
|
18
|
+
1. Finish translations index
|
19
|
+
2. taxon index
|
20
|
+
|
21
|
+
# TODO before 8am
|
22
|
+
1. taxon tree view
|
23
|
+
2. product-catalog
|
24
|
+
|
25
|
+
Generic Company Profile
|
26
|
+
=======================
|
27
|
+
|
28
|
+
Commands required to build a generic company profile page
|
29
|
+
|
30
|
+
Generate the project
|
31
|
+
```shell
|
32
|
+
rails new <%= company_name %> -d mysql
|
33
|
+
```
|
34
|
+
|
35
|
+
Generate a Gemfile
|
36
|
+
Either the bootstrap gemfile or the foundation gemfile
|
37
|
+
```shell
|
38
|
+
cp shared/Gemfile.foundation <%= company_name %>/Gemfile
|
39
|
+
```
|
40
|
+
|
41
|
+
Bundle install then bootstrap ember
|
42
|
+
``` shell
|
43
|
+
bundle
|
44
|
+
```
|
45
|
+
|
46
|
+
By convention, we use coffeescript. In addition, client side code base all live in an Apiv1 object
|
47
|
+
```shell
|
48
|
+
rails generate ember:bootstrap -je coffee -n apiv1
|
49
|
+
```
|
50
|
+
|
51
|
+
The default generated application.js file is unsatisfactory for an emberjs app, we replace it with ours
|
52
|
+
```shell
|
53
|
+
cp shared/app/assets/javascripts/application.foundation.js <%= company_name %>/app/assets/javascripts/application.js
|
54
|
+
cp shared/app/assets/javascripts/apiv1.js.ls <%= company_name %>/app/assets/javascripts/apiv1.js.ls
|
55
|
+
```
|
56
|
+
|
57
|
+
By default, the ember bootstrap doesn't create all the folders we will be using, we create them ourselves
|
58
|
+
```shell
|
59
|
+
mkdir <%= company_name %>/app/assets/javascripts/adapters
|
60
|
+
mkdir <%= company_name %>/app/assets/javascripts/config
|
61
|
+
```
|
62
|
+
|
63
|
+
By default, rails' router is insufficient and should be replaced
|
64
|
+
```shell
|
65
|
+
cp shared/config/routes.rb <%= company_name %>/config/routes.rb
|
66
|
+
```
|
67
|
+
|
68
|
+
Similarily, we migrate in our own controllers
|
69
|
+
``` shell
|
70
|
+
cp -r shared/app/controllers/apiv1 <%= company_name %>/app/controllers/
|
71
|
+
```
|
72
|
+
|
73
|
+
We migrate in the views
|
74
|
+
```shell
|
75
|
+
cp -r shared/app/views/apiv1 <%= company_name %>/app/views/
|
76
|
+
```
|
77
|
+
|
78
|
+
We must also migrate in the models
|
79
|
+
```shell
|
80
|
+
cp -r shared/app/modesl/apiv1 <%= company_name %>/app/models/
|
81
|
+
```
|
82
|
+
|
83
|
+
Migrate in model migrations
|
84
|
+
```shell
|
85
|
+
cp -r shared/db/migrate <%= company_name %>/db/
|
86
|
+
```
|
87
|
+
|
88
|
+
Ask rake to do the database migration and annotate everything
|
89
|
+
```shell
|
90
|
+
rake db:create
|
91
|
+
rake db:migrate
|
92
|
+
annotate
|
93
|
+
```
|
94
|
+
|
95
|
+
Migrate in seeds and then seed them
|
96
|
+
```shell
|
97
|
+
cp shared/db/seeds.rb <%= company_name %>/db/seeds.rb
|
98
|
+
rake db:seed
|
99
|
+
```
|
100
|
+
|
101
|
+
Application template possibilities
|
102
|
+
```emblem
|
103
|
+
splash-background types are static, carousel, sliced, diced, slice-and-diced, gradient, fill
|
104
|
+
splash-logo-tagline types are box-left, box-right, box-center, overflowed-down
|
105
|
+
splash-call-to-action types are box-left, box-right, box-center, overflowed-down
|
106
|
+
|
107
|
+
introductory-lobby
|
108
|
+
about-background
|
109
|
+
about-doodad
|
110
|
+
about-company
|
111
|
+
|
112
|
+
products-showroom types singles, pairs, triplets
|
113
|
+
each product in products
|
114
|
+
product-showcase product=product
|
115
|
+
rest-of-the-products
|
116
|
+
|
117
|
+
table-booths
|
118
|
+
each contact in contacts
|
119
|
+
person-booth person=person
|
120
|
+
rest-of-the-cast
|
121
|
+
|
122
|
+
```
|
123
|
+
|
124
|
+
Website making json
|
125
|
+
```json
|
126
|
+
website =
|
127
|
+
what_is_your_company_name: names
|
128
|
+
what_does_your_company_do: actions
|
129
|
+
where_is_your_company: locations
|
130
|
+
pictures_of_your_company: pictures
|
131
|
+
your_feelings_about_your_website: pentagram
|
132
|
+
|
133
|
+
names =
|
134
|
+
official_name: string
|
135
|
+
nicknames: [string]
|
136
|
+
|
137
|
+
actions = [action]
|
138
|
+
action =
|
139
|
+
verb: string
|
140
|
+
object: string
|
141
|
+
|
142
|
+
locations = [location]
|
143
|
+
|
144
|
+
pictures = [picture]
|
145
|
+
picture =
|
146
|
+
file: file
|
147
|
+
tags: [tag]
|
148
|
+
|
149
|
+
pentagram = {
|
150
|
+
vividness: 1..100 # aka color and pictures
|
151
|
+
effects: 1..100 # javascript effects and fancy animation
|
152
|
+
spacing: 1..100 # affects padding and margins and empty space
|
153
|
+
attitude: 1..100 # affects oddity of fonts, amount of non-linear aligned texts, and striking contrast
|
154
|
+
visuality: 1..100 # affects number (and size, dominance, etc.) of pictures
|
155
|
+
}
|
156
|
+
```
|
data/generica/Rakefile
ADDED
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Apiv1.AdminEmployeeAdapter = DS.ActiveModelAdapter.extend do
|
2
|
+
namespace: "admin"
|
3
|
+
ajax-options: (url, type, hash) ->
|
4
|
+
hash || {}
|
5
|
+
..url = url
|
6
|
+
..type = type
|
7
|
+
..dataType = 'json'
|
8
|
+
..context = @
|
9
|
+
if hash.data and type isnt 'GET'
|
10
|
+
..processData = false
|
11
|
+
..contentType = false
|
12
|
+
..data = @process-form-data hash.data
|
13
|
+
if @get 'headers'
|
14
|
+
..before-send = @process-headers-etc @get 'headers'
|
15
|
+
|
16
|
+
process-headers-etc: (headers, xhr) -->
|
17
|
+
for-each.call Ember.keys(headers), (key) -> xhr.set-request-header key, headers[key]
|
18
|
+
|
19
|
+
process-form-data: (data) ->
|
20
|
+
Apiv1.FormDataTransformer.object-to-form-data data
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Apiv1.AdminProductAdapter = DS.ActiveModelAdapter.extend do
|
2
|
+
namespace: "admin"
|
3
|
+
ajax-options: (url, type, hash) ->
|
4
|
+
hash || {}
|
5
|
+
..url = url
|
6
|
+
..type = type
|
7
|
+
..dataType = 'json'
|
8
|
+
..context = @
|
9
|
+
if hash.data and type isnt 'GET'
|
10
|
+
..processData = false
|
11
|
+
..contentType = false
|
12
|
+
..data = @process-form-data hash.data
|
13
|
+
if @get 'headers'
|
14
|
+
..before-send = @process-headers-etc @get 'headers'
|
15
|
+
|
16
|
+
process-headers-etc: (headers, xhr) -->
|
17
|
+
for-each.call Ember.keys(headers), (key) -> xhr.set-request-header key, headers[key]
|
18
|
+
|
19
|
+
process-form-data: (data) ->
|
20
|
+
Apiv1.FormDataTransformer.object-to-form-data data
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#= require_self
|
2
|
+
#= require ./packages/flash
|
3
|
+
#= require_tree ./mixins
|
4
|
+
#= require_tree ./helpers
|
5
|
+
#= require_tree ./controllers
|
6
|
+
#= require_tree ./templates
|
7
|
+
#= require_tree ./routes
|
8
|
+
#= require_tree ./adapters
|
9
|
+
#= require_tree ./models
|
10
|
+
#= require_tree ./transforms
|
11
|
+
#= require_tree ./views
|
12
|
+
#= require_tree ./components
|
13
|
+
#= require_tree ./config
|
14
|
+
|
15
|
+
|
16
|
+
window.Apiv1 = Ember.Application.create do
|
17
|
+
rootElement: 'body#apiv1'
|
18
|
+
|
19
|
+
Apiv1.ApplicationStore = DS.Store.extend do
|
20
|
+
# Override the default adapter with the `DS.ActiveModelAdapter` which
|
21
|
+
# is built to work nicely with the ActiveModel::Serializers gem.
|
22
|
+
adapter: DS.ActiveModelAdapter
|
23
|
+
|
24
|
+
$ _.once -> $('#now-loading').hide!
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require foundation
|
16
|
+
//= require underscore
|
17
|
+
//= require handlebars
|
18
|
+
//= require ember
|
19
|
+
//= require ember-data
|
20
|
+
//= require i18n
|
21
|
+
//= require bower_components/typeahead.js/dist/typeahead.bundle.min
|
22
|
+
//= require ./apiv1
|
23
|
+
//= require_self
|
File without changes
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class Apiv1.FancyPaginatorComponent extends Ember.Component
|
2
|
+
classNames: ['fancy-paginator']
|
3
|
+
perPageChoices: [5, 10, 15, 25, 50, 100]
|
4
|
+
page: 1
|
5
|
+
per: 10
|
6
|
+
|
7
|
+
+computed page
|
8
|
+
onFirstPage: ->
|
9
|
+
@page <= 1
|
10
|
+
|
11
|
+
+computed page, maxPages
|
12
|
+
onLastPage: ->
|
13
|
+
@page >= @maxPages
|
14
|
+
|
15
|
+
+computed per, metadatum.count
|
16
|
+
maxPages: ->
|
17
|
+
(@get("metadatum.count") / @per) || 1
|
18
|
+
|
19
|
+
actions:
|
20
|
+
flipLeft: ->
|
21
|
+
@page = @page - 1
|
22
|
+
flipRight: ->
|
23
|
+
@page = @page + 1
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Apiv1.FilesFieldComponent extends Ember.TextField with Apiv1.FileDragDropMixin
|
2
|
+
type: "file"
|
3
|
+
multiple: true
|
4
|
+
|
5
|
+
didInsertElement: ->
|
6
|
+
@bindDragAndDrop()
|
7
|
+
|
8
|
+
willDestroyElement: ->
|
9
|
+
@unbindDragAndDrop()
|
10
|
+
|
11
|
+
dragEntered: ->
|
12
|
+
@$().removeClass("drag-left").addClass("drag-entered")
|
13
|
+
|
14
|
+
dragLeft: ->
|
15
|
+
@$().removeClass("drag-entered").addClass("drag-left")
|
16
|
+
|
17
|
+
dragDropped: (files)->
|
18
|
+
@appendFiles files
|
19
|
+
@dragLeft()
|
20
|
+
|
21
|
+
appendFiles: (files) ->
|
22
|
+
@files = _.union @files, _.map(files, ( (f) -> f ) )
|
23
|
+
|
24
|
+
change: (evt) ->
|
25
|
+
@appendFiles evt.target.files
|
26
|
+
|
27
|
+
hasFiles: ->
|
28
|
+
@files && @files[0]
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class Apiv1.FlashSliceComponent extends Ember.Component
|
2
|
+
classNames: ['flash-slice']
|
3
|
+
classNameBindings: ['isNotice:notice', 'isWarning:warning', 'isSuccess:success']
|
4
|
+
|
5
|
+
+computed flash.severity
|
6
|
+
isNotice: ->
|
7
|
+
@get("flash.severity") is "notice"
|
8
|
+
+computed flash.severity
|
9
|
+
isWarning: ->
|
10
|
+
@get("flash.severity") is "warning"
|
11
|
+
+computed flash.severity
|
12
|
+
isSuccess: ->
|
13
|
+
@get("flash.severity") is "success"
|
14
|
+
|
15
|
+
+computed flash.severity
|
16
|
+
iconClass: ->
|
17
|
+
return "fa-info-circle" if @get("flash.severity") is "notice"
|
18
|
+
return "fa-exclamation-triangle" if @get("flash.severity") is "warning"
|
19
|
+
return "fa-smile-o" if @get("flash.severity") is "success"
|
20
|
+
"fa-flag"
|
21
|
+
+computed flash.message
|
22
|
+
message: ->
|
23
|
+
@get "flash.message"
|
24
|
+
|
25
|
+
didInsertElement: ->
|
26
|
+
if @get("flash.type") is "ephemeral"
|
27
|
+
destroy = _.bind @destroy, @
|
28
|
+
_.delay destroy, @get('flash.expiration')
|
29
|
+
actions:
|
30
|
+
dismiss: ->
|
31
|
+
@flash.dismiss()
|
32
|
+
@destroy()
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Apiv1.FormForComponent extends Ember.Component
|
2
|
+
formData: ->
|
3
|
+
@$("form").serializeArray()
|
4
|
+
|
5
|
+
processNewData: ->
|
6
|
+
_.partial _.foldl, @formData(), (memo, next) ->
|
7
|
+
memo.set next.name, next.value
|
8
|
+
memo
|
9
|
+
updatedModel: ->
|
10
|
+
@processNewData()(@model || new Ember.Object())
|
11
|
+
|
12
|
+
+observer errors
|
13
|
+
displayErrors: ->
|
14
|
+
@resetErrorFields()
|
15
|
+
@explainErrorFields()
|
16
|
+
|
17
|
+
resetErrorFields: ->
|
18
|
+
@$(".input-section").removeClass "error"
|
19
|
+
@$("small.error").remove()
|
20
|
+
|
21
|
+
explainErrorFields: ->
|
22
|
+
_.map @errors, (errors, field) =>
|
23
|
+
@$(".input-section[attr-name=#{field}]").addClass("error").append("<small class='error'>#{errors}</small>")
|
24
|
+
|
25
|
+
|
26
|
+
actions:
|
27
|
+
submit: ->
|
28
|
+
@sendAction "submit", @updatedModel()
|