workarea-admin 3.5.8 → 3.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/workarea/admin/modules/categorized_autocomplete_fields.js +1 -1
- data/app/assets/javascripts/workarea/admin/modules/release_calendar_placeholders.js +1 -21
- data/app/controllers/workarea/admin/bulk_action_sequential_product_edits_controller.rb +6 -4
- data/app/controllers/workarea/admin/catalog_products_controller.rb +6 -4
- data/app/controllers/workarea/admin/catalog_variants_controller.rb +3 -2
- data/app/controllers/workarea/admin/create_catalog_products_controller.rb +8 -2
- data/app/controllers/workarea/admin/releases_controller.rb +0 -10
- data/app/views/workarea/admin/catalog_products/content.html.haml +2 -0
- data/app/views/workarea/admin/catalog_products/edit.html.haml +4 -0
- data/app/views/workarea/admin/catalog_variants/edit.html.haml +2 -0
- data/app/views/workarea/admin/comments/index.html.haml +14 -13
- data/app/views/workarea/admin/insights/_most_discounted_products.html.haml +4 -4
- data/app/views/workarea/admin/inventory_skus/edit.html.haml +2 -0
- data/config/locales/en.yml +4 -4
- data/test/integration/workarea/admin/products_integration_test.rb +13 -0
- data/test/system/workarea/admin/comments_system_test.rb +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '098a9ad9021d540d19a295ea8a02b2977d741bfceea307bc6ec4a5f5af89220c'
|
4
|
+
data.tar.gz: 04c129147a023ced5857739fb66c749f1360e47f97b11961e99453b58ba1219b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 855fa89d046ba65fa09c03ae3f82f34cfb508db818ab381b0c25c5fd353b5628003d4087c9ceae11daa1cb2cf7a12c97ae36c9c8166f8a0611f7df3390ec6b17
|
7
|
+
data.tar.gz: '0601691b31b981310a4a139ee8ef894e16a0e5afcafcb87ba8c01c79e568ace43469da3c78dd180a6794644f6034d6e49d039c6c8566b5c7ff58e0c72c541048'
|
@@ -5,7 +5,7 @@ WORKAREA.registerModule('categorizedAutocompleteFields', (function () {
|
|
5
5
|
'use strict';
|
6
6
|
|
7
7
|
var getSource = function (request, response) {
|
8
|
-
$.getJSON(
|
8
|
+
$.getJSON(WORKAREA.routes.admin.jumpToPath(), { q: request.term }, function (data) {
|
9
9
|
response(data.results);
|
10
10
|
});
|
11
11
|
},
|
@@ -15,17 +15,6 @@ WORKAREA.registerModule('releaseCalendarPlaceholders', (function () {
|
|
15
15
|
WORKAREA.initModules($calendar);
|
16
16
|
},
|
17
17
|
|
18
|
-
now = new Date(),
|
19
|
-
|
20
|
-
standardTimezoneOffset = function() {
|
21
|
-
var jan = new Date(now.getFullYear(), 0, 1).getTimezoneOffset(),
|
22
|
-
jul = new Date(now.getFullYear(), 6, 1).getTimezoneOffset();
|
23
|
-
|
24
|
-
return Math.max(jan, jul);
|
25
|
-
},
|
26
|
-
|
27
|
-
isDSTObserved = now.getTimezoneOffset() < standardTimezoneOffset(),
|
28
|
-
|
29
18
|
/**
|
30
19
|
* Makes the AJAX request for a new calendar based on a supplied time.
|
31
20
|
* When the promise resolves the supplied placeholder element is
|
@@ -40,16 +29,7 @@ WORKAREA.registerModule('releaseCalendarPlaceholders', (function () {
|
|
40
29
|
* @param {string} endpoint - the endpoint for the AJAX request
|
41
30
|
*/
|
42
31
|
requestCalendar = function (startDate, placeholder, endpoint) {
|
43
|
-
|
44
|
-
|
45
|
-
if (isDSTObserved) {
|
46
|
-
timeOffset = timeOffset - 100;
|
47
|
-
}
|
48
|
-
|
49
|
-
$.get(endpoint, {
|
50
|
-
start_date: startDate,
|
51
|
-
time_offset: timeOffset
|
52
|
-
})
|
32
|
+
$.get(endpoint, { start_date: startDate })
|
53
33
|
.done(_.partial(displayCalendar, placeholder))
|
54
34
|
.fail(
|
55
35
|
_.partial(
|
@@ -64,19 +64,21 @@ module Workarea
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def set_details
|
67
|
-
HashUpdate.new(
|
67
|
+
@product.details = HashUpdate.new(
|
68
|
+
original: @product.details,
|
68
69
|
adds: params[:new_details],
|
69
70
|
updates: params[:details],
|
70
71
|
removes: params[:details_to_remove]
|
71
|
-
).
|
72
|
+
).result
|
72
73
|
end
|
73
74
|
|
74
75
|
def set_filters
|
75
|
-
HashUpdate.new(
|
76
|
+
@product.filters = HashUpdate.new(
|
77
|
+
original: @product.filters,
|
76
78
|
adds: params[:new_filters],
|
77
79
|
updates: params[:filters],
|
78
80
|
removes: params[:filters_to_remove]
|
79
|
-
).
|
81
|
+
).result
|
80
82
|
end
|
81
83
|
|
82
84
|
def set_images
|
@@ -64,19 +64,21 @@ module Workarea
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def set_details
|
67
|
-
HashUpdate.new(
|
67
|
+
@product.details = HashUpdate.new(
|
68
|
+
original: @product.details,
|
68
69
|
adds: params[:new_details],
|
69
70
|
updates: params[:details],
|
70
71
|
removes: params[:details_to_remove]
|
71
|
-
).
|
72
|
+
).result
|
72
73
|
end
|
73
74
|
|
74
75
|
def set_filters
|
75
|
-
HashUpdate.new(
|
76
|
+
@product.filters = HashUpdate.new(
|
77
|
+
original: @product.filters,
|
76
78
|
adds: params[:new_filters],
|
77
79
|
updates: params[:filters],
|
78
80
|
removes: params[:filters_to_remove]
|
79
|
-
).
|
81
|
+
).result
|
80
82
|
end
|
81
83
|
end
|
82
84
|
end
|
@@ -83,11 +83,12 @@ module Workarea
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def set_details
|
86
|
-
HashUpdate.new(
|
86
|
+
@variant.details = HashUpdate.new(
|
87
|
+
original: @variant.details,
|
87
88
|
adds: params[:new_details],
|
88
89
|
updates: params[:details],
|
89
90
|
removes: params[:details_to_remove]
|
90
|
-
).
|
91
|
+
).result
|
91
92
|
end
|
92
93
|
end
|
93
94
|
end
|
@@ -74,8 +74,14 @@ module Workarea
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def save_details
|
77
|
-
|
78
|
-
|
77
|
+
@product.filters = HashUpdate
|
78
|
+
.new(original: @product.filters, updates: params[:filters])
|
79
|
+
.result
|
80
|
+
|
81
|
+
@product.details = HashUpdate
|
82
|
+
.new(original: @product.details, updates: params[:details])
|
83
|
+
.result
|
84
|
+
|
79
85
|
@product.save!
|
80
86
|
|
81
87
|
flash[:success] = t('workarea.admin.create_catalog_products.flash_messages.saved')
|
@@ -9,7 +9,6 @@ module Workarea
|
|
9
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: :index
|
13
12
|
|
14
13
|
def index
|
15
14
|
end
|
@@ -71,15 +70,6 @@ module Workarea
|
|
71
70
|
|
72
71
|
private
|
73
72
|
|
74
|
-
def set_time_zone
|
75
|
-
old_time_zone = Time.zone
|
76
|
-
time_offset = params[:time_offset].to_i / 100
|
77
|
-
Time.zone = time_offset.hours unless params[:time_offset].blank?
|
78
|
-
yield
|
79
|
-
ensure
|
80
|
-
Time.zone = old_time_zone
|
81
|
-
end
|
82
|
-
|
83
73
|
def find_release
|
84
74
|
model = if params[:id].present?
|
85
75
|
Release.find(params[:id])
|
@@ -34,6 +34,8 @@
|
|
34
34
|
= label_tag "product[meta_description]", t('workarea.admin.fields.meta_description'), class: 'property__name'
|
35
35
|
= text_field_tag 'product[meta_description]', @product.meta_description, class: 'text-box text-box--i18n', id: "product_meta_description"
|
36
36
|
|
37
|
+
= append_partials('admin.product_content_fields', product: @product)
|
38
|
+
|
37
39
|
.workflow-bar
|
38
40
|
.grid.grid--auto.grid--right.grid--middle
|
39
41
|
.grid__cell= render 'workarea/admin/shared/publishing_select'
|
@@ -110,6 +110,8 @@
|
|
110
110
|
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.catalog_products.edit.details.learn_more'))
|
111
111
|
%td.align-center -
|
112
112
|
|
113
|
+
= append_partials('admin.additional_product_details_information', product: @product)
|
114
|
+
|
113
115
|
.section
|
114
116
|
|
115
117
|
%h2= t('workarea.admin.catalog_products.edit.filters.label')
|
@@ -147,6 +149,8 @@
|
|
147
149
|
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.catalog_products.edit.filters.learn_more'))
|
148
150
|
%td.align-center -
|
149
151
|
|
152
|
+
= append_partials('admin.additional_product_filters_information', product: @product)
|
153
|
+
|
150
154
|
.grid.grid--huge
|
151
155
|
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
152
156
|
.property
|
@@ -70,6 +70,8 @@
|
|
70
70
|
= render 'workarea/admin/shared/csv_formatting_tooltip'
|
71
71
|
%td.align-center -
|
72
72
|
|
73
|
+
= append_partials('admin.additional_variant_information_fields', variant: @variant)
|
74
|
+
|
73
75
|
.workflow-bar
|
74
76
|
.grid.grid--auto.grid--right.grid--middle
|
75
77
|
.grid__cell= render 'workarea/admin/shared/publishing_select'
|
@@ -41,17 +41,6 @@
|
|
41
41
|
.comments__comment-body
|
42
42
|
%p= comment.body
|
43
43
|
|
44
|
-
.section
|
45
|
-
- if @commentable.subscribed_user_ids.include?(current_user.id.to_s)
|
46
|
-
= form_tag unsubscribe_commentable_comments_path(@commentable.to_global_id), method: :put, id: 'comment_unsubscribe_form' do
|
47
|
-
= button_tag t('workarea.admin.comments.index.unsubscribe'), value: 'comments_unsubscribe', class: 'button button--small'
|
48
|
-
%span= t('workarea.admin.comments.index.subscribe_message')
|
49
|
-
- else
|
50
|
-
= form_tag subscribe_commentable_comments_path(@commentable.to_global_id), method: :put, id: 'comment_unsubscribe_form' do
|
51
|
-
= button_tag t('workarea.admin.comments.index.subscribe'), value: 'comments_subscribe', class: 'button button--small'
|
52
|
-
%span= t('workarea.admin.comments.index.unsubscribe_message')
|
53
|
-
|
54
|
-
|
55
44
|
.section
|
56
45
|
.comments__new-comment
|
57
46
|
%h2= t('workarea.admin.comments.index.new')
|
@@ -66,5 +55,17 @@
|
|
66
55
|
%span.property__note= t('workarea.admin.comments.index.mention_note')
|
67
56
|
|
68
57
|
.workflow-bar
|
69
|
-
.grid.grid--
|
70
|
-
.grid__cell
|
58
|
+
.grid.grid--middle
|
59
|
+
.grid__cell.grid__cell--80
|
60
|
+
- if @commentable.subscribed_user_ids.include?(current_user.id.to_s)
|
61
|
+
= link_to t('workarea.admin.comments.index.unsubscribe'), unsubscribe_commentable_comments_path(@commentable.to_global_id), data: { method: 'put', tooltip: { content_id: '#unsubscribe-info' } }, class: 'workflow-bar__button'
|
62
|
+
#unsubscribe-info.tooltip-content
|
63
|
+
%p= t('workarea.admin.comments.index.unsubscribe_message')
|
64
|
+
|
65
|
+
- else
|
66
|
+
= link_to t('workarea.admin.comments.index.subscribe'), subscribe_commentable_comments_path(@commentable.to_global_id), data: { method: 'put', tooltip: { content_id: '#subscribe-info' } }, class: 'workflow-bar__button'
|
67
|
+
#subscribe-info.tooltip-content
|
68
|
+
%p= t('workarea.admin.comments.index.subscribe_message')
|
69
|
+
|
70
|
+
.grid__cell.grid__cell--20
|
71
|
+
.align-right= button_tag t('workarea.admin.comments.index.create'), value: 'create_comment', class: 'workflow-bar__button workflow-bar__button--create'
|
@@ -18,15 +18,15 @@
|
|
18
18
|
= result.product_id
|
19
19
|
- else
|
20
20
|
= link_to result.product.name, catalog_product_path(result.product)
|
21
|
-
.insight__product-info
|
21
|
+
.insight__product-info.align-center
|
22
22
|
%strong= insights_number_to_percentage(result.average_discount)
|
23
23
|
= t('workarea.admin.insights.most_discounted_products.average_discount')
|
24
|
-
.insight__product-info
|
24
|
+
.insight__product-info.align-center
|
25
25
|
%strong= insights_number_to_percentage(result.discount_rate)
|
26
26
|
= t('workarea.admin.insights.most_discounted_products.discount_rate')
|
27
|
-
.insight__product-info
|
27
|
+
.insight__product-info.align-center
|
28
28
|
%strong= number_with_delimiter(result.units_sold)
|
29
29
|
= t('workarea.admin.insights.most_discounted_products.units_sold')
|
30
|
-
.insight__product-info
|
30
|
+
.insight__product-info.align-center
|
31
31
|
%strong= insights_number_to_percentage(result.conversion_rate)
|
32
32
|
= t('workarea.admin.insights.most_discounted_products.conversion_rate')
|
@@ -56,6 +56,8 @@
|
|
56
56
|
= label_tag 'sku[backordered_until]', t('workarea.admin.inventory_skus.edit.backordered_ship_date'), class: 'property__name'
|
57
57
|
= datetime_picker_tag 'sku[backordered_until]', @sku.backordered_until.try(:to_s, :date_only), class: 'text-box text-box--medium', data: { datepicker_field: { } }
|
58
58
|
|
59
|
+
= append_partials('admin.inventory_sku_fields', sku: @sku)
|
60
|
+
|
59
61
|
.grid.grid--huge
|
60
62
|
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
61
63
|
.property
|
data/config/locales/en.yml
CHANGED
@@ -631,8 +631,8 @@ en:
|
|
631
631
|
removed: Your comment has been removed
|
632
632
|
saved: Your comment has been saved
|
633
633
|
saved_error: There was a problem saving your comment
|
634
|
-
comment_subscribed:
|
635
|
-
comment_unsubscribed: You have been unsubscribed from
|
634
|
+
comment_subscribed: You have been subscribed to comment notifications.
|
635
|
+
comment_unsubscribed: You have been unsubscribed from comment notifications.
|
636
636
|
index:
|
637
637
|
body: Comment Body
|
638
638
|
create: Create Comment
|
@@ -642,10 +642,10 @@ en:
|
|
642
642
|
new: New Comment
|
643
643
|
notify: Notify Admins
|
644
644
|
subscribe: Subscribe
|
645
|
-
subscribe_message:
|
645
|
+
subscribe_message: You'll be emailed when a new comment is posted on this.
|
646
646
|
title: Comments on %{name}
|
647
647
|
unsubscribe: Unsubscribe
|
648
|
-
unsubscribe_message: to stop receiving
|
648
|
+
unsubscribe_message: Click this to stop receiving email about future comments.
|
649
649
|
icon:
|
650
650
|
viewed: Comments
|
651
651
|
unviewed: Unread Comments
|
@@ -16,6 +16,19 @@ module Workarea
|
|
16
16
|
assert(product.active)
|
17
17
|
end
|
18
18
|
|
19
|
+
def test_updating_hash_fields_in_locales
|
20
|
+
set_locales(available: [:en, :es], default: :en, current: :en)
|
21
|
+
product = create_product(filters_translations: { 'en' => { 'Size' => ['Large'] } })
|
22
|
+
|
23
|
+
patch admin.catalog_product_path(product, locale: 'es'),
|
24
|
+
params: { new_filters: %w(Color Roja) }
|
25
|
+
|
26
|
+
assert_equal(
|
27
|
+
{ 'en' => { 'Size' => ['Large'] }, 'es' => { 'Color' => ['Roja'] } },
|
28
|
+
product.reload.filters_translations
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
19
32
|
def test_returns_a_list_of_filters
|
20
33
|
create_product(filters: { 'Color' => 'Blue' })
|
21
34
|
|
@@ -53,10 +53,10 @@ module Workarea
|
|
53
53
|
visit admin.user_path(user)
|
54
54
|
|
55
55
|
click_link 'Comments'
|
56
|
-
|
56
|
+
click_link t('workarea.admin.comments.index.subscribe')
|
57
57
|
assert(page.has_content?('Success'))
|
58
58
|
|
59
|
-
|
59
|
+
click_link t('workarea.admin.comments.index.unsubscribe')
|
60
60
|
assert(page.has_content?('Success'))
|
61
61
|
end
|
62
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Crouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea-core
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.5.
|
19
|
+
version: 3.5.13
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.5.
|
26
|
+
version: 3.5.13
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: workarea-storefront
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.5.
|
33
|
+
version: 3.5.13
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.5.
|
40
|
+
version: 3.5.13
|
41
41
|
description: Provides site administration functionality for the Workarea Commerce
|
42
42
|
Platform.
|
43
43
|
email:
|