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) {
|
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.