Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision feb6f563

Von Bernd Bleßmann vor mehr als 2 Jahren hinzugefügt

Rechnungsmaske: "Drucken und Buchen" und Browser-Zurück entschärfen

Wenn nach dem "Drucken und Buchen" in der Rechnungsmaske eine andere Maske
aufgerufen wird und dann mit "Browser-Zurück" wieder zur Rechnungsmaske
zurückgegangen wird, dann wird im günstigsten Fall erneut gedruckt. Es ist
aber auch schon passiert (je nach Browser-Version?), dass eine zweite Rechnung
gebucht wurde.
Nun wird durch eine Hidden-Variable verhindert, dass der submit erneut
durchgeführt wird.

Das ist nur ein Hack. Eventuell ist es besser, das resubmit umzustellen auf:
- Druckdatei generieren
- per js zum Download anbieten und update-Triggern

Da ist aber einiges zu beachten durch die verschiedenen Ausgabetypen (media)
und $form->parse_template muss so umgestellt werden, dass es die Datei nicht
an den Browser schickt.

Unterschiede anzeigen:

templates/webpages/is/form_header.html
18 18
<input type="hidden" name="follow_up_trans_info_1" id="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
19 19
<input type="hidden" name="follow_up_rowcount" id="follow_up_rowcount" value="1">
20 20
<input type="hidden" name="lastmtime" id="lastmtime" value="[% HTML.escape(lastmtime) %]">
21
<input type="hidden" name="already_printed_flag" id="already_printed_flag" value="0">
21 22

  
22 23
<h1>[% title %]</h1>
23 24

  
......
331 332
       kivi.SalesPurchase.show_print_dialog();
332 333
       kivi.SalesPurchase.print_record();
333 334
[% ELSIF resubmit %]
334
       kivi.SalesPurchase.show_print_dialog();
335
       kivi.SalesPurchase.print_record();
335
       if ($('#already_printed_flag').val() === "0") {
336
         kivi.SalesPurchase.show_print_dialog();
337
         kivi.SalesPurchase.print_record();
338
         $('#already_printed_flag').val("1");
339
       }
336 340
[% ELSIF creditwarning != '' %]
337 341
       alert('[% 'Credit Limit exceeded!!!' | $T8 %]');
338 342
[% ELSE %]

Auch abrufbar als: Unified diff