Use html data attributes

This commit is contained in:
2026-02-09 20:52:27 -05:00
parent f0c0a42c96
commit 8944e92ffc
3 changed files with 14 additions and 14 deletions

View File

@@ -2,7 +2,7 @@
<% estimates.sort.reverse.each do |estimate| %> <% estimates.sort.reverse.each do |estimate| %>
<div class="row"> <div class="row">
<%= check_box_tag "estimate_ids[]", estimate.id, false, onchange: "updateLink()", class: "estimate-checkbox" %> <%= check_box_tag "estimate_ids[]", estimate.id, false, onchange: "updateLink()", data: { id: estimate.id, doc: estimate.doc_number }, class: "estimate-checkbox" %>
<b><%= link_to "##{estimate.doc_number}", estimate_path(estimate), target: :_blank %></b> <%= estimate.txn_date %> <b><%= link_to "##{estimate.doc_number}", estimate_path(estimate), target: :_blank %></b> <%= estimate.txn_date %>
</div> </div>
<% end %> <% end %>

View File

@@ -12,7 +12,7 @@
<% invoices.sort.reverse.each do |invoice| %> <% invoices.sort.reverse.each do |invoice| %>
<div class="row"> <div class="row">
<%= check_box_tag "invoice_ids[]", invoice.id, false, onchange: "updateLink()", class: "invoice-checkbox" if invoices.count > 1 %> <%= check_box_tag "invoice_ids[]", invoice.id, false, onchange: "updateLink()", data: { id: invoice.id, doc: invoice.doc_number }, class: "invoice-checkbox" if invoices.count > 1 %>
<b><%= link_to "##{invoice.doc_number}", invoice_path(invoice), target: :_blank %></b> <%= invoice.txn_date %> <b><%= link_to "##{invoice.doc_number}", invoice_path(invoice), target: :_blank %></b> <%= invoice.txn_date %>
</div> </div>
<% end %> <% end %>

View File

@@ -8,22 +8,22 @@ function getSelectedDocs() {
const invoices = document.querySelectorAll('.invoice-checkbox'); const invoices = document.querySelectorAll('.invoice-checkbox');
const estimates = document.querySelectorAll('.estimate-checkbox'); const estimates = document.querySelectorAll('.estimate-checkbox');
const invoiceIds = Array.from(invoices)
.filter(checkbox => checkbox.checked)
.map(checkbox => checkbox.value);
const estimateIds = Array.from(estimates)
.filter(checkbox => checkbox.checked)
.map(checkbox => checkbox.value);
let output = ''; let output = '';
for (const value of invoiceIds) { for (const i of invoices) {
output += `%0A<a href="${window.location.origin}/invoices/${value}">Invoice:%20${value}</a>%0A`; if (i.checked) {
console.log(i.value);
console.log(i.dataset.doc);
output += `%0A<a href="${window.location.origin}/invoices/${i.dataset.id}">Invoice:%20${i.dataset.doc}</a>%0A`;
}
} }
for (const value of estimateIds) { for (const e of estimates) {
output += `%0A<a href="${window.location.origin}/estimates/${value}">Estimate:%20${value}</a>%0A`; if (e.checked) {
console.log(e.value);
console.log(e.dataset.doc);
output += `%0A<a href="${window.location.origin}/estimates/${e.value}">Estimate:%20${e.dataset.doc}</a>%0A`;
}
} }
// You can return the array or use it as needed // You can return the array or use it as needed