* feat: init plugin
* feat: core fix schema
* feat: mail init plugin
* feat: core change plugin name
* feat: notificationType初步可以正常工作
* feat: 动态表单可以正常渲染
* feat: 修改notification type从form或record获取
* feat: 修复关联字段无法正常渲染问题
* fix: change node version
* feat: delete useless code
* feat: change Notification Sever to class
* feat: change plugin name
* feat: change plugin name
* feat: add nodemailer
* feat: change message name
* feat: change field name
* feat: temp change collection name
* feat: 初步能加载所有messageLog, 筛选还不起作用
* feat: messageLog可以显示, 但是messageId还不显示
* feat: fix bugs
* feat: fefactor message create form
* feat: temp
* feat: use mail config
* feat: add plugin preset
* feat: use array items
* feat: fix message config bug
* feat: use next yarn.lock
* feat: change dependencies to devDependencies
* feat: not improt name from package.json
* fix: fix import error
* fix: resolve confict in yarn.lock
* feat: update messageLog to Log
* feat: add workflow
* feat: add variables support
* feat: use raw textarea
* feat: temp
* feat: temp
* chore: fix variable input null value bug. Add content custom form
* feat: upgrade plugin
* feat: upgrade plugin
* feat: upgrade plugin
* feat: remove channel options title
* chore: fix some problem
* feat: temp
* feat: make field vertical
* feat: make form vertical
* feat: add locale support
* feat: refactor notification server registration to use notificationManager
* feat: add notification manager locales
* chore: remove useless file
* feat: update channel ID field type to string
* refactor: add logs locale support
* refactor: remove unused NotificationPluginStorer class
* feat: update mail channel title localization
* feat: register snippet for notification messages and allow sending messages for logged-in users
* refactor: update mail server to write logs for successful and failed email deliveries
* refactor: update mail server to write logs for successful and failed email deliveries
* refactor: optimize notification sending process and add logging for successful and failed deliveries
* refactor: update logger messages for notification delivery status
* feat: add channel collection to LogManager component
* refactor: update mail server to write logs for successful and failed email deliveries
* refactor: change message send api access right
* refactor: add id field to channel form schema and update channel collection UI
* refactor: update messageLog collection to use UUID for primary key
* refactor: update mail server to write logs for successful and failed email deliveries
* refactor: update mail server configuration form schema and UI
* refactor: update mail server configuration form schema and UI
* refactor: update channel collection name and form schema
* refactor: update mail server to write logs for successful and failed email deliveries
* refactor: update NotificationInstruction to use options instead of res and error for job result
* refactor: rename mail plugin package to use SMTP in the name
* refactor: update mail plugin package name to include SMTP
* refactor: update channel collection name and form schema
* refactor: update channel collection name and form schema
* refactor: update channel collection name and form schema
* fix: filterTargetKey
* refactor: update channel sort key
* refactor: update channel collection name and form schema
* refactor: update localization strings for email notifications
* chore: add register type unit test
* refactor: remove unused imports in registerType.test.ts
* refactor: remove unused imports in NotificationInstruction.tsx
* feat: add 'notification-manager' to the list of required plugins
* refactor: update notification sending logic in NotificationInstruction.ts
* feat: notification-core: add plugin context
* feat: add receiverType field to MessageConfigForm
* feat: add receiverType field to MessageConfigForm
* feat: add receiverType field to MessageConfigForm
* feat: refactor ReceiverConfigForm component structure
* feat: add description to channel name field
* feat: update channel schema with ellipsis for long values
* feat: update channel schema with ellipsis for long values, use tablev2 and formv2
* refactor: improve workflow execute logs
* feat: update channel schema with ellipsis for long values, use tablev2 and formv2
* feat: update channel schema with refresh and filter actions
* feat: update nocobase presets with workflow notification and notification manager plugins
* feat: remove unused channelId property from SendOptions interface
* feat: update @nocobase/plugin-notification-manager dependency to version >=0.17.0-alpha.3
* feat: update package descriptions and display names for notification plugins
* feat: update MessageConfigForm to use variableOptions for ReceiverInputComponent
* chore: update plugin versions to 1.4.0-alpha
* feat: update channel schema to include channelTitle property
* feat: update notification manager plugin locale and form components
* feat: update mail-server.ts to support sending emails to multiple receivers, cc, and bcc
* feat: update channel manager component to handle empty channel types
* feat: update channel manager component to handle empty channel types
* feat: update channel manager component to handle empty channel types
* feat: update rowKey fallback value in useTableBlockProps
* feat: temp
* refactor: update mail-server.ts and tsconfig.json
* refactor: update mail-server.ts and tsconfig.json
* refactor: update tsconfig.json to enable strictNullChecks and disallow JavaScript files
feat: Add 'workflow-notification' plugin to the list of presets in server/index.ts
* refactor: update localization files for channel display name and failed reason
* chore: improve UI
* refactor: update localization files for message
* refactor: update delete action confirmation message
* refactor: update constant for notification logs collection name
* refactor: update channel schema for action buttons and delete confirmation
* refactor: update provider name retrieval in MessageConfigForm
* refactor: update localization files for message
* refactor: update sendParams in NotificationInstruction
* refactor: update channel type constant to 'smtp-mail'
* refactor: remove unused code related to delete action in channel manager
* refactor: remove unused code related to delete action in channel manager
* refactor: update channel collection name constant
* refactor: update log detail visibility condition
* refactor: rename ContentConfigForm to MessageConfigForm
* refactor: update register and send api
* feat: update channel registerType function params
* refactor: update channel type key in ConfigForm component
(cherry picked from commit a00c75a8fb972938a22b959cfcd5cc8e9decfc21)
* refactor: remove unused import in ConfigForm component
* fix: improve code
* refactor: fix channelTypes reference in PluginNotificationManagerClient
* refactor: add permission for notificationChannels in PluginNotificationManagerServer
* fix: improve code
* fix: improve code
* fix: improve code
* fix: improve code
* fix: improve code
* fix: acl
* fix: build error
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
* refactor(plugin-acl): extensible support for role permissions configuration UI
* feat: complete the configuration UI
* feat: complete the backend section
* chore: update unit tests
* chore: add translation
* chore: change 'Menu' to 'Desktop menu'
* refactor: use 'extendCollection' instead of 'this.db.extendCollection'
* chore: update acl e2e test
* test: add e2e tests
* fix: should refresh data when changing tab
* fix(menu): should hide children when children only have one
* feat: show tip when no pages find
* feat(tabBar): supports left and right swiping
* refactor: improve code
* chore: make e2e test pass
* chore: add migration
* fix: should use tk instead of values
* chore: nothing
* fix: improve
* refactor: rename mobileMenuUiSchemas to mobileRoutes
* refactor: add onDelete
* fix: change snippet to 'pm.mobile' from 'pm.mobile.roles'
* refactor: extract nested loop to outside
* refactor: use db.on('mobileRoutes:afterCreate')
* refactor: simplify code logic
* chore: fix build
* fix: improve code
* chore: fix build
* feat: hide menu configuration UI when no permission
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
* feat(database): allows to filter child nodes in tree collections (#4770)
* feat(collection-tree): add collection tree plugin
* feat(collection-tree): add collection tree path handle function
* feat(collection-tree): add collection tree path root and depth column handle function
* feat(collection-tree): add exist tree collection data migrate function
* feat(collection-tree): improve exist tree collection data migrate function
* feat(collection-tree): improve exist tree collection data migrate function
* feat(collection-tree): add collection tree to build in plugin
* feat(collection-tree): modify collection tree plugin version
* feat(collection-tree): fix collection tree build bug
* feat(collection-tree): fix tree collection path create bug and add tree table search function
* feat(collection-tree): add tree table pagination function
* feat(collection-tree): fix tree table pagination function
* feat(collection-tree): fix tree table pagination function
* feat(collection-tree): fix tree table search function
* feat(collection-tree): fix tree table search function
* feat(collection-tree): improve tree table search filter function
* feat(collection-tree): update collection tree plugin version and preset package dependancy
* feat(collection-tree): improve tree collection function
* feat(collection-tree): remove the duplicate function
* feat(collection-tree): fix tree collection db exist bug
* feat(collection-tree): improve tree collection db variable name
* feat(collection-tree): remove migration file
* feat(collection-tree): add collection tree sync create function
* feat(collection-tree): add collection tree sync create function
* feat(collection-tree): disable collection tree search function
* feat(collection-tree): enable collection tree search function
* feat(collection-tree): modify collection tree signal to adapt test case
* feat(collection-tree): modify code to fix test case
* feat(collection-tree): improve code and abstract define collection tree path
* feat(collection-tree): modify rootPK to rootPk to avoid underscored behavior
* feat(collection-tree): update collection tree version and add collection tree plugin for test
* feat(collection-tree): fix filter collection tree root null bug
* feat(collection-tree): migrate tree test case to collection tree plugin directory
* feat(collection-tree): add transaction for collection tree table delete
* feat(collection-tree): fix collection tree switch bug
* feat(collection-tree): remove tree filter switch
* feat(collection-tree): fix test case
* feat(collection-tree): fix test case
* feat(collection-tree): fix DB UNDERSCORED bug
* feat(collection-tree): fix relate collections not exist bug
* feat(collection-tree): add common parent function
* feat(collection-tree): add compatible function for sqlite
* feat(collection-tree): modify collection tree path create method
* feat(collection-tree): migrate tree test case to no acl
* feat(collection-tree): migrate tree test case to no acl and fix collections undefined bug
* feat(collection-tree): migrate tree test case
* feat(collection-tree): fix test case bug
* feat(collection-tree): fix test case bug
* feat(collection-tree): fix test case bug
* feat(collection-tree): improve tree search function
* feat(collection-tree): merge the next branch code to fix confilct
* feat(collection-tree): merge the next branch code to fix confilct
* feat(collection-tree): merge the next branch code to fix confilct
* feat(collection-tree): split the collection tree test to new file and fix filterbytk bug
* feat(collection-tree): fix filter tree collection primary key bug
* feat(collection-tree): remove recursive test case and fix collection tree filter bug
* feat(collection-tree): fix collection tree filter bug
* feat(collection-tree): fix collection tree filter bug and modify test case
* feat(collection-tree): add parentid column for tree collection and modify test case
* feat(collection-tree): disable sync exist tree collection path table create logic
* feat(collection-tree): add sync exist tree collection path table create logic on plugin afterLoad
* feat(collection-tree): remove debug code
* feat(collection-tree): fix collection tree delete bug
* feat(collection-tree): improve collection tree filter find and count implement
* feat(collection-tree): improve path table name variable implement
* feat(collection-tree): remove unnecessary plugin for test case code
* feat(collection-tree): add await for delete synchronous path function
* feat(collection-tree): improve tree path create function
* feat(collection-tree): remove unnecessary code
* feat(collection-tree): remove unnecessary code
* feat(collection-tree): improve tree path create function
* feat(collection-tree): improve tree filter function
* feat(collection-tree): improve tree filter datasource to dynamic
* feat(collection-tree): improve find common parent code
* feat(collection-tree): add collection tree path table not found warning log
* feat(collection-tree): improve get collection primary key implementation
* feat(collection-tree): fix tree root path not delete bug and tree path definition bug
* feat(collection-tree): fix findAndCount function variable definition bug
* feat(collection-tree): modify migrate exist collection tree migration function
* feat(collection-tree): correct variable name
* feat(collection-tree): remove duplicate code
* feat(collection-tree): fix sync exist collection tree path function variable bug
* feat(collection-tree): improve collection tree path update logic
* feat(collection-tree): remove await for get collection
* test: add test cases
* feat(collection-tree): modify filter parameter for collection tree
* feat(collection-tree): remove await for get collection
* feat(collection-tree): remove necessary code
* feat(collection-tree): add exist tree collection path migration function
* feat(collection-tree): remove unused sync exist tree collection table function
* feat(collection-tree): use get method to replace use dataValues function
* feat(collection-tree): use get method to replace use dataValues function
* feat(collection-tree): fix migration rootPk variable bug
* feat(collection-tree): use get method to replace use dataValues function
* feat(collection-tree): improve get tree path logic
* feat(collection-tree): remove unused test case code
* feat(collection-tree): add sync collection tree test case
* feat(collection-tree): add tree path test case and fix migration bug
* feat(collection-tree): add migration db variable
* feat(collection-tree): change logger function
* feat(collection-tree): remove unused library
* feat(collection-tree): add plugin information
* feat(collection-tree): remove await for get collection and use this.db instead of this.app.db
* feat(collection-tree): improve the performance of exist data migration to path table
* feat(collection-tree): modify get tree path implement to avoid infinite loop bug
* feat(collection-tree): fix path create bug
* feat(collection-tree): add index for path table
* feat(collection-tree): fix related node path bug when some node parent changed
* feat(collection-tree): add transaction for get tree path function
* feat(collection-tree): add tree path test case
* feat(collection-tree): change parent field id name to dynamic
* feat(collection-tree): migrate some test case to path.test.ts file
* feat(collection-tree): add some test case for path table
* feat(collection-tree): fix sqlite and mysql json type search path data bug
* feat(collection-tree): fix sqlite query related data sql bug
* feat(collection-tree): fix list action test case query data with related data bug
* feat(collection-tree): try to fix mysql test case bug to remove index
* feat(collection-tree): remove unnecessary code
* chore: string field with length option
* feat(collection-tree): change path type to string and set max length to 1024
* fix: merge conflicts
* feat(collection-tree): modify query path filter to adapt the path change to string
* feat(collection-tree): remove append parent condition
* feat(collection-tree): split the path test case
* feat(collection-tree): remove unused code and fix test case plugin bug
* feat(collection-tree): improve get tree path implementation
* feat(collection-tree): disable one failed test case for full test
* feat(collection-tree): add transaction for collection tree migration
* feat(collection-tree): fix collection tree migration bug
* feat(collection-tree): remove sqlite handle condition code
* feat(collection-tree): add tree test case
* feat(collection-tree): add tree test case
* feat(collection-tree): modify test case to match the expection
* feat(collection-tree): modify tree implementation to root parent
* feat(collection-tree): remove unused function
* feat(collection-tree): add count function to solve tree data pagination implementation
* feat(collection-tree): split tree failed test case to legacy file
* feat(collection-tree): correct legacy tree test case to expection
* feat(collection-tree): add new tree test for legacy test case to meet expection
* feat(collection-tree): fix legacy test case to meet expection
* feat(collection-tree): modify legacy test case to meet expection and add new test case
* feat(collection-tree): improve tree test case
* feat(collection-tree): improve tree test case
* feat(collection-tree): improve tree test case
* feat(collection-tree): add tree test case
* feat(collection-tree): add tree count test case
* feat(collection-tree): add tree find and count test case
* feat(collection-tree): add tree find one test case
* feat(collection-tree): improve migration get path performance
* feat(collection-tree): improve get tree path function to avoid undefined parent data situation
* feat(collection-tree): add tree and raw parameter variable
* fix: test
* feat(collection-tree): modify index length
* feat(collection-tree): fix index snake case bug
* feat(collection-tree): improve tree filter search
* feat(collection-tree): fix tree search pagination parameter omit bug
* chore: optimize
* chore: optimize
* fix: build
* fix: type
* fix: bug
* chore: move tree repo to plugin
* fix: build
* fix: test
* chore: remove ts-ignore
* fix: issue of getting filter target key
---------
Co-authored-by: xilesun <2013xile@gmail.com>
Co-authored-by: Chareice <chareice@live.com>
* fix(tree): issue of building tree node map (#5072)
---------
Co-authored-by: jimmy201602 <zhengge2012@gmail.com>
Co-authored-by: xilesun <2013xile@gmail.com>
Co-authored-by: Chareice <chareice@live.com>