solidus_subscription_boxes 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/solidus_subscription_boxes/subscription_selection.js +43 -7
  3. data/app/assets/stylesheets/solidus_subscription_boxes/application.css +2 -0
  4. data/app/assets/stylesheets/solidus_subscription_boxes/subscription_box.css.scss +36 -0
  5. data/app/controllers/solidus_subscription_boxes/subscription_boxes_controller.rb +2 -2
  6. data/app/decorators/solidus_subscriptions/models/checkout/update_preference_decorator.rb +15 -0
  7. data/app/decorators/spree/controllers/api/v1/subscriptions/meal_preference_decorator.rb +21 -0
  8. data/app/decorators/spree/controllers/users/set_box_preference_decorator.rb +30 -0
  9. data/app/decorators/spree/products/boxable_decorator.rb +11 -0
  10. data/app/helpers/solidus_subscription_boxes/application_helper.rb +7 -0
  11. data/app/models/solidus_subscription_boxes/subscription_period.rb +7 -2
  12. data/app/models/solidus_subscription_boxes/subscription_periods_variant.rb +1 -1
  13. data/app/overrides/views/admin_boxable_checkbox.rb +6 -0
  14. data/app/views/solidus_subscription_boxes/subscription_boxes/_box_variants.html.erb +13 -0
  15. data/app/views/solidus_subscription_boxes/subscription_boxes/_manage.html.erb +34 -0
  16. data/app/views/solidus_subscription_boxes/subscription_boxes/get_started.html.erb +44 -0
  17. data/app/views/spree/admin/products/_boxable_checkbox.html.erb +8 -0
  18. data/app/views/spree/admin/variants/_boxable_checkbox.html.erb +8 -0
  19. data/config/routes.rb +2 -1
  20. data/db/migrate/20170919054537_add_boxable_to_spree_variants.rb +5 -0
  21. data/db/migrate/20170919063437_add_boxable_variant_id_to_solidus_subscription_boxes_subscription_periods.rb +5 -0
  22. data/lib/solidus_subscription_boxes/version.rb +1 -1
  23. metadata +16 -108
  24. data/app/views/solidus_subscription_boxes/subscription_boxes/get_started.html.slim +0 -41
  25. data/test/dummy/README.rdoc +0 -28
  26. data/test/dummy/Rakefile +0 -6
  27. data/test/dummy/app/assets/config/manifest.js +0 -5
  28. data/test/dummy/app/assets/javascripts/application.js +0 -13
  29. data/test/dummy/app/assets/javascripts/cable.js +0 -13
  30. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  31. data/test/dummy/app/channels/application_cable/channel.rb +0 -4
  32. data/test/dummy/app/channels/application_cable/connection.rb +0 -4
  33. data/test/dummy/app/controllers/application_controller.rb +0 -5
  34. data/test/dummy/app/helpers/application_helper.rb +0 -2
  35. data/test/dummy/app/jobs/application_job.rb +0 -2
  36. data/test/dummy/app/mailers/application_mailer.rb +0 -4
  37. data/test/dummy/app/models/application_record.rb +0 -3
  38. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  39. data/test/dummy/app/views/layouts/mailer.html.erb +0 -13
  40. data/test/dummy/app/views/layouts/mailer.text.erb +0 -1
  41. data/test/dummy/bin/bundle +0 -3
  42. data/test/dummy/bin/rails +0 -4
  43. data/test/dummy/bin/rake +0 -4
  44. data/test/dummy/bin/setup +0 -29
  45. data/test/dummy/bin/update +0 -29
  46. data/test/dummy/bin/yarn +0 -11
  47. data/test/dummy/config.ru +0 -4
  48. data/test/dummy/config/application.rb +0 -29
  49. data/test/dummy/config/boot.rb +0 -5
  50. data/test/dummy/config/cable.yml +0 -10
  51. data/test/dummy/config/database.yml +0 -25
  52. data/test/dummy/config/environment.rb +0 -5
  53. data/test/dummy/config/environments/development.rb +0 -41
  54. data/test/dummy/config/environments/production.rb +0 -79
  55. data/test/dummy/config/environments/test.rb +0 -42
  56. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
  57. data/test/dummy/config/initializers/assets.rb +0 -11
  58. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  59. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  60. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  61. data/test/dummy/config/initializers/inflections.rb +0 -16
  62. data/test/dummy/config/initializers/mime_types.rb +0 -4
  63. data/test/dummy/config/initializers/session_store.rb +0 -3
  64. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  65. data/test/dummy/config/locales/en.yml +0 -23
  66. data/test/dummy/config/puma.rb +0 -56
  67. data/test/dummy/config/routes.rb +0 -3
  68. data/test/dummy/config/secrets.yml +0 -22
  69. data/test/dummy/config/spring.rb +0 -6
  70. data/test/dummy/package.json +0 -5
  71. data/test/dummy/public/404.html +0 -67
  72. data/test/dummy/public/422.html +0 -67
  73. data/test/dummy/public/500.html +0 -66
  74. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  75. data/test/dummy/public/apple-touch-icon.png +0 -0
  76. data/test/dummy/public/favicon.ico +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bad5a503566baf04da9924b0ac7fa639742b7c4f
4
- data.tar.gz: c157d9f6caf3deb72923c500dbf46153d3656662
3
+ metadata.gz: 19d70a2f190a741ce51914cc242c60656f13fdf0
4
+ data.tar.gz: e2838ccaa1bb385fb93f4345a211e4fd2420142a
5
5
  SHA512:
6
- metadata.gz: 4f7fecf3715c09ef68f06260982373f10074bb83469e1029a2b3968d884208afa6090fd8b717ab09bd92dc63439c494145894ae0109e3c212dc1965d5c5d7e6d
7
- data.tar.gz: 8d14d44c1ad4148a5c15911cb62e7561e9f4a5d8f596c9c8e29196c1779297195f31b3a575bbbce613d6aafaca6a95d95d06ff0cb4b71ab65a688d40496722eb
6
+ metadata.gz: af355b4a5280c981971007a90ed0cf2e13500bfa8454514e3e241f1fd08f0848e49c9e0616092519793f40430c8af8ffde7abce34478bc23b2a9d9f968d280a5
7
+ data.tar.gz: 4340de2b00ad8f8a05aebdaad9c4aee83f1db6eaddae42442f070ad82b68a304a7d8a6371281403e7d9505bd202fb869c7beed52810cfa3b44425f681ae40260
@@ -1,18 +1,54 @@
1
1
  // Meal Selection Page
2
+ function subscriptionFormatDate(date) {
3
+ var monthNames = [
4
+ "January", "February", "March",
5
+ "April", "May", "June", "July",
6
+ "August", "September", "October",
7
+ "November", "December"
8
+ ];
9
+
10
+ var day = date.getDate();
11
+ var monthIndex = date.getMonth();
12
+
13
+ return monthNames[monthIndex] + ' ' + day;
14
+ }
15
+
16
+
2
17
  $('.meal-selection').click( function(event) {
3
- if( $('.meal-selection input:checked').length > 3) {
4
- alert("Please only pick 3 feals");
18
+ if( $('body.get_started').length > 0 ) {
19
+ var submitButtonText = "Subscribe Now";
20
+ } else {
21
+ var submitButtonText = "Update My Order";
22
+ }
23
+
24
+ if( $('.meal-selection input:checked').length > 3 ) {
25
+ alert("Please only pick 3 meals");
5
26
  event.target.checked = false;
6
27
  event.preventDefault();
7
28
  }
8
29
 
9
- if( $('.meal-selection input:checked').length == 3) {
10
- $('input[type=submit]').removeAttr('disabled');
11
- $('input[type=submit]').attr("value","Subscribe Now");
30
+ if( $('.meal-selection input:checked').length == 3 ) {
31
+ $('input[type=submit].meal-update').removeAttr('disabled');
32
+ $('input[type=submit].meal-update').attr("value",submitButtonText);
12
33
  } else {
13
- $('input[type=submit]').attr("disabled","disabled");
14
- $('input[type=submit]').attr("value","Choose " + (3 - $('.meal-selection input:checked').length).toString() + " More");
34
+ $('input[type=submit].meal-update').attr("disabled","disabled");
35
+ $('input[type=submit].meal-update').attr("value","Choose " + (3 - $('.meal-selection input:checked').length).toString() + " More");
15
36
  }
16
37
 
17
38
  $('.number_more_meals').text(3 - $('.meal-selection input:checked').length);
18
39
  });
40
+
41
+ $(document).ajaxSuccess(function( event, xhr, settings ) {
42
+ if( settings.url.match(/\/api\/v1\/subscriptions\/\d*\/skip/) ) {
43
+ var actionableDate = new Date(Date.parse(xhr.responseJSON.actionable_date));
44
+ $('.actionable-date-update').text(subscriptionFormatDate(actionableDate));
45
+ }
46
+ if( settings.url.match(/\/api\/v1\/subscriptions\/\d*\/cancel/) ) {
47
+ $('.manage-subscription').remove();
48
+ }
49
+ if( settings.url.match(/\/api\/v1\/subscriptions\/\d*$/)) {
50
+ alert("You've updated your subscription.")
51
+ }
52
+ });
53
+
54
+
@@ -13,3 +13,5 @@
13
13
  *= require_tree .
14
14
  *= require_self
15
15
  */
16
+
17
+ @import "subscription_box"
@@ -0,0 +1,36 @@
1
+ $color-disabled: #283428;
2
+
3
+ .meal img {
4
+ width: 100%;
5
+ }
6
+ .row-centered {
7
+ text-align: center;
8
+ -webkit-justify-content: center; /* Safari */
9
+ justify-content: center;
10
+ }
11
+ .col-centered {
12
+ display: inline-block;
13
+ float: none;
14
+ /* reset the text-align */
15
+ text-align: left;
16
+ /* inline-block space fix */
17
+ margin-right: -4px;
18
+ }
19
+ .flash.notice {
20
+ background-color: green;
21
+ }
22
+ .flash.success {
23
+ background-color: green;
24
+ }
25
+ .meal-selector .meal-selection, {
26
+ .image {
27
+ border: 4px transparent solid;
28
+ cursor: pointer;
29
+ &:hover {
30
+ border: 4px $color-disabled solid;
31
+ }
32
+ }
33
+ input:checked + .image {
34
+ border: 4px green solid;
35
+ }
36
+ }
@@ -1,6 +1,6 @@
1
1
  class SolidusSubscriptionBoxes::SubscriptionBoxesController < Spree::StoreController
2
2
  def get_started
3
- @box_variants = SolidusSubscriptionBoxes::SubscriptionPeriod.current.variants
4
- @variant_id = Spree::Variant.first.id
3
+ @variant = Spree::Product.find_by_slug(params[:product_id]).master
4
+ @box_variants = SolidusSubscriptionBoxes::SubscriptionPeriod.where(boxable_variant_id: @variant.id).current.variants
5
5
  end
6
6
  end
@@ -0,0 +1,15 @@
1
+ module SolidusSubscriptions
2
+ module Models
3
+ module Checkout
4
+ module UpdatePreferenceDecorator
5
+ def order
6
+ byebug
7
+ order = super
8
+ order.box_preference = subscription.box_preference unless order.box_preference.present?
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ SolidusSubscriptions::Checkout.prepend(SolidusSubscriptions::Models::Checkout::UpdatePreferenceDecorator)
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ module Controllers
3
+ module Api
4
+ module V1
5
+ module Subscriptions
6
+ module MealPreferenceDecorator
7
+ def subscription_params
8
+ params.require(:subscription).permit(
9
+ line_items_attributes: line_item_attributes,
10
+ shipping_address_attributes: Spree::PermittedAttributes.address_attributes,
11
+ box_preference_attributes: {}
12
+ )
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ SolidusSubscriptions::Api::V1::SubscriptionsController.prepend(Spree::Controllers::Api::V1::Subscriptions::MealPreferenceDecorator)
@@ -0,0 +1,30 @@
1
+ module Spree
2
+ module Controllers
3
+ module Users
4
+ module SetBoxPreferenceDecorator
5
+ def self.prepended(base)
6
+ base.before_action(
7
+ :set_box_preferences,
8
+ only: :show
9
+ )
10
+ end
11
+
12
+ private
13
+ def set_box_preferences
14
+ @user.generate_spree_api_key! unless @user.spree_api_key
15
+
16
+ must_change_subscriptions = @user.subscriptions.find_all do |subscription|
17
+ subscription.box_preference.nil?
18
+ end
19
+
20
+ must_change_subscriptions.each do |subscription|
21
+ potential_variants = SolidusSubscriptionBoxes::SubscriptionPeriod.period_for_date(subscription.actionable_date).variants
22
+ subscription.box_preference = SolidusSubscriptionBoxes::BoxPreference.new(preference: potential_variants.sample(3).map(&:id))
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ Spree::UsersController.prepend(Spree::Controllers::Users::SetBoxPreferenceDecorator)
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module Products
3
+ module Boxable
4
+ def self.prepended(klass)
5
+ klass.delegate :"boxable", :"boxable=", to: :find_or_build_master
6
+ end
7
+ end
8
+ end
9
+ end
10
+
11
+ Spree::Product.prepend Spree::Products::Boxable
@@ -1,4 +1,11 @@
1
1
  module SolidusSubscriptionBoxes
2
2
  module ApplicationHelper
3
+ def is_checked(preferable, variant)
4
+ if preferable.present? && preferable.box_preference.preference.map(&:to_i).include?(variant.id)
5
+ "checked"
6
+ else
7
+ ""
8
+ end
9
+ end
3
10
  end
4
11
  end
@@ -1,10 +1,15 @@
1
1
  module SolidusSubscriptionBoxes
2
2
  class SubscriptionPeriod < ApplicationRecord
3
- has_many :subscription_periods_variants, class_name: 'SolidusSubscriptionBoxes::SubscriptionPeriodsVariant', foreign_key: 'solidus_subscription_boxes_subscription_period_id'
3
+ has_many :subscription_periods_variants, foreign_key: :solidus_subscription_boxes_subscription_period_id, class_name: 'SolidusSubscriptionBoxes::SubscriptionPeriodsVariant'
4
4
  has_many :variants, through: :subscription_periods_variants, class_name: 'Spree::Variant'
5
+ belongs_to :boxable_variant, class_name: 'Spree::Variant', foreign_key: 'boxable_variant_id'
5
6
 
6
7
  def self.current
7
- SubscriptionPeriod.where('start_date <= ?', Date.today).order('start_date desc').last
8
+ period_for_date(Date.today)
9
+ end
10
+
11
+ def self.period_for_date(date)
12
+ SubscriptionPeriod.where('start_date <= ?', date).order('start_date desc').last
8
13
  end
9
14
  end
10
15
  end
@@ -1,6 +1,6 @@
1
1
  module SolidusSubscriptionBoxes
2
2
  class SubscriptionPeriodsVariant < ApplicationRecord
3
3
  belongs_to :variant, class_name: 'Spree::Variant', foreign_key: :spree_variant_id
4
- belongs_to :subscription_period, class_name: 'SolidusSubscriptionBoxes::SubscriptionPeriod', foreign_key: 'solidus_subscription_boxes_subscription_period_id'
4
+ belongs_to :subscription_period, foreign_key: :solidus_subscription_boxes_subscription_period_id, class_name: 'SolidusSubscriptionBoxes::SubscriptionPeriod'
5
5
  end
6
6
  end
@@ -0,0 +1,6 @@
1
+ Deface::Override.new(
2
+ virtual_path: "spree/admin/products/_form",
3
+ name: "solidus_subscriptions_product_boxable_checkbox",
4
+ insert_after: "[data-hook='admin_product_form_meta']",
5
+ partial: "spree/admin/products/boxable_checkbox"
6
+ )
@@ -0,0 +1,13 @@
1
+ <div class="meal-selector row row-centered">
2
+ <%- box_variants.each do |variant| %>
3
+ <div class="col-xs-12 col-md-4 col-centered text-center meal">
4
+ <label class="meal-selection">
5
+ <input class="hidden" type="checkbox" name="<%= preference_scope %>" value="<%= variant.id %>" <%= is_checked(preferable, variant) %>>
6
+ <div class="image">
7
+ <%= image_tag variant.display_image.attachment.url(:large) %>
8
+ </div>
9
+ <h4><%= variant.name %></h4>
10
+ </label>
11
+ </div>
12
+ <% end %>
13
+ </div>
@@ -0,0 +1,34 @@
1
+ <% @user.subscriptions.where(state: 'active').each do |subscription| %>
2
+ <div class="manage-subscription">
3
+ <h2>My Next Order (<span class="actionable-date-update"><%= subscription.actionable_date.strftime("%B %d") %></span>)</h2>
4
+ <%= form_with url: "/api/v1/subscriptions/#{subscription.id}", method: 'put', class: 'menu meal-selector' do |form| %>
5
+ <%= hidden_field_tag(:token, @user.spree_api_key) %>
6
+ <%= render partial: 'solidus_subscription_boxes/subscription_boxes/box_variants',
7
+ locals: {
8
+ box_variants: SolidusSubscriptionBoxes::SubscriptionPeriod.period_for_date(subscription.actionable_date).variants,
9
+ preference_scope: "subscription[box_preference_attributes][preference][]",
10
+ preferable: subscription
11
+ }
12
+ %>
13
+ <div class="row">
14
+ <div class="col-xs-12 content text-center">
15
+ <%= form.submit 'Update My Order', class: "btn btn-primary btn-large purchase-link meal-update" %>
16
+ </div>
17
+ </div>
18
+ <% end %>
19
+ <div class="row">
20
+ <div class="col-xs-12 col-md-3 col-md-push-3 content text-center">
21
+ <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/skip", class: 'menu' do |form| %>
22
+ <%= hidden_field_tag(:token, @user.spree_api_key) %>
23
+ <%= form.submit 'Skip My Next Order', class: "btn btn-primary btn-large purchase-link" %>
24
+ <% end %>
25
+ </div>
26
+ <div class="col-xs-12 col-md-3 col-md-push-3 content text-center">
27
+ <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/cancel", class: 'menu' do |form| %>
28
+ <%= hidden_field_tag(:token, @user.spree_api_key) %>
29
+ <%= form.submit 'Cancel', class: "btn btn-primary btn-large purchase-link" %>
30
+ <% end %>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ <% end %>
@@ -0,0 +1,44 @@
1
+ <div class="container-fluid">
2
+ <section class="how-it-works">
3
+ <div class="row text-center how-it-works background-grey">
4
+ <h1>Here's How It Works</h1>
5
+ <div class="col-xs-12 col-sm-3">
6
+ <h2 class="statistic">3</h2>
7
+ <h4>Delicious vegetarian lunches delivered every week</h4>
8
+ </div>
9
+ <div class="col-xs-12 col-sm-3 border-right">
10
+ <h2 class="statistic">Sunday</h2>
11
+ <h4>Food shows up at your door</h4>
12
+ </div>
13
+ <div class="col-xs-12 col-sm-3 border-right">
14
+ <h2 class="statistic">$36</h2>
15
+ <h4>Paid Weekly<h4>
16
+ </div>
17
+ <div class="col-xs-12 col-sm-3 border-right">
18
+ <h2 class="statistic">20</h2>
19
+ <h4>Pounds of greenhouse emissions potentially saved every week</h4>
20
+ </div>
21
+ </div>
22
+ </section>
23
+ </div>
24
+
25
+ <div class="menu">
26
+ <h1 class="text-center">Select your first three meals</h1>
27
+ <div>
28
+ <%= form_for :order, url: '/orders/populate' do |f| %>
29
+ <%= render partial: 'box_variants', locals: {box_variants: @box_variants, preference_scope: "box_preference_attributes[preference][]", preferable: f.object} %>
30
+ <div class="row">
31
+ <div class="col-xs-12 content text-center">
32
+ <%= hidden_field_tag :variant_id, @variant.id %>
33
+ <%= hidden_field_tag :quantity, 1 %>
34
+ <%= hidden_field_tag :'subscription_line_item[quantity]', 1 %>
35
+ <%= hidden_field_tag :'subscription_line_item[subscribable_id]', 1 %>
36
+ <%= hidden_field_tag :'subscription_line_item[interval_length]', 1 %>
37
+ <%= hidden_field_tag :'subscription_line_item[interval_units]', 'week' %>
38
+ <%= f.submit 'Choose 3 More', onclick: "window.dataLayer.push({event: 'click', clickAction:'selectorPurchase'})", class: "btn btn-primary btn-large purchase-link meal-update", disabled: 'disabled', :'data-disable-with' => 'Submitting...' %>
39
+ </div>
40
+ </div>
41
+ <% end %>
42
+ </div>
43
+ </div>
44
+
@@ -0,0 +1,8 @@
1
+ <% if !@product.has_variants? && @product.subscribable then %>
2
+ <div class="field four columns checkbox" data-hook="boxable">
3
+ <%= f.label :boxable do %>
4
+ <%= f.check_box :boxable %>
5
+ <%= Spree::Product.human_attribute_name(:boxable) %>
6
+ <% end %>
7
+ </div>
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if @variant.subscribable then %>
2
+ <div class="field four columns checkbox" data-hook="boxable">
3
+ <%= f.label :boxable do %>
4
+ <%= f.check_box :boxable %>
5
+ <%= Spree::Variant.human_attribute_name(:boxable) %>
6
+ <% end %>
7
+ </div>
8
+ <% end %>
@@ -1,3 +1,4 @@
1
1
  SolidusSubscriptionBoxes::Engine.routes.draw do
2
- get '/get-started' => 'subscription_boxes#get_started'
2
+ mount SolidusSubscriptions::Engine, at: '/'
3
+ get '/get-started/:product_id' => 'subscription_boxes#get_started'
3
4
  end
@@ -0,0 +1,5 @@
1
+ class AddBoxableToSpreeVariants < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :spree_variants, :boxable, :boolean
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddBoxableVariantIdToSolidusSubscriptionBoxesSubscriptionPeriods < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :solidus_subscription_boxes_subscription_periods, :boxable_variant_id, :integer
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module SolidusSubscriptionBoxes
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_subscription_boxes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Jackson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-16 00:00:00.000000000 Z
11
+ date: 2017-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus
@@ -135,10 +135,15 @@ files:
135
135
  - app/assets/javascripts/solidus_subscription_boxes/application.js
136
136
  - app/assets/javascripts/solidus_subscription_boxes/subscription_selection.js
137
137
  - app/assets/stylesheets/solidus_subscription_boxes/application.css
138
+ - app/assets/stylesheets/solidus_subscription_boxes/subscription_box.css.scss
138
139
  - app/controllers/solidus_subscription_boxes/application_controller.rb
139
140
  - app/controllers/solidus_subscription_boxes/subscription_boxes_controller.rb
141
+ - app/decorators/solidus_subscriptions/models/checkout/update_preference_decorator.rb
142
+ - app/decorators/spree/controllers/api/v1/subscriptions/meal_preference_decorator.rb
140
143
  - app/decorators/spree/controllers/orders/meal_preference_decorator.rb
144
+ - app/decorators/spree/controllers/users/set_box_preference_decorator.rb
141
145
  - app/decorators/spree/orders/preference_decorator.rb
146
+ - app/decorators/spree/products/boxable_decorator.rb
142
147
  - app/helpers/solidus_subscription_boxes/application_helper.rb
143
148
  - app/jobs/solidus_subscription_boxes/application_job.rb
144
149
  - app/mailers/solidus_subscription_boxes/application_mailer.rb
@@ -146,68 +151,23 @@ files:
146
151
  - app/models/solidus_subscription_boxes/box_preference.rb
147
152
  - app/models/solidus_subscription_boxes/subscription_period.rb
148
153
  - app/models/solidus_subscription_boxes/subscription_periods_variant.rb
154
+ - app/overrides/views/admin_boxable_checkbox.rb
149
155
  - app/views/layouts/solidus_subscription_boxes/application.html.erb
150
- - app/views/solidus_subscription_boxes/subscription_boxes/get_started.html.slim
156
+ - app/views/solidus_subscription_boxes/subscription_boxes/_box_variants.html.erb
157
+ - app/views/solidus_subscription_boxes/subscription_boxes/_manage.html.erb
158
+ - app/views/solidus_subscription_boxes/subscription_boxes/get_started.html.erb
159
+ - app/views/spree/admin/products/_boxable_checkbox.html.erb
160
+ - app/views/spree/admin/variants/_boxable_checkbox.html.erb
151
161
  - config/routes.rb
152
162
  - db/migrate/20170609065436_create_solidus_subscription_boxes_box_preferences.rb
153
163
  - db/migrate/20170906015531_create_solidus_subscription_boxes_subscription_periods.rb
154
164
  - db/migrate/20170906021159_create_solidus_subscription_boxes_subscription_periods_variants.rb
165
+ - db/migrate/20170919054537_add_boxable_to_spree_variants.rb
166
+ - db/migrate/20170919063437_add_boxable_variant_id_to_solidus_subscription_boxes_subscription_periods.rb
155
167
  - lib/solidus_subscription_boxes.rb
156
168
  - lib/solidus_subscription_boxes/engine.rb
157
169
  - lib/solidus_subscription_boxes/version.rb
158
170
  - lib/tasks/solidus_subscription_boxes_tasks.rake
159
- - test/dummy/README.rdoc
160
- - test/dummy/Rakefile
161
- - test/dummy/app/assets/config/manifest.js
162
- - test/dummy/app/assets/javascripts/application.js
163
- - test/dummy/app/assets/javascripts/cable.js
164
- - test/dummy/app/assets/stylesheets/application.css
165
- - test/dummy/app/channels/application_cable/channel.rb
166
- - test/dummy/app/channels/application_cable/connection.rb
167
- - test/dummy/app/controllers/application_controller.rb
168
- - test/dummy/app/helpers/application_helper.rb
169
- - test/dummy/app/jobs/application_job.rb
170
- - test/dummy/app/mailers/application_mailer.rb
171
- - test/dummy/app/models/application_record.rb
172
- - test/dummy/app/views/layouts/application.html.erb
173
- - test/dummy/app/views/layouts/mailer.html.erb
174
- - test/dummy/app/views/layouts/mailer.text.erb
175
- - test/dummy/bin/bundle
176
- - test/dummy/bin/rails
177
- - test/dummy/bin/rake
178
- - test/dummy/bin/setup
179
- - test/dummy/bin/update
180
- - test/dummy/bin/yarn
181
- - test/dummy/config.ru
182
- - test/dummy/config/application.rb
183
- - test/dummy/config/boot.rb
184
- - test/dummy/config/cable.yml
185
- - test/dummy/config/database.yml
186
- - test/dummy/config/environment.rb
187
- - test/dummy/config/environments/development.rb
188
- - test/dummy/config/environments/production.rb
189
- - test/dummy/config/environments/test.rb
190
- - test/dummy/config/initializers/application_controller_renderer.rb
191
- - test/dummy/config/initializers/assets.rb
192
- - test/dummy/config/initializers/backtrace_silencers.rb
193
- - test/dummy/config/initializers/cookies_serializer.rb
194
- - test/dummy/config/initializers/filter_parameter_logging.rb
195
- - test/dummy/config/initializers/inflections.rb
196
- - test/dummy/config/initializers/mime_types.rb
197
- - test/dummy/config/initializers/session_store.rb
198
- - test/dummy/config/initializers/wrap_parameters.rb
199
- - test/dummy/config/locales/en.yml
200
- - test/dummy/config/puma.rb
201
- - test/dummy/config/routes.rb
202
- - test/dummy/config/secrets.yml
203
- - test/dummy/config/spring.rb
204
- - test/dummy/package.json
205
- - test/dummy/public/404.html
206
- - test/dummy/public/422.html
207
- - test/dummy/public/500.html
208
- - test/dummy/public/apple-touch-icon-precomposed.png
209
- - test/dummy/public/apple-touch-icon.png
210
- - test/dummy/public/favicon.ico
211
171
  - test/integration/navigation_test.rb
212
172
  - test/solidus_subscription_boxes_test.rb
213
173
  - test/test_helper.rb
@@ -231,63 +191,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
191
  version: '0'
232
192
  requirements: []
233
193
  rubyforge_project:
234
- rubygems_version: 2.4.6
194
+ rubygems_version: 2.6.11
235
195
  signing_key:
236
196
  specification_version: 4
237
197
  summary: Add subscription box support to Solidus
238
198
  test_files:
239
- - test/dummy/app/assets/config/manifest.js
240
- - test/dummy/app/assets/javascripts/application.js
241
- - test/dummy/app/assets/javascripts/cable.js
242
- - test/dummy/app/assets/stylesheets/application.css
243
- - test/dummy/app/channels/application_cable/channel.rb
244
- - test/dummy/app/channels/application_cable/connection.rb
245
- - test/dummy/app/controllers/application_controller.rb
246
- - test/dummy/app/helpers/application_helper.rb
247
- - test/dummy/app/jobs/application_job.rb
248
- - test/dummy/app/mailers/application_mailer.rb
249
- - test/dummy/app/models/application_record.rb
250
- - test/dummy/app/views/layouts/application.html.erb
251
- - test/dummy/app/views/layouts/mailer.html.erb
252
- - test/dummy/app/views/layouts/mailer.text.erb
253
- - test/dummy/bin/bundle
254
- - test/dummy/bin/rails
255
- - test/dummy/bin/rake
256
- - test/dummy/bin/setup
257
- - test/dummy/bin/update
258
- - test/dummy/bin/yarn
259
- - test/dummy/config/application.rb
260
- - test/dummy/config/boot.rb
261
- - test/dummy/config/cable.yml
262
- - test/dummy/config/database.yml
263
- - test/dummy/config/environment.rb
264
- - test/dummy/config/environments/development.rb
265
- - test/dummy/config/environments/production.rb
266
- - test/dummy/config/environments/test.rb
267
- - test/dummy/config/initializers/application_controller_renderer.rb
268
- - test/dummy/config/initializers/assets.rb
269
- - test/dummy/config/initializers/backtrace_silencers.rb
270
- - test/dummy/config/initializers/cookies_serializer.rb
271
- - test/dummy/config/initializers/filter_parameter_logging.rb
272
- - test/dummy/config/initializers/inflections.rb
273
- - test/dummy/config/initializers/mime_types.rb
274
- - test/dummy/config/initializers/session_store.rb
275
- - test/dummy/config/initializers/wrap_parameters.rb
276
- - test/dummy/config/locales/en.yml
277
- - test/dummy/config/puma.rb
278
- - test/dummy/config/routes.rb
279
- - test/dummy/config/secrets.yml
280
- - test/dummy/config/spring.rb
281
- - test/dummy/config.ru
282
- - test/dummy/package.json
283
- - test/dummy/public/404.html
284
- - test/dummy/public/422.html
285
- - test/dummy/public/500.html
286
- - test/dummy/public/apple-touch-icon-precomposed.png
287
- - test/dummy/public/apple-touch-icon.png
288
- - test/dummy/public/favicon.ico
289
- - test/dummy/Rakefile
290
- - test/dummy/README.rdoc
291
199
  - test/integration/navigation_test.rb
292
200
  - test/solidus_subscription_boxes_test.rb
293
201
  - test/test_helper.rb