552 Commits

Author SHA1 Message Date
teable-bot
262e6db168 [sync] feat: add e2e tests for conditional lookup number type and field conversion from CreatedTime to Date
Synced from teableio/teable-ee@89389c0
2026-01-07 10:49:58 +00:00
Bieber
12270aee1e
[sync] perf(t1554): template image need crop (#978) T1561 (#2391)
* [sync] perf: template image need crop (#978)

Synced from teableio/teable-ee@2230d00

* fix: t1494 keep filter input stable for lookup filters

---------

Co-authored-by: teable-bot <bot@teable.io>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
2026-01-06 00:56:51 +08:00
Bieber
cabd5718e3
fix: network issues get too much attention T1479 (#2351) 2025-12-30 15:06:47 +08:00
nichenqin
5446d7ab83 fix(t1466): default formula timeZone and add NOW formula test 2025-12-29 10:54:54 +08:00
nichenqin
e62fcb45b1 fix: handle autonumber fallback for non-generated columns 2025-12-27 18:17:00 +08:00
nichenqin
565a044950 fix: prefer physical values for computed lookups 2025-12-26 08:53:21 +08:00
Uno
9ee739a88e
feat: add billable roles with constant T1315 (#2288)
* feat: add billable roles with constant

* feat: add collaborator update event and emit on update action

* refactor:  enhance UI components for better layout and accessibility

* refactor: remove unused billable roles logic and community edition check from collaborator service

* feat: enhance base permission update listener to emit collaborator update event

* fix: adjust collaborator component layout and remove unnecessary margin

* feat: add cache key generation for instance billable user count

* fix: update billable property type in IUserCollaborator interface to allow null

* fix: simplify badge rendering in Collaborator component

* style: update badge styling in Collaborator component for improved visibility
2025-12-24 18:08:48 +08:00
Uno
03f54a60be
feat: add confirmation option for button clicks T1005 (#2095)
* feat: add confirmation dialog for button actions

* fix: update theme styles for prompt editor

* feat: add confirm text editor to button options

* fix: update placeholder styles in editor themes to inherit font size
2025-12-24 11:00:13 +08:00
Aries X
f59c5a36ae
fix: export base table with dbtablename (#2324)
* fix: export base table with dbtablename

relative issueid: T1388

* fix: template sql query has no permission
2025-12-23 17:30:52 +08:00
Boris
703d65a887
feat: template preview (T1306,T1316) (#2291)
* feat: template preview

* feat: add preview in template detail

* fix: remove debug code

* fix: unit test

* fix: permission.service unit test

* fix: share link view in template preview pages

* feat: more complete template preview ui

* fix: missing app actions in template

* fix: locales file conflict

* feat: template support app T1316

* feat: support jump to active node when create template

* chore: update i18n

* chore: update i18n

* perf: optimise user publish to community validation process

* fix: base export e2e fail unexpect

* fix: losing duplicate audit-log

* fix: publish dialog select active node error

* feat: unlock template recommended select

* feat: app in template preview

* fix: featured null and false filter fail

* fix: template detail scroll

* chore: constant template spaceId

* perf: create template should close schedule trigger workflow and authority

* fix: publish base ui error

* feat: template preview e2e

* perf: delete template old snapshot app when create new

* fix: import table date with computed data error

* fix: import base e2e

* fix: duplicate base do not turn on workflow and authority

---------

Co-authored-by: caoxing <caoxing9@gmail.com>
2025-12-19 02:06:48 +08:00
Uno
1bc686314a
feat: app permission T1293 (#2290)
* feat: enhance app permission handling

* feat: add app-related translations for multiple languages

* feat: add app action prefix to permission handling
2025-12-17 21:46:04 +08:00
Uno
8deafdad3c
feat: base node (#2168)
* feat: add BaseNode and BaseNodeFolder models with migration

* feat: add tree component in ui-lib

* feat: implement BaseNode and BaseNodeFolder functionality with CRUD operations and event handling

* feat: enhance migration script

* feat: add support for user last visit tracking and resource deletion events

* feat: implement permission management for BaseNode with role-based access control

* refactor:  PinService to optimize resource fetching and enhance code readability

* fix: router

* feat: base import/export/duplicae support base node

* test: add unit tests for BaseNodeService methods including SQL generation and edge cases

* feat: implement folder depth validation and enhance node movement logic in BaseNodeService

* feat: integrate performance caching for base node list

* refactor: remove unused routes from BasePageRouter

* feat: enhance dashboard renaming functionality with improved state management and keyboard shortcuts

* refactor: simplify BaseNodeTree component by removing unnecessary separator and enhancing drop logic

* feat: enhance QuickAction search

* fix: sorting for nodes in BaseImportService to ensure proper parent-child relationships

* fix: delete folder and pin list

* feat: add permanent delete functionality for base nodes and enhance delete logic in BaseNodeService

* feat: enhance error handling in BaseNodeService and BaseNodeFolderService with localized messages

* refactor: rename hooks and reorganize imports in base node feature

* refactor: remove console log and clean up imports in PinItem component

* fix: pin sql

* fix: e2e

* fix: sharedb presence handling

* fix: e2e

* refactor: optimize database transactions in BaseNodeService

* fix: improve URL generation in BaseNode components

* refactor: remove unnecessary permission decorator and adjust layout in BaseNodeTree component

* feat: add validation for folder depth when moving nodes

* fix: refine anchorId logic in BaseNodeTree component for improved node positioning

* fix: adjust emoji picker size in BaseNodeTree component for better UI consistency

* fix: enhance expanded when create

* feat: implement auto-scroll functionality during drag in BaseNodeTree component

* fix: update TreeItemLabel and TreeDragLine styles for improved visual consistency

* fix: enhance canDrop logic in BaseNodeTree for improved item drop validation

* refactor: add resourceMeta in baseNodeSchema

* fix: e2e

* refactor: update folder creation and update endpoints to return structured response objects

* fix: e2e

* feat: add disallowDashboard setting and deprecation banner in dashboard components

* fix: type check

* feat: add loading state to BaseNodeContext and integrate skeleton loading in BaseNodeTree

* feat: enhance BaseNode service and UI to include defaultViewId in resourceMeta

* refactor: simplify URL construction in getNodeUrl and streamline table navigation in BaseNodeTree

* refactor: improve styling and structure in BaseNodeTree for better responsiveness and accessibility

* feat: add workflow state render

* fix: sync dataLoader returned undefined error

* refactor: update styling in BaseNodeTree for improved layout and consistency

* refactor: remove setEditingNodeId  when create and duplicate

* refactor: extract table creation logic  for improved readability

* refactor: update dropdown menu width and enhance delete confirmation title with resource type

* fix: common noun i18n

* feat: introduce useBaseNodeContext hook for improved context management in BaseNode components

* refactor: update  useBaseNode for enhanced context management

* refactor: enhance BaseNodeTree component with edit mode support and improved local storage handling

* feat: add onUpdateError callback to useBaseNodeCrud and BaseNodeTree for improved error handling

* refactor:  improved UI consistency

* refactor: improve menu invalidation

* refactor: remove permanent delete functionality from UI components

* refactor: permission handling by consolidating base node actions

* feat: implement base node event handling with create, update, and delete events

* refactor: base node event

* refactor: remove table iist in ssr

* feat: enhance BaseNodeTree with  highlight

* feat: update BaseNodeTree to expand parent nodes on selection

* refactor: replace nativeEnum with enum

* fix: enhance router visits check

* refactor: remove unused user last visit mutation from BaseNodeTree
2025-12-09 22:07:15 +08:00
Bieber
b4cb680f53
refactor: ai sdk 6 (#2118)
* chore: update tracing details

* feat: add attachemnt ro

* feat: upgrade to zod 4 and ai-sdk 5

* chore: openapi -> meta

* feat: ai-sdk 6

* chore: standard resource type

* feat: grid view state subscriber

* feat: pick upgrade node to 22

* fix: remove swagger to makesure backend start

* fix: remove swagger to makesure backend start

* chore: fix typecheck

* chore: clean ui effect

* chore: i18n for tools

* fix: card ui

* chore: update ai sdk provider

* fix: should not delete the last view in table

* feat: better zod error

* chore: clean base card

* fix: restore into base logic

* chore: i18n for tools

* chore: i18n for tools

* fix: swagger is back

* fix: pnpm lock

* fix: unit test

* fix: remove token

* fix: typecheck

* feat: proxy setting

* chore: update i18n for chat

* chore: tools i18n

* chore: upgrade ai sdk

* chore: i18n for ai gateway

* chore: rename app generation to app builder

* chore: remove deprecated version

* feat: adjust feature limitations

* chore: tools i18n

* fix: lint issue

* fix: api tag

* chore: zod i18n

* chore: add credit limit exceeded error handling

---------

Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
2025-12-09 14:43:29 +08:00
nichenqin
8251c0748a
feat: prevalidate not-null on record creation (#2229)
* feat: prevalidate not-null on record creation

* fix: respect notNull in rating cell validation

* refactor: enforce notNull via field validators

* refactor: centralize notNull handling via FieldCore

* test: e2e not-null validation for required fields
2025-12-08 13:04:29 +08:00
nichenqin
a2f43f9848 feat: add tracked fields support to last modified by 2025-12-08 10:08:42 +08:00
Aries X
9d5a023501
feat: add more detailed create record action (#2210)
* feat: add more detailed create record action

* fix: paste make repeatable audit log
2025-12-04 17:54:51 +08:00
nichenqin
de05b350ba
fix: default conditional filter to field mode (#2198)
* fix: default conditional filter to field mode

* test: align field reference operator expectations
2025-12-03 10:27:03 +08:00
nichenqin
a0e5157a38
Merge pull request #2181 from teableio/feat/audit-user-json
feat: store audit user fields as json
2025-12-01 20:59:46 +08:00
nichenqin
cb6c22c7fd fix: fix compare null value 2025-11-28 15:57:49 +08:00
nichenqin
74581868e5
fix/formula issues (#2164)
* fix(formula): update LEN function to use coerced text comparable for accurate length evaluation

* fix(formula): coerce non-text inputs to text for string functions in queries

* fix(formula): enhance validation for numeric functions with non-numeric arguments and add tests

* fix(formula): add numeric coercion for JSON and multi-value fields in generated and select queries

* fix(formula): normalize empty-string comparisons and ensure BLANK() branch returns null

* fix(formula): refactor normalization logic for string comparisons and enhance handling  null

* fix(formula): normalize datetime format expressions in queries and tests

* fix(formula): enhance numeric in sum and average functions for better handling of string inputs

* fix(formula): update array functions to accept array inputs and enhance JSON handling

* fix(formula): enhance numeric handling and add dbFieldName metadata for formula parameters

* fix(formula): add date arithmetic support in generated column and select query functions

* fix(formula): update dateAdd function to return false for immutability

* fix(formula): add support for datetime concatenation in generated columns

* fix(formula): enhance numeric handling for text inputs in generated formulas

* fix(formula): enhance timestamp sanitization to handle non-datetime text inputs

* fix(formula): improve datetime handling and numeric coercion in workday calculations

* fix(formula): enhance numeric coercion and field type resolution in PostgreSQL queries

* fix(formula): add aggregation tests for multi-value lookups with SUM, AVERAGE, MAX, and MIN

* fix(formula): ensure text collation for numeric blank comparisons to prevent 22P02 errors

* fix(formula): enhance datetime format handling and add regression test for numeric blank comparisons

* fix(formula): default DATETIME_FORMAT to ISO-like pattern for missing or blank formats

* fix(formula): enhance handling of NULL literals and improve datetime coercion logic

* fix(formula): prevent persisting generated-column meta for formulas in various tests

* chore: delete field confirm loading

* fix(formula): update interfaces for formula conversion context and query support
2025-11-28 11:44:35 +08:00
Boris
4764657f4a
perf(core): skip filter validation in mergeFilter function (#2169) 2025-11-26 10:38:46 +08:00
nichenqin
4f395224c4 fix(formula): enhance numeric handling and add dbFieldName metadata for formula parameters 2025-11-26 10:27:25 +08:00
nichenqin
3fb4477087 fix(formula): update array functions to accept array inputs and enhance JSON handling 2025-11-25 22:31:17 +08:00
nichenqin
74f4fc2993 fix(formula): enhance string concatenation for array-like and datetime values 2025-11-24 11:10:34 +08:00
nichenqin
ccda5e8aef fix(formula): preserve datetime formatting in text concat 2025-11-24 10:18:27 +08:00
nichenqin
92e95d0103
feat: support optional field parameter for last modified time (#2127)
* feat: support optional field parameter for last modified time

* fix: last modified time accept only field

* feat: last modified time formula accept multi field

* feat: last modified time type field accept field
2025-11-21 08:46:38 +08:00
nichenqin
60e729f27a
perf: better update record perf (#2140)
* perf: better update record perf
2025-11-19 08:37:00 +08:00
nichenqin
e07f2a7e2b fix: fix invalid date formatting 2025-11-13 11:03:35 +08:00
Uno
2a5d97e42c
feat: backend i18n (#2056)
* feat: integrate nestjs-i18n for internationalization support and add language field to User model

* feat: email & notify support i18n

* refactor: improve localization message handling in LinkNotification component

* refactor:  removing default values for email templates

* feat: enhance export notification with i18n support

* feat: integrate i18n module into global module for enhanced localization support

* feat: add messageI18n field to notifications for improved localization support

* chore: update pnpm-lock.yaml

* feat: enhance  i18n  language handling

* fix: update email verification messages to include "minutes" for clarity in multiple languages

* feat: i18n type support

* refactor: remove unused I18nContext import from import-open-api.service.ts
2025-11-12 13:14:58 +08:00
SkyHuang
1fd43c9183
feat: use unified frozen column logic in grid view (#2109)
* feat: use unified frozen column logic in grid view

* chore: add e2e tests for frozenFieldId updates in grid view options

* fix: simplify code complexity
2025-11-10 18:25:12 +08:00
Boris
b7924aa0c2
refactor: oauth app foreign keys (#2085)
* refactor: add oauth app foreign keys

* fix: personal oauth revoke token

* feat: add trash-related scopes to oAuth actions

* feat: add delete oauth apps

* chore: add oauth trash scope e2e

* chore: revoke token api docs return code
2025-11-06 16:41:34 +08:00
nichenqin
7057fbc622
Merge pull request #2090 from teableio/fix/bugs
fix/bugs
2025-11-06 11:24:11 +08:00
nichenqin
22e88eb5aa fix: fix formula reference lookup 2025-11-05 23:31:51 +08:00
nichenqin
6b61ebaa84 feat: refactor table ID handling across various services and queries for consistency 2025-11-04 20:19:19 +08:00
nichenqin
e377cabd5a feat: enhance foreign table ID retrieval to support field ID projections 2025-11-04 18:37:28 +08:00
nichenqin
74b7c19117 fix: enhance field selection logic for system user fields 2025-10-29 15:13:43 +08:00
nichenqin
ba3bc74aa3 fix: fix select system field 2025-10-29 12:40:31 +08:00
Uno
ff0e2ecfbb
feat: add localization for insufficient credit messages in multiple languages (#2052) 2025-10-28 11:26:48 +08:00
nichenqin
0a98d1440d
fix/conditional rollup bugs (#2042) 2025-10-26 12:45:07 +08:00
Boris
b98afe25cc
feat: add record|copy permissions (#2040) 2025-10-24 14:49:50 +08:00
Uno
1201979aa1
fix: use strict formatting for string to date (#2024) 2025-10-23 14:26:22 +08:00
Aries X
c4aa010820
fix: search high light (#2004)
* fix: search highlight lacking crrect fields

* fix: import empty string

* test: add search hightlight e2e

* fix: person view filter reset unexpectly

* perf: comment notify ui display

* fix: duplicate view losing property

* fix: table design panel database connection text overflow
2025-10-22 17:14:30 +08:00
nichenqin
e6dcd597c1
feat: limit max conditional lookup item (#2008)
* feat: limit max conditional lookup item

* fix: disable rollup text sum & average expression
2025-10-21 12:31:48 +08:00
nichenqin
040bbd6e61
fix: fix link lookup a formula field reference a lookup field reference a link field (#2002)
* fix: fix link lookup a formula field reference a lookup field reference a link field

* chore: aggregate should use query model

* fix: fix date to char

* fix: fix sum formula cast issue
2025-10-20 20:28:46 +08:00
nichenqin
872a1a6ef0 feat: field filter compare issue 2025-10-17 18:10:17 +08:00
nichenqin
9ed1282551 feat: support rollup formula change should delete sort 2025-10-17 18:10:17 +08:00
nichenqin
0c97b9e478 feat: conditional rollup sort limit 2025-10-17 18:10:17 +08:00
nichenqin
5c6b8712bc chore: conditional lookup sort 2025-10-17 18:10:17 +08:00
nichenqin
21aad68c8a feat: add average rollup function support in query dialects and related components 2025-10-17 18:10:16 +08:00
nichenqin
8553078552 feat: implement blank-aware comparison functions for PostgreSQL and SQLite queries 2025-10-17 18:10:16 +08:00