From 0bc18b24a3b0370ddefbae4826554933bc2ed443 Mon Sep 17 00:00:00 2001 From: Harini Janakiraman Date: Tue, 28 Sep 2021 11:36:46 +1000 Subject: [PATCH 1/2] Update README.md --- README.md | 66 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 4c11e60f..69dcafba 100644 --- a/README.md +++ b/README.md @@ -40,28 +40,58 @@ Manage Firestore data in a spreadsheet-like UI, write Cloud Functions effortless title="One Click Deploy" width="250" />

-Full installation guide is available [here](https://docs.rowy.io/install). - - # Documentation You can find the full documentation with how-to guides [here](http://docs.rowy.io/). +# Features + +### Powerful spreadsheet interface for Firestore + +- CRUD operations +- Sort and filter by row values +- Lock, Freeze, Resize, Hide and Rename columns +- Multiple views for the same collection +- Bulk import or export data - csv, json + +### Rich and flexible data fields +- [30+ fields supported](https://docs.rowy.io/field-types/supported-fields) +- Basic types: Short Text, Long Text, Email, Phone, URL… +- Custom UI pickers: Date, Checkbox, Single Select, Multi Select… +- Uploaders: Image, File +- Rich Editors: JSON, Code, Rich Text (HTML) +- Data validation, default values, required fields +- Action field: Clickable trigger for any Cloud Function +- Derivative field: Populate a cell with value derived from your database, +npm modules, api calls - called on field level triggers +- Aggregate field: Populate cell with value aggregated from the row’s sub-table + +### Collaborate with your team + +- Granular table-level and field-level permission control + with custom user roles +- Built in user management +- Customizable views for different user roles + +### Supercharge your database with cloud functions + +- Effortless build cloud functions right in the browser +- Connect to your favourite tools: SendGrid, Algolia, Twilio, Bigquery and more +- Integrations with external services + - Connect Table uses Algolia to get a snapshot of another table’s row values + - Connect Service uses any HTTP endpoint to get a cell value + +# Install + +

Set up Rowy on your Google Cloud Platform project with this one-click deploy button that makes the process of setting up easy with step by step guide and ensuring your project is setup correctly. This runs RowyRun (an open-source, cloud run instance) that operates exclusively on your GCP project and we will never have access to your service account or any of your data.

+ +One Click Deploy +

+ +Alternatively, you can also manually install using the full installation guide is available [here](https://docs.rowy.io/install). + + # Join Our Community We would love to connect and hear what you think! From 7208dc983aebb2b71253d740db2960be213128bd Mon Sep 17 00:00:00 2001 From: shamsmosowi Date: Tue, 28 Sep 2021 11:50:19 +1000 Subject: [PATCH 2/2] typo --- src/components/Table/editors/CodeEditor.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Table/editors/CodeEditor.tsx b/src/components/Table/editors/CodeEditor.tsx index 5b63a717..dbe6e488 100644 --- a/src/components/Table/editors/CodeEditor.tsx +++ b/src/components/Table/editors/CodeEditor.tsx @@ -146,7 +146,7 @@ export default function CodeEditor(props: any) { async function asyncForEach(array: any[], callback: Function): void {} /** - * Generate random ID from numbers and English charactors inlcuding lowercase and uppercase + * Generate random ID from numbers and English characters including lowercase and uppercase */ function generateId(): string {} @@ -215,7 +215,7 @@ export default function CodeEditor(props: any) { type Trigger = "create" | "update" | "delete"; type Triggers = Trigger[]; - // function types that defines extension body and shuold run + // function types that defines extension body and should run type Condition = boolean | ((data: ExtensionContext) => boolean | Promise); // the argument that the extension body takes in @@ -230,7 +230,7 @@ export default function CodeEditor(props: any) { fieldTypes: any; extensionConfig: { label: string; - type: sring; + type: string; triggers: Trigger[]; conditions: Condition; requiredFields: string[];