Revision d8a1906b
Von Bernd Bleßmann vor etwa 8 Jahren hinzugefügt
templates/webpages/order/tabs/basic_data.html | ||
---|---|---|
447 | 447 |
$('#row_table_scroll_id').scrollTop($('#row_table_scroll_id')[0].scrollHeight); |
448 | 448 |
} |
449 | 449 |
|
450 |
function row_set_keyboard_events_by_id(item_id) { |
|
451 |
var row = $('#item_' + item_id).parents("tbody").first(); |
|
452 |
|
|
453 |
row_set_keyboard_events(row); |
|
454 |
} |
|
455 |
|
|
456 |
function row_set_keyboard_events(rows) { |
|
457 |
$(rows).keydown(function(event) { |
|
458 |
if(event.keyCode == 40 && event.shiftKey == true) { |
|
459 |
// shift arrow down |
|
460 |
event.preventDefault(); |
|
461 |
var row = $(event.target).parents(".row_entry").first(); |
|
462 |
$(row).children().not(':first').show(); |
|
463 |
return false; |
|
464 |
} |
|
465 |
if(event.keyCode == 38 && event.shiftKey == true) { |
|
466 |
// shift arrow up |
|
467 |
event.preventDefault(); |
|
468 |
var row = $(event.target).parents(".row_entry").first(); |
|
469 |
$(row).children().not(':first').hide(); |
|
470 |
return false; |
|
471 |
} |
|
472 |
}); |
|
473 |
|
|
474 |
$(rows).dblclick(function(event) { |
|
475 |
event.preventDefault(); |
|
476 |
var row = $(event.target).parents(".row_entry").first(); |
|
477 |
$(row).children().not(':first').toggle(); |
|
478 |
return false; |
|
479 |
}); |
|
480 |
} |
|
481 |
|
|
482 |
function set_unit_change_with_oldval_by_id(item_id) { |
|
483 |
var row = $('#item_' + item_id).parents("tbody").first(); |
|
484 |
var select_elt = $(row).find('[name="order.orderitems[].unit"]'); |
|
485 |
|
|
486 |
set_unit_change_with_oldval(select_elt); |
|
487 |
} |
|
488 |
|
|
489 |
function set_unit_change_with_oldval(selects) { |
|
490 |
selects.each(function(idx,elt) { |
|
491 |
$(elt).data('oldval', $(elt).val()); |
|
492 |
}); |
|
493 |
|
|
494 |
selects.change(unit_change); |
|
495 |
} |
|
496 |
|
|
497 | 450 |
var email_dialog; |
498 | 451 |
|
499 | 452 |
function show_email_dialog(html) { |
... | ... | |
604 | 557 |
kivi.SalesPurchase.edit_longdescription_with_params(params); |
605 | 558 |
} |
606 | 559 |
|
560 |
function init_row_handlers() { |
|
561 |
kivi.run_once_for('.recalc', 'on_change_recalc', function(elt) { |
|
562 |
$(elt).change(recalc_amounts_and_taxes); |
|
563 |
}); |
|
564 |
|
|
565 |
kivi.run_once_for('.reformat_number', 'on_change_reformat', function(elt) { |
|
566 |
$(elt).change(reformat_number); |
|
567 |
}); |
|
568 |
|
|
569 |
kivi.run_once_for('.unitselect', 'on_change_unit_with_oldval', function(elt) { |
|
570 |
$(elt).data('oldval', $(elt).val()); |
|
571 |
$(elt).change(unit_change); |
|
572 |
}); |
|
573 |
|
|
574 |
kivi.run_once_for('.row_entry', 'on_kbd_click_show_hide', function(elt) { |
|
575 |
$(elt).keydown(function(event) { |
|
576 |
if(event.keyCode == 40 && event.shiftKey == true) { |
|
577 |
// shift arrow down |
|
578 |
event.preventDefault(); |
|
579 |
var row = $(event.target).parents(".row_entry").first(); |
|
580 |
$(row).children().not(':first').show(); |
|
581 |
return false; |
|
582 |
} |
|
583 |
if(event.keyCode == 38 && event.shiftKey == true) { |
|
584 |
// shift arrow up |
|
585 |
event.preventDefault(); |
|
586 |
var row = $(event.target).parents(".row_entry").first(); |
|
587 |
$(row).children().not(':first').hide(); |
|
588 |
return false; |
|
589 |
} |
|
590 |
}); |
|
591 |
$(elt).dblclick(function(event) { |
|
592 |
event.preventDefault(); |
|
593 |
var row = $(event.target).parents(".row_entry").first(); |
|
594 |
$(row).children().not(':first').toggle(); |
|
595 |
return false; |
|
596 |
}); |
|
597 |
}); |
|
598 |
} |
|
599 |
|
|
600 |
|
|
607 | 601 |
$(function(){ |
608 | 602 |
$('#order_[%- cv_id %]').change(reload_cv_dependend_selections); |
609 | 603 |
[%- IF SELF.cv == 'customer' %] |
... | ... | |
620 | 614 |
return false; |
621 | 615 |
} |
622 | 616 |
}); |
623 |
row_set_keyboard_events($('.row_entry')); |
|
624 |
$('.recalc').change(recalc_amounts_and_taxes); |
|
625 |
$('.reformat_number').change(reformat_number); |
|
626 |
|
|
627 |
set_unit_change_with_oldval($('.unitselect')); |
|
617 |
init_row_handlers(); |
|
628 | 618 |
}); |
629 | 619 |
|
630 | 620 |
$('#row_table_id').on('sortstop', function(event, ui) { |
Auch abrufbar als: Unified diff
Auftrags-Controller: event bindings nicht mehrfach hinzufügen.
Dazu event handler für die Positions-Zeilen mit run_once_for registrieren und
in eine eigene Funktion init_row_handlers() ausgelagert. Damit kann
init_row_handlers() gefahrlos immer nach dem Hinzufügen neuer Positionen
aufgerufen werden, ohne einen Handler mehrmals zu registrieren.