{noRowsMessage}
{/if} +diff --git a/packages/client/src/api/datasources.js b/packages/client/src/api/datasources.js
index d36b869d33..a15265681b 100644
--- a/packages/client/src/api/datasources.js
+++ b/packages/client/src/api/datasources.js
@@ -5,9 +5,10 @@ import { fetchRelationshipData } from "./relationships"
import { executeQuery } from "./queries"
import { enrichRows } from "./rows"
-export const searchTable = async ({ tableId, search, pageSize }) => {
- const rows = await searchTableData(tableId, search, pageSize)
+export const searchTable = async ({ tableId, search, page, pageSize }) => {
+ const rows = await searchTableData({ tableId, search, page, pageSize })
return rows
+ // TODO
// Enrich rows so they can displayed properly
// return await enrichRows(rows, tableId)
}
diff --git a/packages/client/src/api/tables.js b/packages/client/src/api/tables.js
index 02a394d46a..80b46cfb0c 100644
--- a/packages/client/src/api/tables.js
+++ b/packages/client/src/api/tables.js
@@ -22,12 +22,18 @@ export const fetchTableData = async tableId => {
* @param {String} tableId - id of the table to search
* @param {Object} search - Mango Compliant search object
*/
-export const searchTableData = async (tableId, search, pageSize) => {
+export const searchTableData = async ({
+ tableId,
+ search,
+ cursor,
+ pageSize,
+}) => {
const rows = await API.post({
url: `/api/${tableId}/rows/search`,
body: {
query: search,
pageSize,
+ cursor,
},
})
return await enrichRows(rows, tableId)
diff --git a/packages/server/src/api/controllers/row.js b/packages/server/src/api/controllers/row.js
index 43633ee56c..3d0fedbc4d 100644
--- a/packages/server/src/api/controllers/row.js
+++ b/packages/server/src/api/controllers/row.js
@@ -224,9 +224,10 @@ exports.fetchView = async function(ctx) {
}
exports.search = async function(ctx) {
- const appId = ctx.user.appId
+ // const appId = ctx.user.appId
+ const appId = 'app_5aa5e9cf26694f9ea02f054050d7ae63'
- const { pageSize = 10, cursor } = ctx.query
+ // const { pageSize = 10, cursor } = ctx.query
// special case for users, fetch through the user controller
// let rows
@@ -238,13 +239,19 @@ exports.search = async function(ctx) {
const db = new CouchDB(appId)
- const query = ctx.request.body.query
+ const { query, pageSize = 10, cursor } = ctx.request.body
+
query.tableId = ctx.params.tableId
- // query._id = { $gte: cursor }
+
+ // Paginating
+ if (cursor) {
+ query._id = { $gte: cursor }
+ }
const response = await db.find({
selector: query,
limit: pageSize,
+ // sort: ["_id"],
})
ctx.body = response.docs
diff --git a/packages/server/src/api/routes/row.js b/packages/server/src/api/routes/row.js
index 674431c26a..f9d7b22b28 100644
--- a/packages/server/src/api/routes/row.js
+++ b/packages/server/src/api/routes/row.js
@@ -33,7 +33,7 @@ router
)
.post(
"/api/:tableId/rows/search",
- authorized(PermissionTypes.TABLE, PermissionLevels.READ),
+ // authorized(PermissionTypes.TABLE, PermissionLevels.READ),
rowController.search
)
.patch(
diff --git a/packages/standard-components/manifest.json b/packages/standard-components/manifest.json
index 38a9429fc7..220c8f4df7 100644
--- a/packages/standard-components/manifest.json
+++ b/packages/standard-components/manifest.json
@@ -138,6 +138,11 @@
"key": "valueColumns",
"dependsOn": "table"
},
+ {
+ "type": "number",
+ "label": "Result Page Size",
+ "key": "pageSize"
+ },
{
"type": "text",
"label": "No Rows Message",
diff --git a/packages/standard-components/src/Login.svelte b/packages/standard-components/src/Login.svelte
index 8a4af82320..02b0655a17 100644
--- a/packages/standard-components/src/Login.svelte
+++ b/packages/standard-components/src/Login.svelte
@@ -27,12 +27,19 @@
await authStore.actions.logIn({ email, password })
loading = false
}
+
+ function handleKeydown(evt) {
+ console.log(evt.keyCode)
+ }
+
{noRowsMessage}
{/if} +