From 36178526e38a411a0e365ccc22546976934299ed Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Wed, 1 Jun 2016 14:18:10 +0200 Subject: [PATCH] dependency update --- Gemfile | 15 +- Gemfile.lock | 419 +++++++++--------- .../shared-ember-helpers/currency.js.coffee | 2 +- .../shared-ember-helpers/image_tag.js.coffee | 2 +- .../shared-ember-helpers/state.js.coffee | 2 +- .../shared-ember-helpers/time.js.coffee | 2 +- .../shared-ember-helpers/version.coffee | 2 +- .../components/form/boolean-button.js.coffee | 2 +- .../components/menu-time-preview.js.coffee | 7 +- .../app/models/product_category.js.coffee | 2 +- .../modals/base_controller.js.coffee | 6 +- app/models/product.rb | 1 + app/models/product_label.rb | 9 + app/views/pages/404.gif | Bin 0 -> 30211 bytes app/views/pages/contact.html.slim | 2 +- config/locales/website.nl.yml | 7 +- drb_counter/Dockerfile | 4 +- drb_counter/Gemfile | 4 +- drb_counter/drb_counter.rb | 4 +- wip.md | 9 + 20 files changed, 258 insertions(+), 243 deletions(-) create mode 100644 app/models/product_label.rb create mode 100644 app/views/pages/404.gif diff --git a/Gemfile b/Gemfile index 593b31db..e26b3096 100644 --- a/Gemfile +++ b/Gemfile @@ -37,17 +37,18 @@ group :assets do gem 'uglifier', '>= 1.0.3' - #gem 'ember-rails' + gem 'ember-rails' #gem 'ember-rails', path: '/home/benjamin/development/rails/components/ember-rails' - gem 'ember-rails', github: 'bterkuile/ember-rails' + #gem 'ember-rails', github: 'bterkuile/ember-rails' #gem 'ember-source', '~> 1.13.9' #gem 'emblem-rails' gem 'ember-validations-rails' - gem 'ember-emblem-template', github: 'bterkuile/ember-emblem-template' + gem 'ember-handlebars-template' + gem 'ember-emblem-template' #, github: 'bterkuile/ember-emblem-template' #gem 'ember-emblem-template', path: '/home/benjamin/development/rails/components/ember-emblem-template' - gem 'foundation-rails' #, github: 'bterkuile/foundation-rails' + gem 'foundation-rails', '~> 5.5' #, github: 'bterkuile/foundation-rails' gem 'ace-rails-ap' gem 'pickadate-rails' #gem 'mustache' #, require: 'mustache/railtie' @@ -61,8 +62,8 @@ end # gem 'couchbase-structures', github: 'bterkuile/couchbase-structures' gem 'couch_potato', '~> 1.4.0' #, github: 'bterkuile/couch_potato' -#gem 'simply_stored', path: './../components/simply_stored' #, github: 'bterkuile/simply_stored' -gem 'simply_stored', github: 'bterkuile/simply_stored' +gem 'simply_stored', path: '~/development/rails/components/simply_stored' #, github: 'bterkuile/simply_stored' +#gem 'simply_stored', github: 'bterkuile/simply_stored' #gem 'orm_adapter', github: 'bterkuile/orm_adapter' gem 'devise' #, github: 'plataformatec/devise', branch: 'lm-rails-4-2' #, '3.1.0' #, '2.0.4' gem 'devise_simply_stored', github: 'bterkuile/devise_simply_stored' @@ -112,7 +113,7 @@ group :development do gem 'faye' gem 'spring' gem 'spring-commands-rspec' - gem 'web-console', '~> 2.0.0' + #gem 'web-console', '~> 2.0.0' gem 'foreman' gem 'capistrano', require: false gem 'capistrano-bundler', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 56fa6d16..4cebebb3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -21,36 +21,15 @@ GIT devise_simply_stored (0.3.0) devise -GIT - remote: git://github.com/bterkuile/ember-emblem-template.git - revision: 22f657eaba09fa8992005a2e86d24c85306244e2 - specs: - ember-emblem-template (0.3.0) - barber (>= 0.9.0) - sprockets (>= 3.3, < 3.4) - -GIT - remote: git://github.com/bterkuile/ember-rails.git - revision: fd2008b3aed644892e5529267410a5875460405a - specs: - ember-rails (0.19.2) - active-model-adapter-source (>= 1.13.0) - ember-data-source (>= 1.13.0) - ember-handlebars-template (>= 0.1.1, < 1.0) - ember-source (>= 1.8.0) - jquery-rails (>= 1.0.17) - railties (>= 3.1) - GIT remote: git://github.com/bterkuile/jsonapi-serializers.git - revision: 55516761bec40a4f492003dffd3e18d575075b07 + revision: 3013ef89c7608f28f4ffc2581c4da69cffe4f84e specs: jsonapi-serializers (0.2.6) activesupport -GIT - remote: git://github.com/bterkuile/simply_stored.git - revision: 323c11efe7f86b3e156acfa7e53d8f06d8fb73c4 +PATH + remote: ~/development/rails/components/simply_stored specs: simply_stored (1.0.0) activesupport @@ -61,71 +40,80 @@ GEM remote: https://rubygems.org/ remote: https://rails-assets.org/ specs: - ace-rails-ap (4.0.0) - actionmailer (4.2.4) - actionpack (= 4.2.4) - actionview (= 4.2.4) - activejob (= 4.2.4) + ace-rails-ap (4.0.2) + actionmailer (4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.4) - actionview (= 4.2.4) - activesupport (= 4.2.4) + actionpack (4.2.6) + actionview (= 4.2.6) + activesupport (= 4.2.6) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.4) - activesupport (= 4.2.4) + actionview (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - active-model-adapter-source (2.0.1) + active-model-adapter-source (2.1.1) ember-data-source (>= 1.13, < 3.0) - active_attr (0.8.5) - activemodel (>= 3.0.2, < 5.0) - activesupport (>= 3.0.2, < 5.0) - active_decorator (0.5.3) - activejob (4.2.4) - activesupport (= 4.2.4) + active_attr (0.9.0) + activemodel (>= 3.0.2, < 5.1) + activesupport (>= 3.0.2, < 5.1) + active_decorator (0.7.1) + active_model_serializers (0.10.0) + actionpack (>= 4.0) + activemodel (>= 4.0) + railties (>= 4.0) + activejob (4.2.6) + activesupport (= 4.2.6) globalid (>= 0.3.0) - activemodel (4.2.4) - activesupport (= 4.2.4) + activemodel (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) - activerecord (4.2.4) - activemodel (= 4.2.4) - activesupport (= 4.2.4) + activerecord (4.2.6) + activemodel (= 4.2.6) + activesupport (= 4.2.6) arel (~> 6.0) - activesupport (4.2.4) + activesupport (4.2.6) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.3.8) - airbrussh (0.7.0) + addressable (2.4.0) + airbrussh (1.0.2) sshkit (>= 1.6.1, != 1.7.0) arel (6.0.3) - barber (0.9.2) + babel-source (5.8.35) + babel-transpiler (0.7.0) + babel-source (>= 4.0, < 6) + execjs (~> 2.0) + barber (0.11.1) ember-source (>= 1.0, < 3) execjs (>= 1.2, < 3) - bcrypt (3.1.10) - binding_of_caller (0.7.2) - debug_inspector (>= 0.0.1) - bourbon (4.2.5) + bcrypt (3.1.11) + bourbon (4.2.7) sass (~> 3.4) thor (~> 0.19) builder (3.2.2) - cancancan (1.12.0) - capistrano (3.4.0) + cancancan (1.14.0) + capistrano (3.5.0) + airbrussh (>= 1.0.0) + capistrano-harrow i18n rake (>= 10.0.0) - sshkit (~> 1.3) + sshkit (>= 1.9.0) capistrano-bundler (1.1.4) capistrano (~> 3.1) sshkit (~> 1.2) - capistrano-rails (1.1.3) + capistrano-harrow (0.5.1) + capistrano-rails (1.1.6) capistrano (~> 3.1) capistrano-bundler (~> 1.1) capistrano-rvm (0.1.2) @@ -134,34 +122,33 @@ GEM capistrano3-puma (1.2.1) capistrano (~> 3.0) puma (>= 2.6) - capybara (2.5.0) + capybara (2.7.1) + addressable mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.11) + capybara-screenshot (1.0.13) capybara (>= 1.0, < 3) launchy - celluloid (0.16.0) - timers (~> 4.0.0) - childprocess (0.5.6) + childprocess (0.5.9) ffi (~> 1.0, >= 1.0.11) - chunky_png (1.3.4) + chunky_png (1.3.5) climate_control (0.0.3) activesupport (>= 3.0) - cocaine (0.5.7) + cocaine (0.5.8) climate_control (>= 0.0.3, < 1.0) - coderay (1.1.0) - coffee-rails (4.1.0) + coderay (1.1.1) + coffee-rails (4.1.1) coffee-script (>= 2.2.0) - railties (>= 4.0.0, < 5.0) + railties (>= 4.0.0, < 5.1.x) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.9.1.1) - colorize (0.7.7) - cookiejar (0.3.2) + coffee-script-source (1.10.0) + concurrent-ruby (1.0.2) + cookiejar (0.3.0) couch_potato (1.4.0) activemodel couchrest (~> 1.2.0) @@ -170,51 +157,66 @@ GEM mime-types (>= 1.15) multi_json (~> 1.7, ~> 1.0) rest-client (~> 1.8.0) - crack (0.4.2) + crack (0.4.3) safe_yaml (~> 1.0.0) - debug_inspector (0.0.2) - devise (3.5.2) + devise (4.1.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 3.2.6, < 5) + railties (>= 4.1.0, < 5.1) responders - thread_safe (~> 0.1) warden (~> 1.2.3) - devise-i18n (0.12.1) + devise-i18n (1.0.1) diff-lcs (1.2.5) docile (1.1.5) - domain_name (0.5.24) + domain_name (0.5.20160310) unf (>= 0.0.5, < 1.0.0) - em-http-request (1.1.2) + em-http-request (1.1.3) addressable (>= 2.3.4) - cookiejar + cookiejar (<= 0.3.0) em-socksify (>= 0.3) eventmachine (>= 1.0.3) http_parser.rb (>= 0.6.0) - em-socksify (0.3.0) + em-socksify (0.3.1) eventmachine (>= 1.0.0.beta.4) email_validator (1.6.0) activemodel - ember-data-source (2.0.1) - ember-source (>= 1.8, < 3.0) - ember-handlebars-template (0.4.1) - barber (>= 0.9.0) - sprockets (>= 3.3, < 3.4) - ember-source (2.0.2) + ember-cli-assets (0.0.32) + ember-data-source (2.5.3) + ember-source (>= 2, < 3.0) + ember-emblem-template (0.4.0) + ember-handlebars-template (~> 0.7.0) + sprockets-rails (~> 2.0) + ember-es6_template (0.4.4) + babel-transpiler (>= 0.6.0, < 0.8) + sprockets (>= 2.1, < 4) + ember-handlebars-template (0.7.4) + barber (>= 0.11.0) + sprockets (>= 3.3, < 4) + ember-rails (0.20.5) + active-model-adapter-source (>= 1.13.0) + active_model_serializers + ember-cli-assets (~> 0.0.1) + ember-data-source (>= 1.13.0) + ember-es6_template (~> 0.4.0) + ember-handlebars-template (>= 0.1.1, < 1.0) + ember-source (>= 1.8.0) + jquery-rails (>= 1.0.17) + railties (>= 3.1) + ember-source (2.5.1) ember-validations-rails (1.0.0) railties erubis (2.7.0) - eventmachine (1.0.8) - exception_notification (4.1.1) - actionmailer (>= 3.0.4) - activesupport (>= 3.0.4) - execjs (2.6.0) - factory_girl (4.5.0) + eventmachine (1.2.0.1) + exception_notification (4.1.4) + actionmailer (~> 4.0) + activesupport (~> 4.0) + execjs (2.7.0) + factory_girl (4.7.0) activesupport (>= 3.0.0) - factory_girl_rails (4.5.0) - factory_girl (~> 4.5.0) + factory_girl_rails (4.7.0) + factory_girl (~> 4.7.0) railties (>= 3.0.0) - faraday (0.9.1) + faraday (0.9.2) multipart-post (>= 1.2, < 3) faye (1.1.2) cookiejar (>= 0.3.0) @@ -224,15 +226,15 @@ GEM multi_json (>= 1.0.0) rack (>= 1.0.0) websocket-driver (>= 0.5.1) - faye-websocket (0.10.0) + faye-websocket (0.10.4) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) ffi (1.9.10) - font-awesome-rails (4.4.0.0) - railties (>= 3.2, < 5.0) - foreman (0.78.0) + font-awesome-rails (4.6.3.0) + railties (>= 3.2, < 5.1) + foreman (0.82.0) thor (~> 0.19.1) - foundation-rails (5.5.2.1) + foundation-rails (5.5.3.2) railties (>= 3.1.0) sass (>= 3.3.0, < 3.5) fuubar (2.0.0) @@ -242,71 +244,71 @@ GEM multi_json (~> 1.3) globalid (0.3.6) activesupport (>= 4.1.0) - hashie (3.4.2) - hitimes (1.2.3) + hashdiff (0.3.0) + hashie (3.4.4) http-cookie (1.0.2) domain_name (~> 0.5) http_parser.rb (0.6.0) i18n (0.7.0) - iso_country_codes (0.7.1) - jquery-rails (4.0.5) - rails-dom-testing (~> 1.0) + iso_country_codes (0.7.5) + jquery-rails (4.1.1) + rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (5.0.5) railties (>= 3.2.16) - js-routes (1.1.2) + js-routes (1.2.5) railties (>= 3.2) sprockets-rails json (1.8.3) jwt (1.5.1) - kaminari (0.16.3) + kaminari (0.17.0) actionpack (>= 3.0.0) activesupport (>= 3.0.0) launchy (2.4.3) addressable (~> 2.3) letter_opener (1.4.1) launchy (~> 2.2) - libv8 (3.16.14.11) + libv8 (3.16.14.15) loofah (2.0.3) nokogiri (>= 1.5.9) - mail (2.6.3) - mime-types (>= 1.16, < 3) + mail (2.6.4) + mime-types (>= 1.16, < 4) method_source (0.8.2) - mime-types (2.6.2) + mime-types (2.99.2) mimemagic (0.3.0) - mini_magick (4.3.3) - mini_portile (0.6.2) - minitest (5.8.1) - multi_json (1.11.2) + mini_magick (4.5.1) + mini_portile2 (2.0.0) + minitest (5.9.0) + multi_json (1.12.1) multi_xml (0.5.5) multipart-post (2.0.0) naught (1.1.0) net-scp (1.2.1) net-ssh (>= 2.6.5) - net-ssh (2.9.2) - netrc (0.10.3) - nokogiri (1.6.6.2) - mini_portile (~> 0.6.0) - oauth2 (1.0.0) + net-ssh (3.1.1) + netrc (0.11.0) + nokogiri (1.6.7.2) + mini_portile2 (~> 2.0.0.rc2) + oauth2 (1.1.0) faraday (>= 0.8, < 0.10) - jwt (~> 1.0) + jwt (~> 1.0, < 1.5.2) multi_json (~> 1.3) multi_xml (~> 0.5) - rack (~> 1.2) - omniauth (1.2.2) + rack (>= 1.2, < 3) + omniauth (1.3.1) hashie (>= 1.2, < 4) - rack (~> 1.0) - omniauth-facebook (2.0.1) + rack (>= 1.0, < 3) + omniauth-facebook (3.0.0) omniauth-oauth2 (~> 1.2) - omniauth-instagram (1.0.1) - omniauth (~> 1.0) - omniauth-oauth2 (~> 1.0) - omniauth-oauth2 (1.3.1) + omniauth-instagram (1.0.2) + omniauth (~> 1) + omniauth-oauth2 (~> 1) + omniauth-oauth2 (1.4.0) oauth2 (~> 1.0) omniauth (~> 1.2) orm_adapter (0.5.0) - paperclip (4.3.1) + paperclip (4.3.6) activemodel (>= 3.2.0) activesupport (>= 3.2.0) cocaine (~> 0.5.5) @@ -314,7 +316,7 @@ GEM mimemagic (= 0.3.0) pickadate-rails (3.5.6.0) railties (>= 3.1.0) - pry (0.10.1) + pry (0.10.3) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) @@ -323,95 +325,94 @@ GEM yard (~> 0.8) pry-rails (0.3.4) pry (>= 0.9.10) - puma (2.13.4) + puma (3.4.0) quiet_assets (1.1.0) railties (>= 3.1, < 5.0) rack (1.6.4) rack-cors (0.4.0) rack-test (0.6.3) rack (>= 1.0) - rails (4.2.4) - actionmailer (= 4.2.4) - actionpack (= 4.2.4) - actionview (= 4.2.4) - activejob (= 4.2.4) - activemodel (= 4.2.4) - activerecord (= 4.2.4) - activesupport (= 4.2.4) + rails (4.2.6) + actionmailer (= 4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) + activemodel (= 4.2.6) + activerecord (= 4.2.6) + activesupport (= 4.2.6) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.4) + railties (= 4.2.6) sprockets-rails - rails-assets-ember-qunit (0.4.11) - rails-assets-qunit (1.19.0) + rails-assets-ember-qunit (0.4.20) + rails-assets-qunit (1.23.1) rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) rails-dom-testing (1.0.7) activesupport (>= 4.2.0.beta, < 5.0) nokogiri (~> 1.6.0) rails-deprecated_sanitizer (>= 1.0.1) - rails-html-sanitizer (1.0.2) + rails-html-sanitizer (1.0.3) loofah (~> 2.0) - railties (4.2.4) - actionpack (= 4.2.4) - activesupport (= 4.2.4) + railties (4.2.6) + actionpack (= 4.2.6) + activesupport (= 4.2.6) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - rake (10.4.2) + rake (11.1.2) ref (2.0.0) - responders (2.1.0) - railties (>= 4.2.0, < 5) + responders (2.2.0) + railties (>= 4.2.0, < 5.1) rest-client (1.8.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 3.0) netrc (~> 0.7) - rqrcode (0.7.0) - chunky_png - rspec (3.3.0) - rspec-core (~> 3.3.0) - rspec-expectations (~> 3.3.0) - rspec-mocks (~> 3.3.0) - rspec-core (3.3.2) - rspec-support (~> 3.3.0) - rspec-expectations (3.3.1) + rqrcode (0.10.1) + chunky_png (~> 1.0) + rspec (3.4.0) + rspec-core (~> 3.4.0) + rspec-expectations (~> 3.4.0) + rspec-mocks (~> 3.4.0) + rspec-core (3.4.4) + rspec-support (~> 3.4.0) + rspec-expectations (3.4.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.3.0) + rspec-support (~> 3.4.0) rspec-its (1.2.0) rspec-core (>= 3.0.0) rspec-expectations (>= 3.0.0) - rspec-mocks (3.3.2) + rspec-mocks (3.4.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.3.0) - rspec-rails (3.3.3) + rspec-support (~> 3.4.0) + rspec-rails (3.4.2) actionpack (>= 3.0, < 4.3) activesupport (>= 3.0, < 4.3) railties (>= 3.0, < 4.3) - rspec-core (~> 3.3.0) - rspec-expectations (~> 3.3.0) - rspec-mocks (~> 3.3.0) - rspec-support (~> 3.3.0) - rspec-support (3.3.0) - ruby-progressbar (1.7.5) - rubyzip (1.1.7) + rspec-core (~> 3.4.0) + rspec-expectations (~> 3.4.0) + rspec-mocks (~> 3.4.0) + rspec-support (~> 3.4.0) + rspec-support (3.4.1) + ruby-progressbar (1.8.1) + rubyzip (1.2.0) safe_yaml (1.0.4) - sass (3.4.18) + sass (3.4.22) sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - selenium-webdriver (2.47.1) + selenium-webdriver (2.53.0) childprocess (~> 0.5) - multi_json (~> 1.0) rubyzip (~> 1.0) websocket (~> 1.0) - simplecov (0.10.0) + simplecov (0.11.2) docile (~> 1.1.0) json (~> 1.8) simplecov-html (~> 0.10.0) simplecov-html (0.10.0) - slim (3.0.6) - temple (~> 0.7.3) + slim (3.0.7) + temple (~> 0.7.6) tilt (>= 1.3.3, < 2.1) slim-rails (3.0.1) actionmailer (>= 3.1, < 5.0) @@ -420,58 +421,51 @@ GEM railties (>= 3.1, < 5.0) slim (~> 3.0) slop (3.6.0) - spring (1.4.0) + spring (1.7.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (3.3.4) - rack (~> 1.0) + sprockets (3.6.0) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) sprockets-rails (2.3.3) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) - sshkit (1.7.1) - colorize (>= 0.7.0) + sshkit (1.10.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - sucker_punch (1.5.1) - celluloid (= 0.16.0) - temple (0.7.6) - test_squad (0.0.1) + sucker_punch (2.0.2) + concurrent-ruby (~> 1.0.0) + temple (0.7.7) + test_squad (0.1.2) rails therubyracer (0.12.2) libv8 (~> 3.16.14.0) ref thor (0.19.1) thread_safe (0.3.5) - tilt (2.0.1) - timecop (0.8.0) - timers (4.0.4) - hitimes - tinymce-rails (4.2.5) + tilt (2.0.4) + timecop (0.8.1) + tinymce-rails (4.3.12) railties (>= 3.1.1) - turnip (1.3.1) - gherkin (>= 2.5) - rspec (>= 2.14.0, < 4.0) + turnip (2.1.0) + gherkin (~> 2.5) + rspec (>= 3.0, < 4.0) tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.7.2) - execjs (>= 0.3.0) - json (>= 1.8.0) + uglifier (3.0.0) + execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.1) - warden (1.2.3) + unf_ext (0.0.7.2) + warden (1.2.6) rack (>= 1.0) - web-console (2.0.0) - activemodel (~> 4.0) - binding_of_caller (>= 0.7.2) - railties (~> 4.0) - sprockets-rails (>= 2.0, < 4.0) - webmock (1.21.0) + webmock (2.0.3) addressable (>= 2.3.6) crack (>= 0.3.2) - websocket (1.2.2) - websocket-driver (0.6.2) + hashdiff + websocket (1.2.3) + websocket-driver (0.6.4) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) xpath (2.0.0) @@ -500,15 +494,16 @@ DEPENDENCIES devise devise-i18n devise_simply_stored! - ember-emblem-template! - ember-rails! + ember-emblem-template + ember-handlebars-template + ember-rails ember-validations-rails exception_notification factory_girl_rails faye font-awesome-rails foreman - foundation-rails + foundation-rails (~> 5.5) fuubar iso_country_codes jquery-rails @@ -548,5 +543,7 @@ DEPENDENCIES timecop turnip uglifier (>= 1.0.3) - web-console (~> 2.0.0) webmock + +BUNDLED WITH + 1.12.3 diff --git a/app/assets/javascripts/shared-ember-helpers/currency.js.coffee b/app/assets/javascripts/shared-ember-helpers/currency.js.coffee index cb9ba2a2..d17241e5 100644 --- a/app/assets/javascripts/shared-ember-helpers/currency.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/currency.js.coffee @@ -1,4 +1,4 @@ App.CurrencyHelper = Ember.Helper.helper (params, options)-> amount = params[0] amount = 0.0 if isNaN(amount) || amount== '' || amount == null - new Handlebars.SafeString('€ ' + parseFloat(amount).toFixed(2)) + "€ #{parseFloat(amount).toFixed(2)}".htmlSafe() diff --git a/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee b/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee index 210ee729..150b18a8 100644 --- a/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee @@ -5,4 +5,4 @@ App.ImageTagHelper = Ember.Helper.helper (params, options)-> extra_attributes = '' extra_attributes += " width=\"#{options.width}\"" if options.width extra_attributes += " height=\"#{options.height}\"" if options.height - new Handlebars.SafeString "\"#{alt}\"" + "\"#{alt}\"".htmlSafe() diff --git a/app/assets/javascripts/shared-ember-helpers/state.js.coffee b/app/assets/javascripts/shared-ember-helpers/state.js.coffee index ed47d83a..6682337d 100644 --- a/app/assets/javascripts/shared-ember-helpers/state.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/state.js.coffee @@ -1,4 +1,4 @@ App.StateHelper = Ember.Helper.helper (params, options)-> [subject, state] = params path = "state.#{subject}.#{state}" - new Handlebars.SafeString("#{t(path)}") + "#{t(path)}".htmlSafe() diff --git a/app/assets/javascripts/shared-ember-helpers/time.js.coffee b/app/assets/javascripts/shared-ember-helpers/time.js.coffee index 48bef8c6..0d37e0a0 100644 --- a/app/assets/javascripts/shared-ember-helpers/time.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/time.js.coffee @@ -7,4 +7,4 @@ App.TimeHelper = Ember.Helper.helper (params, options)-> else format_string = '' tag = if options.bare then iso else $("").text(moment(iso).format(options.format || 'dd D MMM hh:mm')).get(0).outerHTML - new Handlebars.SafeString tag + tag.htmlSafe() diff --git a/app/assets/javascripts/shared-ember-helpers/version.coffee b/app/assets/javascripts/shared-ember-helpers/version.coffee index 6a966f4f..b2a5ead8 100644 --- a/app/assets/javascripts/shared-ember-helpers/version.coffee +++ b/app/assets/javascripts/shared-ember-helpers/version.coffee @@ -1,2 +1,2 @@ App.VersionHelper = Ember.Helper.helper (params, options)-> - new Handlebars.SafeString $app_version + String($app_version).htmlSafe() diff --git a/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee b/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee index 0220615f..0d350b97 100644 --- a/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee +++ b/app/assets/javascripts/supplier/app/components/form/boolean-button.js.coffee @@ -8,7 +8,7 @@ App.BooleanButtonComponent = Ember.Component.extend text: Ember.computed 'text_path', -> return unless text_path = @get('text_path') - new Ember.Handlebars.SafeString(tspan(text_path)) + tspan(text_path).htmlSafe() active: Ember.computed 'value', -> if @reverse then !@get('value') else !!@get('value') diff --git a/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee b/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee index fdb09fc5..3454971e 100644 --- a/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee +++ b/app/assets/javascripts/supplier/app/components/menu-time-preview.js.coffee @@ -21,14 +21,13 @@ App.MenuTimePreviewComponent = Ember.Component.extend @set 'preview_full_day', true @set 'active', false @set 'collapsed', true - daysContent: (-> + daysContent: (-> $days.map( (d) -> Ember.Object.create( name: d, text: t("date.day_name.#{d}")) ) ).property() preview_day_text: (-> return "" unless day = @get('preview_day.text') #day_text = tspan("date.day_name.#{day.get('name')}") - tag = "

#{day}

" - new Ember.Handlebars.SafeString(tag) + "

#{day}

".htmlSafe() ).property('preview_day') preview_time_text: (-> @@ -38,7 +37,7 @@ App.MenuTimePreviewComponent = Ember.Component.extend minute = Math.floor(day_minute%60) hour = "0#{hour}".substr(-2,2) minute = "0#{minute}".substr(-2,2) - new Ember.Handlebars.SafeString("#{hour}:#{minute}") + "#{hour}:#{minute}".htmlSafe() ).property('preview_full_day', 'preview_minute_of_day') hasSelection: (-> return true if @get('preview_day') diff --git a/app/assets/javascripts/supplier/app/models/product_category.js.coffee b/app/assets/javascripts/supplier/app/models/product_category.js.coffee index fbf61157..22878f26 100644 --- a/app/assets/javascripts/supplier/app/models/product_category.js.coffee +++ b/app/assets/javascripts/supplier/app/models/product_category.js.coffee @@ -25,7 +25,7 @@ App.ProductCategory = DS.Model.extend Ember.Validations.Mixin, result += "#{active_days.map((day) -> tspan("date.day_name.#{day}")).join(", ")} " unless @get('full_day') result += "#{day_minutes_to_time @get('start_from')} - #{day_minutes_to_time @get('end_on')}" - new Ember.Handlebars.SafeString result + result.htmlSafe() validations: name: {presence: true} diff --git a/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee b/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee index 3a44d1da..9c4a3a55 100644 --- a/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee @@ -8,14 +8,14 @@ translation_params = {} if model = @get('model') translation_params = model.serialize() if model.serialize - return new Ember.Handlebars.SafeString(tspan(@title_path, translation_params)) if @title_path + return tspan(@title_path, translation_params).htmlSafe() if @title_path # return translated title_path if directly set by options - return new Ember.Handlebars.SafeString(tspan(@get('modal_options.title_path'), translation_params)) if @get('modal_options.title_path') + return tspan(@get('modal_options.title_path'), translation_params).htmlSafe() if @get('modal_options.title_path') # infer title path based on controller name App.modals.AddSectionController => add_section underscored = `this.constructor.toString().substr(11).replace(/Controller$/, '').underscore()` # find translated title or humanize the controller name if convention_translation = ttry("modal.#{underscored}.title", translation_params) - new Ember.Handlebars.SafeString(tspan(@get("modal.#{underscored}.title"), translation_params)) + tspan(@get("modal.#{underscored}.title"), translation_params).htmlSafe() else underscored.capitalize().replace(/_/, ' ') ).property('model.id') diff --git a/app/models/product.rb b/app/models/product.rb index 473c740d..63417582 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -13,6 +13,7 @@ class Product belongs_to :product_category #has_and_belongs_to_many :product_categories, storing_keys: false + has_and_belongs_to_many :product_labels, storing_keys: false belongs_to :supplier # direct! category is an aid has_many :product_orders has_many :product_variants, dependent: :destroy diff --git a/app/models/product_label.rb b/app/models/product_label.rb new file mode 100644 index 00000000..55a45166 --- /dev/null +++ b/app/models/product_label.rb @@ -0,0 +1,9 @@ +class ProductLabel + include SimplyStored::Couch + include ActiveModel::SerializerSupport + + property :name + + belongs_to :supplier + has_and_belongs_to_many :products, storing_keys: false +end diff --git a/app/views/pages/404.gif b/app/views/pages/404.gif new file mode 100644 index 0000000000000000000000000000000000000000..4625429dd2989191576866a91b3711e04b4d1197 GIT binary patch literal 30211 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