workarea 3.4.16 → 3.4.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (572) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. metadata +10 -579
  4. data/docs/Gemfile +0 -8
  5. data/docs/Gemfile.lock +0 -130
  6. data/docs/bin/middleman +0 -29
  7. data/docs/config.rb +0 -87
  8. data/docs/config.ru +0 -7
  9. data/docs/data/articles.yml +0 -157
  10. data/docs/package.json +0 -15
  11. data/docs/source/404.html.erb +0 -13
  12. data/docs/source/articles/access-routes-in-javascript.html.md +0 -33
  13. data/docs/source/articles/add-a-content-area.html.md +0 -169
  14. data/docs/source/articles/add-a-content-block-type.html.md +0 -334
  15. data/docs/source/articles/add-a-report.html.md +0 -202
  16. data/docs/source/articles/add-css-through-the-admin-ui.html.md +0 -30
  17. data/docs/source/articles/add-javascript-through-a-manifest.html.md +0 -367
  18. data/docs/source/articles/add-javascript-through-a-view.html.md +0 -80
  19. data/docs/source/articles/add-javascript-through-the-admin-ui.html.md +0 -30
  20. data/docs/source/articles/add-metrics.html.md +0 -58
  21. data/docs/source/articles/add-or-replace-a-pricing-calculator.html.md +0 -150
  22. data/docs/source/articles/add-remove-or-change-a-mongoid-validation.html.md +0 -147
  23. data/docs/source/articles/add-remove-or-change-a-product-template.html.md +0 -142
  24. data/docs/source/articles/add-remove-sort-and-group-storefront-search-filters.html.md +0 -483
  25. data/docs/source/articles/add-stylesheets-through-a-manifest.html.md +0 -276
  26. data/docs/source/articles/add-system-content.html.md +0 -138
  27. data/docs/source/articles/analytics-overview.html.md +0 -51
  28. data/docs/source/articles/analyze-storefront-search-results.html.md +0 -261
  29. data/docs/source/articles/api-overview.html.md +0 -35
  30. data/docs/source/articles/appending.html.md +0 -506
  31. data/docs/source/articles/application-document.html.md +0 -88
  32. data/docs/source/articles/automated-javascript-testing.html.md +0 -162
  33. data/docs/source/articles/b2b-overview.html.md +0 -64
  34. data/docs/source/articles/browser-and-device-support.html.md +0 -47
  35. data/docs/source/articles/change-product-placeholder-image.html.md +0 -39
  36. data/docs/source/articles/change-storefront-search-results.html.md +0 -283
  37. data/docs/source/articles/change-the-storefront-product-pricing-ui.html.md +0 -348
  38. data/docs/source/articles/change-the-storefront-search-filters-ui.html.md +0 -103
  39. data/docs/source/articles/checkout.html.md +0 -479
  40. data/docs/source/articles/commerce-model.html.md +0 -164
  41. data/docs/source/articles/configuration-for-hosting.html.md +0 -106
  42. data/docs/source/articles/configuration.html.md +0 -406
  43. data/docs/source/articles/configure-a-payment-gateway.html.md +0 -58
  44. data/docs/source/articles/configure-asset-storage.html.md +0 -29
  45. data/docs/source/articles/configure-asset-types.html.md +0 -18
  46. data/docs/source/articles/configure-contact-form-subjects-list.html.md +0 -24
  47. data/docs/source/articles/configure-imageoptim.html.md +0 -23
  48. data/docs/source/articles/configure-locales.html.md +0 -45
  49. data/docs/source/articles/configure-logins-and-authentication.html.md +0 -42
  50. data/docs/source/articles/configure-low-inventory-threshold.html.md +0 -26
  51. data/docs/source/articles/configure-product-image-sizes-and-processing.html.md +0 -28
  52. data/docs/source/articles/content.html.md +0 -554
  53. data/docs/source/articles/contentable.html.md +0 -41
  54. data/docs/source/articles/contribute-code.html.md +0 -69
  55. data/docs/source/articles/contribute-documentation.html.md +0 -60
  56. data/docs/source/articles/create-a-custom-discount.html.md +0 -234
  57. data/docs/source/articles/create-a-new-app.html.md +0 -131
  58. data/docs/source/articles/create-a-plugin.html.md +0 -19
  59. data/docs/source/articles/create-a-style-guide.html.md +0 -71
  60. data/docs/source/articles/create-a-theme.html.md +0 -134
  61. data/docs/source/articles/css-architectural-overview.html.md +0 -89
  62. data/docs/source/articles/customize-a-helper.html.md +0 -91
  63. data/docs/source/articles/decoration.html.md +0 -415
  64. data/docs/source/articles/define-and-configure-inventory-policies.html.md +0 -107
  65. data/docs/source/articles/documentation-style-guide.html.md +0 -48
  66. data/docs/source/articles/documentation.html.md +0 -54
  67. data/docs/source/articles/domain-modeling.html.md +0 -82
  68. data/docs/source/articles/error-pages.html.md.erb +0 -95
  69. data/docs/source/articles/extension-overview.html.md +0 -152
  70. data/docs/source/articles/favicon-support.html.md +0 -112
  71. data/docs/source/articles/feature-spec-helper-stylesheet.html.md +0 -25
  72. data/docs/source/articles/featurejs-and-feature-spec-helper.html.md +0 -20
  73. data/docs/source/articles/help-and-support.html.md +0 -34
  74. data/docs/source/articles/html-fragment-caching.html.md +0 -46
  75. data/docs/source/articles/http-caching.html.md +0 -43
  76. data/docs/source/articles/i18n.html.md +0 -35
  77. data/docs/source/articles/images-flow.html.md +0 -10
  78. data/docs/source/articles/index-storefront-search-documents.html.md +0 -104
  79. data/docs/source/articles/infrastructure.html.md +0 -46
  80. data/docs/source/articles/installing.html.md +0 -61
  81. data/docs/source/articles/integrate-a-payment-gateway.html.md +0 -124
  82. data/docs/source/articles/integrate-a-web-analytics-provider.html.md +0 -35
  83. data/docs/source/articles/integrate-an-inventory-management-system.html.md +0 -88
  84. data/docs/source/articles/integrating-with-other-software.html.md +0 -59
  85. data/docs/source/articles/inventory.html.md +0 -352
  86. data/docs/source/articles/javascript-coding-standards.html.md +0 -30
  87. data/docs/source/articles/javascript-modules.html.md +0 -174
  88. data/docs/source/articles/javascript-overview.html.md +0 -62
  89. data/docs/source/articles/javascript-reference-documentation.html.md +0 -51
  90. data/docs/source/articles/javascript-templates.html.md +0 -52
  91. data/docs/source/articles/low-level-caching.html.md +0 -25
  92. data/docs/source/articles/maintain-a-plugin.html.md +0 -12
  93. data/docs/source/articles/maintenance-policy.html.md +0 -79
  94. data/docs/source/articles/navigable.html.md +0 -51
  95. data/docs/source/articles/navigating-the-code.html.md +0 -149
  96. data/docs/source/articles/navigation.html.md +0 -386
  97. data/docs/source/articles/order-life-cycle.html.md +0 -546
  98. data/docs/source/articles/order-pricing.html.md +0 -389
  99. data/docs/source/articles/orders-and-items.html.md +0 -210
  100. data/docs/source/articles/orders.html.md +0 -66
  101. data/docs/source/articles/overriding.html.md +0 -155
  102. data/docs/source/articles/overview.html.md +0 -43
  103. data/docs/source/articles/plugins-overview.html.md +0 -12
  104. data/docs/source/articles/prerequisites-and-dependencies.html.md +0 -202
  105. data/docs/source/articles/products.html.md.erb +0 -1270
  106. data/docs/source/articles/progressive-web-application-support.html.md +0 -148
  107. data/docs/source/articles/rails-asset-manifests.html.md +0 -33
  108. data/docs/source/articles/rails-asset-view-helpers.html.md +0 -25
  109. data/docs/source/articles/reading-data.html.md +0 -10
  110. data/docs/source/articles/releasable.html.md +0 -37
  111. data/docs/source/articles/report-a-bug.html.md +0 -75
  112. data/docs/source/articles/ruby-coding-standards.html.md +0 -10
  113. data/docs/source/articles/run-sidekiq-in-a-local-environment.html.md +0 -40
  114. data/docs/source/articles/searching.html.md +0 -1005
  115. data/docs/source/articles/security-policy.html.md +0 -42
  116. data/docs/source/articles/seeds.html.md +0 -345
  117. data/docs/source/articles/shipping.html.md +0 -756
  118. data/docs/source/articles/sort-and-exclude-product-options.html.md +0 -47
  119. data/docs/source/articles/storefront-search-features.html.md +0 -568
  120. data/docs/source/articles/storefront-searches.html.md +0 -126
  121. data/docs/source/articles/style-guides.html.md +0 -21
  122. data/docs/source/articles/stylesheet-coding-standards.html.md +0 -24
  123. data/docs/source/articles/stylesheets-overview.html.md +0 -67
  124. data/docs/source/articles/swappable-list-data-structure.html.md +0 -81
  125. data/docs/source/articles/system-emails.html.md +0 -102
  126. data/docs/source/articles/taggable.html.md +0 -8
  127. data/docs/source/articles/test-a-credit-card-transaction.html.md +0 -16
  128. data/docs/source/articles/test-if-a-plugin-is-installed.html.md +0 -34
  129. data/docs/source/articles/testing.html.md +0 -914
  130. data/docs/source/articles/themes-overview.html.md +0 -155
  131. data/docs/source/articles/translate-administrable-content.html.md +0 -14
  132. data/docs/source/articles/translate-javascript-content.html.md +0 -16
  133. data/docs/source/articles/translate-or-customize-message-content.html.md +0 -29
  134. data/docs/source/articles/translate-or-customize-static-content.html.md +0 -30
  135. data/docs/source/articles/use-an-existing-workarea-app.html.md +0 -108
  136. data/docs/source/articles/view-models.html.md +0 -509
  137. data/docs/source/articles/views.html.md +0 -14
  138. data/docs/source/articles/workers.html.md +0 -613
  139. data/docs/source/articles/writing-data.html.md +0 -10
  140. data/docs/source/cli.html.md +0 -163
  141. data/docs/source/favicon.ico +0 -0
  142. data/docs/source/images/3-variants-1-option.png +0 -0
  143. data/docs/source/images/3-variants-3-options.png +0 -0
  144. data/docs/source/images/3-years-primary-image.png +0 -0
  145. data/docs/source/images/404-storefront-error-page.png +0 -0
  146. data/docs/source/images/404-system-content-admin.png +0 -0
  147. data/docs/source/images/404.jpg +0 -0
  148. data/docs/source/images/5-years-primary-image.png +0 -0
  149. data/docs/source/images/activity-dashboard.png +0 -0
  150. data/docs/source/images/activity-for-object.png +0 -0
  151. data/docs/source/images/activity-ui.png +0 -0
  152. data/docs/source/images/adding-captioned-image-block-custom-icon.png +0 -0
  153. data/docs/source/images/adding-captioned-image-block-default-icon.png +0 -0
  154. data/docs/source/images/admin-alerts-ui.png +0 -0
  155. data/docs/source/images/admin-category-range-filters.png +0 -0
  156. data/docs/source/images/admin-for-3-column-hero.png +0 -0
  157. data/docs/source/images/admin-help-index.png +0 -0
  158. data/docs/source/images/admin-help-ui.png +0 -0
  159. data/docs/source/images/admin-javascript.png +0 -0
  160. data/docs/source/images/admin-notification-for-deactivated-discount.png +0 -0
  161. data/docs/source/images/admin-notifications-ui.png +0 -0
  162. data/docs/source/images/admin-product-show-page.png +0 -0
  163. data/docs/source/images/admin-products-index-page.png +0 -0
  164. data/docs/source/images/admin-range-filters.png +0 -0
  165. data/docs/source/images/admin-style-guides-navigation.png +0 -0
  166. data/docs/source/images/after-re-seeding.png +0 -0
  167. data/docs/source/images/after-seeding-localhost-3000.png +0 -0
  168. data/docs/source/images/after-seeding.png +0 -0
  169. data/docs/source/images/arrow.svg +0 -1
  170. data/docs/source/images/arrow_white.svg +0 -1
  171. data/docs/source/images/aws-resource-map.png +0 -0
  172. data/docs/source/images/backordered-until-output-on-inventory-sku-card.png +0 -0
  173. data/docs/source/images/before-seeding-localhost-3000.png +0 -0
  174. data/docs/source/images/before-seeding.png +0 -0
  175. data/docs/source/images/browsing-workarea-versions-on-the-web.png +0 -0
  176. data/docs/source/images/bulk-asset-upload-on-assets-index-page.png +0 -0
  177. data/docs/source/images/bulk-asset-upload-while-editing-content.png +0 -0
  178. data/docs/source/images/bundle-show-workarea-core.png +0 -0
  179. data/docs/source/images/bundle-show-workarea.png +0 -0
  180. data/docs/source/images/calendar-for-backordered-until-field.png +0 -0
  181. data/docs/source/images/captioned-image-block-in-storefront.png +0 -0
  182. data/docs/source/images/captioned-image-content-block-storefront-component-style-guide.png +0 -0
  183. data/docs/source/images/cart-system-content-in-admin.png +0 -0
  184. data/docs/source/images/cart-system-content-in-storefront.png +0 -0
  185. data/docs/source/images/checkout-addresses-guest.png +0 -0
  186. data/docs/source/images/checkout-addresses-user.png +0 -0
  187. data/docs/source/images/checkout-confirmation.png +0 -0
  188. data/docs/source/images/checkout-flow-0.png +0 -0
  189. data/docs/source/images/checkout-flow-1.png +0 -0
  190. data/docs/source/images/checkout-flow-2.png +0 -0
  191. data/docs/source/images/checkout-flow-3.png +0 -0
  192. data/docs/source/images/checkout-flow-4.png +0 -0
  193. data/docs/source/images/checkout-payment-guest.png +0 -0
  194. data/docs/source/images/checkout-payment-user.png +0 -0
  195. data/docs/source/images/checkout-shipping.png +0 -0
  196. data/docs/source/images/color-picker-component-admin-style-guide.png +0 -0
  197. data/docs/source/images/color-picker-component-on-content-editing-screen.png +0 -0
  198. data/docs/source/images/commerce-model-carts-orders.png +0 -0
  199. data/docs/source/images/commerce-model-order-pricing.png +0 -0
  200. data/docs/source/images/commerce-model.png +0 -0
  201. data/docs/source/images/configuring-an-index-pattern-in-kibana.png +0 -0
  202. data/docs/source/images/content-block-presets.png +0 -0
  203. data/docs/source/images/content-search-customization.png +0 -0
  204. data/docs/source/images/country-with-region-data-in-address-form.png +0 -0
  205. data/docs/source/images/country-without-region-data-in-address-form.png +0 -0
  206. data/docs/source/images/create-content-block-preset-ui.png +0 -0
  207. data/docs/source/images/credit-card-icons.png +0 -0
  208. data/docs/source/images/css-added-through-admin.png +0 -0
  209. data/docs/source/images/css-admin-ui.png +0 -0
  210. data/docs/source/images/current-configuration-shown-in-admin-settings.png +0 -0
  211. data/docs/source/images/customer-impersonation-in-admin.png +0 -0
  212. data/docs/source/images/customer-impersonation-in-store-front.png +0 -0
  213. data/docs/source/images/date-filter-same-day.png +0 -0
  214. data/docs/source/images/developer-toolbar-in-store-front.png +0 -0
  215. data/docs/source/images/discounts-sorted-by-most-redeemed.png +0 -0
  216. data/docs/source/images/edit-help-article.png +0 -0
  217. data/docs/source/images/editing-content-for-search-customization.png +0 -0
  218. data/docs/source/images/editing-dynamic-captioned-image-block.png +0 -0
  219. data/docs/source/images/editing-product-fields-in-the-admin.png +0 -0
  220. data/docs/source/images/editing-search-system-content.png +0 -0
  221. data/docs/source/images/editing-static-captioned-image-block-custom-icon.png +0 -0
  222. data/docs/source/images/editing-static-captioned-image-block-default-icon.png +0 -0
  223. data/docs/source/images/external.svg +0 -1
  224. data/docs/source/images/favicon_16.png +0 -0
  225. data/docs/source/images/favicon_180.png +0 -0
  226. data/docs/source/images/favicon_32.png +0 -0
  227. data/docs/source/images/filters-all.png +0 -0
  228. data/docs/source/images/filters-control.png +0 -0
  229. data/docs/source/images/filters-custom.png +0 -0
  230. data/docs/source/images/filters-groups.png +0 -0
  231. data/docs/source/images/filters-material.png +0 -0
  232. data/docs/source/images/filters-omitted.png +0 -0
  233. data/docs/source/images/filters-pinned.png +0 -0
  234. data/docs/source/images/filters-range.png +0 -0
  235. data/docs/source/images/filters-sorted.png +0 -0
  236. data/docs/source/images/filters-wrapping-to-second-line-in-admin.png +0 -0
  237. data/docs/source/images/generic-product-template-images-no-options-selected.png +0 -0
  238. data/docs/source/images/generic-product-template-images-options-selected.png +0 -0
  239. data/docs/source/images/generic-template.png +0 -0
  240. data/docs/source/images/hosting.svg +0 -1
  241. data/docs/source/images/image-group-content-block-in-storefront.png +0 -0
  242. data/docs/source/images/images.svg +0 -1
  243. data/docs/source/images/import-export-screenshot.png +0 -0
  244. data/docs/source/images/invalid-display.png +0 -0
  245. data/docs/source/images/itcss.png +0 -0
  246. data/docs/source/images/kibana-dev-tools-console.png +0 -0
  247. data/docs/source/images/layout-content-admin-with-2-areas.png +0 -0
  248. data/docs/source/images/layout-content-admin-with-3-areas.png +0 -0
  249. data/docs/source/images/link-to-search-system-content.png +0 -0
  250. data/docs/source/images/logo.svg +0 -1
  251. data/docs/source/images/menu.svg +0 -2
  252. data/docs/source/images/mongo-replica-set.svg +0 -1
  253. data/docs/source/images/multi-column-hero-blocks.png +0 -0
  254. data/docs/source/images/option-selects-product-template-images-options-selected.png +0 -0
  255. data/docs/source/images/option-selects-template.png +0 -0
  256. data/docs/source/images/option-thumbnails-template.png +0 -0
  257. data/docs/source/images/order-item-total-price-diagram.png +0 -0
  258. data/docs/source/images/order-pricing-cart-example.png +0 -0
  259. data/docs/source/images/order-pricing-example-adjustments.png +0 -0
  260. data/docs/source/images/order-pricing-example-totals.png +0 -0
  261. data/docs/source/images/order-pricing-placed-order-example.png +0 -0
  262. data/docs/source/images/order-shipping-total-diagram.png +0 -0
  263. data/docs/source/images/order-show-with-multiple-tenders.png +0 -0
  264. data/docs/source/images/order-subtotal-price-diagram.png +0 -0
  265. data/docs/source/images/order-tax-total-diagram.png +0 -0
  266. data/docs/source/images/order-total-price-diagram.png +0 -0
  267. data/docs/source/images/order-total-value-diagram.png +0 -0
  268. data/docs/source/images/orders-dashboard-links.png +0 -0
  269. data/docs/source/images/oval.svg +0 -1
  270. data/docs/source/images/payment-icon-storefront-style-guide.png +0 -0
  271. data/docs/source/images/people-dashboard-links.png +0 -0
  272. data/docs/source/images/price-adjustments-diagram.png +0 -0
  273. data/docs/source/images/price-display-no-options.png +0 -0
  274. data/docs/source/images/price-display-options-selected.png +0 -0
  275. data/docs/source/images/pricing-calculators-diagram.png +0 -0
  276. data/docs/source/images/product-list-content-block-admin.png +0 -0
  277. data/docs/source/images/product-list-content-block-in-store-front.png +0 -0
  278. data/docs/source/images/promo-products-excluded-autocomplete-results-after.png +0 -0
  279. data/docs/source/images/promo-products-excluded-featured-category-results-after.png +0 -0
  280. data/docs/source/images/promo-products-excluded-recommendations-results-after.png +0 -0
  281. data/docs/source/images/promo-products-excluded-search-category-results-after.png +0 -0
  282. data/docs/source/images/promo-products-excluded-search-results-after.png +0 -0
  283. data/docs/source/images/promo-products-included-autocomplete-results-before.png +0 -0
  284. data/docs/source/images/promo-products-included-featured-category-results-before.png +0 -0
  285. data/docs/source/images/promo-products-included-recommendations-results-before.png +0 -0
  286. data/docs/source/images/promo-products-included-search-category-results-before.png +0 -0
  287. data/docs/source/images/promo-products-included-search-results-before.png +0 -0
  288. data/docs/source/images/rails-version-constraint.png +0 -0
  289. data/docs/source/images/re-enable-discount.png +0 -0
  290. data/docs/source/images/reading-data.svg +0 -1
  291. data/docs/source/images/readme-hero.png +0 -0
  292. data/docs/source/images/redesigned-customized-sort-for-search-results.png +0 -0
  293. data/docs/source/images/reviews-summary-above-share-buttons.png +0 -0
  294. data/docs/source/images/reviews-summary-below-product-name.png +0 -0
  295. data/docs/source/images/reviews-summary-below-share-buttons.png +0 -0
  296. data/docs/source/images/reviews-summary-removed.png +0 -0
  297. data/docs/source/images/rsa-fingerprint-for-stash.png +0 -0
  298. data/docs/source/images/ruby-version-constraint.png +0 -0
  299. data/docs/source/images/script-tag-added-through-admin.png +0 -0
  300. data/docs/source/images/search-analysis-admin-alternate-rendering.png +0 -0
  301. data/docs/source/images/search-analysis-admin.png +0 -0
  302. data/docs/source/images/search-quality-report.png +0 -0
  303. data/docs/source/images/search.svg +0 -1
  304. data/docs/source/images/searching-for-cart-system-content-in-admin.png +0 -0
  305. data/docs/source/images/searching-for-layout-system-content-in-admin.png +0 -0
  306. data/docs/source/images/seeded-admin.png +0 -0
  307. data/docs/source/images/seeds-from-plugins.png +0 -0
  308. data/docs/source/images/seo-metadata-automation-ui.png +0 -0
  309. data/docs/source/images/show-password-button.png +0 -0
  310. data/docs/source/images/storefront-autocomplete.png +0 -0
  311. data/docs/source/images/storefront-category-summary-content-block.png +0 -0
  312. data/docs/source/images/storefront-category.png +0 -0
  313. data/docs/source/images/storefront-product-after-overriding.png +0 -0
  314. data/docs/source/images/storefront-product-before-overriding.png +0 -0
  315. data/docs/source/images/storefront-product-browse-page.png +0 -0
  316. data/docs/source/images/storefront-product-recommendations.png +0 -0
  317. data/docs/source/images/storefront-product-show-page.png +0 -0
  318. data/docs/source/images/storefront-requests-and-search-requests.png +0 -0
  319. data/docs/source/images/storefront-search-request-handling.png +0 -0
  320. data/docs/source/images/storefront-search-response-creation.png +0 -0
  321. data/docs/source/images/storefront-search.png +0 -0
  322. data/docs/source/images/storefront-style-guides-navigation.png +0 -0
  323. data/docs/source/images/styles.css +0 -3
  324. data/docs/source/images/tax-categories-ui.png +0 -0
  325. data/docs/source/images/tax-rates-ui.png +0 -0
  326. data/docs/source/images/unpurchasable-product.png +0 -0
  327. data/docs/source/images/url-redirects-filtering.png +0 -0
  328. data/docs/source/images/utility-nav-area-in-admin.png +0 -0
  329. data/docs/source/images/utility-nav-area-in-storefront.png +0 -0
  330. data/docs/source/images/validation-message-in-storefront.png +0 -0
  331. data/docs/source/images/view-model-interface.png +0 -0
  332. data/docs/source/images/viewing-workarea-version-in-source.png +0 -0
  333. data/docs/source/images/workarea.svg +0 -1
  334. data/docs/source/images/worst-performing-searches-on-results-customization-page.png +0 -0
  335. data/docs/source/images/writing-data.svg +0 -1
  336. data/docs/source/index.html.erb +0 -166
  337. data/docs/source/javascripts/jquery.js +0 -2
  338. data/docs/source/javascripts/lunr.js +0 -7
  339. data/docs/source/javascripts/site.js +0 -299
  340. data/docs/source/javascripts/vendor/highlight.pack.js +0 -2
  341. data/docs/source/layouts/article.erb +0 -106
  342. data/docs/source/layouts/bare.erb +0 -46
  343. data/docs/source/layouts/layout.erb +0 -43
  344. data/docs/source/release-notes/workarea-3-0-0.html.md +0 -146
  345. data/docs/source/release-notes/workarea-3-0-1.html.md +0 -161
  346. data/docs/source/release-notes/workarea-3-0-10.html.md +0 -39
  347. data/docs/source/release-notes/workarea-3-0-11.html.md +0 -277
  348. data/docs/source/release-notes/workarea-3-0-12.html.md +0 -14
  349. data/docs/source/release-notes/workarea-3-0-13.html.md +0 -153
  350. data/docs/source/release-notes/workarea-3-0-14.html.md +0 -93
  351. data/docs/source/release-notes/workarea-3-0-15.html.md +0 -107
  352. data/docs/source/release-notes/workarea-3-0-16.html.md +0 -36
  353. data/docs/source/release-notes/workarea-3-0-17.html.md +0 -141
  354. data/docs/source/release-notes/workarea-3-0-18.html.md +0 -123
  355. data/docs/source/release-notes/workarea-3-0-19.html.md +0 -160
  356. data/docs/source/release-notes/workarea-3-0-2.html.md +0 -222
  357. data/docs/source/release-notes/workarea-3-0-20.html.md +0 -95
  358. data/docs/source/release-notes/workarea-3-0-21.html.md +0 -168
  359. data/docs/source/release-notes/workarea-3-0-22.html.md +0 -268
  360. data/docs/source/release-notes/workarea-3-0-23.html.md +0 -173
  361. data/docs/source/release-notes/workarea-3-0-24.html.md +0 -19
  362. data/docs/source/release-notes/workarea-3-0-25.html.md +0 -26
  363. data/docs/source/release-notes/workarea-3-0-26.html.md +0 -199
  364. data/docs/source/release-notes/workarea-3-0-27.html.md +0 -113
  365. data/docs/source/release-notes/workarea-3-0-28.html.md +0 -39
  366. data/docs/source/release-notes/workarea-3-0-29.html.md +0 -73
  367. data/docs/source/release-notes/workarea-3-0-3.html.md +0 -35
  368. data/docs/source/release-notes/workarea-3-0-30.html.md +0 -186
  369. data/docs/source/release-notes/workarea-3-0-31.html.md +0 -125
  370. data/docs/source/release-notes/workarea-3-0-32.html.md +0 -73
  371. data/docs/source/release-notes/workarea-3-0-33.html.md +0 -137
  372. data/docs/source/release-notes/workarea-3-0-34.html.md +0 -203
  373. data/docs/source/release-notes/workarea-3-0-35.html.md +0 -205
  374. data/docs/source/release-notes/workarea-3-0-36.html.md +0 -105
  375. data/docs/source/release-notes/workarea-3-0-37.html.md +0 -144
  376. data/docs/source/release-notes/workarea-3-0-38.html.md +0 -73
  377. data/docs/source/release-notes/workarea-3-0-39.html.md +0 -77
  378. data/docs/source/release-notes/workarea-3-0-4.html.md +0 -14
  379. data/docs/source/release-notes/workarea-3-0-40.html.md +0 -130
  380. data/docs/source/release-notes/workarea-3-0-41.html.md +0 -70
  381. data/docs/source/release-notes/workarea-3-0-42.html.md +0 -52
  382. data/docs/source/release-notes/workarea-3-0-43.html.md +0 -72
  383. data/docs/source/release-notes/workarea-3-0-44.html.md +0 -93
  384. data/docs/source/release-notes/workarea-3-0-45.html.md +0 -61
  385. data/docs/source/release-notes/workarea-3-0-46.html.md +0 -171
  386. data/docs/source/release-notes/workarea-3-0-47.html.md +0 -130
  387. data/docs/source/release-notes/workarea-3-0-48.html.md +0 -160
  388. data/docs/source/release-notes/workarea-3-0-49.html.md +0 -28
  389. data/docs/source/release-notes/workarea-3-0-5.html.md +0 -225
  390. data/docs/source/release-notes/workarea-3-0-50.html.md +0 -74
  391. data/docs/source/release-notes/workarea-3-0-51.html.md +0 -61
  392. data/docs/source/release-notes/workarea-3-0-52.html.md +0 -76
  393. data/docs/source/release-notes/workarea-3-0-53.html.md +0 -126
  394. data/docs/source/release-notes/workarea-3-0-54.html.md +0 -112
  395. data/docs/source/release-notes/workarea-3-0-55.html.md +0 -105
  396. data/docs/source/release-notes/workarea-3-0-56.html.md +0 -56
  397. data/docs/source/release-notes/workarea-3-0-57.html.md +0 -82
  398. data/docs/source/release-notes/workarea-3-0-58.html.md +0 -153
  399. data/docs/source/release-notes/workarea-3-0-59.html.md +0 -78
  400. data/docs/source/release-notes/workarea-3-0-6.html.md +0 -165
  401. data/docs/source/release-notes/workarea-3-0-60.html.md +0 -43
  402. data/docs/source/release-notes/workarea-3-0-61.html.md +0 -46
  403. data/docs/source/release-notes/workarea-3-0-62.html.md +0 -23
  404. data/docs/source/release-notes/workarea-3-0-63.html.md +0 -25
  405. data/docs/source/release-notes/workarea-3-0-64.html.md +0 -25
  406. data/docs/source/release-notes/workarea-3-0-65.html.md +0 -37
  407. data/docs/source/release-notes/workarea-3-0-7.html.md +0 -207
  408. data/docs/source/release-notes/workarea-3-0-8.html.md +0 -337
  409. data/docs/source/release-notes/workarea-3-0-9.html.md +0 -196
  410. data/docs/source/release-notes/workarea-3-1-0.html.md +0 -414
  411. data/docs/source/release-notes/workarea-3-1-1.html.md +0 -139
  412. data/docs/source/release-notes/workarea-3-1-10.html.md +0 -19
  413. data/docs/source/release-notes/workarea-3-1-11.html.md +0 -27
  414. data/docs/source/release-notes/workarea-3-1-12.html.md +0 -216
  415. data/docs/source/release-notes/workarea-3-1-13.html.md +0 -113
  416. data/docs/source/release-notes/workarea-3-1-14.html.md +0 -39
  417. data/docs/source/release-notes/workarea-3-1-15.html.md +0 -107
  418. data/docs/source/release-notes/workarea-3-1-16.html.md +0 -188
  419. data/docs/source/release-notes/workarea-3-1-17.html.md +0 -141
  420. data/docs/source/release-notes/workarea-3-1-18.html.md +0 -73
  421. data/docs/source/release-notes/workarea-3-1-19.html.md +0 -137
  422. data/docs/source/release-notes/workarea-3-1-2.html.md +0 -55
  423. data/docs/source/release-notes/workarea-3-1-20.html.md +0 -203
  424. data/docs/source/release-notes/workarea-3-1-21.html.md +0 -205
  425. data/docs/source/release-notes/workarea-3-1-22.html.md +0 -121
  426. data/docs/source/release-notes/workarea-3-1-23.html.md +0 -144
  427. data/docs/source/release-notes/workarea-3-1-24.html.md +0 -94
  428. data/docs/source/release-notes/workarea-3-1-25.html.md +0 -77
  429. data/docs/source/release-notes/workarea-3-1-26.html.md +0 -130
  430. data/docs/source/release-notes/workarea-3-1-27.html.md +0 -70
  431. data/docs/source/release-notes/workarea-3-1-28.html.md +0 -52
  432. data/docs/source/release-notes/workarea-3-1-29.html.md +0 -44
  433. data/docs/source/release-notes/workarea-3-1-3.html.md +0 -185
  434. data/docs/source/release-notes/workarea-3-1-30.html.md +0 -72
  435. data/docs/source/release-notes/workarea-3-1-31.html.md +0 -93
  436. data/docs/source/release-notes/workarea-3-1-32.html.md +0 -61
  437. data/docs/source/release-notes/workarea-3-1-33.html.md +0 -171
  438. data/docs/source/release-notes/workarea-3-1-34.html.md +0 -130
  439. data/docs/source/release-notes/workarea-3-1-35.html.md +0 -179
  440. data/docs/source/release-notes/workarea-3-1-36.html.md +0 -28
  441. data/docs/source/release-notes/workarea-3-1-37.html.md +0 -74
  442. data/docs/source/release-notes/workarea-3-1-38.html.md +0 -61
  443. data/docs/source/release-notes/workarea-3-1-39.html.md +0 -96
  444. data/docs/source/release-notes/workarea-3-1-4.html.md +0 -148
  445. data/docs/source/release-notes/workarea-3-1-40.html.md +0 -126
  446. data/docs/source/release-notes/workarea-3-1-41.html.md +0 -128
  447. data/docs/source/release-notes/workarea-3-1-42.html.md +0 -105
  448. data/docs/source/release-notes/workarea-3-1-43.html.md +0 -37
  449. data/docs/source/release-notes/workarea-3-1-44.html.md +0 -82
  450. data/docs/source/release-notes/workarea-3-1-45.html.md +0 -153
  451. data/docs/source/release-notes/workarea-3-1-46.html.md +0 -91
  452. data/docs/source/release-notes/workarea-3-1-47.html.md +0 -65
  453. data/docs/source/release-notes/workarea-3-1-48.html.md +0 -46
  454. data/docs/source/release-notes/workarea-3-1-49.html.md +0 -23
  455. data/docs/source/release-notes/workarea-3-1-5.html.md +0 -169
  456. data/docs/source/release-notes/workarea-3-1-50.html.md +0 -42
  457. data/docs/source/release-notes/workarea-3-1-51.html.md +0 -25
  458. data/docs/source/release-notes/workarea-3-1-52.html.md +0 -57
  459. data/docs/source/release-notes/workarea-3-1-6.html.md +0 -117
  460. data/docs/source/release-notes/workarea-3-1-7.html.md +0 -176
  461. data/docs/source/release-notes/workarea-3-1-8.html.md +0 -283
  462. data/docs/source/release-notes/workarea-3-1-9.html.md +0 -212
  463. data/docs/source/release-notes/workarea-3-2-0.html.md +0 -1705
  464. data/docs/source/release-notes/workarea-3-2-1.html.md +0 -216
  465. data/docs/source/release-notes/workarea-3-2-10.html.md +0 -237
  466. data/docs/source/release-notes/workarea-3-2-11.html.md +0 -121
  467. data/docs/source/release-notes/workarea-3-2-12.html.md +0 -145
  468. data/docs/source/release-notes/workarea-3-2-13.html.md +0 -138
  469. data/docs/source/release-notes/workarea-3-2-14.html.md +0 -77
  470. data/docs/source/release-notes/workarea-3-2-15.html.md +0 -130
  471. data/docs/source/release-notes/workarea-3-2-16.html.md +0 -111
  472. data/docs/source/release-notes/workarea-3-2-17.html.md +0 -52
  473. data/docs/source/release-notes/workarea-3-2-18.html.md +0 -44
  474. data/docs/source/release-notes/workarea-3-2-19.html.md +0 -72
  475. data/docs/source/release-notes/workarea-3-2-2.html.md +0 -145
  476. data/docs/source/release-notes/workarea-3-2-20.html.md +0 -93
  477. data/docs/source/release-notes/workarea-3-2-21.html.md +0 -61
  478. data/docs/source/release-notes/workarea-3-2-22.html.md +0 -154
  479. data/docs/source/release-notes/workarea-3-2-23.html.md +0 -130
  480. data/docs/source/release-notes/workarea-3-2-24.html.md +0 -200
  481. data/docs/source/release-notes/workarea-3-2-25.html.md +0 -28
  482. data/docs/source/release-notes/workarea-3-2-26.html.md +0 -94
  483. data/docs/source/release-notes/workarea-3-2-27.html.md +0 -61
  484. data/docs/source/release-notes/workarea-3-2-28.html.md +0 -96
  485. data/docs/source/release-notes/workarea-3-2-29.html.md +0 -126
  486. data/docs/source/release-notes/workarea-3-2-30.html.md +0 -112
  487. data/docs/source/release-notes/workarea-3-2-31.html.md +0 -105
  488. data/docs/source/release-notes/workarea-3-2-32.html.md +0 -56
  489. data/docs/source/release-notes/workarea-3-2-33.html.md +0 -82
  490. data/docs/source/release-notes/workarea-3-2-34.html.md +0 -153
  491. data/docs/source/release-notes/workarea-3-2-35.html.md +0 -91
  492. data/docs/source/release-notes/workarea-3-2-36.html.md +0 -118
  493. data/docs/source/release-notes/workarea-3-2-37.html.md +0 -46
  494. data/docs/source/release-notes/workarea-3-2-38.html.md +0 -23
  495. data/docs/source/release-notes/workarea-3-2-39.html.md +0 -42
  496. data/docs/source/release-notes/workarea-3-2-4.html.md +0 -109
  497. data/docs/source/release-notes/workarea-3-2-40.html.md +0 -25
  498. data/docs/source/release-notes/workarea-3-2-41.html.md +0 -90
  499. data/docs/source/release-notes/workarea-3-2-5.html.md +0 -186
  500. data/docs/source/release-notes/workarea-3-2-6.html.md +0 -173
  501. data/docs/source/release-notes/workarea-3-2-7.html.md +0 -89
  502. data/docs/source/release-notes/workarea-3-2-8.html.md +0 -137
  503. data/docs/source/release-notes/workarea-3-2-9.html.md +0 -219
  504. data/docs/source/release-notes/workarea-3-3-0.html.md +0 -1272
  505. data/docs/source/release-notes/workarea-3-3-1.html.md +0 -324
  506. data/docs/source/release-notes/workarea-3-3-10.html.md +0 -69
  507. data/docs/source/release-notes/workarea-3-3-11.html.md +0 -72
  508. data/docs/source/release-notes/workarea-3-3-12.html.md +0 -136
  509. data/docs/source/release-notes/workarea-3-3-13.html.md +0 -61
  510. data/docs/source/release-notes/workarea-3-3-14.html.md +0 -196
  511. data/docs/source/release-notes/workarea-3-3-15.html.md +0 -167
  512. data/docs/source/release-notes/workarea-3-3-16.html.md +0 -234
  513. data/docs/source/release-notes/workarea-3-3-17.html.md +0 -82
  514. data/docs/source/release-notes/workarea-3-3-18.html.md +0 -165
  515. data/docs/source/release-notes/workarea-3-3-19.html.md +0 -106
  516. data/docs/source/release-notes/workarea-3-3-2.html.md +0 -72
  517. data/docs/source/release-notes/workarea-3-3-20.html.md +0 -116
  518. data/docs/source/release-notes/workarea-3-3-21.html.md +0 -228
  519. data/docs/source/release-notes/workarea-3-3-22.html.md +0 -125
  520. data/docs/source/release-notes/workarea-3-3-23.html.md +0 -154
  521. data/docs/source/release-notes/workarea-3-3-24.html.md +0 -70
  522. data/docs/source/release-notes/workarea-3-3-25.html.md +0 -114
  523. data/docs/source/release-notes/workarea-3-3-26.html.md +0 -260
  524. data/docs/source/release-notes/workarea-3-3-27.html.md +0 -138
  525. data/docs/source/release-notes/workarea-3-3-28.html.md +0 -147
  526. data/docs/source/release-notes/workarea-3-3-29.html.md +0 -63
  527. data/docs/source/release-notes/workarea-3-3-3.html.md +0 -153
  528. data/docs/source/release-notes/workarea-3-3-30.html.md +0 -102
  529. data/docs/source/release-notes/workarea-3-3-31.html.md +0 -57
  530. data/docs/source/release-notes/workarea-3-3-32.html.md +0 -44
  531. data/docs/source/release-notes/workarea-3-3-33.html.md +0 -114
  532. data/docs/source/release-notes/workarea-3-3-34.html.md +0 -29
  533. data/docs/source/release-notes/workarea-3-3-4.html.md +0 -332
  534. data/docs/source/release-notes/workarea-3-3-5.html.md +0 -242
  535. data/docs/source/release-notes/workarea-3-3-6.html.md +0 -100
  536. data/docs/source/release-notes/workarea-3-3-7.html.md +0 -148
  537. data/docs/source/release-notes/workarea-3-3-8.html.md +0 -163
  538. data/docs/source/release-notes/workarea-3-3-9.html.md +0 -93
  539. data/docs/source/release-notes/workarea-3-4-0.html.md +0 -580
  540. data/docs/source/release-notes/workarea-3-4-1.html.md +0 -150
  541. data/docs/source/release-notes/workarea-3-4-10.html.md +0 -72
  542. data/docs/source/release-notes/workarea-3-4-11.html.md +0 -60
  543. data/docs/source/release-notes/workarea-3-4-12.html.md +0 -155
  544. data/docs/source/release-notes/workarea-3-4-15.html.md +0 -100
  545. data/docs/source/release-notes/workarea-3-4-16.html.md +0 -88
  546. data/docs/source/release-notes/workarea-3-4-2.html.md +0 -188
  547. data/docs/source/release-notes/workarea-3-4-3.html.md +0 -136
  548. data/docs/source/release-notes/workarea-3-4-4.html.md +0 -114
  549. data/docs/source/release-notes/workarea-3-4-5.html.md +0 -275
  550. data/docs/source/release-notes/workarea-3-4-6.html.md +0 -169
  551. data/docs/source/release-notes/workarea-3-4-7.html.md +0 -162
  552. data/docs/source/release-notes/workarea-3-4-8.html.md +0 -95
  553. data/docs/source/release-notes/workarea-3-4-9.html.md +0 -135
  554. data/docs/source/release-notes.html.md +0 -261
  555. data/docs/source/search.html.erb +0 -34
  556. data/docs/source/shared/_header.erb +0 -61
  557. data/docs/source/shared/_svgs.erb +0 -17
  558. data/docs/source/style_guide/index.html.erb +0 -382
  559. data/docs/source/stylesheets/_base.scss +0 -125
  560. data/docs/source/stylesheets/_components.scss +0 -669
  561. data/docs/source/stylesheets/_helpers.scss +0 -10
  562. data/docs/source/stylesheets/_opinions.scss +0 -42
  563. data/docs/source/stylesheets/_settings.scss +0 -56
  564. data/docs/source/stylesheets/_typography.scss +0 -119
  565. data/docs/source/stylesheets/site.css.scss +0 -14
  566. data/docs/source/stylesheets/vendor/_avalanche.scss +0 -328
  567. data/docs/source/stylesheets/vendor/_normalize.scss +0 -341
  568. data/docs/source/stylesheets/vendor/highlight/_tomorrow_night_blue.scss +0 -75
  569. data/docs/source/upgrade-guides/workarea-3-4-0.html.md +0 -152
  570. data/docs/source/upgrade-guides.html.md +0 -18
  571. data/docs/workarea_renderer.rb +0 -8
  572. data/docs/yarn.lock +0 -2522
@@ -1,45 +0,0 @@
1
- ---
2
- title: Configure Locales
3
- excerpt: Configure locales as explained in the Rails Internationalization (I18n) API guide. For the most foolproof configuration, set available locales, default locale, and fallbacks.
4
- ---
5
-
6
- # Configure Locales
7
-
8
- Configure locales as explained in the [Rails Internationalization (I18n) API guide](http://guides.rubyonrails.org/i18n.html). For the most foolproof configuration, set available locales, default locale, and fallbacks.
9
-
10
- ```
11
- # config/application.rb
12
-
13
- # ...
14
-
15
- module YourApp
16
- class Application < Rails::Application
17
-
18
- # ...
19
-
20
- config.i18n.available_locales = [:en, :de]
21
- config.i18n.default_locale = :en
22
- config.i18n.fallbacks = [:de, :en]
23
-
24
- # ...
25
-
26
- end
27
- end
28
- ```
29
-
30
- Then, add the full name of the locale to each locale file. This is required for Workarea to recognize and use the locale.
31
-
32
- ```
33
- # config/locales/en.yml
34
-
35
- en:
36
- name: English
37
- ```
38
-
39
- ## Adding Additional Locales to an Existing App
40
-
41
- When adding a locale to an existing Production app, you must consider the impact on search indexes. At a minimum, you must create additional search indexes to account for the additional locale. However, you may also want to index documents as well, to ensure adequate search results within that locale.
42
-
43
- Review the [Search](searching.html) guide to understand the relationship between locales and search indexes.
44
-
45
- In Development, there should be no harm in fully re-indexing search by running a [Rake task](searching.html#rake-tasks_15) to create and populate the necessary indexes.
@@ -1,42 +0,0 @@
1
- ---
2
- title: Configure Logins & Authentication
3
- excerpt: Workarea provides several configuration options related to user login and authentication.
4
- ---
5
-
6
- # Configure Logins & Authentication
7
-
8
- Workarea provides several configuration options related to user login and authentication.
9
-
10
- | Config | Description |
11
- | --- | --- |
12
- | `config.allowed_login_attempts` | Number of failed login attempts before locking out the user |
13
- | `config.lockout_period` | How long an account is locked out after making too many failed login attempts |
14
- | `config.password_lifetime` | How long an adminstrator's password lasts |
15
- | `config.password_history_length` | How many passwords to keep and validate against |
16
- | `config.password_strength` | Password requirement level: `:weak`, `:medium`, or `:strong` |
17
-
18
- your\_app/config/initializers/workarea.rb:
19
-
20
- ```
21
- # ...
22
-
23
- Workarea.configure do |config|
24
-
25
- # ...
26
-
27
- config.allowed_login_attempts = 6
28
-
29
- config.lockout_period = 30.minutes
30
-
31
- config.password_lifetime = 90.days
32
-
33
- config.password_history_length = 4
34
-
35
- config.password_strength = :weak
36
-
37
- # ...
38
-
39
- end
40
- ```
41
-
42
-
@@ -1,26 +0,0 @@
1
- ---
2
- title: Configure Low Inventory Threshold
3
- excerpt: config.low_inventory_threshold determines the minimum available quantity for a sku before low inventory status is displayed. Configure the value in an initializer.
4
- ---
5
-
6
- # Configure Low Inventory Threshold
7
-
8
- `config.low_inventory_threshold` determines the minimum available quantity for a sku before low inventory status is displayed. Configure the value in an initializer.
9
-
10
- your\_app/config/initializers/workarea.rb:
11
-
12
- ```
13
- # ...
14
-
15
- Workarea.configure do |config|
16
-
17
- # ...
18
-
19
- config.low_inventory_threshold = 5
20
-
21
- # ...
22
-
23
- end
24
- ```
25
-
26
-
@@ -1,28 +0,0 @@
1
- ---
2
- title: Configure Product Image Sizes & Processing
3
- excerpt: There is an initializer which sets up a Dragonfly application for the Workarea platform. This initializer sets up image optimization, URLs, logging, etc.
4
- ---
5
-
6
- # Configure Product Image Sizes & Processing
7
-
8
- There is an initializer which sets up a Dragonfly application for the Workarea platform. This initializer sets up image optimization, URLs, logging, etc.
9
-
10
- This configuration can be reopened in the host app to override settings, processing, or add additional image sizes. Full documentation is available at [the official Dragonfly configuration documentation.](http://markevans.github.io/dragonfly/configuration/).
11
-
12
- your\_app/config/initializers/dragonfly.rb:
13
-
14
- ```
15
- Dragonfly.app(:workarea).configure do
16
- # Add a new image size
17
- processor :micro_thumb do |content|
18
- content.process!(:encode, :jpg, '-quality 100')
19
- content.process!(:thumb, '50x50#')
20
- content.process!(:optim)
21
- end
22
-
23
- # Change admin upload asset URLs
24
- url_format '/media/:job/:name'
25
- end
26
- ```
27
-
28
-
@@ -1,554 +0,0 @@
1
- ---
2
- title: Content
3
- excerpt: The Content namespace is responsible for modeling administrable content.
4
- ---
5
-
6
- # Content
7
-
8
- The `Content` namespace is responsible for modeling administrable content.
9
-
10
- ## Asset
11
-
12
- A <dfn>content asset</dfn> (`Workarea::Content::Asset`) is a [taggable](taggable.html) [application document](application-document.html) that represents a file, such as an image or PDF document, that is available for use within administrable content.
13
-
14
- ```
15
- # Create an asset
16
- asset = Workarea::Content::Asset.create!(file: File.new('foo.png'))
17
-
18
- # Inspect its attributes
19
- asset.name
20
- # => "foo"
21
-
22
- asset.id.to_s
23
- # => "58af0a74eefbfef6f328470a"
24
-
25
- asset.type
26
- # => "image"
27
-
28
- asset.pdf?
29
- # => false
30
-
31
- asset.image?
32
- # => true
33
-
34
- asset.format
35
- # => "png"
36
-
37
- asset.height
38
- # => 300
39
-
40
- asset.width
41
- # => 300
42
-
43
- asset.aspect_ratio
44
- # => 1.0
45
-
46
- asset.portrait?
47
- # => true
48
- ```
49
-
50
- ## Page
51
-
52
- A <dfn>content page</dfn> (`Workarea::Content::Page`) is a [contentable](contentable.html), [navigable](navigable.html), [releasable](releasable.html), and [taggable](taggable.html) [application document](application-document.html) that represents a page containing administrable content to which end users may navigate.
53
-
54
- A page has few attributes of its own because the actual content is stored on its associated content. However, each page has a name and several attributes to control its presentation in the storefront.
55
-
56
- ```
57
- page = Workarea::Content::Page.create!(name: 'Shopping Guide')
58
-
59
- page.name
60
- # => "Shopping Guide"
61
-
62
- page.template
63
- # => "generic"
64
-
65
- page.show_navigation
66
- # => false
67
-
68
- page.display_h1
69
- # => true
70
- ```
71
-
72
- ## Content
73
-
74
- A <dfn>content</dfn> (`Workarea::Content`) is a [releasable](releasable.html) [application document](application-document.html) that represents administrable content. A content may belong to a [contentable](contentable.html). A content embeds many blocks.
75
-
76
- ### System Content
77
-
78
- Contents that do not belong to contentables are identified by name and are referred to as "system content". Pass a string representing the content name to `Content.for` to `find_or_create` a system content. The string will be `titleize`ed before finding or creating the content.
79
-
80
- ```
81
- # Create a content
82
- content = Workarea::Content.for('foo_bar')
83
-
84
- content.name
85
- # => "Foo Bar"
86
-
87
- content.id.to_s
88
- # => "58ac7eefeefbfe3e5ac2ae54"
89
-
90
- content.system?
91
- # => true
92
-
93
- # Find the same content
94
- Workarea::Content.for('foo_bar').name
95
- # => "Foo Bar"
96
-
97
- Workarea::Content.for('Foo Bar').id
98
- # => "58ac7eefeefbfe3e5ac2ae54"
99
-
100
- Workarea::Content.for('foo bar').system?
101
- # => true
102
- ```
103
-
104
- ### Attributes
105
-
106
- In addition to managing its blocks, a content has attributes representing HTML document metadata. The `automate_metadata` boolean specifies if HTML metadata should be generated automatically if none is provided. Explicit values for `browser_title`, `meta_keywords`, and `meta_description` will override any automated values generated.
107
-
108
- ```
109
- content = Workarea::Content.for('foo_bar')
110
-
111
- content.browser_title
112
- # => nil
113
-
114
- content.meta_keywords
115
- # => nil
116
-
117
- content.meta_description
118
- # => nil
119
-
120
- content.automate_metadata
121
- # => true
122
- ```
123
-
124
- A content also has attributes that store strings of CSS and JavaScript. These strings may be output as inline CSS and JavaScript in the Storefront depending on how the content is used.
125
-
126
- ```
127
- content.css
128
- # => nil
129
-
130
- content.javascript
131
- # => nil
132
- ```
133
-
134
- ## Block
135
-
136
- A <dfn>content block</dfn> (`Workarea::Content::Block`) is a [releasable](releasable.html) [application document](application-document.html) that represents a unit of administrable content. A block is embedded in a content.
137
-
138
- A newly created content has 0 blocks.
139
-
140
- ```
141
- content.blocks.count
142
- # => 0
143
-
144
- content.blocks
145
- # => []
146
- ```
147
-
148
- Create a block within a content by specifying the type of block to be created.
149
-
150
- ```
151
- # Create an instance of an 'Image' block
152
- content.blocks.create!(type: 'image')
153
-
154
- content.blocks.count
155
- # => 1
156
-
157
- # Access the block from the content
158
- block = content.blocks.first
159
- block.name
160
- # => "Image - 960x470 Light"
161
-
162
- # Access the content from the block
163
- block.content.class
164
- # => Workarea::Content
165
- ```
166
-
167
- ### Type
168
-
169
- Use a block's `type` method to access the corresponding block type instance. Block type instances are kept in memory within `Workarea.config.content_block_types`. View that collection to see all available block types.
170
-
171
- ```
172
- block.type.class
173
- # => Workarea::Content::BlockType
174
-
175
- block.type.name
176
- # => "Image"
177
-
178
- puts Workarea.config.content_block_types.map(&:name)
179
- # Hero
180
- # Image
181
- # Text
182
- # Video
183
- # Button
184
- # Taxonomy
185
- # Two Column Taxonomy
186
- # Three Column Taxonomy
187
- # Quote
188
- # Image Group
189
- # Image and Text
190
- # Video and Text
191
- # Category Summary
192
- # Recommendations
193
- # Product List
194
- # HTML
195
- # Divider
196
- # Social Networks
197
- ```
198
-
199
- ### Data
200
-
201
- Use a block's `data` method to get or set its data, which is stored as a `HashWithIndifferentAccess`.
202
-
203
- If a block was not initialized with data, it's data will be constructed from the field names and their default values, as defined by the block's type. In the examples below, note the relationship between the persisted data keys on the block and the in-memory field names on the block's type.
204
-
205
- ```
206
- block.data
207
- # => {
208
- "image" => "58ac6ad2eefbfe1ebac121ae",
209
- "alt" => "",
210
- "link" => "/",
211
- "align" => "Center"
212
- }
213
-
214
- block.type.fields.map(&:name)
215
- # => [
216
- "Image",
217
- "Alt",
218
- "Link",
219
- "Align"
220
- ]
221
- ```
222
-
223
- #### Typecasting
224
-
225
- Before validation, the block's data is mutated. Each value is typecast by the corresponding field in the block type. Each field may provide its own implementation of `typecast`. In the following example a data value specified as an integer is cast as a string.
226
-
227
- ```
228
- block = content.blocks.create!(type: 'html', data: { html: 42 })
229
- block.data[:html]
230
- # => "42"
231
- ```
232
-
233
- #### Validation
234
-
235
- A data value may not be blank if the corresponding field on the block type is required.
236
-
237
- ```
238
- content.blocks.create!(type: 'image', data: { asset: '' })
239
- # Mongoid::Errors::Validations:
240
- # message:
241
- # Validation of Workarea::Content::Block failed.
242
- # summary:
243
- # The following errors were found: Image can't be blank
244
- ```
245
-
246
- ### Attributes
247
-
248
- Content blocks have several other attributes that are used to manage their display in the Storefront. Be aware that `name` is derived from the block's type and data and is not an attribute on the model.
249
-
250
- ```
251
- block.area
252
- # => "default"
253
-
254
- block.position
255
- # => 0
256
-
257
- block.breakpoints
258
- # => [:small, :medium, :wide, :x_wide]
259
- ```
260
-
261
- ## Block Type
262
-
263
- A <dfn>block type</dfn> (`Workarea::Content::BlockType`) defines a type of content block using fieldsets and fields.
264
-
265
- The default block types are defined using the content block DSL in an initializer that ships with the platform. Modify these block types or create your own using the content block DSL in an initializer within your application.
266
-
267
- Block types exist in memory only (they aren't persisted). Access all block types via the `Workarea.config.content_block_types` collection or look up a specific block type using `BlockType.find`.
268
-
269
- ```
270
- puts Workarea.config.content_block_types.map(&:id)
271
- # hero
272
- # image
273
- # text
274
- # video
275
- # button
276
- # taxonomy
277
- # two_column_taxonomy
278
- # three_column_taxonomy
279
- # quote
280
- # image_group
281
- # image_and_text
282
- # video_and_text
283
- # category_summary
284
- # recommendations
285
- # product_list
286
- # html
287
- # divider
288
- # social_networks
289
-
290
- Workarea::Content::BlockType.find(:image_and_text).name
291
- # => "Image and Text"
292
- ```
293
-
294
- A block type has a name and an id (also called a slug) that is derived from the name. Beyond that, a block type is primarily a collection of fieldsets. The `fields` method returns a flattened list of all fields across all fieldsets on a given block type.
295
-
296
- ```
297
- image_and_text_type = Workarea::Content::BlockType.find(:image_and_text)
298
-
299
- image_and_text_type.name
300
- # => "Image and Text"
301
-
302
- image_and_text_type.id
303
- # => :image_and_text
304
-
305
- image_and_text_type.slug
306
- # => :image_and_text
307
-
308
- image_and_text_type.fieldsets.count
309
- # => 2
310
-
311
- image_and_text_type.fieldsets.map(&:name)
312
- # => ["Image", "Text"]
313
-
314
- image_and_text_type.fields.count
315
- # => 6
316
-
317
- image_and_text_type.fields.map(&:name)
318
- # => ["Image", "Image Alt", "Image Link", "Image Position", "Text", "Text Alignment"]
319
- ```
320
-
321
- ## Fieldset
322
-
323
- A <dfn>fieldset</dfn> (`Workarea::Content::Fieldset`) groups fields within a block type to improve the experience of administrating a content block.
324
-
325
- A fieldset has a name, which will be used as a label in the admin, and a group a fields that will appear under that label.
326
-
327
- ```
328
- fieldset = image_and_text_type.fieldsets.first
329
-
330
- fieldset.name
331
- # => "Image"
332
-
333
- fieldset.fields.count
334
- # => 4
335
-
336
- fieldset.fields.map(&:name)
337
- # => ["Image", "Image Alt", "Image Link", "Image Position"]
338
- ```
339
-
340
- ## Field
341
-
342
- A <dfn>field</dfn> (subclasses of `Workarea::Content::Field`) represents a field to be displayed for a block type in the Admin UI. It defines how the field's value should be typecast before being persisted, and it optionally provides a default value.
343
-
344
- ### Type
345
-
346
- When adding a field to a block type using the content block DSL, you provide name, type, and options. The type corresponds to a subclass of `Workarea::Content::Field` and determines the partial that will be rendered in the Admin to capture the value for that field and also how the value will be typecast before being persisted.
347
-
348
- ```
349
- product_list_blocktype = Workarea::Content::BlockType.find(:product_list)
350
-
351
- product_list_blocktype.fields.count
352
- # => 2
353
-
354
- field_1 = product_list_blocktype.fields[0]
355
- field_2 = product_list_blocktype.fields[1]
356
-
357
- field_1.type
358
- # => :string
359
-
360
- field_1.partial
361
- # => "string"
362
-
363
- # string fields cast to string
364
- field_1.typecast(1)
365
- # => "1"
366
-
367
- field_2.type
368
- # => :products
369
-
370
- field_2.partial
371
- # => "products"
372
-
373
- # products fields cast to array of strings
374
- field_2.typecast(1)
375
- # => ["1"]
376
- ```
377
-
378
- The following table summarizes the default field types.
379
-
380
- | Field Type | Data Type | UI Control | Unique Options |
381
- | --- | --- | --- | --- |
382
- | asset | string (id of the selected content asset) | `asset-picker-field` component | `file_types` (array): asset types to be included in the asset picker |
383
- | boolean | boolean | `toggle-button` component | - |
384
- | category | string (id of the selected category) | remote select (an HTML `select` enhanced by `WORKAREA.remoteSelects`) | - |
385
- | color | string | HTML `input[type=color]` | - |
386
- | integer | integer | HTML `input[type=number]` | - |
387
- | options | string | HTML `select` | `values` (array): options for the select |
388
- | products | array of strings (ids of the selected products) | remote select (an HTML `select` enhanced by `WORKAREA.remoteSelects`) | `single` (boolean), allows enforcing only a single product selection (since v3.3.3) |
389
- | range | float | HTML `input[type=range]` and `input[type=number]` | `min`, `max`, and `step` (all floats) are passed through to the `input[type=range]` control; `note` displays within a `.property__note` |
390
- | string | string | HTML `input[type=text]` or `textarea` | `multi_line` (boolean), determines type of UI control |
391
- | taxonomy | string (id of the selected taxon) | `taxon-select` component | - |
392
- | text | string | `wysiwyg` component | - |
393
- | url | string | HTML `input[type=text]` | - |
394
- | breakpoints&nbsp;\* | array | HTML `input[type=checkbox]`s, one for each key in `Workarea.config.storefront_break_points` | - |
395
-
396
- \* Each block type includes a breakpoints field automatically. You should not specify this type of field when defining a block type using the content block DSL.
397
-
398
- ### Attributes
399
-
400
- The name of a field is used as the field label in the Admin UI, while the options are used to determine the default value, whether the field is required, and other details that are specific to the field type. The `default` option can provide a value or a callable object that returns the value. The `default` method will return the value, calling the object if present. The `required?` method returns `true` if the `required` option is set to `true`.
401
-
402
- ```
403
- field_1.name
404
- # => "Title"
405
-
406
- field_1.options
407
- # => { :default => "Featured" }
408
-
409
- field_1.default
410
- # => "Featured"
411
-
412
- field_1.required?
413
- # => false
414
-
415
- field_2.name
416
- # => "Products"
417
-
418
- # default value is a
419
- field_2.options
420
- # => { :default => #<Proc> }
421
-
422
- field_2.default
423
- # => ["E5F83359BC", "8AC32E3757", "2B3D02499A"]
424
-
425
- field_2.required?
426
- # => false
427
- ```
428
-
429
- ## Content Block DSL
430
-
431
- The <dfn>content block DSL</dfn> allows you to extend and augment the content block types available to your application. Use the DSL within an initializer in your app.
432
-
433
- The entry point for the DSL is `Content.define_block_types`. Pass this method a block in which you define the block types you want to add (or extend). Give each block type a name and use a block to set its attributes. Each new block type is pushed onto the collection of block types stored in `Workarea.config.content_block_types`.
434
-
435
- ```
436
- Workarea::Content.define_block_types do
437
- block_type 'Foo' do
438
- # ...
439
- end
440
-
441
- block_type 'Bar' do
442
- # ...
443
- end
444
- end
445
- ```
446
-
447
- ### Meta Data
448
-
449
- Use the `description` setter to set a description for the block type that will be shown to administrators when browsing block types in the Admin UI. Use `tags` to set tags which can be used to filter block types in the Admin. Use `icon` to specify the path to an SVG icon to represent the block in the admin. Use this only if you do not want to use the default icon path.
450
-
451
- ```
452
- Workarea::Content.define_block_types do
453
- block_type 'Foo' do
454
- icon 'path/to/icon.svg'
455
- description 'Foo description'
456
- tags %w(foo bar baz)
457
- end
458
- end
459
- ```
460
-
461
- ### Fields & Fieldsets
462
-
463
- Use the `field`, `fieldset`, and `series` setters to declare the fields and fieldsets for each block type.
464
-
465
- Use `field` to add a field to the default "Settings" fieldset. Provide name, type, and options for the field. Refer to the field documentation, above, for the list of available field types and options.
466
-
467
- ```
468
- Workarea::Content.define_block_types do
469
- block_type 'Foo' do
470
- # ...
471
- field 'Message', :text, required: true, default: 'Your text here'
472
- end
473
- end
474
- ```
475
-
476
- Use `fieldset` to create a new fieldset. Provide a name for the fieldset and a block defining the fields for that fieldset.
477
-
478
- ```
479
- Workarea::Content.define_block_types do
480
- block_type 'Foo' do
481
- # ...
482
- fieldset 'Message' do
483
- field 'Type', :options, values: %w(info warning), default: 'info'
484
- field 'Message', :text, required: true, default: 'Your text here'
485
- end
486
- end
487
- end
488
- ```
489
-
490
- Use `series` to create a series of fieldsets that share the same fields. The example below creates 4 fieldsets, each with a 'Image' and 'Alt' field.
491
-
492
- ```
493
- Workarea::Content.define_block_types do
494
- block_type 'Image Slideshow' do
495
- # ...
496
- series 4 do
497
- field 'Image', :asset
498
- field 'Alt', :string
499
- end
500
- end
501
- end
502
- ```
503
-
504
- Persisted block data contains only fields, not fieldsets, so the fields of a series will have a suffix to differentiate themselves. Data for the block type shown above will look something like the example below.
505
-
506
- ```
507
- {
508
- 'image_1' => '...',
509
- 'alt_1' => '...',
510
- 'image_2' => '...',
511
- 'alt_2' => '...',
512
- 'image_3' => '...',
513
- 'alt_3' => '...',
514
- 'image_4' => '...',
515
- 'alt_4' => '...'
516
- }
517
- ```
518
-
519
- ## Preset
520
-
521
- A <dfn>content preset</dfn> (`Workarea::Content::Preset`) is an [application document](application-document.html) that represents preset data for a new content block instance. Admins can create presets from existing blocks and then create new blocks from those presets rather than using the default data for a block.
522
-
523
- ```
524
- content = Workarea::Content.for('foo')
525
-
526
- new_block = content.blocks.create!(type: 'text', data: {
527
- text: 'Not the default, something re-usable'
528
- })
529
-
530
- Workarea::Content::Preset.create_from_block({}, new_block)
531
- # => true
532
-
533
- preset = Workarea::Content::Preset.first
534
-
535
- block_from_preset = content.blocks.create!(preset.block_attributes)
536
-
537
- new_block.type_id
538
- # => :text
539
-
540
- preset.type_id
541
- # => :text
542
-
543
- block_from_preset.type_id
544
- # => :text
545
-
546
- new_block.data
547
- # => {"text"=>"Not the default, something re-usable"}
548
-
549
- preset.data
550
- # => {"text"=>"Not the default, something re-usable"}
551
-
552
- block_from_preset.data
553
- # => {"text"=>"Not the default, something re-usable"}
554
- ```