spree_backend 4.2.0.rc2 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +1 -2
  3. data/app/assets/javascripts/spree/backend/address_states.js +20 -9
  4. data/app/assets/javascripts/spree/backend/admin.js +9 -15
  5. data/app/assets/javascripts/spree/backend/calculator.js +2 -0
  6. data/app/assets/javascripts/spree/backend/checkouts/edit.js +99 -71
  7. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +1 -1
  8. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +31 -37
  9. data/app/assets/javascripts/spree/backend/option_value_picker.js +50 -23
  10. data/app/assets/javascripts/spree/backend/product_picker.js +35 -19
  11. data/app/assets/javascripts/spree/backend/promotions.js +32 -27
  12. data/app/assets/javascripts/spree/backend/shipments.js +28 -37
  13. data/app/assets/javascripts/spree/backend/spree-select2.js +33 -14
  14. data/app/assets/javascripts/spree/backend/stock_transfer.js +32 -13
  15. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +30 -43
  16. data/app/assets/javascripts/spree/backend/taxons.js +60 -47
  17. data/app/assets/javascripts/spree/backend/user_picker.js +16 -18
  18. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +23 -22
  19. data/app/assets/stylesheets/spree/backend/components/_badges.scss +1 -1
  20. data/app/assets/stylesheets/spree/backend/components/_tables.scss +2 -2
  21. data/app/assets/stylesheets/spree/backend/global/_mixins.scss +19 -0
  22. data/app/assets/stylesheets/spree/backend/global/_variables.scss +1 -1
  23. data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +94 -76
  24. data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +11 -0
  25. data/app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss +622 -0
  26. data/app/assets/stylesheets/spree/backend/shared/_base.scss +4 -0
  27. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +3 -1
  28. data/app/controllers/spree/admin/base_controller.rb +2 -0
  29. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  30. data/app/controllers/spree/admin/images_controller.rb +3 -3
  31. data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
  32. data/app/controllers/spree/admin/orders_controller.rb +15 -2
  33. data/app/controllers/spree/admin/prices_controller.rb +0 -13
  34. data/app/controllers/spree/admin/products_controller.rb +2 -2
  35. data/app/controllers/spree/admin/states_controller.rb +1 -1
  36. data/app/controllers/spree/admin/stores_controller.rb +7 -14
  37. data/app/controllers/spree/admin/taxons_controller.rb +15 -5
  38. data/app/helpers/spree/admin/base_helper.rb +68 -6
  39. data/app/helpers/spree/admin/navigation_helper.rb +11 -1
  40. data/app/helpers/spree/admin/payments_helper.rb +3 -3
  41. data/app/helpers/spree/admin/stock_movements_helper.rb +2 -0
  42. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +2 -2
  43. data/app/views/kaminari/admin-twitter-bootstrap-4/_gap.html.erb +2 -2
  44. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +2 -2
  45. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +2 -2
  46. data/app/views/kaminari/admin-twitter-bootstrap-4/_page.html.erb +2 -2
  47. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +2 -2
  48. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +2 -2
  49. data/app/views/spree/admin/adjustments/index.html.erb +2 -2
  50. data/app/views/spree/admin/countries/index.html.erb +6 -6
  51. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +48 -46
  52. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +3 -1
  53. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  54. data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
  55. data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
  56. data/app/views/spree/admin/general_settings/edit.html.erb +27 -4
  57. data/app/views/spree/admin/images/edit.html.erb +1 -1
  58. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  59. data/app/views/spree/admin/option_types/index.html.erb +2 -2
  60. data/app/views/spree/admin/orders/_add_line_item.html.erb +1 -1
  61. data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
  62. data/app/views/spree/admin/orders/_adjustments.html.erb +2 -2
  63. data/app/views/spree/admin/orders/_channel_form.html.erb +18 -0
  64. data/app/views/spree/admin/orders/_form.html.erb +6 -10
  65. data/app/views/spree/admin/orders/_line_items.html.erb +1 -1
  66. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +5 -8
  67. data/app/views/spree/admin/orders/_order_actions.html.erb +1 -2
  68. data/app/views/spree/admin/orders/_risk_analysis.html.erb +3 -3
  69. data/app/views/spree/admin/orders/_shipment.html.erb +3 -2
  70. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
  71. data/app/views/spree/admin/orders/cart.html.erb +1 -1
  72. data/app/views/spree/admin/orders/channel.html.erb +7 -0
  73. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +35 -12
  74. data/app/views/spree/admin/orders/customer_details/_form.html.erb +3 -3
  75. data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
  76. data/app/views/spree/admin/orders/edit.html.erb +1 -1
  77. data/app/views/spree/admin/orders/index.html.erb +12 -11
  78. data/app/views/spree/admin/payment_methods/_form.html.erb +65 -46
  79. data/app/views/spree/admin/payment_methods/index.html.erb +2 -2
  80. data/app/views/spree/admin/payments/_form.html.erb +2 -3
  81. data/app/views/spree/admin/payments/show.html.erb +1 -2
  82. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +3 -4
  83. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  84. data/app/views/spree/admin/prices/_variant_prices.html.erb +5 -5
  85. data/app/views/spree/admin/prices/index.html.erb +2 -2
  86. data/app/views/spree/admin/product_properties/index.html.erb +3 -4
  87. data/app/views/spree/admin/products/_form.html.erb +8 -9
  88. data/app/views/spree/admin/products/index.html.erb +2 -1
  89. data/app/views/spree/admin/products/new.html.erb +5 -3
  90. data/app/views/spree/admin/products/stock.html.erb +2 -2
  91. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  92. data/app/views/spree/admin/promotions/_actions.html.erb +2 -3
  93. data/app/views/spree/admin/promotions/_form.html.erb +10 -11
  94. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  95. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +1 -1
  96. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +1 -1
  97. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
  98. data/app/views/spree/admin/promotions/index.html.erb +7 -5
  99. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +8 -7
  100. data/app/views/spree/admin/promotions/rules/_product.html.erb +1 -1
  101. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
  102. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  103. data/app/views/spree/admin/prototypes/_form.html.erb +1 -1
  104. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  105. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  106. data/app/views/spree/admin/refunds/new.html.erb +3 -3
  107. data/app/views/spree/admin/reimbursements/edit.html.erb +5 -4
  108. data/app/views/spree/admin/reimbursements/show.html.erb +3 -1
  109. data/app/views/spree/admin/return_authorizations/_form.html.erb +7 -5
  110. data/app/views/spree/admin/return_authorizations/index.html.erb +2 -2
  111. data/app/views/spree/admin/return_index/customer_returns.html.erb +2 -2
  112. data/app/views/spree/admin/return_index/return_authorizations.html.erb +2 -2
  113. data/app/views/spree/admin/roles/index.html.erb +1 -1
  114. data/app/views/spree/admin/shared/_account_nav.html.erb +3 -3
  115. data/app/views/spree/admin/shared/_address_form.html.erb +9 -9
  116. data/app/views/spree/admin/shared/_error_messages.html.erb +1 -1
  117. data/app/views/spree/admin/shared/_head.html.erb +6 -2
  118. data/app/views/spree/admin/shared/_header.html.erb +0 -2
  119. data/app/views/spree/admin/shared/_main_menu.html.erb +1 -1
  120. data/app/views/spree/admin/shared/_order_summary.html.erb +25 -21
  121. data/app/views/spree/admin/shared/_order_tabs.html.erb +9 -0
  122. data/app/views/spree/admin/shared/_refunds.html.erb +2 -2
  123. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +4 -2
  124. data/app/views/spree/admin/shared/_translations.html.erb +9 -38
  125. data/app/views/spree/admin/shared/_update_order_state.js.erb +6 -2
  126. data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
  127. data/app/views/spree/admin/shipping_categories/index.html.erb +2 -2
  128. data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
  129. data/app/views/spree/admin/shipping_methods/index.html.erb +7 -3
  130. data/app/views/spree/admin/states/index.html.erb +2 -2
  131. data/app/views/spree/admin/stock_locations/_form.html.erb +2 -2
  132. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +1 -1
  133. data/app/views/spree/admin/stock_locations/index.html.erb +6 -6
  134. data/app/views/spree/admin/stock_movements/_form.html.erb +1 -1
  135. data/app/views/spree/admin/stock_movements/index.html.erb +2 -2
  136. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
  137. data/app/views/spree/admin/stock_transfers/index.html.erb +42 -37
  138. data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
  139. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -1
  140. data/app/views/spree/admin/stores/_form.html.erb +83 -25
  141. data/app/views/spree/admin/stores/index.html.erb +15 -8
  142. data/app/views/spree/admin/tax_categories/index.html.erb +3 -3
  143. data/app/views/spree/admin/tax_rates/index.html.erb +8 -8
  144. data/app/views/spree/admin/taxonomies/_js_head.html.erb +1 -2
  145. data/app/views/spree/admin/taxonomies/_list.html.erb +1 -1
  146. data/app/views/spree/admin/taxons/_form.html.erb +38 -35
  147. data/app/views/spree/admin/taxons/_taxon_table.html.erb +2 -2
  148. data/app/views/spree/admin/taxons/index.html.erb +1 -1
  149. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -6
  150. data/app/views/spree/admin/users/_form.html.erb +0 -1
  151. data/app/views/spree/admin/users/edit.html.erb +1 -1
  152. data/app/views/spree/admin/users/index.html.erb +2 -2
  153. data/app/views/spree/admin/users/items.html.erb +1 -1
  154. data/app/views/spree/admin/variants/_form.html.erb +5 -3
  155. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  156. data/app/views/spree/admin/zones/_form.html.erb +2 -2
  157. data/app/views/spree/admin/zones/index.html.erb +1 -1
  158. data/app/views/spree/admin/zones/new.html.erb +1 -1
  159. data/app/views/spree/layouts/admin.html.erb +2 -3
  160. data/config/initializers/assets.rb +1 -1
  161. data/config/routes.rb +7 -1
  162. data/spree_backend.gemspec +2 -2
  163. metadata +20 -20
  164. data/app/assets/javascripts/spree/backend/flatpickr_locals.js +0 -37
  165. data/app/assets/javascripts/spree/backend/tag_picker.js +0 -52
  166. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +0 -190
  167. data/app/helpers/spree/admin/currency_helper.rb +0 -14
  168. data/app/views/spree/admin/general_settings/_form.html.erb +0 -17
@@ -33,73 +33,74 @@ $(function () {
33
33
 
34
34
  if (taxonId.length > 0) {
35
35
  taxonId.select2({
36
- dropdownCssClass: 'taxon_select_box',
37
36
  placeholder: Spree.translations.find_a_taxon,
37
+ minimumInputLength: 3,
38
+ multiple: false,
38
39
  ajax: {
39
40
  url: Spree.routes.taxons_api,
40
41
  datatype: 'json',
41
- data: function (term, page) {
42
+ data: function (params, page) {
42
43
  return {
43
44
  per_page: 50,
44
45
  page: page,
45
46
  without_children: true,
46
- token: Spree.api_key,
47
47
  q: {
48
- name_cont: term
49
- }
48
+ name_cont: params.term
49
+ },
50
+ token: Spree.api_key
50
51
  }
51
52
  },
52
- results: function (data, page) {
53
+ processResults: function (data, page) {
53
54
  var more = page < data.pages
55
+ var results = formatTaxonList(data.taxons)
56
+
54
57
  return {
55
- results: data['taxons'],
56
- more: more
58
+ results: results,
59
+ pagination: {
60
+ more: more
61
+ }
57
62
  }
58
63
  }
59
64
  },
60
- formatResult: formatTaxon,
61
- formatSelection: formatTaxon
62
- })
63
- }
64
-
65
- taxonId.on('change', function (e) {
66
- var el = $('#taxon_products')
67
- $.ajax({
68
- url: Spree.routes.taxon_products_api,
69
- data: {
70
- id: e.val,
71
- token: Spree.api_key
72
- }
73
- }).done(function (data) {
74
- var i, j, len, len1, product, ref, ref1, results, variant
75
- el.empty()
76
- if (data.products.length === 0) {
77
- return $('#taxon_products').html('<div class="alert alert-info">' + Spree.translations.no_results + '</div>')
78
- } else {
79
- ref = data.products
80
- results = []
81
- for (i = 0, len = ref.length; i < len; i++) {
82
- product = ref[i]
83
- if (product.master.images[0] !== void 0 && product.master.images[0].small_url !== void 0) {
84
- product.image = product.master.images[0].small_url
85
- } else {
86
- ref1 = product.variants
87
- for (j = 0, len1 = ref1.length; j < len1; j++) {
88
- variant = ref1[j]
89
- if (variant.images[0] !== void 0 && variant.images[0].small_url !== void 0) {
90
- product.image = variant.images[0].small_url
91
- break
65
+ templateResult: formatTaxon,
66
+ templateSelection: formatTaxon
67
+ }).on('select2:select', function (e) {
68
+ var el = $('#taxon_products')
69
+ $.ajax({
70
+ url: Spree.routes.taxon_products_api,
71
+ data: { id: e.params.data.id, token: Spree.api_key }
72
+ }).done(function (data) {
73
+ var i, j, len, len1, product, ref, ref1, results, variant
74
+ el.empty()
75
+ if (data.products.length === 0) {
76
+ return $('#taxon_products').html('<div class="alert alert-info">' + Spree.translations.no_results + '</div>')
77
+ } else {
78
+ ref = data.products
79
+ results = []
80
+ for (i = 0, len = ref.length; i < len; i++) {
81
+ product = ref[i]
82
+ if (product.master.images[0] !== void 0 && product.master.images[0].small_url !== void 0) {
83
+ product.image = product.master.images[0].small_url
84
+ } else {
85
+ ref1 = product.variants
86
+ for (j = 0, len1 = ref1.length; j < len1; j++) {
87
+ variant = ref1[j]
88
+ if (variant.images[0] !== void 0 && variant.images[0].small_url !== void 0) {
89
+ product.image = variant.images[0].small_url
90
+ break
91
+ }
92
92
  }
93
93
  }
94
+ results.push(el.append(productTemplate({
95
+ product: product
96
+ })))
94
97
  }
95
- results.push(el.append(productTemplate({
96
- product: product
97
- })))
98
+ return results
98
99
  }
99
- return results
100
- }
100
+ })
101
101
  })
102
- })
102
+ }
103
+
103
104
  taxonProducts.on('click', '.js-delete-product', function (e) {
104
105
  var currentTaxonId = $('#taxon_id').val()
105
106
  var product = $(this).parents('.product')
@@ -126,6 +127,18 @@ $(function () {
126
127
  $('.variant_autocomplete').variantAutocomplete()
127
128
 
128
129
  function formatTaxon (taxon) {
129
- return Select2.util.escapeMarkup(taxon.pretty_name)
130
+ if (taxon.loading) {
131
+ return taxon.text;
132
+ }
133
+ return taxon.pretty_name
134
+ }
135
+
136
+ function formatTaxonList(values) {
137
+ return values.map(function (obj) {
138
+ return {
139
+ id: obj.id,
140
+ pretty_name: obj.pretty_name
141
+ }
142
+ })
130
143
  }
131
144
  })
@@ -1,40 +1,38 @@
1
1
  $.fn.userAutocomplete = function () {
2
2
  'use strict'
3
3
 
4
- function formatUser (user) {
5
- return Select2.util.escapeMarkup(user.email)
4
+ function formatUserList(values) {
5
+ return values.map(function (obj) {
6
+ return {
7
+ id: obj.id,
8
+ text: obj.email
9
+ }
10
+ })
6
11
  }
7
12
 
8
13
  this.select2({
9
- minimumInputLength: 1,
10
14
  multiple: true,
11
- initSelection: function (element, callback) {
12
- $.get(Spree.routes.users_api, {
13
- ids: element.val().split(','),
14
- token: Spree.api_key
15
- }, function (data) {
16
- callback(data.users)
17
- })
18
- },
15
+ minimumInputLength: 1,
19
16
  ajax: {
20
17
  url: Spree.routes.users_api,
21
- datatype: 'json',
22
- data: function (term) {
18
+ dataType: 'json',
19
+ data: function (params) {
23
20
  return {
24
21
  q: {
25
- email_start: term
22
+ email_start: params.term
26
23
  },
27
24
  token: Spree.api_key
28
25
  }
29
26
  },
30
- results: function (data) {
27
+ processResults: function(data) {
31
28
  return {
32
- results: data.users
29
+ results: formatUserList(data.users)
33
30
  }
34
31
  }
35
32
  },
36
- formatResult: formatUser,
37
- formatSelection: formatUser
33
+ templateSelection: function (data) {
34
+ return data.text
35
+ }
38
36
  })
39
37
  }
40
38
 
@@ -9,53 +9,54 @@ $(function () {
9
9
  }
10
10
  })
11
11
 
12
- function formatVariantResult (variant) {
12
+ function formatVariantResult(variant) {
13
+ if (variant.loading) {
14
+ return variant.text
15
+ }
16
+
13
17
  if (variant['images'][0] !== undefined && variant['images'][0].mini_url !== undefined) {
14
18
  variant.image = variant.images[0].mini_url
15
19
  }
16
- return variantTemplate({
20
+ return $(variantTemplate({
17
21
  variant: variant
18
- })
22
+ }))
19
23
  }
20
24
 
21
25
  $.fn.variantAutocomplete = function () {
26
+
27
+ // deal with initSelection
22
28
  return this.select2({
23
29
  placeholder: Spree.translations.variant_placeholder,
24
30
  minimumInputLength: 3,
25
- initSelection: function (element, callback) {
26
- return $.get(Spree.routes.variants_api + '/' + element.val(), {
27
- token: Spree.api_key
28
- }).done(function (data) {
29
- return callback(data)
30
- })
31
- },
31
+ quietMillis: 200,
32
32
  ajax: {
33
33
  url: Spree.url(Spree.routes.variants_api),
34
- quietMillis: 200,
35
- datatype: 'json',
36
- data: function (term) {
37
- return {
34
+ dataType: 'json',
35
+ data: function (params) {
36
+ var query = {
38
37
  q: {
39
- search_by_product_name_or_sku: term
38
+ search_by_product_name_or_sku: params.term
40
39
  },
41
40
  token: Spree.api_key
42
41
  }
42
+
43
+ return query;
43
44
  },
44
- results: function (data) {
45
+ processResults: function(data) {
45
46
  window.variants = data['variants']
46
47
  return {
47
- results: data['variants']
48
+ results: data.variants
48
49
  }
49
50
  }
50
51
  },
51
- formatResult: formatVariantResult,
52
- formatSelection: function (variant) {
53
- // eslint-disable-next-line no-extra-boolean-cast
52
+ templateResult: formatVariantResult,
53
+ templateSelection: function(variant) {
54
54
  if (!!variant.options_text) {
55
- return Select2.util.escapeMarkup(variant.name + '(' + variant.options_text + ')')
55
+ return variant.name + '(' + variant.options_text + ')'
56
56
  } else {
57
- return Select2.util.escapeMarkup(variant.name)
57
+ return variant.name
58
58
  }
59
59
  }
60
60
  })
61
+
61
62
  }
@@ -42,5 +42,5 @@
42
42
  .badge-inactive,
43
43
  .badge-notice,
44
44
  .badge-partial {
45
- @include badge-variant($warning);
45
+ @include badge-variant($light);
46
46
  }
@@ -21,7 +21,7 @@ table.table {
21
21
  }
22
22
 
23
23
  .badge {
24
- font-size: 0.85em;
24
+ text-transform: uppercase;
25
25
  }
26
26
 
27
27
  thead {
@@ -126,7 +126,7 @@ div.table-responsive table.table-bordered {
126
126
 
127
127
  .sortable-drag-v {
128
128
  border: 1px solid $info;
129
- border-radius: 5px;
129
+ border-radius: $border-radius;
130
130
  width:100%;
131
131
  text-align: right;
132
132
  opacity: 0;
@@ -0,0 +1,19 @@
1
+ // Mixin to prefix several properties at once
2
+
3
+ // EXAMPLE
4
+ // @include prefix((
5
+ // appearance: none,
6
+ // touch-callout: none,
7
+ // user-select: none
8
+ // ), webkit moz ms khtml);
9
+
10
+ @mixin prefix($declarations, $prefixes: ()) {
11
+ @each $property, $value in $declarations {
12
+ @each $prefix in $prefixes {
13
+ #{'-' + $prefix + '-' + $property}: $value;
14
+ }
15
+
16
+ // Output standard non-prefixed declaration
17
+ #{$property}: $value;
18
+ }
19
+ }
@@ -11,7 +11,7 @@
11
11
  /*------------------------------------------
12
12
  Components
13
13
  -----------------------------------------*/
14
- $border-radius: 2px;
14
+ $border-radius: 5px;
15
15
 
16
16
  /*------------------------------------------
17
17
  Fonts
@@ -1,95 +1,113 @@
1
- // Adaptive icon from calendar to close.
2
- @mixin swith-appended-icon {
3
- &:placeholder-shown:not(:focus) + * {
4
- @content;
1
+ .flatpickr-calendar {
2
+ // Custom Flatpickr styling for Spree + BS4.
3
+ .flatpickr-current-month {
4
+ span.cur-month:hover {
5
+ background: transparent;
6
+ }
7
+ .numInputWrapper {
8
+ margin-left: 3px;
9
+ border-radius: $border-radius;
10
+ overflow: hidden;
11
+ }
12
+
13
+ .flatpickr-monthDropdown-months {
14
+ @include prefix((
15
+ appearance: none
16
+ ), webkit moz ms khtml);
17
+
18
+ padding: 0.2em;
19
+ border-radius: $border-radius;
20
+ }
5
21
  }
6
- }
7
22
 
8
- input.flatpickr-input {
9
- -webkit-appearance: none;
10
- -moz-appearance: none;
11
- appearance: none;
12
- background-color: white !important;
13
- }
23
+ .numInputWrapper span.arrowUp {
24
+ border-color: transparent;
25
+ border-radius: 0;
26
+ }
14
27
 
15
- .flatpickr-current-month .numInputWrapper {
16
- margin-left: 3px;
17
- border-radius: $border-radius;
18
- overflow: hidden;
19
- }
20
- .flatpickr-current-month span.cur-month:hover {
21
- background: transparent;
22
- }
23
- .numInputWrapper span.arrowUp {
24
- border-color: transparent;
25
- border-radius: 0;
26
- }
27
- .numInputWrapper span.arrowDown {
28
- border-color: transparent;
29
- border-radius: 0;
30
- }
28
+ .numInputWrapper span.arrowDown {
29
+ border-color: transparent;
30
+ border-radius: 0;
31
+ }
31
32
 
32
- .input-group {
33
- input.flatpickr-input{
34
- @include swith-appended-icon {
35
- opacity: 0;
36
- }
33
+ .flatpickr-day {
34
+ margin: 2px 0;
35
+ border-radius: $border-radius ;
37
36
  }
38
- }
39
37
 
40
- .append_under {
41
- position: absolute;
42
- right: 0;
43
- top: 0;
44
- z-index: 0;
45
- height: 100%;
46
- }
38
+ .flatpickr-months .flatpickr-prev-month:hover svg,
39
+ .flatpickr-months .flatpickr-next-month:hover svg {
40
+ fill: $primary;
41
+ }
47
42
 
48
- .flatpickr-day {
49
- margin: 2px 0;
50
- border-radius: $border-radius ;
51
- }
43
+ .flatpickr-time {
44
+ border-radius: 0 0 5px 5px;
45
+ &:after {
46
+ display: none;
47
+ }
48
+ .numInputWrapper {
49
+ span {
50
+ border-color: transparent;
51
+ border-radius: 0;
52
+ }
53
+ }
54
+ }
52
55
 
53
- // Fix Flatpickr bug where things jusy highlight for no reason.
54
- input.flatpickr-input[readonly] {
55
- -webkit-touch-callout: none; /* iOS Safari */
56
- -webkit-user-select: none; /* Safari */
57
- -khtml-user-select: none; /* Konqueror HTML */
58
- -moz-user-select: none; /* Old versions of Firefox */
59
- -ms-user-select: none; /* Internet Explorer/Edge */
60
- user-select: none; /* Non-prefixed version, currently
61
- supported by Chrome, Edge, Opera and Firefox */
56
+ // Required to stop an opened cal showing above the nav bar.
57
+ &.open {
58
+ z-index: $zindex-dropdown;
59
+ }
62
60
  }
63
61
 
64
- .flatpickr-months .flatpickr-prev-month:hover svg,
65
- .flatpickr-months .flatpickr-next-month:hover svg {
66
- fill: $primary;
62
+ // Mixin for calendar toggle icon show/hide.
63
+ @mixin swith-appended-icon {
64
+ &:placeholder-shown:not(:focus) + * {
65
+ @content;
66
+ }
67
67
  }
68
68
 
69
- // Force rounded corner for the toggle cal and close icons.
70
- .input-group >
71
- .input-group-append:not(:last-child) >
72
- .force-round {
73
- z-index: 5;
74
- border-top-right-radius: $border-radius !important;
75
- border-bottom-right-radius: $border-radius !important;
76
- }
69
+ .input-group.datePickerFrom,
70
+ .input-group.datePickerTo,
71
+ .input-group.datepicker {
72
+ input.flatpickr-alt-input[readonly] {
73
+ // Flatpickr alternate input is read-only,
74
+ // style it as an active input field.
75
+ background-color: white !important;
77
76
 
78
- div.flatpickr-calendar.open {
79
- z-index: $zindex-dropdown;
80
- }
77
+ // Fix a bug where occasionally the whole screen will highlight
78
+ // if you clicked the Flatpcikr input box while moving the cursor.
79
+ @include prefix((
80
+ appearance: none,
81
+ touch-callout: none,
82
+ user-select: none
83
+ ), webkit moz ms khtml);
81
84
 
82
- .flatpickr-time {
83
- border-radius: 0 0 5px 5px;
84
- &:after {
85
- display: none;
85
+ @include swith-appended-icon {
86
+ opacity: 0;
87
+ }
86
88
  }
87
- .numInputWrapper {
88
- span {
89
- border-color: transparent;
90
- border-radius: 0;
91
89
 
92
- }
90
+ // Required for calendar toggle icon show/hide.
91
+ .append_under {
92
+ position: absolute;
93
+ right: 0;
94
+ top: 0;
95
+ z-index: 0;
96
+ height: 100%;
97
+ }
98
+
99
+ // Styling for calendar toggle icon toggle
100
+ .input-group-append:not(:last-child) >
101
+ .force-round {
102
+ z-index: 5;
103
+ border-top-right-radius: $border-radius !important;
104
+ border-bottom-right-radius: $border-radius !important;
105
+ }
93
106
 
107
+ // Styling for calendar toggle icon toggle
108
+ .form-control:not(:first-child),
109
+ .input-group >.flatpickr-alt-input:not(:first-child) {
110
+ border-top-left-radius: $border-radius !important;
111
+ border-bottom-left-radius: $border-radius !important;
94
112
  }
95
113
  }