defineView()를 사용하세요.
모든 개체는 서버에서 기본 목록 뷰(OBJECT 탐색 항목이 여는 “All …” 테이블)를 자동으로 프로비저닝됩니다. 여기에는 앱이 생성하는 개체도 포함되며, 앱이 선언한 각 필드당 하나의 열이 생성됩니다. defineView()로 정의한 뷰는 항상 해당 기본 뷰 위에 추가되는 추가 뷰입니다.
src/views/example-view.ts
핵심 요점
objectUniversalIdentifier는 이 뷰가 적용되는 객체를 지정합니다. 이 객체는 사용자가 정의한 커스텀 객체일 수도 있고, 표준 Twenty 객체일 수도 있습니다.- 개체의 기본 목록 뷰는 서버 소유입니다.
key는 더 이상 사용되지 않으며 무시되므로 매니페스트 뷰가 이를 소유할 수 없습니다. 사이드바에서 한 번의 클릭으로 뷰에 접근할 수 있게 하려면VIEW탐색 항목을 제공하십시오. fields는 어떤 열을 어떤 순서로 표시할지를 제어합니다. 각 필드는fieldMetadataUniversalIdentifier를 참조합니다. 자동 생성된 시스템 필드(예:createdAt)를 참조하는 방법은 시스템 메타데이터 대상으로 지정하기를 참조하세요.- 또한 더 고급 구성을 위해
filters,filterGroups,sorts,groups,fieldGroups를 선언할 수 있습니다. position은 동일한 객체에 여러 뷰가 있을 때의 정렬 순서를 제어합니다.
선택적 속성
위의 모든 enum은
twenty-sdk/define에서 내보내집니다.
필터
뷰는 미리 적용된 필터와 함께 제공될 수 있습니다. 각 필터에는 세 가지 요소가 있습니다: 필터링할 필드, 연산자(어떻게 비교할지), 그리고 값(무엇과 비교할지). 세 가지가 모두 맞아야 하며, 필드 유형에 적용되지 않는 연산자를 사용하면 동기화 시 거부됩니다.필드 유형별 지원되는 연산자
유사한 이름을 가진 필드 타입이라도 전혀 다른 피연산자를 사용할 수 있습니다. 대표적인 예로SELECT와MULTI_SELECT가 있습니다.
피연산자별 값 구조
value 필드는 항상 JSON으로 직렬화할 수 있는 값이지만, 기대되는 구조는 피연산자에 따라 달라집니다:
보기가 UI에 표시되는 방식
보기만으로는 사이드바에서 직접 접근할 수 없습니다. 사이드바에 표시하려면, 해당 보기의universalIdentifier를 가리키는 VIEW 타입의 탐색 메뉴 항목과 연결해야 합니다. 이것이 정형화된 패턴입니다. 모든 사용자 정의 객체는 생성 시 기본 인덱스 뷰가 자동으로 생성되므로, 이를 여는 사이드바 항목만 제공하면 됩니다.