solidus_subscription_boxes 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/LICENSE +29 -29
 - data/README.md +26 -26
 - data/Rakefile +47 -47
 - data/app/assets/config/solidus_subscription_boxes_manifest.js +2 -2
 - data/app/assets/javascripts/solidus_subscription_boxes/application.js +13 -13
 - data/app/assets/javascripts/solidus_subscription_boxes/subscription_selection.js +64 -64
 - data/app/assets/stylesheets/_solidus_subscription_boxes.scss +16 -16
 - data/app/assets/stylesheets/solidus_subscription_boxes/subscription_box.css.scss +29 -29
 - data/app/controllers/solidus_subscription_boxes/application_controller.rb +4 -4
 - data/app/controllers/solidus_subscription_boxes/subscription_boxes_controller.rb +6 -6
 - data/app/decorators/solidus_subscriptions/models/checkout/update_preference_decorator.rb +13 -14
 - data/app/decorators/spree/controllers/api/v1/subscriptions/meal_preference_decorator.rb +20 -20
 - data/app/decorators/spree/controllers/orders/meal_preference_decorator.rb +35 -35
 - data/app/decorators/spree/controllers/users/set_box_preference_decorator.rb +31 -31
 - data/app/decorators/spree/orders/preference_decorator.rb +14 -14
 - data/app/decorators/spree/products/boxable_decorator.rb +15 -11
 - data/app/decorators/spree/variants/subscription_period_decorator.rb +14 -0
 - data/app/helpers/solidus_subscription_boxes/application_helper.rb +19 -19
 - data/app/jobs/solidus_subscription_boxes/application_job.rb +4 -4
 - data/app/mailers/solidus_subscription_boxes/application_mailer.rb +6 -6
 - data/app/models/solidus_subscription_boxes/application_record.rb +5 -5
 - data/app/models/solidus_subscription_boxes/box_preference.rb +10 -10
 - data/app/models/solidus_subscription_boxes/subscription_period.rb +15 -15
 - data/app/models/solidus_subscription_boxes/subscription_periods_variant.rb +6 -6
 - data/app/overrides/views/admin_boxable_checkbox.rb +5 -5
 - data/app/views/layouts/solidus_subscription_boxes/application.html.erb +14 -14
 - data/app/views/solidus_subscription_boxes/subscription_boxes/_box_variants.html.erb +14 -14
 - data/app/views/solidus_subscription_boxes/subscription_boxes/_manage.html.erb +39 -39
 - data/app/views/solidus_subscription_boxes/subscription_boxes/get_started.html.erb +52 -52
 - data/app/views/spree/admin/products/_boxable_checkbox.html.erb +27 -8
 - data/app/views/spree/admin/variants/_boxable_checkbox.html.erb +8 -8
 - data/config/routes.rb +4 -4
 - data/db/migrate/20170609065436_create_solidus_subscription_boxes_box_preferences.rb +10 -10
 - data/db/migrate/20170906015531_create_solidus_subscription_boxes_subscription_periods.rb +9 -9
 - data/db/migrate/20170906021159_create_solidus_subscription_boxes_subscription_periods_variants.rb +10 -10
 - data/db/migrate/20170919054537_add_boxable_to_spree_variants.rb +5 -5
 - data/db/migrate/20170919063437_add_boxable_variant_id_to_solidus_subscription_boxes_subscription_periods.rb +5 -5
 - data/lib/solidus_subscription_boxes.rb +4 -4
 - data/lib/solidus_subscription_boxes/engine.rb +13 -13
 - data/lib/solidus_subscription_boxes/version.rb +3 -3
 - data/lib/tasks/solidus_subscription_boxes_tasks.rake +4 -4
 - data/test/integration/navigation_test.rb +8 -8
 - data/test/solidus_subscription_boxes_test.rb +7 -7
 - data/test/test_helper.rb +21 -21
 - metadata +4 -3
 
| 
         @@ -1,6 +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"
         
     | 
| 
      
 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 
6 
     | 
    
         
             
            )
         
     | 
| 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <!DOCTYPE html>
         
     | 
| 
       2 
     | 
    
         
            -
            <html>
         
     | 
| 
       3 
     | 
    
         
            -
            <head>
         
     | 
| 
       4 
     | 
    
         
            -
              <title>SolidusSubscriptionBoxes</title>
         
     | 
| 
       5 
     | 
    
         
            -
              <%= stylesheet_link_tag    "solidus_subscription_boxes/application", media: "all" %>
         
     | 
| 
       6 
     | 
    
         
            -
              <%= javascript_include_tag "solidus_subscription_boxes/application" %>
         
     | 
| 
       7 
     | 
    
         
            -
              <%= csrf_meta_tags %>
         
     | 
| 
       8 
     | 
    
         
            -
            </head>
         
     | 
| 
       9 
     | 
    
         
            -
            <body>
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            <%= yield %>
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            </body>
         
     | 
| 
       14 
     | 
    
         
            -
            </html>
         
     | 
| 
      
 1 
     | 
    
         
            +
            <!DOCTYPE html>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 3 
     | 
    
         
            +
            <head>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <title>SolidusSubscriptionBoxes</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <%= stylesheet_link_tag    "solidus_subscription_boxes/application", media: "all" %>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <%= javascript_include_tag "solidus_subscription_boxes/application" %>
         
     | 
| 
      
 7 
     | 
    
         
            +
              <%= csrf_meta_tags %>
         
     | 
| 
      
 8 
     | 
    
         
            +
            </head>
         
     | 
| 
      
 9 
     | 
    
         
            +
            <body>
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            <%= yield %>
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            </body>
         
     | 
| 
      
 14 
     | 
    
         
            +
            </html>
         
     | 
| 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
                  <div class="image">
         
     | 
| 
       5 
     | 
    
         
            -
                    <%= image_tag variant.display_image.attachment.url(:large) %>
         
     | 
| 
       6 
     | 
    
         
            -
                    <h4><%= variant.name %></h4>
         
     | 
| 
       7 
     | 
    
         
            -
                  </div>
         
     | 
| 
       8 
     | 
    
         
            -
                  <div class="box-controls display-4">
         
     | 
| 
       9 
     | 
    
         
            -
                    <i class="fa fa-3 fa-minus-circle remove" aria-hidden="true"></i>
         
     | 
| 
       10 
     | 
    
         
            -
                    <input class="border-0 col-4 text-right" type="number" name="<%= preference_scope %>[<%= variant.id %>]" value="<%= preferable_value(preferable.box_preference, variant.id) %>" readonly>
         
     | 
| 
       11 
     | 
    
         
            -
                    <i class="fa fa-3 fa-plus-circle add" aria-hidden="true"></i>
         
     | 
| 
       12 
     | 
    
         
            -
                  </div>
         
     | 
| 
       13 
     | 
    
         
            -
                </div>
         
     | 
| 
       14 
     | 
    
         
            -
              <% end %>
         
     | 
| 
      
 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 
     | 
    
         
            +
                  <div class="image">
         
     | 
| 
      
 5 
     | 
    
         
            +
                    <%= image_tag variant.display_image.attachment.url(:large) %>
         
     | 
| 
      
 6 
     | 
    
         
            +
                    <h4><%= variant.name %></h4>
         
     | 
| 
      
 7 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <div class="box-controls display-4">
         
     | 
| 
      
 9 
     | 
    
         
            +
                    <i class="fa fa-3 fa-minus-circle remove" aria-hidden="true"></i>
         
     | 
| 
      
 10 
     | 
    
         
            +
                    <input class="border-0 col-4 text-right" type="number" name="<%= preference_scope %>[<%= variant.id %>]" value="<%= preferable_value(preferable.box_preference, variant.id) %>" readonly>
         
     | 
| 
      
 11 
     | 
    
         
            +
                    <i class="fa fa-3 fa-plus-circle add" aria-hidden="true"></i>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 14 
     | 
    
         
            +
              <% end %>
         
     | 
| 
       15 
15 
     | 
    
         
             
            </div>
         
     | 
| 
         @@ -1,40 +1,40 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
            		<div class="row">
         
     | 
| 
       5 
     | 
    
         
            -
                  <div class="col-xs-12 col-md-8">
         
     | 
| 
       6 
     | 
    
         
            -
                    <%= form_with url: "/api/v1/subscriptions/#{subscription.id}", method: 'put', class: 'menu meal-selector' do |form| %>
         
     | 
| 
       7 
     | 
    
         
            -
                      <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
       8 
     | 
    
         
            -
                      <%= render partial: 'solidus_subscription_boxes/subscription_boxes/box_variants',
         
     | 
| 
       9 
     | 
    
         
            -
                        locals: {
         
     | 
| 
       10 
     | 
    
         
            -
                          box_variants: SolidusSubscriptionBoxes::SubscriptionPeriod.period_for_date(subscription.actionable_date).variants,
         
     | 
| 
       11 
     | 
    
         
            -
                          preference_scope: "subscription[box_preference_attributes][preference]",
         
     | 
| 
       12 
     | 
    
         
            -
                          preferable: subscription
         
     | 
| 
       13 
     | 
    
         
            -
                        }
         
     | 
| 
       14 
     | 
    
         
            -
                      %>
         
     | 
| 
       15 
     | 
    
         
            -
                      <div class="row">
         
     | 
| 
       16 
     | 
    
         
            -
                        <div class="col-xs-12 content text-center">
         
     | 
| 
       17 
     | 
    
         
            -
                          <%= form.submit 'Update My Order', class: "btn btn-primary btn-large purchase-link meal-update" %>
         
     | 
| 
       18 
     | 
    
         
            -
                        </div>
         
     | 
| 
       19 
     | 
    
         
            -
                      </div>
         
     | 
| 
       20 
     | 
    
         
            -
                    <% end %>
         
     | 
| 
       21 
     | 
    
         
            -
                  </div>
         
     | 
| 
       22 
     | 
    
         
            -
                  <div class="col-xs-12 col-md-4">
         
     | 
| 
       23 
     | 
    
         
            -
                    <div class="row">
         
     | 
| 
       24 
     | 
    
         
            -
                      <div class="col-xs-12 content text-center">
         
     | 
| 
       25 
     | 
    
         
            -
                        <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/skip", class: 'menu' do |form| %>
         
     | 
| 
       26 
     | 
    
         
            -
                          <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
       27 
     | 
    
         
            -
                          <%= form.submit 'Skip My Next Order', class: "btn btn-primary btn-large purchase-link" %>
         
     | 
| 
       28 
     | 
    
         
            -
                        <% end %>
         
     | 
| 
       29 
     | 
    
         
            -
                      </div>
         
     | 
| 
       30 
     | 
    
         
            -
                      <div class="col-xs-12 content text-center">
         
     | 
| 
       31 
     | 
    
         
            -
                        <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/cancel", class: 'menu' do |form| %>
         
     | 
| 
       32 
     | 
    
         
            -
                          <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
       33 
     | 
    
         
            -
                          <%= form.submit 'Cancel', class: "btn btn-primary btn-large purchase-link" %>
         
     | 
| 
       34 
     | 
    
         
            -
                        <% end %>
         
     | 
| 
       35 
     | 
    
         
            -
                      </div>
         
     | 
| 
       36 
     | 
    
         
            -
                    </div>
         
     | 
| 
       37 
     | 
    
         
            -
                  </div>
         
     | 
| 
       38 
     | 
    
         
            -
                </div>
         
     | 
| 
       39 
     | 
    
         
            -
            	</div>
         
     | 
| 
      
 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 
     | 
    
         
            +
            		<div class="row">
         
     | 
| 
      
 5 
     | 
    
         
            +
                  <div class="col-xs-12 col-md-8">
         
     | 
| 
      
 6 
     | 
    
         
            +
                    <%= form_with url: "/api/v1/subscriptions/#{subscription.id}", method: 'put', class: 'menu meal-selector' do |form| %>
         
     | 
| 
      
 7 
     | 
    
         
            +
                      <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
      
 8 
     | 
    
         
            +
                      <%= render partial: 'solidus_subscription_boxes/subscription_boxes/box_variants',
         
     | 
| 
      
 9 
     | 
    
         
            +
                        locals: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                          box_variants: SolidusSubscriptionBoxes::SubscriptionPeriod.period_for_date(subscription.actionable_date).variants,
         
     | 
| 
      
 11 
     | 
    
         
            +
                          preference_scope: "subscription[box_preference_attributes][preference]",
         
     | 
| 
      
 12 
     | 
    
         
            +
                          preferable: subscription
         
     | 
| 
      
 13 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14 
     | 
    
         
            +
                      %>
         
     | 
| 
      
 15 
     | 
    
         
            +
                      <div class="row">
         
     | 
| 
      
 16 
     | 
    
         
            +
                        <div class="col-xs-12 content text-center">
         
     | 
| 
      
 17 
     | 
    
         
            +
                          <%= form.submit 'Update My Order', class: "btn btn-primary btn-large purchase-link meal-update" %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                        </div>
         
     | 
| 
      
 19 
     | 
    
         
            +
                      </div>
         
     | 
| 
      
 20 
     | 
    
         
            +
                    <% end %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 22 
     | 
    
         
            +
                  <div class="col-xs-12 col-md-4">
         
     | 
| 
      
 23 
     | 
    
         
            +
                    <div class="row">
         
     | 
| 
      
 24 
     | 
    
         
            +
                      <div class="col-xs-12 content text-center">
         
     | 
| 
      
 25 
     | 
    
         
            +
                        <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/skip", class: 'menu' do |form| %>
         
     | 
| 
      
 26 
     | 
    
         
            +
                          <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
      
 27 
     | 
    
         
            +
                          <%= form.submit 'Skip My Next Order', class: "btn btn-primary btn-large purchase-link" %>
         
     | 
| 
      
 28 
     | 
    
         
            +
                        <% end %>
         
     | 
| 
      
 29 
     | 
    
         
            +
                      </div>
         
     | 
| 
      
 30 
     | 
    
         
            +
                      <div class="col-xs-12 content text-center">
         
     | 
| 
      
 31 
     | 
    
         
            +
                        <%= form_with url: "/api/v1/subscriptions/#{subscription.id}/cancel", class: 'menu' do |form| %>
         
     | 
| 
      
 32 
     | 
    
         
            +
                          <%= hidden_field_tag(:token, @user.spree_api_key) %>
         
     | 
| 
      
 33 
     | 
    
         
            +
                          <%= form.submit 'Cancel', class: "btn btn-primary btn-large purchase-link" %>
         
     | 
| 
      
 34 
     | 
    
         
            +
                        <% end %>
         
     | 
| 
      
 35 
     | 
    
         
            +
                      </div>
         
     | 
| 
      
 36 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 37 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 38 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 39 
     | 
    
         
            +
            	</div>
         
     | 
| 
       40 
40 
     | 
    
         
             
            <% end %>
         
     | 
| 
         @@ -1,52 +1,52 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <div class="container-fluid bg-jumbotron mb-5">
         
     | 
| 
       2 
     | 
    
         
            -
              <section class="how-it-works">
         
     | 
| 
       3 
     | 
    
         
            -
                <div class="row text-center how-it-works background-grey">
         
     | 
| 
       4 
     | 
    
         
            -
                  <div class="col-12 pt-4 pb-4">
         
     | 
| 
       5 
     | 
    
         
            -
                    <h1 class="font-weight-bold">Here's How It Works</h1>
         
     | 
| 
       6 
     | 
    
         
            -
                  </div>
         
     | 
| 
       7 
     | 
    
         
            -
                  <div class="col-12 col-sm">
         
     | 
| 
       8 
     | 
    
         
            -
                    <h2 class="statistic">3 meals</h2>
         
     | 
| 
       9 
     | 
    
         
            -
                    <h5>pick your meals each week</h4>
         
     | 
| 
       10 
     | 
    
         
            -
                  </div>
         
     | 
| 
       11 
     | 
    
         
            -
                  <span class="chevron right"></span>
         
     | 
| 
       12 
     | 
    
         
            -
                  <div class="col-12 col-sm">
         
     | 
| 
       13 
     | 
    
         
            -
                    <h2 class="statistic">$36</h2>
         
     | 
| 
       14 
     | 
    
         
            -
                    <h4>per week<h4>
         
     | 
| 
       15 
     | 
    
         
            -
                    <h5 class="font-weight-bold font-italic">Shipping is FREE</h4>
         
     | 
| 
       16 
     | 
    
         
            -
                  </div>
         
     | 
| 
       17 
     | 
    
         
            -
                  <span class="chevron right"></span>
         
     | 
| 
       18 
     | 
    
         
            -
                  <div class="col-12 col-sm">
         
     | 
| 
       19 
     | 
    
         
            -
                    <h2 class="statistic">Sunday</h2>
         
     | 
| 
       20 
     | 
    
         
            -
                    <h5>Delivered to your door</h4>
         
     | 
| 
       21 
     | 
    
         
            -
                  </div>
         
     | 
| 
       22 
     | 
    
         
            -
                  <span class="chevron right"></span>
         
     | 
| 
       23 
     | 
    
         
            -
                  <div class="col-12 col-sm">
         
     | 
| 
       24 
     | 
    
         
            -
                    <h2 class="statistic">NO</h2>
         
     | 
| 
       25 
     | 
    
         
            -
                    <h4 class="font-weight-bold">COMMITMENTS</h3>
         
     | 
| 
       26 
     | 
    
         
            -
                    <h5>cancel anytime, online</h4>
         
     | 
| 
       27 
     | 
    
         
            -
                  </div>
         
     | 
| 
       28 
     | 
    
         
            -
                </div>
         
     | 
| 
       29 
     | 
    
         
            -
              </section>
         
     | 
| 
       30 
     | 
    
         
            -
            </div>
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            <div class="menu">
         
     | 
| 
       33 
     | 
    
         
            -
              <h2 class="text-center">Choose Your First Three Meals</h2>
         
     | 
| 
       34 
     | 
    
         
            -
              <h4 class="text-center">We update the menu seasonally to use the freshest ingredients</h4>
         
     | 
| 
       35 
     | 
    
         
            -
              <div class="pt-5">
         
     | 
| 
       36 
     | 
    
         
            -
                <%= form_for :order, url: '/orders/populate' do |f| %>
         
     | 
| 
       37 
     | 
    
         
            -
                  <%= render partial: 'box_variants', locals: {box_variants: @box_variants, preference_scope: "box_preference_attributes[preference]", preferable: f.object} %>
         
     | 
| 
       38 
     | 
    
         
            -
                  <div class="row mt-5">
         
     | 
| 
       39 
     | 
    
         
            -
                    <div class="col-12 content text-center">
         
     | 
| 
       40 
     | 
    
         
            -
                      <%= hidden_field_tag :variant_id,  @variant.id %>
         
     | 
| 
       41 
     | 
    
         
            -
                      <%= hidden_field_tag :quantity, 1 %>
         
     | 
| 
       42 
     | 
    
         
            -
                      <%= hidden_field_tag :'subscription_line_item[quantity]', 1 %>
         
     | 
| 
       43 
     | 
    
         
            -
                      <%= hidden_field_tag :'subscription_line_item[subscribable_id]', 1 %>
         
     | 
| 
       44 
     | 
    
         
            -
                      <%= hidden_field_tag :'subscription_line_item[interval_length]', 1 %>
         
     | 
| 
       45 
     | 
    
         
            -
                      <%= hidden_field_tag :'subscription_line_item[interval_units]', 'week' %>
         
     | 
| 
       46 
     | 
    
         
            -
                      <%= f.submit 'Choose 3 More', onclick: "window.dataLayer.push({event: 'click', clickAction:'selectorPurchase'})", class: "btn btn-primary btn-lg purchase-link meal-update", disabled: 'disabled', :'data-disable-with' => 'Submitting...' %>
         
     | 
| 
       47 
     | 
    
         
            -
                    </div>
         
     | 
| 
       48 
     | 
    
         
            -
                  </div>
         
     | 
| 
       49 
     | 
    
         
            -
                <% end %>
         
     | 
| 
       50 
     | 
    
         
            -
              </div>
         
     | 
| 
       51 
     | 
    
         
            -
            </div>
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            <div class="container-fluid bg-jumbotron mb-5">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <section class="how-it-works">
         
     | 
| 
      
 3 
     | 
    
         
            +
                <div class="row text-center how-it-works background-grey">
         
     | 
| 
      
 4 
     | 
    
         
            +
                  <div class="col-12 pt-4 pb-4">
         
     | 
| 
      
 5 
     | 
    
         
            +
                    <h1 class="font-weight-bold">Here's How It Works</h1>
         
     | 
| 
      
 6 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <div class="col-12 col-sm">
         
     | 
| 
      
 8 
     | 
    
         
            +
                    <h2 class="statistic">3 meals</h2>
         
     | 
| 
      
 9 
     | 
    
         
            +
                    <h5>pick your meals each week</h4>
         
     | 
| 
      
 10 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <span class="chevron right"></span>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  <div class="col-12 col-sm">
         
     | 
| 
      
 13 
     | 
    
         
            +
                    <h2 class="statistic">$36</h2>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <h4>per week<h4>
         
     | 
| 
      
 15 
     | 
    
         
            +
                    <h5 class="font-weight-bold font-italic">Shipping is FREE</h4>
         
     | 
| 
      
 16 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <span class="chevron right"></span>
         
     | 
| 
      
 18 
     | 
    
         
            +
                  <div class="col-12 col-sm">
         
     | 
| 
      
 19 
     | 
    
         
            +
                    <h2 class="statistic">Sunday</h2>
         
     | 
| 
      
 20 
     | 
    
         
            +
                    <h5>Delivered to your door</h4>
         
     | 
| 
      
 21 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 22 
     | 
    
         
            +
                  <span class="chevron right"></span>
         
     | 
| 
      
 23 
     | 
    
         
            +
                  <div class="col-12 col-sm">
         
     | 
| 
      
 24 
     | 
    
         
            +
                    <h2 class="statistic">NO</h2>
         
     | 
| 
      
 25 
     | 
    
         
            +
                    <h4 class="font-weight-bold">COMMITMENTS</h3>
         
     | 
| 
      
 26 
     | 
    
         
            +
                    <h5>cancel anytime, online</h4>
         
     | 
| 
      
 27 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 28 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 29 
     | 
    
         
            +
              </section>
         
     | 
| 
      
 30 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            <div class="menu">
         
     | 
| 
      
 33 
     | 
    
         
            +
              <h2 class="text-center">Choose Your First Three Meals</h2>
         
     | 
| 
      
 34 
     | 
    
         
            +
              <h4 class="text-center">We update the menu seasonally to use the freshest ingredients</h4>
         
     | 
| 
      
 35 
     | 
    
         
            +
              <div class="pt-5">
         
     | 
| 
      
 36 
     | 
    
         
            +
                <%= form_for :order, url: '/orders/populate' do |f| %>
         
     | 
| 
      
 37 
     | 
    
         
            +
                  <%= render partial: 'box_variants', locals: {box_variants: @box_variants, preference_scope: "box_preference_attributes[preference]", preferable: f.object} %>
         
     | 
| 
      
 38 
     | 
    
         
            +
                  <div class="row mt-5">
         
     | 
| 
      
 39 
     | 
    
         
            +
                    <div class="col-12 content text-center">
         
     | 
| 
      
 40 
     | 
    
         
            +
                      <%= hidden_field_tag :variant_id,  @variant.id %>
         
     | 
| 
      
 41 
     | 
    
         
            +
                      <%= hidden_field_tag :quantity, 1 %>
         
     | 
| 
      
 42 
     | 
    
         
            +
                      <%= hidden_field_tag :'subscription_line_item[quantity]', 1 %>
         
     | 
| 
      
 43 
     | 
    
         
            +
                      <%= hidden_field_tag :'subscription_line_item[subscribable_id]', 1 %>
         
     | 
| 
      
 44 
     | 
    
         
            +
                      <%= hidden_field_tag :'subscription_line_item[interval_length]', 1 %>
         
     | 
| 
      
 45 
     | 
    
         
            +
                      <%= hidden_field_tag :'subscription_line_item[interval_units]', 'week' %>
         
     | 
| 
      
 46 
     | 
    
         
            +
                      <%= f.submit 'Choose 3 More', onclick: "window.dataLayer.push({event: 'click', clickAction:'selectorPurchase'})", class: "btn btn-primary btn-lg purchase-link meal-update", disabled: 'disabled', :'data-disable-with' => 'Submitting...' %>
         
     | 
| 
      
 47 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 48 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 49 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 50 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 51 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
         @@ -1,8 +1,27 @@ 
     | 
|
| 
       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 %>
         
     | 
| 
      
 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 %>
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            <% if @product.boxable then %>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <%= f.fields_for :master_attributes, @product.master do |master_form|%>
         
     | 
| 
      
 12 
     | 
    
         
            +
                <%= master_form.hidden_field :id%>
         
     | 
| 
      
 13 
     | 
    
         
            +
                <%= master_form.fields_for :"subscription_periods_attributes[]", SolidusSubscriptionBoxes::SubscriptionPeriod.new do |subscription_period_form| %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <%= subscription_period_form.text_field :start_date %>
         
     | 
| 
      
 15 
     | 
    
         
            +
                    <%= subscription_period_form.text_field :variant_ids, multiple: true %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <%= subscription_period_form.text_field :variant_ids, multiple: true %>
         
     | 
| 
      
 17 
     | 
    
         
            +
                    <%= subscription_period_form.text_field :variant_ids, multiple: true %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 19 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 20 
     | 
    
         
            +
              <%- @product.subscription_periods.order('start_date desc').each do |period| %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                <p><%= period.start_date %></p>
         
     | 
| 
      
 22 
     | 
    
         
            +
                <%- period.variants.each do |period_variant| %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                  <%= period_variant.name %>
         
     | 
| 
      
 24 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 25 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 26 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 27 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -1,8 +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 
     | 
    
         
            +
            <% 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 %>
         
     | 
    
        data/config/routes.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            SolidusSubscriptionBoxes::Engine.routes.draw do
         
     | 
| 
       2 
     | 
    
         
            -
              mount SolidusSubscriptions::Engine, at: '/'
         
     | 
| 
       3 
     | 
    
         
            -
              get '/get-started/:product_id' => 'subscription_boxes#get_started'
         
     | 
| 
       4 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            SolidusSubscriptionBoxes::Engine.routes.draw do
         
     | 
| 
      
 2 
     | 
    
         
            +
              mount SolidusSubscriptions::Engine, at: '/'
         
     | 
| 
      
 3 
     | 
    
         
            +
              get '/get-started/:product_id' => 'subscription_boxes#get_started'
         
     | 
| 
      
 4 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class CreateSolidusSubscriptionBoxesBoxPreferences < ActiveRecord::Migration[5.0]
         
     | 
| 
       2 
     | 
    
         
            -
              def change
         
     | 
| 
       3 
     | 
    
         
            -
                create_table :solidus_subscription_boxes_box_preferences do |t|
         
     | 
| 
       4 
     | 
    
         
            -
                  t.json :preference
         
     | 
| 
       5 
     | 
    
         
            -
                  t.references :preferable, polymorphic: true, index: { name: 'subscription_box_preferable' }
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
                  t.timestamps
         
     | 
| 
       8 
     | 
    
         
            -
                end
         
     | 
| 
       9 
     | 
    
         
            -
              end
         
     | 
| 
       10 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            class CreateSolidusSubscriptionBoxesBoxPreferences < ActiveRecord::Migration[5.0]
         
     | 
| 
      
 2 
     | 
    
         
            +
              def change
         
     | 
| 
      
 3 
     | 
    
         
            +
                create_table :solidus_subscription_boxes_box_preferences do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  t.json :preference
         
     | 
| 
      
 5 
     | 
    
         
            +
                  t.references :preferable, polymorphic: true, index: { name: 'subscription_box_preferable' }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  t.timestamps
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,9 +1,9 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class CreateSolidusSubscriptionBoxesSubscriptionPeriods < ActiveRecord::Migration[5.1]
         
     | 
| 
       2 
     | 
    
         
            -
              def change
         
     | 
| 
       3 
     | 
    
         
            -
                create_table :solidus_subscription_boxes_subscription_periods do |t|
         
     | 
| 
       4 
     | 
    
         
            -
                  t.date :start_date
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                  t.timestamps
         
     | 
| 
       7 
     | 
    
         
            -
                end
         
     | 
| 
       8 
     | 
    
         
            -
              end
         
     | 
| 
       9 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            class CreateSolidusSubscriptionBoxesSubscriptionPeriods < ActiveRecord::Migration[5.1]
         
     | 
| 
      
 2 
     | 
    
         
            +
              def change
         
     | 
| 
      
 3 
     | 
    
         
            +
                create_table :solidus_subscription_boxes_subscription_periods do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  t.date :start_date
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  t.timestamps
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
    
        data/db/migrate/20170906021159_create_solidus_subscription_boxes_subscription_periods_variants.rb
    CHANGED
    
    | 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class CreateSolidusSubscriptionBoxesSubscriptionPeriodsVariants < ActiveRecord::Migration[5.1]
         
     | 
| 
       2 
     | 
    
         
            -
              def change
         
     | 
| 
       3 
     | 
    
         
            -
                create_table :solidus_subscription_boxes_subscription_periods_variants do |t|
         
     | 
| 
       4 
     | 
    
         
            -
                  t.references :spree_variant, foreign_key: true, index: {name: 'subscription_box_period_variant'}
         
     | 
| 
       5 
     | 
    
         
            -
                  t.references :solidus_subscription_boxes_subscription_period, foreign_key: true, index: {name: 'subscription_box_period_period'}
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
                  t.timestamps
         
     | 
| 
       8 
     | 
    
         
            -
                end
         
     | 
| 
       9 
     | 
    
         
            -
              end
         
     | 
| 
       10 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            class CreateSolidusSubscriptionBoxesSubscriptionPeriodsVariants < ActiveRecord::Migration[5.1]
         
     | 
| 
      
 2 
     | 
    
         
            +
              def change
         
     | 
| 
      
 3 
     | 
    
         
            +
                create_table :solidus_subscription_boxes_subscription_periods_variants do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  t.references :spree_variant, foreign_key: true, index: {name: 'subscription_box_period_variant'}
         
     | 
| 
      
 5 
     | 
    
         
            +
                  t.references :solidus_subscription_boxes_subscription_period, foreign_key: true, index: {name: 'subscription_box_period_period'}
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  t.timestamps
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class AddBoxableToSpreeVariants < ActiveRecord::Migration[5.1]
         
     | 
| 
       2 
     | 
    
         
            -
              def change
         
     | 
| 
       3 
     | 
    
         
            -
                add_column :spree_variants, :boxable, :boolean
         
     | 
| 
       4 
     | 
    
         
            -
              end
         
     | 
| 
       5 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            class AddBoxableToSpreeVariants < ActiveRecord::Migration[5.1]
         
     | 
| 
      
 2 
     | 
    
         
            +
              def change
         
     | 
| 
      
 3 
     | 
    
         
            +
                add_column :spree_variants, :boxable, :boolean
         
     | 
| 
      
 4 
     | 
    
         
            +
              end
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,5 +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 
     | 
    
         
            +
            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,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require "solidus_subscription_boxes/engine"
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module SolidusSubscriptionBoxes
         
     | 
| 
       4 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            require "solidus_subscription_boxes/engine"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module SolidusSubscriptionBoxes
         
     | 
| 
      
 4 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module SolidusSubscriptionBoxes
         
     | 
| 
       2 
     | 
    
         
            -
              class Engine < ::Rails::Engine
         
     | 
| 
       3 
     | 
    
         
            -
                isolate_namespace SolidusSubscriptionBoxes
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
                def self.activate
         
     | 
| 
       6 
     | 
    
         
            -
                  Dir.glob(File.join(File.dirname(__FILE__), '../../app/decorators/**/*.rb')) do |c|
         
     | 
| 
       7 
     | 
    
         
            -
                    Rails.configuration.cache_classes ? require(c) : load(c)
         
     | 
| 
       8 
     | 
    
         
            -
                  end
         
     | 
| 
       9 
     | 
    
         
            -
                end
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                config.to_prepare(&method(:activate).to_proc)
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            module SolidusSubscriptionBoxes
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Engine < ::Rails::Engine
         
     | 
| 
      
 3 
     | 
    
         
            +
                isolate_namespace SolidusSubscriptionBoxes
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def self.activate
         
     | 
| 
      
 6 
     | 
    
         
            +
                  Dir.glob(File.join(File.dirname(__FILE__), '../../app/decorators/**/*.rb')) do |c|
         
     | 
| 
      
 7 
     | 
    
         
            +
                    Rails.configuration.cache_classes ? require(c) : load(c)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                config.to_prepare(&method(:activate).to_proc)
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     |