diff --git a/app/controllers/invoice_controller.rb b/app/controllers/invoice_controller.rb
index 52edbc2..2291abc 100644
--- a/app/controllers/invoice_controller.rb
+++ b/app/controllers/invoice_controller.rb
@@ -26,10 +26,10 @@ class InvoiceController < ApplicationController
service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token)
# If multiple id's then pull each pdf & combine them
- if params[:item_ids]
- logger.info("Grabbing pdfs for " + params[:item_ids].join(', '))
+ if params[:invoice_ids]
+ logger.info("Grabbing pdfs for " + params[:invoice_ids].join(', '))
ref = ""
- params[:item_ids].each do |i|
+ params[:invoice_ids].each do |i|
logger.info("processing " + i)
invoice = service.fetch_by_id(i)
ref += " #{invoice.doc_number}"
diff --git a/app/views/invoices/_list.html.erb b/app/views/invoices/_list.html.erb
index a38b3db..2332277 100644
--- a/app/views/invoices/_list.html.erb
+++ b/app/views/invoices/_list.html.erb
@@ -3,13 +3,15 @@
<%= form_with(url: invoice_path, method: :get) do |form| %>
- <%= check_box_tag "select_all", "1", false, id: "select-all-batches" %>
- <%= label_tag "select-all-batches", "Select All Items" %>
+ <%= check_box_tag "select-all-invoices", "1", false, id: "select-all-invoices" %>
+ <%= label_tag "select-all-invoices", "Select All Invioces" %>
+
+
<% @customer.invoices.order(id: :desc).each do |invoice| %>
- <%= check_box_tag "item_ids[]", invoice.id, false,data: { checkbox_select_all_target: "checkbox", class: "item-checkbox" } %>
+ <%= check_box_tag "invoice_ids[]", invoice.id, false, class: "invoice-checkbox" %>
<%= link_to "##{invoice.doc_number}", invoice_path(invoice), target: :_blank %> <%= invoice.txn_date %>
<% end %>
diff --git a/assets/javascripts/checkbox_controller.js b/assets/javascripts/checkbox_controller.js
index 9bccee3..f7d298c 100644
--- a/assets/javascripts/checkbox_controller.js
+++ b/assets/javascripts/checkbox_controller.js
@@ -1,23 +1,17 @@
-document.addEventListener("turbo:load", () => {
- const selectAllBox = document.getElementById("select-all-batches");
- const checkboxes = document.querySelectorAll(".item-checkbox");
+document.addEventListener('DOMContentLoaded', () => {
+ const select_all_invoice = document.getElementById('select-all-invoices');
+ const invoices = document.querySelectorAll('.invoice-checkbox');
- if (selectAllBox) {
- selectAllBox.addEventListener("change", function() {
- checkboxes.forEach((checkbox) => {
- checkbox.checked = this.checked;
- });
- });
-
- // Optional: Uncheck "Select All" if an individual box is unchecked
- checkboxes.forEach((checkbox) => {
- checkbox.addEventListener("change", () => {
- if (!checkbox.checked) {
- selectAllBox.checked = false;
- } else if (Array.from(checkboxes).every(c => c.checked)) {
- selectAllBox.checked = true;
- }
- });
+ if (select_all_invoice) {
+ select_all_invoice.addEventListener('change', (e) => {
+ invoices.forEach(item => item.checked = e.target.checked);
});
}
+
+ invoices.forEach(item => {
+ item.addEventListener('change', () => {
+ const allChecked = Array.from(invoices).every(i => i.checked);
+ select_all_invoice.checked = allChecked;
+ });
+ });
});
\ No newline at end of file