From 49e626cdfe5692b6fbd692b6b4382311961be757 Mon Sep 17 00:00:00 2001 From: Scott Waddell Date: Thu, 5 Aug 2021 20:03:14 +1000 Subject: [PATCH 1/2] update ReExecute to handle >500 documents --- .../Table/TableHeader/ReExecute.tsx | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/www/src/components/Table/TableHeader/ReExecute.tsx b/www/src/components/Table/TableHeader/ReExecute.tsx index d87b4610..e28b7c4a 100644 --- a/www/src/components/Table/TableHeader/ReExecute.tsx +++ b/www/src/components/Table/TableHeader/ReExecute.tsx @@ -45,14 +45,20 @@ export default function ReExecute() { const handleConfirm = async () => { setUpdating(true); const _ft_forcedUpdateAt = new Date(); - const batch = db.batch(); const querySnapshot = await query.get(); - querySnapshot.docs.forEach((doc) => { - batch.update(doc.ref, { _ft_forcedUpdateAt }); - }); - await batch.commit(); - setUpdating(false); - setTimeout(() => setOpen(false), 3000); // give time to for ft function to run + const docs = [...querySnapshot.docs]; + while (docs.length) { + const batch = db.batch(); + const temp = docs.splice(0, 499); + temp.forEach((doc) => { + batch.update(doc.ref, { _ft_forcedUpdateAt }); + }); + await batch.commit(); + } + setTimeout(() => { + setUpdating(false); + setOpen(false); + }, 3000); // give time to for ft function to run }; return ( From ae5c411aa747784aa512718eb7b6ef9bb080fd16 Mon Sep 17 00:00:00 2001 From: shamsmosowi Date: Mon, 16 Aug 2021 13:24:52 +1000 Subject: [PATCH 2/2] prevent action requests without a ref --- www/package.json | 2 +- www/src/components/fields/Action/ActionFab.tsx | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/www/package.json b/www/package.json index 860017cc..e427f7bf 100644 --- a/www/package.json +++ b/www/package.json @@ -1,6 +1,6 @@ { "name": "Firetable", - "version": "1.4.0", + "version": "1.4.1", "homepage": "https://firetable.io/", "repository": { "type": "git", diff --git a/www/src/components/fields/Action/ActionFab.tsx b/www/src/components/fields/Action/ActionFab.tsx index 7f06d98f..2b689e77 100644 --- a/www/src/components/fields/Action/ActionFab.tsx +++ b/www/src/components/fields/Action/ActionFab.tsx @@ -49,7 +49,7 @@ export default function ActionFab({ const { requestConfirmation } = useConfirmation(); const { requestParams } = useActionParams(); const { tableState } = useFiretableContext(); - const { createdAt, updatedAt, id, ref, ...docData } = row; + const { ref } = row; const { config } = column as any; const action = !value @@ -65,8 +65,11 @@ export default function ActionFab({ const callableName: string = (column as any).callableName ?? config.callableName ?? "actionScript"; const handleRun = (actionParams = null) => { + if (!ref.path || !ref.id) { + snack.open({ message: "no ref set", variant: "error" }); + return; + } setIsRunning(true); - const data = { ref: { path: ref.path, id: ref.id, tablePath: window.location.pathname }, column: { ...column, editor: undefined },