@ -1,5 +1,5 @@
|
||||
{ |
||||
"label": "Table Details", |
||||
"label": "Table details", |
||||
"collapsible": true, |
||||
"collapsed": true |
||||
} |
@ -0,0 +1,137 @@
|
||||
--- |
||||
title: 'Rich text' |
||||
description: 'This article explains how to create & work with a Rich text field.' |
||||
tags: ['Fields', 'Field types', 'Text based types', 'Rich text'] |
||||
keywords: ['Fields', 'Field types', 'Text based types', 'Rich text', 'Create rich text field'] |
||||
--- |
||||
|
||||
|
||||
`Rich Text` field is text based field & is extension of `Long text` that allows you to add formatting to the text. You can add text formatting like bold, italic, underline, strikethrough, horizontal rule, ordered list, unordered list, code, quote, etc. |
||||
|
||||
## Create a `Rich Text` field |
||||
1. Click on `+` icon to the right of `Fields header` |
||||
2. On the dropdown modal, enter the field name (Optional). |
||||
3. Select the field type as `Long text` from the dropdown. |
||||
4. Enable `Rich Text` toggle field. |
||||
5. Set default value for the field (Optional). |
||||
6. Click on `Save Field` button. |
||||
|
||||
![image](/img/v2/fields/types/richtext.png) |
||||
|
||||
:::note |
||||
- Specify default value without quotes. |
||||
- Use `Enter` key to add new line. |
||||
::: |
||||
|
||||
### Cell display |
||||
`Rich Text` field is displayed as a single line text field in the table view. Click on the expand icon in the cell to view the full text. |
||||
|
||||
![image](/img/v2/fields/long-text-expand.png) |
||||
![image](/img/v2/fields/long-text-expand-2.png) |
||||
|
||||
|
||||
## Formatting options |
||||
NocoDB supports markdown syntax for formatting the text. Following are the supported formatting options. |
||||
|
||||
### Heading |
||||
To create a heading, prefix `#` symbol preceding your heading text. The number of # symbols employed will dictate the heading's hierarchy level and typeface size. Three levels of headings are supported. |
||||
|
||||
``` |
||||
# Heading 1 |
||||
## Heading 2 |
||||
### Heading 3 |
||||
``` |
||||
|
||||
![image](/img/v2/fields/types/richtext-heading.png) |
||||
|
||||
### Text formatting |
||||
You can emphasise text with bold, italic, strikethrough or underline formatting options. Table below shows syntax, keyboard shortcut, example & output for each formatting option. |
||||
|
||||
| Style | Syntax | Keyboard shortcut | Example | Output | |
||||
| --- | --- | --- | --- | --- | |
||||
| Bold | `**bold text**` | `Ctrl/Cmd + B` | `**This is bold text**` | **This is bold text** | |
||||
| Italic | `*italicized text*` | `Ctrl/Cmd + I` | `*This is italicized text*` | *This is italicized text* | |
||||
| Strikethrough | `~~strikethrough text~~` | `Ctrl/Cmd + Shift + X` | `~~This is strikethrough text~~` | ~~This is strikethrough text~~ | |
||||
| Underline | | `Ctrl/Cmd + U` | `This is underlined text` | <u>This is underlined text</u> | |
||||
|
||||
### Quote block |
||||
You can quote text with a `>` |
||||
|
||||
``` |
||||
normal text |
||||
> quoted text |
||||
``` |
||||
|
||||
normal text |
||||
> quoted text |
||||
|
||||
### Code block |
||||
Code block can be created by using (3 backticks) before & after the code. |
||||
```` |
||||
``` |
||||
This is a code block |
||||
``` |
||||
```` |
||||
|
||||
``` |
||||
This is a code block |
||||
``` |
||||
|
||||
### Link |
||||
You can create an inline link by using `Link` menu option in the rich text toolbar |
||||
|
||||
![image](/img/v2/fields/types/richtext-links.png) |
||||
|
||||
### Bullet List |
||||
You can create unordered list by using `Bulleted list` menu option in the rich text toolbar or by preceding the text with `-` `+` or `*` symbol. |
||||
``` |
||||
- Item 1 |
||||
- Item 2 |
||||
|
||||
+ Item 1 |
||||
+ Item 2 |
||||
|
||||
* Item 1 |
||||
* Item 2 |
||||
``` |
||||
|
||||
- Item 1 |
||||
- Item 2 |
||||
|
||||
+ Item 1 |
||||
+ Item 2 |
||||
|
||||
* Item 1 |
||||
* Item 2 |
||||
|
||||
:::note |
||||
You can create nested lists by using `tab` key & `shift + tab` key to indent & outdent the list items. |
||||
::: |
||||
|
||||
### Numbered List |
||||
You can create ordered list by using `Numbered list` menu option in the rich text toolbar or by preceding the text with `1.` symbol. |
||||
``` |
||||
1. Item 1 |
||||
2. Item 2 |
||||
``` |
||||
1. Item 1 |
||||
2. Item 2 |
||||
|
||||
### Task list |
||||
You can create task lists by using `Task list` menu option in the rich text toolbar or by preceding the text with `[ ]` symbol. You can mark the task as completed by using `[x]` symbol. |
||||
``` |
||||
[ ] Item 1 |
||||
[x] Item 2 |
||||
``` |
||||
- [ ] Item 1 |
||||
- [x] Item 2 |
||||
|
||||
|
||||
## Similar text based fields |
||||
Following are the other text based fields available in NocoDB, custom-built for specific use cases. |
||||
- [Single line text](010.single-line-text.md) |
||||
- [URL](050.url.md) |
||||
- [Email](030.email.md) |
||||
- [Phone](040.phonenumber.md) |
||||
|
||||
|
@ -0,0 +1,30 @@
|
||||
--- |
||||
title: 'User' |
||||
description: 'This article explains how to create & work with a User field.' |
||||
tags: ['Fields', 'Field types', 'User'] |
||||
keywords: ['Fields', 'Field types', 'User', 'Create User field'] |
||||
--- |
||||
|
||||
`User` field type allows you to assign a user from your current workspace to a record. For example, you can create a `Task` table with a `User` field type to assign a task to a user. You can also configure the field to allow assigning multiple users to a record. |
||||
|
||||
## Create a User field |
||||
1. Click on `+` icon to the right of `Fields header` |
||||
2. On the dropdown modal, enter the field name (Optional). |
||||
3. Select the field type as `User` from the dropdown. |
||||
4. Configure `Allow adding multiple users` toggle field (Optional). |
||||
5. Configure default value (Optional) |
||||
6. Click on `Save Field` button. |
||||
|
||||
![image](/img/v2/fields/types/user-field.png) |
||||
|
||||
### Cell display |
||||
`User` field display is quite identical to `Select` field. It is displayed as a dropdown in the table view. Click on the dropdown to select a user. If `Allow adding multiple users` is enabled, you can select multiple users from the dropdown. |
||||
|
||||
![image](/img/v2/fields/types/user-field-cell.png) |
||||
|
||||
:::note |
||||
- If a user is removed from workspace, the user will be removed from the dropdown list. If such user was assigned to a record already, the user will be displayed as is. |
||||
- To remove a user from a record, click on the `x` icon next to the user name. |
||||
- If display name is not set for a user, the user's email address will be displayed. |
||||
::: |
||||
|
@ -0,0 +1,5 @@
|
||||
{ |
||||
"label": "User based", |
||||
"collapsible": true, |
||||
"collapsed": true |
||||
} |
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 138 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 126 KiB |
@ -0,0 +1,35 @@
|
||||
import jsep from 'jsep'; |
||||
import { UITypes } from 'nocodb-sdk'; |
||||
import type FormulaColumn from '../models/FormulaColumn'; |
||||
import type { Column } from '~/models'; |
||||
|
||||
export async function getFormulasReferredTheColumn({ |
||||
column, |
||||
columns, |
||||
}: { |
||||
column: Column; |
||||
columns: Column[]; |
||||
}): Promise<Column[]> { |
||||
const fn = (pt) => { |
||||
if (pt.type === 'CallExpression') { |
||||
return pt.arguments.some((arg) => fn(arg)); |
||||
} else if (pt.type === 'Literal') { |
||||
} else if (pt.type === 'Identifier') { |
||||
return [column.id, column.title].includes(pt.name); |
||||
} else if (pt.type === 'BinaryExpression') { |
||||
return fn(pt.left) || fn(pt.right); |
||||
} |
||||
}; |
||||
|
||||
return columns.reduce(async (columnsPromise, c) => { |
||||
const columns = await columnsPromise; |
||||
if (c.uidt !== UITypes.Formula) return columns; |
||||
|
||||
const formula = await c.getColOptions<FormulaColumn>(); |
||||
|
||||
if (fn(jsep(formula.formula))) { |
||||
columns.push(c); |
||||
} |
||||
return columns; |
||||
}, Promise.resolve([])); |
||||
} |