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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53aa69458136ce8230480fc4b89e0fc9dc19cd05fdab78b277f287593c5497d3
4
- data.tar.gz: 6935d4c3bf8d003af7090e5185e7b47c755c259a94b37df926a1399ca9cd638a
3
+ metadata.gz: '098a9ad9021d540d19a295ea8a02b2977d741bfceea307bc6ec4a5f5af89220c'
4
+ data.tar.gz: 04c129147a023ced5857739fb66c749f1360e47f97b11961e99453b58ba1219b
5
5
  SHA512:
6
- metadata.gz: 9a8f7c29d253e12b2957552bc5739f4224dd63a40635bfb31baeb68539da0416da5e0e82dc478e47def44533fa30db49697c132bce882b4e68c1aa50dcea0896
7
- data.tar.gz: 535dfa3ce18d746840c40d4f66d7bcaf41c75bddc3c6bb4e3359f988a67a33c853bf55d0bd02a5a8f4d0dded4bad3c25c40ef02bf9cd508d4b9c480b3f6c160c
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('/admin/jump_to', { q: request.term }, function (data) {
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
- var timeOffset = parseInt(strftime('%z', new Date()));
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
- ).apply(@product.details)
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
- ).apply(@product.filters)
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
- ).apply(@product.details)
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
- ).apply(@product.filters)
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
- ).apply(@variant.details)
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
- HashUpdate.new(updates: params[:filters]).apply(@product.filters)
78
- HashUpdate.new(updates: params[:details]).apply(@product.details)
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--auto.grid--right.grid--middle
70
- .grid__cell= button_tag t('workarea.admin.comments.index.create'), value: 'create_comment', class: 'workflow-bar__button workflow-bar__button--create'
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
@@ -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: Your comments subscription has been added. You will be notified of any future comments.
635
- comment_unsubscribed: You have been unsubscribed from future comments.
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: to receive emails about future comments.
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 emails about future comments.
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
- click_button t('workarea.admin.comments.index.subscribe')
56
+ click_link t('workarea.admin.comments.index.subscribe')
57
57
  assert(page.has_content?('Success'))
58
58
 
59
- click_button t('workarea.admin.comments.index.unsubscribe')
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.8
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-03-31 00:00:00.000000000 Z
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.8
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.8
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.8
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.8
40
+ version: 3.5.13
41
41
  description: Provides site administration functionality for the Workarea Commerce
42
42
  Platform.
43
43
  email: