Dialogbuchen: Bug in updateTaxes behoben und Code vereinfacht
authorG. Richardson <information@kivitendo-premium.de>
Sat, 4 Jan 2014 19:47:51 +0000 (20:47 +0100)
committerG. Richardson <information@kivitendo-premium.de>
Mon, 6 Jan 2014 09:14:23 +0000 (10:14 +0100)
im Javascript hieß die Variable selected_index, im Template
select_index. Beide wurden umbenannt in default_tax_id.

Der Value des Konto-Dropdowns enthält Daten in der Form "accno--tax_id".

Diese beiden Information werden per JS geparsed, und reichen schon aus,
damit der der ajax-Aufruf bei Wechsel des Kontos das entsprechende
Steuerdropdown austauschen und mit der Defaultsteuer des neuen Kontos
vorbelegen kann.

templates/webpages/gl/form_header.html
templates/webpages/gl/update_tax_accounts.html

index ec17569..98bb8f0 100644 (file)
@@ -8,18 +8,15 @@ function updateTaxes(row)
 {
   var accno  = document.getElementById('accno_' + row);
   var taxkey = accno.options[accno.selectedIndex].value;
-  var reg = /--([0-9]*)/;
+  var reg = /^(.*?)--(\d*)$/;
   var found = reg.exec(taxkey);
-  var index = found[1];
-  index = parseInt(index);
-  var tax = 'taxchart_' + row;
-  var taxkeyposition = taxkey.lastIndexOf(found[0]);
-  var account = taxkey.substr(0, taxkeyposition);
+  var account = found[1];
+  var default_tax_id = found[2];
 
   $.ajax({
     url: 'gl.pl?action=get_tax_dropdown',
     data: { accno: account,
-            selected_index: index},
+            selected_tax_id: default_tax_id},
     dataType: 'html',
     success: function (new_html) {
                                 $("#taxchart_" + row).html(new_html);
index 940d34d..d3c9586 100644 (file)
@@ -1,3 +1,4 @@
+[% USE L %]
 [% FOR row = TAX_ACCOUNTS %]
-<option value='[% row.id %]--[% row.rate %]' [% IF row.id == select_index %]selected[% END %]>[% row.taxdescription %] %</option>
+<option value='[% row.id %]--[% row.rate %]'[% IF row.id == selected_tax_id%] selected[% END %]>[% row.taxdescription %] %</option>
 [% END %]