workarea 3.4.16 → 3.4.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +81 -0
- metadata +10 -579
- data/docs/Gemfile +0 -8
- data/docs/Gemfile.lock +0 -130
- data/docs/bin/middleman +0 -29
- data/docs/config.rb +0 -87
- data/docs/config.ru +0 -7
- data/docs/data/articles.yml +0 -157
- data/docs/package.json +0 -15
- data/docs/source/404.html.erb +0 -13
- data/docs/source/articles/access-routes-in-javascript.html.md +0 -33
- data/docs/source/articles/add-a-content-area.html.md +0 -169
- data/docs/source/articles/add-a-content-block-type.html.md +0 -334
- data/docs/source/articles/add-a-report.html.md +0 -202
- data/docs/source/articles/add-css-through-the-admin-ui.html.md +0 -30
- data/docs/source/articles/add-javascript-through-a-manifest.html.md +0 -367
- data/docs/source/articles/add-javascript-through-a-view.html.md +0 -80
- data/docs/source/articles/add-javascript-through-the-admin-ui.html.md +0 -30
- data/docs/source/articles/add-metrics.html.md +0 -58
- data/docs/source/articles/add-or-replace-a-pricing-calculator.html.md +0 -150
- data/docs/source/articles/add-remove-or-change-a-mongoid-validation.html.md +0 -147
- data/docs/source/articles/add-remove-or-change-a-product-template.html.md +0 -142
- data/docs/source/articles/add-remove-sort-and-group-storefront-search-filters.html.md +0 -483
- data/docs/source/articles/add-stylesheets-through-a-manifest.html.md +0 -276
- data/docs/source/articles/add-system-content.html.md +0 -138
- data/docs/source/articles/analytics-overview.html.md +0 -51
- data/docs/source/articles/analyze-storefront-search-results.html.md +0 -261
- data/docs/source/articles/api-overview.html.md +0 -35
- data/docs/source/articles/appending.html.md +0 -506
- data/docs/source/articles/application-document.html.md +0 -88
- data/docs/source/articles/automated-javascript-testing.html.md +0 -162
- data/docs/source/articles/b2b-overview.html.md +0 -64
- data/docs/source/articles/browser-and-device-support.html.md +0 -47
- data/docs/source/articles/change-product-placeholder-image.html.md +0 -39
- data/docs/source/articles/change-storefront-search-results.html.md +0 -283
- data/docs/source/articles/change-the-storefront-product-pricing-ui.html.md +0 -348
- data/docs/source/articles/change-the-storefront-search-filters-ui.html.md +0 -103
- data/docs/source/articles/checkout.html.md +0 -479
- data/docs/source/articles/commerce-model.html.md +0 -164
- data/docs/source/articles/configuration-for-hosting.html.md +0 -106
- data/docs/source/articles/configuration.html.md +0 -406
- data/docs/source/articles/configure-a-payment-gateway.html.md +0 -58
- data/docs/source/articles/configure-asset-storage.html.md +0 -29
- data/docs/source/articles/configure-asset-types.html.md +0 -18
- data/docs/source/articles/configure-contact-form-subjects-list.html.md +0 -24
- data/docs/source/articles/configure-imageoptim.html.md +0 -23
- data/docs/source/articles/configure-locales.html.md +0 -45
- data/docs/source/articles/configure-logins-and-authentication.html.md +0 -42
- data/docs/source/articles/configure-low-inventory-threshold.html.md +0 -26
- data/docs/source/articles/configure-product-image-sizes-and-processing.html.md +0 -28
- data/docs/source/articles/content.html.md +0 -554
- data/docs/source/articles/contentable.html.md +0 -41
- data/docs/source/articles/contribute-code.html.md +0 -69
- data/docs/source/articles/contribute-documentation.html.md +0 -60
- data/docs/source/articles/create-a-custom-discount.html.md +0 -234
- data/docs/source/articles/create-a-new-app.html.md +0 -131
- data/docs/source/articles/create-a-plugin.html.md +0 -19
- data/docs/source/articles/create-a-style-guide.html.md +0 -71
- data/docs/source/articles/create-a-theme.html.md +0 -134
- data/docs/source/articles/css-architectural-overview.html.md +0 -89
- data/docs/source/articles/customize-a-helper.html.md +0 -91
- data/docs/source/articles/decoration.html.md +0 -415
- data/docs/source/articles/define-and-configure-inventory-policies.html.md +0 -107
- data/docs/source/articles/documentation-style-guide.html.md +0 -48
- data/docs/source/articles/documentation.html.md +0 -54
- data/docs/source/articles/domain-modeling.html.md +0 -82
- data/docs/source/articles/error-pages.html.md.erb +0 -95
- data/docs/source/articles/extension-overview.html.md +0 -152
- data/docs/source/articles/favicon-support.html.md +0 -112
- data/docs/source/articles/feature-spec-helper-stylesheet.html.md +0 -25
- data/docs/source/articles/featurejs-and-feature-spec-helper.html.md +0 -20
- data/docs/source/articles/help-and-support.html.md +0 -34
- data/docs/source/articles/html-fragment-caching.html.md +0 -46
- data/docs/source/articles/http-caching.html.md +0 -43
- data/docs/source/articles/i18n.html.md +0 -35
- data/docs/source/articles/images-flow.html.md +0 -10
- data/docs/source/articles/index-storefront-search-documents.html.md +0 -104
- data/docs/source/articles/infrastructure.html.md +0 -46
- data/docs/source/articles/installing.html.md +0 -61
- data/docs/source/articles/integrate-a-payment-gateway.html.md +0 -124
- data/docs/source/articles/integrate-a-web-analytics-provider.html.md +0 -35
- data/docs/source/articles/integrate-an-inventory-management-system.html.md +0 -88
- data/docs/source/articles/integrating-with-other-software.html.md +0 -59
- data/docs/source/articles/inventory.html.md +0 -352
- data/docs/source/articles/javascript-coding-standards.html.md +0 -30
- data/docs/source/articles/javascript-modules.html.md +0 -174
- data/docs/source/articles/javascript-overview.html.md +0 -62
- data/docs/source/articles/javascript-reference-documentation.html.md +0 -51
- data/docs/source/articles/javascript-templates.html.md +0 -52
- data/docs/source/articles/low-level-caching.html.md +0 -25
- data/docs/source/articles/maintain-a-plugin.html.md +0 -12
- data/docs/source/articles/maintenance-policy.html.md +0 -79
- data/docs/source/articles/navigable.html.md +0 -51
- data/docs/source/articles/navigating-the-code.html.md +0 -149
- data/docs/source/articles/navigation.html.md +0 -386
- data/docs/source/articles/order-life-cycle.html.md +0 -546
- data/docs/source/articles/order-pricing.html.md +0 -389
- data/docs/source/articles/orders-and-items.html.md +0 -210
- data/docs/source/articles/orders.html.md +0 -66
- data/docs/source/articles/overriding.html.md +0 -155
- data/docs/source/articles/overview.html.md +0 -43
- data/docs/source/articles/plugins-overview.html.md +0 -12
- data/docs/source/articles/prerequisites-and-dependencies.html.md +0 -202
- data/docs/source/articles/products.html.md.erb +0 -1270
- data/docs/source/articles/progressive-web-application-support.html.md +0 -148
- data/docs/source/articles/rails-asset-manifests.html.md +0 -33
- data/docs/source/articles/rails-asset-view-helpers.html.md +0 -25
- data/docs/source/articles/reading-data.html.md +0 -10
- data/docs/source/articles/releasable.html.md +0 -37
- data/docs/source/articles/report-a-bug.html.md +0 -75
- data/docs/source/articles/ruby-coding-standards.html.md +0 -10
- data/docs/source/articles/run-sidekiq-in-a-local-environment.html.md +0 -40
- data/docs/source/articles/searching.html.md +0 -1005
- data/docs/source/articles/security-policy.html.md +0 -42
- data/docs/source/articles/seeds.html.md +0 -345
- data/docs/source/articles/shipping.html.md +0 -756
- data/docs/source/articles/sort-and-exclude-product-options.html.md +0 -47
- data/docs/source/articles/storefront-search-features.html.md +0 -568
- data/docs/source/articles/storefront-searches.html.md +0 -126
- data/docs/source/articles/style-guides.html.md +0 -21
- data/docs/source/articles/stylesheet-coding-standards.html.md +0 -24
- data/docs/source/articles/stylesheets-overview.html.md +0 -67
- data/docs/source/articles/swappable-list-data-structure.html.md +0 -81
- data/docs/source/articles/system-emails.html.md +0 -102
- data/docs/source/articles/taggable.html.md +0 -8
- data/docs/source/articles/test-a-credit-card-transaction.html.md +0 -16
- data/docs/source/articles/test-if-a-plugin-is-installed.html.md +0 -34
- data/docs/source/articles/testing.html.md +0 -914
- data/docs/source/articles/themes-overview.html.md +0 -155
- data/docs/source/articles/translate-administrable-content.html.md +0 -14
- data/docs/source/articles/translate-javascript-content.html.md +0 -16
- data/docs/source/articles/translate-or-customize-message-content.html.md +0 -29
- data/docs/source/articles/translate-or-customize-static-content.html.md +0 -30
- data/docs/source/articles/use-an-existing-workarea-app.html.md +0 -108
- data/docs/source/articles/view-models.html.md +0 -509
- data/docs/source/articles/views.html.md +0 -14
- data/docs/source/articles/workers.html.md +0 -613
- data/docs/source/articles/writing-data.html.md +0 -10
- data/docs/source/cli.html.md +0 -163
- data/docs/source/favicon.ico +0 -0
- data/docs/source/images/3-variants-1-option.png +0 -0
- data/docs/source/images/3-variants-3-options.png +0 -0
- data/docs/source/images/3-years-primary-image.png +0 -0
- data/docs/source/images/404-storefront-error-page.png +0 -0
- data/docs/source/images/404-system-content-admin.png +0 -0
- data/docs/source/images/404.jpg +0 -0
- data/docs/source/images/5-years-primary-image.png +0 -0
- data/docs/source/images/activity-dashboard.png +0 -0
- data/docs/source/images/activity-for-object.png +0 -0
- data/docs/source/images/activity-ui.png +0 -0
- data/docs/source/images/adding-captioned-image-block-custom-icon.png +0 -0
- data/docs/source/images/adding-captioned-image-block-default-icon.png +0 -0
- data/docs/source/images/admin-alerts-ui.png +0 -0
- data/docs/source/images/admin-category-range-filters.png +0 -0
- data/docs/source/images/admin-for-3-column-hero.png +0 -0
- data/docs/source/images/admin-help-index.png +0 -0
- data/docs/source/images/admin-help-ui.png +0 -0
- data/docs/source/images/admin-javascript.png +0 -0
- data/docs/source/images/admin-notification-for-deactivated-discount.png +0 -0
- data/docs/source/images/admin-notifications-ui.png +0 -0
- data/docs/source/images/admin-product-show-page.png +0 -0
- data/docs/source/images/admin-products-index-page.png +0 -0
- data/docs/source/images/admin-range-filters.png +0 -0
- data/docs/source/images/admin-style-guides-navigation.png +0 -0
- data/docs/source/images/after-re-seeding.png +0 -0
- data/docs/source/images/after-seeding-localhost-3000.png +0 -0
- data/docs/source/images/after-seeding.png +0 -0
- data/docs/source/images/arrow.svg +0 -1
- data/docs/source/images/arrow_white.svg +0 -1
- data/docs/source/images/aws-resource-map.png +0 -0
- data/docs/source/images/backordered-until-output-on-inventory-sku-card.png +0 -0
- data/docs/source/images/before-seeding-localhost-3000.png +0 -0
- data/docs/source/images/before-seeding.png +0 -0
- data/docs/source/images/browsing-workarea-versions-on-the-web.png +0 -0
- data/docs/source/images/bulk-asset-upload-on-assets-index-page.png +0 -0
- data/docs/source/images/bulk-asset-upload-while-editing-content.png +0 -0
- data/docs/source/images/bundle-show-workarea-core.png +0 -0
- data/docs/source/images/bundle-show-workarea.png +0 -0
- data/docs/source/images/calendar-for-backordered-until-field.png +0 -0
- data/docs/source/images/captioned-image-block-in-storefront.png +0 -0
- data/docs/source/images/captioned-image-content-block-storefront-component-style-guide.png +0 -0
- data/docs/source/images/cart-system-content-in-admin.png +0 -0
- data/docs/source/images/cart-system-content-in-storefront.png +0 -0
- data/docs/source/images/checkout-addresses-guest.png +0 -0
- data/docs/source/images/checkout-addresses-user.png +0 -0
- data/docs/source/images/checkout-confirmation.png +0 -0
- data/docs/source/images/checkout-flow-0.png +0 -0
- data/docs/source/images/checkout-flow-1.png +0 -0
- data/docs/source/images/checkout-flow-2.png +0 -0
- data/docs/source/images/checkout-flow-3.png +0 -0
- data/docs/source/images/checkout-flow-4.png +0 -0
- data/docs/source/images/checkout-payment-guest.png +0 -0
- data/docs/source/images/checkout-payment-user.png +0 -0
- data/docs/source/images/checkout-shipping.png +0 -0
- data/docs/source/images/color-picker-component-admin-style-guide.png +0 -0
- data/docs/source/images/color-picker-component-on-content-editing-screen.png +0 -0
- data/docs/source/images/commerce-model-carts-orders.png +0 -0
- data/docs/source/images/commerce-model-order-pricing.png +0 -0
- data/docs/source/images/commerce-model.png +0 -0
- data/docs/source/images/configuring-an-index-pattern-in-kibana.png +0 -0
- data/docs/source/images/content-block-presets.png +0 -0
- data/docs/source/images/content-search-customization.png +0 -0
- data/docs/source/images/country-with-region-data-in-address-form.png +0 -0
- data/docs/source/images/country-without-region-data-in-address-form.png +0 -0
- data/docs/source/images/create-content-block-preset-ui.png +0 -0
- data/docs/source/images/credit-card-icons.png +0 -0
- data/docs/source/images/css-added-through-admin.png +0 -0
- data/docs/source/images/css-admin-ui.png +0 -0
- data/docs/source/images/current-configuration-shown-in-admin-settings.png +0 -0
- data/docs/source/images/customer-impersonation-in-admin.png +0 -0
- data/docs/source/images/customer-impersonation-in-store-front.png +0 -0
- data/docs/source/images/date-filter-same-day.png +0 -0
- data/docs/source/images/developer-toolbar-in-store-front.png +0 -0
- data/docs/source/images/discounts-sorted-by-most-redeemed.png +0 -0
- data/docs/source/images/edit-help-article.png +0 -0
- data/docs/source/images/editing-content-for-search-customization.png +0 -0
- data/docs/source/images/editing-dynamic-captioned-image-block.png +0 -0
- data/docs/source/images/editing-product-fields-in-the-admin.png +0 -0
- data/docs/source/images/editing-search-system-content.png +0 -0
- data/docs/source/images/editing-static-captioned-image-block-custom-icon.png +0 -0
- data/docs/source/images/editing-static-captioned-image-block-default-icon.png +0 -0
- data/docs/source/images/external.svg +0 -1
- data/docs/source/images/favicon_16.png +0 -0
- data/docs/source/images/favicon_180.png +0 -0
- data/docs/source/images/favicon_32.png +0 -0
- data/docs/source/images/filters-all.png +0 -0
- data/docs/source/images/filters-control.png +0 -0
- data/docs/source/images/filters-custom.png +0 -0
- data/docs/source/images/filters-groups.png +0 -0
- data/docs/source/images/filters-material.png +0 -0
- data/docs/source/images/filters-omitted.png +0 -0
- data/docs/source/images/filters-pinned.png +0 -0
- data/docs/source/images/filters-range.png +0 -0
- data/docs/source/images/filters-sorted.png +0 -0
- data/docs/source/images/filters-wrapping-to-second-line-in-admin.png +0 -0
- data/docs/source/images/generic-product-template-images-no-options-selected.png +0 -0
- data/docs/source/images/generic-product-template-images-options-selected.png +0 -0
- data/docs/source/images/generic-template.png +0 -0
- data/docs/source/images/hosting.svg +0 -1
- data/docs/source/images/image-group-content-block-in-storefront.png +0 -0
- data/docs/source/images/images.svg +0 -1
- data/docs/source/images/import-export-screenshot.png +0 -0
- data/docs/source/images/invalid-display.png +0 -0
- data/docs/source/images/itcss.png +0 -0
- data/docs/source/images/kibana-dev-tools-console.png +0 -0
- data/docs/source/images/layout-content-admin-with-2-areas.png +0 -0
- data/docs/source/images/layout-content-admin-with-3-areas.png +0 -0
- data/docs/source/images/link-to-search-system-content.png +0 -0
- data/docs/source/images/logo.svg +0 -1
- data/docs/source/images/menu.svg +0 -2
- data/docs/source/images/mongo-replica-set.svg +0 -1
- data/docs/source/images/multi-column-hero-blocks.png +0 -0
- data/docs/source/images/option-selects-product-template-images-options-selected.png +0 -0
- data/docs/source/images/option-selects-template.png +0 -0
- data/docs/source/images/option-thumbnails-template.png +0 -0
- data/docs/source/images/order-item-total-price-diagram.png +0 -0
- data/docs/source/images/order-pricing-cart-example.png +0 -0
- data/docs/source/images/order-pricing-example-adjustments.png +0 -0
- data/docs/source/images/order-pricing-example-totals.png +0 -0
- data/docs/source/images/order-pricing-placed-order-example.png +0 -0
- data/docs/source/images/order-shipping-total-diagram.png +0 -0
- data/docs/source/images/order-show-with-multiple-tenders.png +0 -0
- data/docs/source/images/order-subtotal-price-diagram.png +0 -0
- data/docs/source/images/order-tax-total-diagram.png +0 -0
- data/docs/source/images/order-total-price-diagram.png +0 -0
- data/docs/source/images/order-total-value-diagram.png +0 -0
- data/docs/source/images/orders-dashboard-links.png +0 -0
- data/docs/source/images/oval.svg +0 -1
- data/docs/source/images/payment-icon-storefront-style-guide.png +0 -0
- data/docs/source/images/people-dashboard-links.png +0 -0
- data/docs/source/images/price-adjustments-diagram.png +0 -0
- data/docs/source/images/price-display-no-options.png +0 -0
- data/docs/source/images/price-display-options-selected.png +0 -0
- data/docs/source/images/pricing-calculators-diagram.png +0 -0
- data/docs/source/images/product-list-content-block-admin.png +0 -0
- data/docs/source/images/product-list-content-block-in-store-front.png +0 -0
- data/docs/source/images/promo-products-excluded-autocomplete-results-after.png +0 -0
- data/docs/source/images/promo-products-excluded-featured-category-results-after.png +0 -0
- data/docs/source/images/promo-products-excluded-recommendations-results-after.png +0 -0
- data/docs/source/images/promo-products-excluded-search-category-results-after.png +0 -0
- data/docs/source/images/promo-products-excluded-search-results-after.png +0 -0
- data/docs/source/images/promo-products-included-autocomplete-results-before.png +0 -0
- data/docs/source/images/promo-products-included-featured-category-results-before.png +0 -0
- data/docs/source/images/promo-products-included-recommendations-results-before.png +0 -0
- data/docs/source/images/promo-products-included-search-category-results-before.png +0 -0
- data/docs/source/images/promo-products-included-search-results-before.png +0 -0
- data/docs/source/images/rails-version-constraint.png +0 -0
- data/docs/source/images/re-enable-discount.png +0 -0
- data/docs/source/images/reading-data.svg +0 -1
- data/docs/source/images/readme-hero.png +0 -0
- data/docs/source/images/redesigned-customized-sort-for-search-results.png +0 -0
- data/docs/source/images/reviews-summary-above-share-buttons.png +0 -0
- data/docs/source/images/reviews-summary-below-product-name.png +0 -0
- data/docs/source/images/reviews-summary-below-share-buttons.png +0 -0
- data/docs/source/images/reviews-summary-removed.png +0 -0
- data/docs/source/images/rsa-fingerprint-for-stash.png +0 -0
- data/docs/source/images/ruby-version-constraint.png +0 -0
- data/docs/source/images/script-tag-added-through-admin.png +0 -0
- data/docs/source/images/search-analysis-admin-alternate-rendering.png +0 -0
- data/docs/source/images/search-analysis-admin.png +0 -0
- data/docs/source/images/search-quality-report.png +0 -0
- data/docs/source/images/search.svg +0 -1
- data/docs/source/images/searching-for-cart-system-content-in-admin.png +0 -0
- data/docs/source/images/searching-for-layout-system-content-in-admin.png +0 -0
- data/docs/source/images/seeded-admin.png +0 -0
- data/docs/source/images/seeds-from-plugins.png +0 -0
- data/docs/source/images/seo-metadata-automation-ui.png +0 -0
- data/docs/source/images/show-password-button.png +0 -0
- data/docs/source/images/storefront-autocomplete.png +0 -0
- data/docs/source/images/storefront-category-summary-content-block.png +0 -0
- data/docs/source/images/storefront-category.png +0 -0
- data/docs/source/images/storefront-product-after-overriding.png +0 -0
- data/docs/source/images/storefront-product-before-overriding.png +0 -0
- data/docs/source/images/storefront-product-browse-page.png +0 -0
- data/docs/source/images/storefront-product-recommendations.png +0 -0
- data/docs/source/images/storefront-product-show-page.png +0 -0
- data/docs/source/images/storefront-requests-and-search-requests.png +0 -0
- data/docs/source/images/storefront-search-request-handling.png +0 -0
- data/docs/source/images/storefront-search-response-creation.png +0 -0
- data/docs/source/images/storefront-search.png +0 -0
- data/docs/source/images/storefront-style-guides-navigation.png +0 -0
- data/docs/source/images/styles.css +0 -3
- data/docs/source/images/tax-categories-ui.png +0 -0
- data/docs/source/images/tax-rates-ui.png +0 -0
- data/docs/source/images/unpurchasable-product.png +0 -0
- data/docs/source/images/url-redirects-filtering.png +0 -0
- data/docs/source/images/utility-nav-area-in-admin.png +0 -0
- data/docs/source/images/utility-nav-area-in-storefront.png +0 -0
- data/docs/source/images/validation-message-in-storefront.png +0 -0
- data/docs/source/images/view-model-interface.png +0 -0
- data/docs/source/images/viewing-workarea-version-in-source.png +0 -0
- data/docs/source/images/workarea.svg +0 -1
- data/docs/source/images/worst-performing-searches-on-results-customization-page.png +0 -0
- data/docs/source/images/writing-data.svg +0 -1
- data/docs/source/index.html.erb +0 -166
- data/docs/source/javascripts/jquery.js +0 -2
- data/docs/source/javascripts/lunr.js +0 -7
- data/docs/source/javascripts/site.js +0 -299
- data/docs/source/javascripts/vendor/highlight.pack.js +0 -2
- data/docs/source/layouts/article.erb +0 -106
- data/docs/source/layouts/bare.erb +0 -46
- data/docs/source/layouts/layout.erb +0 -43
- data/docs/source/release-notes/workarea-3-0-0.html.md +0 -146
- data/docs/source/release-notes/workarea-3-0-1.html.md +0 -161
- data/docs/source/release-notes/workarea-3-0-10.html.md +0 -39
- data/docs/source/release-notes/workarea-3-0-11.html.md +0 -277
- data/docs/source/release-notes/workarea-3-0-12.html.md +0 -14
- data/docs/source/release-notes/workarea-3-0-13.html.md +0 -153
- data/docs/source/release-notes/workarea-3-0-14.html.md +0 -93
- data/docs/source/release-notes/workarea-3-0-15.html.md +0 -107
- data/docs/source/release-notes/workarea-3-0-16.html.md +0 -36
- data/docs/source/release-notes/workarea-3-0-17.html.md +0 -141
- data/docs/source/release-notes/workarea-3-0-18.html.md +0 -123
- data/docs/source/release-notes/workarea-3-0-19.html.md +0 -160
- data/docs/source/release-notes/workarea-3-0-2.html.md +0 -222
- data/docs/source/release-notes/workarea-3-0-20.html.md +0 -95
- data/docs/source/release-notes/workarea-3-0-21.html.md +0 -168
- data/docs/source/release-notes/workarea-3-0-22.html.md +0 -268
- data/docs/source/release-notes/workarea-3-0-23.html.md +0 -173
- data/docs/source/release-notes/workarea-3-0-24.html.md +0 -19
- data/docs/source/release-notes/workarea-3-0-25.html.md +0 -26
- data/docs/source/release-notes/workarea-3-0-26.html.md +0 -199
- data/docs/source/release-notes/workarea-3-0-27.html.md +0 -113
- data/docs/source/release-notes/workarea-3-0-28.html.md +0 -39
- data/docs/source/release-notes/workarea-3-0-29.html.md +0 -73
- data/docs/source/release-notes/workarea-3-0-3.html.md +0 -35
- data/docs/source/release-notes/workarea-3-0-30.html.md +0 -186
- data/docs/source/release-notes/workarea-3-0-31.html.md +0 -125
- data/docs/source/release-notes/workarea-3-0-32.html.md +0 -73
- data/docs/source/release-notes/workarea-3-0-33.html.md +0 -137
- data/docs/source/release-notes/workarea-3-0-34.html.md +0 -203
- data/docs/source/release-notes/workarea-3-0-35.html.md +0 -205
- data/docs/source/release-notes/workarea-3-0-36.html.md +0 -105
- data/docs/source/release-notes/workarea-3-0-37.html.md +0 -144
- data/docs/source/release-notes/workarea-3-0-38.html.md +0 -73
- data/docs/source/release-notes/workarea-3-0-39.html.md +0 -77
- data/docs/source/release-notes/workarea-3-0-4.html.md +0 -14
- data/docs/source/release-notes/workarea-3-0-40.html.md +0 -130
- data/docs/source/release-notes/workarea-3-0-41.html.md +0 -70
- data/docs/source/release-notes/workarea-3-0-42.html.md +0 -52
- data/docs/source/release-notes/workarea-3-0-43.html.md +0 -72
- data/docs/source/release-notes/workarea-3-0-44.html.md +0 -93
- data/docs/source/release-notes/workarea-3-0-45.html.md +0 -61
- data/docs/source/release-notes/workarea-3-0-46.html.md +0 -171
- data/docs/source/release-notes/workarea-3-0-47.html.md +0 -130
- data/docs/source/release-notes/workarea-3-0-48.html.md +0 -160
- data/docs/source/release-notes/workarea-3-0-49.html.md +0 -28
- data/docs/source/release-notes/workarea-3-0-5.html.md +0 -225
- data/docs/source/release-notes/workarea-3-0-50.html.md +0 -74
- data/docs/source/release-notes/workarea-3-0-51.html.md +0 -61
- data/docs/source/release-notes/workarea-3-0-52.html.md +0 -76
- data/docs/source/release-notes/workarea-3-0-53.html.md +0 -126
- data/docs/source/release-notes/workarea-3-0-54.html.md +0 -112
- data/docs/source/release-notes/workarea-3-0-55.html.md +0 -105
- data/docs/source/release-notes/workarea-3-0-56.html.md +0 -56
- data/docs/source/release-notes/workarea-3-0-57.html.md +0 -82
- data/docs/source/release-notes/workarea-3-0-58.html.md +0 -153
- data/docs/source/release-notes/workarea-3-0-59.html.md +0 -78
- data/docs/source/release-notes/workarea-3-0-6.html.md +0 -165
- data/docs/source/release-notes/workarea-3-0-60.html.md +0 -43
- data/docs/source/release-notes/workarea-3-0-61.html.md +0 -46
- data/docs/source/release-notes/workarea-3-0-62.html.md +0 -23
- data/docs/source/release-notes/workarea-3-0-63.html.md +0 -25
- data/docs/source/release-notes/workarea-3-0-64.html.md +0 -25
- data/docs/source/release-notes/workarea-3-0-65.html.md +0 -37
- data/docs/source/release-notes/workarea-3-0-7.html.md +0 -207
- data/docs/source/release-notes/workarea-3-0-8.html.md +0 -337
- data/docs/source/release-notes/workarea-3-0-9.html.md +0 -196
- data/docs/source/release-notes/workarea-3-1-0.html.md +0 -414
- data/docs/source/release-notes/workarea-3-1-1.html.md +0 -139
- data/docs/source/release-notes/workarea-3-1-10.html.md +0 -19
- data/docs/source/release-notes/workarea-3-1-11.html.md +0 -27
- data/docs/source/release-notes/workarea-3-1-12.html.md +0 -216
- data/docs/source/release-notes/workarea-3-1-13.html.md +0 -113
- data/docs/source/release-notes/workarea-3-1-14.html.md +0 -39
- data/docs/source/release-notes/workarea-3-1-15.html.md +0 -107
- data/docs/source/release-notes/workarea-3-1-16.html.md +0 -188
- data/docs/source/release-notes/workarea-3-1-17.html.md +0 -141
- data/docs/source/release-notes/workarea-3-1-18.html.md +0 -73
- data/docs/source/release-notes/workarea-3-1-19.html.md +0 -137
- data/docs/source/release-notes/workarea-3-1-2.html.md +0 -55
- data/docs/source/release-notes/workarea-3-1-20.html.md +0 -203
- data/docs/source/release-notes/workarea-3-1-21.html.md +0 -205
- data/docs/source/release-notes/workarea-3-1-22.html.md +0 -121
- data/docs/source/release-notes/workarea-3-1-23.html.md +0 -144
- data/docs/source/release-notes/workarea-3-1-24.html.md +0 -94
- data/docs/source/release-notes/workarea-3-1-25.html.md +0 -77
- data/docs/source/release-notes/workarea-3-1-26.html.md +0 -130
- data/docs/source/release-notes/workarea-3-1-27.html.md +0 -70
- data/docs/source/release-notes/workarea-3-1-28.html.md +0 -52
- data/docs/source/release-notes/workarea-3-1-29.html.md +0 -44
- data/docs/source/release-notes/workarea-3-1-3.html.md +0 -185
- data/docs/source/release-notes/workarea-3-1-30.html.md +0 -72
- data/docs/source/release-notes/workarea-3-1-31.html.md +0 -93
- data/docs/source/release-notes/workarea-3-1-32.html.md +0 -61
- data/docs/source/release-notes/workarea-3-1-33.html.md +0 -171
- data/docs/source/release-notes/workarea-3-1-34.html.md +0 -130
- data/docs/source/release-notes/workarea-3-1-35.html.md +0 -179
- data/docs/source/release-notes/workarea-3-1-36.html.md +0 -28
- data/docs/source/release-notes/workarea-3-1-37.html.md +0 -74
- data/docs/source/release-notes/workarea-3-1-38.html.md +0 -61
- data/docs/source/release-notes/workarea-3-1-39.html.md +0 -96
- data/docs/source/release-notes/workarea-3-1-4.html.md +0 -148
- data/docs/source/release-notes/workarea-3-1-40.html.md +0 -126
- data/docs/source/release-notes/workarea-3-1-41.html.md +0 -128
- data/docs/source/release-notes/workarea-3-1-42.html.md +0 -105
- data/docs/source/release-notes/workarea-3-1-43.html.md +0 -37
- data/docs/source/release-notes/workarea-3-1-44.html.md +0 -82
- data/docs/source/release-notes/workarea-3-1-45.html.md +0 -153
- data/docs/source/release-notes/workarea-3-1-46.html.md +0 -91
- data/docs/source/release-notes/workarea-3-1-47.html.md +0 -65
- data/docs/source/release-notes/workarea-3-1-48.html.md +0 -46
- data/docs/source/release-notes/workarea-3-1-49.html.md +0 -23
- data/docs/source/release-notes/workarea-3-1-5.html.md +0 -169
- data/docs/source/release-notes/workarea-3-1-50.html.md +0 -42
- data/docs/source/release-notes/workarea-3-1-51.html.md +0 -25
- data/docs/source/release-notes/workarea-3-1-52.html.md +0 -57
- data/docs/source/release-notes/workarea-3-1-6.html.md +0 -117
- data/docs/source/release-notes/workarea-3-1-7.html.md +0 -176
- data/docs/source/release-notes/workarea-3-1-8.html.md +0 -283
- data/docs/source/release-notes/workarea-3-1-9.html.md +0 -212
- data/docs/source/release-notes/workarea-3-2-0.html.md +0 -1705
- data/docs/source/release-notes/workarea-3-2-1.html.md +0 -216
- data/docs/source/release-notes/workarea-3-2-10.html.md +0 -237
- data/docs/source/release-notes/workarea-3-2-11.html.md +0 -121
- data/docs/source/release-notes/workarea-3-2-12.html.md +0 -145
- data/docs/source/release-notes/workarea-3-2-13.html.md +0 -138
- data/docs/source/release-notes/workarea-3-2-14.html.md +0 -77
- data/docs/source/release-notes/workarea-3-2-15.html.md +0 -130
- data/docs/source/release-notes/workarea-3-2-16.html.md +0 -111
- data/docs/source/release-notes/workarea-3-2-17.html.md +0 -52
- data/docs/source/release-notes/workarea-3-2-18.html.md +0 -44
- data/docs/source/release-notes/workarea-3-2-19.html.md +0 -72
- data/docs/source/release-notes/workarea-3-2-2.html.md +0 -145
- data/docs/source/release-notes/workarea-3-2-20.html.md +0 -93
- data/docs/source/release-notes/workarea-3-2-21.html.md +0 -61
- data/docs/source/release-notes/workarea-3-2-22.html.md +0 -154
- data/docs/source/release-notes/workarea-3-2-23.html.md +0 -130
- data/docs/source/release-notes/workarea-3-2-24.html.md +0 -200
- data/docs/source/release-notes/workarea-3-2-25.html.md +0 -28
- data/docs/source/release-notes/workarea-3-2-26.html.md +0 -94
- data/docs/source/release-notes/workarea-3-2-27.html.md +0 -61
- data/docs/source/release-notes/workarea-3-2-28.html.md +0 -96
- data/docs/source/release-notes/workarea-3-2-29.html.md +0 -126
- data/docs/source/release-notes/workarea-3-2-30.html.md +0 -112
- data/docs/source/release-notes/workarea-3-2-31.html.md +0 -105
- data/docs/source/release-notes/workarea-3-2-32.html.md +0 -56
- data/docs/source/release-notes/workarea-3-2-33.html.md +0 -82
- data/docs/source/release-notes/workarea-3-2-34.html.md +0 -153
- data/docs/source/release-notes/workarea-3-2-35.html.md +0 -91
- data/docs/source/release-notes/workarea-3-2-36.html.md +0 -118
- data/docs/source/release-notes/workarea-3-2-37.html.md +0 -46
- data/docs/source/release-notes/workarea-3-2-38.html.md +0 -23
- data/docs/source/release-notes/workarea-3-2-39.html.md +0 -42
- data/docs/source/release-notes/workarea-3-2-4.html.md +0 -109
- data/docs/source/release-notes/workarea-3-2-40.html.md +0 -25
- data/docs/source/release-notes/workarea-3-2-41.html.md +0 -90
- data/docs/source/release-notes/workarea-3-2-5.html.md +0 -186
- data/docs/source/release-notes/workarea-3-2-6.html.md +0 -173
- data/docs/source/release-notes/workarea-3-2-7.html.md +0 -89
- data/docs/source/release-notes/workarea-3-2-8.html.md +0 -137
- data/docs/source/release-notes/workarea-3-2-9.html.md +0 -219
- data/docs/source/release-notes/workarea-3-3-0.html.md +0 -1272
- data/docs/source/release-notes/workarea-3-3-1.html.md +0 -324
- data/docs/source/release-notes/workarea-3-3-10.html.md +0 -69
- data/docs/source/release-notes/workarea-3-3-11.html.md +0 -72
- data/docs/source/release-notes/workarea-3-3-12.html.md +0 -136
- data/docs/source/release-notes/workarea-3-3-13.html.md +0 -61
- data/docs/source/release-notes/workarea-3-3-14.html.md +0 -196
- data/docs/source/release-notes/workarea-3-3-15.html.md +0 -167
- data/docs/source/release-notes/workarea-3-3-16.html.md +0 -234
- data/docs/source/release-notes/workarea-3-3-17.html.md +0 -82
- data/docs/source/release-notes/workarea-3-3-18.html.md +0 -165
- data/docs/source/release-notes/workarea-3-3-19.html.md +0 -106
- data/docs/source/release-notes/workarea-3-3-2.html.md +0 -72
- data/docs/source/release-notes/workarea-3-3-20.html.md +0 -116
- data/docs/source/release-notes/workarea-3-3-21.html.md +0 -228
- data/docs/source/release-notes/workarea-3-3-22.html.md +0 -125
- data/docs/source/release-notes/workarea-3-3-23.html.md +0 -154
- data/docs/source/release-notes/workarea-3-3-24.html.md +0 -70
- data/docs/source/release-notes/workarea-3-3-25.html.md +0 -114
- data/docs/source/release-notes/workarea-3-3-26.html.md +0 -260
- data/docs/source/release-notes/workarea-3-3-27.html.md +0 -138
- data/docs/source/release-notes/workarea-3-3-28.html.md +0 -147
- data/docs/source/release-notes/workarea-3-3-29.html.md +0 -63
- data/docs/source/release-notes/workarea-3-3-3.html.md +0 -153
- data/docs/source/release-notes/workarea-3-3-30.html.md +0 -102
- data/docs/source/release-notes/workarea-3-3-31.html.md +0 -57
- data/docs/source/release-notes/workarea-3-3-32.html.md +0 -44
- data/docs/source/release-notes/workarea-3-3-33.html.md +0 -114
- data/docs/source/release-notes/workarea-3-3-34.html.md +0 -29
- data/docs/source/release-notes/workarea-3-3-4.html.md +0 -332
- data/docs/source/release-notes/workarea-3-3-5.html.md +0 -242
- data/docs/source/release-notes/workarea-3-3-6.html.md +0 -100
- data/docs/source/release-notes/workarea-3-3-7.html.md +0 -148
- data/docs/source/release-notes/workarea-3-3-8.html.md +0 -163
- data/docs/source/release-notes/workarea-3-3-9.html.md +0 -93
- data/docs/source/release-notes/workarea-3-4-0.html.md +0 -580
- data/docs/source/release-notes/workarea-3-4-1.html.md +0 -150
- data/docs/source/release-notes/workarea-3-4-10.html.md +0 -72
- data/docs/source/release-notes/workarea-3-4-11.html.md +0 -60
- data/docs/source/release-notes/workarea-3-4-12.html.md +0 -155
- data/docs/source/release-notes/workarea-3-4-15.html.md +0 -100
- data/docs/source/release-notes/workarea-3-4-16.html.md +0 -88
- data/docs/source/release-notes/workarea-3-4-2.html.md +0 -188
- data/docs/source/release-notes/workarea-3-4-3.html.md +0 -136
- data/docs/source/release-notes/workarea-3-4-4.html.md +0 -114
- data/docs/source/release-notes/workarea-3-4-5.html.md +0 -275
- data/docs/source/release-notes/workarea-3-4-6.html.md +0 -169
- data/docs/source/release-notes/workarea-3-4-7.html.md +0 -162
- data/docs/source/release-notes/workarea-3-4-8.html.md +0 -95
- data/docs/source/release-notes/workarea-3-4-9.html.md +0 -135
- data/docs/source/release-notes.html.md +0 -261
- data/docs/source/search.html.erb +0 -34
- data/docs/source/shared/_header.erb +0 -61
- data/docs/source/shared/_svgs.erb +0 -17
- data/docs/source/style_guide/index.html.erb +0 -382
- data/docs/source/stylesheets/_base.scss +0 -125
- data/docs/source/stylesheets/_components.scss +0 -669
- data/docs/source/stylesheets/_helpers.scss +0 -10
- data/docs/source/stylesheets/_opinions.scss +0 -42
- data/docs/source/stylesheets/_settings.scss +0 -56
- data/docs/source/stylesheets/_typography.scss +0 -119
- data/docs/source/stylesheets/site.css.scss +0 -14
- data/docs/source/stylesheets/vendor/_avalanche.scss +0 -328
- data/docs/source/stylesheets/vendor/_normalize.scss +0 -341
- data/docs/source/stylesheets/vendor/highlight/_tomorrow_night_blue.scss +0 -75
- data/docs/source/upgrade-guides/workarea-3-4-0.html.md +0 -152
- data/docs/source/upgrade-guides.html.md +0 -18
- data/docs/workarea_renderer.rb +0 -8
- data/docs/yarn.lock +0 -2522
@@ -1,41 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Contentable
|
3
|
-
excerpt: A contentable is an application document that includes the Workarea::Contentable module, and thereby has a 1:1 relationship with a content.
|
4
|
-
---
|
5
|
-
|
6
|
-
# Contentable
|
7
|
-
|
8
|
-
A <dfn>contentable</dfn> is an [application document](application-document.html) that includes the `Workarea::Contentable` module, and thereby has a 1:1 relationship with a [content](content.html#content).
|
9
|
-
|
10
|
-
Creating a contentable does not create its associated content, so a contentable is not guaranteed to have content. Pass a contentable to `Content.for` to `find_or_create` its associated content. The following examples use a [content page](content.html#page) as the contentable.
|
11
|
-
|
12
|
-
```
|
13
|
-
# Create a content page
|
14
|
-
page = Workarea::Content::Page.create!(name: 'Shopping Guide')
|
15
|
-
|
16
|
-
# No content yet
|
17
|
-
page.content
|
18
|
-
# => nil
|
19
|
-
|
20
|
-
# Create content for the page
|
21
|
-
content = Workarea::Content.for(page)
|
22
|
-
|
23
|
-
content.id.to_s
|
24
|
-
# => "58ac8489eefbfe3e5ac2ae58"
|
25
|
-
|
26
|
-
# Access the content from the page
|
27
|
-
page.reload
|
28
|
-
page.content.id.to_s
|
29
|
-
# => "58ac8489eefbfe3e5ac2ae58"
|
30
|
-
|
31
|
-
# Access the page from the content
|
32
|
-
content.contentable_type
|
33
|
-
# => "Workarea::Content::Page"
|
34
|
-
|
35
|
-
content.contentable_id.to_s
|
36
|
-
# => "58ac8489eefbfe3e5ac2ae56"
|
37
|
-
|
38
|
-
content.contentable.name
|
39
|
-
# => "Shopping Guide"
|
40
|
-
```
|
41
|
-
|
@@ -1,69 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Contribute Code
|
3
|
-
created_at: 2018/09/17
|
4
|
-
excerpt: Workarea is an open-source commerce platform, so anyone can contribute to it! In this guide, you'll how to make your own contributions to Workarea using GitHub and Pull Requests.
|
5
|
-
---
|
6
|
-
|
7
|
-
# Contribute Code
|
8
|
-
|
9
|
-
Workarea is an open-source commerce platform, so anyone can contribute to it! In this guide, you'll learn how to make your own contributions to Workarea using GitHub and Pull Requests. First off, if you don't already have a GitHub account, create one. With a GitHub account and a fork of the Workarea repo, you'll be able to contribute both code and [documentation](contribute-documentation.html) to the platform.
|
10
|
-
|
11
|
-
## Contributing Security Fixes
|
12
|
-
|
13
|
-
Any security changes should follow the [security policy](security-policy.html), which describes a process by which you can report vulnerabilities to the Workarea core team.
|
14
|
-
|
15
|
-
## Patching the Platform
|
16
|
-
|
17
|
-
Workarea will only accept patches to the platform that contain the minimum viable amount of code change to solve the problem you're having. For example, rewriting an entire class to suit a particular code style is not something that will be accepted in a patch version of the platform. The reason for this is that Workarea developers typically inspect the diff of each version that they upgrade their projects to, in order to spot any changes made in the platform that could affect their decorated code. It's much more difficult to understand what needed to be changed if there are a lot of unnecessary changes in the same file. Before making your pull request, make sure you're not doing any unnecessary refactors or rewrites of the code.
|
18
|
-
|
19
|
-
## Pull Requests
|
20
|
-
|
21
|
-
All changes to Workarea are made in the form of a pull request. Pull requests to the platform should be thought of not as an "approval process", but rather as a means of discussing a particular change. The only difference between a GitHub issue and a pull request is that the pull request contains code.
|
22
|
-
|
23
|
-
Pull requests must be made to their **lowest common denominator** version. If you're making changes for the next Workarea v3.0.x patch, you'll need to branch from (and pull request back to) the `v3.0-stable` branch. These branches are "merged up" all the way to `master` when we build for QA or on patch release day, so your changes will be applied to all subsequent patch versions that have a higher minor. Doing things this way prevents developers from having to make the same pull request against multiple branches of the platform, which can diffuse the discussion.
|
24
|
-
|
25
|
-
Before making the pull request, make sure your topic branch is up-to-date with its parent branch by rebasing against it. Be sure to `git pull` the parent branch _before_ rebasing so you know you're getting the absolute latest and greatest. Squash your commits and rebase against the branch that you will merge into so that your topic branch is exactly one commit ahead of the long running branch. This allows your changes to be easily cherry-picked for additional pull requests and keeps the commit log clean. Don't worry too much if this confuses you, GitHub allows the platform team to squash your commits into one if we need to.
|
26
|
-
|
27
|
-
### Commit Messages
|
28
|
-
|
29
|
-
Write your commit message as if it will be used as an entry in the changelog. Consider your audience: systems integrators upgrading to a new version of Workarea.
|
30
|
-
|
31
|
-
Follow [the seven rules of a great git commit message](http://chris.beams.io/posts/git-commit/#seven-rules). Use [Markdown](http://daringfireball.net/projects/markdown/) for text formatting, such as marking up a list or delimiting code (see example/template below).
|
32
|
-
|
33
|
-
Include the GitHub issue number (if any) on the last line(s) of the commit message.
|
34
|
-
|
35
|
-
**Note:** In the event your commit is not relevant to readers of the changelog, include the string "No changelog" within the commit message.
|
36
|
-
|
37
|
-
#### Commit Message Example/Template
|
38
|
-
|
39
|
-
```
|
40
|
-
Summarize changes in around 50 characters or less
|
41
|
-
|
42
|
-
More detailed explanatory text, if necessary. Wrap it to about 72
|
43
|
-
characters or so. In some contexts, the first line is treated as the
|
44
|
-
subject of the commit and the rest of the text as the body. The
|
45
|
-
blank line separating the summary from the body is critical (unless
|
46
|
-
you omit the body entirely); various tools like `log`, `shortlog`
|
47
|
-
and `rebase` can get confused if you run the two together.
|
48
|
-
|
49
|
-
Explain the problem that this commit is solving. Focus on why you
|
50
|
-
are making this change as opposed to how (the code explains that).
|
51
|
-
Are there side effects or other unintuitive consequenses of this
|
52
|
-
change? Here's the place to explain them.
|
53
|
-
|
54
|
-
Further paragraphs come after blank lines.
|
55
|
-
|
56
|
-
* Bullet points are okay, too.
|
57
|
-
|
58
|
-
* Use an asterisk for the bullet.
|
59
|
-
|
60
|
-
* Keep bullets flush left. Line breaks between bullets are optional.
|
61
|
-
|
62
|
-
Put the GitHub issue number on the last line, like this:
|
63
|
-
|
64
|
-
Closes #8
|
65
|
-
```
|
66
|
-
|
67
|
-
### Code Review
|
68
|
-
|
69
|
-
The next step is to actually make the pull request. When you push your branch to your fork on GitHub, a yellow window will appear above the code browser prompting you to create a new pull request. Click this button, and the contents of your commit (if you squashed!) will be automatically used as the initial message in the pull request. This is also using [Markdown](http://daringfireball.net/projects/markdown/), so you can mark up your PR message in any way you choose. Once the pull request is made, reviewers will be automatically added according to the `REVIEWERS` file at the root of the repo. If you wish to add any other reviewers, you can do so at this time. One (or more) of these developers will review your code and either choose to merge the request, **request changes** from you, or actually make a **suggestion** as a code diff in the PR comments. Code review can sometimes be a lengthy process, so be prepared to discuss your changes with platform developers, contributors to the platform, and just about anyone who's interested on the web.
|
@@ -1,60 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Contribute Documentation
|
3
|
-
created_at: 2018/07/31
|
4
|
-
excerpt: Learn how to contribute documentation to Workarea
|
5
|
-
---
|
6
|
-
|
7
|
-
# Contribute Documentation
|
8
|
-
|
9
|
-
Documentation contributions are welcome. These may be bug fixes or improvements you've identified on your own, or specific changes assigned to you by the Workarea core team.
|
10
|
-
|
11
|
-
Use the following process to submit documentation.
|
12
|
-
|
13
|
-
## 1. Create a Branch for Your Work
|
14
|
-
|
15
|
-
Follow the same process used for [contributing code](contribute-code.html). [Published documentation](documentation.html#published-documentation) represents a specific major or minor version of the platform, and you should make a pull request against the highest stable minor branch (e.g. `v3.x-stable`).
|
16
|
-
|
17
|
-
## 2. Make Your Changes
|
18
|
-
|
19
|
-
Apply your changes. Refer to the steps for specific types of changes below.
|
20
|
-
|
21
|
-
### Change a Document
|
22
|
-
|
23
|
-
1. Change the document's content as necessary
|
24
|
-
2. Update frontmatter if applicable
|
25
|
-
3. Ensure all your changes conform to the format of [document source files](documentation.html#document-source-files)
|
26
|
-
|
27
|
-
### Add an Image
|
28
|
-
|
29
|
-
1. Create the new image file, ensuring the file conforms to the format of [image source files](documentation.html#image-source-files)
|
30
|
-
2. Optimize the image file for the web
|
31
|
-
3. Add the new image file
|
32
|
-
4. Reference the image file from a document
|
33
|
-
|
34
|
-
### Remove a Document
|
35
|
-
|
36
|
-
1. Remove the document file
|
37
|
-
2. Remove its entry from the [navigation tree](documentation.html#navigation)
|
38
|
-
3. Identify the image files referenced by the document, and remove each file unless it is referenced by other documents (which is rare)
|
39
|
-
|
40
|
-
### Add a Document
|
41
|
-
|
42
|
-
1. Add the new document file, ensuring it conforms to the format of [document source files](documentation.html#document-source-files)
|
43
|
-
2. Add an entry for the new document to the [navigation tree](documentation.html#navigation)
|
44
|
-
|
45
|
-
## 3. Confirm Your Changes
|
46
|
-
|
47
|
-
Every markdown implementation is a unique snowflake, so please **build the documentation and confirm your changes appear as expected before submitting them for review**. Also ensure your changes conform to the [documentation style guide](documentation-style-guide.html).
|
48
|
-
|
49
|
-
The following example demonstrates how to start a development server, which will re-build the docs each time you make a change.
|
50
|
-
|
51
|
-
```bash
|
52
|
-
$ cd docs && bundle
|
53
|
-
$ bin/middleman
|
54
|
-
```
|
55
|
-
|
56
|
-
Open the URL displayed in the output to view the built documentation.
|
57
|
-
|
58
|
-
## 4. Submit a Pull Request
|
59
|
-
|
60
|
-
After building the docs and confirming your changes, you can submit the changes as a pull request. Follow the same process used for [contributing code](contribute-code.html).
|
@@ -1,234 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Create a Custom Discount
|
3
|
-
excerpt: The following example creates a "Buy Some Get Shipping" discount that provides a discount on a particular shipping method with the purchase of certain products or from certain categories.
|
4
|
-
---
|
5
|
-
|
6
|
-
# Create a Custom Discount
|
7
|
-
|
8
|
-
The following example creates a "Buy Some Get Shipping" discount that provides a discount on a particular shipping method with the purchase of certain products or from certain categories.
|
9
|
-
|
10
|
-
## Discount Generator
|
11
|
-
|
12
|
-
Version 2.1 introduced a discount generator, which will create the new discount boilerplate for you.
|
13
|
-
|
14
|
-
```bash
|
15
|
-
$ bin/rails g workarea:discount --help
|
16
|
-
Usage:
|
17
|
-
rails generate workarea:discount NAME [options]
|
18
|
-
|
19
|
-
Options:
|
20
|
-
[--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated applications)
|
21
|
-
|
22
|
-
Runtime options:
|
23
|
-
-f, [--force] # Overwrite files that already exist
|
24
|
-
-p, [--pretend], [--no-pretend] # Run but do not make any changes
|
25
|
-
-q, [--quiet], [--no-quiet] # Suppress status output
|
26
|
-
-s, [--skip], [--no-skip] # Skip files that already exist
|
27
|
-
|
28
|
-
Description:
|
29
|
-
Creates a new custom pricing discount that can be applied to order
|
30
|
-
totals, shipping totals, products, and other price paths.
|
31
|
-
|
32
|
-
For more information on how to customize this generator, visit:
|
33
|
-
|
34
|
-
http://guides.workarea.com/create-a-custom-discount.html
|
35
|
-
|
36
|
-
Example:
|
37
|
-
rails generate workarea:discount FreeShipping
|
38
|
-
|
39
|
-
creates:
|
40
|
-
app/models/workarea/pricing/discount/free_shipping.rb
|
41
|
-
app/view_models/workarea/admin/discounts/free_shipping_view_model.rb
|
42
|
-
app/views/workarea/admin/pricing_discounts/properties/_free_shipping.html.haml
|
43
|
-
app/views/workarea/admin/create_pricing_discounts/_free_shipping.html.haml
|
44
|
-
test/models/workarea/pricing/discount/free_shipping_test.rb
|
45
|
-
test/view_models/workarea/admin/discounts/free_shipping_view_model_test.rb
|
46
|
-
modifies:
|
47
|
-
config/initializers/workarea.rb
|
48
|
-
```
|
49
|
-
|
50
|
-
The generator creates/modifieds all the files necessary to create a new discount. Read on to learn more about those files.
|
51
|
-
|
52
|
-
## Creating the Model
|
53
|
-
|
54
|
-
Create a new discount model in your app for your discount.
|
55
|
-
|
56
|
-
your\_app/app/models/workarea/pricing/discount/buy\_some\_get\_shipping.rb:
|
57
|
-
|
58
|
-
```ruby
|
59
|
-
module Workarea
|
60
|
-
module Pricing
|
61
|
-
class Discount
|
62
|
-
class BuySomeGetShipping < Discount
|
63
|
-
include FlatOrPercentOff
|
64
|
-
|
65
|
-
# If needed, you could include other condition types here to get
|
66
|
-
# functionality related to those types
|
67
|
-
#
|
68
|
-
# include Conditions::OrderTotal
|
69
|
-
# include Conditions::PromoCodes
|
70
|
-
|
71
|
-
# Add fields specific to your discount type
|
72
|
-
|
73
|
-
field :shipping_method_id, type: String
|
74
|
-
field :purchase_quantity, type: Integer
|
75
|
-
|
76
|
-
field :product_ids, type: Array, default: []
|
77
|
-
list_field :product_ids
|
78
|
-
|
79
|
-
field :category_ids, type: Array, default: []
|
80
|
-
list_field :category_ids
|
81
|
-
|
82
|
-
# Add validations to ensure the data needed for the discount is present
|
83
|
-
|
84
|
-
validates :purchase_quantity, presence: true
|
85
|
-
validates :shipping_method_id, presence: true
|
86
|
-
validate :product_or_category_ids_present
|
87
|
-
|
88
|
-
# Implement model_name so that Rails can generate routes, mappers, etc.
|
89
|
-
|
90
|
-
def self.model_name
|
91
|
-
Discount.model_name
|
92
|
-
end
|
93
|
-
|
94
|
-
# Implement apply to fulfill the Workarea::Pricing::Discount contract.
|
95
|
-
# This method defines what is to be added to the order to reflect the use
|
96
|
-
# of this discount.
|
97
|
-
|
98
|
-
def apply(order)
|
99
|
-
order.shipments.each do |shipment|
|
100
|
-
next unless shipment_matches_shipping_method?(shipment)
|
101
|
-
apply_to_shipment(shipment)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
# Set the level at which price changes apply (shipping, item, order, tax)
|
106
|
-
|
107
|
-
self.price_level = 'shipping'
|
108
|
-
|
109
|
-
# Qualifiers are run to determine whether an order meets the criteria needed
|
110
|
-
# to apply this discount. This includes qualifiers from included conditions
|
111
|
-
# as well as any defined within the discount itself.
|
112
|
-
|
113
|
-
add_qualifier :matching_shipping_method?
|
114
|
-
add_qualifier :product_or_category_quantity?
|
115
|
-
|
116
|
-
def matching_shipping_method?(order)
|
117
|
-
order.shipments.any? do |shipment|
|
118
|
-
shipment_matches_shipping_method?(shipment)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
def product_or_category_quantity?(order)
|
123
|
-
matching_items = order.items.select do |item|
|
124
|
-
item.matches_categories?(category_ids) ||
|
125
|
-
item.matches_products?(product_ids)
|
126
|
-
end
|
127
|
-
matching_items.sum(&:quantity) >= purchase_quantity
|
128
|
-
end
|
129
|
-
|
130
|
-
private
|
131
|
-
|
132
|
-
def shipment_matches_shipping_method?(shipment)
|
133
|
-
shipment.shipping_method.present? &&
|
134
|
-
shipment.shipping_method.id.present? &&
|
135
|
-
shipment.shipping_method.id.to_s == shipping_method_id
|
136
|
-
end
|
137
|
-
|
138
|
-
def apply_to_shipment(shipment)
|
139
|
-
shipping_total = shipment.price_adjustments.adjusting('shipping').sum
|
140
|
-
value = amount_calculator.calculate(shipping_total)
|
141
|
-
return if value < 0
|
142
|
-
|
143
|
-
shipment.adjust_pricing(adjustment_data(value, 1))
|
144
|
-
end
|
145
|
-
|
146
|
-
def product_or_category_ids_present
|
147
|
-
if product_ids.blank? && category_ids.blank?
|
148
|
-
errors.add(
|
149
|
-
:base,
|
150
|
-
'You need to specify products or categories'
|
151
|
-
)
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
```
|
159
|
-
|
160
|
-
## Creating the View Model
|
161
|
-
|
162
|
-
Each discount type is assumed to have a corresponding view model. The view model will be loaded dynamically in the Admin when a user chooses to create or edit a discount of this type. Use the view model to define methods that gather the data needed to render the discount options and conditions.
|
163
|
-
|
164
|
-
In this example, all that is needed is formatting a collection of shipping method options to select from when setting the discount rules.
|
165
|
-
|
166
|
-
your\_app/app/view\_models/workarea/admin/discounts/buy\_some\_get\_shipping\_view\_model.rb:
|
167
|
-
|
168
|
-
```ruby
|
169
|
-
module Workarea
|
170
|
-
module Admin
|
171
|
-
module Discounts
|
172
|
-
class BuySomeGetShippingViewModel < DiscountViewModel
|
173
|
-
include Products
|
174
|
-
include Categories
|
175
|
-
|
176
|
-
def shipping_method_options
|
177
|
-
@shipping_method_options ||= Shipping::Method.all.map do |method|
|
178
|
-
[method.name, method.id]
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
end
|
185
|
-
```
|
186
|
-
|
187
|
-
## Creating the Discount Properties Partial
|
188
|
-
|
189
|
-
Create a partial matching the class name of your discount. This partial is loaded under the 'Discount Rules' section of the Admin edit form.
|
190
|
-
|
191
|
-
For this example, the partial includes the id of the shipping method to discount, the required purchase quantity, and the product or category ids that need to be included in the items in the cart for the discount to apply.
|
192
|
-
|
193
|
-
your\_app/app/views/workarea/admin/pricing\_discounts/properties/\_buy\_some\_get\_shipping.html.haml:
|
194
|
-
|
195
|
-
```ruby
|
196
|
-
%p.discount__node-group
|
197
|
-
%span.discount__node Take
|
198
|
-
%span.discount__node= select_tag 'discount[amount_type]', options_for_select(@discount.amount_type_options, @discount.amount_type), title: 'Type of Amount'
|
199
|
-
%span.discount__node= text_field_tag 'discount[amount]', @discount.amount, class: 'text-box text-box--mini', title: 'Amount of Discount', placeholder: '10', required: true
|
200
|
-
%span.discount__node off
|
201
|
-
%span.discount__node= select_tag 'discount[shipping_method_id]', options_for_select(@discount.shipping_method_options, @discount.shipping_method_id), title: 'Shipping Method'
|
202
|
-
%span.discount__node when
|
203
|
-
%span.discount__node= number_field_tag 'discount[purchase_quantity]', @discount.purchase_quantity || 1, min: '1', class: 'text-box text-box--mini', title: 'Quantity to Qualify', required: true
|
204
|
-
%span.discount__node of the following
|
205
|
-
%span.discount__node= select_tag 'discount[product_ids]', options_from_collection_for_select(@discount.products, 'id', 'name', @discount.product_ids), multiple: true, data: { remote_select: { source: catalog_products_path(format: :json), options: { placeholder: 'Product A, Product B' } }.to_json }
|
206
|
-
%span.discount__node or
|
207
|
-
%span.discount__node= select_tag 'discount[category_ids]', options_from_collection_for_select(@discount.categories, 'id', 'name', @discount.category_ids), multiple: true, data: { remote_select: { source: catalog_categories_path(format: :json), options: { placeholder: 'Category A, Category B' } }.to_json }
|
208
|
-
%span.discount__node is purchased.
|
209
|
-
```
|
210
|
-
|
211
|
-
## Adding the Discount to the Discount Types View
|
212
|
-
|
213
|
-
When an administrator chooses to create a new discount, they are next prompted to choose the discount type. You must override this view into your application and add to it your custom discount. The relevant parts of the file are shown below.
|
214
|
-
|
215
|
-
your\_app/app/views/workarea/admin/pricing\_discounts/select\_type.html.haml:
|
216
|
-
|
217
|
-
```ruby
|
218
|
-
/ ...
|
219
|
-
= form_tag new_pricing_discount_path, method: 'get', id: 'discount_form' do
|
220
|
-
|
221
|
-
/...
|
222
|
-
|
223
|
-
%tr
|
224
|
-
%td
|
225
|
-
%label
|
226
|
-
= radio_button_tag 'type', 'buy_some_get_shipping'
|
227
|
-
Buy Some Get Shipping
|
228
|
-
%td 50% off ground shipping when any of these products are purchased
|
229
|
-
|
230
|
-
.form-actions
|
231
|
-
.action-group
|
232
|
-
%p.action-group__item= link_to 'Cancel', :back, class: 'text-button text-button--muted'
|
233
|
-
%p.action-group__item= button_tag 'Continue', value: 'continue', class: 'button'
|
234
|
-
```
|
@@ -1,131 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Create a New App
|
3
|
-
excerpt: A quick guide to set up a Workarea application.
|
4
|
-
---
|
5
|
-
|
6
|
-
# Create a New App
|
7
|
-
|
8
|
-
This is a quick start guide for getting started on a brand new Workarea application. If you're new to developing on Workarea this is a great place to start. These steps were written with the following assumptions:
|
9
|
-
|
10
|
-
* You have Docker Desktop installed. See [https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop) to download.
|
11
|
-
* You have Ruby >= 2.4.0, < 2.7.0 installed. See [https://github.com/rbenv/rbenv#installation](https://github.com/rbenv/rbenv#installation) for instructions.
|
12
|
-
* You have NodeJS installed. We recommend using [Homebrew](https://brew.sh).
|
13
|
-
* You have ImageMagick installed. We recommend using [Homebrew](https://brew.sh).
|
14
|
-
|
15
|
-
For more details, see [Prerequisites and Dependencies](prerequisites-and-dependencies.html).
|
16
|
-
|
17
|
-
## Create a New Rails Application
|
18
|
-
|
19
|
-
Follow the steps below to quickly set up a new Workarea application.
|
20
|
-
|
21
|
-
### 1. Create a Rails 5.2 application
|
22
|
-
|
23
|
-
This creates a barebones Rails app for Workarea to install into:
|
24
|
-
|
25
|
-
```bash
|
26
|
-
$ mkdir my-store && cd my-store
|
27
|
-
$ echo "source 'https://rubygems.org'" > Gemfile
|
28
|
-
$ echo "gem 'rails', '~> 5.2'" >> Gemfile
|
29
|
-
$ bundle install
|
30
|
-
$ bundle exec rails new ./ --force \
|
31
|
-
--skip-spring \
|
32
|
-
--skip-active-record \
|
33
|
-
--skip-action-cable \
|
34
|
-
--skip-puma \
|
35
|
-
--skip-coffee \
|
36
|
-
--skip-turbolinks \
|
37
|
-
--skip-bootsnap \
|
38
|
-
--skip-yarn \
|
39
|
-
--skip-bundle
|
40
|
-
```
|
41
|
-
|
42
|
-
### 2. Add Workarea gem
|
43
|
-
|
44
|
-
This adds the Workarea base gem to the project and updates dependencies:
|
45
|
-
|
46
|
-
```bash
|
47
|
-
$ echo "gem 'workarea'" >> Gemfile
|
48
|
-
$ bundle update
|
49
|
-
```
|
50
|
-
|
51
|
-
### 3. Install Workarea into the Rails application
|
52
|
-
|
53
|
-
Workarea ships with an installer generator that will configure the application:
|
54
|
-
|
55
|
-
```bash
|
56
|
-
$ bin/rails generate workarea:install
|
57
|
-
```
|
58
|
-
|
59
|
-
For more details on what this generator does, see [Installing Workarea](installing.html).
|
60
|
-
|
61
|
-
### 4. Start Workarea service dependencies
|
62
|
-
|
63
|
-
Workarea relies on a few databases, so there's a task that will start them in Docker containers.
|
64
|
-
Start Workarea dependencies:
|
65
|
-
|
66
|
-
```bash
|
67
|
-
$ bin/rails workarea:services:up
|
68
|
-
```
|
69
|
-
|
70
|
-
### 5. Seed the database
|
71
|
-
|
72
|
-
To do anything useful with Workarea, you'll want some sample data in your database.
|
73
|
-
The install generator run in step 3 will add Workarea seeds to your `db/seeds.rb` file,
|
74
|
-
so running Rails seeds will add sample Workarea data.
|
75
|
-
|
76
|
-
```bash
|
77
|
-
$ bin/rails db:seeds
|
78
|
-
```
|
79
|
-
|
80
|
-
For more details on working with seed data, see [Seeds](seeds.html).
|
81
|
-
|
82
|
-
### 6. Start the Rails server
|
83
|
-
|
84
|
-
Use the conventional Rails command for starting up the Puma server:
|
85
|
-
|
86
|
-
```bash
|
87
|
-
$ bin/rails server
|
88
|
-
```
|
89
|
-
|
90
|
-
### 7. Open the Application in a Browser
|
91
|
-
|
92
|
-
Your Workarea application is ready! Open a browser, and check out `http://localhost:3000`.
|
93
|
-
|
94
|
-
|
95
|
-
## Addendum
|
96
|
-
|
97
|
-
### 8. Run Tests
|
98
|
-
|
99
|
-
Running tests is a regular part of developing on Workarea. Check out the list of Rails tasks Workarea provides for testing Workarea:
|
100
|
-
|
101
|
-
```bash
|
102
|
-
$ bin/rails -T workarea:test
|
103
|
-
rails workarea:test # Run workarea tests (with decorators)
|
104
|
-
rails workarea:test:admin # Run workarea admin tests (with decorators)
|
105
|
-
rails workarea:test:app # Run all app specific tests
|
106
|
-
rails workarea:test:core # Run workarea/core tests (with decorators)
|
107
|
-
rails workarea:test:decorated # Run decorated tests
|
108
|
-
rails workarea:test:performance # Run workarea performance tests (with decorators)
|
109
|
-
rails workarea:test:plugins # Run all installed workarea plugin tests (with decorators)
|
110
|
-
rails workarea:test:storefront # Run workarea storefront tests (with decorators)
|
111
|
-
```
|
112
|
-
|
113
|
-
This will run the Workarea test suite:
|
114
|
-
|
115
|
-
```bash
|
116
|
-
$ bin/rails workarea:test
|
117
|
-
```
|
118
|
-
|
119
|
-
For more details on Workarea's testing functionality, see [Testing](testing.html).
|
120
|
-
|
121
|
-
### 9. Stop the Services
|
122
|
-
|
123
|
-
After developing and testing, you may want to stop the services to conserve resources on your machine.
|
124
|
-
|
125
|
-
Run the command to stop the services Workarea has started for you:
|
126
|
-
|
127
|
-
```bash
|
128
|
-
$ bin/rails workarea:services:down
|
129
|
-
```
|
130
|
-
|
131
|
-
Note that the volumes these containers used will still be available, and you won't have to seed again the next time you start them.
|
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Create a Plugin
|
3
|
-
created_at: 2018/09/17
|
4
|
-
excerpt: To create a Workarea plugin, use the rails plugin new command with a Workarea plugin template.
|
5
|
-
---
|
6
|
-
|
7
|
-
# Create a Plugin
|
8
|
-
|
9
|
-
To create a Workarea plugin, use the _rails plugin new_ command with a Workarea plugin template.
|
10
|
-
|
11
|
-
```bash
|
12
|
-
$ rails plugin new path/to/my_plugin --full -m path/to/plugin_template.rb --skip-spring --skip-active-record --skip-action-cable
|
13
|
-
```
|
14
|
-
|
15
|
-
This template can be found in the [workarea repository](https://github.com/workarea-commerce/workarea) at [https://github.com/workarea-commerce/workarea/blob/master/plugin_template.rb](https://github.com/workarea-commerce/workarea/blob/master/plugin_template.rb).
|
16
|
-
|
17
|
-
After creating the plugin, edit the gemspec file to set relevant plugin meta data.
|
18
|
-
|
19
|
-
Plugins may be developed within their own git repository or as part of an existing repository, such as a host application built on the Workarea platform. If developing the plugin within an existing repository, be sure to change the `s.files` logic within the gemspec to include only files relevant to the plugin. For example, `Dir.glob` over a given array of directory globs rather than including all files with `git ls-files`.
|
@@ -1,71 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Create a Style Guide
|
3
|
-
excerpt: To add a style guide, use the style guide generator.
|
4
|
-
---
|
5
|
-
|
6
|
-
# Create a Style Guide
|
7
|
-
|
8
|
-
To add a [style guide](style-guides.html), use the style guide generator.
|
9
|
-
|
10
|
-
Run the generator without arguments to view help:
|
11
|
-
|
12
|
-
```
|
13
|
-
cd path/to/your_app
|
14
|
-
bin/rails g workarea:style_guide
|
15
|
-
```
|
16
|
-
|
17
|
-
Your results will look something like this:
|
18
|
-
|
19
|
-
```
|
20
|
-
Usage:
|
21
|
-
rails generate workarea:style_guide ENGINE SECTION NAME [options]
|
22
|
-
|
23
|
-
Runtime options:
|
24
|
-
-f, [--force] # Overwrite files that already exist
|
25
|
-
-p, [--pretend], [--no-pretend] # Run but do not make any changes
|
26
|
-
-q, [--quiet], [--no-quiet] # Suppress status output
|
27
|
-
-s, [--skip], [--no-skip] # Skip files that already exist
|
28
|
-
|
29
|
-
Options:
|
30
|
-
ENGINE is either:
|
31
|
-
- admin
|
32
|
-
- storefront
|
33
|
-
|
34
|
-
SECTION is an existing section, the workarea gem offers these sections out of the box:
|
35
|
-
- settings
|
36
|
-
- base
|
37
|
-
- typography
|
38
|
-
- objects
|
39
|
-
- components
|
40
|
-
- trumps
|
41
|
-
|
42
|
-
NAME is the name of your partial, separated with dashes:
|
43
|
-
- button
|
44
|
-
- button--large
|
45
|
-
- table--prices
|
46
|
-
|
47
|
-
Description:
|
48
|
-
Creates a new Style Guide entry for your application.
|
49
|
-
|
50
|
-
Examples:
|
51
|
-
rails g workarea:style_guide storefront components button
|
52
|
-
rails g workarea:style_guide admin components button--large
|
53
|
-
```
|
54
|
-
|
55
|
-
## Style Guide Partial Paths
|
56
|
-
|
57
|
-
The style guide generator creates a new style guide partial at the correct path in your app (corresponding to the arguments you pass it).
|
58
|
-
|
59
|
-
For example, the partial for an Admin component goes here:
|
60
|
-
|
61
|
-
```
|
62
|
-
your_app/views/workarea/admin/style_guides/components/_foo.html.haml
|
63
|
-
```
|
64
|
-
|
65
|
-
The contents of that partial are viewable in the browser at the following paths:
|
66
|
-
|
67
|
-
```
|
68
|
-
/admin/style_guides
|
69
|
-
/admin/style_guides/components/foo
|
70
|
-
```
|
71
|
-
|