Revision 525f4f88
Von Sven Schöling vor 5 Monaten hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
use SL::Helper::UserPreferences::DisplayPreferences;
|
||
use SL::Helper::UserPreferences::PositionsScrollbar;
|
||
use SL::Helper::UserPreferences::UpdatePositions;
|
||
use SL::Helper::UserPreferences::ItemInputPosition;
|
||
|
||
use SL::Controller::Helper::GetModels;
|
||
|
||
... | ... | |
|
||
$self->js->run('kivi.Order.row_table_scroll_down') if !$::form->{insert_before_item_id};
|
||
|
||
# alternate scroll behaviour if item input below positions and unlimited scroll height
|
||
$self->js->run('kivi.Order.scroll_page_after_row_insert', $item_id)
|
||
if 0 == SL::Helper::UserPreferences::PositionsScrollbar->new()->get_height
|
||
&& SL::Helper::UserPreferences::ItemInputPosition->new()->get_order_item_input_position
|
||
// $::instance_conf->get_order_item_input_position;
|
||
|
||
$self->js_redisplay_amounts_and_taxes;
|
||
$self->js->render();
|
||
}
|
js/kivi.Order.js | ||
---|---|---|
$('#row_table_scroll_id').scrollTop($('#row_table_scroll_id')[0].scrollHeight);
|
||
};
|
||
|
||
ns.scroll_page_after_row_insert = function(id) {
|
||
// find row height and border spacing
|
||
const $id_input = $('input[name="orderitem_ids[+]"][value="'+id+'"]');
|
||
const $row = $id_input.closest('tbody');
|
||
const table = $row.closest('table')[0];
|
||
const style = getComputedStyle(table);
|
||
|
||
const height = $row[0].offsetHeight + parseFloat(style.borderSpacing) || 0;
|
||
|
||
// if site is scrollable and scrolling can put it where it was before: do scroll
|
||
const max_scroll = document.documentElement.scrollHeight - window.innerHeight;
|
||
|
||
if (window.scrollY + height <= max_scroll) {
|
||
window.scrollBy(0, height)
|
||
}
|
||
}
|
||
|
||
ns.show_longdescription_dialog = function(clicked) {
|
||
var row = $(clicked).parents("tbody").first();
|
||
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.