@yuneta/gobj-ui 7.9.1 → 7.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16447,6 +16447,7 @@ var attrs_table$5 = [
16447
16447
  var PRIVATE_DATA$5 = {
16448
16448
  _pending_pages: null,
16449
16449
  _page_seq: 0,
16450
+ _page_total: null,
16450
16451
  $container: null,
16451
16452
  treedb_name: "",
16452
16453
  topic_name: "",
@@ -17215,11 +17216,19 @@ function create_tabulator(gobj) {
17215
17216
  } catch (e) {
17216
17217
  n = 0;
17217
17218
  }
17218
- $rc.textContent = `${n} ${(0, i18next.t)("rows")}`;
17219
+ let paged = (0, _yuneta_gobj_js.gobj_read_bool_attr)(gobj, "with_remote_paging");
17220
+ let total = gobj.priv._page_total;
17221
+ if (paged && typeof total === "number" && total > n) $rc.textContent = `${n} / ${total} ${(0, i18next.t)("rows")}`;
17222
+ else $rc.textContent = `${n} ${(0, i18next.t)("rows")}`;
17219
17223
  let single_page = true;
17220
17224
  try {
17221
- let size = tabulator.getPageSize();
17222
- single_page = !size || n <= size;
17225
+ if (paged) {
17226
+ let max = tabulator.getPageMax();
17227
+ single_page = max === false || max <= 1;
17228
+ } else {
17229
+ let size = tabulator.getPageSize();
17230
+ single_page = !size || n <= size;
17231
+ }
17223
17232
  } catch (e) {
17224
17233
  single_page = true;
17225
17234
  }
@@ -18460,6 +18469,7 @@ function ac_repull_page(gobj, event, kw, src) {
18460
18469
  * The host answered a page.
18461
18470
  ************************************************************/
18462
18471
  function ac_page_loaded(gobj, event, kw, src) {
18472
+ if (typeof kw.total === "number") gobj.priv._page_total = kw.total;
18463
18473
  settle_page(gobj, kw.req_id, {
18464
18474
  data: (0, _yuneta_gobj_js.is_array)(kw.rows) ? kw.rows : [],
18465
18475
  last_page: kw.pages || 1,
@@ -16442,6 +16442,7 @@ var attrs_table$5 = [
16442
16442
  var PRIVATE_DATA$5 = {
16443
16443
  _pending_pages: null,
16444
16444
  _page_seq: 0,
16445
+ _page_total: null,
16445
16446
  $container: null,
16446
16447
  treedb_name: "",
16447
16448
  topic_name: "",
@@ -17210,11 +17211,19 @@ function create_tabulator(gobj) {
17210
17211
  } catch (e) {
17211
17212
  n = 0;
17212
17213
  }
17213
- $rc.textContent = `${n} ${t("rows")}`;
17214
+ let paged = gobj_read_bool_attr(gobj, "with_remote_paging");
17215
+ let total = gobj.priv._page_total;
17216
+ if (paged && typeof total === "number" && total > n) $rc.textContent = `${n} / ${total} ${t("rows")}`;
17217
+ else $rc.textContent = `${n} ${t("rows")}`;
17214
17218
  let single_page = true;
17215
17219
  try {
17216
- let size = tabulator.getPageSize();
17217
- single_page = !size || n <= size;
17220
+ if (paged) {
17221
+ let max = tabulator.getPageMax();
17222
+ single_page = max === false || max <= 1;
17223
+ } else {
17224
+ let size = tabulator.getPageSize();
17225
+ single_page = !size || n <= size;
17226
+ }
17218
17227
  } catch (e) {
17219
17228
  single_page = true;
17220
17229
  }
@@ -18455,6 +18464,7 @@ function ac_repull_page(gobj, event, kw, src) {
18455
18464
  * The host answered a page.
18456
18465
  ************************************************************/
18457
18466
  function ac_page_loaded(gobj, event, kw, src) {
18467
+ if (typeof kw.total === "number") gobj.priv._page_total = kw.total;
18458
18468
  settle_page(gobj, kw.req_id, {
18459
18469
  data: is_array(kw.rows) ? kw.rows : [],
18460
18470
  last_page: kw.pages || 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuneta/gobj-ui",
3
- "version": "7.9.1",
3
+ "version": "7.9.2",
4
4
  "type": "module",
5
5
  "main": "dist/gobj-ui.cjs.js",
6
6
  "module": "dist/gobj-ui.es.js",
@@ -151,6 +151,7 @@ SDATA_END()
151
151
  let PRIVATE_DATA = {
152
152
  _pending_pages: null, // req_id -> {resolve, reject, timer}
153
153
  _page_seq: 0, // correlation id of a page request
154
+ _page_total: null, // rows the topic HAS, from the last page answer
154
155
  $container: null,
155
156
  treedb_name: "",
156
157
  topic_name: "",
@@ -1203,15 +1204,33 @@ function create_tabulator(gobj)
1203
1204
  n = 0;
1204
1205
  }
1205
1206
  }
1206
- $rc.textContent = `${n} ${t("rows")}`;
1207
+ /* Remote paging: `n` is the PAGE, so saying "50 rows" of a topic
1208
+ * with 114 would be a lie by omission. Say both. */
1209
+ let paged = gobj_read_bool_attr(gobj, "with_remote_paging");
1210
+ let total = gobj.priv._page_total;
1211
+ if(paged && typeof total === "number" && total > n) {
1212
+ $rc.textContent = `${n} / ${total} ${t("rows")}`;
1213
+ } else {
1214
+ $rc.textContent = `${n} ${t("rows")}`;
1215
+ }
1207
1216
 
1208
- /* Derived from the count and the page size rather than read from
1209
- * getPageMax(), which is stale in the filter path for the same
1210
- * reason. getPageSize() throws with pagination off -> one page. */
1211
1217
  let single_page = true;
1212
1218
  try {
1213
- let size = tabulator.getPageSize();
1214
- single_page = !size || n <= size;
1219
+ if(paged) {
1220
+ /* Tabulator knows the last page from the answer's
1221
+ * `last_page`, and that is the only thing that says whether
1222
+ * there is more. Deriving it from the row count instead —
1223
+ * which is what the local path does — hid the paginator on
1224
+ * every FULL page: 50 rows of a 50-row page reads as "it all
1225
+ * fits" and it does not. */
1226
+ let max = tabulator.getPageMax();
1227
+ single_page = (max === false) || max <= 1;
1228
+ } else {
1229
+ /* Derived from the count and the page size rather than read
1230
+ * from getPageMax(), which is stale in the filter path. */
1231
+ let size = tabulator.getPageSize();
1232
+ single_page = !size || n <= size;
1233
+ }
1215
1234
  } catch(e) {
1216
1235
  single_page = true;
1217
1236
  }
@@ -3089,6 +3108,9 @@ function ac_repull_page(gobj, event, kw, src)
3089
3108
  ************************************************************/
3090
3109
  function ac_page_loaded(gobj, event, kw, src)
3091
3110
  {
3111
+ if(typeof kw.total === "number") {
3112
+ gobj.priv._page_total = kw.total;
3113
+ }
3092
3114
  settle_page(gobj, kw.req_id, {
3093
3115
  data: is_array(kw.rows)? kw.rows : [],
3094
3116
  last_page: kw.pages || 1,