Go to file
被雨水过滤的空气-Rain 573cde0a21
feat(variable): lazy load association fields (#2382)
* refactor: remove useless code

* feat: should always show user variable

* style: optimize style of variable input

* feat: change maxDepth of user varialbe to 3

* refactor: migrate getFieldDefaultValue to SchemaSettings.tsx

* feat: support to parse variables

* feat: support to parse array fields

* refactor: make testing more stable

* chore: fix CI

* feat: support to parse current user

* fix: fix tests

* feat: support to register variable

* feat: support to parse "$context"

* refactor: remove useless code

* fix: fix build

* fix: fix build

* test: make stable

* docs: add doc

* fix: fix T-1267

* fix: fix T-1268

* fix: fix T-1269

* fix: fix T-1271

* fix: fix T-1274

* refactor: improve code

* feat(variable): support local variable

* fix: fix T-1280

* refactor: close T-881

* refactor: remove useLazyLoadAssociation

* fix: fix T-1289,T-1290

* fix: fix T-1296

* refactor(AssignedField): replace user variable

* refactor: extract useBaseVariable

* refactor(AssignedField): replace variables

* feat(useVariables): support to use array as local variables

* refactor: improve variables (T-1295)

* feat: limit user choice (T-1297)

* fix: fix T-1305

* refactor: extract as SchemaSettings.DataScope

* refactor: improve linkage rules

* refactor: improve linkage rules of Action

* chore: fix build

* refactor: improve data scope of association fields

* chore: fix build

* feat: select limit

* refactor: use VariableInput to replace other

* fix: fix can not input

* fix(AssignedField): fix cannot close variables list

* test: fix errors

* refactor: migrate to new file

* fix: uniq

* fix: filter empty values

* fix: transform variables value

* fix: should sum numbers (T-1330)

* fix: fix Select (T-1337)

* refactor: use useMemo

* refactor: use hooks

* refactor: use hooks

* refactor: use hooks

* refactor: remove useless code

* refactor: rename `$form` to `$nForm` and `$record` to `$nRecord`

* fix: fix T-1334

* refactor(LinkageRuleActionGroup): use hooks

* refactor(FormButtonLinkageRuleAction): use hooks

* refactor: add type

* fix: avoid crashing

* refactor: rename `$date` to `$nDate`

* fix: fix T-1348

* perf: avoid duplicate requests

* test: fix error

* fix: fix T-1355

* fix: fix T-1355

* fix: fix T-1345

* fix: fix T-1346

* refactor(useVariableOptions): replace query with parameter

* fix: fix T-1335

* chore: fix build

* fix: fix T-1453

* refactor: remove useless code

* fix: fix T-1447

* fix: should update when seting default value

* fix: fix T-1454

* chore(eslint): ignore docker

* fix: fix T-1440

* refactor: use hooks

* fix: fix T-1332

* fix(defaultValue): should use Select mode

* fix(defaultValue): fix Checkbox

* refactor: rename and comment

* refactor: rename file name and hook name

* feat(subForm): support lazy load association fields

* fix: filter empty values

* fix(defaultValue): schema type of Checkbox should be void

* fix: fix T-1479

* fix: fix T-1491

* fix(ToOneNester): should use RecordProvider

* fix: fix T-1493

* chore: add comment

* fix: fix T-1495

* chore: fix build

* test: make pass

* fix: fix T-1503

* fix: fix T-1504

* fix: fix transformVariableValue

* fix: disable unsupport options

* refactor(useVariableOptions): add noDisabled params

* fix: data scope support to select to-many fields

* chore: add comment

* refactor: improve default value

* refactor: extract as useIsAllowToSetDefaultValue

* fix: should not support to set default value in edit mode

* fix: only the default values for sub-forms and sub-tables are valid

* fix: limit default value of association fields

* fix: fix '$nForm' variable

* fix: allow all inherit chain

* fix: optimize default value

* fix: optimize json field

* fix(currentObject): avoid error

* fix: should not show variable string

* fix: active fields

* fix: avoid errors

* feat: support special case

* fix: fix CI

* chore: fix build

* fix: json

* refactor: rename flag name

* fix: fix T-1559

* fix: fix T-1515

* fix: avoid crash

* fix: fix T-1520

* fix: fix T-1521

* fix: fix T-1523

* fix: fix T-1563

* fix: fix T-1565

* fix: fix T-1525

* fix: fix T-1524

* fix: fix T-1603

* fix: fix T-1332

* fix: fix T-1559

* fix: fix T-1602

* fix: fix T-1608

* fix: fix T-1612 T-1609

* fix: fix T-1681

* fix: fix T-1711

* fix: fix T-1713

* fix: fix T-1680

* chore: close T-1550

* fix: fix T-1507

* chore: avoid crashing

* fix: fix T-1557

* perf: close T-1726

* fix: fix T-1727

* fix: fix T-1741

* fix: fix T-1740

* chore(workflow): compact

* chore: should not to support to set default value in assign field values

* perf: compat and perf (T-1736)

* fix: fix T-1872

* fix: fix T-1877

* fix: fix quarter variables

* chore: add README

* chore: front-end should not depend on back-end code

* chore: should disable all variable options if no field is selected

* chore: should be a leaf if it has no children

* chore: fix build error

* fix: compat $form

* fix: compat $form

* chore: fix build

* chore: fix build

* fix: typeError: Cannot read properties of undefined (reading 'template')

* chore: fix test

* chore: add test

* fix: fix T-2072

* chore: optimize eslint

* perf: reduce number of requests

* fix: fix JSON

* test: fix error

* fix(e2e): avoid error

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-10-07 15:49:09 +08:00
.dumi/theme/slots refactor: build tools (#2374) 2023-09-03 10:59:33 +08:00
.github feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00
.vscode feat(variable): lazy load association fields (#2382) 2023-10-07 15:49:09 +08:00
docker feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
docs feat: update docs 2023-09-22 21:53:33 +08:00
examples feat: application supervisor (#2353) 2023-08-24 17:47:45 +08:00
packages feat(variable): lazy load association fields (#2382) 2023-10-07 15:49:09 +08:00
scripts chore(e2e): use APP_BASE_URL in codegen 2023-10-07 12:53:02 +08:00
storage feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
.dockerignore chore: dockerignore 2023-08-02 13:45:52 +08:00
.dumirc.ts chore(versions): 😊 publish v0.14.0-alpha.1 2023-09-12 22:42:43 +08:00
.editorconfig Feat: client base entry of plugin workflow (#225) 2022-03-27 15:51:48 +08:00
.env.e2e.example feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00
.env.example feat(database): support ssl config of database (#2620) 2023-09-11 10:55:47 +08:00
.env.test.example feat(auth): support signing in with username (#2376) 2023-08-19 22:02:26 +08:00
.eslintignore feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
.eslintrc chore: optimize eslint 2023-09-28 17:52:16 +08:00
.gitignore feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00
.gitpod.yml chore: gitpod yml 2023-02-15 14:47:02 +00:00
.prettierignore feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
.prettierrc refactor: code splitting of the table component (#121) 2021-12-02 22:56:16 +08:00
CHANGELOG.md chore: update changelog 2023-09-12 22:44:28 +08:00
commitlint.config.js fix: eslint (#1759) 2023-04-25 13:12:14 +08:00
deploy-docs-cn.sh feat: update docs 2023-06-20 18:05:06 +08:00
deploy-docs.sh feat: update docs 2023-06-20 18:05:06 +08:00
docker-compose.yml feat: database view collection (#1587) 2023-04-01 21:56:01 +08:00
Dockerfile feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
jest.config.js fix: improve build (#2643) 2023-09-15 08:51:20 +08:00
jest.setup.ts feat(auth): support custom authentication (#2007) 2023-06-07 23:46:42 +08:00
jest.setupAfterEnv.ts test: should load the .env.test (#1678) 2023-04-10 08:48:26 +08:00
lerna.json chore(versions): 😊 publish v0.14.0-alpha.6 2023-09-22 15:49:50 +08:00
LICENSE-AGPL feat: change license (#1350) 2023-01-11 11:58:47 +08:00
LICENSE-APACHE-2.0 feat: change license (#1350) 2023-01-11 11:58:47 +08:00
package.json chore(e2e): add a simplified version of the command 2023-10-06 19:20:19 +08:00
playwright.config.ts feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00
README.md feat: update readme.md 2023-09-15 09:22:19 +08:00
README.tr-TR.md feat: update readme.md 2023-09-15 09:22:19 +08:00
README.zh-CN.md feat: update readme.md 2023-09-15 09:22:19 +08:00
release.sh chore(versions): 😊 publish v0.14.0-alpha.3 2023-09-13 18:29:38 +08:00
testUtils.ts refactor(client)!: upgrade antd to v5 (#2078) 2023-07-08 08:26:27 +08:00
tsconfig.jest.json feat: build, cli, devtools, sdk, docs... 2022-05-19 00:40:55 +08:00
tsconfig.json feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00
tsconfig.server.json feat: build, cli, devtools, sdk, docs... 2022-05-19 00:40:55 +08:00
vitest.config.ts feat(variable): lazy load association fields (#2382) 2023-10-07 15:49:09 +08:00
yarn.lock feat: support e2e (#2624) 2023-09-27 20:00:17 +08:00

English | 中文 | Türkçe

Note: 📌

NocoBase is in early stage of development and is subject to frequent changes, please use caution in production environments.

Recent major updates

We are hiring

We are looking for full-time, remote product design and development colleagues to join the team. If you have a strong interest in NocoBase, please feel free to email us at hello@nocobase.com.

What is NocoBase

NocoBase is a scalability-first, open-source no-code development platform. No programming required, build your own collaboration platform, management system with NocoBase in hours.

Homepage:
https://www.nocobase.com/

Online Demo:
https://demo.nocobase.com/new

Documents:
https://docs.nocobase.com/

Contact Us:
hello@nocobase.com

Who is NocoBase for

NocoBase is designed for you if you have the following needs.

  • Develop an internal management system
  • Meet most of your business needs with no-code development
  • No-code development is simple enough for non-developers; flexible enough to be close to native development
  • Can be very easy to extend
  • Private deployment with full control of code and data
  • Free to use or pay for more technical support

Why NocoBase is different

1. Separate "data structure" and "user interface"

Most form-, table-, or process-driven codeless products create data structures directly in the user interface, such as Airtable, where adding a new column to a table is adding a new field. This has the advantage of simplicity of use, but the disadvantage of limited functionality and flexibility to meet the needs of more complex scenarios.

NocoBase adopts the design idea of separating the data structure from the user interface, allowing you to create any number of blocks (data views) for the data collections, with different type, styles, content, and actions in each block. This takes into account the simplicity of codeless operation, but also the flexibility like native development.

2.collection-block.png

2. What you see is what you get

NocoBase enables the development of complex and distinctive business systems, but this does not mean that complex and specialized operations are required. With a single click, configuration options can be displayed on the usage interface, which means that administrators with system configuration rights can configure the user interface directly with WYSIWYG operations.

2.user-root.gif

3. Everything is a plugin

NocoBase adopts plugin architecture, all new features can be implemented by developing and installing plugins. In the future, we will build a plug-in marketplace where extending functionality is as easy as installing an APP on your phone.

Click to view the full image

Business Services

If you need commercial version and commercial services, please feel free to contact us by email: hello@nocobase.com

Also by WeChat

Installation

NocoBase supports three installation methods:

  • Installing With Docker (👍Recommended)

    Suitable for no-code scenarios, no code to write. When upgrading, just download the latest image and reboot.

  • Installing from create-nocobase-app CLI

    The business code of the project is completely independent and supports low-code development.

  • Installing from Git source code

    If you want to experience the latest unreleased version, or want to participate in the contribution, you need to make changes and debug on the source code, it is recommended to choose this installation method, which requires a high level of development skills, and if the code has been updated, you can git pull the latest code.

License