diff --git a/ajax/brick/infinite/row.php b/ajax/brick/infinite/row.php new file mode 100644 index 0000000000000000000000000000000000000000..be1a4f9f1f482dce47954bb08980f1582233ad03 --- /dev/null +++ b/ajax/brick/infinite/row.php @@ -0,0 +1,38 @@ +<?php + +/** + * This file contains package_quiqqer_bricks_ajax_brick_infinite_row + */ + +use QUI\Bricks\Controls\Children\Infinite; + +/** + * Return the children of the infinite brick row + * + * @param string|integer $brickId - Brick-ID + * @param string|integer $row - Row number + */ +QUI::$Ajax->registerFunction( + 'package_quiqqer_bricks_ajax_brick_infinite_row', + function ($brickId, $brickUID, $row) { + $BrickManager = QUI\Bricks\Manager::init(); + + if (isset($brickUID) && !empty($brickUID)) { + $Brick = $BrickManager->getBrickById($brickUID); + } else { + $Brick = $BrickManager->getBrickById($brickId); + } + + $Engine = QUI::getTemplateManager()->getEngine(); + $Infinite = new Infinite($Brick->getAttributes()); + + $Engine->assign(array( + 'children' => $Infinite->getRow((int)$row), + 'row' => (int)$row + )); + + return $Engine->fetch($Infinite->getRowTemplate()); + }, + array('brickId', 'brickUID', 'row'), + false +); diff --git a/bin/Controls/Children/Infinite.js b/bin/Controls/Children/Infinite.js index 988ba91cbe116c1d60e1f05b7b1a0bf5d145cb26..2914b15e8b854829aa608c8a4dbd45c1bf6c571a 100644 --- a/bin/Controls/Children/Infinite.js +++ b/bin/Controls/Children/Infinite.js @@ -82,6 +82,7 @@ define('package/quiqqer/bricks/bin/Controls/Children/Infinite', [ self.$More.set('html', '<span class="fa fa-spinner fa-spin"></span>'); self.$More.setStyle('color', null); + self.$More.addClass('loading'); self.$getNextChildren().then(function (result) { var Container = new Element('div', { @@ -137,7 +138,13 @@ define('package/quiqqer/bricks/bin/Controls/Children/Infinite', [ } }); - new Fx.Scroll(window.document).toElement(Row).chain(function () { + self.$More.removeClass('loading'); + + new Fx.Scroll(window.document).start( + 0, + Row.getPosition().y - 200 + ).chain(function () { + self.$More.focus(); resolve(); }); }