Project

General

Profile

Bug #13716 » Event.json

Carsten Rose, 25.01.2022 11:18

 
1
{
2
    "title": "{{\r\nSELECT IF({{id:R0}} = 0, 'Create ', 'Edit '),\r\n              IF('{{eventType:SRE:::Lecture \/ Seminar}}' = 'Exercise'\r\n                   , CONCAT('Exercise Group: '\r\n                                    , IF({{id:R0}} != 0, ' \"{{name:RE}}\"', '')\r\n                                    , IF(evParent.id IS NOT NULL\r\n                                          , CONCAT(' for ', evParent.eventType, ' ', evParent.name), '')\r\n                                      )\r\n                     , '{{eventType:SR:::Event}}: {{name:RE}}')\r\nFROM (SELECT 1) AS fake\r\nLEFT JOIN Event AS evParent\r\n  ON evParent.id = {{eventIdParent:SR0}}\r\n }}",
3
    "noteInternal": "",
4
    "tableName": "Event",
5
    "primaryKey": "",
6
    "permitNew": "sip",
7
    "permitEdit": "sip",
8
    "restMethod": "",
9
    "escapeTypeDefault": "c",
10
    "render": "bootstrap",
11
    "requiredParameterNew": "",
12
    "requiredParameterEdit": "",
13
    "dirtyMode": "exclusive",
14
    "showButton": "delete,close,save",
15
    "multiMode": "none",
16
    "multiSql": "",
17
    "multiDetailForm": "",
18
    "multiDetailFormParameter": "",
19
    "forwardMode": "url-sip",
20
    "forwardPage": "index.php?id={{pageAlias:T}}&form=Event&r={{id:R0}}",
21
    "labelAlign": "default",
22
    "bsLabelColumns": "col-md-4",
23
    "bsInputColumns": "col-md-8",
24
    "bsNoteColumns": "col-md-0",
25
    "parameter": "",
26
    "parameterLanguageA": "",
27
    "parameterLanguageB": "",
28
    "parameterLanguageC": "",
29
    "parameterLanguageD": "",
30
    "recordLockTimeoutSeconds": 900,
31
    "deleted": "no",
32
    "modified": "2021-12-22 21:43:27",
33
    "created": "2020-08-18 12:58:23",
34
    "FormElement_ff": [
35
        {
36
            "dynamicUpdate": "no",
37
            "enabled": "yes",
38
            "name": "generalPill",
39
            "label": "General",
40
            "mode": "show",
41
            "modeSql": "",
42
            "class": "container",
43
            "type": "pill",
44
            "subrecordOption": "",
45
            "encode": "specialchar",
46
            "checkType": "auto",
47
            "checkPattern": "",
48
            "onChange": "",
49
            "ord": 10,
50
            "tabindex": 0,
51
            "size": "",
52
            "maxLength": "",
53
            "labelAlign": "default",
54
            "bsLabelColumns": "",
55
            "bsInputColumns": "",
56
            "bsNoteColumns": "",
57
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
58
            "note": "",
59
            "adminNote": "",
60
            "tooltip": "",
61
            "placeholder": "",
62
            "value": "",
63
            "sql1": "",
64
            "parameter": "",
65
            "parameterLanguageA": "",
66
            "parameterLanguageB": "",
67
            "parameterLanguageC": "",
68
            "parameterLanguageD": "",
69
            "clientJs": "",
70
            "feGroup": "",
71
            "deleted": "no",
72
            "modified": "2020-08-18 13:03:05",
73
            "created": "2020-08-18 13:02:57"
74
        },
75
        {
76
            "dynamicUpdate": "yes",
77
            "enabled": "yes",
78
            "name": "eventType",
79
            "label": "Type",
80
            "mode": "show",
81
            "modeSql": "",
82
            "class": "native",
83
            "type": "radio",
84
            "subrecordOption": "",
85
            "encode": "specialchar",
86
            "checkType": "auto",
87
            "checkPattern": "",
88
            "onChange": "",
89
            "ord": 20,
90
            "tabindex": 0,
91
            "size": "",
92
            "maxLength": "",
93
            "labelAlign": "default",
94
            "bsLabelColumns": "",
95
            "bsInputColumns": "",
96
            "bsNoteColumns": "",
97
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
98
            "note": "",
99
            "adminNote": "",
100
            "tooltip": "",
101
            "placeholder": "",
102
            "value": "",
103
            "sql1": "",
104
            "parameter": "",
105
            "parameterLanguageA": "",
106
            "parameterLanguageB": "",
107
            "parameterLanguageC": "",
108
            "parameterLanguageD": "",
109
            "clientJs": "",
110
            "feGroup": "",
111
            "deleted": "no",
112
            "modified": "2021-09-25 13:32:30",
113
            "created": "2021-09-25 12:10:50",
114
            "containerName_ff": "generalPill"
115
        },
116
        {
117
            "dynamicUpdate": "yes",
118
            "enabled": "yes",
119
            "name": "semesterId",
120
            "label": "Semester",
121
            "mode": "required",
122
            "modeSql": "",
123
            "class": "native",
124
            "type": "select",
125
            "subrecordOption": "",
126
            "encode": "specialchar",
127
            "checkType": "auto",
128
            "checkPattern": "",
129
            "onChange": "",
130
            "ord": 30,
131
            "tabindex": 0,
132
            "size": "",
133
            "maxLength": "",
134
            "labelAlign": "default",
135
            "bsLabelColumns": "",
136
            "bsInputColumns": "",
137
            "bsNoteColumns": "",
138
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
139
            "note": "",
140
            "adminNote": "",
141
            "tooltip": "",
142
            "placeholder": "",
143
            "value": "",
144
            "sql1": "{{!\r\nSELECT s.id AS _id, CONCAT(s.short, \" (\", DATE_FORMAT(s.dateLectureFrom, '%d.%m.%Y'), ' - ', DATE_FORMAT(s.dateLectureTo, '%d.%m.%Y'), ')') AS _label\r\nFROM Semester AS s\r\nORDER BY s.dateFrom DESC\r\n}}",
145
            "parameter": "emptyItemAtStart",
146
            "parameterLanguageA": "",
147
            "parameterLanguageB": "",
148
            "parameterLanguageC": "",
149
            "parameterLanguageD": "",
150
            "clientJs": "",
151
            "feGroup": "",
152
            "deleted": "no",
153
            "modified": "2021-10-19 16:55:55",
154
            "created": "2021-09-16 10:31:45",
155
            "containerName_ff": "generalPill"
156
        },
157
        {
158
            "dynamicUpdate": "yes",
159
            "enabled": "yes",
160
            "name": "module",
161
            "label": "Modul",
162
            "mode": "required",
163
            "modeSql": "{{SELECT IF('{{eventType:FSRE:alnumx}}' = 'Exercise', 'hidden', 'required') }}",
164
            "class": "native",
165
            "type": "text",
166
            "subrecordOption": "",
167
            "encode": "specialchar",
168
            "checkType": "auto",
169
            "checkPattern": "",
170
            "onChange": "",
171
            "ord": 40,
172
            "tabindex": 0,
173
            "size": "",
174
            "maxLength": "8",
175
            "labelAlign": "default",
176
            "bsLabelColumns": "",
177
            "bsInputColumns": "",
178
            "bsNoteColumns": "",
179
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
180
            "note": "",
181
            "adminNote": "",
182
            "tooltip": "",
183
            "placeholder": "STA402",
184
            "value": "",
185
            "sql1": "",
186
            "parameter": "",
187
            "parameterLanguageA": "",
188
            "parameterLanguageB": "",
189
            "parameterLanguageC": "",
190
            "parameterLanguageD": "",
191
            "clientJs": "",
192
            "feGroup": "",
193
            "deleted": "no",
194
            "modified": "2021-10-20 14:10:40",
195
            "created": "2021-09-14 21:03:00",
196
            "containerName_ff": "generalPill"
197
        },
198
        {
199
            "dynamicUpdate": "yes",
200
            "enabled": "yes",
201
            "name": "eventIdParent",
202
            "label": "Lecture \/ Seminar",
203
            "mode": "show",
204
            "modeSql": "{{SELECT IF('{{eventType:FRSE:alnumx}}' = 'Exercise', 'required', 'hidden') }}",
205
            "class": "native",
206
            "type": "select",
207
            "subrecordOption": "",
208
            "encode": "specialchar",
209
            "checkType": "auto",
210
            "checkPattern": "",
211
            "onChange": "",
212
            "ord": 50,
213
            "tabindex": 0,
214
            "size": "",
215
            "maxLength": "",
216
            "labelAlign": "default",
217
            "bsLabelColumns": "",
218
            "bsInputColumns": "",
219
            "bsNoteColumns": "",
220
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
221
            "note": "",
222
            "adminNote": "",
223
            "tooltip": "",
224
            "placeholder": "",
225
            "value": "",
226
            "sql1": "{{!\r\nSELECT id AS id, CONCAT(ev.module, ' ', ev.name) AS label\r\nFROM Event AS ev\r\nWHERE ev.semesterId = '{{semesterId:FRS0}}'\r\nAND ev.eventType != 'Exercise'\r\n}}",
227
            "parameter": "emptyItemAtStart",
228
            "parameterLanguageA": "",
229
            "parameterLanguageB": "",
230
            "parameterLanguageC": "",
231
            "parameterLanguageD": "",
232
            "clientJs": "",
233
            "feGroup": "",
234
            "deleted": "no",
235
            "modified": "2021-09-25 14:22:48",
236
            "created": "2021-09-25 12:43:06",
237
            "containerName_ff": "generalPill"
238
        },
239
        {
240
            "dynamicUpdate": "no",
241
            "enabled": "yes",
242
            "name": "roomId",
243
            "label": "Default Room",
244
            "mode": "required",
245
            "modeSql": "",
246
            "class": "native",
247
            "type": "select",
248
            "subrecordOption": "",
249
            "encode": "specialchar",
250
            "checkType": "auto",
251
            "checkPattern": "",
252
            "onChange": "",
253
            "ord": 60,
254
            "tabindex": 0,
255
            "size": "",
256
            "maxLength": "",
257
            "labelAlign": "default",
258
            "bsLabelColumns": "",
259
            "bsInputColumns": "",
260
            "bsNoteColumns": "",
261
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
262
            "note": "",
263
            "adminNote": "",
264
            "tooltip": "",
265
            "placeholder": "",
266
            "value": "",
267
            "sql1": "{{! SELECT id AS id, name AS label FROM Room ORDER BY name ASC }}",
268
            "parameter": "emptyItemAtStart",
269
            "parameterLanguageA": "",
270
            "parameterLanguageB": "",
271
            "parameterLanguageC": "",
272
            "parameterLanguageD": "",
273
            "clientJs": "",
274
            "feGroup": "",
275
            "deleted": "no",
276
            "modified": "2021-11-11 15:13:49",
277
            "created": "2020-08-18 13:02:04",
278
            "containerName_ff": "generalPill"
279
        },
280
        {
281
            "dynamicUpdate": "yes",
282
            "enabled": "yes",
283
            "name": "name",
284
            "label": "{{SELECT IF('{{eventType:FRS:alnumx}}' = 'Exercise', 'Exercise Group Name', '{{eventType:FRS:alnumx::Lecture}} Name') }}",
285
            "mode": "required",
286
            "modeSql": "",
287
            "class": "native",
288
            "type": "text",
289
            "subrecordOption": "",
290
            "encode": "specialchar",
291
            "checkType": "auto",
292
            "checkPattern": "",
293
            "onChange": "",
294
            "ord": 70,
295
            "tabindex": 0,
296
            "size": "",
297
            "maxLength": "",
298
            "labelAlign": "default",
299
            "bsLabelColumns": "",
300
            "bsInputColumns": "",
301
            "bsNoteColumns": "",
302
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
303
            "note": "",
304
            "adminNote": "",
305
            "tooltip": "",
306
            "placeholder": "",
307
            "value": "",
308
            "sql1": "",
309
            "parameter": "",
310
            "parameterLanguageA": "",
311
            "parameterLanguageB": "",
312
            "parameterLanguageC": "",
313
            "parameterLanguageD": "",
314
            "clientJs": "",
315
            "feGroup": "",
316
            "deleted": "no",
317
            "modified": "2021-09-25 13:49:07",
318
            "created": "2020-08-18 13:03:24",
319
            "containerName_ff": "generalPill"
320
        },
321
        {
322
            "dynamicUpdate": "no",
323
            "enabled": "yes",
324
            "name": "description",
325
            "label": "Description",
326
            "mode": "show",
327
            "modeSql": "",
328
            "class": "native",
329
            "type": "text",
330
            "subrecordOption": "",
331
            "encode": "specialchar",
332
            "checkType": "auto",
333
            "checkPattern": "",
334
            "onChange": "",
335
            "ord": 80,
336
            "tabindex": 0,
337
            "size": "20,5",
338
            "maxLength": "",
339
            "labelAlign": "default",
340
            "bsLabelColumns": "",
341
            "bsInputColumns": "",
342
            "bsNoteColumns": "",
343
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
344
            "note": "",
345
            "adminNote": "",
346
            "tooltip": "",
347
            "placeholder": "",
348
            "value": "",
349
            "sql1": "",
350
            "parameter": "",
351
            "parameterLanguageA": "",
352
            "parameterLanguageB": "",
353
            "parameterLanguageC": "",
354
            "parameterLanguageD": "",
355
            "clientJs": "",
356
            "feGroup": "",
357
            "deleted": "no",
358
            "modified": "2021-09-25 13:02:55",
359
            "created": "2020-08-18 13:03:49",
360
            "containerName_ff": "generalPill"
361
        },
362
        {
363
            "dynamicUpdate": "no",
364
            "enabled": "no",
365
            "name": "publiclyVisible",
366
            "label": "Show on 'Browse Events'",
367
            "mode": "show",
368
            "modeSql": "",
369
            "class": "native",
370
            "type": "checkbox",
371
            "subrecordOption": "",
372
            "encode": "specialchar",
373
            "checkType": "auto",
374
            "checkPattern": "",
375
            "onChange": "",
376
            "ord": 90,
377
            "tabindex": 0,
378
            "size": "",
379
            "maxLength": "",
380
            "labelAlign": "default",
381
            "bsLabelColumns": "",
382
            "bsInputColumns": "",
383
            "bsNoteColumns": "",
384
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
385
            "note": "",
386
            "adminNote": "",
387
            "tooltip": "",
388
            "placeholder": "",
389
            "value": "",
390
            "sql1": "",
391
            "parameter": "checked=yes\r\nunchecked=no",
392
            "parameterLanguageA": "",
393
            "parameterLanguageB": "",
394
            "parameterLanguageC": "",
395
            "parameterLanguageD": "",
396
            "clientJs": "",
397
            "feGroup": "",
398
            "deleted": "no",
399
            "modified": "2021-10-19 15:56:20",
400
            "created": "2020-10-06 13:33:00",
401
            "containerName_ff": "generalPill"
402
        },
403
        {
404
            "dynamicUpdate": "no",
405
            "enabled": "yes",
406
            "name": "mySpeakers",
407
            "label": "Speakers",
408
            "mode": "show",
409
            "modeSql": "",
410
            "class": "native",
411
            "type": "subrecord",
412
            "subrecordOption": "edit,delete,new",
413
            "encode": "specialchar",
414
            "checkType": "auto",
415
            "checkPattern": "",
416
            "onChange": "",
417
            "ord": 100,
418
            "tabindex": 0,
419
            "size": "",
420
            "maxLength": "",
421
            "labelAlign": "default",
422
            "bsLabelColumns": "",
423
            "bsInputColumns": "",
424
            "bsNoteColumns": "",
425
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
426
            "note": "",
427
            "adminNote": "",
428
            "tooltip": "",
429
            "placeholder": "",
430
            "value": "",
431
            "sql1": "{{! SELECT gm.id AS _id, CONCAT(p.firstName, ' ', p.name, ' (', p.account, ')') AS 'title=Name|maxLength=100',\r\n            IF(r.id IS NULL, ' [Speaker Role expired]', '') AS _rowTooltip,\r\n            IF(r.id IS NULL, 'text-muted', '') AS _rowClass\r\n    FROM (Person AS p, GroupMember AS gm, Ggroup AS g, Ggroup AS gSpeaker)\r\n    LEFT JOIN Role AS r\r\n      ON r.grId = gSpeaker.id \r\n      AND r.start <= NOW() \r\n      AND r.end >= NOW() \r\n      AND r.pId = p.id\r\n    WHERE gm.grId = g.id \r\n      AND gm.xId = {{id:R0}} \r\n      AND gm.xId2 = p.id \r\n      AND g.reference = 'sl_event_speaker'\r\n      AND gSpeaker.reference = 'sl_role_speaker'  \r\n    GROUP BY gm.id }}",
432
            "parameter": "form=EventSpeaker\r\ndetail=id:xId",
433
            "parameterLanguageA": "",
434
            "parameterLanguageB": "",
435
            "parameterLanguageC": "",
436
            "parameterLanguageD": "",
437
            "clientJs": "",
438
            "feGroup": "",
439
            "deleted": "no",
440
            "modified": "2021-09-25 13:02:55",
441
            "created": "2020-08-19 16:10:07",
442
            "containerName_ff": "generalPill"
443
        },
444
        {
445
            "dynamicUpdate": "no",
446
            "enabled": "yes",
447
            "name": "streamingPill",
448
            "label": "Streaming",
449
            "mode": "show",
450
            "modeSql": "",
451
            "class": "container",
452
            "type": "pill",
453
            "subrecordOption": "",
454
            "encode": "specialchar",
455
            "checkType": "auto",
456
            "checkPattern": "",
457
            "onChange": "",
458
            "ord": 110,
459
            "tabindex": 0,
460
            "size": "",
461
            "maxLength": "",
462
            "labelAlign": "default",
463
            "bsLabelColumns": "",
464
            "bsInputColumns": "",
465
            "bsNoteColumns": "",
466
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
467
            "note": "",
468
            "adminNote": "",
469
            "tooltip": "",
470
            "placeholder": "",
471
            "value": "",
472
            "sql1": "",
473
            "parameter": "",
474
            "parameterLanguageA": "",
475
            "parameterLanguageB": "",
476
            "parameterLanguageC": "",
477
            "parameterLanguageD": "",
478
            "clientJs": "",
479
            "feGroup": "",
480
            "deleted": "no",
481
            "modified": "2021-09-25 13:02:55",
482
            "created": "2020-08-18 13:04:08"
483
        },
484
        {
485
            "dynamicUpdate": "no",
486
            "enabled": "no",
487
            "name": "eventUrl",
488
            "label": "Event URL",
489
            "mode": "show",
490
            "modeSql": "",
491
            "class": "native",
492
            "type": "text",
493
            "subrecordOption": "",
494
            "encode": "specialchar",
495
            "checkType": "auto",
496
            "checkPattern": "",
497
            "onChange": "",
498
            "ord": 120,
499
            "tabindex": 0,
500
            "size": "",
501
            "maxLength": "",
502
            "labelAlign": "default",
503
            "bsLabelColumns": "",
504
            "bsInputColumns": "",
505
            "bsNoteColumns": "",
506
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
507
            "note": "",
508
            "adminNote": "",
509
            "tooltip": "",
510
            "placeholder": "",
511
            "value": "",
512
            "sql1": "",
513
            "parameter": "",
514
            "parameterLanguageA": "",
515
            "parameterLanguageB": "",
516
            "parameterLanguageC": "",
517
            "parameterLanguageD": "",
518
            "clientJs": "",
519
            "feGroup": "",
520
            "deleted": "no",
521
            "modified": "2021-09-25 13:02:55",
522
            "created": "2020-08-18 13:04:36",
523
            "containerName_ff": "streamingPill"
524
        },
525
        {
526
            "dynamicUpdate": "no",
527
            "enabled": "yes",
528
            "name": "streamsFieldset",
529
            "label": "Streams",
530
            "mode": "show",
531
            "modeSql": "",
532
            "class": "container",
533
            "type": "fieldset",
534
            "subrecordOption": "",
535
            "encode": "specialchar",
536
            "checkType": "auto",
537
            "checkPattern": "",
538
            "onChange": "",
539
            "ord": 130,
540
            "tabindex": 0,
541
            "size": "",
542
            "maxLength": "",
543
            "labelAlign": "default",
544
            "bsLabelColumns": "",
545
            "bsInputColumns": "",
546
            "bsNoteColumns": "",
547
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
548
            "note": "",
549
            "adminNote": "",
550
            "tooltip": "",
551
            "placeholder": "",
552
            "value": "",
553
            "sql1": "",
554
            "parameter": "",
555
            "parameterLanguageA": "",
556
            "parameterLanguageB": "",
557
            "parameterLanguageC": "",
558
            "parameterLanguageD": "",
559
            "clientJs": "",
560
            "feGroup": "",
561
            "deleted": "no",
562
            "modified": "2021-09-25 13:02:55",
563
            "created": "2020-10-05 10:46:52",
564
            "containerName_ff": "streamingPill"
565
        },
566
        {
567
            "dynamicUpdate": "yes",
568
            "enabled": "yes",
569
            "name": "liveStream",
570
            "label": "Stream this event live?",
571
            "mode": "show",
572
            "modeSql": "",
573
            "class": "native",
574
            "type": "radio",
575
            "subrecordOption": "",
576
            "encode": "specialchar",
577
            "checkType": "auto",
578
            "checkPattern": "",
579
            "onChange": "",
580
            "ord": 140,
581
            "tabindex": 0,
582
            "size": "",
583
            "maxLength": "",
584
            "labelAlign": "default",
585
            "bsLabelColumns": "",
586
            "bsInputColumns": "",
587
            "bsNoteColumns": "",
588
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
589
            "note": "",
590
            "adminNote": "",
591
            "tooltip": "",
592
            "placeholder": "",
593
            "value": "",
594
            "sql1": "",
595
            "parameter": "",
596
            "parameterLanguageA": "",
597
            "parameterLanguageB": "",
598
            "parameterLanguageC": "",
599
            "parameterLanguageD": "",
600
            "clientJs": "",
601
            "feGroup": "",
602
            "deleted": "no",
603
            "modified": "2021-09-25 13:02:55",
604
            "created": "2020-08-18 13:05:48",
605
            "containerName_ff": "streamsFieldset"
606
        },
607
        {
608
            "dynamicUpdate": "yes",
609
            "enabled": "yes",
610
            "name": "access",
611
            "label": "Who has access to the livestream?",
612
            "mode": "show",
613
            "modeSql": "{{SELECT IF('{{liveStream:FRE:alnumx}}' = 'no', 'hidden', 'show') }}",
614
            "class": "native",
615
            "type": "checkbox",
616
            "subrecordOption": "",
617
            "encode": "specialchar",
618
            "checkType": "auto",
619
            "checkPattern": "",
620
            "onChange": "",
621
            "ord": 150,
622
            "tabindex": 0,
623
            "size": "",
624
            "maxLength": "",
625
            "labelAlign": "default",
626
            "bsLabelColumns": "",
627
            "bsInputColumns": "",
628
            "bsNoteColumns": "",
629
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
630
            "note": "",
631
            "adminNote": "",
632
            "tooltip": "",
633
            "placeholder": "",
634
            "value": "",
635
            "sql1": "",
636
            "parameter": "itemList = public:Anyone,authenticated:Logged in users,password:Users who know the password",
637
            "parameterLanguageA": "",
638
            "parameterLanguageB": "",
639
            "parameterLanguageC": "",
640
            "parameterLanguageD": "",
641
            "clientJs": "",
642
            "feGroup": "",
643
            "deleted": "no",
644
            "modified": "2021-09-25 13:02:55",
645
            "created": "2020-08-18 13:06:10",
646
            "containerName_ff": "streamsFieldset"
647
        },
648
        {
649
            "dynamicUpdate": "yes",
650
            "enabled": "yes",
651
            "name": "streamPassword",
652
            "label": "Stream password",
653
            "mode": "show",
654
            "modeSql": "{{SELECT IF('{{liveStream:FRE:alnumx}}' = 'yes' AND '{{access:FRE:alnumx}}' LIKE '%password%', 'show', 'hidden') }}",
655
            "class": "native",
656
            "type": "text",
657
            "subrecordOption": "",
658
            "encode": "specialchar",
659
            "checkType": "auto",
660
            "checkPattern": "",
661
            "onChange": "",
662
            "ord": 160,
663
            "tabindex": 0,
664
            "size": "",
665
            "maxLength": "",
666
            "labelAlign": "default",
667
            "bsLabelColumns": "",
668
            "bsInputColumns": "",
669
            "bsNoteColumns": "",
670
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
671
            "note": "",
672
            "adminNote": "",
673
            "tooltip": "",
674
            "placeholder": "",
675
            "value": "",
676
            "sql1": "",
677
            "parameter": "",
678
            "parameterLanguageA": "",
679
            "parameterLanguageB": "",
680
            "parameterLanguageC": "",
681
            "parameterLanguageD": "",
682
            "clientJs": "",
683
            "feGroup": "",
684
            "deleted": "no",
685
            "modified": "2021-10-27 17:42:21",
686
            "created": "2020-10-05 11:43:03",
687
            "containerName_ff": "streamsFieldset"
688
        },
689
        {
690
            "dynamicUpdate": "no",
691
            "enabled": "yes",
692
            "name": "recordingsFieldset",
693
            "label": "Recordings",
694
            "mode": "show",
695
            "modeSql": "",
696
            "class": "container",
697
            "type": "fieldset",
698
            "subrecordOption": "",
699
            "encode": "specialchar",
700
            "checkType": "auto",
701
            "checkPattern": "",
702
            "onChange": "",
703
            "ord": 170,
704
            "tabindex": 0,
705
            "size": "",
706
            "maxLength": "",
707
            "labelAlign": "default",
708
            "bsLabelColumns": "",
709
            "bsInputColumns": "",
710
            "bsNoteColumns": "",
711
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
712
            "note": "",
713
            "adminNote": "",
714
            "tooltip": "",
715
            "placeholder": "",
716
            "value": "",
717
            "sql1": "",
718
            "parameter": "",
719
            "parameterLanguageA": "",
720
            "parameterLanguageB": "",
721
            "parameterLanguageC": "",
722
            "parameterLanguageD": "",
723
            "clientJs": "",
724
            "feGroup": "",
725
            "deleted": "no",
726
            "modified": "2021-09-25 13:02:55",
727
            "created": "2020-10-05 10:47:23",
728
            "containerName_ff": "streamingPill"
729
        },
730
        {
731
            "dynamicUpdate": "yes",
732
            "enabled": "yes",
733
            "name": "record",
734
            "label": "Record stream",
735
            "mode": "show",
736
            "modeSql": "",
737
            "class": "native",
738
            "type": "radio",
739
            "subrecordOption": "",
740
            "encode": "specialchar",
741
            "checkType": "auto",
742
            "checkPattern": "",
743
            "onChange": "",
744
            "ord": 180,
745
            "tabindex": 0,
746
            "size": "",
747
            "maxLength": "",
748
            "labelAlign": "default",
749
            "bsLabelColumns": "",
750
            "bsInputColumns": "",
751
            "bsNoteColumns": "",
752
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
753
            "note": "",
754
            "adminNote": "",
755
            "tooltip": "",
756
            "placeholder": "",
757
            "value": "",
758
            "sql1": "",
759
            "parameter": "",
760
            "parameterLanguageA": "",
761
            "parameterLanguageB": "",
762
            "parameterLanguageC": "",
763
            "parameterLanguageD": "",
764
            "clientJs": "",
765
            "feGroup": "",
766
            "deleted": "no",
767
            "modified": "2021-09-25 13:02:55",
768
            "created": "2020-08-18 13:06:25",
769
            "containerName_ff": "recordingsFieldset"
770
        },
771
        {
772
            "dynamicUpdate": "yes",
773
            "enabled": "yes",
774
            "name": "recordAccess",
775
            "label": "Who has access to the recordings?",
776
            "mode": "show",
777
            "modeSql": "{{SELECT IF('{{record:FRE:alnumx}}' = 'no', 'hidden', 'show') }}",
778
            "class": "native",
779
            "type": "checkbox",
780
            "subrecordOption": "",
781
            "encode": "specialchar",
782
            "checkType": "auto",
783
            "checkPattern": "",
784
            "onChange": "",
785
            "ord": 190,
786
            "tabindex": 0,
787
            "size": "",
788
            "maxLength": "",
789
            "labelAlign": "default",
790
            "bsLabelColumns": "",
791
            "bsInputColumns": "",
792
            "bsNoteColumns": "",
793
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
794
            "note": "",
795
            "adminNote": "",
796
            "tooltip": "",
797
            "placeholder": "",
798
            "value": "",
799
            "sql1": "",
800
            "parameter": "itemList = public:Anyone,authenticated:Logged in users,password:Users who know the password",
801
            "parameterLanguageA": "",
802
            "parameterLanguageB": "",
803
            "parameterLanguageC": "",
804
            "parameterLanguageD": "",
805
            "clientJs": "",
806
            "feGroup": "",
807
            "deleted": "no",
808
            "modified": "2021-09-25 13:02:55",
809
            "created": "2020-08-24 17:55:11",
810
            "containerName_ff": "recordingsFieldset"
811
        },
812
        {
813
            "dynamicUpdate": "yes",
814
            "enabled": "yes",
815
            "name": "recordPassword",
816
            "label": "Recordings password",
817
            "mode": "show",
818
            "modeSql": "{{SELECT IF('{{record:FRE:alnumx}}' = 'yes' AND '{{recordAccess:FRE:alnumx}}' LIKE '%password%', 'show', 'hidden') }}",
819
            "class": "native",
820
            "type": "password",
821
            "subrecordOption": "",
822
            "encode": "specialchar",
823
            "checkType": "auto",
824
            "checkPattern": "",
825
            "onChange": "",
826
            "ord": 200,
827
            "tabindex": 0,
828
            "size": "",
829
            "maxLength": "",
830
            "labelAlign": "default",
831
            "bsLabelColumns": "",
832
            "bsInputColumns": "",
833
            "bsNoteColumns": "",
834
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
835
            "note": "",
836
            "adminNote": "",
837
            "tooltip": "",
838
            "placeholder": "",
839
            "value": "",
840
            "sql1": "",
841
            "parameter": "",
842
            "parameterLanguageA": "",
843
            "parameterLanguageB": "",
844
            "parameterLanguageC": "",
845
            "parameterLanguageD": "",
846
            "clientJs": "",
847
            "feGroup": "",
848
            "deleted": "no",
849
            "modified": "2021-09-25 13:02:55",
850
            "created": "2020-10-05 11:43:34",
851
            "containerName_ff": "recordingsFieldset"
852
        },
853
        {
854
            "dynamicUpdate": "yes",
855
            "enabled": "yes",
856
            "name": "publishMode",
857
            "label": "Automatically publish recordings",
858
            "mode": "show",
859
            "modeSql": "{{SELECT IF('{{record:FRE:alnumx}}' = 'no', 'hidden', 'show') }}",
860
            "class": "native",
861
            "type": "checkbox",
862
            "subrecordOption": "",
863
            "encode": "specialchar",
864
            "checkType": "auto",
865
            "checkPattern": "",
866
            "onChange": "",
867
            "ord": 210,
868
            "tabindex": 0,
869
            "size": "",
870
            "maxLength": "",
871
            "labelAlign": "default",
872
            "bsLabelColumns": "",
873
            "bsInputColumns": "",
874
            "bsNoteColumns": "",
875
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
876
            "note": "",
877
            "adminNote": "",
878
            "tooltip": "",
879
            "placeholder": "",
880
            "value": "",
881
            "sql1": "",
882
            "parameter": "checked=Auto\r\nunchecked=Manual",
883
            "parameterLanguageA": "",
884
            "parameterLanguageB": "",
885
            "parameterLanguageC": "",
886
            "parameterLanguageD": "",
887
            "clientJs": "",
888
            "feGroup": "",
889
            "deleted": "no",
890
            "modified": "2021-09-25 13:02:55",
891
            "created": "2020-08-18 13:05:24",
892
            "containerName_ff": "recordingsFieldset"
893
        },
894
        {
895
            "dynamicUpdate": "no",
896
            "enabled": "yes",
897
            "name": "schedulePill",
898
            "label": "Schedule",
899
            "mode": "show",
900
            "modeSql": "",
901
            "class": "container",
902
            "type": "pill",
903
            "subrecordOption": "",
904
            "encode": "specialchar",
905
            "checkType": "auto",
906
            "checkPattern": "",
907
            "onChange": "",
908
            "ord": 220,
909
            "tabindex": 0,
910
            "size": "",
911
            "maxLength": "",
912
            "labelAlign": "default",
913
            "bsLabelColumns": "",
914
            "bsInputColumns": "",
915
            "bsNoteColumns": "",
916
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
917
            "note": "",
918
            "adminNote": "",
919
            "tooltip": "",
920
            "placeholder": "",
921
            "value": "",
922
            "sql1": "",
923
            "parameter": "",
924
            "parameterLanguageA": "",
925
            "parameterLanguageB": "",
926
            "parameterLanguageC": "",
927
            "parameterLanguageD": "",
928
            "clientJs": "",
929
            "feGroup": "",
930
            "deleted": "no",
931
            "modified": "2021-09-25 13:02:55",
932
            "created": "2020-08-18 13:06:59"
933
        },
934
        {
935
            "dynamicUpdate": "no",
936
            "enabled": "yes",
937
            "name": "actionDeleteMeeting",
938
            "label": "",
939
            "mode": "show",
940
            "modeSql": "",
941
            "class": "native",
942
            "type": "note",
943
            "subrecordOption": "",
944
            "encode": "specialchar",
945
            "checkType": "auto",
946
            "checkPattern": "",
947
            "onChange": "",
948
            "ord": 230,
949
            "tabindex": 0,
950
            "size": "",
951
            "maxLength": "",
952
            "labelAlign": "default",
953
            "bsLabelColumns": "0",
954
            "bsInputColumns": "12",
955
            "bsNoteColumns": "0",
956
            "rowLabelInputNote": "",
957
            "note": "",
958
            "adminNote": "",
959
            "tooltip": "",
960
            "placeholder": "",
961
            "value": "#!report\r\n\r\n#\r\n# Deletes Meetings in Bulk\r\n#\r\n# {{action:SE:alnumx}} = 'deleteMeetings'\r\n# {{meetingIds_255:C0:alnumx}} - Meetings to be deleted in the format '10,46,104'\r\n#\r\n\r\n# Only Execute if Action = deleteMeetings\r\n\r\n10 {\r\n  sql = SELECT \"\" FROM (SELECT 1) AS fake WHERE \"{{action:SE:alnumx}}\" = \"deleteMeetings\" AND '{{meetingIds_255:C0:alnumx}}' != '0'\r\n\r\n  # Persist meeting Ids for next page content\r\n  5.sql = SELECT '{{meetingIds_255:C0:alnumx}}' AS _meetingIds, '{{meetingIds_255:C0:alnumx}}' AS \"_=meetingIds\"\r\n\r\n  # [REMOVED BECAUSE RC IS NO LONGER USED] Delete RC Channel\r\n  10 {\r\n     sql = SELECT m.id AS _mId\r\n           FROM Meeting AS m\r\n           WHERE m.id IN ({{meetingIds:R0}}) \r\n\r\n    # Delete Meeting                                                             \r\n    20 {\r\n      sql = DELETE FROM Meeting\r\n          WHERE id = {{mId:R0}}\r\n    }\r\n\r\n    # Increase Success\/Failure counter\r\n    30 {\r\n      sql = SELECT {{nrOfSuccess:R0}} + 1 AS _nrOfSuccess\r\n    }  \r\n  }\r\n\r\n  # Calc Total\r\n  20.sql = SELECT {{nrOfSuccess:R0}} + {{nrOfFailure:R0}} AS _nrTotal\r\n\r\n  # Message Box Success\r\n  30 {\r\n     sql = SELECT IF('{{nrOfSuccess:R0}}' = 1, \"The Meeting has been successfully deleted.\",\r\n             \"{{nrOfSuccess:R0}} Meetings have been successfully deleted.\") FROM (SELECT 1) AS fake\r\n          WHERE '{{nrOfFailure:R0}}' = 0 AND '{{nrOfSuccess:R0}}' > 0\r\n\r\n     head = <div class=\"alert alert-success alert-dismissible\" role=\"alert\">\r\n          \r\n     tail =   <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n            <span aria-hidden=\"true\">&times;<\/span>\r\n          <\/button>\r\n        <\/div>\r\n  }\r\n    \r\n  # Message Box Warning\r\n  40 {\r\n     sql = SELECT \"\" FROM (SELECT 1) AS fake\r\n          WHERE '{{nrOfFailure:R0}}' > 0 AND '{{nrOfSuccess:R0}}' > 0\r\n     #success\r\n     head = <div class=\"alert alert-warning alert-dismissible\" role=\"alert\">\r\n          Only {{nrOfSuccess:R0}} out of {{nrTotal:R0}} meetings have been successfully deleted.\r\n          Please wait a minute and try again for the remaining meetings.\r\n          If the error persists, contact <a href=\"mailto:{{SYSTEM_ADMIN_CONTACT:Y}}\">{{SYSTEM_ADMIN_CONTACT:Y}}<\/a>.\r\n          <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n            <span aria-hidden=\"true\">&times;<\/span>\r\n          <\/button>\r\n        <\/div>\r\n  }  \r\n\r\n\r\n  # Message Box Error\r\n  50 {\r\n     sql = SELECT \"\" FROM (SELECT 1) AS fake\r\n          WHERE '{{nrOfFailure:R0}}' > 0 AND '{{nrOfSuccess:R0}}' = 0\r\n     #error\r\n     head =  <div class=\"alert alert-danger alert-dismissible\" role=\"alert\">\r\n            An error occured while trying to delete the meeting(s). Please try again in a minute. If the error persists, contact <a href=\"mailto:{{SYSTEM_ADMIN_CONTACT:Y}}\">{{SYSTEM_ADMIN_CONTACT:Y}}<\/a>.\r\n            <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n              <span aria-hidden=\"true\">&times;<\/span>\r\n            <\/button>\r\n          <\/div>\r\n  }\r\n\r\n}",
962
            "sql1": "",
963
            "parameter": "",
964
            "parameterLanguageA": "",
965
            "parameterLanguageB": "",
966
            "parameterLanguageC": "",
967
            "parameterLanguageD": "",
968
            "clientJs": "",
969
            "feGroup": "",
970
            "deleted": "no",
971
            "modified": "2021-10-27 14:33:41",
972
            "created": "2020-09-17 19:00:16",
973
            "containerName_ff": "schedulePill"
974
        },
975
        {
976
            "dynamicUpdate": "no",
977
            "enabled": "yes",
978
            "name": "actionCreateMeetings",
979
            "label": "",
980
            "mode": "show",
981
            "modeSql": "",
982
            "class": "native",
983
            "type": "note",
984
            "subrecordOption": "",
985
            "encode": "specialchar",
986
            "checkType": "auto",
987
            "checkPattern": "",
988
            "onChange": "",
989
            "ord": 240,
990
            "tabindex": 0,
991
            "size": "",
992
            "maxLength": "",
993
            "labelAlign": "default",
994
            "bsLabelColumns": "0",
995
            "bsInputColumns": "12",
996
            "bsNoteColumns": "0",
997
            "rowLabelInputNote": "",
998
            "note": "",
999
            "adminNote": "",
1000
            "tooltip": "",
1001
            "placeholder": "",
1002
            "value": "#!report\r\n#\r\n# Create multiple meetings at once with the Recurring Meeting Functionality\r\n#\r\n# {{action:SE}} = 'createMeetings'\r\n# [Optional - only if recurring meetings are to be created]\r\n# - {{originalMeetingId:S0}} - Id of the meeting from which more\/recurring meetings are created\r\n# - {{interval:S0}} - digit\r\n# - {{intervalUnit:SE:alnumx}} - Week \/ Day\r\n#   [Optional - only one of the two]\r\n#   - {{nrOfOccurrences:S0}} - Number of copies of the meeting to be created\r\n#   - {{endDate:SE:alnumx}} - Create recurring Meetings\r\n#\r\n#\r\n# VERSION 2 \r\n# [Version 2 of the recurring meeting functionality happens exclusively in the Event Form. It has 2 modes:]\r\n# {{v2Mode:S0}} - 1=semester (creates 14 meetings, starting in the first week of the semester), 2=single (creates 1 meeting)\r\n# {{v2Date:SE}} - date of the meeting, only relevant for mode=single\r\n# {{v2Weekday:S0}} - weekday on which the meeting is held, only relevant for mode=semester [1=Monday, 7=Sunday]\r\n# {{v2TimeFrom:SE}} - start time\r\n# {{v2TimeTo:SE}} - end time\r\n# {{v2RoomId:SE}} - room Id\r\n#\r\n\r\n\r\n10 {\r\n  sql = SELECT \"\" FROM (SELECT 1) AS fake WHERE \"{{action:SE:alnumx}}\" = \"createMeetings\"\r\n\r\n  # Precalc date values for V2 SEMESTER MODE\r\n  4.sql = SELECT {{v2Weekday:S0}} - 1 - 7 AS _weekdayOffset \/* -1 because {{v2Weekday:S0}} starts at 1 for monday. -7 because the code further down below is going to add 7 for the first meeting *\/\r\n\r\n  5 {\r\n    sql = SELECT 14 AS _nrOfOccurrences,\r\n                 \r\n                 DATE_FORMAT(DATE_ADD(sem.dateLectureFrom, INTERVAL {{weekdayOffset:R0}} DAY), '%Y-%m-%d {{v2TimeFrom:SE}}') AS _originalMeetingStart,\r\n                 DATE_FORMAT(DATE_ADD(sem.dateLectureFrom, INTERVAL {{weekdayOffset:R0}} DAY), '%Y-%m-%d {{v2TimeTo:SE}}') AS _originalMeetingEnd\r\n          FROM Event AS ev, Semester AS sem\r\n          WHERE '{{version:S0}}' = '2' AND '{{v2Mode:S0}}' = '1' \r\n            AND ev.id = {{id:R0}}\r\n            AND ev.semesterId = sem.id\r\n  }\r\n\r\n  # Precalc date values for V2 SINGLE MODE\r\n  6 {\r\n    sql = SELECT  1 AS _nrOfOccurrences,\r\n                  DATE_ADD('{{v2Date:SE}} {{v2TimeFrom:SE}}', INTERVAL -7 DAY) AS _originalMeetingStart,\r\n                  DATE_ADD('{{v2Date:SE}} {{v2TimeTo:SE}}', INTERVAL -7 DAY) AS _originalMeetingEnd\r\n          FROM (SELECT 1) AS fake WHERE '{{version:S0}}' = '2' AND '{{v2Mode:S0}}' = '2' \r\n  }\r\n\r\n  # Convert params of new method (sem & weekday or single date) into params of existing functionality\r\n  10{\r\n    sql = SELECT  ev.name AS _originalMeetingName, \r\n                  ev.id AS _originalMeetingEventId, \r\n                  '{{v2RoomId:S0}}' AS _originalMeetingRoomId, \r\n                  '7' AS _interval, \r\n                  'DAY' AS _intervalUnit,\r\n                  '7' AS _intervalDays\r\n\r\n          FROM Event AS ev, Semester AS sem, Room AS room\r\n          WHERE ev.id = {{id:R0}}\r\n            AND ev.semesterId = sem.id\r\n            AND '{{version:S0}}' = '2'\r\n            AND room.id = '{{v2RoomId:S0}}'\r\n            AND (('{{v2Mode:S0}}' = '1' AND '{{v2Weekday:S0}}' != 0) OR ('{{v2Mode:S0}}' = '2' AND '{{v2Date:SE}}' != ''))\r\n            AND '{{v2TimeTo:SE}}' != ''\r\n            AND '{{v2TimeFrom:SE}}' != ''\r\n          LIMIT 1\r\n\r\n    altsql = SELECT '{{originalMeetingId:S0}}' AS _originalMeetingId, '{{interval:S0}}' AS _interval, '{{intervalUnit:SE:alnumx}}' AS _intervalUnit, '{{nrOfOccurrences:S0}}' AS _nrOfOccurrences, '{{endDate:SE:alnumx}}' AS _endDate\r\n  }\r\n\r\n\r\n  ######## NO MORE SIP VARS USED FROM HERE ON - DIFFERENT PARAMS FROM ALL MODES HAVE BEEN UNIFIED AT THIS POINT\r\n\r\n  # Convert Weeks to days\r\n  20 {\r\n    sql = SELECT IF('{{intervalUnit:RE:alnumx}}' = 'Week', '{{interval:R0}}' * 7, '{{interval:R0}}') AS _intervalDays\r\n  }\r\n\r\n  25 {\r\n\r\n    sql = SELECT m.id AS _originalMeetingId, IF(m.name != '', m.name, ev.name) AS _originalMeetingName, m.evId AS _originalMeetingEventId, m.roomId AS _originalMeetingRoomId, m.start AS _originalMeetingStart, m.end AS _originalMeetingEnd,\r\n                 IF('{{nrOfOccurrences:R0}}' != 0, '{{nrOfOccurrences:R0}}',\r\n                   FLOOR(ABS(DATEDIFF(DATE(m.start), '{{endDate:RE:alnumx}}') \/ {{intervalDays:R:::7}}))) AS _nrOfOccurrences\r\n          FROM Meeting AS m, Event AS ev\r\n          WHERE '{{version:S0}}' != '2' \r\n            AND ('{{nrOfOccurrences:R0}}' != 0 AND '{{endDate:RE}}' != '') = FALSE\r\n            AND ('{{nrOfOccurrences:R0}}' != 0 OR '{{endDate:RE}}' != '') = TRUE\r\n            AND '{{interval:R0}}' > 0\r\n            AND '{{intervalUnit:RE}}' != ''\r\n            AND m.id = {{originalMeetingId:R0}}\r\n            AND ev.id = m.evId\r\n          LIMIT 1\r\n  }\r\n\r\n  # Check if parameters are valid and select original meeting data\r\n  30 {\r\n    sql = SELECT '' FROM (SELECT 1) AS fake\r\n          WHERE '{{originalMeetingStart:RE}}' != ''\r\n            AND '{{originalMeetingEnd:RE}}' != ''\r\n            AND {{nrOfOccurrences:R0}} != 0\r\n            AND {{originalMeetingEventId:R0}} != 0\r\n            AND {{originalMeetingRoomId:R0}} != 0\r\n            AND '{{originalMeetingName:RE}}' != ''\r\n\r\n\r\n    altsql = SELECT 'yes' AS _paramError\r\n    althead = <div class=\"alert alert-danger alert-dismissible\" role=\"alert\">\r\n                Invalid Parameters - failed to create recurring meetings.<br>\r\n                <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n                  <span aria-hidden=\"true\">&times;<\/span>\r\n                <\/button>\r\n              <\/div>\r\n\r\n    # Iterate until end Condition is met\r\n    40 {\r\n      sql = SELECT DATE_ADD('{{originalMeetingStart:RE}}', INTERVAL 0 + (number.id) * {{intervalDays:R0}} DAY) AS _newStart,\r\n                   DATE_ADD('{{originalMeetingEnd:RE}}', INTERVAL 0 + (number.id) * {{intervalDays:R0}} DAY) AS _newEnd\r\n            FROM Number AS number\r\n            WHERE number.id <= {{nrOfOccurrences:R0}}\r\n            ORDER BY number.id ASC\r\n\r\n      # OLD: Check for Duplicates\r\n      #50 {\r\n      #  sql = SELECT  'yes' AS _isDuplicate, 1 + {{nrOfDuplicates:R0}} AS _nrOfDuplicates\r\n      #        FROM Meeting AS m\r\n      #        WHERE m.evId = {{originalMeetingEventId:R0}}\r\n      #          AND m.roomId = {{originalMeetingRoomId:R0}}\r\n      #          AND m.start = '{{newStart:RE}}'\r\n      #          AND m.end = '{{newEnd:RE}}'\r\n      #  altsql = SELECT 'no' AS _isDuplicate\r\n      #}\r\n\r\n      # NEW: Check if the meeting is already in the past - if yes, don't create it\r\n      45 {\r\n        sql = SELECT 'yes' AS _isPast, 1 + {{nrOfPast:R0}} AS _nrOfPast\r\n              FROM (SELECT 1) AS fake\r\n              WHERE NOW() > '{{newEnd:RE}}'\r\n        altsql = SELECT 'no' AS _isPast\r\n      }\r\n\r\n      # NEW: Check for meeting collision\r\n      50 {\r\n        sql = SELECT  'yes' AS _isDuplicate, 1 + {{nrOfDuplicates:R0}} AS _nrOfDuplicates\r\n              FROM Meeting AS m\r\n              WHERE m.roomId = {{originalMeetingRoomId:R0}}\r\n                AND ( (m.start < '{{newEnd:RE}}' AND m.end > '{{newStart:RE}}') OR ('{{newStart:RE}}' < m.end AND '{{newEnd:RE}}' > m.start) )\r\n                AND '{{isPast:RE}}' = 'no'\r\n              LIMIT 1\r\n\r\n        altsql = SELECT 'no' AS _isDuplicate\r\n      }\r\n\r\n\r\n\r\n      # INSERT new meeting if no Duplicate\r\n      60 {\r\n        sql = SELECT '' FROM (SELECT 1) AS hack WHERE '{{isDuplicate:RE}}' = 'no' AND '{{isPast:RE}}' = 'no'\r\n\r\n        70 {\r\n          sql = INSERT INTO Meeting (evId, name, roomId, originMeetingId, start, end)\r\n                VALUES({{originalMeetingEventId:R0}}, '{{originalMeetingName:RE}}', {{originalMeetingRoomId:R0}}, {{originalMeetingId:R0}}, '{{newStart:RE}}', '{{newEnd:RE}}')\r\n        }\r\n\r\n        80.sql = SELECT 1 + {{nrOfInserts:R0}} AS _nrOfInserts, CONCAT(LAST_INSERT_ID(), ',{{insertedMeetingIds:R0}}') AS _insertedMeetingIds                                                                                                                                                                     \r\n\r\n      }\r\n    \r\n    }\r\n\r\n    # Summarize Results in Infobox   \r\n    # Message Box Success\r\n    120 {\r\n       sql = SELECT IF('{{nrOfInserts:R0}}' = 1, \"The Meeting has been successfully created.\",\r\n                    \"{{nrOfInserts:R0}} Meetings have been successfully created.\") FROM (SELECT 1) AS fake\r\n           WHERE '{{nrOfDuplicates:R0}}' = 0 AND '{{nrOfPast:R0}}' = 0 AND '{{nrOfInserts:R0}}' > 0 AND '{{paramError:RE}}' != \"yes\"\r\n       #success\r\n       head = <div class=\"alert alert-success alert-dismissible\" role=\"alert\">\r\n            \r\n       tail =   <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n              <span aria-hidden=\"true\">&times;<\/span>\r\n            <\/button>\r\n          <\/div>\r\n    }\r\n      \r\n    # Message Box Warning\r\n    130 {\r\n       sql = SELECT IF('{{nrOfDuplicates:R0}}' > 0, \"{{nrOfDuplicates:R0}} Meeting(s) were not created because of a collision with an existing meeting. \",\"\"),\r\n                    IF('{{nrOfPast:R0}}' > 0, '{{nrOfPast:R0}} Meeting(s) were not created because the end date is already in the past.','')\r\n             FROM (SELECT 1) AS fake\r\n             WHERE ('{{nrOfDuplicates:R0}}' > 0 OR '{{nrOfPast:R0}}' > 0) AND '{{paramError:RE}}' != \"yes\"\r\n       \r\n       head = <div class=\"alert alert-warning alert-dismissible\" role=\"alert\">\r\n              {{nrOfInserts:R0}} Meetings have been created.&nbsp;\r\n       tail = <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\r\n              <span aria-hidden=\"true\">&times;<\/span>\r\n            <\/button>\r\n          <\/div>\r\n    }  \r\n\r\n    # Put Affected Ids in U Store\r\n    140 {\r\n      sql = SELECT '{{insertedMeetingIds:R0}}' AS \"_=meetingIds\"\r\n    }\r\n    \r\n  }\r\n}",
1003
            "sql1": "",
1004
            "parameter": "",
1005
            "parameterLanguageA": "",
1006
            "parameterLanguageB": "",
1007
            "parameterLanguageC": "",
1008
            "parameterLanguageD": "",
1009
            "clientJs": "",
1010
            "feGroup": "",
1011
            "deleted": "no",
1012
            "modified": "2021-11-11 16:24:19",
1013
            "created": "2021-10-27 10:42:43",
1014
            "containerName_ff": "schedulePill"
1015
        },
1016
        {
1017
            "dynamicUpdate": "no",
1018
            "enabled": "yes",
1019
            "name": "addMeetingsToScheduleReport",
1020
            "label": "",
1021
            "mode": "show",
1022
            "modeSql": "",
1023
            "class": "native",
1024
            "type": "note",
1025
            "subrecordOption": "",
1026
            "encode": "specialchar",
1027
            "checkType": "auto",
1028
            "checkPattern": "",
1029
            "onChange": "",
1030
            "ord": 250,
1031
            "tabindex": 0,
1032
            "size": "",
1033
            "maxLength": "",
1034
            "labelAlign": "default",
1035
            "bsLabelColumns": "0",
1036
            "bsInputColumns": "12",
1037
            "bsNoteColumns": "0",
1038
            "rowLabelInputNote": "row,\/row",
1039
            "note": "",
1040
            "adminNote": "",
1041
            "tooltip": "",
1042
            "placeholder": "",
1043
            "value": "#!report\r\n\r\n# Schedule Title\r\n10 {\r\n  # Add Meeting &  Prepare Delete Meeting Link\r\n  sql = SELECT  '<h2 style=\"margin-top:10px;\">Schedule', \r\n                IF('{{id:R0}}' = '0', '<\/h2><p>Please save this record first.<\/p>', '&nbsp;'),\r\n                IF('{{id:R0}}' = '0', '', 'p:{{pageAlias:T}}&form=Meeting&evId={{id:R0}}|s|b|G:glyphicon-plus') AS _link,\r\n                '&nbsp;',\r\n                IF('{{id:R0}}' = '0', '', 'p:{{pageAlias:T}}&form=MeetingWizard&r={{id:R0}}|t:Schedule Wizard|G:glyphicon-plus|s|b') AS _link,\r\n                '<\/h2>'\r\n}",
1044
            "sql1": "",
1045
            "parameter": "",
1046
            "parameterLanguageA": "",
1047
            "parameterLanguageB": "",
1048
            "parameterLanguageC": "",
1049
            "parameterLanguageD": "",
1050
            "clientJs": "",
1051
            "feGroup": "",
1052
            "deleted": "no",
1053
            "modified": "2021-11-15 14:46:30",
1054
            "created": "2021-10-27 15:21:39",
1055
            "containerName_ff": "schedulePill"
1056
        },
1057
        {
1058
            "dynamicUpdate": "no",
1059
            "enabled": "yes",
1060
            "name": "myMeetingsReport",
1061
            "label": "",
1062
            "mode": "show",
1063
            "modeSql": "",
1064
            "class": "native",
1065
            "type": "note",
1066
            "subrecordOption": "",
1067
            "encode": "specialchar",
1068
            "checkType": "auto",
1069
            "checkPattern": "",
1070
            "onChange": "",
1071
            "ord": 360,
1072
            "tabindex": 0,
1073
            "size": "",
1074
            "maxLength": "",
1075
            "labelAlign": "default",
1076
            "bsLabelColumns": "0",
1077
            "bsInputColumns": "12",
1078
            "bsNoteColumns": "0",
1079
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1080
            "note": "",
1081
            "adminNote": "",
1082
            "tooltip": "",
1083
            "placeholder": "",
1084
            "value": "#!report\r\n\r\n#\r\n# Schedule and Bulk-Create\/Delete Meetings \r\n#\r\n# {{action:SE}} -   'deleteMeetings' = Delete all Meetings and RC Channels with stated ids\r\n#                   'createMeetings' = Create n meetings (using the recurring meetings functionality)\r\n# {{meetingIds:U0:alnumx}} - Selected Meeting Ids (for action that has already been processed)\r\n\r\n# Wipe Previously executed Action from SIP\r\n10.sql = SELECT '{{action:SE::w}}' AS _action\r\n\r\n20 {\r\n  sql = SELECT '' FROM (SELECT 1) AS fake WHERE {{id:R0}} != 0\r\n\r\n\r\n\r\n\r\n  # Prepare overviewUrl (Url the user is redirected to after meeting)\r\n  10 {\r\n   sql = SELECT 'p:{{pageAlias:T}}|r:7' AS '_link|overviewUrl|_hide'\r\n                , CONCAT('p:{{pageAlias:T}}&form={{form:SE}}&r=', ev.id, '|s|r:8') AS '_link|overviewSip|_hide'\r\n         FROM Event AS ev\r\n         WHERE ev.id = '{{id:R0}}'\r\n  }\r\n                                                  \r\n\r\n\r\n  # Get logged in user and check if Admin\r\n  20 {\r\n    sql = SELECT p.id AS _pId, IF(roleAdmin.id IS NOT NULL, \"yes\", \"no\") AS _isAdmin\r\n        FROM Person AS p\r\n        LEFT JOIN (Role AS roleAdmin, Ggroup AS gRoleAdmin)\r\n          ON roleAdmin.pId = p.id\r\n            AND NOW() >= roleAdmin.start\r\n            AND NOW() <= roleAdmin.end\r\n            AND roleAdmin.grId = gRoleAdmin.id\r\n            AND gRoleAdmin.reference = \"sl_role_tool_admin\"\r\n        WHERE p.account = \"{{feUser:UTE}}\"\r\n          AND p.account != \"\"\r\n  }\r\n\r\n  # Meeting Schedule\r\n  40 {\r\n      # Prepare Delete Meeting Link\r\n      sql = SELECT  'p:{{pageAlias:T}}&form={{form:SE}}&r={{id:R0}}&eventId={{id:R0}}&action=deleteMeetings|s|r:7' AS '_link|deleteMeetingsLink|_hide'\r\n\r\n  }\r\n\r\n  # Table Header\r\n  50 {\r\n      sql = SELECT '<th class=\"filter-false sorter-false\" style=\"min-width: 120px;\"><input type=\"checkbox\" onclick=\"checkAll()\" id=\"selectAllCheckbox\"\/>',\r\n                   '&nbsp;&nbsp;<button id=\"bulk-delete-button\" class=\"btn btn-default btn-xs\" disabled onclick=\"executeBulkAction(\\'{{&deleteMeetingsLink:RE}}\\')\">',\r\n                  '<span class=\"glyphicon glyphicon-trash\"><\/span><\/button><\/th>',\r\n                   '<th>Date<\/th>', '<th>Room \/ Time<\/th>', '<th class=\"filter-false sorter-false\">Quick Link <span style=\"color:#dc6027\">Streaming<\/span> \/ <span style=\"color:#337ab7\">Recording<\/span><\/th>'\r\n            FROM Meeting AS m\r\n            WHERE m.evId = {{id:R0}}\r\n            LIMIT 1\r\n\r\n      althead = <p>There are no occurrences of this event yet.<\/p>\r\n      head =  <script>\r\n\r\n                function executeBulkAction(sipUrl){\r\n                  var meetingIds = \"\";\r\n                  $(\".mCheckbox\").each(function(i, obj){\r\n                    if($(this).is(\":checked\")){meetingIds += $(this).val() + \",\";} });\r\n                  if(meetingIds.length > 0){\r\n                    meetingIds = meetingIds.substring(0, meetingIds.length - 1);\r\n                    window.location = sipUrl + \"&meetingIds_255=\" + meetingIds + \"#Event_179\";} }\r\n\r\n                function onCheckboxChanged(){\r\n                  if($(\".mCheckbox:checked\").length > 0){\r\n                    $(\"#bulk-delete-button\").prop(\"disabled\", false);}\r\n                  else{\r\n                    $(\"#bulk-delete-button\").prop(\"disabled\", true);} }\r\n\r\n                function checkAll(){\r\n                  var checkValue = $(\"#selectAllCheckbox\").is(\":checked\");\r\n                  $(\".mCheckbox\").each(function(i, obj){$(this).prop(\"checked\", checkValue); });\r\n                  onCheckboxChanged();}\r\n              <\/script>\r\n\r\n              <table class=\"table table-hover qfq-table-50 tablesorter tablesorter-filter\" id=\"{{pageAlias:TE}}-meetings-{{id:R0}}\">\r\n              <thead> <tr>\r\n\r\n      rend =  <\/tr> <\/thead> <tbody>\r\n      tail = <\/tbody> <\/table>   \r\n                      \r\n      # Table Body\r\n      10 {\r\n        sql = SELECT \/* Tablerow Style depending on whether or not and how the row was affected by a bulk action *\/\r\n               IF('{{action:RE}}' = 'deleteMeetings' AND m.id IN ({{meetingIds:U0:alnumx}}), '<tr class=\"warning\">',\r\n                     IF('{{action:RE}}' = 'createMeetings' AND m.id IN ({{meetingIds:U0:alnumx}}), '<tr class=\"success\">',\r\n                       IF(DATE(m.start) = CURDATE(), '<tr class=\"table info\">', '<tr>'))),\r\n\r\n               # Admin: Multi Select, Edit, Repeat Meeting\r\n               '<td><input type=\"checkbox\" class=\"mCheckbox\" value=\"', m.id, '\" onclick=\"onCheckboxChanged()\" \/>&nbsp;&nbsp;',\r\n               CONCAT('p:{{pageAlias:T}}&form=Meeting&r=', m.id, '&eventId={{id:R0}}&action=none|s|o:Edit Meeting|t:<span class=\"glyphicon glyphicon-pencil\"><\/span>|b') AS _link,\r\n               '&nbsp;',               \r\n               CONCAT('p:{{pageAlias:T}}&form=RecurringMeeting&r=', m.id, '&eventId={{id:R0}}&action=none|s|o:Repeat Meeting|t:<span class=\"glyphicon glyphicon-repeat\"><\/span>|b') AS _link,\r\n               '<\/td>',\r\n\r\n               \r\n               '<td>', DATE_FORMAT(m.start, '%a %d.%m.%Y'), '<\/td>',\r\n               '<td>', IF({{evRoomId:R0}} = m.roomId, '{{roomName:R:::-}}', CONCAT( '<b>', room.name, '<\/b> ')), '<br>', DATE_FORMAT(m.start, '%H:%i - '), DATE_FORMAT(m.end, '%H:%i'), '<\/td>',\r\n\r\n               '<td>', CONCAT('<small><a href=\"{{baseUrl:Y}}index.php?id=vuestreaming&meetingId=', m.id, '\">{{baseUrl:Y}}index.php?id=vuestreaming&meetingId=', m.id ,'<\/a>'), '<\/small>', \r\n                       IF(NOW() < m.end, '', CONCAT('<br>', \r\n                         IF(COUNT(r.id) = 0, '<small style=\"color:#337ab7\">No recordings<\/small>',\r\n                            IF(COUNT(rUnfinished.id) > 0, '<small style=\"color:#337ab7\">Recordings are being processed<\/small>',\r\n                              CONCAT('<small><a href=\"{{baseUrl:Y}}index.php?id=recordings&meetingId=', m.id, '\" style=\"color:#337ab7\">{{baseUrl:Y}}index.php?id=recordings&meetingId=', m.id ,'<\/a><\/small>'))))) ,\r\n               '<\/td>'\r\n\r\n               \/*'<td>',\r\n                  IF(DATE(m.start)=CURDATE(), CONCAT('p:vuestreaming&meetingId=', m.id, '&overviewUrl={{&overviewUrl:RE::-}}&overviewSip={{&overviewSip:RE}}|s|b|t:<i class=\"fa fa-play\"><\/i> Join'), '') AS _link,\r\n               '<\/td>'*\/\r\n               \r\n            FROM (Meeting AS m, Room AS room, Event AS ev)\r\n            LEFT JOIN {{MM_DB:Y}}.RecParticipant AS rp\r\n              ON rp.mId = m.id\r\n            LEFT JOIN {{MM_DB:Y}}.RecStream AS rs\r\n              ON rs.rpId = rp.id\r\n            LEFT JOIN {{MM_DB:Y}}.Recording AS r\r\n              ON r.rsId = rs.id\r\n            LEFT JOIN {{MM_DB:Y}}.Recording AS rUnfinished\r\n              ON rUnfinished.rsId = rs.id\r\n              AND rUnfinished.flags < 4\r\n            WHERE m.evId = {{id:R0}}\r\n              AND m.roomId = room.id\r\n              AND ev.id = m.evId\r\n            GROUP BY m.id\r\n            ORDER BY m.start ASC, m.end ASC\r\n        rend = <\/tr>\r\n      }\r\n  }\r\n}\r\n\r\n\r\n# Clear Userstore\r\n30.sql = SELECT \"0\" AS \"_=meetingIds\"",
1085
            "sql1": "",
1086
            "parameter": "",
1087
            "parameterLanguageA": "",
1088
            "parameterLanguageB": "",
1089
            "parameterLanguageC": "",
1090
            "parameterLanguageD": "",
1091
            "clientJs": "",
1092
            "feGroup": "",
1093
            "deleted": "no",
1094
            "modified": "2021-12-17 17:11:54",
1095
            "created": "2021-10-26 14:11:23",
1096
            "containerName_ff": "schedulePill"
1097
        },
1098
        {
1099
            "dynamicUpdate": "no",
1100
            "enabled": "no",
1101
            "name": "myMeetings",
1102
            "label": "Meetings",
1103
            "mode": "show",
1104
            "modeSql": "",
1105
            "class": "native",
1106
            "type": "subrecord",
1107
            "subrecordOption": "edit,new",
1108
            "encode": "specialchar",
1109
            "checkType": "auto",
1110
            "checkPattern": "",
1111
            "onChange": "",
1112
            "ord": 370,
1113
            "tabindex": 0,
1114
            "size": "",
1115
            "maxLength": "",
1116
            "labelAlign": "default",
1117
            "bsLabelColumns": "",
1118
            "bsInputColumns": "",
1119
            "bsNoteColumns": "",
1120
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1121
            "note": "",
1122
            "adminNote": "",
1123
            "tooltip": "",
1124
            "placeholder": "",
1125
            "value": "",
1126
            "sql1": "{{! SELECT m.id AS _id, m.id AS Id, room.name AS Room, CONCAT(DATE_FORMAT(m.start, '%a %d.%m.%Y %H:%i - '), DATE_FORMAT(m.end, '%H:%i')) AS 'Date \/ Time', CONCAT('<small><a href=\"{{baseUrl:Y}}index.php?id=vuestreaming&meetingId=', m.id, '\">{{baseUrl:Y}}index.php?id=vuestreaming&meetingId=', m.id ,'<\/a>') AS 'Quick Link|nostrip', IF(DATE(m.start) = CURDATE(), 'info', '') AS _rowClass\r\nFROM Meeting AS m, Room AS room\r\nWHERE m.evId = {{id:R0}} AND room.id = m.roomId\r\nORDER BY m.start DESC}}",
1127
            "parameter": "form=Meeting\r\ndetail=roomId:roomId, id:evId",
1128
            "parameterLanguageA": "",
1129
            "parameterLanguageB": "",
1130
            "parameterLanguageC": "",
1131
            "parameterLanguageD": "",
1132
            "clientJs": "",
1133
            "feGroup": "",
1134
            "deleted": "no",
1135
            "modified": "2021-10-27 19:23:05",
1136
            "created": "2020-08-18 16:55:58",
1137
            "containerName_ff": "schedulePill"
1138
        },
1139
        {
1140
            "dynamicUpdate": "no",
1141
            "enabled": "yes",
1142
            "name": "createFirstSpeaker",
1143
            "label": "",
1144
            "mode": "show",
1145
            "modeSql": "",
1146
            "class": "action",
1147
            "type": "afterInsert",
1148
            "subrecordOption": "",
1149
            "encode": "specialchar",
1150
            "checkType": "auto",
1151
            "checkPattern": "",
1152
            "onChange": "",
1153
            "ord": 380,
1154
            "tabindex": 0,
1155
            "size": "",
1156
            "maxLength": "",
1157
            "labelAlign": "default",
1158
            "bsLabelColumns": "",
1159
            "bsInputColumns": "",
1160
            "bsNoteColumns": "",
1161
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1162
            "note": "",
1163
            "adminNote": "",
1164
            "tooltip": "",
1165
            "placeholder": "",
1166
            "value": "",
1167
            "sql1": "",
1168
            "parameter": "sqlAfter ={{INSERT INTO GroupMember (grId, xId, xId2)  \r\nSELECT gr.id, {{id:R0}}, p.id\r\nFROM Ggroup AS gr, Person AS p\r\nWHERE p.account = '{{feUser:UTE}}' \r\n  AND p.account != ''\r\n  AND gr.reference = 'sl_event_speaker'\r\nLIMIT 1\r\n}}",
1169
            "parameterLanguageA": "",
1170
            "parameterLanguageB": "",
1171
            "parameterLanguageC": "",
1172
            "parameterLanguageD": "",
1173
            "clientJs": "",
1174
            "feGroup": "",
1175
            "deleted": "no",
1176
            "modified": "2021-10-27 19:23:05",
1177
            "created": "2020-08-20 07:51:46"
1178
        },
1179
        {
1180
            "dynamicUpdate": "yes",
1181
            "enabled": "yes",
1182
            "name": "exercisePill",
1183
            "label": "Exercises",
1184
            "mode": "show",
1185
            "modeSql": "{{SELECT IF('{{eventType:FRE:alnumx}}' != 'Exercise', 'show', 'hidden')}}",
1186
            "class": "container",
1187
            "type": "pill",
1188
            "subrecordOption": "",
1189
            "encode": "specialchar",
1190
            "checkType": "auto",
1191
            "checkPattern": "",
1192
            "onChange": "",
1193
            "ord": 390,
1194
            "tabindex": 0,
1195
            "size": "",
1196
            "maxLength": "",
1197
            "labelAlign": "default",
1198
            "bsLabelColumns": "",
1199
            "bsInputColumns": "",
1200
            "bsNoteColumns": "",
1201
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1202
            "note": "",
1203
            "adminNote": "",
1204
            "tooltip": "",
1205
            "placeholder": "",
1206
            "value": "",
1207
            "sql1": "",
1208
            "parameter": "",
1209
            "parameterLanguageA": "",
1210
            "parameterLanguageB": "",
1211
            "parameterLanguageC": "",
1212
            "parameterLanguageD": "",
1213
            "clientJs": "",
1214
            "feGroup": "",
1215
            "deleted": "no",
1216
            "modified": "2021-10-27 19:23:05",
1217
            "created": "2021-09-25 12:47:58"
1218
        },
1219
        {
1220
            "dynamicUpdate": "no",
1221
            "enabled": "yes",
1222
            "name": "myExerciseEvents",
1223
            "label": "Exercise Groups",
1224
            "mode": "show",
1225
            "modeSql": "",
1226
            "class": "native",
1227
            "type": "subrecord",
1228
            "subrecordOption": "edit,new",
1229
            "encode": "specialchar",
1230
            "checkType": "auto",
1231
            "checkPattern": "",
1232
            "onChange": "",
1233
            "ord": 400,
1234
            "tabindex": 0,
1235
            "size": "",
1236
            "maxLength": "",
1237
            "labelAlign": "default",
1238
            "bsLabelColumns": "",
1239
            "bsInputColumns": "",
1240
            "bsNoteColumns": "",
1241
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1242
            "note": "",
1243
            "adminNote": "",
1244
            "tooltip": "",
1245
            "placeholder": "",
1246
            "value": "",
1247
            "sql1": "{{!\r\nSELECT ev.id AS 'id', ev.name AS 'Exercise Group Name', GROUP_CONCAT(p.firstName, ' ', p.name SEPARATOR ', ') AS 'Speakers|_maxLength=200'\r\nFROM Event AS ev\r\nLEFT JOIN (Person AS p, Role AS r, Ggroup AS gRole, Ggroup AS gSpeaker, GroupMember AS gmSpeaker)\r\n        ON p.id = r.pId\r\n          AND r.grId = gRole.id\r\n          AND gRole.reference = 'sl_role_speaker'\r\n          AND r.start <= NOW()\r\n          AND r.end >= NOW()\r\n          AND gmSpeaker.grId = gSpeaker.id\r\n          AND gSpeaker.reference = 'sl_event_speaker'\r\n          AND gmSpeaker.xId = ev.id\r\n          AND gmSpeaker.xId2 = p.id\r\nWHERE ev.eventIdParent = {{id:R0}}\r\nGROUP BY ev.id\r\n}}",
1248
            "parameter": "form=Event\r\ndetail=id:eventIdParent,&Exercise:eventType,module:module,semesterId:semesterId",
1249
            "parameterLanguageA": "",
1250
            "parameterLanguageB": "",
1251
            "parameterLanguageC": "",
1252
            "parameterLanguageD": "",
1253
            "clientJs": "",
1254
            "feGroup": "",
1255
            "deleted": "no",
1256
            "modified": "2021-10-27 19:23:05",
1257
            "created": "2021-09-25 12:55:22",
1258
            "containerName_ff": "exercisePill"
1259
        },
1260
        {
1261
            "dynamicUpdate": "no",
1262
            "enabled": "yes",
1263
            "name": "setModuleForExerciseGroup",
1264
            "label": "",
1265
            "mode": "show",
1266
            "modeSql": "",
1267
            "class": "action",
1268
            "type": "afterSave",
1269
            "subrecordOption": "",
1270
            "encode": "specialchar",
1271
            "checkType": "auto",
1272
            "checkPattern": "",
1273
            "onChange": "",
1274
            "ord": 410,
1275
            "tabindex": 0,
1276
            "size": "",
1277
            "maxLength": "",
1278
            "labelAlign": "default",
1279
            "bsLabelColumns": "",
1280
            "bsInputColumns": "",
1281
            "bsNoteColumns": "",
1282
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1283
            "note": "",
1284
            "adminNote": "",
1285
            "tooltip": "",
1286
            "placeholder": "",
1287
            "value": "",
1288
            "sql1": "",
1289
            "parameter": "sqlAfter ={{UPDATE Event ev INNER JOIN Event evParent ON evParent.id = ev.eventIdParent SET ev.module =evParent.module WHERE ev.id={{id:R0}} AND ev.eventType = 'Exercise' }}",
1290
            "parameterLanguageA": "",
1291
            "parameterLanguageB": "",
1292
            "parameterLanguageC": "",
1293
            "parameterLanguageD": "",
1294
            "clientJs": "",
1295
            "feGroup": "",
1296
            "deleted": "no",
1297
            "modified": "2021-10-27 19:23:05",
1298
            "created": "2021-09-25 14:29:44"
1299
        },
1300
        {
1301
            "dynamicUpdate": "no",
1302
            "enabled": "yes",
1303
            "name": "subscription",
1304
            "label": "Subscription",
1305
            "mode": "show",
1306
            "modeSql": "",
1307
            "class": "container",
1308
            "type": "pill",
1309
            "subrecordOption": "",
1310
            "encode": "specialchar",
1311
            "checkType": "auto",
1312
            "checkPattern": "",
1313
            "onChange": "",
1314
            "ord": 420,
1315
            "tabindex": 0,
1316
            "size": "",
1317
            "maxLength": "",
1318
            "labelAlign": "default",
1319
            "bsLabelColumns": "",
1320
            "bsInputColumns": "",
1321
            "bsNoteColumns": "",
1322
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1323
            "note": "",
1324
            "adminNote": "",
1325
            "tooltip": "",
1326
            "placeholder": "",
1327
            "value": "",
1328
            "sql1": "",
1329
            "parameter": "",
1330
            "parameterLanguageA": "",
1331
            "parameterLanguageB": "",
1332
            "parameterLanguageC": "",
1333
            "parameterLanguageD": "",
1334
            "clientJs": "",
1335
            "feGroup": "",
1336
            "deleted": "no",
1337
            "modified": "2021-12-22 00:19:51",
1338
            "created": "2021-12-22 00:19:24"
1339
        },
1340
        {
1341
            "dynamicUpdate": "no",
1342
            "enabled": "yes",
1343
            "name": "",
1344
            "label": "Students",
1345
            "mode": "show",
1346
            "modeSql": "",
1347
            "class": "native",
1348
            "type": "subrecord",
1349
            "subrecordOption": "edit,delete,new",
1350
            "encode": "specialchar",
1351
            "checkType": "auto",
1352
            "checkPattern": "",
1353
            "onChange": "",
1354
            "ord": 430,
1355
            "tabindex": 0,
1356
            "size": "",
1357
            "maxLength": "",
1358
            "labelAlign": "default",
1359
            "bsLabelColumns": "",
1360
            "bsInputColumns": "",
1361
            "bsNoteColumns": "",
1362
            "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
1363
            "note": "",
1364
            "adminNote": "",
1365
            "tooltip": "",
1366
            "placeholder": "",
1367
            "value": "",
1368
            "sql1": "{{! \r\nSELECT gm.id AS _id\r\n, CONCAT('p:my_events&feUser=', p.account, '|G:glyphicon-user|s|b|o:Switch user') AS 'link|SU'\r\n, CONCAT( p.name , ', ',  p.firstName) AS 'Student|100' FROM GroupMember AS gm, Person AS p, Ggroup AS gr WHERE gr.reference='sl_event_subscriber' AND gr.id=gm.grId AND gm.xId={{id:R0}} AND gm.xId2=p.id ORDER BY p.name, p.firstName\r\n\r\n}}",
1369
            "parameter": "form=moduleSubscription\r\nfillStoreVar={{!SELECT gr.id AS grId FROM Ggroup AS gr WHERE gr.reference='sl_event_subscriber'}}\r\ndetail = &{{id:R0}}:xId,&{{grId:V}}:grId\r\nsubrecordTableClass = table table-hover qfq-subrecord-table tablesorter tablesorter-pager tablesorter-filter",
1370
            "parameterLanguageA": "",
1371
            "parameterLanguageB": "",
1372
            "parameterLanguageC": "",
1373
            "parameterLanguageD": "",
1374
            "clientJs": "",
1375
            "feGroup": "",
1376
            "deleted": "no",
1377
            "modified": "2021-12-22 21:55:05",
1378
            "created": "2021-12-22 00:23:34",
1379
            "containerName_ff": "subscription"
1380
        }
1381
    ]
1382
}
(1-1/5)