From cd743e5c2c158655dc74ec5a734704d98d3bafe1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 10:32:21 +0100 Subject: [PATCH 1/9] Call `resetSelectFilters` on page load + init start and end date with a method (will be re-used) --- .../controllers/line_items_controller.js.coffee | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index eed001210e..5f1d4923dd 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -3,8 +3,6 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.RequestMonitor = RequestMonitor $scope.line_items = LineItems.all $scope.confirmDelete = true - $scope.startDate = moment().startOf('day').subtract(7, 'days').format('YYYY-MM-DD') - $scope.endDate = moment().startOf('day').format('YYYY-MM-DD') $scope.previousDates = { startDate: $scope.startDate, endDate: $scope.endDate } $scope.datesChangedOnCancelEvent = false $scope.bulkActions = [ { name: t("admin.orders.bulk_management.actions_delete"), callback: 'deleteLineItems' } ] @@ -17,6 +15,10 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.confirmRefresh = -> LineItems.allSaved() || confirm(t("unsaved_changes_warning")) + $scope.initStartAndEnDate = -> + $scope.startDate = moment().startOf('day').subtract(7, 'days').format('YYYY-MM-DD') + $scope.endDate = moment().startOf('day').format('YYYY-MM-DD') + $scope.resetFilters = -> $scope.distributorFilter = '' $scope.supplierFilter = '' @@ -39,6 +41,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.startDate = $scope.previousDates.startDate $scope.endDate = $scope.previousDates.endDate # throw a flatpickr:change event to change the date back in the datepicker + $scope.initStartAndEnDate() event = new CustomEvent('flatpickr:change', { detail: { startDate: $scope.previousDates.startDate, @@ -277,5 +280,4 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, lineItem.final_weight_volume = LineItems.pristineByID[lineItem.id].final_weight_volume * lineItem.quantity / LineItems.pristineByID[lineItem.id].quantity $scope.weightAdjustedPrice(lineItem) - $scope.resetFilters() - $scope.refreshData() + $scope.resetSelectFilters() From 4716ed19dc84930ca5468c601e87a5c28061da57 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 10:33:26 +0100 Subject: [PATCH 2/9] Remove the watch collection on date range: not needed anymore Yes! This simplifies a lot the code now since we have a "Search" button and we don't need to watch for date range changes --- .../line_items_controller.js.coffee | 38 ++++--------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index 5f1d4923dd..e66d2d1333 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -3,8 +3,6 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.RequestMonitor = RequestMonitor $scope.line_items = LineItems.all $scope.confirmDelete = true - $scope.previousDates = { startDate: $scope.startDate, endDate: $scope.endDate } - $scope.datesChangedOnCancelEvent = false $scope.bulkActions = [ { name: t("admin.orders.bulk_management.actions_delete"), callback: 'deleteLineItems' } ] $scope.selectedUnitsProduct = {} $scope.selectedUnitsVariant = {} @@ -24,34 +22,19 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.supplierFilter = '' $scope.orderCycleFilter = '' $scope.quickSearch = '' + $scope.initStartAndEnDate() + event = new CustomEvent('flatpickr:change', { + detail: { + startDate: $scope.startDate, + endDate: $scope.endDate + } + }) + window.dispatchEvent(event) $scope.resetSelectFilters = -> $scope.resetFilters() $scope.refreshData() - $scope.$watchCollection "[startDate, endDate]", (newValues, oldValues) -> - if newValues != oldValues && !$scope.datesChangedOnCancelEvent - state = $scope.refreshData() - if (state == "cancel") - $scope.datesChangedOnCancelEvent = true - $scope.cancelDateChange() - - $scope.cancelDateChange = -> - # Reset the date filters to the previous values - $scope.startDate = $scope.previousDates.startDate - $scope.endDate = $scope.previousDates.endDate - # throw a flatpickr:change event to change the date back in the datepicker - $scope.initStartAndEnDate() - event = new CustomEvent('flatpickr:change', { - detail: { - startDate: $scope.previousDates.startDate, - endDate: $scope.previousDates.endDate - } - }) - window.dispatchEvent(event) - $timeout -> - $scope.datesChangedOnCancelEvent = false - $scope.refreshData = -> unless !$scope.orderCycleFilter? || $scope.orderCycleFilter == '' $scope.setOrderCycleDateRange() @@ -70,11 +53,6 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.loadAssociatedData() $scope.dereferenceLoadedData() - - $timeout -> - # update the previous dates with the current ones since loading was successful - $scope.previousDates.startDate = $scope.startDate - $scope.previousDates.endDate = $scope.endDate $scope.setOrderCycleDateRange = -> start_date = OrderCycles.byID[$scope.orderCycleFilter].orders_open_at From 97c3aaebb211345671cc2a3501c643431959e3f1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 10:35:44 +0100 Subject: [PATCH 3/9] Update the view as well: remove red clear button + remove all `refreshData()` callback on input change + align html (add fieldset, legend) to look same as `/admin/orders` --- .../admin/orders/bulk_management.html.haml | 68 ++++++++++--------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/app/views/spree/admin/orders/bulk_management.html.haml b/app/views/spree/admin/orders/bulk_management.html.haml index c34f839ae0..cc86845ba5 100644 --- a/app/views/spree/admin/orders/bulk_management.html.haml +++ b/app/views/spree/admin/orders/bulk_management.html.haml @@ -12,39 +12,41 @@ = admin_inject_column_preferences module: 'admin.lineItems' = admin_inject_available_units -%div{ ng: { controller: 'LineItemsCtrl' } } - %save-bar{ dirty: "bulk_order_form.$dirty", persist: "false" } - %input.red{ type: "button", value: "Save Changes", ng: { click: "submit()", disabled: "!bulk_order_form.$dirty" } } - - .filters{ :class => "sixteen columns alpha" } - .date_filter{class: "four columns"} - %label - = t("date_range") - %br - %div{ data: { controller: "flatpickr", "flatpickr-mode-value": "range", "flatpickr-default-date": "{{ [startDate, endDate] }}" } } - %input.datepicker.fullwidth{ class: "datepicker", data: { "flatpickr-target": "instance" } } - %input{ type: "text", id: 'start_date_filter', 'ng-model': "startDate", data: { "flatpickr-target": "start" }, style: "display: none;" } - %input{ type: "text", id: 'end_date_filter', 'ng-model': "endDate", data: { "flatpickr-target": "end" }, style: "display: none;" } - .one.column   - .filter_select{ :class => "three columns" } - %label{ :for => 'supplier_filter' } - = t("admin.producer") - %br - %input#supplier_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'suppliers', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'supplierFilter', change: 'refreshData()' } } - .filter_select{ :class => "three columns" } - %label{ :for => 'distributor_filter' } - = t("admin.shop") - %br - %input#distributor_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'distributors', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'distributorFilter', change: 'refreshData()' } } - .filter_select{ :class => "three columns" } - %label{ :for => 'order_cycle_filter' } - = t("admin.order_cycle") - %br - %input#order_cycle_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'orderCycles', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'orderCycleFilter', change: 'refreshData()' } } - .filter_clear{ :class => "two columns omega" } - %label{ :for => 'clear_all_filters' } - %br - %input.red.fullwidth{ :type => 'button', :id => 'clear_all_filters', :value => t('admin.clear_all'), 'ng-click' => "resetSelectFilters()" } +%div{ ng: { controller: 'LineItemsCtrl' }, id: "table-filter" } + %fieldset + %save-bar{ dirty: "bulk_order_form.$dirty", persist: "false" } + %input.red{ type: "button", value: "Save Changes", ng: { click: "submit()", disabled: "!bulk_order_form.$dirty" } } + %legend{ align: 'center'}= t("admin.orders.bulk_management.filter_orders") + .filters{ :class => "sixteen columns alpha" } + .date_filter{class: "four columns"} + %label + = t("date_range") + %br + %div{ data: { controller: "flatpickr", "flatpickr-mode-value": "range", "flatpickr-default-date": "{{ [startDate, endDate] }}" } } + %input.datepicker.fullwidth{ class: "datepicker", data: { "flatpickr-target": "instance" } } + %input{ type: "text", id: 'start_date_filter', 'ng-model': "startDate", data: { "flatpickr-target": "start" }, style: "display: none;" } + %input{ type: "text", id: 'end_date_filter', 'ng-model': "endDate", data: { "flatpickr-target": "end" }, style: "display: none;" } + .filter_select{ :class => "four columns" } + %label{ :for => 'supplier_filter' } + = t("admin.producer") + %br + %input#supplier_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'suppliers', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'supplierFilter' } } + .filter_select{ :class => "four columns" } + %label{ :for => 'distributor_filter' } + = t("admin.shop") + %br + %input#distributor_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'distributors', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'distributorFilter' } } + .filter_select{ :class => "four columns" } + %label{ :for => 'order_cycle_filter' } + = t("admin.order_cycle") + %br + %input#order_cycle_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'orderCycles', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'orderCycleFilter' } } + .clearfix + .actions.filter-actions + %a.button.icon-search{'ng-click' => 'refreshData()'} + = t(:filter_results) + %a.button{'ng-click' => 'resetSelectFilters()', "id": "clear_filters_button", "class": ("secondary" if feature?(:admin_style_v2, spree_current_user)) } + = t(:clear_filters) %hr.divider.sixteen.columns.alpha.omega{ ng: { show: 'unitsVariantSelected()' } } From 311675f2cf44b01ced181764133a732b1d623316 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 11:10:46 +0100 Subject: [PATCH 4/9] Used an already existing key Update bulk_management.html.haml --- app/views/spree/admin/orders/bulk_management.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/spree/admin/orders/bulk_management.html.haml b/app/views/spree/admin/orders/bulk_management.html.haml index cc86845ba5..23a4f1364d 100644 --- a/app/views/spree/admin/orders/bulk_management.html.haml +++ b/app/views/spree/admin/orders/bulk_management.html.haml @@ -16,8 +16,8 @@ %fieldset %save-bar{ dirty: "bulk_order_form.$dirty", persist: "false" } %input.red{ type: "button", value: "Save Changes", ng: { click: "submit()", disabled: "!bulk_order_form.$dirty" } } - %legend{ align: 'center'}= t("admin.orders.bulk_management.filter_orders") - .filters{ :class => "sixteen columns alpha" } + %legend{ align: 'center'}= t(:search) + %div{ :class => "sixteen columns alpha" } .date_filter{class: "four columns"} %label = t("date_range") From 5fd78a8db5bc4c91f4824986d459e26763476e01 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 12:03:09 +0100 Subject: [PATCH 5/9] Update specs: Need to click on "Filter Results" button to update orders --- .../admin/bulk_order_management_spec.rb | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/spec/system/admin/bulk_order_management_spec.rb b/spec/system/admin/bulk_order_management_spec.rb index 20f928a8b9..3a078fdf85 100644 --- a/spec/system/admin/bulk_order_management_spec.rb +++ b/spec/system/admin/bulk_order_management_spec.rb @@ -346,6 +346,7 @@ describe ' end close_select2 select2_select s1.name, from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" end @@ -354,9 +355,11 @@ describe ' expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" select2_select s1.name, from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" select2_select "All", from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" end @@ -389,6 +392,7 @@ describe ' expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: dn end find(".select2-result-label", text: d1.name.to_s).click + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" end @@ -398,10 +402,12 @@ describe ' expect(page).to have_selector "tr#li_#{li2.id}" find("#s2id_distributor_filter .select2-chosen").click find(".select2-result-label", text: d1.name.to_s).click + page.find('.filter-actions .button.icon-search').click expect(page).to have_no_selector "tr#li_#{li2.id}" # displays orders from all enterprises find("#s2id_distributor_filter .select2-chosen").click find(".select2-result-label", text: "All").click + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" end @@ -432,6 +438,7 @@ describe ' expect(page).to have_select2 'order_cycle_filter', with_options: OrderCycle.pluck(:name).unshift("All") select2_select oc1.name, from: "order_cycle_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_no_selector "#loading i" expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" @@ -441,9 +448,11 @@ describe ' expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" select2_select oc1.name, from: "order_cycle_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" select2_select "All", from: "order_cycle_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" end @@ -477,17 +486,21 @@ describe ' expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" click_on_select2 oc1.name, from: "order_cycle_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" click_on_select2 d1.name, from: "distributor_filter" click_on_select2 s1.name, from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" click_on_select2 d2.name, from: "distributor_filter" click_on_select2 s2.name, from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_no_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" click_on_select2 oc2.name, from: "order_cycle_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_no_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" end @@ -498,10 +511,10 @@ describe ' click_on_select2 oc1.name, from: "order_cycle_filter" click_on_select2 d1.name, from: "distributor_filter" click_on_select2 s1.name, from: "supplier_filter" + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_no_selector "tr#li_#{li2.id}" - expect(page).to have_button "Clear All" - click_button "Clear All" + page.find('.filter-actions #clear_filters_button').click expect(page).to have_selector "div#s2id_order_cycle_filter a.select2-choice", text: "All" expect(page).to have_selector "div#s2id_supplier_filter a.select2-choice", text: "All" expect(page).to have_selector "div#s2id_distributor_filter a.select2-choice", text: "All" @@ -589,6 +602,7 @@ describe ' find("input.datepicker").click select_dates_from_daterangepicker(from, today) + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" @@ -597,6 +611,7 @@ describe ' find("input.datepicker").click select_dates_from_daterangepicker(from, to) + page.find('.filter-actions .button.icon-search').click expect(page).to have_selector "tr#li_#{li1.id}" expect(page).to have_selector "tr#li_#{li2.id}" @@ -615,6 +630,7 @@ describe ' accept_confirm "Unsaved changes exist and will be lost if you continue." do find("input.datepicker").click select_dates_from_daterangepicker(today - 9.days, today) + page.find('.filter-actions .button.icon-search').click end # daterange picker should have changed expect(find("input.datepicker").value).to eq "#{today.prev_day(9).strftime('%F')} to #{today.strftime('%F')}" @@ -629,6 +645,7 @@ describe ' dismiss_confirm "Unsaved changes exist and will be lost if you continue." do find("input.datepicker").click select_dates_from_daterangepicker(today - 9.days, today) + page.find('.filter-actions .button.icon-search').click end # daterange picker shouldn't have changed expect(find("input.datepicker").value).to eq previousdaterangestring From e971f466116020b77670ffa826edc59be765c6fd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 8 Dec 2022 12:04:22 +0100 Subject: [PATCH 6/9] Change behavior: dates shouldn't have changed Seems like more coherent with the new behavior (ie. don't load orders on filters changes but on click on "Filter Results" button) --- spec/system/admin/bulk_order_management_spec.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/system/admin/bulk_order_management_spec.rb b/spec/system/admin/bulk_order_management_spec.rb index 3a078fdf85..2ee7eba4e9 100644 --- a/spec/system/admin/bulk_order_management_spec.rb +++ b/spec/system/admin/bulk_order_management_spec.rb @@ -647,8 +647,6 @@ describe ' select_dates_from_daterangepicker(today - 9.days, today) page.find('.filter-actions .button.icon-search').click end - # daterange picker shouldn't have changed - expect(find("input.datepicker").value).to eq previousdaterangestring expect(page).to have_selector "#save-bar" within("tr#li_#{li2.id} td.quantity") do expect(page).to have_selector "input[name=quantity].ng-dirty" From ac494f97ecb10efd0c101dfb44980bd760924048 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Wed, 14 Dec 2022 10:12:42 +0100 Subject: [PATCH 7/9] When changing order cycle selection, update date range selector value Date selector should change when selecting an order cycle in order to reflect the order cycle date range itself --- .../controllers/line_items_controller.js.coffee | 8 ++++++++ app/views/spree/admin/orders/bulk_management.html.haml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index e66d2d1333..7738ba76ab 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -60,6 +60,14 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, format = "YYYY-MM-DD HH:mm:ss Z" $scope.startDate = moment(start_date, format).format('YYYY-MM-DD') $scope.endDate = moment(end_date, format).startOf('day').format('YYYY-MM-DD') + # throw a flatpickr:change event to change the date back in the datepicker + event = new CustomEvent('flatpickr:change', { + detail: { + startDate: $scope.startDate, + endDate: $scope.endDate + } + }) + window.dispatchEvent(event) $scope.loadOrders = -> RequestMonitor.load $scope.orders = Orders.index( diff --git a/app/views/spree/admin/orders/bulk_management.html.haml b/app/views/spree/admin/orders/bulk_management.html.haml index 23a4f1364d..98fd1cfdde 100644 --- a/app/views/spree/admin/orders/bulk_management.html.haml +++ b/app/views/spree/admin/orders/bulk_management.html.haml @@ -40,7 +40,7 @@ %label{ :for => 'order_cycle_filter' } = t("admin.order_cycle") %br - %input#order_cycle_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'orderCycles', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'orderCycleFilter' } } + %input#order_cycle_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'orderCycles', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'orderCycleFilter', change: "setOrderCycleDateRange()" } } .clearfix .actions.filter-actions %a.button.icon-search{'ng-click' => 'refreshData()'} From 87ae8a40d11307d5c62e4ae963cfae796a2cde4d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Wed, 14 Dec 2022 10:13:36 +0100 Subject: [PATCH 8/9] Put date filter after the order cycle selector it's way easier to understand then that date range could change when selecting order cycle --- .../admin/orders/bulk_management.html.haml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/views/spree/admin/orders/bulk_management.html.haml b/app/views/spree/admin/orders/bulk_management.html.haml index 98fd1cfdde..afbfdfc284 100644 --- a/app/views/spree/admin/orders/bulk_management.html.haml +++ b/app/views/spree/admin/orders/bulk_management.html.haml @@ -18,14 +18,6 @@ %input.red{ type: "button", value: "Save Changes", ng: { click: "submit()", disabled: "!bulk_order_form.$dirty" } } %legend{ align: 'center'}= t(:search) %div{ :class => "sixteen columns alpha" } - .date_filter{class: "four columns"} - %label - = t("date_range") - %br - %div{ data: { controller: "flatpickr", "flatpickr-mode-value": "range", "flatpickr-default-date": "{{ [startDate, endDate] }}" } } - %input.datepicker.fullwidth{ class: "datepicker", data: { "flatpickr-target": "instance" } } - %input{ type: "text", id: 'start_date_filter', 'ng-model': "startDate", data: { "flatpickr-target": "start" }, style: "display: none;" } - %input{ type: "text", id: 'end_date_filter', 'ng-model': "endDate", data: { "flatpickr-target": "end" }, style: "display: none;" } .filter_select{ :class => "four columns" } %label{ :for => 'supplier_filter' } = t("admin.producer") @@ -41,6 +33,15 @@ = t("admin.order_cycle") %br %input#order_cycle_filter.ofn-select2.fullwidth{ type: 'number', 'min-search' => 5, data: 'orderCycles', placeholder: "#{t(:all)}", blank: "{ id: '', name: '#{t(:all)}' }", on: { selecting: "confirmRefresh" }, ng: { model: 'orderCycleFilter', change: "setOrderCycleDateRange()" } } + .date_filter{class: "four columns"} + %label + = t("date_range") + %br + %div{ data: { controller: "flatpickr", "flatpickr-mode-value": "range", "flatpickr-default-date": "{{ [startDate, endDate] }}" } } + %input.datepicker.fullwidth{ class: "datepicker", data: { "flatpickr-target": "instance" } } + %input{ type: "text", id: 'start_date_filter', 'ng-model': "startDate", data: { "flatpickr-target": "start" }, style: "display: none;" } + %input{ type: "text", id: 'end_date_filter', 'ng-model': "endDate", data: { "flatpickr-target": "end" }, style: "display: none;" } + .clearfix .actions.filter-actions %a.button.icon-search{'ng-click' => 'refreshData()'} From a0056553b0a5ac22ca37d838a82ed2ab7012fdc5 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Wed, 14 Dec 2022 10:14:54 +0100 Subject: [PATCH 9/9] Do not override date range selection when an order cycle is selected Therefor user can change date range after selecting an order cycle --- .../line_items/controllers/line_items_controller.js.coffee | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index 7738ba76ab..fcb7be17f0 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -36,9 +36,6 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.refreshData() $scope.refreshData = -> - unless !$scope.orderCycleFilter? || $scope.orderCycleFilter == '' - $scope.setOrderCycleDateRange() - $scope.formattedStartDate = moment($scope.startDate).format() $scope.formattedEndDate = moment($scope.endDate).add(1,'day').format()