Revision 525f4f88
Von Sven Schöling vor etwa 1 Monat hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
48 | 48 |
use SL::Helper::UserPreferences::DisplayPreferences; |
49 | 49 |
use SL::Helper::UserPreferences::PositionsScrollbar; |
50 | 50 |
use SL::Helper::UserPreferences::UpdatePositions; |
51 |
use SL::Helper::UserPreferences::ItemInputPosition; |
|
51 | 52 |
|
52 | 53 |
use SL::Controller::Helper::GetModels; |
53 | 54 |
|
... | ... | |
1112 | 1113 |
|
1113 | 1114 |
$self->js->run('kivi.Order.row_table_scroll_down') if !$::form->{insert_before_item_id}; |
1114 | 1115 |
|
1116 |
# alternate scroll behaviour if item input below positions and unlimited scroll height |
|
1117 |
$self->js->run('kivi.Order.scroll_page_after_row_insert', $item_id) |
|
1118 |
if 0 == SL::Helper::UserPreferences::PositionsScrollbar->new()->get_height |
|
1119 |
&& SL::Helper::UserPreferences::ItemInputPosition->new()->get_order_item_input_position |
|
1120 |
// $::instance_conf->get_order_item_input_position; |
|
1121 |
|
|
1115 | 1122 |
$self->js_redisplay_amounts_and_taxes; |
1116 | 1123 |
$self->js->render(); |
1117 | 1124 |
} |
js/kivi.Order.js | ||
---|---|---|
549 | 549 |
$('#row_table_scroll_id').scrollTop($('#row_table_scroll_id')[0].scrollHeight); |
550 | 550 |
}; |
551 | 551 |
|
552 |
ns.scroll_page_after_row_insert = function(id) { |
|
553 |
// find row height and border spacing |
|
554 |
const $id_input = $('input[name="orderitem_ids[+]"][value="'+id+'"]'); |
|
555 |
const $row = $id_input.closest('tbody'); |
|
556 |
const table = $row.closest('table')[0]; |
|
557 |
const style = getComputedStyle(table); |
|
558 |
|
|
559 |
const height = $row[0].offsetHeight + parseFloat(style.borderSpacing) || 0; |
|
560 |
|
|
561 |
// if site is scrollable and scrolling can put it where it was before: do scroll |
|
562 |
const max_scroll = document.documentElement.scrollHeight - window.innerHeight; |
|
563 |
|
|
564 |
if (window.scrollY + height <= max_scroll) { |
|
565 |
window.scrollBy(0, height) |
|
566 |
} |
|
567 |
} |
|
568 |
|
|
552 | 569 |
ns.show_longdescription_dialog = function(clicked) { |
553 | 570 |
var row = $(clicked).parents("tbody").first(); |
554 | 571 |
var position = $(row).find('[name="position"]').html(); |
Auch abrufbar als: Unified diff
Artikeleingabe unten: alternatives Scrollverhalten wenn Positionsliste ohne Scrollbereich
Wenn die Artikeleingabe unten gerendert wird, und die Positionsliste
nicht begrenzt ist, gilt jetzt folgendes Verhalten:
Wenn nach dem Einfügen der neuen Zeile die Seite scrollbar ist, und
durch scrollen die Eingabeleite auf konstanter Höhe gehalten werden
kann, dann wird so gescrollt.