Merge pull request #3016 from influxdata/feature/table-fixed-column
Table graph option for fixed column and hover bug fixpull/10616/head
commit
fc11c83342
|
@ -284,6 +284,7 @@ func MarshalDashboard(d chronograf.Dashboard) ([]byte, error) {
|
||||||
SortBy: sortBy,
|
SortBy: sortBy,
|
||||||
Wrapping: c.TableOptions.Wrapping,
|
Wrapping: c.TableOptions.Wrapping,
|
||||||
ColumnNames: columnNames,
|
ColumnNames: columnNames,
|
||||||
|
FixFirstColumn: c.TableOptions.FixFirstColumn,
|
||||||
}
|
}
|
||||||
|
|
||||||
cells[i] = &DashboardCell{
|
cells[i] = &DashboardCell{
|
||||||
|
@ -447,6 +448,7 @@ func UnmarshalDashboard(data []byte, d *chronograf.Dashboard) error {
|
||||||
tableOptions.TimeFormat = c.TableOptions.TimeFormat
|
tableOptions.TimeFormat = c.TableOptions.TimeFormat
|
||||||
tableOptions.VerticalTimeAxis = c.TableOptions.VerticalTimeAxis
|
tableOptions.VerticalTimeAxis = c.TableOptions.VerticalTimeAxis
|
||||||
tableOptions.Wrapping = c.TableOptions.Wrapping
|
tableOptions.Wrapping = c.TableOptions.Wrapping
|
||||||
|
tableOptions.FixFirstColumn = c.TableOptions.FixFirstColumn
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -321,6 +321,7 @@ type TableOptions struct {
|
||||||
SortBy *TableColumn `protobuf:"bytes,3,opt,name=sortBy" json:"sortBy,omitempty"`
|
SortBy *TableColumn `protobuf:"bytes,3,opt,name=sortBy" json:"sortBy,omitempty"`
|
||||||
Wrapping string `protobuf:"bytes,4,opt,name=wrapping,proto3" json:"wrapping,omitempty"`
|
Wrapping string `protobuf:"bytes,4,opt,name=wrapping,proto3" json:"wrapping,omitempty"`
|
||||||
ColumnNames []*TableColumn `protobuf:"bytes,5,rep,name=columnNames" json:"columnNames,omitempty"`
|
ColumnNames []*TableColumn `protobuf:"bytes,5,rep,name=columnNames" json:"columnNames,omitempty"`
|
||||||
|
FixFirstColumn bool `protobuf:"varint,6,opt,name=fixFirstColumn,proto3" json:"fixFirstColumn,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TableOptions) Reset() { *m = TableOptions{} }
|
func (m *TableOptions) Reset() { *m = TableOptions{} }
|
||||||
|
@ -363,6 +364,13 @@ func (m *TableOptions) GetColumnNames() []*TableColumn {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *TableOptions) GetFixFirstColumn() bool {
|
||||||
|
if m != nil {
|
||||||
|
return m.FixFirstColumn
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
type TableColumn struct {
|
type TableColumn struct {
|
||||||
InternalName string `protobuf:"bytes,1,opt,name=internalName,proto3" json:"internalName,omitempty"`
|
InternalName string `protobuf:"bytes,1,opt,name=internalName,proto3" json:"internalName,omitempty"`
|
||||||
DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName,omitempty"`
|
DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName,omitempty"`
|
||||||
|
@ -1314,103 +1322,104 @@ func init() {
|
||||||
func init() { proto.RegisterFile("internal.proto", fileDescriptorInternal) }
|
func init() { proto.RegisterFile("internal.proto", fileDescriptorInternal) }
|
||||||
|
|
||||||
var fileDescriptorInternal = []byte{
|
var fileDescriptorInternal = []byte{
|
||||||
// 1558 bytes of a gzipped FileDescriptorProto
|
// 1573 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5f, 0x6f, 0xdb, 0x46,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5f, 0x8f, 0xdb, 0x44,
|
||||||
0x12, 0x07, 0x25, 0x51, 0x12, 0x47, 0x4e, 0xce, 0xe0, 0xf9, 0x12, 0x5e, 0x0e, 0x38, 0xe8, 0x88,
|
0x10, 0x97, 0x93, 0x38, 0x89, 0x27, 0xd7, 0xe3, 0x64, 0x8e, 0xd6, 0x14, 0x09, 0x05, 0x8b, 0x3f,
|
||||||
0x3b, 0x9c, 0xee, 0x4f, 0x7c, 0x07, 0x05, 0x45, 0x8b, 0xa0, 0x0d, 0x20, 0x5b, 0x6d, 0xea, 0xc6,
|
0xe1, 0x4f, 0x0f, 0x94, 0x0a, 0x81, 0x2a, 0xa8, 0x94, 0xbb, 0xd0, 0x72, 0xf4, 0xda, 0xbb, 0x6e,
|
||||||
0x89, 0x9d, 0x95, 0xed, 0x3e, 0x15, 0xc1, 0x4a, 0x1a, 0x49, 0x44, 0x28, 0x92, 0x5d, 0x92, 0xb6,
|
0xee, 0x8e, 0x27, 0x54, 0x6d, 0x92, 0x4d, 0x62, 0xd5, 0xb1, 0xcd, 0x7a, 0x7d, 0x17, 0xf3, 0x01,
|
||||||
0xd9, 0x0f, 0x53, 0xa0, 0x40, 0xfb, 0x05, 0x8a, 0xbe, 0xf4, 0xa9, 0xef, 0xfd, 0x10, 0x7d, 0xec,
|
0xf8, 0x18, 0x48, 0x48, 0xf0, 0x05, 0x10, 0x2f, 0x3c, 0xf1, 0xce, 0x07, 0xe1, 0x2b, 0xc0, 0x23,
|
||||||
0x57, 0x68, 0x1f, 0x8b, 0xd9, 0x5d, 0x52, 0x2b, 0x4b, 0x09, 0x52, 0xa0, 0xe8, 0xdb, 0xfe, 0x66,
|
0x9a, 0xdd, 0xb5, 0xb3, 0xb9, 0xa4, 0x55, 0x91, 0x10, 0x6f, 0xfb, 0x9b, 0x19, 0xcf, 0xce, 0xce,
|
||||||
0x86, 0xb3, 0xf3, 0x7f, 0x96, 0x70, 0x3b, 0x88, 0x32, 0x14, 0x11, 0x0f, 0xf7, 0x13, 0x11, 0x67,
|
0xcc, 0x6f, 0x76, 0x0d, 0xdb, 0x41, 0x24, 0x18, 0x8f, 0x68, 0xb8, 0x97, 0xf0, 0x58, 0xc4, 0x6e,
|
||||||
0xb1, 0xdb, 0x2e, 0xb1, 0xff, 0x63, 0x0d, 0x9a, 0xa3, 0x38, 0x17, 0x13, 0x74, 0x6f, 0x43, 0xed,
|
0xb3, 0xc0, 0xfe, 0x9f, 0x15, 0xa8, 0x0f, 0xe2, 0x8c, 0x8f, 0x98, 0xbb, 0x0d, 0x95, 0xc3, 0xbe,
|
||||||
0x68, 0xe8, 0x59, 0x5d, 0xab, 0x57, 0x67, 0xb5, 0xa3, 0xa1, 0xeb, 0x42, 0xe3, 0x19, 0x5f, 0xa2,
|
0x67, 0xb5, 0xad, 0x4e, 0x95, 0x54, 0x0e, 0xfb, 0xae, 0x0b, 0xb5, 0x47, 0x74, 0xce, 0xbc, 0x4a,
|
||||||
0x57, 0xeb, 0x5a, 0x3d, 0x87, 0xc9, 0x33, 0xd1, 0xce, 0x8a, 0x04, 0xbd, 0xba, 0xa2, 0xd1, 0xd9,
|
0xdb, 0xea, 0x38, 0x44, 0xae, 0x51, 0x76, 0x9a, 0x27, 0xcc, 0xab, 0x2a, 0x19, 0xae, 0xdd, 0x9b,
|
||||||
0xbd, 0x07, 0xed, 0xf3, 0x94, 0xb4, 0x2d, 0xd1, 0x6b, 0x48, 0x7a, 0x85, 0x89, 0x77, 0xca, 0xd3,
|
0xd0, 0x3c, 0x4b, 0xd1, 0xdb, 0x9c, 0x79, 0x35, 0x29, 0x2f, 0x31, 0xea, 0x4e, 0x68, 0x9a, 0x5e,
|
||||||
0xf4, 0x2a, 0x16, 0x53, 0xcf, 0x56, 0xbc, 0x12, 0xbb, 0xbb, 0x50, 0x3f, 0x67, 0xc7, 0x5e, 0x53,
|
0xc6, 0x7c, 0xec, 0xd9, 0x4a, 0x57, 0x60, 0x77, 0x07, 0xaa, 0x67, 0xe4, 0xc8, 0xab, 0x4b, 0x31,
|
||||||
0x92, 0xe9, 0xe8, 0x7a, 0xd0, 0x1a, 0xe2, 0x8c, 0xe7, 0x61, 0xe6, 0xb5, 0xba, 0x56, 0xaf, 0xcd,
|
0x2e, 0x5d, 0x0f, 0x1a, 0x7d, 0x36, 0xa1, 0x59, 0x28, 0xbc, 0x46, 0xdb, 0xea, 0x34, 0x49, 0x01,
|
||||||
0x4a, 0x48, 0x7a, 0xce, 0x30, 0xc4, 0xb9, 0xe0, 0x33, 0xaf, 0xad, 0xf4, 0x94, 0xd8, 0xdd, 0x07,
|
0xd1, 0xcf, 0x29, 0x0b, 0xd9, 0x94, 0xd3, 0x89, 0xd7, 0x54, 0x7e, 0x0a, 0xec, 0xee, 0x81, 0x7b,
|
||||||
0xf7, 0x28, 0x4a, 0x71, 0x92, 0x0b, 0x1c, 0xbd, 0x0c, 0x92, 0x0b, 0x14, 0xc1, 0xac, 0xf0, 0x1c,
|
0x18, 0xa5, 0x6c, 0x94, 0x71, 0x36, 0x78, 0x1a, 0x24, 0xe7, 0x8c, 0x07, 0x93, 0xdc, 0x73, 0xa4,
|
||||||
0xa9, 0x60, 0x0b, 0x87, 0x6e, 0x79, 0x8a, 0x19, 0xa7, 0xbb, 0x41, 0xaa, 0x2a, 0xa1, 0xeb, 0xc3,
|
0x83, 0x0d, 0x1a, 0xdc, 0xe5, 0x21, 0x13, 0x14, 0xf7, 0x06, 0xe9, 0xaa, 0x80, 0xae, 0x0f, 0x5b,
|
||||||
0xce, 0x68, 0xc1, 0x05, 0x4e, 0x47, 0x38, 0x11, 0x98, 0x79, 0x1d, 0xc9, 0x5e, 0xa3, 0x91, 0xcc,
|
0x83, 0x19, 0xe5, 0x6c, 0x3c, 0x60, 0x23, 0xce, 0x84, 0xd7, 0x92, 0xea, 0x15, 0x19, 0xda, 0x1c,
|
||||||
0x89, 0x98, 0xf3, 0x28, 0xf8, 0x8c, 0x67, 0x41, 0x1c, 0x79, 0x3b, 0x4a, 0xc6, 0xa4, 0x51, 0x94,
|
0xf3, 0x29, 0x8d, 0x82, 0xef, 0xa8, 0x08, 0xe2, 0xc8, 0xdb, 0x52, 0x36, 0xa6, 0x0c, 0xb3, 0x44,
|
||||||
0x58, 0x1c, 0xa2, 0x77, 0x4b, 0x45, 0x89, 0xce, 0xfe, 0x37, 0x16, 0x38, 0x43, 0x9e, 0x2e, 0xc6,
|
0xe2, 0x90, 0x79, 0xd7, 0x54, 0x96, 0x70, 0xed, 0xff, 0x6a, 0x81, 0xd3, 0xa7, 0xe9, 0x6c, 0x18,
|
||||||
0x31, 0x17, 0xd3, 0x37, 0x8a, 0xf5, 0x7d, 0xb0, 0x27, 0x18, 0x86, 0xa9, 0x57, 0xef, 0xd6, 0x7b,
|
0x53, 0x3e, 0x7e, 0xa1, 0x5c, 0xdf, 0x02, 0x7b, 0xc4, 0xc2, 0x30, 0xf5, 0xaa, 0xed, 0x6a, 0xa7,
|
||||||
0x9d, 0xfe, 0xdd, 0xfd, 0x2a, 0x89, 0x95, 0x9e, 0x43, 0x0c, 0x43, 0xa6, 0xa4, 0xdc, 0xff, 0x83,
|
0xd5, 0xbd, 0xb1, 0x57, 0x16, 0xb1, 0xf4, 0x73, 0xc0, 0xc2, 0x90, 0x28, 0x2b, 0xf7, 0x23, 0x70,
|
||||||
0x93, 0xe1, 0x32, 0x09, 0x79, 0x86, 0xa9, 0xd7, 0x90, 0x9f, 0xb8, 0xab, 0x4f, 0xce, 0x34, 0x8b,
|
0x04, 0x9b, 0x27, 0x21, 0x15, 0x2c, 0xf5, 0x6a, 0xf2, 0x13, 0x77, 0xf9, 0xc9, 0xa9, 0x56, 0x91,
|
||||||
0xad, 0x84, 0x36, 0x5c, 0xb1, 0x37, 0x5d, 0xf1, 0xbf, 0xad, 0xc3, 0xad, 0xb5, 0xeb, 0xdc, 0x1d,
|
0xa5, 0xd1, 0xda, 0x51, 0xec, 0xf5, 0xa3, 0xf8, 0xbf, 0x55, 0xe1, 0xda, 0xca, 0x76, 0xee, 0x16,
|
||||||
0xb0, 0xae, 0xa5, 0xe5, 0x36, 0xb3, 0xae, 0x09, 0x15, 0xd2, 0x6a, 0x9b, 0x59, 0x05, 0xa1, 0x2b,
|
0x58, 0x0b, 0x19, 0xb9, 0x4d, 0xac, 0x05, 0xa2, 0x5c, 0x46, 0x6d, 0x13, 0x2b, 0x47, 0x74, 0x29,
|
||||||
0x59, 0x1b, 0x36, 0xb3, 0xae, 0x08, 0x2d, 0x64, 0x45, 0xd8, 0xcc, 0x5a, 0xb8, 0xff, 0x82, 0xd6,
|
0x7b, 0xc3, 0x26, 0xd6, 0x25, 0xa2, 0x99, 0xec, 0x08, 0x9b, 0x58, 0x33, 0xf7, 0x5d, 0x68, 0x7c,
|
||||||
0xa7, 0x39, 0x8a, 0x00, 0x53, 0xcf, 0x96, 0xd6, 0xfd, 0x61, 0x65, 0xdd, 0xf3, 0x1c, 0x45, 0xc1,
|
0x9b, 0x31, 0x1e, 0xb0, 0xd4, 0xb3, 0x65, 0x74, 0x2f, 0x2d, 0xa3, 0x7b, 0x9c, 0x31, 0x9e, 0x93,
|
||||||
0x4a, 0x3e, 0x45, 0x43, 0x56, 0x93, 0x2a, 0x0d, 0x79, 0x26, 0x5a, 0x46, 0x95, 0xd7, 0x52, 0x34,
|
0x42, 0x8f, 0xd9, 0x90, 0xdd, 0xa4, 0x5a, 0x43, 0xae, 0x51, 0x26, 0xb0, 0xf3, 0x1a, 0x4a, 0x86,
|
||||||
0x3a, 0xeb, 0x28, 0xaa, 0x7a, 0xa0, 0x28, 0xbe, 0x05, 0x0d, 0x7e, 0x8d, 0xa9, 0xe7, 0x48, 0xfd,
|
0x6b, 0x9d, 0x45, 0xd5, 0x0f, 0x98, 0xc5, 0x8f, 0xa1, 0x46, 0x17, 0x2c, 0xf5, 0x1c, 0xe9, 0xff,
|
||||||
0x7f, 0x7b, 0x45, 0xc0, 0xf6, 0x07, 0xd7, 0x98, 0xbe, 0x1f, 0x65, 0xa2, 0x60, 0x52, 0xdc, 0xfd,
|
0x8d, 0x67, 0x24, 0x6c, 0xaf, 0xb7, 0x60, 0xe9, 0x17, 0x91, 0xe0, 0x39, 0x91, 0xe6, 0xee, 0x3b,
|
||||||
0x27, 0x34, 0x27, 0x71, 0x18, 0x8b, 0xd4, 0x83, 0x9b, 0x86, 0x1d, 0x12, 0x9d, 0x69, 0xb6, 0xdb,
|
0x50, 0x1f, 0xc5, 0x61, 0xcc, 0x53, 0x0f, 0xae, 0x06, 0x76, 0x80, 0x72, 0xa2, 0xd5, 0x6e, 0x07,
|
||||||
0x83, 0x66, 0x88, 0x73, 0x8c, 0xa6, 0xb2, 0x32, 0x3a, 0xfd, 0xdd, 0x95, 0xe0, 0xb1, 0xa4, 0x33,
|
0xea, 0x21, 0x9b, 0xb2, 0x68, 0x2c, 0x3b, 0xa3, 0xd5, 0xdd, 0x59, 0x1a, 0x1e, 0x49, 0x39, 0xd1,
|
||||||
0xcd, 0x77, 0x1f, 0xc2, 0x4e, 0xc6, 0xc7, 0x21, 0x9e, 0x24, 0x14, 0xc5, 0x54, 0x56, 0x49, 0xa7,
|
0x7a, 0xf7, 0x0e, 0x6c, 0x09, 0x3a, 0x0c, 0xd9, 0x71, 0x82, 0x59, 0x4c, 0x65, 0x97, 0xb4, 0xba,
|
||||||
0x7f, 0xc7, 0xc8, 0x87, 0xc1, 0x65, 0x6b, 0xb2, 0xf7, 0x1e, 0x83, 0x53, 0x59, 0x48, 0x4d, 0xf2,
|
0xd7, 0x8d, 0x7a, 0x18, 0x5a, 0xb2, 0x62, 0x7b, 0xf3, 0x3e, 0x38, 0x65, 0x84, 0x48, 0x92, 0xa7,
|
||||||
0x12, 0x0b, 0x19, 0x6f, 0x87, 0xd1, 0xd1, 0xfd, 0x3b, 0xd8, 0x97, 0x3c, 0xcc, 0x55, 0xad, 0x74,
|
0x2c, 0x97, 0xf9, 0x76, 0x08, 0x2e, 0xdd, 0x37, 0xc1, 0xbe, 0xa0, 0x61, 0xa6, 0x7a, 0xa5, 0xd5,
|
||||||
0xfa, 0xb7, 0x57, 0x3a, 0x07, 0xd7, 0x41, 0xca, 0x14, 0xf3, 0x61, 0xed, 0x1d, 0xcb, 0xff, 0xc1,
|
0xdd, 0x5e, 0xfa, 0xec, 0x2d, 0x82, 0x94, 0x28, 0xe5, 0x9d, 0xca, 0xa7, 0x96, 0xff, 0x7d, 0x05,
|
||||||
0x82, 0x1d, 0xf3, 0x1e, 0xf7, 0xaf, 0x00, 0x59, 0xb0, 0xc4, 0x0f, 0x62, 0xb1, 0xe4, 0x99, 0xd6,
|
0xb6, 0xcc, 0x7d, 0xdc, 0xd7, 0x01, 0x44, 0x30, 0x67, 0xf7, 0x62, 0x3e, 0xa7, 0x42, 0xfb, 0x34,
|
||||||
0x69, 0x50, 0xdc, 0x7f, 0xc3, 0xee, 0x25, 0x8a, 0x2c, 0x98, 0xf0, 0xf0, 0x2c, 0x58, 0x22, 0xe9,
|
0x24, 0xee, 0x7b, 0xb0, 0x73, 0xc1, 0xb8, 0x08, 0x46, 0x34, 0x3c, 0x0d, 0xe6, 0x0c, 0xfd, 0xc9,
|
||||||
0x93, 0xb7, 0xb4, 0xd9, 0x06, 0xdd, 0xbd, 0x0f, 0xcd, 0x34, 0x16, 0xd9, 0x41, 0x21, 0xf3, 0xdd,
|
0x5d, 0x9a, 0x64, 0x4d, 0xee, 0xde, 0x82, 0x7a, 0x1a, 0x73, 0xb1, 0x9f, 0xcb, 0x7a, 0xb7, 0xba,
|
||||||
0xe9, 0xff, 0xe9, 0x86, 0x6f, 0x87, 0x71, 0x98, 0x2f, 0x23, 0xa6, 0x85, 0xa8, 0x81, 0xaf, 0x04,
|
0xaf, 0x5c, 0x39, 0xdb, 0x41, 0x1c, 0x66, 0xf3, 0x88, 0x68, 0x23, 0x24, 0xf0, 0x25, 0xa7, 0x49,
|
||||||
0x4f, 0x92, 0x20, 0x9a, 0x97, 0x43, 0xa2, 0xc4, 0xee, 0xdb, 0xd0, 0x99, 0x48, 0x69, 0x2a, 0xfb,
|
0x12, 0x44, 0xd3, 0x62, 0x48, 0x14, 0xd8, 0xfd, 0x04, 0x5a, 0x23, 0x69, 0x8d, 0x6d, 0x5f, 0x74,
|
||||||
0xb2, 0x3a, 0x5e, 0xa1, 0xcf, 0x94, 0xf4, 0x47, 0xd0, 0x31, 0x78, 0x54, 0xcf, 0xe5, 0x37, 0xb2,
|
0xc7, 0x33, 0xfc, 0x99, 0x96, 0xee, 0xdb, 0xb0, 0x3d, 0x09, 0x16, 0xf7, 0x02, 0x9e, 0x0a, 0xa5,
|
||||||
0x99, 0x94, 0x83, 0x6b, 0x34, 0xb7, 0x0b, 0x9d, 0x69, 0x90, 0x26, 0x21, 0x2f, 0x8c, 0x7e, 0x33,
|
0x96, 0x1d, 0xd3, 0x24, 0x57, 0xa4, 0xfe, 0x00, 0x5a, 0x86, 0x0f, 0xec, 0xfb, 0xc2, 0xb7, 0x24,
|
||||||
0x49, 0xfe, 0x1c, 0x6c, 0x99, 0x75, 0xa3, 0x47, 0x9d, 0xb2, 0x47, 0xe5, 0xec, 0xab, 0x19, 0xb3,
|
0x9d, 0x4a, 0xc4, 0x8a, 0xcc, 0x6d, 0x43, 0x6b, 0x1c, 0xa4, 0x49, 0x48, 0x73, 0x83, 0x97, 0xa6,
|
||||||
0x6f, 0x17, 0xea, 0x1f, 0xe2, 0xb5, 0x1e, 0x87, 0x74, 0xac, 0x3a, 0xb9, 0x61, 0x74, 0xf2, 0x1e,
|
0xc8, 0x9f, 0x82, 0x2d, 0xbb, 0xc3, 0xe0, 0xb2, 0x53, 0x70, 0x59, 0xce, 0xc8, 0x8a, 0x31, 0x23,
|
||||||
0xd8, 0x17, 0x32, 0x65, 0xaa, 0xc3, 0x14, 0xf0, 0x1f, 0x41, 0x53, 0x55, 0x4d, 0xa5, 0xd9, 0x32,
|
0x77, 0xa0, 0xfa, 0x25, 0x5b, 0xe8, 0xb1, 0x89, 0xcb, 0x92, 0xf1, 0x35, 0x83, 0xf1, 0xbb, 0x60,
|
||||||
0x34, 0x77, 0xa1, 0x73, 0x22, 0x02, 0x8c, 0x32, 0xd5, 0x9b, 0xda, 0x50, 0x83, 0xe4, 0x7f, 0x6d,
|
0x9f, 0xcb, 0xd2, 0x2a, 0x26, 0x2a, 0xe0, 0xdf, 0x85, 0xba, 0xea, 0xae, 0xd2, 0xb3, 0x65, 0x78,
|
||||||
0x41, 0x43, 0xa6, 0xc2, 0x87, 0x9d, 0x10, 0xe7, 0x7c, 0x52, 0x1c, 0xc4, 0x79, 0x34, 0x4d, 0x3d,
|
0x6e, 0x43, 0xeb, 0x98, 0x07, 0x2c, 0x12, 0x8a, 0xc3, 0x3a, 0x50, 0x43, 0xe4, 0xff, 0x62, 0x41,
|
||||||
0xab, 0x5b, 0xef, 0xd5, 0xd9, 0x1a, 0xcd, 0xbd, 0x03, 0xcd, 0xb1, 0xe2, 0xd6, 0xba, 0xf5, 0x9e,
|
0x4d, 0x96, 0xcc, 0x87, 0xad, 0x90, 0x4d, 0xe9, 0x28, 0xdf, 0x8f, 0xb3, 0x68, 0x9c, 0x7a, 0x56,
|
||||||
0xc3, 0x34, 0x22, 0xd3, 0x42, 0x3e, 0xc6, 0x50, 0xbb, 0xa0, 0x00, 0x49, 0x27, 0x02, 0x67, 0xc1,
|
0xbb, 0xda, 0xa9, 0x92, 0x15, 0x99, 0x7b, 0x1d, 0xea, 0x43, 0xa5, 0xad, 0xb4, 0xab, 0x1d, 0x87,
|
||||||
0xb5, 0x76, 0x43, 0x23, 0xa2, 0xa7, 0xf9, 0x8c, 0xe8, 0xca, 0x13, 0x8d, 0xc8, 0x81, 0x31, 0x4f,
|
0x68, 0x84, 0xa1, 0x85, 0x74, 0xc8, 0x42, 0x7d, 0x04, 0x05, 0xd0, 0x3a, 0xe1, 0x6c, 0x12, 0x2c,
|
||||||
0xab, 0x86, 0xa5, 0x33, 0x69, 0x4e, 0x27, 0x3c, 0x2c, 0x3b, 0x56, 0x01, 0xff, 0x3b, 0x8b, 0x26,
|
0xf4, 0x31, 0x34, 0x42, 0x79, 0x9a, 0x4d, 0x50, 0xae, 0x4e, 0xa2, 0x11, 0x1e, 0x60, 0x48, 0xd3,
|
||||||
0xb9, 0x9a, 0x40, 0x1b, 0x11, 0xfe, 0x33, 0xb4, 0x69, 0x3a, 0xbd, 0xb8, 0xe4, 0x42, 0x3b, 0xdc,
|
0x92, 0xd8, 0xb8, 0x46, 0xcf, 0xe9, 0x88, 0x86, 0x05, 0xb3, 0x15, 0xf0, 0x7f, 0xb7, 0x70, 0xe2,
|
||||||
0x22, 0x7c, 0xc1, 0x85, 0xfb, 0x3f, 0x68, 0xca, 0xc2, 0xde, 0x32, 0x0d, 0x4b, 0x75, 0x32, 0xaa,
|
0xab, 0x49, 0xb5, 0x96, 0xe1, 0x57, 0xa1, 0x89, 0x53, 0xec, 0xc9, 0x05, 0xe5, 0xfa, 0xc0, 0x0d,
|
||||||
0x4c, 0x8b, 0x55, 0xf3, 0xa2, 0x61, 0xcc, 0x8b, 0xca, 0x59, 0xdb, 0x74, 0xf6, 0x3e, 0xd8, 0x34,
|
0xc4, 0xe7, 0x94, 0xbb, 0x1f, 0x42, 0x5d, 0x12, 0x60, 0xc3, 0xd4, 0x2c, 0xdc, 0xc9, 0xac, 0x12,
|
||||||
0x78, 0x0a, 0x69, 0xfd, 0x56, 0xcd, 0x6a, 0x3c, 0x29, 0x29, 0xff, 0x1c, 0x6e, 0xad, 0xdd, 0x58,
|
0x6d, 0x56, 0xce, 0x95, 0x9a, 0x31, 0x57, 0xca, 0xc3, 0xda, 0xe6, 0x61, 0x6f, 0x81, 0x8d, 0x03,
|
||||||
0xdd, 0x64, 0xad, 0xdf, 0xb4, 0x6a, 0x52, 0x47, 0x37, 0x25, 0x35, 0x41, 0x8a, 0x21, 0x4e, 0x32,
|
0x2a, 0x97, 0xd1, 0x6f, 0xf4, 0xac, 0xc6, 0x98, 0xb2, 0xf2, 0xcf, 0xe0, 0xda, 0xca, 0x8e, 0xe5,
|
||||||
0x9c, 0xca, 0x78, 0xb7, 0x59, 0x85, 0xfd, 0x2f, 0xac, 0x95, 0x5e, 0x79, 0x1f, 0xed, 0xa9, 0x49,
|
0x4e, 0xd6, 0xea, 0x4e, 0x4b, 0x32, 0x3b, 0x9a, 0xbc, 0x48, 0x96, 0x94, 0x85, 0x6c, 0x24, 0xd8,
|
||||||
0xbc, 0x5c, 0xf2, 0x68, 0xaa, 0x55, 0x97, 0x90, 0xe2, 0x36, 0x1d, 0x6b, 0xd5, 0xb5, 0xe9, 0x98,
|
0x58, 0xe6, 0xbb, 0x49, 0x4a, 0xec, 0xff, 0x68, 0x2d, 0xfd, 0xca, 0xfd, 0xf0, 0x3e, 0x1b, 0xc5,
|
||||||
0xb0, 0x48, 0x74, 0x06, 0x6b, 0x22, 0xa1, 0xda, 0x59, 0x22, 0x4f, 0x73, 0x81, 0x4b, 0x8c, 0x32,
|
0xf3, 0x39, 0x8d, 0xc6, 0xda, 0x75, 0x01, 0x31, 0x6f, 0xe3, 0xa1, 0x76, 0x5d, 0x19, 0x0f, 0x11,
|
||||||
0x1d, 0x02, 0x93, 0xe4, 0xde, 0x85, 0x56, 0xc6, 0xe7, 0x2f, 0x68, 0xb4, 0xe8, 0x4c, 0x66, 0x7c,
|
0xf3, 0x44, 0x57, 0xb0, 0xc2, 0x13, 0xec, 0x9d, 0x39, 0xa3, 0x69, 0xc6, 0xd9, 0x9c, 0x45, 0x42,
|
||||||
0xfe, 0x04, 0x0b, 0xf7, 0x2f, 0xe0, 0xcc, 0x02, 0x0c, 0xa7, 0x92, 0xa5, 0xd2, 0xd9, 0x96, 0x84,
|
0xa7, 0xc0, 0x14, 0xb9, 0x37, 0xa0, 0x21, 0xe8, 0xf4, 0x09, 0x8e, 0x20, 0x5d, 0x49, 0x41, 0xa7,
|
||||||
0x27, 0x58, 0xf8, 0x3f, 0x5b, 0xd0, 0x1c, 0xa1, 0xb8, 0x44, 0xf1, 0x46, 0x0b, 0xcc, 0x7c, 0x18,
|
0x0f, 0x58, 0xee, 0xbe, 0x06, 0xce, 0x24, 0x60, 0xe1, 0x58, 0xaa, 0x54, 0x39, 0x9b, 0x52, 0xf0,
|
||||||
0xd4, 0x5f, 0xf3, 0x30, 0x68, 0x6c, 0x7f, 0x18, 0xd8, 0xab, 0x87, 0xc1, 0x1e, 0xd8, 0x23, 0x31,
|
0x80, 0xe5, 0xfe, 0xdf, 0x16, 0xd4, 0x07, 0x8c, 0x5f, 0x30, 0xfe, 0x42, 0x17, 0x9d, 0xf9, 0x80,
|
||||||
0x39, 0x1a, 0x4a, 0x8b, 0xea, 0x4c, 0x01, 0xaa, 0xc6, 0xc1, 0x24, 0x0b, 0x2e, 0x51, 0xbf, 0x16,
|
0xa8, 0x3e, 0xe7, 0x01, 0x51, 0xdb, 0xfc, 0x80, 0xb0, 0x97, 0x0f, 0x88, 0x5d, 0xb0, 0x07, 0x7c,
|
||||||
0x34, 0xda, 0xd8, 0x6b, 0xed, 0x2d, 0x2b, 0xfa, 0x57, 0x3e, 0x1a, 0xfc, 0xcf, 0x2d, 0x68, 0x1e,
|
0x74, 0xd8, 0x97, 0x11, 0x55, 0x89, 0x02, 0xd8, 0x8d, 0xbd, 0x91, 0x08, 0x2e, 0x98, 0x7e, 0x55,
|
||||||
0xf3, 0x22, 0xce, 0xb3, 0x8d, 0xaa, 0xed, 0x42, 0x67, 0x90, 0x24, 0x61, 0x30, 0x59, 0xeb, 0x54,
|
0x68, 0xb4, 0x76, 0xff, 0x35, 0x37, 0x5c, 0xe5, 0xff, 0xf2, 0x71, 0xe1, 0xff, 0x60, 0x41, 0xfd,
|
||||||
0x83, 0x44, 0x12, 0x4f, 0x8d, 0x7c, 0xa8, 0x58, 0x98, 0x24, 0x1a, 0xea, 0x87, 0x72, 0xd7, 0xab,
|
0x88, 0xe6, 0x71, 0x26, 0xd6, 0xba, 0xb6, 0x0d, 0xad, 0x5e, 0x92, 0x84, 0xc1, 0x68, 0x85, 0xa9,
|
||||||
0xc5, 0x6d, 0x0c, 0x75, 0xb5, 0xe2, 0x25, 0x93, 0x82, 0x36, 0xc8, 0xb3, 0x78, 0x16, 0xc6, 0x57,
|
0x86, 0x08, 0x2d, 0x1e, 0x1a, 0xf5, 0x50, 0xb9, 0x30, 0x45, 0x38, 0xfc, 0x0f, 0xe4, 0x9b, 0x40,
|
||||||
0x32, 0x3a, 0x6d, 0x56, 0x61, 0xff, 0xfb, 0x1a, 0x34, 0x7e, 0xaf, 0xfd, 0xbc, 0x03, 0x56, 0xa0,
|
0x5d, 0xf0, 0xc6, 0xf0, 0x57, 0x4f, 0x01, 0xa9, 0xc4, 0xa4, 0xf5, 0x32, 0x11, 0x4f, 0xc2, 0xf8,
|
||||||
0x8b, 0xc3, 0x0a, 0xaa, 0x6d, 0xdd, 0x32, 0xb6, 0xb5, 0x07, 0xad, 0x42, 0xf0, 0x68, 0x8e, 0xa9,
|
0x52, 0x66, 0xa7, 0x49, 0x4a, 0xec, 0xff, 0x51, 0x81, 0xda, 0xff, 0x75, 0x8f, 0x6f, 0x81, 0x15,
|
||||||
0xd7, 0x96, 0xd3, 0xa8, 0x84, 0x92, 0x23, 0xfb, 0x4e, 0xad, 0x69, 0x87, 0x95, 0xb0, 0xea, 0x23,
|
0xe8, 0xe6, 0xb0, 0x82, 0xf2, 0x56, 0x6f, 0x18, 0xb7, 0xba, 0x07, 0x8d, 0x9c, 0xd3, 0x68, 0xca,
|
||||||
0x30, 0xfa, 0xe8, 0xbf, 0x7a, 0xa3, 0x77, 0xa4, 0x45, 0xde, 0x7a, 0x58, 0x6e, 0x2e, 0xf2, 0xdf,
|
0x52, 0xaf, 0x29, 0xa7, 0x51, 0x01, 0xa5, 0x46, 0xf2, 0x4e, 0x5d, 0xe7, 0x0e, 0x29, 0x60, 0xc9,
|
||||||
0x6e, 0x73, 0xfe, 0x64, 0x81, 0x5d, 0x35, 0xe1, 0xe1, 0x7a, 0x13, 0x1e, 0xae, 0x9a, 0x70, 0x78,
|
0x23, 0x30, 0x78, 0xf4, 0x81, 0xbe, 0xf9, 0x5b, 0x32, 0x22, 0x6f, 0x35, 0x2d, 0x57, 0x2f, 0xfc,
|
||||||
0x50, 0x36, 0xe1, 0xf0, 0x80, 0x30, 0x3b, 0x2d, 0x9b, 0x90, 0x9d, 0x52, 0xb2, 0x1e, 0x8b, 0x38,
|
0xff, 0xee, 0x86, 0xfd, 0xcb, 0x02, 0xbb, 0x24, 0xe1, 0xc1, 0x2a, 0x09, 0x0f, 0x96, 0x24, 0xec,
|
||||||
0x4f, 0x0e, 0x0a, 0x95, 0x55, 0x87, 0x55, 0x98, 0x2a, 0xf7, 0xe3, 0x05, 0x0a, 0x1d, 0x6a, 0x87,
|
0xef, 0x17, 0x24, 0xec, 0xef, 0x23, 0x26, 0x27, 0x05, 0x09, 0xc9, 0x09, 0x16, 0xeb, 0x3e, 0x8f,
|
||||||
0x69, 0x44, 0x75, 0x7e, 0x2c, 0x07, 0x94, 0x0a, 0xae, 0x02, 0xee, 0x3f, 0xc0, 0x66, 0x14, 0x3c,
|
0xb3, 0x64, 0x3f, 0x57, 0x55, 0x75, 0x48, 0x89, 0xb1, 0x73, 0xbf, 0x9e, 0x31, 0xae, 0x53, 0xed,
|
||||||
0x19, 0xe1, 0xb5, 0xbc, 0x48, 0x32, 0x53, 0x5c, 0x52, 0xaa, 0x5e, 0xf2, 0xba, 0xe0, 0xcb, 0x77,
|
0x10, 0x8d, 0xb0, 0xcf, 0x8f, 0xe4, 0x80, 0x52, 0xc9, 0x55, 0xc0, 0x7d, 0x0b, 0x6c, 0x82, 0xc9,
|
||||||
0xfd, 0x7f, 0xa0, 0x39, 0x5a, 0x04, 0xb3, 0xac, 0x7c, 0x17, 0xfd, 0xd1, 0x18, 0x70, 0xc1, 0x12,
|
0x93, 0x19, 0x5e, 0xa9, 0x8b, 0x14, 0x13, 0xa5, 0x45, 0xa7, 0xea, 0xc5, 0xaf, 0x1b, 0xbe, 0x78,
|
||||||
0x25, 0x8f, 0x69, 0x11, 0xff, 0x39, 0x38, 0x15, 0x71, 0x65, 0x8e, 0x65, 0x9a, 0xe3, 0x42, 0xe3,
|
0xff, 0xbf, 0x0f, 0xf5, 0xc1, 0x2c, 0x98, 0x88, 0xe2, 0xfd, 0xf4, 0xb2, 0x31, 0xe0, 0x82, 0x39,
|
||||||
0x3c, 0x0a, 0xb2, 0xb2, 0xd5, 0xe9, 0x4c, 0xce, 0x3e, 0xcf, 0x79, 0x94, 0x05, 0x59, 0x51, 0xb6,
|
0x93, 0x3a, 0xa2, 0x4d, 0xfc, 0xc7, 0xe0, 0x94, 0xc2, 0x65, 0x38, 0x96, 0x19, 0x8e, 0x0b, 0xb5,
|
||||||
0x7a, 0x89, 0xfd, 0x07, 0xda, 0x7c, 0x52, 0x77, 0x9e, 0x24, 0x28, 0xf4, 0xd8, 0x50, 0x40, 0x5e,
|
0xb3, 0x28, 0x10, 0x05, 0xd5, 0x71, 0x8d, 0x87, 0x7d, 0x9c, 0xd1, 0x48, 0x04, 0x22, 0x2f, 0xa8,
|
||||||
0x12, 0x5f, 0xa1, 0x9a, 0xf8, 0x75, 0xa6, 0x80, 0xff, 0x09, 0x38, 0x83, 0x10, 0x45, 0xc6, 0xf2,
|
0x5e, 0x60, 0xff, 0xb6, 0x0e, 0x1f, 0xdd, 0x9d, 0x25, 0x09, 0xe3, 0x7a, 0x6c, 0x28, 0x20, 0x37,
|
||||||
0x10, 0xb7, 0x6d, 0xe2, 0x8f, 0x46, 0x27, 0xcf, 0x4a, 0x0b, 0xe8, 0xbc, 0x1a, 0x11, 0xf5, 0x1b,
|
0x89, 0x2f, 0x99, 0x9a, 0xf8, 0x55, 0xa2, 0x80, 0xff, 0x0d, 0x38, 0xbd, 0x90, 0x71, 0x41, 0xb2,
|
||||||
0x23, 0xe2, 0x09, 0x4f, 0xf8, 0xd1, 0x50, 0xd6, 0x79, 0x9d, 0x69, 0xe4, 0x7f, 0x69, 0x41, 0x83,
|
0x90, 0x6d, 0xba, 0x89, 0xbf, 0x1a, 0x1c, 0x3f, 0x2a, 0x22, 0xc0, 0xf5, 0x72, 0x44, 0x54, 0xaf,
|
||||||
0x66, 0x91, 0xa1, 0xba, 0xf1, 0xba, 0x39, 0x76, 0x2a, 0xe2, 0xcb, 0x60, 0x8a, 0xa2, 0x74, 0xae,
|
0x8c, 0x88, 0x07, 0x34, 0xa1, 0x87, 0x7d, 0xd9, 0xe7, 0x55, 0xa2, 0x91, 0xff, 0x93, 0x05, 0x35,
|
||||||
0xc4, 0x32, 0xe8, 0x93, 0x05, 0x56, 0x0b, 0x5f, 0x23, 0xaa, 0x35, 0x7a, 0xf6, 0x97, 0xbd, 0x64,
|
0x9c, 0x45, 0x86, 0xeb, 0xda, 0xf3, 0xe6, 0xd8, 0x09, 0x8f, 0x2f, 0x82, 0x31, 0xe3, 0xc5, 0xe1,
|
||||||
0xd4, 0x1a, 0x91, 0x99, 0x62, 0xd2, 0x83, 0x6c, 0x94, 0x27, 0x28, 0x06, 0xd3, 0x65, 0x10, 0xc9,
|
0x0a, 0x2c, 0x93, 0x3e, 0x9a, 0xb1, 0xf2, 0xc2, 0xd7, 0x08, 0x7b, 0x0d, 0x7f, 0x0f, 0x0a, 0x2e,
|
||||||
0xa4, 0xb7, 0x99, 0x41, 0xf1, 0x1f, 0xa9, 0x1f, 0x89, 0x8d, 0x89, 0x66, 0x6d, 0xff, 0xe9, 0xb8,
|
0x19, 0xbd, 0x86, 0x62, 0xa2, 0x94, 0xf8, 0x70, 0x1b, 0x64, 0x09, 0xe3, 0xbd, 0xf1, 0x3c, 0x28,
|
||||||
0x69, 0xb9, 0xff, 0x95, 0x05, 0xad, 0xa7, 0xfa, 0x95, 0x65, 0x7a, 0x61, 0xbd, 0xd2, 0x8b, 0xda,
|
0x1e, 0x39, 0x86, 0xc4, 0xbf, 0xab, 0x7e, 0x38, 0xd6, 0x26, 0x9a, 0xb5, 0xf9, 0xe7, 0xe4, 0x6a,
|
||||||
0x9a, 0x17, 0x7d, 0xd8, 0x2b, 0x65, 0xd6, 0xee, 0x57, 0x51, 0xd8, 0xca, 0xd3, 0x11, 0x6d, 0x54,
|
0xe4, 0xfe, 0xcf, 0x16, 0x34, 0x1e, 0xea, 0xd7, 0x98, 0x79, 0x0a, 0xeb, 0x99, 0xa7, 0xa8, 0xac,
|
||||||
0xc9, 0x7a, 0x93, 0xbf, 0x8c, 0xb3, 0x75, 0x99, 0x6d, 0x09, 0xdf, 0xc8, 0x4a, 0x17, 0x3a, 0xfa,
|
0x9c, 0xa2, 0x0b, 0xbb, 0x85, 0xcd, 0xca, 0xfe, 0x2a, 0x0b, 0x1b, 0x75, 0x3a, 0xa3, 0xb5, 0xb2,
|
||||||
0xef, 0x50, 0xfe, 0x6b, 0xe9, 0xa1, 0x6a, 0x90, 0xfc, 0x3e, 0x34, 0x0f, 0xe3, 0x68, 0x16, 0xcc,
|
0x58, 0x2f, 0xf2, 0x37, 0x72, 0xba, 0x6a, 0xb3, 0xa9, 0xe0, 0x6b, 0x55, 0x69, 0x43, 0x4b, 0xff,
|
||||||
0xdd, 0x1e, 0x34, 0x06, 0x79, 0xb6, 0x90, 0x1a, 0x3b, 0xfd, 0x3d, 0xa3, 0xf1, 0xf3, 0x6c, 0xa1,
|
0x45, 0xca, 0x7f, 0x32, 0x3d, 0x54, 0x0d, 0x91, 0xdf, 0x85, 0xfa, 0x41, 0x1c, 0x4d, 0x82, 0xa9,
|
||||||
0x64, 0x98, 0x94, 0xf0, 0xdf, 0x05, 0x58, 0xd1, 0x68, 0x4b, 0xac, 0xb2, 0xf1, 0x0c, 0xaf, 0xa8,
|
0xdb, 0x81, 0x5a, 0x2f, 0x13, 0x33, 0xe9, 0xb1, 0xd5, 0xdd, 0x35, 0x88, 0x9f, 0x89, 0x99, 0xb2,
|
||||||
0x64, 0x52, 0xa9, 0xa5, 0xcd, 0xb6, 0x70, 0xfc, 0xf7, 0xc0, 0x39, 0xc8, 0x83, 0x70, 0x7a, 0x14,
|
0x21, 0xd2, 0xc2, 0xff, 0x0c, 0x60, 0x29, 0xc3, 0x5b, 0x62, 0x59, 0x8d, 0x47, 0xec, 0x12, 0x5b,
|
||||||
0xcd, 0x62, 0x1a, 0x1d, 0x17, 0x28, 0xd2, 0x55, 0xbe, 0x4a, 0x48, 0xe1, 0xa6, 0x29, 0x52, 0xf5,
|
0x26, 0x95, 0x5e, 0x9a, 0x64, 0x83, 0xc6, 0xff, 0x1c, 0x9c, 0xfd, 0x2c, 0x08, 0xc7, 0x87, 0xd1,
|
||||||
0x90, 0x46, 0xe3, 0xa6, 0xfc, 0x3b, 0x7f, 0xf0, 0x4b, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x64,
|
0x24, 0xc6, 0xd1, 0x71, 0xce, 0x78, 0xba, 0xac, 0x57, 0x01, 0x31, 0xdd, 0x38, 0x45, 0x4a, 0x0e,
|
||||||
0x6b, 0x1b, 0xaf, 0x0f, 0x00, 0x00,
|
0x69, 0x34, 0xac, 0xcb, 0xbf, 0xf8, 0xdb, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x7e, 0x5e,
|
||||||
|
0x7e, 0xd7, 0x0f, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ message TableOptions {
|
||||||
TableColumn sortBy = 3; // which column should a table be sorted by
|
TableColumn sortBy = 3; // which column should a table be sorted by
|
||||||
string wrapping = 4; // option for text wrapping
|
string wrapping = 4; // option for text wrapping
|
||||||
repeated TableColumn columnNames = 5; // names and renames for columns
|
repeated TableColumn columnNames = 5; // names and renames for columns
|
||||||
|
bool fixFirstColumn = 6; // first column should be fixed/frozen
|
||||||
}
|
}
|
||||||
|
|
||||||
message TableColumn {
|
message TableColumn {
|
||||||
|
|
|
@ -573,6 +573,7 @@ type TableOptions struct {
|
||||||
SortBy TableColumn `json:"sortBy"`
|
SortBy TableColumn `json:"sortBy"`
|
||||||
Wrapping string `json:"wrapping"`
|
Wrapping string `json:"wrapping"`
|
||||||
ColumnNames []TableColumn `json:"columnNames"`
|
ColumnNames []TableColumn `json:"columnNames"`
|
||||||
|
FixFirstColumn bool `json:"fixFirstColumn"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// DashboardsStore is the storage and retrieval of dashboards
|
// DashboardsStore is the storage and retrieval of dashboards
|
||||||
|
|
|
@ -550,7 +550,8 @@ func TestServer(t *testing.T) {
|
||||||
"internalName": "",
|
"internalName": "",
|
||||||
"displayName": ""},
|
"displayName": ""},
|
||||||
"wrapping": "",
|
"wrapping": "",
|
||||||
"columnNames": null
|
"columnNames": null,
|
||||||
|
"fixFirstColumn": false
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"self": "/chronograf/v1/dashboards/1000/cells/8f61c619-dd9b-4761-8aa8-577f27247093"
|
"self": "/chronograf/v1/dashboards/1000/cells/8f61c619-dd9b-4761-8aa8-577f27247093"
|
||||||
|
@ -799,7 +800,8 @@ func TestServer(t *testing.T) {
|
||||||
"displayName":""
|
"displayName":""
|
||||||
},
|
},
|
||||||
"wrapping":"",
|
"wrapping":"",
|
||||||
"columnNames":null
|
"columnNames":null,
|
||||||
|
"fixFirstColumn":false
|
||||||
},
|
},
|
||||||
"legend":{
|
"legend":{
|
||||||
"type": "static",
|
"type": "static",
|
||||||
|
|
|
@ -532,7 +532,7 @@ func TestService_ReplaceDashboardCell(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`))),
|
`))),
|
||||||
want: `{"i":"3c5c4102-fa40-4585-a8f9-917c77e37192","x":0,"y":0,"w":4,"h":4,"name":"Untitled Cell","queries":[{"query":"SELECT mean(\"usage_user\") AS \"mean_usage_user\" FROM \"telegraf\".\"autogen\".\"cpu\" WHERE time \u003e :dashboardTime: AND \"cpu\"=:cpu: GROUP BY :interval: FILL(null)","queryConfig":{"id":"3cd3eaa4-a4b8-44b3-b69e-0c7bf6b91d9e","database":"telegraf","measurement":"cpu","retentionPolicy":"autogen","fields":[{"value":"mean","type":"func","alias":"mean_usage_user","args":[{"value":"usage_user","type":"field","alias":""}]}],"tags":{"cpu":["ChristohersMBP2.lan"]},"groupBy":{"time":"2s","tags":[]},"areTagsAccepted":true,"fill":"null","rawText":"SELECT mean(\"usage_user\") AS \"mean_usage_user\" FROM \"telegraf\".\"autogen\".\"cpu\" WHERE time \u003e :dashboardTime: AND \"cpu\"=:cpu: GROUP BY :interval: FILL(null)","range":{"upper":"","lower":"now() - 15m"},"shifts":[]},"source":""}],"axes":{"x":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""},"y":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""},"y2":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""}},"type":"line","colors":[{"id":"0","type":"min","hex":"#00C9FF","name":"laser","value":"0"},{"id":"1","type":"max","hex":"#9394FF","name":"comet","value":"100"}],"legend":{},"tableOptions":{"timeFormat":"","verticalTimeAxis":false,"sortBy":{"internalName":"","displayName":""},"wrapping":"","columnNames":null},"links":{"self":"/chronograf/v1/dashboards/1/cells/3c5c4102-fa40-4585-a8f9-917c77e37192"}}
|
want: `{"i":"3c5c4102-fa40-4585-a8f9-917c77e37192","x":0,"y":0,"w":4,"h":4,"name":"Untitled Cell","queries":[{"query":"SELECT mean(\"usage_user\") AS \"mean_usage_user\" FROM \"telegraf\".\"autogen\".\"cpu\" WHERE time \u003e :dashboardTime: AND \"cpu\"=:cpu: GROUP BY :interval: FILL(null)","queryConfig":{"id":"3cd3eaa4-a4b8-44b3-b69e-0c7bf6b91d9e","database":"telegraf","measurement":"cpu","retentionPolicy":"autogen","fields":[{"value":"mean","type":"func","alias":"mean_usage_user","args":[{"value":"usage_user","type":"field","alias":""}]}],"tags":{"cpu":["ChristohersMBP2.lan"]},"groupBy":{"time":"2s","tags":[]},"areTagsAccepted":true,"fill":"null","rawText":"SELECT mean(\"usage_user\") AS \"mean_usage_user\" FROM \"telegraf\".\"autogen\".\"cpu\" WHERE time \u003e :dashboardTime: AND \"cpu\"=:cpu: GROUP BY :interval: FILL(null)","range":{"upper":"","lower":"now() - 15m"},"shifts":[]},"source":""}],"axes":{"x":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""},"y":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""},"y2":{"bounds":["",""],"label":"","prefix":"","suffix":"","base":"","scale":""}},"type":"line","colors":[{"id":"0","type":"min","hex":"#00C9FF","name":"laser","value":"0"},{"id":"1","type":"max","hex":"#9394FF","name":"comet","value":"100"}],"legend":{},"tableOptions":{"timeFormat":"","verticalTimeAxis":false,"sortBy":{"internalName":"","displayName":""},"wrapping":"","columnNames":null,"fixFirstColumn":false},"links":{"self":"/chronograf/v1/dashboards/1/cells/3c5c4102-fa40-4585-a8f9-917c77e37192"}}
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import React, {SFC} from 'react'
|
||||||
|
import classnames from 'classnames'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
fixed: boolean
|
||||||
|
onToggleFixFirstColumn: () => void
|
||||||
|
}
|
||||||
|
|
||||||
|
const GraphOptionsFixFirstColumn: SFC<Props> = ({
|
||||||
|
fixed,
|
||||||
|
onToggleFixFirstColumn,
|
||||||
|
}) =>
|
||||||
|
<div
|
||||||
|
className={classnames('query-builder--list-item', {
|
||||||
|
active: fixed,
|
||||||
|
})}
|
||||||
|
onClick={onToggleFixFirstColumn}
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
<div className="query-builder--checkbox" data-test="checkbox" />
|
||||||
|
<label>Fix First Column</label>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
export default GraphOptionsFixFirstColumn
|
|
@ -9,6 +9,7 @@ import GraphOptionsTimeFormat from 'src/dashboards/components/GraphOptionsTimeFo
|
||||||
import GraphOptionsTimeAxis from 'src/dashboards/components/GraphOptionsTimeAxis'
|
import GraphOptionsTimeAxis from 'src/dashboards/components/GraphOptionsTimeAxis'
|
||||||
import GraphOptionsSortBy from 'src/dashboards/components/GraphOptionsSortBy'
|
import GraphOptionsSortBy from 'src/dashboards/components/GraphOptionsSortBy'
|
||||||
import GraphOptionsTextWrapping from 'src/dashboards/components/GraphOptionsTextWrapping'
|
import GraphOptionsTextWrapping from 'src/dashboards/components/GraphOptionsTextWrapping'
|
||||||
|
import GraphOptionsFixFirstColumn from 'src/dashboards/components/GraphOptionsFixFirstColumn'
|
||||||
import GraphOptionsCustomizeColumns from 'src/dashboards/components/GraphOptionsCustomizeColumns'
|
import GraphOptionsCustomizeColumns from 'src/dashboards/components/GraphOptionsCustomizeColumns'
|
||||||
|
|
||||||
import ThresholdsList from 'src/shared/components/ThresholdsList'
|
import ThresholdsList from 'src/shared/components/ThresholdsList'
|
||||||
|
@ -28,6 +29,7 @@ type Options = {
|
||||||
sortBy: TableColumn
|
sortBy: TableColumn
|
||||||
wrapping: string
|
wrapping: string
|
||||||
columnNames: TableColumn[]
|
columnNames: TableColumn[]
|
||||||
|
fixFirstColumn: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
interface QueryConfig {
|
interface QueryConfig {
|
||||||
|
@ -84,7 +86,7 @@ export class TableOptions extends PureComponent<Props, {}> {
|
||||||
const {handleUpdateTableOptions, tableOptions} = this.props
|
const {handleUpdateTableOptions, tableOptions} = this.props
|
||||||
handleUpdateTableOptions({
|
handleUpdateTableOptions({
|
||||||
...tableOptions,
|
...tableOptions,
|
||||||
columnNames: this.computedColumnNames
|
columnNames: this.computedColumnNames,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,6 +109,12 @@ export class TableOptions extends PureComponent<Props, {}> {
|
||||||
|
|
||||||
handleToggleTextWrapping = () => {}
|
handleToggleTextWrapping = () => {}
|
||||||
|
|
||||||
|
handleToggleFixFirstColumn = () => {
|
||||||
|
const {handleUpdateTableOptions, tableOptions} = this.props
|
||||||
|
const fixFirstColumn = !tableOptions.fixFirstColumn
|
||||||
|
handleUpdateTableOptions({...tableOptions, fixFirstColumn})
|
||||||
|
}
|
||||||
|
|
||||||
handleColumnRename = column => {
|
handleColumnRename = column => {
|
||||||
const {handleUpdateTableOptions, tableOptions} = this.props
|
const {handleUpdateTableOptions, tableOptions} = this.props
|
||||||
const {columnNames} = tableOptions
|
const {columnNames} = tableOptions
|
||||||
|
@ -118,14 +126,19 @@ export class TableOptions extends PureComponent<Props, {}> {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
tableOptions: {timeFormat, columnNames: columns, verticalTimeAxis},
|
tableOptions: {
|
||||||
|
timeFormat,
|
||||||
|
columnNames: columns,
|
||||||
|
verticalTimeAxis,
|
||||||
|
fixFirstColumn,
|
||||||
|
},
|
||||||
onResetFocus,
|
onResetFocus,
|
||||||
tableOptions
|
tableOptions,
|
||||||
} = this.props
|
} = this.props
|
||||||
|
|
||||||
const tableSortByOptions = this.computedColumnNames.map(col => ({
|
const tableSortByOptions = this.computedColumnNames.map(col => ({
|
||||||
text: col.displayName || col.internalName,
|
text: col.displayName || col.internalName,
|
||||||
key: col.internalName
|
key: col.internalName,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -153,6 +166,10 @@ export class TableOptions extends PureComponent<Props, {}> {
|
||||||
thresholdsListType="background"
|
thresholdsListType="background"
|
||||||
onToggleTextWrapping={this.handleToggleTextWrapping}
|
onToggleTextWrapping={this.handleToggleTextWrapping}
|
||||||
/>
|
/>
|
||||||
|
<GraphOptionsFixFirstColumn
|
||||||
|
fixed={fixFirstColumn}
|
||||||
|
onToggleFixFirstColumn={this.handleToggleFixFirstColumn}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<GraphOptionsCustomizeColumns
|
<GraphOptionsCustomizeColumns
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
@ -169,11 +186,11 @@ export class TableOptions extends PureComponent<Props, {}> {
|
||||||
}
|
}
|
||||||
|
|
||||||
const mapStateToProps = ({cellEditorOverlay: {cell: {tableOptions}}}) => ({
|
const mapStateToProps = ({cellEditorOverlay: {cell: {tableOptions}}}) => ({
|
||||||
tableOptions
|
tableOptions,
|
||||||
})
|
})
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
handleUpdateTableOptions: bindActionCreators(updateTableOptions, dispatch)
|
handleUpdateTableOptions: bindActionCreators(updateTableOptions, dispatch),
|
||||||
})
|
})
|
||||||
|
|
||||||
export default connect(mapStateToProps, mapDispatchToProps)(TableOptions)
|
export default connect(mapStateToProps, mapDispatchToProps)(TableOptions)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import {
|
||||||
NULL_HOVER_TIME,
|
NULL_HOVER_TIME,
|
||||||
TIME_FORMAT_DEFAULT,
|
TIME_FORMAT_DEFAULT,
|
||||||
TIME_COLUMN_DEFAULT,
|
TIME_COLUMN_DEFAULT,
|
||||||
|
FIX_FIRST_COLUMN_DEFAULT,
|
||||||
} from 'src/shared/constants/tableGraph'
|
} from 'src/shared/constants/tableGraph'
|
||||||
import {generateThresholdsListHexs} from 'shared/constants/colorOperations'
|
import {generateThresholdsListHexs} from 'shared/constants/colorOperations'
|
||||||
|
|
||||||
|
@ -56,10 +57,10 @@ class TableGraph extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleHover = (columnIndex, rowIndex) => () => {
|
handleHover = (columnIndex, rowIndex) => () => {
|
||||||
const {onSetHoverTime, tableOptions} = this.props
|
const {onSetHoverTime, tableOptions: {verticalTimeAxis}} = this.props
|
||||||
const {data} = this.state
|
const data = verticalTimeAxis ? this.state.data : this.state.unzippedData
|
||||||
if (onSetHoverTime) {
|
if (onSetHoverTime) {
|
||||||
const hoverTime = tableOptions.verticalTimeAxis
|
const hoverTime = verticalTimeAxis
|
||||||
? data[rowIndex][0]
|
? data[rowIndex][0]
|
||||||
: data[0][columnIndex]
|
: data[0][columnIndex]
|
||||||
onSetHoverTime(hoverTime.toString())
|
onSetHoverTime(hoverTime.toString())
|
||||||
|
@ -80,24 +81,30 @@ class TableGraph extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cellRenderer = ({columnIndex, rowIndex, key, parent, style}) => {
|
cellRenderer = ({columnIndex, rowIndex, key, style, parent}) => {
|
||||||
const data = _.get(this.props, ['tableOptions', 'verticalTimeAxis'], true)
|
const {colors, tableOptions} = this.props
|
||||||
|
const {hoveredColumnIndex, hoveredRowIndex} = this.state
|
||||||
|
|
||||||
|
const data = _.get(tableOptions, 'verticalTimeAxis', true)
|
||||||
? this.state.data
|
? this.state.data
|
||||||
: this.state.unzippedData
|
: this.state.unzippedData
|
||||||
const {hoveredColumnIndex, hoveredRowIndex} = this.state
|
|
||||||
const {colors} = this.props
|
|
||||||
const columnCount = _.get(data, ['0', 'length'], 0)
|
const columnCount = _.get(data, ['0', 'length'], 0)
|
||||||
const rowCount = data.length
|
const rowCount = data.length
|
||||||
const {tableOptions} = this.props
|
|
||||||
const timeFormat = _.get(tableOptions, 'timeFormat', TIME_FORMAT_DEFAULT)
|
const timeFormat = _.get(tableOptions, 'timeFormat', TIME_FORMAT_DEFAULT)
|
||||||
const columnNames = _.get(tableOptions, 'columnNames', [
|
const columnNames = _.get(tableOptions, 'columnNames', [
|
||||||
TIME_COLUMN_DEFAULT,
|
TIME_COLUMN_DEFAULT,
|
||||||
])
|
])
|
||||||
|
const fixFirstColumn = _.get(
|
||||||
|
tableOptions,
|
||||||
|
'fixFirstColumn',
|
||||||
|
FIX_FIRST_COLUMN_DEFAULT
|
||||||
|
)
|
||||||
|
|
||||||
const isFixedRow = rowIndex === 0 && columnIndex > 0
|
const isFixedRow = rowIndex === 0 && columnIndex > 0
|
||||||
const isFixedColumn = rowIndex > 0 && columnIndex === 0
|
const isFixedColumn = fixFirstColumn && rowIndex > 0 && columnIndex === 0
|
||||||
const isTimeData = tableOptions.verticalTimeAxis
|
const isTimeData = tableOptions.verticalTimeAxis
|
||||||
? isFixedColumn
|
? rowIndex > 0 && columnIndex === 0
|
||||||
: isFixedRow
|
: isFixedRow
|
||||||
const isFixedCorner = rowIndex === 0 && columnIndex === 0
|
const isFixedCorner = rowIndex === 0 && columnIndex === 0
|
||||||
const isLastRow = rowIndex === rowCount - 1
|
const isLastRow = rowIndex === rowCount - 1
|
||||||
|
@ -173,6 +180,12 @@ class TableGraph extends Component {
|
||||||
hoveredRowIndex === NULL_ROW_INDEX
|
hoveredRowIndex === NULL_ROW_INDEX
|
||||||
? this.calcHoverTimeIndex(data, hoverTime, verticalTimeAxis)
|
? this.calcHoverTimeIndex(data, hoverTime, verticalTimeAxis)
|
||||||
: hoveredRowIndex
|
: hoveredRowIndex
|
||||||
|
const fixedColumnCount = tableOptions.fixFirstColumn ? 1 : undefined
|
||||||
|
const hoveringThisTable = hoveredColumnIndex !== NULL_COLUMN_INDEX
|
||||||
|
const scrollToRow =
|
||||||
|
!hoveringThisTable && verticalTimeAxis ? hoverTimeIndex : undefined
|
||||||
|
const scrollToColumn =
|
||||||
|
!hoveringThisTable && !verticalTimeAxis ? hoverTimeIndex : undefined
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
@ -188,7 +201,7 @@ class TableGraph extends Component {
|
||||||
rowHeight={ROW_HEIGHT}
|
rowHeight={ROW_HEIGHT}
|
||||||
height={tableHeight}
|
height={tableHeight}
|
||||||
width={tableWidth}
|
width={tableWidth}
|
||||||
fixedColumnCount={1}
|
fixedColumnCount={fixedColumnCount}
|
||||||
fixedRowCount={1}
|
fixedRowCount={1}
|
||||||
enableFixedColumnScroll={true}
|
enableFixedColumnScroll={true}
|
||||||
enableFixedRowScroll={true}
|
enableFixedRowScroll={true}
|
||||||
|
@ -198,8 +211,8 @@ class TableGraph extends Component {
|
||||||
columnNames={
|
columnNames={
|
||||||
tableOptions ? tableOptions.columnNames : [TIME_COLUMN_DEFAULT]
|
tableOptions ? tableOptions.columnNames : [TIME_COLUMN_DEFAULT]
|
||||||
}
|
}
|
||||||
scrollToRow={verticalTimeAxis ? hoverTimeIndex : undefined}
|
scrollToRow={scrollToRow}
|
||||||
scrollToColumn={verticalTimeAxis ? undefined : hoverTimeIndex}
|
scrollToColumn={scrollToColumn}
|
||||||
verticalTimeAxis={verticalTimeAxis}
|
verticalTimeAxis={verticalTimeAxis}
|
||||||
sortByColumnIndex={sortByColumnIndex}
|
sortByColumnIndex={sortByColumnIndex}
|
||||||
cellRenderer={this.cellRenderer}
|
cellRenderer={this.cellRenderer}
|
||||||
|
|
|
@ -8,6 +8,8 @@ export const TIME_FORMAT_CUSTOM = 'Custom'
|
||||||
|
|
||||||
export const TIME_COLUMN_DEFAULT = {internalName: 'time', displayName: ''}
|
export const TIME_COLUMN_DEFAULT = {internalName: 'time', displayName: ''}
|
||||||
|
|
||||||
|
export const FIX_FIRST_COLUMN_DEFAULT = true
|
||||||
|
|
||||||
export const FORMAT_OPTIONS = [
|
export const FORMAT_OPTIONS = [
|
||||||
{text: TIME_FORMAT_DEFAULT},
|
{text: TIME_FORMAT_DEFAULT},
|
||||||
{text: 'MM/DD/YYYY HH:mm'},
|
{text: 'MM/DD/YYYY HH:mm'},
|
||||||
|
@ -26,4 +28,5 @@ export const DEFAULT_TABLE_OPTIONS = {
|
||||||
sortBy: TIME_COLUMN_DEFAULT,
|
sortBy: TIME_COLUMN_DEFAULT,
|
||||||
wrapping: 'truncate',
|
wrapping: 'truncate',
|
||||||
columnNames: [TIME_COLUMN_DEFAULT],
|
columnNames: [TIME_COLUMN_DEFAULT],
|
||||||
|
fixFirstColumn: FIX_FIRST_COLUMN_DEFAULT,
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import GraphOptionsFixFirstColumn from 'src/dashboards/components/GraphOptionsFixFirstColumn'
|
||||||
|
import {shallow} from 'enzyme'
|
||||||
|
|
||||||
|
const setup = (override = {}) => {
|
||||||
|
const props = {
|
||||||
|
fixed: true,
|
||||||
|
onToggleFixFirstColumn: () => {},
|
||||||
|
...override,
|
||||||
|
}
|
||||||
|
|
||||||
|
const wrapper = shallow(<GraphOptionsFixFirstColumn {...props} />)
|
||||||
|
return {wrapper, props}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('Dashboards.Components.GraphOptionsFixFirstColumn', () => {
|
||||||
|
describe('rendering', () => {
|
||||||
|
it('shows checkbox and label', () => {
|
||||||
|
const {wrapper} = setup()
|
||||||
|
const label = wrapper.find('label')
|
||||||
|
const checkbox = wrapper.find({'data-test': 'checkbox'})
|
||||||
|
|
||||||
|
expect(label.exists()).toBe(true)
|
||||||
|
expect(checkbox.exists()).toBe(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
|
@ -10,36 +10,37 @@ import GraphOptionsTextWrapping from 'src/dashboards/components/GraphOptionsText
|
||||||
import GraphOptionsCustomizeColumns from 'src/dashboards/components/GraphOptionsCustomizeColumns'
|
import GraphOptionsCustomizeColumns from 'src/dashboards/components/GraphOptionsCustomizeColumns'
|
||||||
import ThresholdsList from 'src/shared/components/ThresholdsList'
|
import ThresholdsList from 'src/shared/components/ThresholdsList'
|
||||||
import ThresholdsListTypeToggle from 'src/shared/components/ThresholdsListTypeToggle'
|
import ThresholdsListTypeToggle from 'src/shared/components/ThresholdsListTypeToggle'
|
||||||
|
import GraphOptionsFixFirstColumn from 'src/dashboards/components/GraphOptionsFixFirstColumn'
|
||||||
|
|
||||||
import {shallow} from 'enzyme'
|
import {shallow} from 'enzyme'
|
||||||
|
|
||||||
const queryConfigs = [
|
const queryConfigs = [
|
||||||
{
|
{
|
||||||
measurement: "dev",
|
measurement: 'dev',
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
alias: "boom",
|
alias: 'boom',
|
||||||
value: "test"
|
value: 'test',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
alias: "again",
|
alias: 'again',
|
||||||
value: "again"
|
value: 'again',
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
measurement: "prod",
|
measurement: 'prod',
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
alias: "boom",
|
alias: 'boom',
|
||||||
value: "test"
|
value: 'test',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
alias: "again",
|
alias: 'again',
|
||||||
value: "again"
|
value: 'again',
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const defaultProps = {
|
const defaultProps = {
|
||||||
|
@ -51,6 +52,7 @@ const defaultProps = {
|
||||||
sortBy: {internalName: '', displayName: ''},
|
sortBy: {internalName: '', displayName: ''},
|
||||||
wrapping: '',
|
wrapping: '',
|
||||||
columnNames: [],
|
columnNames: [],
|
||||||
|
fixFirstColumn: true,
|
||||||
},
|
},
|
||||||
onResetFocus: () => {},
|
onResetFocus: () => {},
|
||||||
}
|
}
|
||||||
|
@ -104,14 +106,14 @@ describe('Dashboards.Components.TableOptions', () => {
|
||||||
it('should render all components', () => {
|
it('should render all components', () => {
|
||||||
const queryConfigs = [
|
const queryConfigs = [
|
||||||
{
|
{
|
||||||
measurement: "dev",
|
measurement: 'dev',
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
alias: "boom",
|
alias: 'boom',
|
||||||
value: "test"
|
value: 'test',
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const expectedSortOptions = [
|
const expectedSortOptions = [
|
||||||
|
@ -125,25 +127,31 @@ describe('Dashboards.Components.TableOptions', () => {
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const {wrapper} = setup({ queryConfigs })
|
const {wrapper} = setup({queryConfigs})
|
||||||
const fancyScrollbar = wrapper.find(FancyScrollbar)
|
const fancyScrollbar = wrapper.find(FancyScrollbar)
|
||||||
const graphOptionsTimeFormat = wrapper.find(GraphOptionsTimeFormat)
|
const graphOptionsTimeFormat = wrapper.find(GraphOptionsTimeFormat)
|
||||||
const graphOptionsTimeAxis = wrapper.find(GraphOptionsTimeAxis)
|
const graphOptionsTimeAxis = wrapper.find(GraphOptionsTimeAxis)
|
||||||
const graphOptionsSortBy = wrapper.find(GraphOptionsSortBy)
|
const graphOptionsSortBy = wrapper.find(GraphOptionsSortBy)
|
||||||
const graphOptionsTextWrapping = wrapper.find(GraphOptionsTextWrapping)
|
const graphOptionsTextWrapping = wrapper.find(GraphOptionsTextWrapping)
|
||||||
|
const graphOptionsFixFirstColumn = wrapper.find(
|
||||||
|
GraphOptionsFixFirstColumn
|
||||||
|
)
|
||||||
const graphOptionsCustomizeColumns = wrapper.find(
|
const graphOptionsCustomizeColumns = wrapper.find(
|
||||||
GraphOptionsCustomizeColumns
|
GraphOptionsCustomizeColumns
|
||||||
)
|
)
|
||||||
const thresholdsList = wrapper.find(ThresholdsList)
|
const thresholdsList = wrapper.find(ThresholdsList)
|
||||||
const thresholdsListTypeToggle = wrapper.find(ThresholdsListTypeToggle)
|
const thresholdsListTypeToggle = wrapper.find(ThresholdsListTypeToggle)
|
||||||
|
|
||||||
expect(graphOptionsSortBy.props().sortByOptions).toEqual(expectedSortOptions)
|
expect(graphOptionsSortBy.props().sortByOptions).toEqual(
|
||||||
|
expectedSortOptions
|
||||||
|
)
|
||||||
|
|
||||||
expect(fancyScrollbar.exists()).toBe(true)
|
expect(fancyScrollbar.exists()).toBe(true)
|
||||||
expect(graphOptionsTimeFormat.exists()).toBe(true)
|
expect(graphOptionsTimeFormat.exists()).toBe(true)
|
||||||
expect(graphOptionsTimeAxis.exists()).toBe(true)
|
expect(graphOptionsTimeAxis.exists()).toBe(true)
|
||||||
expect(graphOptionsSortBy.exists()).toBe(true)
|
expect(graphOptionsSortBy.exists()).toBe(true)
|
||||||
expect(graphOptionsTextWrapping.exists()).toBe(true)
|
expect(graphOptionsTextWrapping.exists()).toBe(true)
|
||||||
|
expect(graphOptionsFixFirstColumn.exists()).toBe(true)
|
||||||
expect(graphOptionsCustomizeColumns.exists()).toBe(true)
|
expect(graphOptionsCustomizeColumns.exists()).toBe(true)
|
||||||
expect(thresholdsList.exists()).toBe(true)
|
expect(thresholdsList.exists()).toBe(true)
|
||||||
expect(thresholdsListTypeToggle.exists()).toBe(true)
|
expect(thresholdsListTypeToggle.exists()).toBe(true)
|
||||||
|
|
Loading…
Reference in New Issue