From 0d5e5d679e849c026c4b5a0e9704fd395744a98b Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 10:24:16 -0400 Subject: [PATCH 01/26] Added route for filter_vehicles_by_customer --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 68d1c7f..660a083 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,7 +35,7 @@ resources :payments post 'qbo/webhook', :to => 'qbo#qbo_webhook' #ajax -get "update_vehicles" => 'vehicles#update_vehicles', as: 'update_vehicles' +get 'filter_vehicles_by_customer' => 'customers#filter_units_by_customer' # Nest Vehicles under customers resources :customers do From 2b90c953ba13ea3c4b4836433fcd6a9f0018c285 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 10:29:04 -0400 Subject: [PATCH 02/26] Added filter_vehicles_by_customer method --- app/controllers/customers_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/customers_controller.rb b/app/controllers/customers_controller.rb index cebe15f..7d9389d 100644 --- a/app/controllers/customers_controller.rb +++ b/app/controllers/customers_controller.rb @@ -144,6 +144,10 @@ class CustomersController < ApplicationController end end + def filter_vehicles_by_customer + @filtered_vehicles = Customer.find(customer_id: params[:selected_customer]).vehicles + end + private def only_one_non_zero?( array ) From 66d2bf4aa43e9f58eb24e4baaa243d45f039bfab Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 11:04:48 -0400 Subject: [PATCH 03/26] Create filter_vehicles_by_customerjs.erb --- app/views/filter_vehicles_by_customerjs.erb | 1 + 1 file changed, 1 insertion(+) create mode 100644 app/views/filter_vehicles_by_customerjs.erb diff --git a/app/views/filter_vehicles_by_customerjs.erb b/app/views/filter_vehicles_by_customerjs.erb new file mode 100644 index 0000000..1e7f78e --- /dev/null +++ b/app/views/filter_vehicles_by_customerjs.erb @@ -0,0 +1 @@ +$('select#customer_vehicle_id').html('<%= j options_from_collection_for_select(@filtered_vehicles, :id, :to_s) %>'); From c0d3f64d82f56f817ae731f7c8129e00e65c3079 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 11:08:14 -0400 Subject: [PATCH 04/26] Create application.js --- assets/javascripts/application.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 assets/javascripts/application.js diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js new file mode 100644 index 0000000..38bd98b --- /dev/null +++ b/assets/javascripts/application.js @@ -0,0 +1,9 @@ +$(function() { + $("select#issue_customer_id").on("change", function() { + $.ajax({ + url: "/filter_vehicles_by_customer", + type: "GET", + data: { selected_customer: $("select#issue_customer_id").val() } + }); + }); +}); From a22cbb9520566ae1c9c820cb7e0f81889c05c3f3 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 11:09:19 -0400 Subject: [PATCH 05/26] Added Javascript include for application.js --- lib/issues_form_hook_listener.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/issues_form_hook_listener.rb b/lib/issues_form_hook_listener.rb index c9c6c1a..a0b36f1 100644 --- a/lib/issues_form_hook_listener.rb +++ b/lib/issues_form_hook_listener.rb @@ -12,9 +12,7 @@ class IssuesFormHookListener < Redmine::Hook::ViewListener # Load the javascript def view_layouts_base_html_head(context = {}) - #js = javascript_include_tag 'application', :plugin => 'redmine_qbo' - #js += javascript_include_tag 'jquery/jquery-3.1.1.min', :plugin => 'redmine_qbo' - #js += javascript_include_tag 'jquery-ui-1.12.1/jquery-ui', :plugin => 'redmine_qbo' + js = javascript_include_tag 'application', :plugin => 'redmine_qbo' js = javascript_include_tag 'autocomplete-rails', :plugin => 'redmine_qbo' return js end From 0ee59704b33e23f4f2af1b2dcd41c3f3ea143587 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 12:43:25 -0400 Subject: [PATCH 06/26] Fixed Javascript includes to += --- lib/issues_form_hook_listener.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/issues_form_hook_listener.rb b/lib/issues_form_hook_listener.rb index a0b36f1..05f5cb2 100644 --- a/lib/issues_form_hook_listener.rb +++ b/lib/issues_form_hook_listener.rb @@ -13,7 +13,7 @@ class IssuesFormHookListener < Redmine::Hook::ViewListener # Load the javascript def view_layouts_base_html_head(context = {}) js = javascript_include_tag 'application', :plugin => 'redmine_qbo' - js = javascript_include_tag 'autocomplete-rails', :plugin => 'redmine_qbo' + js += javascript_include_tag 'autocomplete-rails', :plugin => 'redmine_qbo' return js end From fa37c9850028bb078620c47971003ee8aee5f963 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 12:47:08 -0400 Subject: [PATCH 07/26] Removed ID --- assets/javascripts/application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 38bd98b..388ee71 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,9 +1,9 @@ $(function() { - $("select#issue_customer_id").on("change", function() { + $("select#issue_customer").on("change", function() { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", - data: { selected_customer: $("select#issue_customer_id").val() } + data: { selected_customer: $("select#issue_customer").val() } }); }); }); From daada08ea7f52581eb637fbb7f85f9973e809819 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 12:48:43 -0400 Subject: [PATCH 08/26] Changed select to input --- assets/javascripts/application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 388ee71..483e468 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,9 +1,9 @@ $(function() { - $("select#issue_customer").on("change", function() { + $("input#issue_customer").on("change", function() { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", - data: { selected_customer: $("select#issue_customer").val() } + data: { selected_customer: $("input#issue_customer").val() } }); }); }); From 6de3ed94dc9ddf8d6afa320e94a4f6e892edecbe Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 12:59:36 -0400 Subject: [PATCH 09/26] Update and rename app/views/filter_vehicles_by_customerjs.erb to app/views/customers/filter_vehicles_by_customerjs.erb Also changed ID to select#issue_vehicles_id --- app/views/customers/filter_vehicles_by_customerjs.erb | 1 + app/views/filter_vehicles_by_customerjs.erb | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 app/views/customers/filter_vehicles_by_customerjs.erb delete mode 100644 app/views/filter_vehicles_by_customerjs.erb diff --git a/app/views/customers/filter_vehicles_by_customerjs.erb b/app/views/customers/filter_vehicles_by_customerjs.erb new file mode 100644 index 0000000..d841662 --- /dev/null +++ b/app/views/customers/filter_vehicles_by_customerjs.erb @@ -0,0 +1 @@ +$('select#issue_vehicles_id').html('<%= j options_from_collection_for_select(@filtered_vehicles, :id, :to_s) %>'); diff --git a/app/views/filter_vehicles_by_customerjs.erb b/app/views/filter_vehicles_by_customerjs.erb deleted file mode 100644 index 1e7f78e..0000000 --- a/app/views/filter_vehicles_by_customerjs.erb +++ /dev/null @@ -1 +0,0 @@ -$('select#customer_vehicle_id').html('<%= j options_from_collection_for_select(@filtered_vehicles, :id, :to_s) %>'); From aef3c453c498c5c53a59696c057e50b2182bd86d Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 13:04:50 -0400 Subject: [PATCH 10/26] Do not list all vehicles without customer --- lib/issues_form_hook_listener.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/issues_form_hook_listener.rb b/lib/issues_form_hook_listener.rb index 05f5cb2..fafa9e4 100644 --- a/lib/issues_form_hook_listener.rb +++ b/lib/issues_form_hook_listener.rb @@ -37,8 +37,6 @@ class IssuesFormHookListener < Redmine::Hook::ViewListener if context[:issue].customer vehicles = customer.vehicles.pluck(:name, :id).sort! - else - vehicles = Vehicle.all.order(:name).pluck(:name, :id) end vehicle = f.select :vehicles_id, vehicles, :selected => selected_vehicle, include_blank: true From b71bba473cbb4080e305da803419f685bda1bb04 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 13:09:15 -0400 Subject: [PATCH 11/26] Provide empty list --- lib/issues_form_hook_listener.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/issues_form_hook_listener.rb b/lib/issues_form_hook_listener.rb index fafa9e4..166d166 100644 --- a/lib/issues_form_hook_listener.rb +++ b/lib/issues_form_hook_listener.rb @@ -36,7 +36,9 @@ class IssuesFormHookListener < Redmine::Hook::ViewListener select_estimate = f.select :qbo_estimate_id, QboEstimate.all.pluck(:doc_number, :id).sort! {|x, y| y <=> x}, :selected => selected_estimate, include_blank: true if context[:issue].customer - vehicles = customer.vehicles.pluck(:name, :id).sort! + vehicles = customer.vehicles.pluck(:name, :id).sort! + else + vehicles = [nil].compact end vehicle = f.select :vehicles_id, vehicles, :selected => selected_vehicle, include_blank: true From 504b9b93e4708038dcdcb3ea473b8831584d59d9 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 13:11:19 -0400 Subject: [PATCH 12/26] Removed { --- assets/javascripts/application.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 483e468..d86f8e3 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,6 +1,6 @@ $(function() { $("input#issue_customer").on("change", function() { - $.ajax({ + $.ajax( url: "/filter_vehicles_by_customer", type: "GET", data: { selected_customer: $("input#issue_customer").val() } From 66781f0625d378fc7f5fe9263b0751ea6523583c Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 13:12:29 -0400 Subject: [PATCH 13/26] Update application.js --- assets/javascripts/application.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index d86f8e3..483e468 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,6 +1,6 @@ $(function() { $("input#issue_customer").on("change", function() { - $.ajax( + $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", data: { selected_customer: $("input#issue_customer").val() } From 545960e676a468aaea25b82c15748221a6eb05c1 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:28:53 -0400 Subject: [PATCH 14/26] Call autocomplete instead --- assets/javascripts/application.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 483e468..db4b57b 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,5 +1,6 @@ $(function() { - $("input#issue_customer").on("change", function() { + $("input#issue_customer").autocomplete({ + source: function (request, response) { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", From fed22822128c69e17fab692406640f6ee867e5b4 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:37:06 -0400 Subject: [PATCH 15/26] Added debug --- assets/javascripts/application.js | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index db4b57b..e332dd3 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,5 +1,6 @@ $(function() { $("input#issue_customer").autocomplete({ + console.log("input#issue_customer.autocomplete"); source: function (request, response) { $.ajax({ url: "/filter_vehicles_by_customer", From ae0abae3336b3eb2feab35f45d69e98948d579c2 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:48:52 -0400 Subject: [PATCH 16/26] Update application.js --- assets/javascripts/application.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index e332dd3..c84515a 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,11 +1,8 @@ $(function() { - $("input#issue_customer").autocomplete({ - console.log("input#issue_customer.autocomplete"); - source: function (request, response) { - $.ajax({ - url: "/filter_vehicles_by_customer", - type: "GET", - data: { selected_customer: $("input#issue_customer").val() } - }); + $("input#issue_customer").autocomplete({ + console.log("input#issue_customer.autocomplete"); + source: function (request, response) { + $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", data: { selected_customer: $("input#issue_customer").val() } }); }); + }); }); From c725c2774c5ff7c91ed8e924f03e2baa70f0546a Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:50:21 -0400 Subject: [PATCH 17/26] Update application.js --- assets/javascripts/application.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index c84515a..8d317e2 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,6 +1,5 @@ $(function() { - $("input#issue_customer").autocomplete({ - console.log("input#issue_customer.autocomplete"); + $("input#issue_customer").autocomplete({ source: function (request, response) { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", data: { selected_customer: $("input#issue_customer").val() } }); }); From 807d6643f4cfb82629540b9db901d23d5d92a405 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:52:38 -0400 Subject: [PATCH 18/26] Update application.js --- assets/javascripts/application.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 8d317e2..3e5b6d2 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,7 +1,13 @@ $(function() { $("input#issue_customer").autocomplete({ source: function (request, response) { - $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", data: { selected_customer: $("input#issue_customer").val() } }); + $.ajax({ + url: "/filter_vehicles_by_customer", + type: "GET", + data: { + selected_customer: $("input#issue_customer").val() + } + }); }); }); }); From d22a6303cdeabc080c62d5c4ea1ea4098e32615e Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:53:47 -0400 Subject: [PATCH 19/26] Update application.js --- assets/javascripts/application.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 3e5b6d2..70e6e20 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -5,7 +5,7 @@ $(function() { url: "/filter_vehicles_by_customer", type: "GET", data: { - selected_customer: $("input#issue_customer").val() + selected_customer: $("input#issue_customer").val(); } }); }); From 8b21b0ff75a2722042a12084c771ccbbf8303967 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:54:47 -0400 Subject: [PATCH 20/26] Update application.js --- assets/javascripts/application.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 70e6e20..d40a09e 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -4,9 +4,7 @@ $(function() { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", - data: { - selected_customer: $("input#issue_customer").val(); - } + data: { selected_customer: $("input#issue_customer").val() } }); }); }); From 6a74baff5ec9d7054140a80377cf345260dbad62 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 18:56:44 -0400 Subject: [PATCH 21/26] Update application.js --- assets/javascripts/application.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index d40a09e..81f6684 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -6,6 +6,6 @@ $(function() { type: "GET", data: { selected_customer: $("input#issue_customer").val() } }); - }); + } }); }); From 853b7ad804e9fae227f7fe0664d51ecafd69de51 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 21:27:15 -0400 Subject: [PATCH 22/26] Rename filter_vehicles_by_customerjs.erb to filter_vehicles_by_customer.js.erb --- ...icles_by_customerjs.erb => filter_vehicles_by_customer.js.erb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/views/customers/{filter_vehicles_by_customerjs.erb => filter_vehicles_by_customer.js.erb} (100%) diff --git a/app/views/customers/filter_vehicles_by_customerjs.erb b/app/views/customers/filter_vehicles_by_customer.js.erb similarity index 100% rename from app/views/customers/filter_vehicles_by_customerjs.erb rename to app/views/customers/filter_vehicles_by_customer.js.erb From 48b6df0cef219a77f935adb09763ed3ef9d6fe0a Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 21:34:04 -0400 Subject: [PATCH 23/26] Update application.js --- assets/javascripts/application.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 81f6684..832e09c 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,11 +1,9 @@ $(function() { - $("input#issue_customer").autocomplete({ - source: function (request, response) { - $.ajax({ - url: "/filter_vehicles_by_customer", - type: "GET", - data: { selected_customer: $("input#issue_customer").val() } - }); - } + $("input#issue_customer").on("change", function() { + $.ajax({ + url: "/filter_vehicles_by_customer", + type: "GET", + data: { selected_customer: $("input#issue_customer").val() } + }); }); }); From 8af97072fb175fa7234db0d90af6245624596cb6 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 21:55:07 -0400 Subject: [PATCH 24/26] Fixed filter_vehicles_by_customer method --- app/controllers/customers_controller.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/controllers/customers_controller.rb b/app/controllers/customers_controller.rb index 7d9389d..409b8b2 100644 --- a/app/controllers/customers_controller.rb +++ b/app/controllers/customers_controller.rb @@ -34,10 +34,8 @@ class CustomersController < ApplicationController autocomplete :customer, :name, :full => false, :extra_data => [:id] - def autocomplete_customer_vehicles - customer = Customer.find_by_id(params[:term]) - items = customer.vehicles if customer - render :json => items.to_json if items + def filter_vehicles_by_customer + @filtered_vehicles = Vehicle.all.where(customer_id: params[:selected_customer]) end # display a list of all customers @@ -144,10 +142,6 @@ class CustomersController < ApplicationController end end - def filter_vehicles_by_customer - @filtered_vehicles = Customer.find(customer_id: params[:selected_customer]).vehicles - end - private def only_one_non_zero?( array ) From 6597c5a13c3ed70828f95766618b0b07e1796c2e Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 22:03:25 -0400 Subject: [PATCH 25/26] Update application.js --- assets/javascripts/application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/javascripts/application.js b/assets/javascripts/application.js index 832e09c..09a670c 100644 --- a/assets/javascripts/application.js +++ b/assets/javascripts/application.js @@ -1,9 +1,9 @@ $(function() { - $("input#issue_customer").on("change", function() { + $("input#issue_customer_id").on("change", function() { $.ajax({ url: "/filter_vehicles_by_customer", type: "GET", - data: { selected_customer: $("input#issue_customer").val() } + data: { selected_customer: $("input#issue_customer_id").val() } }); }); }); From 57ef1ac5a1f941e839d394776ec9d46db1e68838 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Wed, 22 Mar 2017 22:05:33 -0400 Subject: [PATCH 26/26] Fixed Typo --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 660a083..21aa526 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,7 +35,7 @@ resources :payments post 'qbo/webhook', :to => 'qbo#qbo_webhook' #ajax -get 'filter_vehicles_by_customer' => 'customers#filter_units_by_customer' +get 'filter_vehicles_by_customer' => 'customers#filter_vehicles_by_customer' # Nest Vehicles under customers resources :customers do