Skip to content

Commit

Permalink
Merge pull request #231 from IgniteUI/vNext
Browse files Browse the repository at this point in the history
Promote to release notes and remote paging to production
  • Loading branch information
zdrawku authored Sep 27, 2024
2 parents afba4ea + f109bc3 commit ee20d73
Show file tree
Hide file tree
Showing 5 changed files with 168 additions and 18 deletions.
36 changes: 30 additions & 6 deletions en/change-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,51 @@ _keywords: App Builder, Web App Builder, Design Systems, Design Systems UX, UI k
# App Builder - Change Log

> [!NOTE]
> Latest update was made on 25th of June, 2024.
> Latest update was made on 27th of September, 2024.
## September 2024 Release
### Features
- Guided approach to **globally fix incompatible bindings** when relevant data source changes are detected
- Configure **remote paging** on the Grid component to fetch data from the server in chunks.
- CSS Grid Layout re-parenting support. Create **layouts using CSS Grid** with template rows and columns along with CSS Flexbox.

### Maintenance updates
- Angular apps are generated using [Ignite UI for Angular `18.1.0`](https://github.com/IgniteUI/igniteui-angular/releases/tag/18.1.0).
- React apps are generated using [Ignite UI for React `18.6.1`](https://github.com/IgniteUI/igniteui-react).
- Web Component apps are generated using [Ignite UI for Web Components `4.11.1`](https://github.com/IgniteUI/igniteui-webcomponents/).
- Blazor apps are generated using [Ignite UI for Blazor `23.2.257`](https://www.infragistics.com/products/ignite-ui-blazor/blazor/components/general-changelog-dv-blazor).
- Bug fixes

## August 2024 Release
### Features
- App Builder AI-driven image and data source generation.
- Added CSS Grid Layout support.
- Set global Application size and component based size.
- Automatic background refresh of data sources upon updating your Rest API.

# June 2024 Release
## Features
### Improvements
- New data provider support - PostgreSQL (SDK and On-prem).
- New drill-down picker for collections of data sources.
- Exposed UI for Download/upload application template.

## June 2024 Release
### Features
- Design and generate your apps for **React**.
- Allow first-time visitors to use App Builder in **Guest-access mode**. Visitors can save their progress at any time by signing in with an account.

## Improvements
### Improvements
- Added two-way data binding support to **Select, Text-area and Radio-group components**.
- Get notified of **updates to Datasources** that your app depends on, and view the changes.

## Maintenance updates
### Maintenance updates
- Angular apps are generated using [Ignite UI for Angular `17.2.0`](https://github.com/IgniteUI/igniteui-angular/releases/tag/17.2.0).
- React apps are generated using [Ignite UI for React `18.6.1`](https://github.com/IgniteUI/igniteui-react).
- Web Component apps are generated using [Ignite UI for Web Components `4.9.0`](https://github.com/IgniteUI/igniteui-webcomponents/blob/4.9.0/CHANGELOG.md#490---2024-04-30).
- Blazor apps are generated using [Ignite UI for Blazor `23.2.204`](https://www.infragistics.com/products/ignite-ui-blazor/blazor/components/general-changelog-dv-blazor#232204).
- Bug fixes

## May 2024 Release
## Features
### Features
- **Update existing Datasource** to use the latest OpenAPI schema, and show differences if present.
- Set up Data-action(s) to create, update and delete rows in **Tree-grid** component.
- Update a variable based on row selection event in **Tree-grid** component.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 10 additions & 7 deletions en/sidebar-toc/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,29 @@
new: false
- name: Master-detail style apps
href: ../master-detail/master-detail.md
new: true
new: false
updated: false
items:
- name: Step-by-step App Creation examples
href: ../master-detail/step-by-step-examples.md
new: true
new: false
- name: Guide to Variables in App Builder
href: ../guide-to-variables-in-app-builder/variables-management.md
new: true
new: false
updated: false
items:
- name: Component properties binding
href: ../guide-to-variables-in-app-builder/component-properties-binding.md
new: true
new: false
- name: URL Parameters Binding
href: ../guide-to-variables-in-app-builder/url-parameters-binding.md
new: true
new: false
- name: Working with events and actions
href: ../guide-to-variables-in-app-builder/working-with-events-and-actions.md
new: true
new: false
- name: App Navigation with Route Parameters
href: ../guide-to-variables-in-app-builder/route-parameters-navigation.md
new: true
new: false
- name: Responsive Fluid Layouts
href: ../how-to/responsive-fluid-layout.md
new: false
Expand Down Expand Up @@ -93,6 +93,9 @@
- name: Grid CRUD Operations
href: ../using-data-in-your-app/crud-operations.md
new: false
- name: Grid Remote Paging
href: ../using-data-in-your-app/grid-remote-paging.md
new: true
- name: App Themes
href: ../app-themes/app-themes.md
# items:
Expand Down
112 changes: 112 additions & 0 deletions en/using-data-in-your-app/grid-remote-paging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
title: Grid Remote paging
_description: Remote paging feature allows the grid to load and display data dynamically, fetching only a portion of the data from the server as needed
_keywords: App builder, Remote Paging, Infragistics, Data Sources
---

# Grid Remote Paging
Remote paging is a feature that allows the grid to load and display data dynamically, fetching only a portion of the data from the server as needed. This results in improved performance, particularly for large datasets, by avoiding the need to fetch all records at once.

## Key Benefits of Remote Paging
- **Improved performance:** Only loads necessary data, reducing load times.
- **Scalable:** Handles large datasets efficiently.
- **User control:** Offers flexibility to developers and users in how data is presented.

## How Remote Paging Works

Remote paging divides the data into "pages" that are requested individually from a remote server. This ensures that only the necessary slice of data is loaded at a time. It can be configured for both **Grid** and **Tree Grid** components using built-in properties in the tool.

Users use a Configurator to set up everything required for remote paging to work. What is needed?
- `pageIndex` - The index of the page, which data will be fetched. If this parameter is not provided, page index defaults to 0, which fetches the first page of data.
- `pageSize` - The maximum number of records to fetch and display per page. If this parameter is not provided, all records are fetched, and total number of pages will be 1.
- `totalRecords` - Returns the total number of records available at the server. This number is required for the Paginator to calculate the total number of pages.

**User flow:**

<img class="box-shadow" src="../images/using-data-in-your-app/remote-paging-configurator-flow.png" />
<p style="text-align:center;">Configurator user flow</p>

## User Configuration

Remote paging can be implemented by developers following two approaches, depending on how the API handles data and total records count.

1. **Using a Combined Endpoint for Data and Total Record Count**
In this case, the API returns both the paged data and the total number of records in a single response.

2. **Using Separate Endpoints for Data and Total Record Count**
In this setup, two API calls are made: one to retrieve the paged data and another to get the total records count.

### Single endpoint
This is an example of supported data structure:

```
{
"items": [
{
"categoryId": 0,
"description": "string",
"name": "string"
}
],
"totalRecordsCount": 0,
"pageSize": 0,
"pageNumber": 0,
"totalPages": 0
}
```
**Steps:**
1. Hook the Grid to an endpoint that returns an Object with Items collection and Total Records Count field. Object that provides a collection of items and the Total Records Count.
2. Add Remote paging feature and select the **Remote** paging mode to load the Configuration dialog.
3. Through the Paging Configuration Dialog, select the field property that corresponds to the Total Records Count. In the example above, that would be "totalRecordsCount".
4. Through the **Paging Configuration Dialog**, specify the query param that will be used for **Page Index** and the one used for **Page Size**.
5. Click Save

**Result:**
- Two variables of type number for storing both **Page Index** and **Page Size** values are created.
- Third variable for storing of the **Grid data context** will be created. **Object type**, initialized from data request. The request Query params will be bound to the Page index and Page size variables.
- The Grid will be bound to the third variable data context result -> _result.items_ collection.
- Total records count will be bound to _result.totalRecordsCount_ field.
- Two interaction for **PerPageChanged** and **PageChange** will be automatically created.
- **PerPageChange** will have **Source** (value) set to the Page size coming from the Event context provided by the igx-paginator. **Target** variable will be the **Page Size**.
- **PageChange** will have Source (value) set to the Page index (current page) coming from the Event context provided by the igx-paginator. **Target** variable will be the **Page Index**.

**Behaviour:**
On Preview, initial load will perform only one request. Upon page change or per page value change, a new request will be made to fetch the data based on the new Page and Size values.

### Two different endpoints

**Steps:**
1. Bind the `Data` property the grid to an endpoint that expects Page and Size query params.
2. Add Remote paging feature and select the **Remote** paging mode to load the Configuration dialog.
3. Hook the totalRecordsCount to a different endpoint (different than the grid `Data` property) that returns the total records count only.
4. Through the **Paging Configuration Dialog**, specify the query param that will be used for **Page Index** and the one used for **Page Size**.
5. Click Save

**Result:**
- Two variables of type number for storing both **Page Index** and **Page Size** values are created.
- Grid data source will have query params bound to the two newly created variables.
- Third variable for storing the **Total records count** will be created. **Object type**, initialized from data request. (Note, currently AB does not support primitive result types)
- Two interaction for **PerPageChanged** and **PageChange** will be automatically created.
- **PerPageChange** will have **Source** (value) set to the Page size coming from the Event context provided by the igx-paginator. **Target** variable will be the **Page Size**.
- **PageChange** will have Source (value) set to the Page index (current page) coming from the Event context provided by the igx-paginator. **Target** variable will be the **Page Index**.

**Behaviour:**
- Upon going to Preview, initial load will perform two requests, one for the grid sliced data, and one for the total records count. After that, upon page change or per page change, only one request will be made for the Grid sliced data.

## Known limitations
When user sets up remote paging with the configurator and runs it again, the redundant variable, which is intitialized from API endpoint, will remain existing.

## Additional Resources

<div class="divider--half"></div>

* [App Builder Components](../indigo-design-app-builder-components.md)
* [App Builder Interface Overview](../interface-overview.md)
* [Single Page And Navigation](../single-page-apps-and-navigation.md)
* [App Builder Components](../indigo-design-app-builder-components.md)
* [Flex Layouts](../flex-layouts/flex-layouts.md)
* [Running Desktop App](../running-desktop-app.md)



21 changes: 16 additions & 5 deletions jp/change-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,26 @@ _language: ja
# App Builder - 変更ログ

> [!NOTE]
> 最新の更新は 2024 年 6 月 25 日に行われました。
> 最新の更新は 2024 年 8 月 26 日に行われました。
## 2024 年 8 月リリース
### 機能
- App Builder AI 駆動型画像およびデータ ソース生成。
- CSS グリッド レイアウトのサポートが追加されました。
- グローバル アプリケーション サイズとコンポーネント ベースのサイズを設定します。
- Rest API を更新すると、データ ソースが自動的にバックグラウンドで更新されます。

### 機能改善
- 新しいデータ プロバイダーのサポート - PostgreSQL (SDK およびオンプレミス)。
- データ ソースのコレクション用の新しいドリルダウン ピッカー。
- ダウンロード/アップロード アプリケーション テンプレートの UI を公開しました。

# 2024 年 6 月リリース
## 機能
## 2024 年 6 月リリース
### 機能
### 機能
- **React** 用のアプリをデザインおよび生成します。
- 初めてアクセスするユーザーが **ゲスト アクセス モード**で App Builder を使用できるようにします。訪問者はアカウントでサインインすることで、いつでも進行状況を保存できます。

## 機能改善
### 機能改善
- **Select、Text-area、Radio-group コンポーネント**に双方向データ バインディングのサポートが追加されました。
- アプリが依存する**データ ソースの更新**について通知を受け取り、変更内容を表示します。

Expand All @@ -27,7 +38,7 @@ _language: ja
- 不具合修正

## 2024 年 5 月リリース
## 機能
### 機能
- 最新の OpenAPI スキーマを使用するように**既存のデータソースを更新し**、差異がある場合はそれを表示します。
- **Tree-grid** コンポーネントの行を作成、更新、削除するためのデータ アクションの設定。
- **Tree-grid** コンポーネントの行選択イベントに基づく変数の更新。
Expand Down

0 comments on commit ee20d73

Please sign in to comment.