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.
- checksums.yaml +4 -4
- data/LICENSE.txt +52 -0
- data/app/assets/images/workarea/admin/email_logo.png +0 -0
- data/app/assets/javascripts/workarea/admin/application.js.erb +11 -1
- data/app/assets/javascripts/workarea/admin/config.js.erb +96 -0
- data/app/assets/javascripts/workarea/admin/modules/active_by_segment_tooltips.js +108 -0
- data/app/assets/javascripts/workarea/admin/modules/calendars.js +1 -1
- data/app/assets/javascripts/workarea/admin/modules/categorized_autocomplete_fields.js +1 -1
- data/app/assets/javascripts/workarea/admin/modules/impersonation_notification.js +44 -0
- data/app/assets/javascripts/workarea/admin/modules/jump_to_menus.js +74 -0
- data/app/assets/javascripts/workarea/admin/modules/new_navigation_taxons.js +1 -2
- data/app/assets/javascripts/workarea/admin/modules/release_reminder.js +1 -0
- data/app/assets/javascripts/workarea/admin/modules/selects.js +33 -0
- data/app/assets/javascripts/workarea/admin/modules/style_guide_autocomplete_fields.js +42 -0
- data/app/assets/javascripts/workarea/admin/modules/timeline_report_chart.js +105 -0
- data/app/assets/javascripts/workarea/admin/modules/toggle_elements.js +27 -0
- data/app/assets/javascripts/workarea/admin/modules/tribute_areas.js +91 -0
- data/app/assets/javascripts/workarea/admin/templates/chart_legend.jst.ejs +17 -9
- data/app/assets/javascripts/workarea/admin/templates/jump_to_menu.jst.ejs +13 -0
- data/app/assets/stylesheets/workarea/admin/application.scss.erb +3 -0
- data/app/assets/stylesheets/workarea/admin/base/_forms.scss +2 -2
- data/app/assets/stylesheets/workarea/admin/components/_activity.scss +24 -16
- data/app/assets/stylesheets/workarea/admin/components/_activity_group.scss +3 -19
- data/app/assets/stylesheets/workarea/admin/components/_box.scss +21 -5
- data/app/assets/stylesheets/workarea/admin/components/_calendar.scss +102 -140
- data/app/assets/stylesheets/workarea/admin/components/_chart_legend.scss +10 -13
- data/app/assets/stylesheets/workarea/admin/components/_checkbox.scss +49 -23
- data/app/assets/stylesheets/workarea/admin/components/_content_block_list.scss +5 -3
- data/app/assets/stylesheets/workarea/admin/components/_date_marker.scss +24 -3
- data/app/assets/stylesheets/workarea/admin/components/_index_table.scss +5 -0
- data/app/assets/stylesheets/workarea/admin/components/_jump_to_menu.scss +57 -0
- data/app/assets/stylesheets/workarea/admin/components/_product_summary.scss +46 -0
- data/app/assets/stylesheets/workarea/admin/components/_toggle_button.scss +1 -4
- data/app/assets/stylesheets/workarea/admin/email/_base.scss +30 -2
- data/app/assets/stylesheets/workarea/admin/email/_components.scss +66 -5
- data/app/assets/stylesheets/workarea/admin/email/_helpers.scss +16 -5
- data/app/assets/stylesheets/workarea/admin/email/{_settings.scss → _settings.scss.erb} +4 -4
- data/app/controllers/workarea/admin/application_controller.rb +2 -4
- data/app/controllers/workarea/admin/bulk_action_sequential_product_edits_controller.rb +4 -6
- data/app/controllers/workarea/admin/bulk_variant_saving.rb +1 -2
- data/app/controllers/workarea/admin/catalog_products_controller.rb +4 -6
- data/app/controllers/workarea/admin/catalog_variants_controller.rb +2 -3
- data/app/controllers/workarea/admin/comments_controller.rb +9 -0
- data/app/controllers/workarea/admin/configurations_controller.rb +29 -0
- data/app/controllers/workarea/admin/content_assets_controller.rb +3 -1
- data/app/controllers/workarea/admin/content_blocks_controller.rb +1 -7
- data/app/controllers/workarea/admin/create_catalog_products_controller.rb +2 -8
- data/app/controllers/workarea/admin/create_release_undos_controller.rb +43 -0
- data/app/controllers/workarea/admin/create_segments_controller.rb +68 -0
- data/app/controllers/workarea/admin/dashboards_controller.rb +2 -0
- data/app/controllers/workarea/admin/data_file_imports_controller.rb +7 -2
- data/app/controllers/workarea/admin/fulfillment_skus_controller.rb +58 -0
- data/app/controllers/workarea/admin/fulfillment_tokens_controller.rb +56 -0
- data/app/controllers/workarea/admin/guest_browsings_controller.rb +2 -2
- data/app/controllers/workarea/admin/impersonations_controller.rb +3 -4
- data/app/controllers/workarea/admin/orders_controller.rb +3 -0
- data/app/controllers/workarea/admin/pricing_discount_redemptions_controller.rb +13 -0
- data/app/controllers/workarea/admin/pricing_overrides_controller.rb +1 -1
- data/app/controllers/workarea/admin/product_rules_controller.rb +1 -2
- data/app/controllers/workarea/admin/releases_controller.rb +8 -13
- data/app/controllers/workarea/admin/reports_controller.rb +18 -0
- data/app/controllers/workarea/admin/segment_overrides_controller.rb +19 -0
- data/app/controllers/workarea/admin/segment_rules_controller.rb +62 -0
- data/app/controllers/workarea/admin/segments_controller.rb +48 -0
- data/app/controllers/workarea/admin/tax_rates_controller.rb +62 -1
- data/app/controllers/workarea/admin/unsubscribes_controller.rb +40 -0
- data/app/controllers/workarea/admin/users_controller.rb +19 -0
- data/app/helpers/workarea/admin/application_helper.rb +2 -12
- data/app/helpers/workarea/admin/configurations_helper.rb +9 -0
- data/app/helpers/workarea/admin/content_helper.rb +2 -3
- data/app/helpers/workarea/admin/fulfillment_helper.rb +10 -0
- data/app/helpers/workarea/admin/icons_helper.rb +26 -0
- data/app/helpers/workarea/admin/navigation_helper.rb +1 -0
- data/app/helpers/workarea/admin/pricing_overrides_helper.rb +1 -1
- data/app/helpers/workarea/admin/products_helper.rb +13 -0
- data/app/helpers/workarea/admin/releases_helper.rb +5 -21
- data/app/helpers/workarea/admin/segments_helper.rb +68 -0
- data/app/helpers/workarea/admin/settings_helper.rb +11 -3
- data/app/mailers/workarea/admin/comment_mailer.rb +3 -3
- data/app/mailers/workarea/admin/status_report_mailer.rb +19 -6
- data/app/view_models/workarea/admin/bulk_action_product_edit_view_model.rb +5 -0
- data/app/view_models/workarea/admin/changeset_view_model.rb +15 -3
- data/app/view_models/workarea/admin/code_list_view_model.rb +1 -1
- data/app/view_models/workarea/admin/commentable_view_model.rb +4 -0
- data/app/view_models/workarea/admin/content_view_model.rb +2 -0
- data/app/view_models/workarea/admin/dashboards/marketing_view_model.rb +5 -9
- data/app/view_models/workarea/admin/dashboards/reports_view_model.rb +25 -0
- data/app/view_models/workarea/admin/discounts/buy_some_get_some_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/category_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/free_gift_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/order_total_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/product_attribute_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/product_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/quantity_fixed_price_view_model.rb +6 -0
- data/app/view_models/workarea/admin/discounts/shipping_view_model.rb +6 -0
- data/app/view_models/workarea/admin/featured_products_view_model.rb +6 -12
- data/app/view_models/workarea/admin/fulfillment_sku_view_model.rb +22 -0
- data/app/view_models/workarea/admin/fulfillment_token_view_model.rb +15 -0
- data/app/view_models/workarea/admin/fulfillment_view_model.rb +14 -0
- data/app/view_models/workarea/admin/insight_view_model.rb +2 -2
- data/app/view_models/workarea/admin/insights/product_view_model.rb +2 -2
- data/app/view_models/workarea/admin/insights/segment_view_model.rb +25 -0
- data/app/view_models/workarea/admin/order_view_model.rb +4 -0
- data/app/view_models/workarea/admin/pricing_sku_view_model.rb +0 -51
- data/app/view_models/workarea/admin/product_rules_preview_view_model.rb +2 -2
- data/app/view_models/workarea/admin/product_view_model.rb +26 -5
- data/app/view_models/workarea/admin/recommendations_view_model.rb +3 -11
- data/app/view_models/workarea/admin/release_calendar_view_model.rb +4 -9
- data/app/view_models/workarea/admin/release_event_view_model.rb +8 -41
- data/app/view_models/workarea/admin/release_view_model.rb +10 -17
- data/app/view_models/workarea/admin/releases_feed_view_model.rb +5 -13
- data/app/view_models/workarea/admin/reports/customers_view_model.rb +4 -2
- data/app/view_models/workarea/admin/reports/low_inventory_view_model.rb +2 -5
- data/app/view_models/workarea/admin/reports/sales_by_category_view_model.rb +2 -5
- data/app/view_models/workarea/admin/reports/sales_by_discount_view_model.rb +2 -5
- data/app/view_models/workarea/admin/reports/sales_by_product_view_model.rb +2 -5
- data/app/view_models/workarea/admin/reports/sales_by_tender_view_model.rb +13 -0
- data/app/view_models/workarea/admin/reports/timeline_view_model.rb +74 -0
- data/app/view_models/workarea/admin/search_customization_product_rules_view_model.rb +1 -1
- data/app/view_models/workarea/admin/segment_view_model.rb +19 -0
- data/app/view_models/workarea/admin/user_view_model.rb +6 -9
- data/app/view_models/workarea/admin/variant_view_model.rb +8 -0
- data/app/views/layouts/workarea/admin/application.html.haml +1 -1
- data/app/views/layouts/workarea/admin/email.html.haml +35 -41
- data/app/views/workarea/admin/activities/_configuration_admin_update.html.haml +10 -0
- data/app/views/workarea/admin/activities/_fulfillment_sku_create.html.haml +12 -0
- data/app/views/workarea/admin/activities/_fulfillment_sku_destroy.html.haml +10 -0
- data/app/views/workarea/admin/activities/_fulfillment_sku_update.html.haml +10 -0
- data/app/views/workarea/admin/activities/_segment_create.html.haml +12 -0
- data/app/views/workarea/admin/activities/_segment_destroy.html.haml +10 -0
- data/app/views/workarea/admin/activities/_segment_update.html.haml +10 -0
- data/app/views/workarea/admin/activities/show.html.haml +18 -11
- data/app/views/workarea/admin/bulk_action_product_edits/edit.html.haml +4 -0
- data/app/views/workarea/admin/bulk_action_product_edits/review.html.haml +11 -4
- data/app/views/workarea/admin/bulk_action_sequential_product_edits/product.html.haml +1 -1
- data/app/views/workarea/admin/catalog_categories/_cards.html.haml +3 -1
- data/app/views/workarea/admin/catalog_categories/edit.html.haml +1 -4
- data/app/views/workarea/admin/catalog_categories/index.html.haml +1 -0
- data/app/views/workarea/admin/catalog_product_images/edit.html.haml +1 -1
- data/app/views/workarea/admin/catalog_products/_cards.html.haml +2 -4
- data/app/views/workarea/admin/catalog_products/edit.html.haml +2 -1
- data/app/views/workarea/admin/catalog_products/index.html.haml +4 -2
- data/app/views/workarea/admin/catalog_products/insights.html.haml +2 -0
- data/app/views/workarea/admin/catalog_variants/edit.html.haml +6 -1
- data/app/views/workarea/admin/catalog_variants/index.html.haml +2 -0
- data/app/views/workarea/admin/catalog_variants/new.html.haml +5 -0
- data/app/views/workarea/admin/changesets/fields/_active_segment_ids.html.haml +4 -0
- data/app/views/workarea/admin/comment_mailer/notify.html.haml +27 -19
- data/app/views/workarea/admin/comments/index.html.haml +18 -12
- data/app/views/workarea/admin/configurations/_overridden.html.haml +2 -0
- data/app/views/workarea/admin/configurations/show.html.haml +49 -0
- data/app/views/workarea/admin/configurations/types/_array.html.haml +3 -0
- data/app/views/workarea/admin/configurations/types/_boolean.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_duration.html.haml +2 -0
- data/app/views/workarea/admin/configurations/types/_encrypted.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_float.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_hash.html.haml +17 -0
- data/app/views/workarea/admin/configurations/types/_integer.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_select.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_string.html.haml +1 -0
- data/app/views/workarea/admin/configurations/types/_symbol.html.haml +1 -0
- data/app/views/workarea/admin/content/_edit.html.haml +8 -1
- data/app/views/workarea/admin/content/_form.html.haml +13 -7
- data/app/views/workarea/admin/content/advanced.html.haml +18 -10
- data/app/views/workarea/admin/content_assets/_cards.html.haml +3 -0
- data/app/views/workarea/admin/content_assets/_summary.html.haml +1 -1
- data/app/views/workarea/admin/content_assets/edit.html.haml +6 -0
- data/app/views/workarea/admin/content_assets/index.html.haml +7 -2
- data/app/views/workarea/admin/content_assets/new.html.haml +10 -3
- data/app/views/workarea/admin/content_blocks/_asset.html.haml +8 -1
- data/app/views/workarea/admin/content_pages/_cards.html.haml +1 -0
- data/app/views/workarea/admin/content_pages/edit.html.haml +1 -1
- data/app/views/workarea/admin/content_pages/index.html.haml +1 -0
- data/app/views/workarea/admin/create_catalog_categories/publish.html.haml +1 -0
- data/app/views/workarea/admin/create_catalog_products/content.html.haml +1 -1
- data/app/views/workarea/admin/create_catalog_products/publish.html.haml +1 -0
- data/app/views/workarea/admin/create_content_pages/publish.html.haml +1 -0
- data/app/views/workarea/admin/create_pricing_discounts/publish.html.haml +1 -0
- data/app/views/workarea/admin/create_release_undos/new.html.haml +45 -0
- data/app/views/workarea/admin/create_release_undos/review.html.haml +51 -0
- data/app/views/workarea/admin/create_releases/plan.html.haml +4 -3
- data/app/views/workarea/admin/create_releases/setup.html.haml +8 -12
- data/app/views/workarea/admin/create_segments/rules.html.haml +55 -0
- data/app/views/workarea/admin/create_segments/setup.html.haml +42 -0
- data/app/views/workarea/admin/create_users/admin.html.haml +0 -2
- data/app/views/workarea/admin/dashboards/catalog.html.haml +1 -0
- data/app/views/workarea/admin/dashboards/people.html.haml +1 -1
- data/app/views/workarea/admin/dashboards/reports.html.haml +31 -0
- data/app/views/workarea/admin/dashboards/settings.html.haml +23 -3
- data/app/views/workarea/admin/data_file_imports/new.html.haml +4 -2
- data/app/views/workarea/admin/data_file_mailer/export.html.haml +2 -0
- data/app/views/workarea/admin/data_file_mailer/import.html.haml +2 -0
- data/app/views/workarea/admin/data_file_mailer/import_failure.html.haml +2 -0
- data/app/views/workarea/admin/facets/_applied.html.haml +1 -1
- data/app/views/workarea/admin/featured_products/_selected.html.haml +3 -2
- data/app/views/workarea/admin/featured_products/_unselected.html.haml +3 -1
- data/app/views/workarea/admin/featured_products/edit.html.haml +3 -3
- data/app/views/workarea/admin/featured_products/select.html.haml +0 -1
- data/app/views/workarea/admin/fulfillment_skus/_aux_navigation.html.haml +3 -0
- data/app/views/workarea/admin/fulfillment_skus/_cards.html.haml +57 -0
- data/app/views/workarea/admin/fulfillment_skus/_summary.html.haml +6 -0
- data/app/views/workarea/admin/fulfillment_skus/edit.html.haml +53 -0
- data/app/views/workarea/admin/fulfillment_skus/index.html.haml +75 -0
- data/app/views/workarea/admin/fulfillment_skus/new.html.haml +41 -0
- data/app/views/workarea/admin/fulfillment_skus/show.html.haml +17 -0
- data/app/views/workarea/admin/fulfillment_tokens/index.html.haml +73 -0
- data/app/views/workarea/admin/fulfillments/show.html.haml +41 -6
- data/app/views/workarea/admin/insights/_most_discounted_products.html.haml +4 -4
- data/app/views/workarea/admin/inventory_skus/show.html.haml +1 -1
- data/app/views/workarea/admin/navigation_menus/_summary.html.haml +1 -1
- data/app/views/workarea/admin/navigation_menus/edit.html.haml +1 -1
- data/app/views/workarea/admin/navigation_menus/index.html.haml +3 -1
- data/app/views/workarea/admin/navigation_redirects/index.html.haml +0 -5
- data/app/views/workarea/admin/navigation_taxons/index.html.haml +20 -4
- data/app/views/workarea/admin/orders/_cards.html.haml +23 -5
- data/app/views/workarea/admin/orders/attributes.html.haml +4 -1
- data/app/views/workarea/admin/orders/fraud.html.haml +43 -0
- data/app/views/workarea/admin/orders/index.html.haml +1 -0
- data/app/views/workarea/admin/orders/timeline.html.haml +1 -1
- data/app/views/workarea/admin/pricing_discount_code_lists/_cards.html.haml +1 -1
- data/app/views/workarea/admin/pricing_discount_code_lists/promo_codes.html.haml +1 -1
- data/app/views/workarea/admin/pricing_discount_redemptions/index.html.haml +44 -0
- data/app/views/workarea/admin/pricing_discounts/_cards.html.haml +22 -0
- data/app/views/workarea/admin/pricing_discounts/conditions/_segments.html.haml +5 -0
- data/app/views/workarea/admin/pricing_discounts/edit.html.haml +5 -15
- data/app/views/workarea/admin/pricing_discounts/index.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_buy_some_get_some.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_category.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_free_gift.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_order_total.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_product.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_product_attribute.html.haml +2 -1
- data/app/views/workarea/admin/pricing_discounts/properties/_quantity_fixed_price.html.haml +1 -0
- data/app/views/workarea/admin/pricing_discounts/properties/_shipping.html.haml +1 -0
- data/app/views/workarea/admin/pricing_skus/_cards.html.haml +7 -7
- data/app/views/workarea/admin/pricing_skus/edit.html.haml +5 -5
- data/app/views/workarea/admin/pricing_skus/index.html.haml +4 -4
- data/app/views/workarea/admin/pricing_skus/new.html.haml +6 -9
- data/app/views/workarea/admin/product_rules/_card.html.haml +2 -2
- data/app/views/workarea/admin/product_rules/_form.html.haml +1 -0
- data/app/views/workarea/admin/product_rules/index.html.haml +2 -0
- data/app/views/workarea/admin/releases/_cards.html.haml +50 -12
- data/app/views/workarea/admin/releases/_publish.html.haml +1 -1
- data/app/views/workarea/admin/releases/edit.html.haml +33 -46
- data/app/views/workarea/admin/releases/index.html.haml +81 -90
- data/app/views/workarea/admin/releases/list.html.haml +107 -0
- data/app/views/workarea/admin/releases/original.html.haml +50 -0
- data/app/views/workarea/admin/releases/show.html.haml +3 -17
- data/app/views/workarea/admin/releases/undo.html.haml +64 -0
- data/app/views/workarea/admin/reports/average_order_value.html.haml +1 -1
- data/app/views/workarea/admin/reports/customers.html.haml +4 -0
- data/app/views/workarea/admin/reports/first_time_vs_returning_sales.html.haml +1 -1
- data/app/views/workarea/admin/reports/reference.html.haml +19 -60
- data/app/views/workarea/admin/reports/sales_by_country.html.haml +6 -0
- data/app/views/workarea/admin/reports/sales_by_product.html.haml +6 -0
- data/app/views/workarea/admin/reports/sales_by_sku.html.haml +6 -0
- data/app/views/workarea/admin/reports/sales_by_tender.html.haml +30 -0
- data/app/views/workarea/admin/reports/sales_over_time.html.haml +5 -1
- data/app/views/workarea/admin/reports/timeline.html.haml +20 -0
- data/app/views/workarea/admin/search_customizations/_cards.html.haml +1 -0
- data/app/views/workarea/admin/search_customizations/edit.html.haml +1 -1
- data/app/views/workarea/admin/search_customizations/index.html.haml +1 -0
- data/app/views/workarea/admin/searches/show.html.haml +6 -5
- data/app/views/workarea/admin/segment_overrides/show.html.haml +29 -0
- data/app/views/workarea/admin/segment_rules/_form.html.haml +13 -0
- data/app/views/workarea/admin/segment_rules/fields/_browser_info.html.haml +13 -0
- data/app/views/workarea/admin/segment_rules/fields/_geolocation.html.haml +4 -0
- data/app/views/workarea/admin/segment_rules/fields/_last_order.html.haml +3 -0
- data/app/views/workarea/admin/segment_rules/fields/_logged_in.html.haml +2 -0
- data/app/views/workarea/admin/segment_rules/fields/_orders.html.haml +5 -0
- data/app/views/workarea/admin/segment_rules/fields/_revenue.html.haml +9 -0
- data/app/views/workarea/admin/segment_rules/fields/_sessions.html.haml +5 -0
- data/app/views/workarea/admin/segment_rules/fields/_tags.html.haml +4 -0
- data/app/views/workarea/admin/segment_rules/fields/_traffic_referrer.html.haml +13 -0
- data/app/views/workarea/admin/segment_rules/geolocation_options.json.jbuilder +4 -0
- data/app/views/workarea/admin/segment_rules/index.html.haml +25 -0
- data/app/views/workarea/admin/segment_rules/summaries/_browser_info.html.haml +11 -0
- data/app/views/workarea/admin/segment_rules/summaries/_geolocation.html.haml +2 -0
- data/app/views/workarea/admin/segment_rules/summaries/_last_order.html.haml +2 -0
- data/app/views/workarea/admin/segment_rules/summaries/_logged_in.html.haml +5 -0
- data/app/views/workarea/admin/segment_rules/summaries/_orders.html.haml +6 -0
- data/app/views/workarea/admin/segment_rules/summaries/_revenue.html.haml +7 -0
- data/app/views/workarea/admin/segment_rules/summaries/_sessions.html.haml +6 -0
- data/app/views/workarea/admin/segment_rules/summaries/_tags.html.haml +2 -0
- data/app/views/workarea/admin/segment_rules/summaries/_traffic_referrer.html.haml +10 -0
- data/app/views/workarea/admin/segments/_cards.html.haml +81 -0
- data/app/views/workarea/admin/segments/_publish.html.haml +10 -0
- data/app/views/workarea/admin/segments/edit.html.haml +41 -0
- data/app/views/workarea/admin/segments/index.html.haml +64 -0
- data/app/views/workarea/admin/segments/insights.html.haml +52 -0
- data/app/views/workarea/admin/segments/show.html.haml +20 -0
- data/app/views/workarea/admin/shared/_active_field.html.haml +17 -0
- data/app/views/workarea/admin/shared/_bulk_actions.html.haml +10 -8
- data/app/views/workarea/admin/shared/_primary_nav.html.haml +5 -2
- data/app/views/workarea/admin/shared/_toggle_button.html.haml +1 -1
- data/app/views/workarea/admin/shipping_services/edit.html.haml +0 -4
- data/app/views/workarea/admin/shipping_services/new.html.haml +0 -4
- data/app/views/workarea/admin/status_report_mailer/report.html.haml +83 -86
- data/app/views/workarea/admin/style_guides/components/_activity.html.haml +3 -5
- data/app/views/workarea/admin/style_guides/components/_activity_group.html.haml +9 -15
- data/app/views/workarea/admin/style_guides/components/_box.html.haml +12 -7
- data/app/views/workarea/admin/style_guides/components/_checkbox.html.haml +21 -2
- data/app/views/workarea/admin/style_guides/components/_release_changeset.html.haml +3 -5
- data/app/views/workarea/admin/tax_rates/edit.html.haml +64 -0
- data/app/views/workarea/admin/tax_rates/index.html.haml +59 -20
- data/app/views/workarea/admin/tax_rates/new.html.haml +62 -0
- data/app/views/workarea/admin/timeline/show.html.haml +34 -41
- data/app/views/workarea/admin/toolbar/show.html.haml +11 -1
- data/app/views/workarea/admin/trash/index.html.haml +1 -1
- data/app/views/workarea/admin/users/edit.html.haml +60 -57
- data/app/views/workarea/admin/users/index.html.haml +1 -3
- data/app/views/workarea/admin/users/index.json.jbuilder +8 -0
- data/app/views/workarea/admin/users/insights.html.haml +31 -23
- data/app/views/workarea/admin/users/permissions.html.haml +10 -1
- data/app/views/workarea/admin/users/show.html.haml +7 -0
- data/config/locales/en.yml +569 -124
- data/config/routes.rb +57 -5
- data/lib/workarea/mailer_previews/admin/status_report_mailer_preview.rb +3 -1
- data/public/workarea/import_samples/tax_rates.csv +3 -3
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/helpers/workarea/admin/application_helper_test.rb +0 -16
- data/test/helpers/workarea/admin/icons_helper_test.rb +9 -0
- data/test/helpers/workarea/admin/products_helper_test.rb +73 -0
- data/test/helpers/workarea/admin/releases_helper_test.rb +0 -49
- data/test/helpers/workarea/admin/settings_helper_test.rb +22 -1
- data/test/integration/workarea/admin/assets_integration_test.rb +2 -5
- data/test/integration/workarea/admin/comments_integration_test.rb +27 -7
- data/test/integration/workarea/admin/configurations_integration_test.rb +21 -0
- data/test/integration/workarea/admin/create_release_undos_integration_test.rb +29 -0
- data/test/integration/workarea/admin/create_segments_integration_test.rb +26 -0
- data/test/integration/workarea/admin/data_file_imports_integration_test.rb +34 -8
- data/test/integration/workarea/admin/fulfillment_skus_integration_test.rb +55 -0
- data/test/integration/workarea/admin/fulfillment_tokens_integration_test.rb +43 -0
- data/test/integration/workarea/admin/guest_browsings_integration_test.rb +8 -32
- data/test/integration/workarea/admin/impersonations_integration_test.rb +13 -57
- data/test/integration/workarea/admin/jump_to_integration_test.rb +0 -29
- data/test/integration/workarea/admin/pricing_overrides_integration_test.rb +11 -0
- data/test/integration/workarea/admin/products_integration_test.rb +0 -13
- data/test/integration/workarea/admin/releases_integration_test.rb +71 -87
- data/test/integration/workarea/admin/segment_overrides_integration_test.rb +28 -0
- data/test/integration/workarea/admin/segment_rules_integration_test.rb +49 -0
- data/test/integration/workarea/admin/segments_integration_test.rb +31 -0
- data/test/integration/workarea/admin/shipping_service_integration_test.rb +1 -3
- data/test/integration/workarea/admin/tax_categories_integration_test.rb +1 -1
- data/test/integration/workarea/admin/unsubscribes_integration_test.rb +32 -0
- data/test/integration/workarea/admin/users_integration_test.rb +32 -0
- data/test/javascripts/fixtures/release_reminder.html.haml +3 -3
- data/test/javascripts/new_navigation_taxons_spec.js +1 -12
- data/test/mailers/workarea/admin/comment_mailer_test.rb +35 -0
- data/test/mailers/workarea/admin/status_report_mailer_test.rb +30 -25
- data/test/system/workarea/admin/alerts_system_test.rb +2 -1
- data/test/system/workarea/admin/bulk_actions_system_test.rb +1 -1
- data/test/system/workarea/admin/comments_system_test.rb +43 -0
- data/test/system/workarea/admin/content_system_test.rb +6 -0
- data/test/system/workarea/admin/dashboard_system_test.rb +8 -9
- data/test/system/workarea/admin/data_files_system_test.rb +1 -1
- data/test/system/workarea/admin/discounts_system_test.rb +18 -0
- data/test/system/workarea/admin/featured_products_system_test.rb +3 -0
- data/test/system/workarea/admin/fulfillment_skus_system_test.rb +48 -0
- data/test/system/workarea/admin/impersonation_system_test.rb +5 -2
- data/test/system/workarea/admin/orders_system_test.rb +32 -21
- data/test/system/workarea/admin/payment_transactions_system_test.rb +34 -32
- data/test/system/workarea/admin/releases_system_test.rb +151 -37
- data/test/system/workarea/admin/reports_system_test.rb +29 -0
- data/test/system/workarea/admin/segments_system_test.rb +124 -0
- data/test/system/workarea/admin/tax_categories_system_test.rb +166 -16
- data/test/system/workarea/admin/users_system_test.rb +15 -0
- data/test/view_models/workarea/admin/changeset_view_model_test.rb +59 -9
- data/test/view_models/workarea/admin/code_list_view_model_test.rb +0 -5
- data/test/view_models/workarea/admin/content_view_model_test.rb +13 -11
- data/test/view_models/workarea/admin/insights/product_view_model_test.rb +4 -4
- data/test/view_models/workarea/admin/insights/segment_view_model_test.rb +73 -0
- data/test/view_models/workarea/admin/product_rules_preview_view_model_test.rb +37 -0
- data/test/view_models/workarea/admin/product_view_model_test.rb +13 -19
- data/test/view_models/workarea/admin/release_calendar_view_model_test.rb +16 -0
- data/test/view_models/workarea/admin/release_view_model_test.rb +13 -56
- data/test/view_models/workarea/admin/releases_feed_view_model_test.rb +8 -21
- data/test/view_models/workarea/admin/reports/timeline_view_model_test.rb +76 -0
- data/test/view_models/workarea/admin/search_analysis_view_model_test.rb +14 -16
- data/test/view_models/workarea/admin/timeline_view_model_test.rb +1 -1
- metadata +128 -17
- data/app/views/workarea/admin/featured_products/_release_preview_warning.html.haml +0 -4
- data/app/views/workarea/admin/releases/calendar.html.haml +0 -54
- data/test/dummy/tmp/screenshots/.keep +0 -0
- data/test/helpers/workarea/admin/content_helper_test.rb +0 -17
- data/test/integration/workarea/admin/index_tracking_integration_test.rb +0 -21
- data/test/javascripts/fixtures/existing_navigation_taxon.html.haml +0 -10
- data/test/view_models/workarea/admin/pricing_sku_view_model_test.rb +0 -84
@@ -13,7 +13,9 @@ module Workarea
|
|
13
13
|
|
14
14
|
def create_the_release
|
15
15
|
visit admin.releases_path
|
16
|
-
|
16
|
+
within '.calendar__day--today' do
|
17
|
+
click_link t('workarea.admin.releases.calendar.add_new_release')
|
18
|
+
end
|
17
19
|
|
18
20
|
fill_in 'release[name]', with: 'Foo Release'
|
19
21
|
click_button 'save_setup'
|
@@ -21,19 +23,17 @@ module Workarea
|
|
21
23
|
|
22
24
|
def make_page_change
|
23
25
|
visit admin.content_page_path(@content_page)
|
24
|
-
click_link '
|
26
|
+
click_link t('workarea.admin.cards.attributes.title')
|
25
27
|
fill_in 'page[name]', with: 'Foo Bar'
|
26
28
|
click_button 'save'
|
27
29
|
end
|
28
30
|
|
29
|
-
def
|
31
|
+
def test_list_search
|
30
32
|
create_release(name: 'Scheduled Release', publish_at: 1.week.from_now)
|
31
33
|
create_release(name: 'Unscheduled Release')
|
32
34
|
create_release(name: 'Published Release', published_at: 1.week.ago)
|
33
|
-
create_release(name: 'Undone Release', published_at: 2.week.ago, undone_at: 1.day.ago)
|
34
|
-
create_release(name: 'Scheduled Undo Release', published_at: 3.week.ago, undo_at: 1.day.from_now)
|
35
35
|
|
36
|
-
visit admin.
|
36
|
+
visit admin.list_releases_path
|
37
37
|
|
38
38
|
within '#release_search_form' do
|
39
39
|
fill_in 'q', with: 'release'
|
@@ -43,19 +43,15 @@ module Workarea
|
|
43
43
|
assert(page.has_content?('Scheduled Release'))
|
44
44
|
assert(page.has_content?('Unscheduled Release'))
|
45
45
|
assert(page.has_content?('Published Release'))
|
46
|
-
assert(page.has_content?('Undone Release'))
|
47
|
-
assert(page.has_content?('Scheduled Undo Release'))
|
48
46
|
|
49
47
|
within '.browsing-controls' do
|
50
48
|
click_button 'Publishing'
|
51
|
-
click_link 'Published (
|
49
|
+
click_link 'Published (1)'
|
52
50
|
end
|
53
51
|
|
54
52
|
refute(page.has_content?('Scheduled Release'))
|
55
53
|
refute(page.has_content?('Unscheduled Release'))
|
56
54
|
assert(page.has_content?('Published Release'))
|
57
|
-
assert(page.has_content?('Undone Release'))
|
58
|
-
assert(page.has_content?('Scheduled Undo Release'))
|
59
55
|
end
|
60
56
|
|
61
57
|
def test_saving_changes_for_a_release
|
@@ -67,7 +63,7 @@ module Workarea
|
|
67
63
|
assert(page.has_content?('Foo Release'))
|
68
64
|
assert(page.has_content?('Foo Bar'))
|
69
65
|
|
70
|
-
select '
|
66
|
+
select t('workarea.admin.releases.select.live_site'), from: 'release_id'
|
71
67
|
|
72
68
|
wait_for_xhr
|
73
69
|
|
@@ -86,26 +82,25 @@ module Workarea
|
|
86
82
|
make_page_change
|
87
83
|
|
88
84
|
#
|
89
|
-
# Set
|
85
|
+
# Set Publishing, through Calendar
|
90
86
|
#
|
91
87
|
#
|
92
88
|
visit admin.releases_path
|
93
|
-
|
89
|
+
find('.calendar__release', text: 'Foo Release').click
|
94
90
|
|
95
|
-
click_link '
|
96
|
-
fill_in 'release_publish_at_date', with:
|
97
|
-
fill_in 'release_undo_at_date', with: (Time.current + 1.week).strftime('%Y-%m-%d')
|
91
|
+
click_link t('workarea.admin.cards.attributes.title')
|
92
|
+
fill_in 'release_publish_at_date', with: 1.day.from_now.strftime('%Y-%m-%d')
|
98
93
|
click_button 'save_release'
|
99
94
|
assert(page.has_content?('Success'))
|
100
95
|
|
101
96
|
#
|
102
|
-
# Delete
|
97
|
+
# Delete, through Releases List
|
103
98
|
#
|
104
99
|
#
|
105
|
-
visit admin.
|
100
|
+
visit admin.list_releases_path
|
106
101
|
click_link 'Foo Release'
|
107
102
|
|
108
|
-
click_on '
|
103
|
+
click_on t('workarea.admin.actions.delete')
|
109
104
|
assert(page.has_current_path?(admin.releases_path))
|
110
105
|
assert(page.has_content?('Success'))
|
111
106
|
assert(page.has_no_content?('Foo Release'))
|
@@ -129,7 +124,7 @@ module Workarea
|
|
129
124
|
end
|
130
125
|
|
131
126
|
visit admin.release_path(Release.first)
|
132
|
-
click_link '
|
127
|
+
click_link t('workarea.admin.releases.cards.planned_changes.planned')
|
133
128
|
assert(page.has_content?('Test Page'))
|
134
129
|
assert(page.has_content?('Foo Bar'))
|
135
130
|
assert(page.has_content?('Test Product'))
|
@@ -142,14 +137,14 @@ module Workarea
|
|
142
137
|
assert(page.has_content?('Test Product - SKU1'))
|
143
138
|
|
144
139
|
visit admin.content_page_path(@content_page)
|
145
|
-
click_link '
|
140
|
+
click_link t('workarea.admin.timeline.card.title')
|
146
141
|
|
147
142
|
assert(page.has_content?('Test Page'))
|
148
143
|
assert(page.has_content?('Foo Bar'))
|
149
144
|
|
150
|
-
click_button '
|
145
|
+
click_button t('workarea.admin.timeline.edit')
|
151
146
|
assert_current_path(admin.content_page_path(@content_page))
|
152
|
-
click_link '
|
147
|
+
click_link t('workarea.admin.cards.attributes.title')
|
153
148
|
assert_equal('Foo Bar', find_field('page[name]').value)
|
154
149
|
end
|
155
150
|
|
@@ -158,27 +153,18 @@ module Workarea
|
|
158
153
|
make_page_change
|
159
154
|
|
160
155
|
visit admin.releases_path
|
161
|
-
|
156
|
+
find('.calendar__release', text: 'Foo Release').click
|
162
157
|
|
163
|
-
click_button '
|
158
|
+
click_button t('workarea.admin.releases.show.publish_now')
|
164
159
|
assert(page.has_content?('Success'))
|
165
160
|
|
166
161
|
visit admin.edit_content_page_path(@content_page)
|
167
162
|
assert_equal('Foo Bar', find_field('page[name]').value)
|
168
|
-
|
169
|
-
visit admin.releases_path
|
170
|
-
click_link 'Foo Release'
|
171
|
-
|
172
|
-
click_button 'Undo'
|
173
|
-
assert(page.has_content?('Success'))
|
174
|
-
|
175
|
-
visit admin.edit_content_page_path(@content_page)
|
176
|
-
assert_equal('Test Page', find_field('page[name]').value)
|
177
163
|
end
|
178
164
|
|
179
165
|
def test_inline_release_creation
|
180
166
|
visit admin.edit_content_page_path(@content_page)
|
181
|
-
select '
|
167
|
+
select t('workarea.admin.js.publish_with_release_menus.a_new_release'), from: 'release_id'
|
182
168
|
|
183
169
|
within '#release_form' do
|
184
170
|
fill_in 'release[name]', with: 'Foo Release'
|
@@ -206,7 +192,7 @@ module Workarea
|
|
206
192
|
|
207
193
|
fill_in 'page[name]', with: 'Bar Page'
|
208
194
|
|
209
|
-
select '
|
195
|
+
select t('workarea.admin.js.publish_with_release_menus.a_new_release'), from: 'publishing'
|
210
196
|
within '#release_form' do
|
211
197
|
fill_in 'release[name]', with: 'Bar Release'
|
212
198
|
click_button 'save_release'
|
@@ -227,6 +213,134 @@ module Workarea
|
|
227
213
|
|
228
214
|
assert(page.has_content?('Foo Page'))
|
229
215
|
end
|
216
|
+
|
217
|
+
def test_creating_a_release_undo
|
218
|
+
visit admin.edit_content_page_path(@content_page)
|
219
|
+
select t('workarea.admin.js.publish_with_release_menus.a_new_release'), from: 'release_id'
|
220
|
+
|
221
|
+
within '#release_form' do
|
222
|
+
fill_in 'release[name]', with: 'Foo Release'
|
223
|
+
click_button 'save_release'
|
224
|
+
end
|
225
|
+
|
226
|
+
wait_for_xhr
|
227
|
+
make_page_change
|
228
|
+
|
229
|
+
visit admin.list_releases_path
|
230
|
+
click_link 'Foo Release'
|
231
|
+
click_link t('workarea.admin.releases.cards.undo.title')
|
232
|
+
|
233
|
+
assert(page.has_content?(t('workarea.admin.releases.undo.undoing')))
|
234
|
+
click_link "#{t('workarea.admin.releases.undo.build_an_undo_now')} →"
|
235
|
+
|
236
|
+
fill_in 'release[name]', with: 'Foo Bar Undo'
|
237
|
+
click_button t('workarea.admin.create_release_undos.workflow.create_undo')
|
238
|
+
assert(page.has_content?('Test Page'))
|
239
|
+
assert(page.has_content?('Foo Bar'))
|
240
|
+
|
241
|
+
click_link "#{t('workarea.admin.create_release_undos.workflow.done')} →"
|
242
|
+
assert(page.has_content?('Foo Bar Undo'))
|
243
|
+
|
244
|
+
click_link t('workarea.admin.releases.cards.original.title')
|
245
|
+
assert(page.has_content?('Foo Release'))
|
246
|
+
assert(page.has_content?('Test Page'))
|
247
|
+
assert(page.has_content?('Foo Bar'))
|
248
|
+
|
249
|
+
within('.text.text--large', match: :first) { click_link 'Foo Release' }
|
250
|
+
assert(page.has_content?('Foo Release'))
|
251
|
+
assert(page.has_content?('Test Page'))
|
252
|
+
assert(page.has_content?('Foo Bar'))
|
253
|
+
|
254
|
+
click_link t('workarea.admin.releases.cards.undo.title')
|
255
|
+
assert(page.has_content?('Foo Bar Undo'))
|
256
|
+
assert(page.has_content?('Test Page'))
|
257
|
+
assert(page.has_content?('Foo Bar'))
|
258
|
+
end
|
259
|
+
|
260
|
+
def test_release_calendar
|
261
|
+
create_the_release
|
262
|
+
make_page_change
|
263
|
+
|
264
|
+
visit admin.releases_path
|
265
|
+
find('.calendar__release', text: 'Foo Release').click
|
266
|
+
|
267
|
+
click_button t('workarea.admin.releases.show.publish_now')
|
268
|
+
assert(page.has_content?('Success'))
|
269
|
+
|
270
|
+
visit admin.releases_path
|
271
|
+
|
272
|
+
assert(find('.calendar').has_content?('Foo Release'))
|
273
|
+
|
274
|
+
click_link t('workarea.admin.releases.calendar.next_week')
|
275
|
+
wait_for_xhr
|
276
|
+
assert(find('.calendar').has_content?('Foo Release'))
|
277
|
+
|
278
|
+
click_link t('workarea.admin.releases.calendar.next_week')
|
279
|
+
wait_for_xhr
|
280
|
+
refute(find('.calendar').has_content?('Foo Release'))
|
281
|
+
|
282
|
+
click_link t('workarea.admin.releases.calendar.previous_week')
|
283
|
+
wait_for_xhr
|
284
|
+
assert(find('.calendar').has_content?('Foo Release'))
|
285
|
+
|
286
|
+
click_link t('workarea.admin.releases.calendar.next_week')
|
287
|
+
wait_for_xhr
|
288
|
+
refute(find('.calendar').has_content?('Foo Release'))
|
289
|
+
|
290
|
+
click_button t('workarea.admin.releases.calendar.today')
|
291
|
+
wait_for_xhr
|
292
|
+
assert(find('.calendar').has_content?('Foo Release'))
|
293
|
+
end
|
294
|
+
|
295
|
+
def test_release_overflow
|
296
|
+
#
|
297
|
+
# Test maximum releases per day
|
298
|
+
#
|
299
|
+
#
|
300
|
+
current_time = Time.current
|
301
|
+
|
302
|
+
create_release(name: 'Release One', published_at: current_time)
|
303
|
+
create_release(name: 'Release Two', published_at: current_time)
|
304
|
+
create_release(name: 'Release Three', published_at: current_time)
|
305
|
+
create_release(name: 'Release Four', published_at: current_time)
|
306
|
+
create_release(name: 'Release Five', published_at: current_time)
|
307
|
+
|
308
|
+
visit admin.releases_path
|
309
|
+
|
310
|
+
assert(page.has_content?('Release One'))
|
311
|
+
assert(page.has_content?('Release Two'))
|
312
|
+
assert(page.has_content?('Release Three'))
|
313
|
+
assert(page.has_content?('Release Four'))
|
314
|
+
assert(page.has_content?('Release Five'))
|
315
|
+
|
316
|
+
#
|
317
|
+
# Test Overflow UI
|
318
|
+
#
|
319
|
+
#
|
320
|
+
create_release(name: 'Release Six', published_at: current_time)
|
321
|
+
|
322
|
+
visit admin.releases_path
|
323
|
+
|
324
|
+
refute(page.has_content?('Release Five'))
|
325
|
+
refute(page.has_content?('Release Six'))
|
326
|
+
|
327
|
+
assert(
|
328
|
+
page.has_content?(
|
329
|
+
t('workarea.admin.releases.calendar.plus_more_releases', count: 2)
|
330
|
+
)
|
331
|
+
)
|
332
|
+
|
333
|
+
find('.calendar__release[data-tooltip]').hover
|
334
|
+
|
335
|
+
within '.tooltipster-content' do
|
336
|
+
assert(page.has_content?('Release One'))
|
337
|
+
assert(page.has_content?('Release Two'))
|
338
|
+
assert(page.has_content?('Release Three'))
|
339
|
+
assert(page.has_content?('Release Four'))
|
340
|
+
assert(page.has_content?('Release Five'))
|
341
|
+
assert(page.has_content?('Release Six'))
|
342
|
+
end
|
343
|
+
end
|
230
344
|
end
|
231
345
|
end
|
232
346
|
end
|
@@ -295,6 +295,27 @@ module Workarea
|
|
295
295
|
assert(page.has_ordered_text?('Social', 'Search'))
|
296
296
|
end
|
297
297
|
|
298
|
+
def test_sales_by_tender
|
299
|
+
Metrics::TenderByDay.inc(key: { tender: 'credit_card' }, orders: 1, revenue: 100)
|
300
|
+
Metrics::TenderByDay.inc(key: { tender: 'store_credit' }, orders: 2, revenue: 24)
|
301
|
+
|
302
|
+
visit admin.sales_by_tender_report_path
|
303
|
+
assert(page.has_content?('Credit Card'))
|
304
|
+
assert(page.has_content?('Store Credit'))
|
305
|
+
assert(page.has_content?('1'))
|
306
|
+
assert(page.has_content?('$100.00'))
|
307
|
+
assert(page.has_content?('2'))
|
308
|
+
assert(page.has_content?('$24.00'))
|
309
|
+
|
310
|
+
click_link t('workarea.admin.fields.revenue')
|
311
|
+
assert(page.has_content?("#{t('workarea.admin.fields.revenue')} ↓"))
|
312
|
+
assert(page.has_ordered_text?('Credit Card', 'Store Credit'))
|
313
|
+
|
314
|
+
click_link t('workarea.admin.fields.revenue')
|
315
|
+
assert(page.has_content?("#{t('workarea.admin.fields.revenue')} ↑"))
|
316
|
+
assert(page.has_ordered_text?('Store Credit', 'Credit Card'))
|
317
|
+
end
|
318
|
+
|
298
319
|
def test_sales_over_time
|
299
320
|
Metrics::SalesByDay.inc(
|
300
321
|
at: Time.zone.local(2018, 11, 14),
|
@@ -450,6 +471,14 @@ module Workarea
|
|
450
471
|
assert(page.has_content?('standard_low'))
|
451
472
|
assert(page.has_content?('backordered_low'))
|
452
473
|
end
|
474
|
+
|
475
|
+
def test_reports_chart
|
476
|
+
# Since we don't explicitly depend on Chart.js, but rather depend on
|
477
|
+
# ChartKick which depends on Chart.js, we want to make sure the library
|
478
|
+
# still works as we upgrade ChartKick.
|
479
|
+
visit admin.timeline_report_path
|
480
|
+
assert_match(/class=('|")chartjs-render-monitor/, page.body)
|
481
|
+
end
|
453
482
|
end
|
454
483
|
end
|
455
484
|
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Workarea
|
4
|
+
module Admin
|
5
|
+
class SegmentsSystemTest < SystemTest
|
6
|
+
include Admin::IntegrationTest
|
7
|
+
|
8
|
+
def test_creating_a_segment
|
9
|
+
visit admin.segments_path
|
10
|
+
click_link 'add_segment'
|
11
|
+
|
12
|
+
fill_in 'segment[name]', with: 'Big Spenders'
|
13
|
+
click_button 'save_setup'
|
14
|
+
|
15
|
+
assert(page.has_content?('Success'))
|
16
|
+
select t('workarea.admin.fields.revenue'), from: 'rule_type'
|
17
|
+
click_button 'add_rule'
|
18
|
+
|
19
|
+
fill_in 'rule[minimum]', with: '10000'
|
20
|
+
click_button 'save_rule'
|
21
|
+
|
22
|
+
assert(page.has_content?('Success'))
|
23
|
+
assert(page.has_content?('10,000'))
|
24
|
+
|
25
|
+
click_link "#{t('workarea.admin.create_segments.rules.complete')} →"
|
26
|
+
assert_current_path(admin.segment_path(Segment.first))
|
27
|
+
|
28
|
+
visit admin.segments_path
|
29
|
+
assert(page.has_content?('Big Spenders'))
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_managing_segments
|
33
|
+
create_life_cycle_segments
|
34
|
+
visit admin.segments_path
|
35
|
+
|
36
|
+
click_link 'Loyal Customer'
|
37
|
+
click_link t('workarea.admin.segments.cards.attributes.header')
|
38
|
+
|
39
|
+
fill_in 'segment[tag_list]', with: 'life-cycle'
|
40
|
+
click_button 'save_segment'
|
41
|
+
|
42
|
+
assert(page.has_content?('Success'))
|
43
|
+
assert(page.has_content?('life-cycle'))
|
44
|
+
|
45
|
+
click_link t('workarea.admin.segments.cards.rules.header')
|
46
|
+
assert(page.has_content?(t('workarea.admin.segment_rules.index.no_edit')))
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_managing_active_by_segment
|
50
|
+
one = create_segment(name: 'Foo')
|
51
|
+
two = create_segment(name: 'Bar')
|
52
|
+
three = create_segment(name: 'Baz')
|
53
|
+
|
54
|
+
category = create_category(active: false, active_segment_ids: [])
|
55
|
+
visit admin.edit_catalog_category_path(category)
|
56
|
+
|
57
|
+
within '.active-field' do
|
58
|
+
refute_content(t('workarea.admin.shared.active_field.by_segment', count: 0))
|
59
|
+
find('.toggle-button__label--negative').click
|
60
|
+
assert_content(t('workarea.admin.shared.active_field.by_segment', count: 0))
|
61
|
+
end
|
62
|
+
|
63
|
+
find('[data-active-by-segment-tooltip]').click
|
64
|
+
assert_content(t('workarea.admin.shared.active_field.active_by_segment'))
|
65
|
+
|
66
|
+
find('.select2-selection--multiple').click
|
67
|
+
find('.select2-results__option', text: 'Bar').click
|
68
|
+
|
69
|
+
execute_script("$('body').trigger('click')")
|
70
|
+
sleep(0.4) # Tooltipster's config of delay + animationDuration is 400ms
|
71
|
+
|
72
|
+
assert_content(t('workarea.admin.shared.active_field.by_segment', count: 1, name: 'Bar'))
|
73
|
+
click_button 'save_category'
|
74
|
+
|
75
|
+
assert_content('Success')
|
76
|
+
click_link 'Attributes'
|
77
|
+
assert_content(t('workarea.admin.shared.active_field.by_segment', count: 1, name: 'Bar'))
|
78
|
+
find('[data-active-by-segment-tooltip]').click
|
79
|
+
|
80
|
+
assert_selector('.select2-selection__choice', text: 'Bar')
|
81
|
+
|
82
|
+
find('.select2-selection--multiple').click
|
83
|
+
find('.select2-results__option', text: 'Baz').click
|
84
|
+
|
85
|
+
execute_script("$('body').trigger('click')")
|
86
|
+
sleep(0.4) # Tooltipster's config of delay + animationDuration is 400ms
|
87
|
+
|
88
|
+
assert_content(t('workarea.admin.shared.active_field.by_segment', count: 2, name: 'Bar', more_count: 1))
|
89
|
+
click_button 'save_category'
|
90
|
+
|
91
|
+
assert_content('Success')
|
92
|
+
click_link 'Attributes'
|
93
|
+
assert_content(t('workarea.admin.shared.active_field.by_segment', count: 1, name: 'Bar', more_count: 1))
|
94
|
+
find('[data-active-by-segment-tooltip]').click
|
95
|
+
|
96
|
+
assert_selector('.select2-selection__choice', text: 'Bar')
|
97
|
+
assert_selector('.select2-selection__choice', text: 'Baz')
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_insights
|
101
|
+
segment = create_segment
|
102
|
+
|
103
|
+
Metrics::SegmentByDay.inc(
|
104
|
+
key: { segment_id: segment.id },
|
105
|
+
at: Time.zone.local(2018, 10, 27),
|
106
|
+
orders: 100,
|
107
|
+
revenue: 555.to_m
|
108
|
+
)
|
109
|
+
|
110
|
+
travel_to Time.zone.local(2018, 10, 30)
|
111
|
+
|
112
|
+
visit admin.segment_path(segment)
|
113
|
+
assert(page.has_content?('100'))
|
114
|
+
assert(page.has_content?('555'))
|
115
|
+
assert(page.has_content?('5.55'))
|
116
|
+
|
117
|
+
click_link t('workarea.admin.segments.cards.insights.header')
|
118
|
+
assert(page.has_content?('100'))
|
119
|
+
assert(page.has_content?('555'))
|
120
|
+
assert(page.has_content?('5.55'))
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -28,19 +28,11 @@ module Workarea
|
|
28
28
|
assert(page.has_no_content?('Edited Tax Category'))
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
32
|
-
create_tax_category(
|
31
|
+
def test_managing_tax_rates
|
32
|
+
category = create_tax_category(
|
33
33
|
name: 'Test Category',
|
34
34
|
code: '002',
|
35
|
-
rates: [
|
36
|
-
{
|
37
|
-
percentage: 0.06,
|
38
|
-
tier_min: 100.to_m,
|
39
|
-
region: 'PA',
|
40
|
-
country: 'US',
|
41
|
-
postal_code: '19106'
|
42
|
-
}
|
43
|
-
]
|
35
|
+
rates: []
|
44
36
|
)
|
45
37
|
|
46
38
|
visit admin.tax_categories_path
|
@@ -50,11 +42,169 @@ module Workarea
|
|
50
42
|
click_link t('workarea.admin.tax_categories.cards.rates.title')
|
51
43
|
end
|
52
44
|
|
53
|
-
assert(page.has_content?('
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
45
|
+
assert(page.has_content?(t('workarea.admin.tax_rates.index.empty_message')))
|
46
|
+
|
47
|
+
#
|
48
|
+
# New rate
|
49
|
+
#
|
50
|
+
click_link t('workarea.admin.tax_rates.index.new_button')
|
51
|
+
|
52
|
+
fill_in 'rate[country]', with: 'US'
|
53
|
+
fill_in 'rate[region]', with: 'PA'
|
54
|
+
fill_in 'rate[postal_code]', with: '19106'
|
55
|
+
|
56
|
+
fill_in 'rate[country_percentage]', with: 2
|
57
|
+
fill_in 'rate[region_percentage]', with: 4
|
58
|
+
fill_in 'rate[postal_code_percentage]', with: 6
|
59
|
+
|
60
|
+
fill_in 'rate[tier_min]', with: 5
|
61
|
+
fill_in 'rate[tier_max]', with: 500
|
62
|
+
|
63
|
+
find('.toggle-button__label--positive').click
|
64
|
+
|
65
|
+
click_button t('workarea.admin.tax_rates.new.create_button')
|
66
|
+
|
67
|
+
assert(page.has_content?('Success'))
|
68
|
+
|
69
|
+
#
|
70
|
+
# Rates Index
|
71
|
+
#
|
72
|
+
within '.index-table__row' do
|
73
|
+
assert(page.has_content?('US'))
|
74
|
+
assert(page.has_content?('PA'))
|
75
|
+
assert(page.has_content?('19106'))
|
76
|
+
|
77
|
+
assert(page.has_content?('6.0%'))
|
78
|
+
assert(page.has_content?('4.0%'))
|
79
|
+
assert(page.has_content?('2.0%'))
|
80
|
+
|
81
|
+
assert(page.has_content?("#{Money.default_currency.symbol}5.00"))
|
82
|
+
assert(page.has_content?("#{Money.default_currency.symbol}500.00"))
|
83
|
+
|
84
|
+
assert(page.has_content?(t('workarea.admin.false')))
|
85
|
+
end
|
86
|
+
|
87
|
+
#
|
88
|
+
# Edit
|
89
|
+
#
|
90
|
+
within '.index-table__row' do
|
91
|
+
click_link t('workarea.admin.actions.edit')
|
92
|
+
end
|
93
|
+
|
94
|
+
fill_in 'rate[country_percentage]', with: 0
|
95
|
+
fill_in 'rate[region_percentage]', with: 10
|
96
|
+
fill_in 'rate[postal_code_percentage]', with: 20.5
|
97
|
+
|
98
|
+
click_button t('workarea.admin.tax_rates.edit.save_button')
|
99
|
+
|
100
|
+
assert(page.has_content?('Success'))
|
101
|
+
|
102
|
+
within '.index-table__row' do
|
103
|
+
assert(page.has_content?('10.0%'))
|
104
|
+
assert(page.has_content?('20.5%'))
|
105
|
+
end
|
106
|
+
|
107
|
+
#
|
108
|
+
# Delete
|
109
|
+
#
|
110
|
+
within '.index-table__row' do
|
111
|
+
click_link t('workarea.admin.actions.delete')
|
112
|
+
end
|
113
|
+
|
114
|
+
assert(page.has_content?('Success'))
|
115
|
+
assert_current_path(admin.tax_category_rates_path(category))
|
116
|
+
assert(page.has_content?(t('workarea.admin.tax_rates.index.empty_message')))
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_sorting_rates
|
120
|
+
category = create_tax_category(
|
121
|
+
name: 'Test Category',
|
122
|
+
code: '003',
|
123
|
+
rates: [
|
124
|
+
{ country: 'CA', region: 'Qux', postal_code: '10000' },
|
125
|
+
{ country: 'US', region: 'Corge', postal_code: '20000' },
|
126
|
+
{ country: 'AL', region: 'Grault', postal_code: '30000' }
|
127
|
+
]
|
128
|
+
)
|
129
|
+
|
130
|
+
visit admin.tax_category_rates_path(category)
|
131
|
+
|
132
|
+
select(t('workarea.sorts.country', from: 'sort'))
|
133
|
+
assert(page.has_ordered_text?('AL', 'CA', 'US'))
|
134
|
+
|
135
|
+
select(t('workarea.sorts.region', from: 'sort'))
|
136
|
+
assert(page.has_ordered_text?('Corge', 'Grault', 'Qux'))
|
137
|
+
|
138
|
+
select(t('workarea.sorts.postal_code', from: 'sort'))
|
139
|
+
assert(page.has_ordered_text?('10000', '20000', '30000'))
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_searching_rates
|
143
|
+
category = create_tax_category(
|
144
|
+
name: 'Test Category',
|
145
|
+
code: '004',
|
146
|
+
rates: [
|
147
|
+
{ country: 'US', region: 'PA', postal_code: '19000' },
|
148
|
+
{ country: 'US', region: 'NE Philly', postal_code: '19123' },
|
149
|
+
{ country: 'RU', region: 'Siberia', postal_code: '00019' }
|
150
|
+
]
|
151
|
+
)
|
152
|
+
|
153
|
+
visit admin.tax_category_rates_path(category)
|
154
|
+
|
155
|
+
within '.index-table' do
|
156
|
+
assert_match(/US.*PA.*19000/, page.text)
|
157
|
+
assert_match(/US.*NE Philly.*19123/, page.text)
|
158
|
+
assert_match(/RU.*Siberia.*00019/, page.text)
|
159
|
+
end
|
160
|
+
|
161
|
+
within '#rates_search_form' do
|
162
|
+
select(t('workarea.sorts.postal_code'), from: 'sort')
|
163
|
+
end
|
164
|
+
|
165
|
+
within '.index-table' do
|
166
|
+
assert(page.has_ordered_text?('Siberia', 'PA', 'NE Philly'))
|
167
|
+
end
|
168
|
+
|
169
|
+
within '#rates_search_form' do
|
170
|
+
fill_in 'search_rates', with: '19'
|
171
|
+
click_button 'search_rates'
|
172
|
+
end
|
173
|
+
|
174
|
+
within '.index-table' do
|
175
|
+
assert_match(/US.*PA.*19000/, page.text)
|
176
|
+
assert_match(/US.*NE Philly.*19123/, page.text)
|
177
|
+
refute_match(/RU.*Siberia.*00019/, page.text)
|
178
|
+
end
|
179
|
+
|
180
|
+
within '#rates_search_form' do
|
181
|
+
fill_in 'search_rates', with: 'NE P'
|
182
|
+
click_button 'search_rates'
|
183
|
+
end
|
184
|
+
|
185
|
+
within '.index-table' do
|
186
|
+
refute_match(/US.*PA.*19000/, page.text)
|
187
|
+
assert_match(/US.*NE Philly.*19123/, page.text)
|
188
|
+
refute_match(/RU.*Siberia.*00019/, page.text)
|
189
|
+
end
|
190
|
+
|
191
|
+
within '#rates_search_form' do
|
192
|
+
fill_in 'search_rates', with: 'ru'
|
193
|
+
click_button 'search_rates'
|
194
|
+
end
|
195
|
+
|
196
|
+
within '.index-table' do
|
197
|
+
refute_match(/US.*PA.*19000/, page.text)
|
198
|
+
refute_match(/US.*NE Philly.*19123/, page.text)
|
199
|
+
assert_match(/RU.*Siberia.*00019/, page.text)
|
200
|
+
end
|
201
|
+
|
202
|
+
within '#rates_search_form' do
|
203
|
+
fill_in 'search_rates', with: 'Foo'
|
204
|
+
click_button 'search_rates'
|
205
|
+
end
|
206
|
+
|
207
|
+
assert(page.has_content?(t('workarea.admin.tax_rates.index.empty_message')))
|
58
208
|
end
|
59
209
|
end
|
60
210
|
end
|
@@ -136,6 +136,21 @@ module Workarea
|
|
136
136
|
assert(page.has_content?('11'))
|
137
137
|
assert(page.has_content?('55'))
|
138
138
|
end
|
139
|
+
|
140
|
+
def test_user_locked
|
141
|
+
@user.update(
|
142
|
+
failed_login_count: Workarea.config.allowed_login_attempts + 1,
|
143
|
+
last_login_attempt_at: Time.current
|
144
|
+
)
|
145
|
+
|
146
|
+
visit admin.user_path(@user)
|
147
|
+
assert(page.has_content?(t('workarea.admin.users.show.locked')))
|
148
|
+
|
149
|
+
click_link t('workarea.admin.users.show.unlock')
|
150
|
+
|
151
|
+
assert(page.has_content?('Success'))
|
152
|
+
assert(page.has_no_content?(t('workarea.admin.users.show.locked')))
|
153
|
+
end
|
139
154
|
end
|
140
155
|
end
|
141
156
|
end
|