workarea 3.4.16 → 3.4.17
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/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,386 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Navigation
|
|
3
|
-
excerpt: Within a Workarea application, navigables and other nodes are organized into a tree of taxons, which is then used to build tree-based navigation, such as breadcrumbs, and content-based navigation, such as menus.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Navigation
|
|
7
|
-
|
|
8
|
-
Within a Workarea application, [navigables](navigable.html) and other nodes are organized into a tree of taxons, which is then used to build tree-based navigation, such as breadcrumbs, and content-based navigation, such as menus.
|
|
9
|
-
|
|
10
|
-
## Taxon
|
|
11
|
-
|
|
12
|
-
A <dfn>navigation taxon</dfn> (`Workarea::Navigation::Taxon`) is an [application document](application-document.html) that represents a node of the site's taxonomy tree.
|
|
13
|
-
|
|
14
|
-
### Tree Structure
|
|
15
|
-
|
|
16
|
-
A taxon includes the following interfaces for manipulating a tree structure:
|
|
17
|
-
|
|
18
|
-
- `Mongoid::Tree` ([docs](http://www.rubydoc.info/github/benedikt/mongoid-tree/Mongoid/Tree))
|
|
19
|
-
- `Mongoid::Tree::Ordering` ([docs](http://www.rubydoc.info/github/benedikt/mongoid-tree/Mongoid/Tree/Ordering))
|
|
20
|
-
- `Mongoid::Tree::Traversal` ([docs](http://www.rubydoc.info/github/benedikt/mongoid-tree/Mongoid/Tree/Traversal))
|
|
21
|
-
|
|
22
|
-
#### Root
|
|
23
|
-
|
|
24
|
-
`Taxon.root` returns the root taxon, which represents the site's home page.
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
root_taxon = Workarea::Navigation::Taxon.root
|
|
28
|
-
|
|
29
|
-
root_taxon.name
|
|
30
|
-
# => "Home"
|
|
31
|
-
|
|
32
|
-
root_taxon.url
|
|
33
|
-
# => "/"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
#### Parent
|
|
37
|
-
|
|
38
|
-
With the exception of the root taxon, each taxon has a parent.
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
root_taxon.parent
|
|
42
|
-
# => nil
|
|
43
|
-
|
|
44
|
-
clothing_taxon = root_taxon.children.create!(name: 'Clothing')
|
|
45
|
-
|
|
46
|
-
clothing_taxon.parent.name
|
|
47
|
-
# => "Home"
|
|
48
|
-
|
|
49
|
-
mens_clothing_taxon = clothing_taxon.children.create!(name: 'Men')
|
|
50
|
-
|
|
51
|
-
mens_clothing_taxon.name
|
|
52
|
-
# => "Men"
|
|
53
|
-
|
|
54
|
-
mens_clothing_taxon.parent.name
|
|
55
|
-
# => "Clothing"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Taxons created without an explicit parent node are created as children of the root node.
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
sporting_goods_taxon = Workarea::Navigation::Taxon.create!(
|
|
62
|
-
name: 'Sporting Goods'
|
|
63
|
-
)
|
|
64
|
-
sporting_goods_taxon.parent.name
|
|
65
|
-
# => "Home"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### URL
|
|
69
|
-
|
|
70
|
-
A taxon may act as a pointer to an arbitrary URL or path.
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
blog_taxon = Workarea::Navigation::Taxon.create!(
|
|
74
|
-
name: 'Blog',
|
|
75
|
-
url: 'http://blog.example.com'
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
blog_taxon.name
|
|
79
|
-
# => "Blog"
|
|
80
|
-
|
|
81
|
-
blog_taxon.url
|
|
82
|
-
# => "http://blog.example.com"
|
|
83
|
-
|
|
84
|
-
blog_taxon.url?
|
|
85
|
-
# => true
|
|
86
|
-
|
|
87
|
-
blog_taxon.resource_name
|
|
88
|
-
# => "url"
|
|
89
|
-
|
|
90
|
-
blog_taxon.resource_name.url?
|
|
91
|
-
# => true
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
The root taxon points to the root path of the site.
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
Workarea::Navigation::Taxon.root.url
|
|
98
|
-
# => "/"
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
A taxon is not [releasable](releasable.html) and does not have an `active` attribute. However, a taxon will respond to the `active?` method. A taxon with a URL is always considered active and will always respond `true`.
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
blog_taxon.active?
|
|
105
|
-
# => true
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### Navigable
|
|
109
|
-
|
|
110
|
-
Instead of referencing an arbitrary URL or path, a taxon may reference a [navigable](navigable.html). If not given an explicit name, the taxon will copy the name of the navigable. Taxon navigables are validated for uniqueness, so no two taxons may reference the same navigable.
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
fit_guide_page = Workarea::Content::Page.create!(name: 'Fit Guide')
|
|
114
|
-
fit_guide_page_taxon = Workarea::Navigation::Taxon.create!(
|
|
115
|
-
navigable: fit_guide_page
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
fit_guide_page_taxon.name
|
|
119
|
-
# => "Fit Guide"
|
|
120
|
-
|
|
121
|
-
fit_guide_page_taxon.navigable.class
|
|
122
|
-
# => Workarea::Content::Page
|
|
123
|
-
|
|
124
|
-
fit_guide_page.taxon.navigable.name
|
|
125
|
-
# => "Fit Guide"
|
|
126
|
-
|
|
127
|
-
fit_guide_page.taxon.navigable_slug
|
|
128
|
-
# => "fit-guide"
|
|
129
|
-
|
|
130
|
-
fit_guide_page_taxon_2 = Workarea::Navigation::Taxon.create!(
|
|
131
|
-
navigable: fit_guide_page
|
|
132
|
-
)
|
|
133
|
-
# Mongoid::Errors::Validations:
|
|
134
|
-
# message:
|
|
135
|
-
# Validation of Workarea::Navigation::Taxon failed.
|
|
136
|
-
# summary:
|
|
137
|
-
# The following errors were found: Navigable is already taken
|
|
138
|
-
|
|
139
|
-
fit_guide_page_taxon.url?
|
|
140
|
-
# => false
|
|
141
|
-
|
|
142
|
-
fit_guide_page_taxon.navigable?
|
|
143
|
-
# => true
|
|
144
|
-
|
|
145
|
-
fit_guide_page_taxon.resource_name
|
|
146
|
-
# => "page"
|
|
147
|
-
|
|
148
|
-
fit_guide_page_taxon.resource_name.page?
|
|
149
|
-
# => true
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
A taxon with a navigable delegates its `active` status to the navigable.
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
fit_guide_page_taxon.active?
|
|
156
|
-
# => true
|
|
157
|
-
|
|
158
|
-
fit_guide_page.active = false
|
|
159
|
-
fit_guide_page.active?
|
|
160
|
-
# => false
|
|
161
|
-
|
|
162
|
-
fit_guide_page_taxon.active?
|
|
163
|
-
# => false
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Placeholder
|
|
167
|
-
|
|
168
|
-
A taxon may be created without a URL and a navigable as long as it is given a name. This type of taxon is called a placeholder and may be used to group other taxons (its children) under a text only "heading".
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
sporting_goods_taxon.name
|
|
172
|
-
# => "Sporting Goods"
|
|
173
|
-
|
|
174
|
-
sporting_goods_taxon.url?
|
|
175
|
-
# => false
|
|
176
|
-
|
|
177
|
-
sporting_goods_taxon.navigable?
|
|
178
|
-
# => false
|
|
179
|
-
|
|
180
|
-
sporting_goods_taxon.placeholder?
|
|
181
|
-
# => true
|
|
182
|
-
|
|
183
|
-
sporting_goods_taxon.resource_name
|
|
184
|
-
# => "placeholder"
|
|
185
|
-
|
|
186
|
-
sporting_goods_taxon.resource_name.placeholder?
|
|
187
|
-
# => true
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
A placeholder taxon does not have an `active` attribute and does not have a navigable to which it can delegate its active status. Therefore it is always considered active.
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
sporting_goods_taxon.active?
|
|
194
|
-
# => true
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Menu
|
|
198
|
-
|
|
199
|
-
`Taxon#menu` returns the first navigation menu that belongs to the taxon. In practice, a taxon and a menu have a 1:1 relationship. `Taxon#in_menu?` returns `true` if a menu belongs to the taxon.
|
|
200
|
-
|
|
201
|
-
```
|
|
202
|
-
clothing_category = Workarea::Catalog::Category.create!(name: 'Clothing')
|
|
203
|
-
clothing_category_taxon = Workarea::Navigation::Taxon.create!(
|
|
204
|
-
navigable: clothing_category
|
|
205
|
-
)
|
|
206
|
-
clothing_menu = Workarea::Navigation::Menu.create!(
|
|
207
|
-
taxon: clothing_category_taxon
|
|
208
|
-
)
|
|
209
|
-
|
|
210
|
-
clothing_category_taxon.menu.class
|
|
211
|
-
# => Workarea::Navigation::Menu
|
|
212
|
-
|
|
213
|
-
clothing_category_taxon.menu.name
|
|
214
|
-
# => "Clothing"
|
|
215
|
-
|
|
216
|
-
clothing_category_taxon.in_menu?
|
|
217
|
-
# => true
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
## Breadcrumbs
|
|
221
|
-
|
|
222
|
-
A <dfn>breadcrumbs</dfn> (`Workarea::Navigation::Breadcrumbs`) is an enumerable representing a collection of taxons. A breadcrumbs instance is initialized with a [navigable](navigable.html) and represents the breadcrumb nodes for that navigable.
|
|
223
|
-
|
|
224
|
-
```
|
|
225
|
-
clothing_category = Workarea::Catalog::Category.create!(name: 'Clothing')
|
|
226
|
-
clothing_category_taxon = Workarea::Navigation::Taxon.root.children.create!(
|
|
227
|
-
navigable: clothing_category
|
|
228
|
-
)
|
|
229
|
-
mens_clothing_category = Workarea::Catalog::Category.create!(name: 'Men')
|
|
230
|
-
mens_clothing_category_taxon = clothing_category_taxon.children.create!(
|
|
231
|
-
navigable: mens_clothing_category
|
|
232
|
-
)
|
|
233
|
-
mens_clothing_category_breadcrumbs = Workarea::Navigation::Breadcrumbs.new(
|
|
234
|
-
mens_clothing_category
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
mens_clothing_category_breadcrumbs.count
|
|
238
|
-
# => 3
|
|
239
|
-
|
|
240
|
-
mens_clothing_category_breadcrumbs.map(&:class)
|
|
241
|
-
# => [
|
|
242
|
-
# Workarea::Navigation::Taxon,
|
|
243
|
-
# Workarea::Navigation::Taxon,
|
|
244
|
-
# Workarea::Navigation::Taxon
|
|
245
|
-
# ]
|
|
246
|
-
|
|
247
|
-
mens_clothing_category_breadcrumbs.map(&:name)
|
|
248
|
-
# => ["Home", "Clothing", "Men"]
|
|
249
|
-
|
|
250
|
-
mens_clothing_category_breadcrumbs.join(' > ')
|
|
251
|
-
# => "Home > Clothing > Men"
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
### Last
|
|
255
|
-
|
|
256
|
-
A `last` may be provided to add a final taxon to the collection. This is useful when the navigable is not directly in the taxonomy, like a product that belongs to a category that is within the taxonomy, rather than being in the taxonomy directly.
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
sweatpants_product = Workarea::Catalog::Product.create!(name: 'Sweatpants')
|
|
260
|
-
mens_clothing_category.update_attributes!(product_ids: [sweatpants_product.id])
|
|
261
|
-
sweatpants_product_breadcrumbs = Workarea::Navigation::Breadcrumbs.new(
|
|
262
|
-
mens_clothing_category,
|
|
263
|
-
last: sweatpants_product.name
|
|
264
|
-
)
|
|
265
|
-
|
|
266
|
-
sweatpants_product_breadcrumbs.count
|
|
267
|
-
# => 4
|
|
268
|
-
|
|
269
|
-
sweatpants_product_breadcrumbs.join(' > ')
|
|
270
|
-
# => "Home > Clothing > Men > Sweatpants"
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### Global ID
|
|
274
|
-
|
|
275
|
-
A breadcrumbs collection may also be initialized using the global ID of the navigable, and can return the global ID of the navigable.
|
|
276
|
-
|
|
277
|
-
```
|
|
278
|
-
mens_clothing_category_breadcrumbs.join(' > ')
|
|
279
|
-
# => "Home > Clothing > Men"
|
|
280
|
-
|
|
281
|
-
mens_clothing_category_global_id =
|
|
282
|
-
mens_clothing_category_breadcrumbs.to_global_id
|
|
283
|
-
# => "Z2lkOi8vbGVhcm4tdjMvV2VibGluYzo6Q2F0YWxvZzo6Q2F0ZWdvcnkvNThiY2I2M2JlZWZiZmU5YTY0MWEyZGNk"
|
|
284
|
-
|
|
285
|
-
Workarea::Navigation::Breadcrumbs
|
|
286
|
-
.from_global_id(mens_clothing_category_global_id)
|
|
287
|
-
.join(' > ')
|
|
288
|
-
# => "Home > Clothing > Men"
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Menu
|
|
292
|
-
|
|
293
|
-
A <dfn>navigation menu</dfn> (`Workarea::Navigation::Menu`) is a [contentable](contentable.html) and [releasable](releasable.html) [application document](application-document.html) that represents a menu within a navigation.
|
|
294
|
-
|
|
295
|
-
### Taxon
|
|
296
|
-
|
|
297
|
-
A menu has a 1:1 relationship with a taxon and generally delegates its name to the taxon.
|
|
298
|
-
|
|
299
|
-
```
|
|
300
|
-
clothing_category = Workarea::Catalog::Category.create!(name: 'Clothing')
|
|
301
|
-
clothing_category_taxon = Workarea::Navigation::Taxon.create!(
|
|
302
|
-
navigable: clothing_category
|
|
303
|
-
)
|
|
304
|
-
clothing_menu = Workarea::Navigation::Menu.create!(
|
|
305
|
-
taxon: clothing_category_taxon
|
|
306
|
-
)
|
|
307
|
-
|
|
308
|
-
clothing_menu.taxon.class
|
|
309
|
-
# => Workarea::Navigation::Taxon
|
|
310
|
-
|
|
311
|
-
clothing_menu.taxon.name
|
|
312
|
-
# => "Clothing"
|
|
313
|
-
|
|
314
|
-
clothing_menu.name
|
|
315
|
-
# => "Clothing"
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### Active
|
|
319
|
-
|
|
320
|
-
A menu's `active?` status (see [Releasable](releasable.html)) also depends on the taxon. For a menu to be active, both the menu and the corresponding taxon must be active. Note that a taxon with a navigable delegates its active status to its navigable.
|
|
321
|
-
|
|
322
|
-
```
|
|
323
|
-
clothing_category = Workarea::Catalog::Category.create!(
|
|
324
|
-
name: 'Clothing',
|
|
325
|
-
active: false
|
|
326
|
-
)
|
|
327
|
-
clothing_category_taxon = Workarea::Navigation::Taxon.create!(
|
|
328
|
-
navigable: clothing_category
|
|
329
|
-
)
|
|
330
|
-
clothing_menu = Workarea::Navigation::Menu.create!(
|
|
331
|
-
taxon: clothing_category_taxon,
|
|
332
|
-
active: false
|
|
333
|
-
)
|
|
334
|
-
|
|
335
|
-
clothing_category.active?
|
|
336
|
-
# => false
|
|
337
|
-
|
|
338
|
-
clothing_menu.active?
|
|
339
|
-
# => false
|
|
340
|
-
|
|
341
|
-
clothing_menu.active = true
|
|
342
|
-
|
|
343
|
-
clothing_menu.active?
|
|
344
|
-
# => false
|
|
345
|
-
|
|
346
|
-
clothing_category.active = true
|
|
347
|
-
# => true
|
|
348
|
-
|
|
349
|
-
clothing_menu.active?
|
|
350
|
-
# => true
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
### Position
|
|
354
|
-
|
|
355
|
-
Each menu has a `position` attribute, and menus are returned sorted by position ascending.
|
|
356
|
-
|
|
357
|
-
```
|
|
358
|
-
foo = Workarea::Navigation::Taxon.create!(name: 'Foo')
|
|
359
|
-
bar = Workarea::Navigation::Taxon.create!(name: 'Bar')
|
|
360
|
-
baz = Workarea::Navigation::Taxon.create!(name: 'Baz')
|
|
361
|
-
|
|
362
|
-
Workarea::Navigation::Menu.create!(taxon: foo, position: 2)
|
|
363
|
-
Workarea::Navigation::Menu.create!(taxon: bar, position: 0)
|
|
364
|
-
Workarea::Navigation::Menu.create!(taxon: baz, position: 1)
|
|
365
|
-
|
|
366
|
-
Workarea::Navigation::Menu.all.map(&:name)
|
|
367
|
-
# => ["Bar", "Baz", "Foo"]
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
## Storefront Navigation
|
|
371
|
-
|
|
372
|
-
The Storefront's application layout outputs a _mobile navigation_, used by most applications for small screens only, and a _primary navigation_, used by most applications for wide screens only.
|
|
373
|
-
|
|
374
|
-
The mobile navigation uses `Storefront::MenusController#index` and `Storefront::MenusController#show` to display the list of all active menus and the content for a specific menu, respectively.
|
|
375
|
-
|
|
376
|
-
The primary navigation uses `Storefront::NavigationHelper#navigation_menus` to output all active menus, and the `WORKAREA.primaryNavContent` JavaScript module is responsible for requesting and displaying the content for menus when they are hovered.
|
|
377
|
-
|
|
378
|
-
### Taxonomy Content Blocks
|
|
379
|
-
|
|
380
|
-
Taxonomy [content blocks](content.html#block) allow admins to display a subset of the site's taxonomy tree within a content, such as the content of a navigation menu. Storefront navigation is often implemented as a list of menus, each of which has content that is displayed as a drop down and includes lists of links that are "plucked" from the taxonomy.
|
|
381
|
-
|
|
382
|
-
Taxonomy content blocks make use of a taxonomy [field](content.html#field) (`Content::Fields::Taxonomy`), which allows admins to provide the starting position within the taxonomy and output a list of links from that starting position. For example, if the taxon selected as the starting position has children, those children will be output as a list within the content block. Some taxonomy blocks include multiple taxonomy fields to allow for multiple lists of links that can be displayed in columns or another arrangement.
|
|
383
|
-
|
|
384
|
-
The starting taxon is stored in the block's [data](content.html#data) as the string id of the taxon, and the view model for the particular [block type](content.html#block-type) looks up the correct taxon for display.
|
|
385
|
-
|
|
386
|
-
|