PackagePackagetypeA library you install and call yourself.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

openui5-paginator

A UI5 custom control that pages through large data in a table, for backends that serve pages over REST rather than OData.

The README says an earlier openUI5 version included a paginator and removed it around 1.45, and that the maintainers need one for the REST-based server API of their sysHUB product. The control goes in a table footer as lab:Paginator from the syshub.controls library, bound to currentPage, entriesAbsolute, entriesPerPage and showSpinner, and raises page and entriesPerPageChanged events carrying the offset and limit for the next request. It does not fetch anything: the application sends those values to its own endpoint, which the README expects to accept offset, limit, orderBy and search parameters. The paginator stays hidden while entriesAbsolute is 0, so the count is set after each query, and the README lists a known inconsistency in the page calculation when entries are deleted while paging.

Facts

Latestv1.0.0ReleasedLast pushLicenceApache-2.0

Where it sits

Lives in
Provides
Custom controls and librariesUI5Custom controls and librariescapabilityExtending the set of controls an app is built from: a control of its own, a wrapper around a third-party widget, or an icon font registered with the framework, packaged so another app can reuse it. Distinct from [Web Components interop](capability:ui5-web-components), which brings in standard custom elements, and from [generators](capability:generators), which scaffold a control project rather than being one.

Who is behind it

Wolfgang HaagWolfgang HaagPersonMaintains this
In the atlas: maintains 1, contributes to 1
@wolfe100
maintainer

Before choosing this

Signals

ActivityQuietRelease and repository quiet for 50 months

Both observable publication channels have been quiet for at least 24 full months. This may be normal for stable software; check whether its current state still fits your use.

What it declares

Every artifact

Type
Package
Origin
Independently maintained

As a package

Where it runs
Inside its host
Distributed through
npm

Connections1

Install

npm add openui5-paginator

Derived from the package name. No recipe recorded; the README has the configuration.

README

quoted from wolfe100/openui5-paginator under Apache-2.0, read
wolfe100/openui5-paginator/README.mdOn GitHub

openui5-paginator

openui5-paginator is a UI5 Custom Control that allow you to handle large data in a Table. Navigation is done via paging.

Pagiantor preview

Motivation

We use openUI5 on the client side as the base technology for our product "sysHUB". On the server side, we are using our REST-based API. The main thing is that we are working with large table entries. The base technology of openUI5 and sapUI5 is oData V4 to get data from the backend. In our case, this is not a good choice because we are providing some REST-Services for our customers, and we can not implement REST-Services and oData Services to the same time in our product. In an earlier version of openUI5, a paginator was included, but it was removed since 1.45 (I think). We are going on to develop the paginator to work with all newer versions and extend it with some valuable features.

Demo

If you check out this project, there is a "demo" app to see how the paginator works. We are using WebStorm as a development IDE. Configure it as a "JavaScript Debug" run configuration to debug the demo app.

You can also use this link to see a working example: openui5-paginator-demo

Usage the control

Download

Check out the GIT-Project or download it as ZIP. Furthermore the package is deployed also in NPM

npm install openui5-paginator
Configure manifest.json

Add the library to sap.ui5 dependencies list and configure the resourceRoots to point where you uploaded the custom library. In this case it is the "thirdparty" folder in your project. This folder must be in the webapp root location.

"sap.ui5": {
    ...
	"dependencies": {
		"minUI5Version": "1.102.2",
		"libs": {
    		...
			"syshub.controls": {}
		}
	},
	"resourceRoots": {
		"syshub.controls": "./thirdparty/syshub/controls/"
	}
}
Add the custom control inside an XML View

First of all add the namespace to the View

xmlns:lab="syshub.controls"
xmlns:t="sap.ui.table"

And then you can simply add the Paginator custom control to your "sap.ui.table". As followed you can see some data bindings.

<t:Table ...>
    <t:footer>
        <lab:Paginator id="idPaginator"
                       currentPage="{modelEntriesMetadata>/currentPage}"
                       entriesAbsolute="{modelEntriesMetadata>/entriesAbsolute}"
                       entriesPerPage="{modelEntriesMetadata>/entriesPerPage}"
                       numberOfVisiblePages="10"
                       showGoto="true"
                       entriesPerPageVisible = "true"
                       showSpinner="{modelEntriesMetadata>/showSpinner}"
                       page="onPage"
                       entriesPerPageChanged = "onEntriesPerPageChanged">
        </lab:Paginator>
    <t:footer>
    <t:columns>
        ...
    </t:columns>
</t:Table>

Parameters

NameTypeDefaultDescription
currentPagenumber0The current selected page or the page to set
entriesAbsolutenumber0The absolute count of the entires given by the query
showGotobooleanfalseShows the direct GOTO input field
entriesPerPageint10How much entries should shown of each page
numberOfVisiblePagesnumber10How much pages shown which are directly selectable
showSpinnerbooleanfalseShows a spinner to give the user information to get data from the server

Events

entriesPerPageChanged
ParameterTypeDescription
offsetintThe offset where to start the new query
limitintThe new limit is how many entries must be get
page
ParameterTypeDescription
srcPageintThe page which is the current one before the page event is fired (and another page is displayed)
targetPageintThe page that shall be displayed next after the page event is fired
offsetintThe offset where to start the new query
limitintThe limit how many entries must get
typesyshub.controls.PaginatorEventProvides the values 'First', 'Last', 'Next', 'Previous', 'Goto'. The event parameter informs the application how the user navigated to the new page: Whether the 'Next' button was used, or another button, or whether the page was directly selected

Methods

NameDescription
setCurrentPage(PageNumber)Sets the current page
getCurrentPageGets the current selected page
setEntriesAbsolute(AbsoluteQueryEntries)Sets the absolute query entries to compute the pages
getEntriesAbsolute(AbsoluteQueryEntries)Gets the absolute entries of the current query
setShowGoto(boolean value)If true, the show "GOTO" input field is shown
getShowGoto()Return the status of the showGoto property
setEntriesPerPage(Number)Set the count of the page entries are shown
GetEntriesPerPage()Returns the number of page entries shown
SetNumberOfVisiblePages(Number)Set the count of visible pages are shown
getNumberOfVisiblePages()Gets the number of visible pages shown
setShowSpinner(boolean value)If true a spinner is shown, to give the user a feedback
getShowSpinner()Gets the status of the spinner

Build

If you would like to extend and customize the control, you can easily do that but re-building the code with just a simple ui5 cli commands:

npm install
ui5 build
ui5 startApp

How to work with the control

It is important to have a REST-Service with the following parameters.

eg: /webapi/v3/data/list?offset=0&limit=20&orderBy=id.desc&search=id<1000

We use RSQL-Queries in the orderBy and search criteria.

The first query has no "id" inside the search criteria. This means we got a snapshot view of the table and got in the response header the "abs_count" and the "highest_id". All queries while paging limited the query in the search criteria with the highest_id. The reason for this is, that growing up the table with new entries will destroy paging if we don't have the highest_id in the search criteria.

Known issues

One problem which we don't found a solution is removing of entries while paging. This means, if another instance removes entries which are included in the query, the result is different, regarding the abs_count and the computing of paging can run in some problems but we live with this limitation. One idear can be, if while paing the abs_count changed the current page can be set to the first one.

Please have a look of the DataService.js and the mockserver.js to understand how paging is working.

Important

If the value "entriesAbsolute" = 0, the paginator is not shown. Be sure, to set this value after a query.

Credits

Wolfgang Haag

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details

Apache-2.0, read

History

Latest

v1.0.0

0downloads per week, npm
Weekly downloads for openui5-paginator26 complete calendar weeks from 2026-04-27 to 2026-10-25; the latest total is 0.27 Apr – 3 May: 34 May – 10 May: 211 May – 17 May: 318 May – 24 May: 625 May – 31 May: 121 Jun – 7 Jun: 88 Jun – 14 Jun: 2415 Jun – 21 Jun: 2822 Jun – 28 Jun: 1529 Jun – 5 Jul: 206 Jul – 12 Jul: 913 Jul – 19 Jul: 220 Jul – 26 Jul: 727 Jul – 2 Aug: 43 Aug – 9 Aug: 310 Aug – 16 Aug: 317 Aug – 23 Aug: 024 Aug – 30 Aug: 831 Aug – 6 Sept: 107 Sept – 13 Sept: 1014 Sept – 20 Sept: 2221 Sept – 27 Sept: 2428 Sept – 4 Oct: 175 Oct – 11 Oct: 012 Oct – 18 Oct: 119 Oct – 25 Oct: 0
Custom controls and libraries
  1. custom-controlsThirteen custom UI5 controls for abap2UI5 apps
  2. @abap2ui5/embed-controlUI5 custom control that runs an abap2UI5 app inside a host app
  3. ui5-cc-timerbuttonUI5 control library with a button that delays enabling or showing
  4. ui5-control-generatorCommand line generator of UI5 custom controls from html
  5. @marianfoo/ui5-cc-dayjsUI5 custom control formatting dates with Day.js
  6. ui5-cc-pdfviewerUI5 custom control rendering a PDF from a base64 data URI
  7. openui5-passwordOpenUI5 password input with strength scoring and rules
  8. openui5-tourOpenUI5 control library for guided app tours
  9. ui5-lib-visualizationUI5 control library wrapping C3.js charts as ui5.viz controls
  10. UI5XUI5 library of eight composite controls under the ui5x namespace
  11. openui5-cameraUI5 control for live camera preview and PNG capture
  12. ui5-cc-chartUI5 custom control wrapping Chart.js for line charts
  13. ui5-cc-mdUI5 custom control rendering Markdown to HTML
  14. ui5-fontawesome-libUI5 library adding Font Awesome icon sets to sap-icon://

Details

Sources4
Added by handdiscovered herechecked
npm registry, openui5-paginatorversion, releases, installschecked
github.com/git+https://github.com/wolfe100/openui5-paginator.gittree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
latestv1.0.0
first release
releases and cadence1
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainui5, ui-and-frontend-bridge
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:wolfe100-openui5-paginator
JSON
/artifacts/wolfe100-openui5-paginator.json
MCP
Connecting an agent