@@ -16,7 +16,9 @@ package eventTable
16
16
17
17
import (
18
18
"context"
19
+ "encoding/base64"
19
20
"encoding/json"
21
+ "fmt"
20
22
"strconv"
21
23
"time"
22
24
@@ -34,11 +36,9 @@ func RenderCreator() protocol.CompRender {
34
36
35
37
func (t * ComponentEventTable ) Render (ctx context.Context , component * apistructs.Component , _ apistructs.ComponentProtocolScenario ,
36
38
event apistructs.ComponentEvent , globalStateData * apistructs.GlobalStateData ) error {
37
- bdl := ctx .Value (protocol .GlobalInnerKeyCtxBundle .String ()).(protocol.ContextBundle )
38
- if bdl .Bdl == nil {
39
- return errors .New ("context bundle can not be empty" )
39
+ if err := t .SetCtxBundle (ctx ); err != nil {
40
+ return fmt .Errorf ("failed to set eventTable component ctx bundle, %v" , err )
40
41
}
41
- t .ctxBdl = bdl
42
42
if err := t .GenComponentState (component ); err != nil {
43
43
return err
44
44
}
@@ -53,13 +53,28 @@ func (t *ComponentEventTable) Render(ctx context.Context, component *apistructs.
53
53
event .Operation == apistructs .ChangeOrgsPageSizeOperationKey {
54
54
t .State .PageNo = 1
55
55
}
56
+ if err := t .DecodeURLQuery (); err != nil {
57
+ return fmt .Errorf ("failed to decode url query for eventTable component, %v" , err )
58
+ }
56
59
if err := t .RenderList (); err != nil {
57
60
return err
58
61
}
62
+ if err := t .EncodeURLQuery (); err != nil {
63
+ return fmt .Errorf ("failed to encode url query for eventTable component, %v" , err )
64
+ }
59
65
t .SetComponentValue ()
60
66
return nil
61
67
}
62
68
69
+ func (t * ComponentEventTable ) SetCtxBundle (ctx context.Context ) error {
70
+ bdl := ctx .Value (protocol .GlobalInnerKeyCtxBundle .String ()).(protocol.ContextBundle )
71
+ if bdl .Bdl == nil {
72
+ return errors .New ("context bundle can not be empty" )
73
+ }
74
+ t .ctxBdl = bdl
75
+ return nil
76
+ }
77
+
63
78
func (t * ComponentEventTable ) GenComponentState (component * apistructs.Component ) error {
64
79
if component == nil || component .State == nil {
65
80
return nil
@@ -80,6 +95,39 @@ func (t *ComponentEventTable) GenComponentState(component *apistructs.Component)
80
95
return nil
81
96
}
82
97
98
+ func (t * ComponentEventTable ) DecodeURLQuery () error {
99
+ queryData , ok := t .ctxBdl .InParams ["eventTable__urlQuery" ].(string )
100
+ if ! ok {
101
+ return nil
102
+ }
103
+ decode , err := base64 .StdEncoding .DecodeString (queryData )
104
+ if err != nil {
105
+ return err
106
+ }
107
+ query := make (map [string ]int )
108
+ if err := json .Unmarshal (decode , & query ); err != nil {
109
+ return err
110
+ }
111
+ t .State .PageNo = uint64 (query ["pageNo" ])
112
+ t .State .PageSize = uint64 (query ["pageSize" ])
113
+ return nil
114
+ }
115
+
116
+ func (t * ComponentEventTable ) EncodeURLQuery () error {
117
+ query := make (map [string ]int )
118
+ query ["pageNo" ] = int (t .State .PageNo )
119
+ query ["pageSize" ] = int (t .State .PageSize )
120
+
121
+ data , err := json .Marshal (query )
122
+ if err != nil {
123
+ return err
124
+ }
125
+
126
+ encode := base64 .StdEncoding .EncodeToString (data )
127
+ t .State .EventTableUQLQuery = encode
128
+ return nil
129
+ }
130
+
83
131
func (t * ComponentEventTable ) RenderList () error {
84
132
userID := t .ctxBdl .Identity .UserID
85
133
orgID := t .ctxBdl .Identity .OrgID
@@ -232,55 +280,55 @@ func (t *ComponentEventTable) SetComponentValue() {
232
280
{
233
281
DataIndex : "lastSeen" ,
234
282
Title : "Last Seen" ,
235
- Width : " 160" ,
283
+ Width : 160 ,
236
284
Sorter : true ,
237
285
},
238
286
{
239
287
DataIndex : "type" ,
240
288
Title : "Event Type" ,
241
- Width : " 100" ,
289
+ Width : 100 ,
242
290
Sorter : true ,
243
291
},
244
292
{
245
293
DataIndex : "reason" ,
246
294
Title : "Reason" ,
247
- Width : " 100" ,
295
+ Width : 100 ,
248
296
Sorter : true ,
249
297
},
250
298
{
251
299
DataIndex : "object" ,
252
300
Title : "Object" ,
253
- Width : " 150" ,
301
+ Width : 150 ,
254
302
Sorter : true ,
255
303
},
256
304
{
257
305
DataIndex : "source" ,
258
306
Title : "Source" ,
259
- Width : " 120" ,
307
+ Width : 120 ,
260
308
Sorter : true ,
261
309
},
262
310
{
263
311
DataIndex : "message" ,
264
312
Title : "Message" ,
265
- Width : " 120" ,
313
+ Width : 120 ,
266
314
Sorter : true ,
267
315
},
268
316
{
269
317
DataIndex : "count" ,
270
318
Title : "Count" ,
271
- Width : "80" ,
319
+ Width : 80 ,
272
320
Sorter : true ,
273
321
},
274
322
{
275
323
DataIndex : "name" ,
276
324
Title : "Name" ,
277
- Width : " 120" ,
325
+ Width : 120 ,
278
326
Sorter : true ,
279
327
},
280
328
{
281
329
DataIndex : "namespace" ,
282
330
Title : "Namespace" ,
283
- Width : " 120" ,
331
+ Width : 120 ,
284
332
Sorter : true ,
285
333
},
286
334
},
0 commit comments