workarea-admin 3.4.45 → 3.5.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +52 -0
  3. data/app/assets/images/workarea/admin/email_logo.png +0 -0
  4. data/app/assets/javascripts/workarea/admin/application.js.erb +11 -1
  5. data/app/assets/javascripts/workarea/admin/config.js.erb +96 -0
  6. data/app/assets/javascripts/workarea/admin/modules/active_by_segment_tooltips.js +108 -0
  7. data/app/assets/javascripts/workarea/admin/modules/calendars.js +1 -1
  8. data/app/assets/javascripts/workarea/admin/modules/categorized_autocomplete_fields.js +1 -1
  9. data/app/assets/javascripts/workarea/admin/modules/impersonation_notification.js +44 -0
  10. data/app/assets/javascripts/workarea/admin/modules/jump_to_menus.js +74 -0
  11. data/app/assets/javascripts/workarea/admin/modules/new_navigation_taxons.js +1 -2
  12. data/app/assets/javascripts/workarea/admin/modules/release_reminder.js +1 -0
  13. data/app/assets/javascripts/workarea/admin/modules/selects.js +33 -0
  14. data/app/assets/javascripts/workarea/admin/modules/style_guide_autocomplete_fields.js +42 -0
  15. data/app/assets/javascripts/workarea/admin/modules/timeline_report_chart.js +105 -0
  16. data/app/assets/javascripts/workarea/admin/modules/toggle_elements.js +27 -0
  17. data/app/assets/javascripts/workarea/admin/modules/tribute_areas.js +91 -0
  18. data/app/assets/javascripts/workarea/admin/templates/chart_legend.jst.ejs +17 -9
  19. data/app/assets/javascripts/workarea/admin/templates/jump_to_menu.jst.ejs +13 -0
  20. data/app/assets/stylesheets/workarea/admin/application.scss.erb +3 -0
  21. data/app/assets/stylesheets/workarea/admin/base/_forms.scss +2 -2
  22. data/app/assets/stylesheets/workarea/admin/components/_activity.scss +24 -16
  23. data/app/assets/stylesheets/workarea/admin/components/_activity_group.scss +3 -19
  24. data/app/assets/stylesheets/workarea/admin/components/_box.scss +21 -5
  25. data/app/assets/stylesheets/workarea/admin/components/_calendar.scss +102 -140
  26. data/app/assets/stylesheets/workarea/admin/components/_chart_legend.scss +10 -13
  27. data/app/assets/stylesheets/workarea/admin/components/_checkbox.scss +49 -23
  28. data/app/assets/stylesheets/workarea/admin/components/_content_block_list.scss +5 -3
  29. data/app/assets/stylesheets/workarea/admin/components/_date_marker.scss +24 -3
  30. data/app/assets/stylesheets/workarea/admin/components/_index_table.scss +5 -0
  31. data/app/assets/stylesheets/workarea/admin/components/_jump_to_menu.scss +57 -0
  32. data/app/assets/stylesheets/workarea/admin/components/_product_summary.scss +46 -0
  33. data/app/assets/stylesheets/workarea/admin/components/_toggle_button.scss +1 -4
  34. data/app/assets/stylesheets/workarea/admin/email/_base.scss +30 -2
  35. data/app/assets/stylesheets/workarea/admin/email/_components.scss +66 -5
  36. data/app/assets/stylesheets/workarea/admin/email/_helpers.scss +16 -5
  37. data/app/assets/stylesheets/workarea/admin/email/{_settings.scss → _settings.scss.erb} +4 -4
  38. data/app/controllers/workarea/admin/application_controller.rb +2 -4
  39. data/app/controllers/workarea/admin/bulk_action_sequential_product_edits_controller.rb +4 -6
  40. data/app/controllers/workarea/admin/bulk_variant_saving.rb +1 -2
  41. data/app/controllers/workarea/admin/catalog_products_controller.rb +4 -6
  42. data/app/controllers/workarea/admin/catalog_variants_controller.rb +2 -3
  43. data/app/controllers/workarea/admin/comments_controller.rb +9 -0
  44. data/app/controllers/workarea/admin/configurations_controller.rb +29 -0
  45. data/app/controllers/workarea/admin/content_assets_controller.rb +3 -1
  46. data/app/controllers/workarea/admin/content_blocks_controller.rb +1 -7
  47. data/app/controllers/workarea/admin/create_catalog_products_controller.rb +2 -8
  48. data/app/controllers/workarea/admin/create_release_undos_controller.rb +43 -0
  49. data/app/controllers/workarea/admin/create_segments_controller.rb +68 -0
  50. data/app/controllers/workarea/admin/dashboards_controller.rb +2 -0
  51. data/app/controllers/workarea/admin/data_file_imports_controller.rb +7 -2
  52. data/app/controllers/workarea/admin/fulfillment_skus_controller.rb +58 -0
  53. data/app/controllers/workarea/admin/fulfillment_tokens_controller.rb +56 -0
  54. data/app/controllers/workarea/admin/guest_browsings_controller.rb +2 -2
  55. data/app/controllers/workarea/admin/impersonations_controller.rb +3 -4
  56. data/app/controllers/workarea/admin/orders_controller.rb +3 -0
  57. data/app/controllers/workarea/admin/pricing_discount_redemptions_controller.rb +13 -0
  58. data/app/controllers/workarea/admin/pricing_overrides_controller.rb +1 -1
  59. data/app/controllers/workarea/admin/product_rules_controller.rb +1 -2
  60. data/app/controllers/workarea/admin/releases_controller.rb +8 -13
  61. data/app/controllers/workarea/admin/reports_controller.rb +18 -0
  62. data/app/controllers/workarea/admin/segment_overrides_controller.rb +19 -0
  63. data/app/controllers/workarea/admin/segment_rules_controller.rb +62 -0
  64. data/app/controllers/workarea/admin/segments_controller.rb +48 -0
  65. data/app/controllers/workarea/admin/tax_rates_controller.rb +62 -1
  66. data/app/controllers/workarea/admin/unsubscribes_controller.rb +40 -0
  67. data/app/controllers/workarea/admin/users_controller.rb +19 -0
  68. data/app/helpers/workarea/admin/application_helper.rb +2 -12
  69. data/app/helpers/workarea/admin/configurations_helper.rb +9 -0
  70. data/app/helpers/workarea/admin/content_helper.rb +2 -3
  71. data/app/helpers/workarea/admin/fulfillment_helper.rb +10 -0
  72. data/app/helpers/workarea/admin/icons_helper.rb +26 -0
  73. data/app/helpers/workarea/admin/navigation_helper.rb +1 -0
  74. data/app/helpers/workarea/admin/pricing_overrides_helper.rb +1 -1
  75. data/app/helpers/workarea/admin/products_helper.rb +13 -0
  76. data/app/helpers/workarea/admin/releases_helper.rb +5 -21
  77. data/app/helpers/workarea/admin/segments_helper.rb +68 -0
  78. data/app/helpers/workarea/admin/settings_helper.rb +11 -3
  79. data/app/mailers/workarea/admin/comment_mailer.rb +3 -3
  80. data/app/mailers/workarea/admin/status_report_mailer.rb +19 -6
  81. data/app/view_models/workarea/admin/bulk_action_product_edit_view_model.rb +5 -0
  82. data/app/view_models/workarea/admin/changeset_view_model.rb +15 -3
  83. data/app/view_models/workarea/admin/code_list_view_model.rb +1 -1
  84. data/app/view_models/workarea/admin/commentable_view_model.rb +4 -0
  85. data/app/view_models/workarea/admin/content_view_model.rb +2 -0
  86. data/app/view_models/workarea/admin/dashboards/marketing_view_model.rb +5 -9
  87. data/app/view_models/workarea/admin/dashboards/reports_view_model.rb +25 -0
  88. data/app/view_models/workarea/admin/discounts/buy_some_get_some_view_model.rb +6 -0
  89. data/app/view_models/workarea/admin/discounts/category_view_model.rb +6 -0
  90. data/app/view_models/workarea/admin/discounts/free_gift_view_model.rb +6 -0
  91. data/app/view_models/workarea/admin/discounts/order_total_view_model.rb +6 -0
  92. data/app/view_models/workarea/admin/discounts/product_attribute_view_model.rb +6 -0
  93. data/app/view_models/workarea/admin/discounts/product_view_model.rb +6 -0
  94. data/app/view_models/workarea/admin/discounts/quantity_fixed_price_view_model.rb +6 -0
  95. data/app/view_models/workarea/admin/discounts/shipping_view_model.rb +6 -0
  96. data/app/view_models/workarea/admin/featured_products_view_model.rb +6 -12
  97. data/app/view_models/workarea/admin/fulfillment_sku_view_model.rb +22 -0
  98. data/app/view_models/workarea/admin/fulfillment_token_view_model.rb +15 -0
  99. data/app/view_models/workarea/admin/fulfillment_view_model.rb +14 -0
  100. data/app/view_models/workarea/admin/insight_view_model.rb +2 -2
  101. data/app/view_models/workarea/admin/insights/product_view_model.rb +2 -2
  102. data/app/view_models/workarea/admin/insights/segment_view_model.rb +25 -0
  103. data/app/view_models/workarea/admin/order_view_model.rb +4 -0
  104. data/app/view_models/workarea/admin/pricing_sku_view_model.rb +0 -51
  105. data/app/view_models/workarea/admin/product_rules_preview_view_model.rb +2 -2
  106. data/app/view_models/workarea/admin/product_view_model.rb +26 -5
  107. data/app/view_models/workarea/admin/recommendations_view_model.rb +3 -11
  108. data/app/view_models/workarea/admin/release_calendar_view_model.rb +4 -9
  109. data/app/view_models/workarea/admin/release_event_view_model.rb +8 -41
  110. data/app/view_models/workarea/admin/release_view_model.rb +10 -17
  111. data/app/view_models/workarea/admin/releases_feed_view_model.rb +5 -13
  112. data/app/view_models/workarea/admin/reports/customers_view_model.rb +4 -2
  113. data/app/view_models/workarea/admin/reports/low_inventory_view_model.rb +2 -5
  114. data/app/view_models/workarea/admin/reports/sales_by_category_view_model.rb +2 -5
  115. data/app/view_models/workarea/admin/reports/sales_by_discount_view_model.rb +2 -5
  116. data/app/view_models/workarea/admin/reports/sales_by_product_view_model.rb +2 -5
  117. data/app/view_models/workarea/admin/reports/sales_by_tender_view_model.rb +13 -0
  118. data/app/view_models/workarea/admin/reports/timeline_view_model.rb +74 -0
  119. data/app/view_models/workarea/admin/search_customization_product_rules_view_model.rb +1 -1
  120. data/app/view_models/workarea/admin/segment_view_model.rb +19 -0
  121. data/app/view_models/workarea/admin/user_view_model.rb +6 -9
  122. data/app/view_models/workarea/admin/variant_view_model.rb +8 -0
  123. data/app/views/layouts/workarea/admin/application.html.haml +1 -1
  124. data/app/views/layouts/workarea/admin/email.html.haml +35 -41
  125. data/app/views/workarea/admin/activities/_configuration_admin_update.html.haml +10 -0
  126. data/app/views/workarea/admin/activities/_fulfillment_sku_create.html.haml +12 -0
  127. data/app/views/workarea/admin/activities/_fulfillment_sku_destroy.html.haml +10 -0
  128. data/app/views/workarea/admin/activities/_fulfillment_sku_update.html.haml +10 -0
  129. data/app/views/workarea/admin/activities/_segment_create.html.haml +12 -0
  130. data/app/views/workarea/admin/activities/_segment_destroy.html.haml +10 -0
  131. data/app/views/workarea/admin/activities/_segment_update.html.haml +10 -0
  132. data/app/views/workarea/admin/activities/show.html.haml +18 -11
  133. data/app/views/workarea/admin/bulk_action_product_edits/edit.html.haml +4 -0
  134. data/app/views/workarea/admin/bulk_action_product_edits/review.html.haml +11 -4
  135. data/app/views/workarea/admin/bulk_action_sequential_product_edits/product.html.haml +1 -1
  136. data/app/views/workarea/admin/catalog_categories/_cards.html.haml +3 -1
  137. data/app/views/workarea/admin/catalog_categories/edit.html.haml +1 -4
  138. data/app/views/workarea/admin/catalog_categories/index.html.haml +1 -0
  139. data/app/views/workarea/admin/catalog_product_images/edit.html.haml +1 -1
  140. data/app/views/workarea/admin/catalog_products/_cards.html.haml +2 -4
  141. data/app/views/workarea/admin/catalog_products/edit.html.haml +2 -1
  142. data/app/views/workarea/admin/catalog_products/index.html.haml +4 -2
  143. data/app/views/workarea/admin/catalog_products/insights.html.haml +2 -0
  144. data/app/views/workarea/admin/catalog_variants/edit.html.haml +6 -1
  145. data/app/views/workarea/admin/catalog_variants/index.html.haml +2 -0
  146. data/app/views/workarea/admin/catalog_variants/new.html.haml +5 -0
  147. data/app/views/workarea/admin/changesets/fields/_active_segment_ids.html.haml +4 -0
  148. data/app/views/workarea/admin/comment_mailer/notify.html.haml +27 -19
  149. data/app/views/workarea/admin/comments/index.html.haml +18 -12
  150. data/app/views/workarea/admin/configurations/_overridden.html.haml +2 -0
  151. data/app/views/workarea/admin/configurations/show.html.haml +49 -0
  152. data/app/views/workarea/admin/configurations/types/_array.html.haml +3 -0
  153. data/app/views/workarea/admin/configurations/types/_boolean.html.haml +1 -0
  154. data/app/views/workarea/admin/configurations/types/_duration.html.haml +2 -0
  155. data/app/views/workarea/admin/configurations/types/_encrypted.html.haml +1 -0
  156. data/app/views/workarea/admin/configurations/types/_float.html.haml +1 -0
  157. data/app/views/workarea/admin/configurations/types/_hash.html.haml +17 -0
  158. data/app/views/workarea/admin/configurations/types/_integer.html.haml +1 -0
  159. data/app/views/workarea/admin/configurations/types/_select.html.haml +1 -0
  160. data/app/views/workarea/admin/configurations/types/_string.html.haml +1 -0
  161. data/app/views/workarea/admin/configurations/types/_symbol.html.haml +1 -0
  162. data/app/views/workarea/admin/content/_edit.html.haml +8 -1
  163. data/app/views/workarea/admin/content/_form.html.haml +13 -7
  164. data/app/views/workarea/admin/content/advanced.html.haml +18 -10
  165. data/app/views/workarea/admin/content_assets/_cards.html.haml +3 -0
  166. data/app/views/workarea/admin/content_assets/_summary.html.haml +1 -1
  167. data/app/views/workarea/admin/content_assets/edit.html.haml +6 -0
  168. data/app/views/workarea/admin/content_assets/index.html.haml +7 -2
  169. data/app/views/workarea/admin/content_assets/new.html.haml +10 -3
  170. data/app/views/workarea/admin/content_blocks/_asset.html.haml +8 -1
  171. data/app/views/workarea/admin/content_pages/_cards.html.haml +1 -0
  172. data/app/views/workarea/admin/content_pages/edit.html.haml +1 -1
  173. data/app/views/workarea/admin/content_pages/index.html.haml +1 -0
  174. data/app/views/workarea/admin/create_catalog_categories/publish.html.haml +1 -0
  175. data/app/views/workarea/admin/create_catalog_products/content.html.haml +1 -1
  176. data/app/views/workarea/admin/create_catalog_products/publish.html.haml +1 -0
  177. data/app/views/workarea/admin/create_content_pages/publish.html.haml +1 -0
  178. data/app/views/workarea/admin/create_pricing_discounts/publish.html.haml +1 -0
  179. data/app/views/workarea/admin/create_release_undos/new.html.haml +45 -0
  180. data/app/views/workarea/admin/create_release_undos/review.html.haml +51 -0
  181. data/app/views/workarea/admin/create_releases/plan.html.haml +4 -3
  182. data/app/views/workarea/admin/create_releases/setup.html.haml +8 -12
  183. data/app/views/workarea/admin/create_segments/rules.html.haml +55 -0
  184. data/app/views/workarea/admin/create_segments/setup.html.haml +42 -0
  185. data/app/views/workarea/admin/create_users/admin.html.haml +0 -2
  186. data/app/views/workarea/admin/dashboards/catalog.html.haml +1 -0
  187. data/app/views/workarea/admin/dashboards/people.html.haml +1 -1
  188. data/app/views/workarea/admin/dashboards/reports.html.haml +31 -0
  189. data/app/views/workarea/admin/dashboards/settings.html.haml +23 -3
  190. data/app/views/workarea/admin/data_file_imports/new.html.haml +4 -2
  191. data/app/views/workarea/admin/data_file_mailer/export.html.haml +2 -0
  192. data/app/views/workarea/admin/data_file_mailer/import.html.haml +2 -0
  193. data/app/views/workarea/admin/data_file_mailer/import_failure.html.haml +2 -0
  194. data/app/views/workarea/admin/facets/_applied.html.haml +1 -1
  195. data/app/views/workarea/admin/featured_products/_selected.html.haml +3 -2
  196. data/app/views/workarea/admin/featured_products/_unselected.html.haml +3 -1
  197. data/app/views/workarea/admin/featured_products/edit.html.haml +3 -3
  198. data/app/views/workarea/admin/featured_products/select.html.haml +0 -1
  199. data/app/views/workarea/admin/fulfillment_skus/_aux_navigation.html.haml +3 -0
  200. data/app/views/workarea/admin/fulfillment_skus/_cards.html.haml +57 -0
  201. data/app/views/workarea/admin/fulfillment_skus/_summary.html.haml +6 -0
  202. data/app/views/workarea/admin/fulfillment_skus/edit.html.haml +53 -0
  203. data/app/views/workarea/admin/fulfillment_skus/index.html.haml +75 -0
  204. data/app/views/workarea/admin/fulfillment_skus/new.html.haml +41 -0
  205. data/app/views/workarea/admin/fulfillment_skus/show.html.haml +17 -0
  206. data/app/views/workarea/admin/fulfillment_tokens/index.html.haml +73 -0
  207. data/app/views/workarea/admin/fulfillments/show.html.haml +41 -6
  208. data/app/views/workarea/admin/insights/_most_discounted_products.html.haml +4 -4
  209. data/app/views/workarea/admin/inventory_skus/show.html.haml +1 -1
  210. data/app/views/workarea/admin/navigation_menus/_summary.html.haml +1 -1
  211. data/app/views/workarea/admin/navigation_menus/edit.html.haml +1 -1
  212. data/app/views/workarea/admin/navigation_menus/index.html.haml +3 -1
  213. data/app/views/workarea/admin/navigation_redirects/index.html.haml +0 -5
  214. data/app/views/workarea/admin/navigation_taxons/index.html.haml +20 -4
  215. data/app/views/workarea/admin/orders/_cards.html.haml +23 -5
  216. data/app/views/workarea/admin/orders/attributes.html.haml +4 -1
  217. data/app/views/workarea/admin/orders/fraud.html.haml +43 -0
  218. data/app/views/workarea/admin/orders/index.html.haml +1 -0
  219. data/app/views/workarea/admin/orders/timeline.html.haml +1 -1
  220. data/app/views/workarea/admin/pricing_discount_code_lists/_cards.html.haml +1 -1
  221. data/app/views/workarea/admin/pricing_discount_code_lists/promo_codes.html.haml +1 -1
  222. data/app/views/workarea/admin/pricing_discount_redemptions/index.html.haml +44 -0
  223. data/app/views/workarea/admin/pricing_discounts/_cards.html.haml +22 -0
  224. data/app/views/workarea/admin/pricing_discounts/conditions/_segments.html.haml +5 -0
  225. data/app/views/workarea/admin/pricing_discounts/edit.html.haml +5 -15
  226. data/app/views/workarea/admin/pricing_discounts/index.html.haml +1 -0
  227. data/app/views/workarea/admin/pricing_discounts/properties/_buy_some_get_some.html.haml +1 -0
  228. data/app/views/workarea/admin/pricing_discounts/properties/_category.html.haml +1 -0
  229. data/app/views/workarea/admin/pricing_discounts/properties/_free_gift.html.haml +1 -0
  230. data/app/views/workarea/admin/pricing_discounts/properties/_order_total.html.haml +1 -0
  231. data/app/views/workarea/admin/pricing_discounts/properties/_product.html.haml +1 -0
  232. data/app/views/workarea/admin/pricing_discounts/properties/_product_attribute.html.haml +2 -1
  233. data/app/views/workarea/admin/pricing_discounts/properties/_quantity_fixed_price.html.haml +1 -0
  234. data/app/views/workarea/admin/pricing_discounts/properties/_shipping.html.haml +1 -0
  235. data/app/views/workarea/admin/pricing_skus/_cards.html.haml +7 -7
  236. data/app/views/workarea/admin/pricing_skus/edit.html.haml +5 -5
  237. data/app/views/workarea/admin/pricing_skus/index.html.haml +4 -4
  238. data/app/views/workarea/admin/pricing_skus/new.html.haml +6 -9
  239. data/app/views/workarea/admin/product_rules/_card.html.haml +2 -2
  240. data/app/views/workarea/admin/product_rules/_form.html.haml +1 -0
  241. data/app/views/workarea/admin/product_rules/index.html.haml +2 -0
  242. data/app/views/workarea/admin/releases/_cards.html.haml +50 -12
  243. data/app/views/workarea/admin/releases/_publish.html.haml +1 -1
  244. data/app/views/workarea/admin/releases/edit.html.haml +33 -46
  245. data/app/views/workarea/admin/releases/index.html.haml +81 -90
  246. data/app/views/workarea/admin/releases/list.html.haml +107 -0
  247. data/app/views/workarea/admin/releases/original.html.haml +50 -0
  248. data/app/views/workarea/admin/releases/show.html.haml +3 -17
  249. data/app/views/workarea/admin/releases/undo.html.haml +64 -0
  250. data/app/views/workarea/admin/reports/average_order_value.html.haml +1 -1
  251. data/app/views/workarea/admin/reports/customers.html.haml +4 -0
  252. data/app/views/workarea/admin/reports/first_time_vs_returning_sales.html.haml +1 -1
  253. data/app/views/workarea/admin/reports/reference.html.haml +19 -60
  254. data/app/views/workarea/admin/reports/sales_by_country.html.haml +6 -0
  255. data/app/views/workarea/admin/reports/sales_by_product.html.haml +6 -0
  256. data/app/views/workarea/admin/reports/sales_by_sku.html.haml +6 -0
  257. data/app/views/workarea/admin/reports/sales_by_tender.html.haml +30 -0
  258. data/app/views/workarea/admin/reports/sales_over_time.html.haml +5 -1
  259. data/app/views/workarea/admin/reports/timeline.html.haml +20 -0
  260. data/app/views/workarea/admin/search_customizations/_cards.html.haml +1 -0
  261. data/app/views/workarea/admin/search_customizations/edit.html.haml +1 -1
  262. data/app/views/workarea/admin/search_customizations/index.html.haml +1 -0
  263. data/app/views/workarea/admin/searches/show.html.haml +6 -5
  264. data/app/views/workarea/admin/segment_overrides/show.html.haml +29 -0
  265. data/app/views/workarea/admin/segment_rules/_form.html.haml +13 -0
  266. data/app/views/workarea/admin/segment_rules/fields/_browser_info.html.haml +13 -0
  267. data/app/views/workarea/admin/segment_rules/fields/_geolocation.html.haml +4 -0
  268. data/app/views/workarea/admin/segment_rules/fields/_last_order.html.haml +3 -0
  269. data/app/views/workarea/admin/segment_rules/fields/_logged_in.html.haml +2 -0
  270. data/app/views/workarea/admin/segment_rules/fields/_orders.html.haml +5 -0
  271. data/app/views/workarea/admin/segment_rules/fields/_revenue.html.haml +9 -0
  272. data/app/views/workarea/admin/segment_rules/fields/_sessions.html.haml +5 -0
  273. data/app/views/workarea/admin/segment_rules/fields/_tags.html.haml +4 -0
  274. data/app/views/workarea/admin/segment_rules/fields/_traffic_referrer.html.haml +13 -0
  275. data/app/views/workarea/admin/segment_rules/geolocation_options.json.jbuilder +4 -0
  276. data/app/views/workarea/admin/segment_rules/index.html.haml +25 -0
  277. data/app/views/workarea/admin/segment_rules/summaries/_browser_info.html.haml +11 -0
  278. data/app/views/workarea/admin/segment_rules/summaries/_geolocation.html.haml +2 -0
  279. data/app/views/workarea/admin/segment_rules/summaries/_last_order.html.haml +2 -0
  280. data/app/views/workarea/admin/segment_rules/summaries/_logged_in.html.haml +5 -0
  281. data/app/views/workarea/admin/segment_rules/summaries/_orders.html.haml +6 -0
  282. data/app/views/workarea/admin/segment_rules/summaries/_revenue.html.haml +7 -0
  283. data/app/views/workarea/admin/segment_rules/summaries/_sessions.html.haml +6 -0
  284. data/app/views/workarea/admin/segment_rules/summaries/_tags.html.haml +2 -0
  285. data/app/views/workarea/admin/segment_rules/summaries/_traffic_referrer.html.haml +10 -0
  286. data/app/views/workarea/admin/segments/_cards.html.haml +81 -0
  287. data/app/views/workarea/admin/segments/_publish.html.haml +10 -0
  288. data/app/views/workarea/admin/segments/edit.html.haml +41 -0
  289. data/app/views/workarea/admin/segments/index.html.haml +64 -0
  290. data/app/views/workarea/admin/segments/insights.html.haml +52 -0
  291. data/app/views/workarea/admin/segments/show.html.haml +20 -0
  292. data/app/views/workarea/admin/shared/_active_field.html.haml +17 -0
  293. data/app/views/workarea/admin/shared/_bulk_actions.html.haml +10 -8
  294. data/app/views/workarea/admin/shared/_primary_nav.html.haml +5 -2
  295. data/app/views/workarea/admin/shared/_toggle_button.html.haml +1 -1
  296. data/app/views/workarea/admin/shipping_services/edit.html.haml +0 -4
  297. data/app/views/workarea/admin/shipping_services/new.html.haml +0 -4
  298. data/app/views/workarea/admin/status_report_mailer/report.html.haml +83 -86
  299. data/app/views/workarea/admin/style_guides/components/_activity.html.haml +3 -5
  300. data/app/views/workarea/admin/style_guides/components/_activity_group.html.haml +9 -15
  301. data/app/views/workarea/admin/style_guides/components/_box.html.haml +12 -7
  302. data/app/views/workarea/admin/style_guides/components/_checkbox.html.haml +21 -2
  303. data/app/views/workarea/admin/style_guides/components/_release_changeset.html.haml +3 -5
  304. data/app/views/workarea/admin/tax_rates/edit.html.haml +64 -0
  305. data/app/views/workarea/admin/tax_rates/index.html.haml +59 -20
  306. data/app/views/workarea/admin/tax_rates/new.html.haml +62 -0
  307. data/app/views/workarea/admin/timeline/show.html.haml +34 -41
  308. data/app/views/workarea/admin/toolbar/show.html.haml +11 -1
  309. data/app/views/workarea/admin/trash/index.html.haml +1 -1
  310. data/app/views/workarea/admin/users/edit.html.haml +60 -57
  311. data/app/views/workarea/admin/users/index.html.haml +1 -3
  312. data/app/views/workarea/admin/users/index.json.jbuilder +8 -0
  313. data/app/views/workarea/admin/users/insights.html.haml +31 -23
  314. data/app/views/workarea/admin/users/permissions.html.haml +10 -1
  315. data/app/views/workarea/admin/users/show.html.haml +7 -0
  316. data/config/locales/en.yml +569 -124
  317. data/config/routes.rb +57 -5
  318. data/lib/workarea/mailer_previews/admin/status_report_mailer_preview.rb +3 -1
  319. data/public/workarea/import_samples/tax_rates.csv +3 -3
  320. data/test/dummy/config/initializers/session_store.rb +1 -1
  321. data/test/helpers/workarea/admin/application_helper_test.rb +0 -16
  322. data/test/helpers/workarea/admin/icons_helper_test.rb +9 -0
  323. data/test/helpers/workarea/admin/products_helper_test.rb +73 -0
  324. data/test/helpers/workarea/admin/releases_helper_test.rb +0 -49
  325. data/test/helpers/workarea/admin/settings_helper_test.rb +22 -1
  326. data/test/integration/workarea/admin/assets_integration_test.rb +2 -5
  327. data/test/integration/workarea/admin/comments_integration_test.rb +27 -7
  328. data/test/integration/workarea/admin/configurations_integration_test.rb +21 -0
  329. data/test/integration/workarea/admin/create_release_undos_integration_test.rb +29 -0
  330. data/test/integration/workarea/admin/create_segments_integration_test.rb +26 -0
  331. data/test/integration/workarea/admin/data_file_imports_integration_test.rb +34 -8
  332. data/test/integration/workarea/admin/fulfillment_skus_integration_test.rb +55 -0
  333. data/test/integration/workarea/admin/fulfillment_tokens_integration_test.rb +43 -0
  334. data/test/integration/workarea/admin/guest_browsings_integration_test.rb +8 -32
  335. data/test/integration/workarea/admin/impersonations_integration_test.rb +13 -57
  336. data/test/integration/workarea/admin/jump_to_integration_test.rb +0 -29
  337. data/test/integration/workarea/admin/pricing_overrides_integration_test.rb +11 -0
  338. data/test/integration/workarea/admin/products_integration_test.rb +0 -13
  339. data/test/integration/workarea/admin/releases_integration_test.rb +71 -87
  340. data/test/integration/workarea/admin/segment_overrides_integration_test.rb +28 -0
  341. data/test/integration/workarea/admin/segment_rules_integration_test.rb +49 -0
  342. data/test/integration/workarea/admin/segments_integration_test.rb +31 -0
  343. data/test/integration/workarea/admin/shipping_service_integration_test.rb +1 -3
  344. data/test/integration/workarea/admin/tax_categories_integration_test.rb +1 -1
  345. data/test/integration/workarea/admin/unsubscribes_integration_test.rb +32 -0
  346. data/test/integration/workarea/admin/users_integration_test.rb +32 -0
  347. data/test/javascripts/fixtures/release_reminder.html.haml +3 -3
  348. data/test/javascripts/new_navigation_taxons_spec.js +1 -12
  349. data/test/mailers/workarea/admin/comment_mailer_test.rb +35 -0
  350. data/test/mailers/workarea/admin/status_report_mailer_test.rb +30 -25
  351. data/test/system/workarea/admin/alerts_system_test.rb +2 -1
  352. data/test/system/workarea/admin/bulk_actions_system_test.rb +1 -1
  353. data/test/system/workarea/admin/comments_system_test.rb +43 -0
  354. data/test/system/workarea/admin/content_system_test.rb +6 -0
  355. data/test/system/workarea/admin/dashboard_system_test.rb +8 -9
  356. data/test/system/workarea/admin/data_files_system_test.rb +1 -1
  357. data/test/system/workarea/admin/discounts_system_test.rb +18 -0
  358. data/test/system/workarea/admin/featured_products_system_test.rb +3 -0
  359. data/test/system/workarea/admin/fulfillment_skus_system_test.rb +48 -0
  360. data/test/system/workarea/admin/impersonation_system_test.rb +5 -2
  361. data/test/system/workarea/admin/orders_system_test.rb +32 -21
  362. data/test/system/workarea/admin/payment_transactions_system_test.rb +34 -32
  363. data/test/system/workarea/admin/releases_system_test.rb +151 -37
  364. data/test/system/workarea/admin/reports_system_test.rb +29 -0
  365. data/test/system/workarea/admin/segments_system_test.rb +124 -0
  366. data/test/system/workarea/admin/tax_categories_system_test.rb +166 -16
  367. data/test/system/workarea/admin/users_system_test.rb +15 -0
  368. data/test/view_models/workarea/admin/changeset_view_model_test.rb +59 -9
  369. data/test/view_models/workarea/admin/code_list_view_model_test.rb +0 -5
  370. data/test/view_models/workarea/admin/content_view_model_test.rb +13 -11
  371. data/test/view_models/workarea/admin/insights/product_view_model_test.rb +4 -4
  372. data/test/view_models/workarea/admin/insights/segment_view_model_test.rb +73 -0
  373. data/test/view_models/workarea/admin/product_rules_preview_view_model_test.rb +37 -0
  374. data/test/view_models/workarea/admin/product_view_model_test.rb +13 -19
  375. data/test/view_models/workarea/admin/release_calendar_view_model_test.rb +16 -0
  376. data/test/view_models/workarea/admin/release_view_model_test.rb +13 -56
  377. data/test/view_models/workarea/admin/releases_feed_view_model_test.rb +8 -21
  378. data/test/view_models/workarea/admin/reports/timeline_view_model_test.rb +76 -0
  379. data/test/view_models/workarea/admin/search_analysis_view_model_test.rb +14 -16
  380. data/test/view_models/workarea/admin/timeline_view_model_test.rb +1 -1
  381. metadata +128 -17
  382. data/app/views/workarea/admin/featured_products/_release_preview_warning.html.haml +0 -4
  383. data/app/views/workarea/admin/releases/calendar.html.haml +0 -54
  384. data/test/dummy/tmp/screenshots/.keep +0 -0
  385. data/test/helpers/workarea/admin/content_helper_test.rb +0 -17
  386. data/test/integration/workarea/admin/index_tracking_integration_test.rb +0 -21
  387. data/test/javascripts/fixtures/existing_navigation_taxon.html.haml +0 -10
  388. data/test/view_models/workarea/admin/pricing_sku_view_model_test.rb +0 -84
@@ -0,0 +1,52 @@
1
+ - @page_title = t('workarea.admin.segments.insights.page_title', segment: @segment.name)
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle.grid--right
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ = link_to_index_for(@segment)
9
+ %h1= link_to @segment.name, url_for(@segment)
10
+ .grid__cell.grid__cell--25
11
+ = render_aux_navigation_for(@segment)
12
+ .view__container
13
+ = render_cards_for(@segment, :insights)
14
+
15
+ .section
16
+ .browsing-controls.browsing-controls--center.browsing-controls--filters-displayed
17
+ = form_tag request.path, method: 'get', class: 'browsing-controls__form' do
18
+ = render 'workarea/admin/shared/date_selector', starts_at: @segment.insights.starts_at, ends_at: @segment.insights.ends_at
19
+
20
+ .grid.grid--auto.grid--center
21
+ .grid__cell
22
+ .card
23
+ .card__body.align-center
24
+ %h6.heading.heading--no-margin= t('workarea.admin.segments.insights.orders')
25
+ %span.heading.heading--1.heading--no-margin= number_with_delimiter @segment.insights.orders
26
+ %p
27
+ - if @segment.insights.orders_percent_change.present?
28
+ = insights_trend_icon(@segment.insights.orders_percent_change)
29
+ = t('workarea.admin.segments.insights.from_previous', percentage: insights_number_to_percentage(@segment.insights.orders_percent_change))
30
+ = area_chart @segment.insights.orders_graph_data, Workarea.config.default_chartkick_options
31
+
32
+ .grid__cell
33
+ .card
34
+ .card__body.align-center
35
+ %h6.heading.heading--no-margin= t('workarea.admin.segments.insights.revenue')
36
+ %span.heading.heading--1.heading--no-margin= number_to_currency @segment.insights.revenue
37
+ %p
38
+ - if @segment.insights.revenue_percent_change.present?
39
+ = insights_trend_icon(@segment.insights.revenue_percent_change)
40
+ = t('workarea.admin.segments.insights.from_previous', percentage: insights_number_to_percentage(@segment.insights.revenue_percent_change))
41
+ = area_chart @segment.insights.revenue_graph_data, Workarea.config.default_chartkick_options.merge(prefix: Money.default_currency.symbol)
42
+
43
+ .grid__cell
44
+ .card
45
+ .card__body.align-center
46
+ %h6.heading.heading--no-margin= t('workarea.admin.segments.insights.average_order_value')
47
+ %span.heading.heading--1.heading--no-margin= number_to_currency @segment.insights.average_order_value
48
+ %p
49
+ - if @segment.insights.average_order_value_percent_change.present?
50
+ = insights_trend_icon(@segment.insights.average_order_value_percent_change)
51
+ = t('workarea.admin.segments.insights.from_previous', percentage: insights_number_to_percentage(@segment.insights.average_order_value_percent_change))
52
+ = area_chart @segment.insights.average_order_value_graph_data, Workarea.config.default_chartkick_options
@@ -0,0 +1,20 @@
1
+ - @page_title = @segment.name
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--center
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ = link_to_index_for(@segment)
9
+ %h1= @segment.name
10
+
11
+ .view__container
12
+ = render_cards_for(@segment)
13
+
14
+ .workflow-bar
15
+ .grid
16
+ .grid__cell.grid__cell--50
17
+ - unless @segment.life_cycle?
18
+ = link_to t('workarea.admin.actions.delete'), segment_path(@segment), class: 'workflow-bar__button workflow-bar__button--delete', data: { method: 'delete', confirm: t('workarea.admin.actions.delete_confirmation') }
19
+ .grid__cell.grid__cell--50.grid--right
20
+ = append_partials('admin.discount_show_workflow_bar', model: @segment)
@@ -0,0 +1,17 @@
1
+ .active-field
2
+ = toggle_button_for "#{scope}[active]", model.active, data: { toggle_button: '' } do
3
+ .toggle-button__more.toggle-button__more--to-right{ data: { toggle_button_positive_element: '' } }
4
+ = link_to '#active-by-segment', data: { active_by_segment_tooltip: '' } do
5
+ .active-field__segments-message
6
+ - haml_tag_if model.segments.present?, :strong do
7
+ = t('workarea.admin.shared.active_field.by_segment', name: model.segments.map(&:name).first, count: model.segments.size, more_count: model.segments.size - 1)
8
+
9
+ #active-by-segment.tooltip-content
10
+ %h3
11
+ = inline_svg('workarea/admin/icons/user.svg', class: 'svg-icon svg-icon--small svg-icon--blue')
12
+ = t('workarea.admin.shared.active_field.active_by_segment')
13
+ %p= t('workarea.admin.shared.active_field.description_html', segments_path: segments_path)
14
+
15
+ .property
16
+ = label_tag "#{scope}_active_segment_ids", t('workarea.admin.shared.active_field.only_for'), class: 'property__name'
17
+ = select_tag "#{scope}[active_segment_ids]", options_from_collection_for_select(segments, :id, :name, model.active_segment_ids), multiple: true, data: { select: { placeholder: t('workarea.admin.shared.active_field.select_segments'), allowClear: true, dropdownParent: '#active-by-segment' } }
@@ -1,13 +1,15 @@
1
1
  .grid.grid--auto.grid--middle
2
- .grid__cell= link_to t('workarea.admin.shared.bulk_actions.import'), new_data_file_import_path(model_type: klass, return_to: index_url_for(klass)), class: 'workflow-bar__button'
2
+ - unless local_assigns.key?(:import) && !import
3
+ .grid__cell= link_to t('workarea.admin.shared.bulk_actions.import'), new_data_file_import_path(model_type: klass, return_to: index_url_for(klass)), class: 'workflow-bar__button'
3
4
 
4
- .grid__cell
5
- = form_tag new_data_file_export_path, method: :get, data: { bulk_action_form: '' } do
6
- = hidden_field_tag 'model_type', klass
7
- - if local_assigns[:search].present?
8
- = hidden_field_tag 'query_id', search.to_gid_param
9
- = hidden_field_tag 'return_to', index_url_for(klass)
10
- %button.workflow-bar__button.workflow-bar__button--left-divide{ type: :submit }= t('workarea.admin.shared.bulk_actions.export')
5
+ - unless local_assigns.key?(:export) && !export
6
+ .grid__cell
7
+ = form_tag new_data_file_export_path, method: :get, data: { bulk_action_form: '' } do
8
+ = hidden_field_tag 'model_type', klass
9
+ - if local_assigns[:search].present?
10
+ = hidden_field_tag 'query_id', search.to_gid_param
11
+ = hidden_field_tag 'return_to', index_url_for(klass)
12
+ %button.workflow-bar__button.workflow-bar__button--left-divide{ type: :submit }= t('workarea.admin.shared.bulk_actions.export')
11
13
 
12
14
  = yield
13
15
  = append_partials("admin.bulk_actions.#{klass.model_name.route_key}", local_assigns.slice(:klass, :search))
@@ -29,6 +29,7 @@
29
29
  = local_time(release.publish_at, :date_only)
30
30
  - else
31
31
  = t('workarea.admin.shared.primary_nav.not_scheduled')
32
+ %li.primary-nav__item= link_to t('workarea.admin.shared.primary_nav.view_all_releases'), list_releases_path, class: navigation_link_classes(list_releases_path)
32
33
 
33
34
  = append_partials('admin.releases_menu')
34
35
 
@@ -50,6 +51,7 @@
50
51
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.categories'), catalog_categories_path, class: navigation_link_classes(catalog_categories_path)
51
52
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.pricing'), pricing_skus_path, class: navigation_link_classes(pricing_skus_path)
52
53
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.inventory'), inventory_skus_path, class: navigation_link_classes(inventory_skus_path)
54
+ %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.fulfillment'), fulfillment_skus_path, class: navigation_link_classes(fulfillment_skus_path)
53
55
  = append_partials('admin.catalog_menu')
54
56
 
55
57
  .primary-nav__section
@@ -67,7 +69,7 @@
67
69
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.all_people'), users_path, class: navigation_link_classes(users_path)
68
70
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.customers'), customers_path, class: navigation_link_classes(customers_path)
69
71
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.administrators'), administrators_path, class: navigation_link_classes(administrators_path)
70
- %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.todays_signups'), todays_signups_path, class: navigation_link_classes(todays_signups_path)
72
+ %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.segments'), segments_path, class: navigation_link_classes(segments_path)
71
73
  = append_partials('admin.people_menu')
72
74
 
73
75
  .primary-nav__section
@@ -92,11 +94,11 @@
92
94
  .primary-nav__section
93
95
  .primary-nav__heading= link_to t('workarea.admin.shared.primary_nav.reports'), reports_dashboards_path, tabindex: 0, class: 'primary-nav__heading-link'
94
96
  %ul.primary-nav__children
97
+ %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.timeline'), timeline_report_path, class: navigation_link_classes(timeline_report_path)
95
98
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.insights'), insights_report_path, class: navigation_link_classes(insights_report_path)
96
99
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.sales_over_time'), sales_over_time_report_path, class: navigation_link_classes(sales_over_time_report_path)
97
100
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.average_order_value'), average_order_value_report_path, class: navigation_link_classes(average_order_value_report_path)
98
101
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.sales_by_product'), sales_by_product_report_path, class: navigation_link_classes(sales_by_product_report_path)
99
- %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.sales_by_traffic_referrer'), sales_by_traffic_referrer_report_path, class: navigation_link_classes(sales_by_traffic_referrer_report_path)
100
102
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.customers'), customers_report_path, class: navigation_link_classes(customers_report_path)
101
103
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.searches'), searches_report_path, class: navigation_link_classes(searches_report_path)
102
104
  = append_partials('admin.reports_menu')
@@ -104,6 +106,7 @@
104
106
  .primary-nav__section
105
107
  .primary-nav__heading= link_to t('workarea.admin.shared.primary_nav.settings'), settings_dashboards_path, tabindex: 0, class: 'primary-nav__heading-link'
106
108
  %ul.primary-nav__children
109
+ %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.configuration'), configuration_path, class: navigation_link_classes(configuration_path)
107
110
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.search'), search_settings_path, class: navigation_link_classes(search_settings_path)
108
111
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.tax_categories'), tax_categories_path, class: navigation_link_classes(tax_categories_path)
109
112
  %li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.shipping_services'), shipping_services_path, class: navigation_link_classes(shipping_services_path)
@@ -1,4 +1,4 @@
1
- .toggle-button{ data: data, class: disabled ? 'toggle-button--disabled' : nil }
1
+ .toggle-button{ data: data }
2
2
  .toggle-button__switch
3
3
  = radio_button_tag input_name, true, condition, disabled: disabled, class: 'toggle-button__input toggle-button__input--positive', title: title_true, id: "#{dom_id}_true"
4
4
  = label_tag "#{dom_id}_false", label_true, class: 'toggle-button__label toggle-button__label--positive', id: "#{dom_id}_false_label"
@@ -25,10 +25,6 @@
25
25
  = label_tag 'service_tax_code', t('workarea.admin.fields.tax_code'), class: 'property__name'
26
26
  = text_field_tag 'service[tax_code]', @service.tax_code, class: 'text-box'
27
27
 
28
- .property
29
- = label_tag 'service_service_code', t('workarea.admin.fields.service_code'), class: 'property__name'
30
- = text_field_tag 'service[service_code]', @service.service_code, class: 'text-box'
31
-
32
28
  .property
33
29
  = label_tag 'service_country', t('workarea.admin.fields.country'), class: 'property__name'
34
30
  = select_tag "service[country]", options_for_select(country_options, @service.country.try(:alpha2)), prompt: t('workarea.admin.shipping_services.options.not_specified')
@@ -25,10 +25,6 @@
25
25
  = label_tag 'service_tax_code', t('workarea.admin.fields.tax_code'), class: 'property__name'
26
26
  = text_field_tag 'service[tax_code]', @service.tax_code, class: 'text-box'
27
27
 
28
- .property
29
- = label_tag 'service_service_code', t('workarea.admin.fields.service_code'), class: 'property__name'
30
- = text_field_tag 'service[service_code]', @service.service_code, class: 'text-box'
31
-
32
28
  .property
33
29
  = label_tag 'service_country', t('workarea.admin.fields.country'), class: 'property__name'
34
30
  = select_tag "service[country]", options_for_select(country_options, @service.country.try(:alpha2)), prompt: t('workarea.admin.shipping_services.options.not_specified')
@@ -1,94 +1,91 @@
1
1
  %tr
2
2
  %td
3
- %h1
4
- = Workarea.config.site_name
5
- = t('workarea.admin.status_report_mailer.title')
6
- %p= @date.to_s(:long)
3
+ %h1= t('workarea.admin.status_report_mailer.title', site: Workarea.config.site_name)
4
+ %p= t('workarea.admin.status_report_mailer.description', date: @date.to_s(:long))
7
5
 
8
- %h2= t('workarea.admin.status_report_mailer.orders.title')
6
+ .box
7
+ %h2= t('workarea.admin.status_report_mailer.orders.title')
9
8
 
10
- %p
11
- = t('workarea.admin.status_report_mailer.orders.total_orders')
12
- = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
13
- = number_with_delimiter @dashboard.yesterday.orders
14
- %p
15
- = t('workarea.admin.status_report_mailer.orders.units_sold')
16
- = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
17
- = number_with_delimiter @dashboard.yesterday.units_sold
18
- %p
19
- = t('workarea.admin.status_report_mailer.orders.revenue')
20
- = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
21
- = number_to_currency @dashboard.yesterday.revenue
22
- %p
23
- = t('workarea.admin.status_report_mailer.orders.discounts')
24
- = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
25
- = number_to_currency @dashboard.yesterday.discounts
26
- %p
27
- = t('workarea.admin.status_report_mailer.orders.customers')
28
- = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
29
- = number_with_delimiter @dashboard.yesterday.customers
9
+ %ul
10
+ %li
11
+ = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
12
+ = number_with_delimiter @dashboard.yesterday.orders
13
+ = t('workarea.admin.status_report_mailer.orders.total_orders')
14
+ %li
15
+ = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
16
+ = number_with_delimiter @dashboard.yesterday.units_sold
17
+ = t('workarea.admin.status_report_mailer.orders.units_sold')
18
+ %li
19
+ = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
20
+ = number_to_currency @dashboard.yesterday.revenue
21
+ = t('workarea.admin.status_report_mailer.orders.revenue')
22
+ %li
23
+ = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
24
+ = number_to_currency @dashboard.yesterday.discounts
25
+ = t('workarea.admin.status_report_mailer.orders.discounts')
26
+ %li
27
+ = link_to sales_over_time_report_url(starts_at: 1.day.ago.to_s(:date_only), ends_at: 1.day.ago.to_s(:date_only), group_by: 'day'), class: 'heading heading--3 heading--no-margin' do
28
+ = number_with_delimiter @dashboard.yesterday.customers
29
+ = t('workarea.admin.status_report_mailer.orders.customers')
30
30
 
31
- %h2= t('workarea.admin.status_report_mailer.alerts.title')
31
+ - if @alerts.size > 0
32
+ .box
33
+ %h2= t('workarea.admin.status_report_mailer.alerts.title')
32
34
 
33
- - if @alerts.show_products_missing_prices?
34
- %p
35
- = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.sku_missing_price')]) do
36
- %strong
37
- = @alerts.products_missing_prices
38
- = t('workarea.admin.status_report_mailer.alerts.products_without_prices')
39
- - if @alerts.show_empty_categories?
40
- %p
41
- = link_to catalog_categories_url(issues: [t('workarea.alerts.issues.no_displayable_products')]) do
42
- %strong
43
- = @alerts.empty_categories
44
- = t('workarea.admin.status_report_mailer.alerts.empty_categories')
45
- - if @alerts.show_products_missing_images?
46
- %p
47
- = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_images')]) do
48
- %strong
49
- = @alerts.products_missing_images
50
- = t('workarea.admin.status_report_mailer.alerts.products_without_images')
51
- - if @alerts.show_products_missing_descriptions?
52
- %p
53
- = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_description')]) do
54
- %strong
55
- = @alerts.products_missing_descriptions
56
- = t('workarea.admin.status_report_mailer.alerts.products_without_descriptions')
57
- - if @alerts.show_products_missing_variants?
58
- %p
59
- = link_to catalog_products_url(issues: [t('workarea.alerts.issues.no_variants')]) do
60
- %strong
61
- = @alerts.products_missing_variants
62
- = t('workarea.admin.status_report_mailer.alerts.products_without_variants')
63
- - if @alerts.show_products_missing_categories?
64
- %p
65
- = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_categories')]) do
66
- %strong
67
- = @alerts.products_missing_categories
68
- = t('workarea.admin.status_report_mailer.alerts.products_without_categories')
69
- - if @alerts.show_products_low_inventory?
70
- %p
71
- = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.low_inventory')]) do
72
- %strong
73
- = @alerts.products_low_inventory
74
- = t('workarea.admin.status_report_mailer.alerts.products_with_low_inventory')
75
- - if @alerts.show_products_variants_missing_details?
76
- %p
77
- = link_to catalog_products_url(issues: [t('workarea.alerts.issues.variants_missing_details')]) do
78
- %strong
79
- = @alerts.products_variants_missing_details
80
- = t('workarea.admin.status_report_mailer.alerts.products_with_variants_missing_details')
81
- - if @alerts.show_products_inconsistent_variant_details?
82
- %p
83
- = link_to catalog_products_url(issues: [t('workarea.alerts.issues.inconsistent_variant_details')]) do
84
- %strong
85
- = @alerts.products_inconsistent_variant_details
86
- = t('workarea.admin.status_report_mailer.alerts.products_with_inconsistent_variant_details')
87
- - if @alerts.empty_upcoming_releases.any?
88
- %p
89
- = link_to releases_url do
90
- %strong
91
- = @alerts.empty_upcoming_releases.length
92
- = t('workarea.admin.status_report_mailer.alerts.upcoming_empty_releases')
35
+ %ul
36
+ - if @alerts.show_products_missing_prices?
37
+ %li
38
+ = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.sku_missing_price')]) do
39
+ = @alerts.products_missing_prices
40
+ = t('workarea.admin.status_report_mailer.alerts.products_without_prices')
41
+ - if @alerts.show_empty_categories?
42
+ %li
43
+ = link_to catalog_categories_url(issues: [t('workarea.alerts.issues.no_displayable_products')]) do
44
+ = @alerts.empty_categories
45
+ = t('workarea.admin.status_report_mailer.alerts.empty_categories')
46
+ - if @alerts.show_products_missing_images?
47
+ %li
48
+ = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_images')]) do
49
+ = @alerts.products_missing_images
50
+ = t('workarea.admin.status_report_mailer.alerts.products_without_images')
51
+ - if @alerts.show_products_missing_descriptions?
52
+ %li
53
+ = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_description')]) do
54
+ = @alerts.products_missing_descriptions
55
+ = t('workarea.admin.status_report_mailer.alerts.products_without_descriptions')
56
+ - if @alerts.show_products_missing_variants?
57
+ %li
58
+ = link_to catalog_products_url(issues: [t('workarea.alerts.issues.no_variants')]) do
59
+ = @alerts.products_missing_variants
60
+ = t('workarea.admin.status_report_mailer.alerts.products_without_variants')
61
+ - if @alerts.show_products_missing_categories?
62
+ %li
63
+ = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.no_categories')]) do
64
+ = @alerts.products_missing_categories
65
+ = t('workarea.admin.status_report_mailer.alerts.products_without_categories')
66
+ - if @alerts.show_products_low_inventory?
67
+ %li
68
+ = link_to catalog_products_url(status: ['active'], issues: [t('workarea.alerts.issues.low_inventory')]) do
69
+ = @alerts.products_low_inventory
70
+ = t('workarea.admin.status_report_mailer.alerts.products_with_low_inventory')
71
+ - if @alerts.show_products_variants_missing_details?
72
+ %li
73
+ = link_to catalog_products_url(issues: [t('workarea.alerts.issues.variants_missing_details')]) do
74
+ = @alerts.products_variants_missing_details
75
+ = t('workarea.admin.status_report_mailer.alerts.products_with_variants_missing_details')
76
+ - if @alerts.show_products_inconsistent_variant_details?
77
+ %li
78
+ = link_to catalog_products_url(issues: [t('workarea.alerts.issues.inconsistent_variant_details')]) do
79
+ = @alerts.products_inconsistent_variant_details
80
+ = t('workarea.admin.status_report_mailer.alerts.products_with_inconsistent_variant_details')
81
+ - if @alerts.empty_upcoming_releases.any?
82
+ %li
83
+ = link_to releases_url do
84
+ = @alerts.empty_upcoming_releases.length
85
+ = t('workarea.admin.status_report_mailer.alerts.upcoming_empty_releases')
86
+
87
+ - if @user.present?
88
+ %p.align-center
89
+ = link_to t('workarea.admin.status_report_mailer.unsubscribe'), status_report_unsubscribe_url(@user.token)
93
90
 
94
91
  = append_partials('admin.status_report_mailer')
@@ -15,11 +15,9 @@
15
15
  .grid.grid--auto
16
16
  .grid__cell
17
17
  = button_tag value: 'edit_changes', class: 'text-button' do
18
- %span Edit
19
- = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
18
+ = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon', title: 'Edit')
20
19
  .grid__cell
21
- = button_tag value: 'delete_changeset', class: 'text-button' do
22
- %span= t('workarea.admin.actions.delete')
23
- = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
20
+ = button_tag value: 'delete_changeset', class: 'text-button text-button--destroy' do
21
+ = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon', title: 'Delete')
24
22
  .activity__message
25
23
  Your mom created a product.
@@ -25,12 +25,10 @@
25
25
  .grid.grid--auto
26
26
  .grid__cell
27
27
  = button_tag value: 'edit_changes', class: 'text-button' do
28
- %span Edit
29
- = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
28
+ = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon', title: 'Edit')
30
29
  .grid__cell
31
- = button_tag value: 'delete_changeset', class: 'text-button' do
32
- %span= t('workarea.admin.actions.delete')
33
- = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
30
+ = button_tag value: 'delete_changeset', class: 'text-button text-button--destroy' do
31
+ = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon', title: 'Delete')
34
32
  .activity__message
35
33
  Your mom created a product.
36
34
 
@@ -44,12 +42,10 @@
44
42
  .grid.grid--auto
45
43
  .grid__cell
46
44
  = button_tag value: 'edit_changes', class: 'text-button' do
47
- %span Edit
48
- = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
45
+ = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon', title: 'Edit')
49
46
  .grid__cell
50
- = button_tag value: 'delete_changeset', class: 'text-button' do
51
- %span= t('workarea.admin.actions.delete')
52
- = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
47
+ = button_tag value: 'delete_changeset', class: 'text-button text-button--destroy' do
48
+ = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon', title: 'Delete')
53
49
  .activity__message
54
50
  Your mom created a product.
55
51
 
@@ -70,11 +66,9 @@
70
66
  .grid.grid--auto
71
67
  .grid__cell
72
68
  = button_tag value: 'edit_changes', class: 'text-button' do
73
- %span Edit
74
- = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
69
+ = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon', title: 'Edit')
75
70
  .grid__cell
76
- = button_tag value: 'delete_changeset', class: 'text-button' do
77
- %span= t('workarea.admin.actions.delete')
78
- = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
71
+ = button_tag value: 'delete_changeset', class: 'text-button text-button--destroy' do
72
+ = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon', title: 'Delete')
79
73
  .activity__message
80
74
  Your mom created a product.
@@ -9,9 +9,14 @@
9
9
  .box__head
10
10
  %span.box__heading Header Text
11
11
  .box__body
12
- %p Render-farm geodesic bicycle chrome monofilament construct nano-augmented reality. Man Chiba pistol range-rover franchise systemic apophenia realism knife sentient Kowloon Shibuya computer garage singularity. Faded military-grade sentient systemic wonton soup fluidity vehicle long-chain hydrocarbons. Long-chain hydrocarbons decay gang hacker Tokyo silent smart-shrine vehicle market nodal point man apophenia corrupted human.
13
- .box__actions
14
- = link_to 'Box Action', '#', class: 'text-button'
12
+ .box__section
13
+ %p Render-farm geodesic bicycle chrome monofilament construct nano-augmented reality. Man Chiba pistol range-rover franchise systemic apophenia realism knife sentient Kowloon Shibuya computer garage singularity. Faded military-grade sentient systemic wonton soup fluidity vehicle long-chain hydrocarbons. Long-chain hydrocarbons decay gang hacker Tokyo silent smart-shrine vehicle market nodal point man apophenia corrupted human.
14
+ .box__actions
15
+ = link_to 'Box Action', '#', class: 'text-button'
16
+ .box__section
17
+ %p Render-farm geodesic bicycle chrome monofilament construct nano-augmented reality. Man Chiba pistol range-rover franchise systemic apophenia realism knife sentient Kowloon Shibuya computer garage singularity. Faded military-grade sentient systemic wonton soup fluidity vehicle long-chain hydrocarbons. Long-chain hydrocarbons decay gang hacker Tokyo silent smart-shrine vehicle market nodal point man apophenia corrupted human.
18
+ .box__actions
19
+ = link_to 'Box Action', '#', class: 'text-button'
15
20
 
16
21
  .style-guide__unit-test
17
22
 
@@ -43,14 +48,14 @@
43
48
  .box__actions
44
49
  = link_to 'Box Action', '#', class: 'text-button'
45
50
 
46
- #box--no-padding.style-guide__subsection
51
+ #box--padded.style-guide__subsection
47
52
 
48
- %h3= link_to_style_guide('components', 'box__subsection')
53
+ %h3= link_to_style_guide('components', 'box__padded')
49
54
 
50
- %p should remove the padding from the box.
55
+ %p should add padding to the box.
51
56
 
52
57
  .style-guide__example-block
53
- .box.box--no-padding
58
+ .box.box--padded
54
59
  .box__head
55
60
  %span.box__heading Header Text
56
61
  .box__body
@@ -7,7 +7,7 @@
7
7
  .style-guide__example-block
8
8
  .checkbox
9
9
  = check_box_tag 'checkbox_1', 'value_1', false, class: 'checkbox__input'
10
- = label_tag 'checkbox_1', '', class: 'checkbox__label', title: 'Select Row'
10
+ = label_tag 'checkbox_1', 'Select The Row', class: 'checkbox__label', title: 'Select Row'
11
11
 
12
12
  #checkbox--indeterminate.style-guide__subsection
13
13
 
@@ -18,4 +18,23 @@
18
18
  .style-guide__example-block
19
19
  .checkbox.checkbox--indeterminate
20
20
  = check_box_tag 'checkbox_2', 'value_2', false, class: 'checkbox__input'
21
- = label_tag 'checkbox_2', '', class: 'checkbox__label', title: 'Select Row'
21
+ = label_tag 'checkbox_2', 'I dunno dawg', class: 'checkbox__label', title: 'Select Row'
22
+
23
+ #checkbox--no-label.style-guide__subsection
24
+
25
+ %h3= link_to_style_guide('components', 'checkbox__no_label')
26
+
27
+ %p should visually hide the label
28
+ .style-guide__example-block
29
+ .checkbox.checkbox--no-label
30
+ = check_box_tag 'checkbox_3', 'value_3', false, class: 'checkbox__input'
31
+ = label_tag 'checkbox_3', 'Select The Row', class: 'checkbox__label', title: 'Select Row'
32
+
33
+ %p This behavior is also default when <code>checkbox__label</code> is found within <code>index-table</code>:
34
+
35
+ %p should visually hide the label
36
+ .style-guide__example-block
37
+ .index-table
38
+ .checkbox
39
+ = check_box_tag 'checkbox_4', 'value_4', false, class: 'checkbox__input'
40
+ = label_tag 'checkbox_4', 'Select The Row', class: 'checkbox__label', title: 'Select Row'
@@ -38,12 +38,10 @@
38
38
  .grid.grid--auto
39
39
  .grid__cell
40
40
  = button_tag value: 'edit_changes', class: 'text-button' do
41
- %span Edit
42
- = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
41
+ = inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon', title: 'Edit')
43
42
  .grid__cell
44
- = button_tag value: 'delete_changeset', class: 'text-button' do
45
- %span= t('workarea.admin.actions.delete')
46
- = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
43
+ = button_tag value: 'delete_changeset', class: 'text-button text-button--destroy' do
44
+ = inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon', title: 'Delete')
47
45
  .activity__message
48
46
  .release-changeset.release-changeset--activity
49
47
  %ul.release-changeset__list
@@ -0,0 +1,64 @@
1
+ - @page_title = t('workarea.admin.tax_rates.edit.title')
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle.grid--right
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ = link_to_index_for(@rate)
9
+ %h1= @page_title
10
+ .grid__cell.grid__cell--25
11
+ = render_aux_navigation_for(@rate)
12
+
13
+ .view__container.view__container--narrow
14
+ = form_tag tax_category_rate_path(@category, @rate), method: :put, id: 'tax_category_form', data: { unsaved_changes: '' } do
15
+ .grid.grid--huge
16
+ .grid__cell.grid__cell--50
17
+ .property
18
+ = label_tag 'rate_country', t('workarea.admin.tax_rates.index.table.country'), class: 'property__name'
19
+ = text_field_tag 'rate[country]', @rate.country.try(&:alpha2), class: 'text-box text-box--i18n'
20
+
21
+ .grid__cell.grid__cell--50
22
+ .property
23
+ = label_tag 'rate_country_percentage', t('workarea.admin.tax_rates.index.table.country_percentage'), class: 'property__name'
24
+ = number_field_tag 'rate[country_percentage]', @rate.country_percentage * 100, min: 0, max: 100, step: 0.01, class: 'text-box text-box--i18n'
25
+
26
+ .grid__cell.grid__cell--50
27
+ .property
28
+ = label_tag 'rate_region', t('workarea.admin.tax_rates.index.table.region'), class: 'property__name'
29
+ = text_field_tag 'rate[region]', @rate.region, class: 'text-box text-box--i18n'
30
+
31
+ .grid__cell.grid__cell--50
32
+ .property
33
+ = label_tag 'rate_region_percentage', t('workarea.admin.tax_rates.index.table.region_percentage'), class: 'property__name'
34
+ = number_field_tag 'rate[region_percentage]', @rate.region_percentage * 100, min: 0, max: 100, step: 0.01, class: 'text-box text-box--i18n'
35
+
36
+ .grid__cell.grid__cell--50
37
+ .property
38
+ = label_tag 'rate_postal_code', t('workarea.admin.tax_rates.index.table.postal_code'), class: 'property__name'
39
+ = text_field_tag 'rate[postal_code]', @rate.postal_code, class: 'text-box text-box--i18n'
40
+
41
+ .grid__cell.grid__cell--50
42
+ .property
43
+ = label_tag 'rate_postal_code_percentage', t('workarea.admin.tax_rates.index.table.postal_code_percentage'), class: 'property__name'
44
+ = number_field_tag 'rate[postal_code_percentage]', @rate.postal_code_percentage * 100, min: 0, max: 100, step: 0.01, class: 'text-box text-box--i18n'
45
+
46
+ .grid__cell.grid__cell--33
47
+ .property
48
+ = label_tag 'rate_tier_min', t('workarea.admin.tax_rates.index.table.min_value'), class: 'property__name'
49
+ = text_field_tag 'rate[tier_min]', @rate.tier_min, class: 'text-box text-box--i18n'
50
+
51
+ .grid__cell.grid__cell--33
52
+ .property
53
+ = label_tag 'rate_tier_max', t('workarea.admin.tax_rates.index.table.max_value'), class: 'property__name'
54
+ = text_field_tag 'rate[tier_max]', @rate.tier_max, class: 'text-box text-box--i18n'
55
+
56
+ .grid__cell.grid__cell--33
57
+ .property
58
+ = label_tag 'rate_charge_on_shipping', t('workarea.admin.tax_rates.index.table.charge_on_shipping'), class: 'property__name'
59
+ = toggle_button_for 'rate[charge_on_shipping]', @rate.charge_on_shipping
60
+
61
+ .workflow-bar
62
+ .grid.grid--auto.grid--right.grid--middle
63
+ .grid__cell= button_tag t('workarea.admin.tax_rates.edit.save_button'), value: 'save_tax_category', class: 'workflow-bar__button workflow-bar__button--update'
64
+