54 Commits

Author SHA1 Message Date
YANG QIA
e0b5128c9d
feat(database): new field type many to many (array) (#4708)
* feat: recordSet field

* fix: record set field

* test: add tests

* fix: tests

* fix: build

* feat: front end

* refactor: belongs to array field

* fix: tests

* fix: version

* fix: version

* fix: build

* chore: update

* chore: add error

* chore: remove only

* feat: add locales

* fix: version

* fix: e2e

* fix: fix T-4661

* fix: fix T-4663

* fix: fix T-4665

* fix: fix T-4670

* fix: fix T-4666

* fix: fix T-4664

* fix: fix T-4668

* fix: test

* fix: fix T-4669

* fix: fix T-4667

* fix: bug

* fix: fix T-4670

* chore: add transaction

* feat: beforeAddDataSource hook

* feat: support external database sources, fix T-4717

* fix: bug

* fix: fix T-4671

* fix: fix T-4769

* fix: version

* fix: fix T-4762

* fix: array type interface

* fix: fix T-4742

* fix: fix T-4661

* fix: bug

* fix: bug

* feat: check association keys in backend

* fix: bug

* fix: bug

* fix: bug

* fix: test

* fix: bug

* fix: e2e

---------

Co-authored-by: Chareice <chareice@live.com>
2024-07-10 15:04:24 +08:00
ChengLei Shao
2063227f4a
refactor: export & import plugin (#4468)
* feat: chunk method in repository

* chore: xlsx export test

* chore: xlsx export

* chore: export action

* chore: export action

* chore: code

* feat: database interface manager

* feat: export with ui schema

* chore: console.log

* chore: export with china region field

* chore: export with attachments

* chore: export with multiple select

* chore: export with interface

* chore: export action

* fix: export with datetime file

* chore: limit export action running in same time

* chore: yarn.lock

* fix: render json value

* chore: chunk with limit

* feat: add EXPORT_LIMIT env config

* fix: typo

* fix: type

* chore: asyn mutex version

* chore: test

* chore: test

* fix: export null value

* chore: test

* chore: createdAt test

* fix: export with createdAt

* chore: import template

* chore: xlsx importer

* chore: import run

* chore: export with data source api

* chore: toValue api in interface

* fix: build

* chore: import with transaction

* fix: build database

* chore: many to one interface

* chore: code

* chore: import with associations

* chore: default toValue

* chore: import template with explain

* chore: import with explain template

* chore: reset id seq after import

* chore: download template action

* fix: database build

* fix: build

* fix: build

* fix: test

* chore: import with number field

* chore: import with boolean field

* chore: json interface

* chore: import action

* chore: typo

* chore: i18n

* chore: select interface

* chore: china region interface

* chore: datetiem field

* chore: cast to array

* fix: import tips

* chore: import await

* fix: test

* fix: test in mariadb

* chore: comments

* chore: comments

* fix: parse date with empty string

* fix: read import limit

* fix: type

* fix: test in mariadb

* chore: skip bigint test in sqlite

* chore: skip bigint test in sqlite

* chore: download tip i18n keys

* fix: download tips

* feat(client): add new variable named 'URL search params' and support link action (#4506)

* feat: support link action

* feat(client): add new variable named 'URL search params'

* chore: add translation

* fix: avoid crashing

* chore: fix failed test

* feat: link action

* feat: link action

* fix: remove filter parameters with undefined values

* feat: link action

* feat: add support for default values in filter form fields

* refactor: code improve

* refactor: locale improve

* refactor: locale improve

* test: add e2e test

* refactor: locale improve

* refactor: locale improve

* fix: resolve operation issues with variables

* refactor: code improve

* chore: enable direct selection of variables as default value

* chore: use qs to parse query string

* fix: menu selectKeys (T-4373)

* refactor: use qs to stringify search params

* refactor: locale improve

* refactor: locale improve

* chore: fix failed tests

* fix: resolve issue where setting Data scope is not work

* chore: fix failed e2e tests

* chore: make e2e tests more stable

* chore: add translation

* chore: make e2e tests more stable

* fix: resolve the issue of error when saving data scope

* feat: trigger variable parsing after context change

* test: add unit tests

* test: add e2e test

* refactor: extract template

* chore: fix failed unit tests

* chore: fix failed e2e test

* fix(Link): hide linkage rules in top link (T-4410)

* fix(permission): remove URL search params variable from data scope

* chore: make more stable

* chore: make e2e test more stable

* fix(Link): reduce size for variable

* fix: clear previous context (T-4449)

* fix(calendar, map): resolve initial data scope setting error (T-4450)

* fix: correct concatenation of query string (T-4453)

---------

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: jack zhang <1098626505@qq.com>

* refactor(FormV2): add FormWithDataTemplates component (#4551)

* Revert "fix(client): fix data template style (#4536)"

This reverts commit db66090ab279508473e74803dbb8637341fa6f3f.

* refactor(FormV2): add FormWithDataTemplates component

* chore: fix failed e2e tests

* chore: make e2e test more stable

* chore: import warning i18n

* chore: import warning i18n

* fix: bug

* fix: export action loading

* fix: bug

* chore: map field interface

* fix: merge bug

---------

Co-authored-by: xilesun <2013xile@gmail.com>
Co-authored-by: Zeke Zhang <958414905@qq.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: jack zhang <1098626505@qq.com>
2024-06-05 17:52:43 +08:00
ChengLei Shao
8b3b9b3b26
fix: values to filter with emtpy values (#4319)
* fix: values to filter with emtpy values

* chore: test

* fix: values to filter

* fix: test
2024-05-19 17:35:11 +08:00
ChengLei Shao
7545d05a3d
feat(database): append default sort options into find (#4231)
* chore: upgrade vitest

* feat(database): append default sort options into find

* chore: test

* chore: test

* fix: test

* fix: test

* fix: test

* fix: test

* fix: test
2024-05-06 21:03:30 +08:00
jack zhang
62b2b5c68b
chore: add copyright information to the file header (#4028)
* fix: add license code

* fix: bug

* fix: bug

* fix: upgrade

* fix: improve

* chore: add copyright information to the file header

* fix: d.ts bug

* fix: bug

* fix: e2e bug

* fix: merge main

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2024-04-30 15:51:31 +08:00
ChengLei Shao
89733247bd
fix: reject update when filter is empty object (#3777)
* fix: reject update when filter is empty object

* chore: valid filter when destroy data

* fix: test

* refactor(utils): move isValidFilter to utils

* chore: test

* chore: test

* chore: test

* fix(plugin-workflow-manual): fix test case

* fix(plugin-workflow-manual): add filter check for update form in manual node

* chore: validate filter params as middleware

* chore: action filter validate in data-source-manager

* chore: acl filter params validate test

* chore: move validate filter params middleware into core

* Update nocobase-test-e2e.yml

* chore: only run workflow's tests

* chore: only run workflow's tests

* fix: updateRecordForm

* Revert "chore: only run workflow's tests"

This reverts commit 64ce1241718ef516ff9bf7245296dee963ab2e43.

* Revert "chore: only run workflow's tests"

This reverts commit b9057b35ec4f87ba13c08650ffc7919e32eb3fc3.

---------

Co-authored-by: mytharcher <mytharcher@gmail.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: Zeke Zhang <958414905@qq.com>
Co-authored-by: hongboji <j414562100@qq.com>
2024-03-30 21:50:54 +08:00
YANG QIA
cb6a6b87c9
fix(acl): optimize error handling when logged user has no roles (#3190)
* fix: fix T-2720

* fix: localization

* fix: test

* fix: build

* chore: update

* fix: update title

* chore: update title

* fix: app load error

* fix: load error

* fix: test error

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-12-15 21:03:16 +08:00
ChengLei Shao
c7ef9618a9
feat(database): support find with filter and where (#3097) 2023-11-26 21:41:40 +08:00
chenos
3b5b732a1a
feat: plugin-mock-collections (#2988)
* feat: plugin-mock-collections

* fix: mock bug

* feat: field interfaces

* fix: field interface

* fix: formula

* fix: file collection

* fix: map

* refactor: change api path from :create to :mock

* fix: avoid test failed

* chore: remove useless code

* fix: mock records

* fix: association

* feat: custom data

* fix: mockAttachment

* fix: count

---------

Co-authored-by: Rain <958414905@qq.com>
2023-11-10 11:32:03 +08:00
ChengLei Shao
1defb5db51
fix: create collections with multiple records (#2753)
* fix: create collections with multiple items

* chore: test

* fix: sync collection when pending field resolved

* fix: test
2023-10-09 17:35:04 +08:00
ChengLei Shao
edbd15ab5b
feat: support load belongs to association with collection that without primary key (#2529)
* test: find without pk

* feat: load root models in eager loading tree
2023-09-25 15:34:36 +08:00
ChengLei Shao
1694eb6d73
fix(collection-manager): redundant fields after set collection fields (#2575)
* fix(collection-manager): redundant fields after set collection fields

* fix: destory with individuals hook

* chore: save

* chore: test

* chore: mutex in fields.afterDestroy

* chore: yarn.lock

* chore: update collections.setFields
2023-09-01 13:51:48 +08:00
ChengLei Shao
08b2f374c8
feat(database): handle targetCollection option in repository find (#2175)
* test: return child collection when get with filterByTk

* refactor: targetCollection

* chore: target collection args in repository find

* feat: handle targetCollection option in repository find

* feat: get child target at belongs to many association

* chore: build

* chore: build

* chore: test

* refactor: targetcollection

* test: belongs to association with targetCollection

* fix: test

* fix: test

* fix: test

* fix: test

* fix: test

* feat: update with targetCollection option

* feat: inject target collection options at repository update

---------

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-07-21 10:51:56 +08:00
Junyi
ff7b1aaf71
fix(core): fix batch update query logic (#2230) 2023-07-11 16:54:04 +08:00
katherinehhh
046a0b4f4d
feat(collection-manager): tableOID field and collection field (#2161)
* feat: support tableOid interface

* chore: child collection filter operator

* chore: test

* refactor: support tableOid and collection field

* chore: test

* fix: refactor: collectionSelect

* refactor: support linkage from form in add child

* refactor: add child support linkage form form

* refactor: code improve

* feat: support undefined value in childIn query

* chore: test

* refactor: locale improve

* refactor: code  improve

* refactor: code  improve

* refactor: tableoid only support pg

* refactor: tableoid only support pg

* refactor: code improve

* refactor: collection operator

* refactor: code improve

* refactor: code improve

* refactor: code improve

* refactor: code improve

* refactor: collection field support options config

* refactor: collection field support options config

* feat: tableoid migration

* fix: item.options?.inherits

---------

Co-authored-by: ChengLei Shao <chareice@live.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-07-04 23:16:49 +08:00
Junyi
6a589543f9
refactor(db): add batch logic to update for better performance (#2070)
* refactor(db): add batch logic to update for better performance

* test(plugin-workflow): fix test cases

* fix(db): treat belongsTo field in update values as foreignKey

* fix(db): also handle object with id for belongsTo field

* fix(db): avoid 0 as falsy

* fix(db): fix test case
2023-06-21 16:37:06 +08:00
ChengLei Shao
d7e6b7b320
feat(database): add firstOrCreate and updateOrCreate in repository (#1943)
* chore: tmp commit

* feat: firstOrCreate

* chore: firstOrCreate

* feat: updateOrCreate

* chore: test

* feat: values to filter

* feat: firstOrCreate http api

* fix: build error
2023-06-06 11:36:18 +08:00
ChengLei Shao
57d47371da
feat(database): append child collection name after eager load (#1978)
* test: eager load with inherit collection name

* feat: append child collection name after eager load

* chore: call build eager loading tree
2023-06-06 11:30:35 +08:00
ChengLei Shao
c0ef071baf
Refactor/append fields (#1883)
* chore: eager loading tree

* feat: load eager loading tree

* feat: merge stage of eager loading

* feat: merge stage of belongs to

* feat: merge stage of has one

* feat: merge stage of belongs to many

* chore: test

* chore: print tree

* chore: using eager loading tree in repository find

* fix: empty ids load

* fix: belongs to many query

* fix: load belongs to  association

* fix: eager load data accessor

* fix: has many

* fix: test

* fix: filter with appends

* chore: remove handle appends query

* chore: console.log

* chore: console.log

* fix: test
2023-05-19 16:39:00 +08:00
ChengLei Shao
f8fa36d016
feat: repository aggregate method (#1829)
* feat: repository aggregate method

* chore: aggregate with distinct

* feat: has many repository aggregation

* feat: belongs to  many repository aggregation

* chore: using model aggregate method

* chore: aggregate with association filter

* chore: aggregate type

* chore: type error
2023-05-11 15:16:33 +08:00
ChengLei Shao
8183ff5564
chore: should not return children property when child nodes are empty (#1825) 2023-05-09 16:48:40 +08:00
ChengLei Shao
2c29daedb5
fix: filter with appends (#1819) 2023-05-08 11:18:42 +08:00
ChengLei Shao
54432a4314
fix: update tree node (#1812)
* fix: update tree node

* chore: test
2023-05-06 15:14:05 +08:00
ChengLei Shao
b8c85c91b4
test: filter nested association (#1802)
* test: filter nested association

* chore: log

* fix: tree instance to json

* ci: test case

* chore: test

* chore: log

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-05-06 07:55:26 +08:00
ChengLei Shao
242977983b
chore: inhertis api with difference schema (#1545)
* refactor: getTableNameWithSchema

* feat: allow create collection with same name in difference schema

* feat: support multiple schema with inherit

* feat: repository after find hook & relation repository __colection attribute

* chore: debug info

* chore: tmp commit

* fix: tableoid to tablename error

* feat: filter child table by tableoid

* feat: filter child table by collection name

* fix: sync runner

* chore: test

* fix: jest empty test error
2023-04-06 09:05:47 +08:00
ChengLei Shao
4f87de7da5
feat: database view collection (#1587)
* test: create view collection

* feat: view collection class

* feat: list view

* chore: skip sync view collection

* test: should create view collection in difference schema

* test: create view collection in collection manager

* feat: create view collection by user sql

* test: view resourcer

* feat: view collection

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* feat: view collection cannot be added, deleted, or modified

* refactor: connect to database view

* refactor: sync from database

* chore: rename list view sql

* chore: list view fields api

* chore: create collection without viewName

* feat: bring out fields when selecting a view

* chore: bring out fields when selecting a view

* feat: view field inference class

* chore: bring out fields when selecting a view

* chore: sync form database view

* chore: sync form database view

* refactor: view collection local

* feat: view get api

* feat: database type infer

* feat: integer map

* chore: remove from in view list

* chore: build error

* chore: uniq collection

* fix: typo

* chore: replace collection list source field

* fix: destroy view collection

* chore: timestamp field map

* refactor: interface avalableTypes

* refactor: interface avalableTypes

* chore: list fields test

* refactor: interface avalableTypes

* chore: uiSchema response in field source

* fix: view query

* chore: collection snippet

* refactor: view collection support preview

* fix: handle field source

* fix: typo

* fix: configure fileds title

* fix: configure fileds title

* fix: configure fileds title

* fix: sync from databse interface

* fix: sync from databse interface

* feat: set fields api

* fix: sync from databse fix

* feat: possibleTypes

* chore: fields get

* fix: sync from databse

* fix: list view test

* fix: view test in difference schema

* chore: comment

* feat: when there is only one source  collection, the view is a subset of a Collection

* feat: view collection add field

* fix: inherit query with schema

* fix: test

* fix: ci test

* fix: test with schema

* chore: set pg default search path

* chore: mysql test

* fix: test with schema

* chore: test

* chore: action test

* chore: view column usage return type

* feat: mysql field inference

* fix: tableName

* chore: node sql parser

* fix: sql build

* fix: database build

* fix: mysql test

* feat: view collection uiSchema title

* fix: incorrect field source display  when switching views

* refactor: view collection not allow modify

* fix: view collection is allow add, delete, and modify

* fix: mysql test

* fix: sqlite test

* fix: sqlite test

* fix: sqlite test

* fix: sqlite test

* chore: add id field as default target key

* style: style improve

* feat: load source field options

* style: style improve

* chore: disable remove column in view collection

* chore: support creating view collection with different schemas with the same name

* chore: support creating view collection with different schemas with the same name

* fix: query view in difference schema

* refactor: view collection viewname

* fix: query view collection in difference schema

* fix: field load

* chore: field options

* fix: mysql test

* fix: uiSchema component error when using a view field in a block

* fix: sqlite test

* chore: test

* fix: dump user views

* fix: view collection can be updated and edited in table block

* chore: sync from database display last field configuration

* chore: loadCollections

* chore: sync from database display last field configuration

* fix: field options merge issues

* style: preview table

* fix: view collection is allow using in kanban blocks

* refactor: code improve

* fix: view collection can be updated an edited in calendar block

* chore: disable infer field without interface

* feat: preview only shows source or interface fields

* fix: test

* refactor: locale

* feat: sql parser

* chore: remove node-sql-parser

* fix: yarn.lock

* test: view repository

* fix: view repository test

* chore: console.log

* chore: console.log

* fix: mysql without schema

* fix: mysql without schema

* chore: preview with field schema

* chore: tableActionInitializers

* style: preview style improve

* chore:  parameter is filter when there is no filterByTk

* fix: preview pagination

* fix: preview pagination

* style: preview table style improve

* fix: sync from database loading

* chore: preview performance optimization

* chore: preview performance optimization

* feat: limit & offset

* chore: preview performance optimization

* test: field with dot column

* fix: datetime interface display

* fix: missing boolean type

* fix: sync

* fix: sync from database

* style: style improve

* style: style improve

* style: style improve

* chore: preview table

* chore: preview table

* chore: preview table

* fix: styling

---------

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-04-01 21:56:01 +08:00
chenos
a9e5e14429
feat: tree collection (#1561)
* feat: adjacency list

* fix: error

* feat: collection extender

* Revert "feat: collection extender"

This reverts commit a942eee7699724fe831a98bae3f67a42db91a28b.

* fix: registerBuiltInListeners

* chore: getAllNodeIds

# Conflicts:
#	packages/plugins/acl/src/server.ts

* fix: get list data tree ids

# Conflicts:
#	packages/plugins/acl/src/__tests__/list-action.test.ts

* feat: suport add child

* feat: demo3

* feat: suport add child

* feat: support add child

* feat: support add child

* fix: tree true

* feat: suport expend and collapse

* feat: support expend and collapse

* feat: support expend and collapse

* feat:  table block of the selector supports tree table

* feat: expand and collapse are only displayed in the tree table

* fix: when the tree table is closed and opened, it needs to be refreshed to take effect

* fix: test

* refactor: add child is hidden when the tree table is closed

* refactor: tree table filter the children field

* refactor: tree table filter the children field

* refactor: tree table filter the children field

* refactor: expand and collapse button does not support modify name and icon

* refactor: parent cannot be modified when adding child

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: expand and collapse button hide when treetable is closed

* refactor: filter out the node itself when selecting parent

* refactor: filter out the node itself when selecting parent

* refactor:  tree collection locale

* refactor:  tree collection locale

* fix: parameter exception when creating data selector

* fix: translation

* refactor:  tree collection locale

* feat: data selector Support tree table

* fix: failed to uncheck when multiple data selectors are selected

* fix: open or disabled the tree table, and add child does not respond immediately

* feat: data selector Support tree table

* fix: can not hide add child button

* fix: improve code

* fix: tree table

* fix: dynamic children column

---------

Co-authored-by: Chareice <chareice@live.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-03-17 09:20:56 +08:00
ChengLei Shao
0e0eb6432e
feat: provide the underscored option for the database (#1366)
* feat: underscored options

* feat: underscored using hook

* feat: database underscored options

* feat: underscored env

* fix: collectionExistsInDb

* fix: test

* fix: nocobase install

* fix: test

* fix: belongsTo association

* fix: test of underscored

* chore: console.log

* fix: list action test

* fix: dump test

* chore: snakeCase algo

* fix: underscored field create

* fix: underscored env

* fix(acl): custom appends merge strategy (#1416)

* Update index.md

* fix(plugin-workflow): use promise to request (#1426)

* Update index.md

* Update collection.md

* Update index.md

* Update index.md

* Update collection.md

* Update field.md

* Update repository.md

* Update has-one-repository.md

* Update has-many-repository.md

* Update belongs-to-many-repository.md

* Update index.md

* chore: translate 'Add tab' in page header (#1424)

* fix: test

* fix: workflow test

* fix: underscored with inherits

* fix: underscored test

* fix:  process.env.DB_UNDERSCORED

* fix: process.env.DB_UNDERSCORED === 'true'

* fix: test

* fix: pg test

* fix: underscored table name

* feat: tableName & fieldName conflict check

* fix: test

* fix: underscored index

* fix: update field unique index

* fix: sync default value

* fix: collection manager create field

* chore: field sync

* fix: pg test

* chore: test

* fix: test

* chore: default constraint name

* chore: syncUniqueIndex

* feat: field destory before check

* feat: field type check

* fix: test

* fix: test

* fix: improve

* fix: should destroy when fields refer to the same field

* fix: acl meta with underscored

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-02-13 21:38:47 +08:00
ChengLei Shao
a614bc7de8
feat: acl optimization (#1136)
* fix: sort field with table dose not have primary key

* feat: fixed params merger

* chore(plugins/acl): fixed params

* chore(plugins/acl): allowConfigure of collections

* chore(plugins/china-region): disable actions other than list

* chore(plugins/collection-manager): allowConfigure permission

* chore(plugins/file-manager): acl fixed params

* chore: acl fixed params

* chore: rolesResourcesScopes onDelete cascade

* fix: install error

* chore: test

* fix: root user fixed params

* fix: role resource scope onDelete

* chore: test

* chore: test

* fix: acl

* chore: disable index.html cache

* chore: disable index.html cache

* test: destory user role

* test: destory throught table

* fix: test

* fix: test

* chore: add rolesUsers to fixed params

* feat: permission logging

* feat: permission logging

* fix: test

* fix: test

* chore: disable grant target action

* fix: appends with fields

* fix: get action params

* fix: associationActions

* chore: change AssociationField using relation type

* chore: typo

* refactor: allow to skip

* fix: prettier

* chore: attachments association action

* fix: allowConfigure condition

* fix: deprecated allow

* fix: please use skip instead

* feat: table column aclcheck

* chore: test

* feat: throw error when detory no permission record

* chore: test

* chore: acl test

* feat: field acl

* chore: after action middleware

* fix: destory permission check

* chore: middleware use

* fix: test

* feat: filter match

* feat: subform/subtable field acl check

* feat: action permision by scope

* feat: action permision by scope

* feat: list action with allowedActions

* chore: all allowed action

* fix: pk error

* fix: merge error

* fix: create query sql

* fix: skip permission

* fix: scope with association field

* feat: action acl fix

* feat: action acl fix

* fix: update submodule

* Feat: setting center permission (#1214)

* feat: add setting center permissions

* feat: setting center permissions backlist

* feat: setting center permissions BLACKLIST

* feat: setting center permissions blacklist

* feat: setting center permissions blacklist

* feat: setting center permission

* feat: configure plugin tab expand

Co-authored-by: chenos <chenlinxh@gmail.com>

* Feat :field acl (#1211)

Co-authored-by: chenos <chenlinxh@gmail.com>

* fix: build error

* test: acl snippet

* feat: set field

* fix: test

* fix: build error

* fix: utils Dependency cycles

* feat: general permissions

* feat: delete pluginTabBlacklist

* fix: test

* feat: snippetManager allow method

* feat: acl role snippetAllowed method

* feat: array field repository

* feat:  ArrayFieldRepository

* fix: test

* fix: ci

* fix: ci error

* fix: add set parse

* test: array field repository

* chore: addSnippetPatten

* fix: start

* feat: sync role snippets

* feat: snippets check

* feat: snippets check

* chore: acl role snippet api

* fix: test

* fix: test

* refactor: acl role snippets

* chore: registerACLSettingSnippet

* chore: default snippets

* feat: snippets match

* feat: snippets check

* feat: snippets check

* feat: pm permision check

* feat: pm permision check

* feat: snippet pattern match

* feat: pluginManagerToolbar check

* feat: pluginManagerToolbar check

* chore: snippets default value

* feat: set role snippets migration

* chore: snippets

* feat: acl local

* feat: acl local

* feat: bookmask fix

* feat: plugin-manger & ui-editor snippet

* feat: set allowConfigure to false when upgrade to snippets

* feat: destory action acl fix

* feat: destory action acl fix

* fix: association resource params merge

* fix: ui editor snippet

* feat:  action acl fix

* chore: move list meta middleware into plugins/acl

* fix: test

* feat:  action acl fix

* feat: action acl check fix

* feat: plugins toolbar fix

* feat: gitmodules

* fix: subproject

* chore: add avaiableActions to snippet

* chore: change plugin-manager snippet

* feat: configure action acl fix

* feat: plugin tab acl check fix

* chore: roles snippets

* fix: add actions to snippet

* feat: allowconfigure fix

* fix: count with filterBy

* fix: build error

* feat: get action with allowedActions

* feat: acl route check fix

* feat:  aclActionProvider fix

* feat: actionscpe fix

* feat: actionname alias

* feat: setting center fix

* feat: acl provider fix

* fix: role collection

* feat: associate resource  acl

* feat: associate resource  acl

* feat: redirect to 403

* feat: route redirct

* feat:  acl scope check by record

* fix: fields  appends fix

* fix: fields  appends fix

* fix: fields  appends fix

* fix: allowedActions  fix

* fix:  menu items

* fix: rename

* fix: improve code

* fix: improve code

* fix: improve code

* fix: ctx?.data?.data

* fix: styling

* fix: allowAll after ignore scope

* chore: allowConfigure condition

* fix: collections.fields:*

* fix: acl test

* fix: update submodule

* fix: acl test

* fix: acl snippet

* fix: updates

* fix: only load history for logged-in users

* fix: this.app.acl.registerSnippet

* fix: downloadXlsxTemplate

* fix: 404

* feat: allowedAction in association list response

* fix: listData get

* fix: test

* fix: x-collection-field

* fix: update record error

* fix: calendar template

* test: allow manager

* fix: fetch action step

* fix: update submodule

* fix: refresh

* fix: refresh

* fix: rolesResourcesScopes

* test: snippets

* fix: snippets

* fix: test

* fix: omit filter.createdById

* fix: improve code

* fix: collections path

* fix: test error

* fix: upgrade error

* fix: errors

* fix: read allowed actions error

* fix: kanban error

* fix: error

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-01-09 07:35:48 +08:00
ChengLei Shao
6b0ed79f51
feat: duplicator plugin (#1265)
* chore: dump plugin

* chore: rename plugin

* chore: add duplicator into preset

* chore: tmp commit

* feat: restore & dump action

* feat: collection dump & restore

* feat: collection dump & restore

* fix: dump with json type

* fix: dump uischema

* chore: tmp commit

* chore: tmp commit

* feat: restore custom collections

* chore: code

* fix: build

* chore: tmp commit

* fix: pm.generateClientFile

* feat: dump with user plugins

* feat: restore ignore collection

* feat: ignore user with rolesUsers

* chore: client plugins

* refactor: restore insert sql

* chore: code format

* feat: restore with sequelize insert query

* fix: restore json field

* fix: json restore

* refactor: dumper

* refactor: restorer

* chore: dump file name

* chore: dump file name

* chore: dump message

* fix: restore with jsonb fields

* feat: field data writer

* chore: code

* feat: collection group manager

* feat: duplicator client

* feat: duplicator panel

* chore: disable duplicator ui

* feat: dump with inquirer

* chore: dumper

* chore: collection group manager

* feat: restore with inquirer

* chore: comment

* chore: inquirer page size

* feat: warning before restore

* feat: sync postgres sequence id after import collection

* chore: restore checked

* feat: dump with through table

* feat: restore with through table

* feat: restore with sequence field

* chore: graph collection manager collection group

* fix: dump with no column tables

* fix: dump empty table

* fix: force remove workdir

* chore: disable throw error when sync empty table

* feat: support map field restore

* fix: restore from pg dumped file

* fix: dump with logic field

* chore: console.log

* chore: collection group

* chore: handle import collection error

* fix: dump migrations table

* feat: display custom collection title

* fix: restore collection title display

* fix: dump iframe html

* fix: dump with postgres inhertitance

* fix: dump sql

* chore: export snapshot field

* fix: import with sequences

* fix: import sequences

* fix: storage

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-01-08 12:45:02 +08:00
chenos
9d618315ae
fix(database): filter match (#1319)
Co-authored-by: Chareice <chareice@live.com>
2023-01-03 13:38:20 +08:00
ChengLei Shao
38b5974b90
fix: disable filterByTk options in destory method when collection has no primary key or has composite primary key (#1313)
* chore: tmp commit

* feat: filterByTk options with no primary key table

* chore: support filterTargetKey options

* chore: test
2023-01-01 23:14:48 +08:00
ChengLei Shao
33377c7d3a
fix: slow find with include in mysql (#1304)
* fix: slow find with include in mysql

* fix: test

* fix: test

* chore: console.log

* chore: test
2022-12-31 22:35:12 +08:00
Dunqing
07c373956c
chore: upgrade sequelize version to to latest (#1234)
* chore: upgrade sequelize version to to latest

* fix: type error

* chore: type ModelCtor to ModelStatic

* feat: update sequelize version of the map plugin

* chore: update lock

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: chareice <chareice@live.com>
2022-12-24 16:30:01 +08:00
ChengLei Shao
393ada2bc5
feat: set field (#1237)
* feat: set field

* feat: array field repository

* feat:  ArrayFieldRepository

* fix: add set parse

* test: array field repository

* chore: update submodule

* chore: field bind & unbind

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-12-13 18:02:03 +08:00
chenos
cbea13260e
feat: update many (#1135) 2022-11-24 00:24:27 +08:00
ChengLei Shao
466aa4987e
fix: sort field with table dose not have primary key (#1119) 2022-11-22 10:13:55 +08:00
ChengLei Shao
e991b2965a
feat: collection inheritance (#1069)
* chore: test

* chore: inherited-collection class

* feat: collection inherit

* feat: collection inherit

* feat: inhertis sync runner

* test: get parents fields

* feat: collection inherit style promote

* feat: sync

* feat: sync alter table

* feat: pgOnly Test

* fix: child collection create api

* feat: replace parent field

* chore: reload parent fields

* test: reload collection test

* feat: details are displayed according to conditions

* fix: typo

* feat: inheritance map class

* chore: is parent node

* feat: display where child row created from

* fix: find with appends

* feat: add parent collection fields

* fix: create table

* feat: load fields for all children

* refactor: sync fields from parent

* test: has one field inhertis

* feat: replace child association target

* feat: should not replace child field when parent field update

* test: should update inherit field when parent field update

* feat: only the blocks directly inherited from the current data are displayed

* fix: inherit from multiple collections

* feat: only the blocks directly inherited from the current data are displayed

* fix: test

* feat: parent collection expend

* fix: test

* test: belongsToMany inherits

* test: belongsToMany inherits

* feat: block display

* feat: collection inherite

* feat: collection inherite

* feat: multiple inherits

* fix: sync runner

* feat: collection inherite

* feat: collecton inherits

* feat: cannot be modified after inheritance and saving

* feat: collection inherit for graph

* feat: collection inherits

* fix: drop inhertied field

* fix: should throw error when type conflit

* feat: output inherited fields

* feat: bulk update collection fields

* feat: collection fields

* feat: collection fields

* test: create relation with child table

* fix: test

* fix: test

* fix: test

* feat: style impove

* test: should not replace field with difference type

* feat: add text

* fix: throw error when replace field with difference type

* feat: overriding

* feat: kan bankanban group fields

* feat: calendar block fields

* feat: kan bankanban group fields

* fix: test

* feat: relationship fields

* feat: should delete child's field when parent field deleted

* feat: foreign key filter

* fix: build error & multiple inherit destory field

* fix: test

* chore: disable error

* feat: no recursive update associations (#1091)

* feat: update associations

* fix(collection-manager): should update uiSchema

* chore: flip if

* feat: mutile inherits

* feat: db dialect

* feat: inherits show by database

* chore: git hash into docker image

* fix: js gzip

* fix: dockerfile

* chore: error message

* feat: overriding

* feat: overriding

* feat: overriding

* feat: local

* feat: filter fields by interface

* fix: database logging env

* test: replace hasOne target

* feat: add view

* feat: local

* chore: enable error

* fix: update docs

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2022-11-16 12:53:58 +08:00
ChengLei Shao
b3f3883435
fix: association accessors rebind (#1027)
* chore: test

* chore: test

* fix: association accessors rebind

* fix: test
2022-11-04 09:04:53 +08:00
ChengLei Shao
9f5f2d6028
feat: reference check (#989)
* chore: test

* chore: test

* chore: test code

* feat:  on delete restrict

* feat: on delete cascade

* feat:  on delete set null

* feat: reference unbind

* fix: test

* fix: acl test

* fix: test on Windows

* fix: database recreate

* fix: application reload

* fix: multi-app-manager test

* fix: test

* feat: ondelete

* fix: hasOne field onDelete

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-10-31 22:45:39 +08:00
ChengLei Shao
afa172a9be fix: empty logic operator filter (#961) 2022-10-27 14:11:36 +08:00
chenos
1bdc29b706 feat: changed with associations (#943)
* feat: changed with associations

* fix: test error

* fix: test error

* fix: test
# Conflicts:
#	packages/core/database/src/model.ts
2022-10-24 09:07:33 +08:00
Junyi
cadaa8a2c2 fix(plugin-workflow): add req context to processor (#936) 2022-10-24 09:02:30 +08:00
ChengLei Shao
4d6363b47a
Doc/db repository (#896)
* docs: update database repository docs

* docs: single relation repository docs

* docs: has many relation repository docs

* docs: belongs to many  relation repository docs

* docs: acl

* docs: actions

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-10-16 19:16:14 +08:00
ChengLei Shao
6076014c54 feat: create with array of values (#912)
* feat: create with array of values

* chore: console.log

* chore: debug
# Conflicts:
#	packages/core/database/src/relation-repository/relation-repository.ts
2022-10-15 10:49:29 +08:00
Junyi
4247c1b255
Doc: api database events (#887)
* docs: add full sequelize model event types

* feat: update docs

* fix: types

* fix: update docs

* docs: refactor db event apis

* docs: add all events to db api

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-10-14 17:22:32 +08:00
ChengLei Shao
f490fd358a fix: slow join query issued by appends field in find method of repository (#845)
* fix: slow join query issue by appends field in repository.find

* feat: handle appending query in multiple relation repository

* feat: handle appending query in single relation repository

Co-authored-by: chenos <chenlinxh@gmail.com>
(cherry picked from commit 9222ff4f0ca92bc554107fccc0cf2a9d6290e56d)

# Conflicts:
#	packages/core/database/src/__tests__/relation-repository/hasone-repository.test.ts
#	packages/core/database/src/repository.ts
2022-10-13 12:36:20 +08:00
ChengLei Shao
3082a7d6f8 feat: update option must have filter or filterByTk (#847)
* feat: update option must have filter or filterByTk

* fix: typo

* fix: typo

(cherry picked from commit 83e6f93e1e3a188781530ec7492de1ed917a4dc1)

# Conflicts:
#	packages/plugins/acl/src/server.ts
#	packages/plugins/collection-manager/src/__tests__/field-options/indexes.test.ts
2022-10-13 12:19:05 +08:00
Junyi
0190c573c5
fix(plugin-workflow): fix extend collection (#708)
* fix(plugin-workflow): fix extend collection

* fix: extendCollection

Co-authored-by: chenos <chenlinxh@gmail.com>
2022-08-04 21:56:13 +08:00
chenos
245bd01bd6
fix: missing transaction (#531) 2022-06-23 23:37:55 +08:00