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
@@ -64,21 +64,19 @@ module Workarea
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def set_details
|
67
|
-
|
68
|
-
original: @product.details,
|
67
|
+
HashUpdate.new(
|
69
68
|
adds: params[:new_details],
|
70
69
|
updates: params[:details],
|
71
70
|
removes: params[:details_to_remove]
|
72
|
-
).
|
71
|
+
).apply(@product.details)
|
73
72
|
end
|
74
73
|
|
75
74
|
def set_filters
|
76
|
-
|
77
|
-
original: @product.filters,
|
75
|
+
HashUpdate.new(
|
78
76
|
adds: params[:new_filters],
|
79
77
|
updates: params[:filters],
|
80
78
|
removes: params[:filters_to_remove]
|
81
|
-
).
|
79
|
+
).apply(@product.filters)
|
82
80
|
end
|
83
81
|
end
|
84
82
|
end
|
@@ -83,12 +83,11 @@ module Workarea
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def set_details
|
86
|
-
|
87
|
-
original: @variant.details,
|
86
|
+
HashUpdate.new(
|
88
87
|
adds: params[:new_details],
|
89
88
|
updates: params[:details],
|
90
89
|
removes: params[:details_to_remove]
|
91
|
-
).
|
90
|
+
).apply(@variant.details)
|
92
91
|
end
|
93
92
|
end
|
94
93
|
end
|
@@ -48,6 +48,15 @@ module Workarea
|
|
48
48
|
redirect_to commentable_comments_path(@commentable.to_global_id)
|
49
49
|
end
|
50
50
|
|
51
|
+
def subscribe
|
52
|
+
@commentable.add_subscription(current_user.id)
|
53
|
+
flash[:success] = t(
|
54
|
+
'workarea.admin.comments.flash_messages.comment_subscribed',
|
55
|
+
commentable: @commentable.name
|
56
|
+
)
|
57
|
+
redirect_to commentable_comments_path(@commentable.to_global_id)
|
58
|
+
end
|
59
|
+
|
51
60
|
def unsubscribe
|
52
61
|
@commentable.remove_subscription(current_user.id)
|
53
62
|
flash[:success] = t(
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class ConfigurationsController < Admin::ApplicationController
|
4
|
+
before_action :find_configuration
|
5
|
+
|
6
|
+
def show; end
|
7
|
+
|
8
|
+
def update
|
9
|
+
if @configuration.update(configuration_params)
|
10
|
+
flash[:success] = t('workarea.admin.configurations.flash_messages.configuration_updated')
|
11
|
+
redirect_to configuration_path
|
12
|
+
else
|
13
|
+
flash[:error] = t('workarea.admin.configurations.flash_messages.configuration_error')
|
14
|
+
render :show
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def find_configuration
|
21
|
+
@configuration = Configuration::Admin.instance
|
22
|
+
end
|
23
|
+
|
24
|
+
def configuration_params
|
25
|
+
Configuration::Params.new(params[:configuration].to_unsafe_h).to_h
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -7,7 +7,9 @@ module Workarea
|
|
7
7
|
after_action :track_index_filters, only: :index
|
8
8
|
|
9
9
|
def index
|
10
|
-
|
10
|
+
if Configuration::S3.configured? && !request.xhr?
|
11
|
+
DirectUpload.ensure_cors!(request.url)
|
12
|
+
end
|
11
13
|
|
12
14
|
search = Search::AdminAssets.new(params)
|
13
15
|
@search = Admin::SearchViewModel.new(search, view_model_options)
|
@@ -53,13 +53,7 @@ module Workarea
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def destroy
|
56
|
-
|
57
|
-
@block.active = false
|
58
|
-
@block.save
|
59
|
-
else
|
60
|
-
@block.destroy
|
61
|
-
end
|
62
|
-
|
56
|
+
@block.destroy
|
63
57
|
flash[:success] = t('workarea.admin.content_blocks.flash_messages.removed')
|
64
58
|
redirect_to return_to || edit_content_path(@content)
|
65
59
|
end
|
@@ -74,14 +74,8 @@ module Workarea
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def save_details
|
77
|
-
@product.filters
|
78
|
-
|
79
|
-
.result
|
80
|
-
|
81
|
-
@product.details = HashUpdate
|
82
|
-
.new(original: @product.details, updates: params[:details])
|
83
|
-
.result
|
84
|
-
|
77
|
+
HashUpdate.new(updates: params[:filters]).apply(@product.filters)
|
78
|
+
HashUpdate.new(updates: params[:details]).apply(@product.details)
|
85
79
|
@product.save!
|
86
80
|
|
87
81
|
flash[:success] = t('workarea.admin.create_catalog_products.flash_messages.saved')
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class CreateReleaseUndosController < Admin::ApplicationController
|
4
|
+
required_permissions :releases
|
5
|
+
|
6
|
+
before_action :find_release
|
7
|
+
before_action :find_undo_release
|
8
|
+
|
9
|
+
def new
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@undo_release.attributes = params[:release]
|
14
|
+
|
15
|
+
if @undo_release.save
|
16
|
+
@release.changesets.each do |changeset|
|
17
|
+
changeset.build_undo(release: @undo_release.model).save!
|
18
|
+
end
|
19
|
+
|
20
|
+
flash[:success] = t('workarea.admin.create_release_undos.flash_messages.saved')
|
21
|
+
redirect_to review_release_undo_path(@release)
|
22
|
+
else
|
23
|
+
render :new, status: :unprocessable_entity
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def review
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def find_release
|
33
|
+
model = Release.find(params[:release_id])
|
34
|
+
@release = ReleaseViewModel.new(model, view_model_options)
|
35
|
+
end
|
36
|
+
|
37
|
+
def find_undo_release
|
38
|
+
model = @release.model.undo || @release.build_undo(params[:release])
|
39
|
+
@undo_release = ReleaseViewModel.new(model, view_model_options)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class CreateSegmentsController < Admin::ApplicationController
|
4
|
+
required_permissions :people
|
5
|
+
|
6
|
+
before_action :find_segment
|
7
|
+
before_action :find_rules, only: [:rules, :new_rule, :edit_rule]
|
8
|
+
before_action :find_rule, only: [:new_rule, :edit_rule]
|
9
|
+
|
10
|
+
def index
|
11
|
+
render :setup
|
12
|
+
end
|
13
|
+
|
14
|
+
def create
|
15
|
+
@segment.attributes = params[:segment]
|
16
|
+
|
17
|
+
if @segment.save
|
18
|
+
flash[:success] = t('workarea.admin.create_segments.flash_messages.saved')
|
19
|
+
redirect_to rules_create_segment_path(@segment)
|
20
|
+
else
|
21
|
+
render :setup, status: :unprocessable_entity
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
end
|
27
|
+
|
28
|
+
def rules
|
29
|
+
end
|
30
|
+
|
31
|
+
def new_rule
|
32
|
+
render :rules
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit_rule
|
36
|
+
render :rules
|
37
|
+
end
|
38
|
+
|
39
|
+
def review
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def find_segment
|
45
|
+
model = if params[:id].present?
|
46
|
+
Segment.find(params[:id])
|
47
|
+
else
|
48
|
+
Segment.new(params[:segment])
|
49
|
+
end
|
50
|
+
|
51
|
+
@segment = SegmentViewModel.wrap(model, view_model_options)
|
52
|
+
end
|
53
|
+
|
54
|
+
def find_rules
|
55
|
+
@rules = @segment.rules.select(&:persisted?)
|
56
|
+
end
|
57
|
+
|
58
|
+
def find_rule
|
59
|
+
@rule = if params[:rule_id].present?
|
60
|
+
@segment.rules.where(id: params[:rule_id]).first
|
61
|
+
else
|
62
|
+
klass = "Workarea::Segment::Rules::#{params[:rule_type].to_s.camelize}"
|
63
|
+
@segment.model.rules.build(params[:rule], klass.constantize)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Workarea
|
2
2
|
module Admin
|
3
3
|
class DataFileImportsController < Admin::ApplicationController
|
4
|
+
before_action :check_publishing_authorization
|
4
5
|
before_action :set_import
|
5
6
|
|
6
7
|
def new
|
@@ -8,7 +9,7 @@ module Workarea
|
|
8
9
|
|
9
10
|
def sample
|
10
11
|
filename = "#{@import.name.downcase.underscore}.#{@import.file_type}"
|
11
|
-
send_data @import.sample_file_content, filename: filename, type: @import.
|
12
|
+
send_data @import.sample_file_content, filename: filename, type: @import.file_type
|
12
13
|
end
|
13
14
|
|
14
15
|
def create
|
@@ -28,7 +29,11 @@ module Workarea
|
|
28
29
|
|
29
30
|
def import_params
|
30
31
|
base = params.select { |k, v| k.in?(DataFile::Import.fields.keys) }
|
31
|
-
base.merge(params[:import] || {})
|
32
|
+
base.merge(params[:import] || {})
|
33
|
+
.merge(
|
34
|
+
created_by_id: current_user.id,
|
35
|
+
release_id: params[:publishing]
|
36
|
+
)
|
32
37
|
end
|
33
38
|
end
|
34
39
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class FulfillmentSkusController < Admin::ApplicationController
|
4
|
+
required_permissions :catalog
|
5
|
+
|
6
|
+
before_action :find_sku, except: :index
|
7
|
+
after_action :track_index_filters, only: :index
|
8
|
+
|
9
|
+
def index
|
10
|
+
search = Search::AdminFulfillmentSkus.new(view_model_options)
|
11
|
+
@search = SearchViewModel.new(search, view_model_options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def show; end
|
15
|
+
|
16
|
+
def create
|
17
|
+
if @sku.save
|
18
|
+
flash[:success] =
|
19
|
+
t('workarea.admin.fulfillment_skus.flash_messages.created', id: @sku.id)
|
20
|
+
redirect_to fulfillment_sku_path(@sku)
|
21
|
+
else
|
22
|
+
render :new, status: :unprocessable_entity
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def edit; end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @sku.update(params[:sku])
|
30
|
+
flash[:success] = t('workarea.admin.fulfillment_skus.flash_messages.saved', id: @sku.id)
|
31
|
+
redirect_to fulfillment_sku_path(@sku)
|
32
|
+
else
|
33
|
+
render :edit, status: :unprocessable_entity
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def destroy
|
38
|
+
@sku.destroy
|
39
|
+
|
40
|
+
flash[:success] = t('workarea.admin.fulfillment_skus.flash_messages.removed', id: @sku.id)
|
41
|
+
redirect_to fulfillment_skus_path
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def find_sku
|
47
|
+
model =
|
48
|
+
if params[:id].present?
|
49
|
+
Fulfillment::Sku.find_or_create_by(id: params[:id])
|
50
|
+
else
|
51
|
+
Fulfillment::Sku.new(params[:sku])
|
52
|
+
end
|
53
|
+
|
54
|
+
@sku = FulfillmentSkuViewModel.new(model)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class FulfillmentTokensController < Admin::ApplicationController
|
4
|
+
required_permissions :catalog
|
5
|
+
|
6
|
+
before_action :find_sku
|
7
|
+
before_action :find_token, only: :update
|
8
|
+
|
9
|
+
def index
|
10
|
+
@tokens =
|
11
|
+
Fulfillment::Token
|
12
|
+
.for_sku(@sku.id)
|
13
|
+
.page(params[:page])
|
14
|
+
.per(Workarea.config.per_page)
|
15
|
+
.order_by(find_sort(Fulfillment::Token))
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
@token = Fulfillment::Token.new(sku: @sku.id)
|
20
|
+
|
21
|
+
if @token.save
|
22
|
+
flash[:success] = t('workarea.admin.fulfillment_tokens.flash_messages.created')
|
23
|
+
else
|
24
|
+
flash[:error] = t('workarea.admin.fulfillment_tokens.flash_messages.error')
|
25
|
+
end
|
26
|
+
|
27
|
+
redirect_to fulfillment_sku_tokens_path(@sku, new_token: @token.id)
|
28
|
+
end
|
29
|
+
|
30
|
+
def update
|
31
|
+
result = @token.update(params[:token])
|
32
|
+
|
33
|
+
if result && @token.enabled?
|
34
|
+
flash[:success] = t('workarea.admin.fulfillment_tokens.flash_messages.enabled')
|
35
|
+
elsif result
|
36
|
+
flash[:success] = t('workarea.admin.fulfillment_tokens.flash_messages.disabled')
|
37
|
+
else
|
38
|
+
flash[:error] = t('workarea.admin.fulfillment_tokens.flash_messages.update_failed')
|
39
|
+
end
|
40
|
+
|
41
|
+
redirect_back_or fulfillment_sku_tokens_path(@sku)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def find_sku
|
47
|
+
model = Fulfillment::Sku.find(params['fulfillment_sku_id'])
|
48
|
+
@sku = Admin::FulfillmentSkuViewModel.wrap(model, view_model_options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def find_token
|
52
|
+
@token = Fulfillment::Token.find(params[:id])
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -6,7 +6,7 @@ module Workarea
|
|
6
6
|
|
7
7
|
def create
|
8
8
|
admin_browse_as_guest
|
9
|
-
|
9
|
+
clear_current_order
|
10
10
|
|
11
11
|
flash[:success] =
|
12
12
|
t('workarea.admin.guest_browsing.flash_messages.started')
|
@@ -15,7 +15,7 @@ module Workarea
|
|
15
15
|
|
16
16
|
def destroy
|
17
17
|
stop_admin_guest_browsing
|
18
|
-
|
18
|
+
clear_current_order
|
19
19
|
|
20
20
|
flash[:success] = t('workarea.admin.guest_browsing.flash_messages.stopped')
|
21
21
|
redirect_to users_path
|
@@ -22,13 +22,12 @@ module Workarea
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def destroy
|
25
|
-
previous_user_id =
|
25
|
+
previous_user_id = session[:user_id]
|
26
26
|
stop_impersonation
|
27
|
-
|
27
|
+
clear_current_order
|
28
28
|
|
29
29
|
flash[:success] = t('workarea.admin.users.flash_messages.stopped')
|
30
|
-
|
31
|
-
redirect_back_or(referrer.presence || user_path(previous_user_id))
|
30
|
+
redirect_to user_path(previous_user_id)
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class PricingDiscountRedemptionsController < Admin::ApplicationController
|
4
|
+
required_permissions :marketing
|
5
|
+
|
6
|
+
def index
|
7
|
+
model = Pricing::Discount.find(params[:pricing_discount_id])
|
8
|
+
@discount = DiscountViewModel.wrap(model, view_model_options)
|
9
|
+
@redemptions = model.redemptions.recent.page(params[:page])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -54,7 +54,6 @@ module Workarea
|
|
54
54
|
|
55
55
|
def destroy
|
56
56
|
@product_rule.destroy
|
57
|
-
|
58
57
|
flash[:success] = t('workarea.admin.product_rules.flash_messages.destroyed')
|
59
58
|
redirect_back_or product_list_product_rules_path(@product_list.to_global_id)
|
60
59
|
end
|
@@ -68,7 +67,7 @@ module Workarea
|
|
68
67
|
end
|
69
68
|
|
70
69
|
def find_product_rules
|
71
|
-
@product_rules = @product_list.product_rules.select(&:persisted?)
|
70
|
+
@product_rules = @product_list.product_rules.usable.select(&:persisted?)
|
72
71
|
end
|
73
72
|
|
74
73
|
def find_product_rule
|
@@ -6,14 +6,12 @@ module Workarea
|
|
6
6
|
required_permissions :releases
|
7
7
|
|
8
8
|
before_action :find_release, except: :changes
|
9
|
-
before_action :find_calendar, only: [:
|
9
|
+
before_action :find_calendar, only: [:index, :update]
|
10
10
|
before_action :authenticate_user_by_token, only: :calendar_feed
|
11
11
|
skip_before_action :require_login, :require_admin, only: :calendar_feed
|
12
|
-
around_action :set_time_zone, only: :
|
12
|
+
around_action :set_time_zone, only: :index
|
13
13
|
|
14
14
|
def index
|
15
|
-
search = Search::AdminReleases.new(params)
|
16
|
-
@search = Admin::ReleaseSearchViewModel.new(search, view_model_options)
|
17
15
|
end
|
18
16
|
|
19
17
|
def show
|
@@ -28,7 +26,9 @@ module Workarea
|
|
28
26
|
render json: { release: @release.model }
|
29
27
|
end
|
30
28
|
|
31
|
-
def
|
29
|
+
def list
|
30
|
+
search = Search::AdminReleases.new(params)
|
31
|
+
@search = Admin::ReleaseSearchViewModel.new(search, view_model_options)
|
32
32
|
end
|
33
33
|
|
34
34
|
def new
|
@@ -44,6 +44,9 @@ module Workarea
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
def original
|
48
|
+
end
|
49
|
+
|
47
50
|
def publish
|
48
51
|
self.current_release = nil
|
49
52
|
PublishRelease.perform_async(@release.id)
|
@@ -52,14 +55,6 @@ module Workarea
|
|
52
55
|
redirect_to return_to || release_path(@release)
|
53
56
|
end
|
54
57
|
|
55
|
-
def undo
|
56
|
-
self.current_release = nil
|
57
|
-
@release.undo!
|
58
|
-
|
59
|
-
flash[:success] = t('workarea.admin.releases.flash_messages.reverted')
|
60
|
-
redirect_to return_to || release_path(@release)
|
61
|
-
end
|
62
|
-
|
63
58
|
def destroy
|
64
59
|
self.current_release = nil
|
65
60
|
@release.destroy
|
@@ -29,6 +29,10 @@ module Workarea
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def reference
|
32
|
+
@terms =
|
33
|
+
t('workarea.admin.reports.reference.terms')
|
34
|
+
.sort_by(&:first)
|
35
|
+
.map { |_key, term| OpenStruct.new(term) }
|
32
36
|
end
|
33
37
|
|
34
38
|
def sales_by_category
|
@@ -73,6 +77,13 @@ module Workarea
|
|
73
77
|
)
|
74
78
|
end
|
75
79
|
|
80
|
+
def sales_by_tender
|
81
|
+
@report = Reports::SalesByTenderViewModel.wrap(
|
82
|
+
Workarea::Reports::SalesByTender.new(params),
|
83
|
+
view_model_options
|
84
|
+
)
|
85
|
+
end
|
86
|
+
|
76
87
|
def sales_over_time
|
77
88
|
@report = Reports::SalesOverTimeViewModel.wrap(
|
78
89
|
Workarea::Reports::SalesOverTime.new(params),
|
@@ -87,6 +98,13 @@ module Workarea
|
|
87
98
|
)
|
88
99
|
end
|
89
100
|
|
101
|
+
def timeline
|
102
|
+
@report = Reports::TimelineViewModel.wrap(
|
103
|
+
Workarea::Reports::SalesOverTime.new(params.merge(group_by: 'day')),
|
104
|
+
view_model_options
|
105
|
+
)
|
106
|
+
end
|
107
|
+
|
90
108
|
def low_inventory
|
91
109
|
@report = Reports::LowInventoryViewModel.wrap(
|
92
110
|
Workarea::Reports::LowInventory.new(params),
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class SegmentOverridesController < Admin::ApplicationController
|
4
|
+
def show
|
5
|
+
end
|
6
|
+
|
7
|
+
def create
|
8
|
+
segment_ids = params[:segment_ids].to_h.select { |_, v| v =~ /true/ }.keys
|
9
|
+
self.override_segments = Segment.in(id: segment_ids)
|
10
|
+
|
11
|
+
if params[:return_to].present?
|
12
|
+
redirect_to URI.parse(params[:return_to]).request_uri
|
13
|
+
else
|
14
|
+
redirect_back fallback_location: storefront.root_path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Admin
|
3
|
+
class SegmentRulesController < Admin::ApplicationController
|
4
|
+
before_action :find_segment, except: :geolocation_options
|
5
|
+
before_action :find_rules, except: :geolocation_options
|
6
|
+
before_action :find_rule, except: [:index, :geolocation_options]
|
7
|
+
|
8
|
+
def index
|
9
|
+
end
|
10
|
+
|
11
|
+
def geolocation_options
|
12
|
+
@results = Segment::Rules::GeolocationOption.search(params[:q])
|
13
|
+
end
|
14
|
+
|
15
|
+
def create
|
16
|
+
if @rule.save
|
17
|
+
flash[:success] = t('workarea.admin.segment_rules.flash_messages.saved')
|
18
|
+
redirect_to return_to || segment_rules_path(@segment)
|
19
|
+
else
|
20
|
+
flash[:error] = t('workarea.admin.segment_rules.flash_messages.error')
|
21
|
+
render :index, status: :unprocessable_entity
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def update
|
26
|
+
if @rule.update_attributes(params[:rule])
|
27
|
+
flash[:success] = t('workarea.admin.segment_rules.flash_messages.saved')
|
28
|
+
redirect_to return_to || segment_rules_path(@segment)
|
29
|
+
else
|
30
|
+
flash[:error] = t('workarea.admin.segment_rules.flash_messages.error')
|
31
|
+
render :edit, status: :unprocessable_entity
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
@rule.destroy
|
37
|
+
flash[:success] = t('workarea.admin.segment_rules.flash_messages.destroyed')
|
38
|
+
redirect_to return_to || segment_rules_path(@segment)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def find_segment
|
44
|
+
model = Segment.find(params[:segment_id])
|
45
|
+
@segment = SegmentViewModel.wrap(model, view_model_options)
|
46
|
+
end
|
47
|
+
|
48
|
+
def find_rules
|
49
|
+
@segment_rules = @segment.rules.select(&:persisted?)
|
50
|
+
end
|
51
|
+
|
52
|
+
def find_rule
|
53
|
+
@rule = if params[:id].present?
|
54
|
+
@segment.rules.where(id: params[:id]).first
|
55
|
+
else
|
56
|
+
klass = "Workarea::Segment::Rules::#{params[:rule_type].to_s.camelize}"
|
57
|
+
@segment.model.rules.build(params[:rule], klass.constantize)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|