diff --git a/tools/proto/tools.pb.go b/tools/proto/tools.pb.go index 30bccb3a5..10c5fe7dd 100644 --- a/tools/proto/tools.pb.go +++ b/tools/proto/tools.pb.go @@ -130,6 +130,7 @@ type DisplayLayoutConfig_Type int32 const ( DisplayLayoutConfig_UNKNOWN DisplayLayoutConfig_Type = 0 DisplayLayoutConfig_INBOX DisplayLayoutConfig_Type = 1 + DisplayLayoutConfig_BOARD DisplayLayoutConfig_Type = 2 ) // Enum value maps for DisplayLayoutConfig_Type. @@ -137,10 +138,12 @@ var ( DisplayLayoutConfig_Type_name = map[int32]string{ 0: "UNKNOWN", 1: "INBOX", + 2: "BOARD", } DisplayLayoutConfig_Type_value = map[string]int32{ "UNKNOWN": 0, "INBOX": 1, + "BOARD": 2, } ) @@ -1180,6 +1183,8 @@ type ActionLink struct { Description *StringTemplate `protobuf:"bytes,5,opt,name=description,proto3,oneof" json:"description,omitempty"` // Empty by default // When the link is used within a list of action links, this field will be used to order items. DisplayOrder int32 `protobuf:"varint,6,opt,name=display_order,json=displayOrder,proto3" json:"display_order,omitempty"` + // If this link should be opened up as a dialog/modal. + AsDialog *bool `protobuf:"varint,7,opt,name=as_dialog,json=asDialog,proto3,oneof" json:"as_dialog,omitempty"` } func (x *ActionLink) Reset() { @@ -1256,6 +1261,13 @@ func (x *ActionLink) GetDisplayOrder() int32 { return 0 } +func (x *ActionLink) GetAsDialog() bool { + if x != nil && x.AsDialog != nil { + return *x.AsDialog + } + return false +} + type ToolGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1553,9 +1565,10 @@ type DisplayLayoutConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of the view: e.g. Inbox, List, Calendar, Table, Data Grid + // The type of the view: e.g. Inbox, Board, List, Calendar, Table, Data Grid Type DisplayLayoutConfig_Type `protobuf:"varint,1,opt,name=type,proto3,enum=tools.DisplayLayoutConfig_Type" json:"type,omitempty"` InboxConfig *InboxViewConfig `protobuf:"bytes,2,opt,name=inbox_config,json=inboxConfig,proto3,oneof" json:"inbox_config,omitempty"` + BoardConfig *BoardViewConfig `protobuf:"bytes,3,opt,name=board_config,json=boardConfig,proto3,oneof" json:"board_config,omitempty"` } func (x *DisplayLayoutConfig) Reset() { @@ -1604,6 +1617,13 @@ func (x *DisplayLayoutConfig) GetInboxConfig() *InboxViewConfig { return nil } +func (x *DisplayLayoutConfig) GetBoardConfig() *BoardViewConfig { + if x != nil { + return x.BoardConfig + } + return nil +} + // An email inbox style display for list views. Each item in a list will be displayed as a row with // an exapandable view type InboxViewConfig struct { @@ -1707,6 +1727,127 @@ func (x *InboxViewConfig) GetAvatarFallback() *StringTemplate { return nil } +// A kanban-like board display for list views. Each item in a list will be displayed as a card within +// swimlanes generated by a group_by_field +type BoardViewConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A link to a get action that will be used when the item is expanded + GetTool *ActionLink `protobuf:"bytes,1,opt,name=get_tool,json=getTool,proto3" json:"get_tool,omitempty"` + // The primary content of the card + Title *StringTemplate `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + // The secondary content of the card + Description *StringTemplate `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Content to be displayed in the right hand side of the card + ContextField *StringTemplate `protobuf:"bytes,4,opt,name=context_field,json=contextField,proto3,oneof" json:"context_field,omitempty"` + // If an avatar/image is to be displayed with every card + AvatarEnabled bool `protobuf:"varint,5,opt,name=avatar_enabled,json=avatarEnabled,proto3" json:"avatar_enabled,omitempty"` + // URL for the image. + AvatarUrl *StringTemplate `protobuf:"bytes,6,opt,name=avatar_url,json=avatarUrl,proto3,oneof" json:"avatar_url,omitempty"` + AvatarFallback *StringTemplate `protobuf:"bytes,7,opt,name=avatar_fallback,json=avatarFallback,proto3,oneof" json:"avatar_fallback,omitempty"` + // The response field that will be used to group items within swimlanes + GroupByField *JsonPath `protobuf:"bytes,8,opt,name=group_by_field,json=groupByField,proto3" json:"group_by_field,omitempty"` + // An optional update action that will be used when an item will move between swimlanes + UpdateAction *ActionLink `protobuf:"bytes,9,opt,name=update_action,json=updateAction,proto3,oneof" json:"update_action,omitempty"` +} + +func (x *BoardViewConfig) Reset() { + *x = BoardViewConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_tools_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoardViewConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoardViewConfig) ProtoMessage() {} + +func (x *BoardViewConfig) ProtoReflect() protoreflect.Message { + mi := &file_tools_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoardViewConfig.ProtoReflect.Descriptor instead. +func (*BoardViewConfig) Descriptor() ([]byte, []int) { + return file_tools_proto_rawDescGZIP(), []int{15} +} + +func (x *BoardViewConfig) GetGetTool() *ActionLink { + if x != nil { + return x.GetTool + } + return nil +} + +func (x *BoardViewConfig) GetTitle() *StringTemplate { + if x != nil { + return x.Title + } + return nil +} + +func (x *BoardViewConfig) GetDescription() *StringTemplate { + if x != nil { + return x.Description + } + return nil +} + +func (x *BoardViewConfig) GetContextField() *StringTemplate { + if x != nil { + return x.ContextField + } + return nil +} + +func (x *BoardViewConfig) GetAvatarEnabled() bool { + if x != nil { + return x.AvatarEnabled + } + return false +} + +func (x *BoardViewConfig) GetAvatarUrl() *StringTemplate { + if x != nil { + return x.AvatarUrl + } + return nil +} + +func (x *BoardViewConfig) GetAvatarFallback() *StringTemplate { + if x != nil { + return x.AvatarFallback + } + return nil +} + +func (x *BoardViewConfig) GetGroupByField() *JsonPath { + if x != nil { + return x.GroupByField + } + return nil +} + +func (x *BoardViewConfig) GetUpdateAction() *ActionLink { + if x != nil { + return x.UpdateAction + } + return nil +} + // When embedding ActionLinks, we need to provide extra-configuration that will override the // link's target tool configuration type ToolGroup_GroupActionLink struct { @@ -1723,7 +1864,7 @@ type ToolGroup_GroupActionLink struct { func (x *ToolGroup_GroupActionLink) Reset() { *x = ToolGroup_GroupActionLink{} if protoimpl.UnsafeEnabled { - mi := &file_tools_proto_msgTypes[15] + mi := &file_tools_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1736,7 +1877,7 @@ func (x *ToolGroup_GroupActionLink) String() string { func (*ToolGroup_GroupActionLink) ProtoMessage() {} func (x *ToolGroup_GroupActionLink) ProtoReflect() protoreflect.Message { - mi := &file_tools_proto_msgTypes[15] + mi := &file_tools_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1779,7 +1920,7 @@ type CursorPaginationConfig_FieldConfig struct { func (x *CursorPaginationConfig_FieldConfig) Reset() { *x = CursorPaginationConfig_FieldConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tools_proto_msgTypes[16] + mi := &file_tools_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1792,7 +1933,7 @@ func (x *CursorPaginationConfig_FieldConfig) String() string { func (*CursorPaginationConfig_FieldConfig) ProtoMessage() {} func (x *CursorPaginationConfig_FieldConfig) ProtoReflect() protoreflect.Message { - mi := &file_tools_proto_msgTypes[16] + mi := &file_tools_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1835,7 +1976,7 @@ type CursorPaginationConfig_PageSizeConfig struct { func (x *CursorPaginationConfig_PageSizeConfig) Reset() { *x = CursorPaginationConfig_PageSizeConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tools_proto_msgTypes[17] + mi := &file_tools_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1848,7 +1989,7 @@ func (x *CursorPaginationConfig_PageSizeConfig) String() string { func (*CursorPaginationConfig_PageSizeConfig) ProtoMessage() {} func (x *CursorPaginationConfig_PageSizeConfig) ProtoReflect() protoreflect.Message { - mi := &file_tools_proto_msgTypes[17] + mi := &file_tools_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2103,7 +2244,7 @@ var file_tools_proto_rawDesc = []byte{ 0x09, 0x48, 0x00, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x8c, 0x02, 0x0a, 0x0a, 0x41, + 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0xbc, 0x02, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x6f, 0x6c, @@ -2118,9 +2259,12 @@ var file_tools_proto_rawDesc = []byte{ 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd0, 0x02, 0x0a, 0x09, 0x54, 0x6f, + 0x05, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, + 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x61, 0x73, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0xd0, 0x02, 0x0a, 0x09, 0x54, 0x6f, 0x6f, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, @@ -2196,7 +2340,7 @@ var file_tools_proto_rawDesc = []byte{ 0x12, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x61, + 0x75, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x43, 0x6f, @@ -2204,43 +2348,87 @@ var file_tools_proto_rawDesc = []byte{ 0x3e, 0x0a, 0x0c, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x22, - 0x1e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x22, 0xd7, 0x03, 0x0a, 0x0f, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x07, 0x67, 0x65, 0x74, 0x54, 0x6f, - 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, - 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, - 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, - 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x48, 0x03, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, - 0x72, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x65, 0x61, 0x6d, 0x6b, 0x65, 0x65, - 0x6c, 0x2f, 0x6b, 0x65, 0x65, 0x6c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0b, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x3e, 0x0a, 0x0c, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x42, 0x6f, + 0x61, 0x72, 0x64, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, + 0x0b, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x22, + 0x29, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10, 0x01, 0x12, + 0x09, 0x0a, 0x05, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x6e, 0x62, 0x6f, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xd7, 0x03, 0x0a, + 0x0f, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x2c, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x07, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x2b, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x09, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0f, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x0e, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, + 0x72, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x66, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xdd, 0x04, 0x0a, 0x0f, 0x42, 0x6f, 0x61, 0x72, 0x64, + 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x08, 0x67, 0x65, + 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, + 0x07, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, + 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x6f, + 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x61, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, + 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x04, 0x52, 0x0c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x65, 0x61, 0x6d, 0x6b, 0x65, 0x65, 0x6c, 0x2f, 0x6b, 0x65, + 0x65, 0x6c, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2256,7 +2444,7 @@ func file_tools_proto_rawDescGZIP() []byte { } var file_tools_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_tools_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_tools_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_tools_proto_goTypes = []any{ (RequestFieldConfig_ScopeType)(0), // 0: tools.RequestFieldConfig.ScopeType (ResponseFieldConfig_ScopeType)(0), // 1: tools.ResponseFieldConfig.ScopeType @@ -2276,16 +2464,17 @@ var file_tools_proto_goTypes = []any{ (*DataMapping)(nil), // 15: tools.DataMapping (*DisplayLayoutConfig)(nil), // 16: tools.DisplayLayoutConfig (*InboxViewConfig)(nil), // 17: tools.InboxViewConfig - (*ToolGroup_GroupActionLink)(nil), // 18: tools.ToolGroup.GroupActionLink - (*CursorPaginationConfig_FieldConfig)(nil), // 19: tools.CursorPaginationConfig.FieldConfig - (*CursorPaginationConfig_PageSizeConfig)(nil), // 20: tools.CursorPaginationConfig.PageSizeConfig - (proto.ActionType)(0), // 21: proto.ActionType - (proto.ActionImplementation)(0), // 22: proto.ActionImplementation - (proto.Type)(0), // 23: proto.Type + (*BoardViewConfig)(nil), // 18: tools.BoardViewConfig + (*ToolGroup_GroupActionLink)(nil), // 19: tools.ToolGroup.GroupActionLink + (*CursorPaginationConfig_FieldConfig)(nil), // 20: tools.CursorPaginationConfig.FieldConfig + (*CursorPaginationConfig_PageSizeConfig)(nil), // 21: tools.CursorPaginationConfig.PageSizeConfig + (proto.ActionType)(0), // 22: proto.ActionType + (proto.ActionImplementation)(0), // 23: proto.ActionImplementation + (proto.Type)(0), // 24: proto.Type } var file_tools_proto_depIdxs = []int32{ - 21, // 0: tools.ActionConfig.action_type:type_name -> proto.ActionType - 22, // 1: tools.ActionConfig.implementation:type_name -> proto.ActionImplementation + 22, // 0: tools.ActionConfig.action_type:type_name -> proto.ActionType + 23, // 1: tools.ActionConfig.implementation:type_name -> proto.ActionImplementation 5, // 2: tools.ActionConfig.inputs:type_name -> tools.RequestFieldConfig 6, // 3: tools.ActionConfig.response:type_name -> tools.ResponseFieldConfig 8, // 4: tools.ActionConfig.title:type_name -> tools.StringTemplate @@ -2300,7 +2489,7 @@ var file_tools_proto_depIdxs = []int32{ 12, // 13: tools.ActionConfig.embedded_tools:type_name -> tools.ToolGroup 16, // 14: tools.ActionConfig.display_layout:type_name -> tools.DisplayLayoutConfig 9, // 15: tools.RequestFieldConfig.field_location:type_name -> tools.JsonPath - 23, // 16: tools.RequestFieldConfig.field_type:type_name -> proto.Type + 24, // 16: tools.RequestFieldConfig.field_type:type_name -> proto.Type 8, // 17: tools.RequestFieldConfig.help_text:type_name -> tools.StringTemplate 11, // 18: tools.RequestFieldConfig.lookup_action:type_name -> tools.ActionLink 11, // 19: tools.RequestFieldConfig.get_entry_action:type_name -> tools.ActionLink @@ -2308,7 +2497,7 @@ var file_tools_proto_depIdxs = []int32{ 8, // 21: tools.RequestFieldConfig.placeholder:type_name -> tools.StringTemplate 0, // 22: tools.RequestFieldConfig.scope:type_name -> tools.RequestFieldConfig.ScopeType 9, // 23: tools.ResponseFieldConfig.field_location:type_name -> tools.JsonPath - 23, // 24: tools.ResponseFieldConfig.field_type:type_name -> proto.Type + 24, // 24: tools.ResponseFieldConfig.field_type:type_name -> proto.Type 8, // 25: tools.ResponseFieldConfig.help_text:type_name -> tools.StringTemplate 11, // 26: tools.ResponseFieldConfig.link:type_name -> tools.ActionLink 1, // 27: tools.ResponseFieldConfig.scope:type_name -> tools.ResponseFieldConfig.ScopeType @@ -2318,11 +2507,11 @@ var file_tools_proto_depIdxs = []int32{ 8, // 31: tools.ActionLink.title:type_name -> tools.StringTemplate 8, // 32: tools.ActionLink.description:type_name -> tools.StringTemplate 8, // 33: tools.ToolGroup.title:type_name -> tools.StringTemplate - 18, // 34: tools.ToolGroup.tools:type_name -> tools.ToolGroup.GroupActionLink + 19, // 34: tools.ToolGroup.tools:type_name -> tools.ToolGroup.GroupActionLink 9, // 35: tools.ResponseOverrides.field_location:type_name -> tools.JsonPath - 19, // 36: tools.CursorPaginationConfig.start:type_name -> tools.CursorPaginationConfig.FieldConfig - 19, // 37: tools.CursorPaginationConfig.end:type_name -> tools.CursorPaginationConfig.FieldConfig - 20, // 38: tools.CursorPaginationConfig.page_size:type_name -> tools.CursorPaginationConfig.PageSizeConfig + 20, // 36: tools.CursorPaginationConfig.start:type_name -> tools.CursorPaginationConfig.FieldConfig + 20, // 37: tools.CursorPaginationConfig.end:type_name -> tools.CursorPaginationConfig.FieldConfig + 21, // 38: tools.CursorPaginationConfig.page_size:type_name -> tools.CursorPaginationConfig.PageSizeConfig 9, // 39: tools.CursorPaginationConfig.next_page:type_name -> tools.JsonPath 9, // 40: tools.CursorPaginationConfig.total_count:type_name -> tools.JsonPath 9, // 41: tools.DataMapping.path:type_name -> tools.JsonPath @@ -2330,21 +2519,30 @@ var file_tools_proto_depIdxs = []int32{ 7, // 43: tools.DataMapping.value:type_name -> tools.ScalarValue 2, // 44: tools.DisplayLayoutConfig.type:type_name -> tools.DisplayLayoutConfig.Type 17, // 45: tools.DisplayLayoutConfig.inbox_config:type_name -> tools.InboxViewConfig - 11, // 46: tools.InboxViewConfig.get_tool:type_name -> tools.ActionLink - 8, // 47: tools.InboxViewConfig.title:type_name -> tools.StringTemplate - 8, // 48: tools.InboxViewConfig.description:type_name -> tools.StringTemplate - 8, // 49: tools.InboxViewConfig.context_field:type_name -> tools.StringTemplate - 8, // 50: tools.InboxViewConfig.avatar_url:type_name -> tools.StringTemplate - 8, // 51: tools.InboxViewConfig.avatar_fallback:type_name -> tools.StringTemplate - 11, // 52: tools.ToolGroup.GroupActionLink.action_link:type_name -> tools.ActionLink - 13, // 53: tools.ToolGroup.GroupActionLink.response_overrides:type_name -> tools.ResponseOverrides - 9, // 54: tools.CursorPaginationConfig.FieldConfig.response_field:type_name -> tools.JsonPath - 9, // 55: tools.CursorPaginationConfig.PageSizeConfig.response_field:type_name -> tools.JsonPath - 56, // [56:56] is the sub-list for method output_type - 56, // [56:56] is the sub-list for method input_type - 56, // [56:56] is the sub-list for extension type_name - 56, // [56:56] is the sub-list for extension extendee - 0, // [0:56] is the sub-list for field type_name + 18, // 46: tools.DisplayLayoutConfig.board_config:type_name -> tools.BoardViewConfig + 11, // 47: tools.InboxViewConfig.get_tool:type_name -> tools.ActionLink + 8, // 48: tools.InboxViewConfig.title:type_name -> tools.StringTemplate + 8, // 49: tools.InboxViewConfig.description:type_name -> tools.StringTemplate + 8, // 50: tools.InboxViewConfig.context_field:type_name -> tools.StringTemplate + 8, // 51: tools.InboxViewConfig.avatar_url:type_name -> tools.StringTemplate + 8, // 52: tools.InboxViewConfig.avatar_fallback:type_name -> tools.StringTemplate + 11, // 53: tools.BoardViewConfig.get_tool:type_name -> tools.ActionLink + 8, // 54: tools.BoardViewConfig.title:type_name -> tools.StringTemplate + 8, // 55: tools.BoardViewConfig.description:type_name -> tools.StringTemplate + 8, // 56: tools.BoardViewConfig.context_field:type_name -> tools.StringTemplate + 8, // 57: tools.BoardViewConfig.avatar_url:type_name -> tools.StringTemplate + 8, // 58: tools.BoardViewConfig.avatar_fallback:type_name -> tools.StringTemplate + 9, // 59: tools.BoardViewConfig.group_by_field:type_name -> tools.JsonPath + 11, // 60: tools.BoardViewConfig.update_action:type_name -> tools.ActionLink + 11, // 61: tools.ToolGroup.GroupActionLink.action_link:type_name -> tools.ActionLink + 13, // 62: tools.ToolGroup.GroupActionLink.response_overrides:type_name -> tools.ResponseOverrides + 9, // 63: tools.CursorPaginationConfig.FieldConfig.response_field:type_name -> tools.JsonPath + 9, // 64: tools.CursorPaginationConfig.PageSizeConfig.response_field:type_name -> tools.JsonPath + 65, // [65:65] is the sub-list for method output_type + 65, // [65:65] is the sub-list for method input_type + 65, // [65:65] is the sub-list for extension type_name + 65, // [65:65] is the sub-list for extension extendee + 0, // [0:65] is the sub-list for field type_name } func init() { file_tools_proto_init() } @@ -2534,7 +2732,7 @@ func file_tools_proto_init() { } } file_tools_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*ToolGroup_GroupActionLink); i { + switch v := v.(*BoardViewConfig); i { case 0: return &v.state case 1: @@ -2546,7 +2744,7 @@ func file_tools_proto_init() { } } file_tools_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*CursorPaginationConfig_FieldConfig); i { + switch v := v.(*ToolGroup_GroupActionLink); i { case 0: return &v.state case 1: @@ -2558,6 +2756,18 @@ func file_tools_proto_init() { } } file_tools_proto_msgTypes[17].Exporter = func(v any, i int) any { + switch v := v.(*CursorPaginationConfig_FieldConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tools_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*CursorPaginationConfig_PageSizeConfig); i { case 0: return &v.state @@ -2585,13 +2795,14 @@ func file_tools_proto_init() { file_tools_proto_msgTypes[12].OneofWrappers = []any{} file_tools_proto_msgTypes[13].OneofWrappers = []any{} file_tools_proto_msgTypes[14].OneofWrappers = []any{} + file_tools_proto_msgTypes[15].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tools_proto_rawDesc, NumEnums: 3, - NumMessages: 18, + NumMessages: 19, NumExtensions: 0, NumServices: 0, }, diff --git a/tools/proto/tools.proto b/tools/proto/tools.proto index 9aaff8a5e..9ebc3c113 100644 --- a/tools/proto/tools.proto +++ b/tools/proto/tools.proto @@ -250,6 +250,9 @@ message ActionLink { // When the link is used within a list of action links, this field will be used to order items. int32 display_order = 6; + + // If this link should be opened up as a dialog/modal. + optional bool as_dialog = 7; } message ToolGroup { @@ -318,12 +321,14 @@ message DisplayLayoutConfig { enum Type { UNKNOWN = 0; INBOX = 1; + BOARD = 2; } - // The type of the view: e.g. Inbox, List, Calendar, Table, Data Grid + // The type of the view: e.g. Inbox, Board, List, Calendar, Table, Data Grid Type type = 1; optional InboxViewConfig inbox_config = 2; + optional BoardViewConfig board_config = 3; } // An email inbox style display for list views. Each item in a list will be displayed as a row with @@ -344,3 +349,28 @@ message InboxViewConfig { optional StringTemplate avatar_url = 6; optional StringTemplate avatar_fallback = 7; } + +// A kanban-like board display for list views. Each item in a list will be displayed as a card within +// swimlanes generated by a group_by_field +message BoardViewConfig { + // A link to a get action that will be used when the item is expanded + ActionLink get_tool = 1; + // The primary content of the card + StringTemplate title = 2; + // The secondary content of the card + optional StringTemplate description = 3; + // Content to be displayed in the right hand side of the card + optional StringTemplate context_field = 4; + + // If an avatar/image is to be displayed with every card + bool avatar_enabled = 5; + // URL for the image. + optional StringTemplate avatar_url = 6; + optional StringTemplate avatar_fallback = 7; + + // The response field that will be used to group items within swimlanes + JsonPath group_by_field = 8; + + // An optional update action that will be used when an item will move between swimlanes + optional ActionLink update_action = 9; +}