Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17122 | Rev 17124 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
14934 stevensc 1
<?php
1 www 2
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
3
$currentUser    = $this->currentUserHelper();
4
 
5
$roleName = $currentUser->getUserTypeId();
6
 
7
 
8
$routeAdd       = $this->url('microlearning/content/topics/add');
9
$routeDatatable = $this->url('microlearning/content/topics');
10
 
11
$allowAdd               = $acl->isAllowed($roleName, 'microlearning/content/topics/add') ? 1 : 0;
12
$allowEdit              = $acl->isAllowed($roleName, 'microlearning/content/topics/edit') ? 1 : 0;
13
$allowDelete            = $acl->isAllowed($roleName, 'microlearning/content/topics/delete') ? 1 : 0;
14
 
15
 
16822 efrain 16
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));
17
$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));
1 www 18
 
16822 efrain 19
$this->inlineScript()->appendFile($this->basePath('assets/vendors/ckeditor/ckeditor.js'));
1 www 20
 
21
 
16822 efrain 22
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/css/fileinput.min.css'));
23
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fas/theme.css'));
1 www 24
 
16843 efrain 25
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/piexif.js'));
26
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/sortable.js'));
16822 efrain 27
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/fileinput.js'));
28
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/locales/es.js'));
29
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/fas/theme.js'));
30
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fas/theme.js'));
1 www 31
 
32
 
33
 
16929 efrain 34
 
35
 
36
 
16822 efrain 37
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
38
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));
16905 efrain 39
 
16822 efrain 40
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));
41
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));
42
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/dataTables.responsive.min.js'));
43
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.min.js'));
1 www 44
 
17121 stevensc 45
$this->inlineScript()->appendFile($this->basePath('assets/vendors/select2/js/select2.js'));
46
$this->inlineScript()->appendFile($this->basePath('assets/vendors/select2/js/i18n/es.js'));
47
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2/css/select2.css'));
1 www 48
 
17121 stevensc 49
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2-bootstrap5-theme/select2-bootstrap-5-theme.css'));
50
 
51
 
16822 efrain 52
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
53
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
1 www 54
 
55
 
56
 
57
 
58
 
16822 efrain 59
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-input-number/input-number-format.jquery.js'));
60
 
61
 
1 www 62
$status_active = \LeadersLinked\Model\Degree::STATUS_ACTIVE;
63
 
4697 nelberth 64
 
65
 
4737 nelberth 66
 
1 www 67
$this->inlineScript()->captureStart();
68
echo <<<JS
69
    jQuery( document ).ready(function( $ ) {
70
 
71
        $.validator.setDefaults({
72
            debug: true,
73
            highlight: function(element) {
74
                $(element).addClass('is-invalid');
75
            },
76
            unhighlight: function(element) {
77
                $(element).removeClass('is-invalid');
78
            },
79
            errorElement: 'span',
80
            errorClass: 'error invalid-feedback',
81
            errorPlacement: function(error, element) {
82
                if(element.parent('.btn-file').length) {
83
                    error.insertAfter(element.parent().parent());
84
                } else if(element.parent('.toggle').length) {
85
                    error.insertAfter(element.parent().parent());
86
                } else {
87
                    error.insertAfter(element.parent());
88
                }
89
            }
90
        });
91
 
92
 
93
 
94
 
95
 
96
 
97
        var allowEdit   = $allowEdit;
98
        var allowDelete = $allowDelete;
99
 
100
        var gridTable = $('#gridTable').dataTable( {
101
            'processing': true,
102
            'serverSide': true,
103
            'searching': true,
104
            'order': [[ 0, 'asc' ]],
105
            'ordering':  true,
106
            'ordenable' : true,
107
            'responsive': true,
108
            'select' : false,
109
        	'paging': true,
110
            'pagingType': 'simple_numbers',
111
    		'ajax': {
112
    			'url' : '$routeDatatable',
113
    			'type' : 'get',
114
                'beforeSend': function (request) {
115
                  NProgress.start();
116
                },
117
                'dataFilter': function(response) {
118
                    var response = jQuery.parseJSON( response );
119
 
120
                    var json                = {};
121
                    json.recordsTotal       = 0;
122
                    json.recordsFiltered    = 0;
123
                    json.data               = [];
124
 
125
 
126
                    if(response.success) {
127
                        json.recordsTotal       = response.data.total;
128
                        json.recordsFiltered    = response.data.total;
129
                        json.data               = response.data.items;
130
                    } else {
131
                        $.fn.showError(response.data)
132
                    }
133
 
134
                    return JSON.stringify( json );
135
                }
136
    		},
137
            'language' : {
138
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
139
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
140
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
141
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
142
                'sInfo':           'LABEL_DATATABLE_SINFO',
143
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
144
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
145
                'sInfoPostFix':    '',
146
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
147
                'sUrl':            '',
148
                'sInfoThousands':  ',',
149
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
150
                'oPaginate': {
151
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
152
                    'sLast':     'LABEL_DATATABLE_SLAST',
153
                    'sNext':     'LABEL_DATATABLE_SNEXT',
154
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
155
                },
156
                'oAria': {
157
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
158
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
159
                },
160
            },
161
            'drawCallback': function( settings ) {
162
                NProgress.done();
16822 efrain 163
 
1 www 164
            },
165
            'aoColumns': [
166
                { 'mDataProp': 'name' },
167
                { 'mDataProp': 'status' },
168
                { 'mDataProp': 'image' },
169
                { 'mDataProp': 'actions' },
170
    	    ],
171
            'columnDefs': [
172
                {
173
                    'targets': 0,
174
                    'className' : 'text-vertical-middle',
175
                },
176
                {
177
                    'targets': -2,
178
                    'orderable': false,
179
                    'render' : function ( data, type, row ) {
180
                        s = '&nbsp;';
181
 
182
                        if( data )  {
183
                            s = s + '&nbsp;<img class="btn-view-image-app" data-href="' + data + '" data-toggle="tooltip" src="'+data+'" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
184
                        }  else {
185
                            s = s + '&nbsp;LABEL_IMAGE: <br>';
186
                        }
187
 
188
 
189
                        return s;
190
                    }
191
                },
192
 
193
 
194
                {
195
                    'targets': -1,
196
                    'orderable': false,
197
                    'render' : function ( data, type, row ) {
198
                        s = '';
199
 
200
                        if(allowEdit && data['link_edit']  ) {
16906 efrain 201
                            s = s + '<button class="btn btn-info btn-sm btn-edit" data-href="' + data['link_edit']+ '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pen"></i> LABEL_EDIT </button>&nbsp;';
1 www 202
                        }
203
                        if(allowDelete && data['link_delete']  ) {
204
                            s = s + '<button class="btn btn-danger btn-sm btn-delete" data-href="' + data['link_delete']+ '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>&nbsp;';
205
                        }
206
                        return s;
207
                    }
208
                }
209
              ],
210
        });
211
 
212
 
16905 efrain 213
    var validatorAdd = $('#form-add').validate({
1 www 214
        debug: true,
215
        onclick: false,
216
        onkeyup: false,
217
        ignore: [],
218
        rules: {
219
            'name': {
220
                required: true,
221
                maxlength: 128,
222
            },
223
            'description': {
224
                updateCkeditor:function() {
225
                        CKEDITOR.instances.description_add.updateElement();
226
                },
227
                required: true
228
            },
229
           'file': {
230
                required: true,
16891 efrain 231
                extension: 'jpg|jpeg|png',
232
                accept: 'image/jpg,image/jpeg,image/png'
1 www 233
            },
234
            'order' : {
235
                required: true,
236
                digits: true,
237
                min: 1,
238
                max: 250
239
            },
240
            'status' : {
241
                required: true,
242
            },
243
        },
244
        submitHandler: function(form)
245
        {
246
            var formdata = false;
247
            if (window.FormData){
248
                formdata = new FormData(form); //form[0]);
249
            }
5709 nelberth 250
 
251
 
252
			$('.info_noticia').prop('disabled', true);
5703 nelberth 253
			NProgress.start();
1 www 254
            $.ajax({
255
                'dataType'  : 'json',
256
                'accept'    : 'application/json',
257
                'method'    : 'post',
16905 efrain 258
                'url'       :  $('#form-add').attr('action'),
1 www 259
                'data'      :  formdata,
260
                'processData': false,
261
                'contentType': false,
262
            }).done(function(response) {
5542 nelberth 263
				console.log(response)
264
				if(response['success']) {
1 www 265
                    $.fn.showSuccess(response['data']);
16891 efrain 266
 
267
                    $('#row-add').hide();
268
                    $('#row-edit').hide();
269
                    $('#row-listing').show();
270
 
271
 
1 www 272
                    gridTable.api().ajax.reload(null, false);
273
                } else {
274
                    validatorAdd.resetForm();
275
                    if(jQuery.type(response['data']) == 'string') {
276
                        $.fn.showError(response['data']);
277
                    } else  {
278
                        $.each(response['data'], function( fieldname, errors ) {
16905 efrain 279
                            $.fn.showFormErrorValidator('#form-add #' + fieldname, errors);
1 www 280
                        });
281
                    }
282
                }
283
            }).fail(function( jqXHR, textStatus, errorThrown) {
5709 nelberth 284
 
16891 efrain 285
 
1 www 286
                $.fn.showError(textStatus);
287
            }).always(function() {
16891 efrain 288
 
1 www 289
                NProgress.done();
290
            });
291
            return false;
292
        },
293
        invalidHandler: function(form, validator) {
294
 
295
        }
296
    });
297
 
16905 efrain 298
    var validatorEdit  = $('#form-edit').validate({
1 www 299
        debug: true,
300
        onclick: false,
301
        onkeyup: false,
302
        ignore: [],
303
        rules: {
304
            'name': {
305
                required: true,
306
                maxlength: 128,
307
            },
308
            'description': {
309
                updateCkeditor:function() {
310
                        CKEDITOR.instances.description_edit.updateElement();
311
                },
312
                required: true
313
            },
314
           'file': {
16945 efrain 315
                required: false,
16891 efrain 316
                extension: 'jpg|jpeg|png',
317
                accept: 'image/jpg,image/jpeg,image/png'
1 www 318
            },
319
            'order' : {
320
                required: true,
321
                digits: true,
322
                min: 1,
323
                max: 250
324
            },
325
            'status' : {
326
                required: true,
327
            },
328
 
329
        },
330
        submitHandler: function(form)
331
        {
332
            var formdata = false;
333
            if (window.FormData){
334
                formdata = new FormData(form); //form[0]);
335
            }
336
 
16891 efrain 337
 
5982 nelberth 338
			NProgress.start();
1 www 339
            $.ajax({
340
                'dataType'  : 'json',
341
                'accept'    : 'application/json',
342
                'method'    : 'post',
16905 efrain 343
                'url'       :  $('#form-edit').attr('action'),
1 www 344
                'data'      :  formdata,
345
                'processData': false,
346
                'contentType': false,
347
            }).done(function(response) {
348
                if(response['success']) {
349
                    $.fn.showSuccess(response['data']);
350
 
16891 efrain 351
 
1 www 352
                    gridTable.api().ajax.reload(null, false);
16891 efrain 353
 
354
 
355
                    $('#row-add').hide();
356
                    $('#row-edit').hide();
357
                    $('#row-listing').show();
358
 
1 www 359
                } else {
16891 efrain 360
                    validatorEdit.resetForm();
1 www 361
                    if(jQuery.type(response['data']) == 'string') {
362
                        $.fn.showError(response['data']);
363
                    } else  {
364
                        $.each(response['data'], function( fieldname, errors ) {
16905 efrain 365
                            $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors);
1 www 366
                        });
367
                    }
368
                }
369
            }).fail(function( jqXHR, textStatus, errorThrown) {
370
                $.fn.showError(textStatus);
371
            }).always(function() {
7060 nelberth 372
 
16891 efrain 373
 
1 www 374
                NProgress.done();
375
            });
376
            return false;
377
        },
378
        invalidHandler: function(form, validator) {
379
 
380
        }
381
    });
382
 
16822 efrain 383
    $('body').on('click', 'button.btn-delete', function(e) {
384
        e.preventDefault();
385
        var action = $(this).data('href');
1 www 386
 
16822 efrain 387
 
388
          swal.fire({
389
            title: 'LABEL_ARE_YOU_SURE',
390
            icon: 'question',
391
            cancelButtonText: 'LABEL_NO',
392
            showCancelButton: true,
393
            confirmButtonText: 'LABEL_YES'
394
          }).then((result) => {
395
            if (result.isConfirmed) {
396
 
397
                    NProgress.start();
398
                    $.ajax({
399
                        'dataType'  : 'json',
400
                        'accept'    : 'application/json',
401
                        'method'    : 'post',
402
                        'url'       :  action,
403
                    }).done(function(response) {
404
                        if(response['success']) {
405
                            $.fn.showSuccess(response['data']);
406
                            gridTable.api().ajax.reload(null, false);
407
                        } else {
408
                            $.fn.showError(response['data']);
409
                        }
410
                    }).fail(function( jqXHR, textStatus, errorThrown) {
411
                        $.fn.showError(textStatus);
412
                    }).always(function() {
413
                        NProgress.done();
414
                    });
415
                }
416
           });
417
        });
418
 
1 www 419
 
420
        $('body').on('click', '.btn-view-image-app', function(e) {
421
            e.preventDefault();
422
 
423
            $('#image-app').attr('src', $(this).data('href'));
16891 efrain 424
            $('#modalPreviewImage').modal('show');
1 www 425
            return false;
426
        });
427
 
16905 efrain 428
        $('#form-add #order').inputNumberFormat({decimal: 0});
5741 nelberth 429
 
1 www 430
 
431
 
432
        $('body').on('click', 'button.btn-add', function(e) {
433
            e.preventDefault();
17093 stevensc 434
            NProgress.start();
1 www 435
 
17093 stevensc 436
            $.ajax({
437
                'dataType': 'json',
438
                'method': 'get',
439
                'url': '$routeAdd',
440
            }).done(function(response) {
441
                if (response['success']) {
442
 
17113 stevensc 443
                    $('#table-capsules tbody').empty();
17093 stevensc 444
 
17107 stevensc 445
                    $('#capsule_uuid').children().not(':first').remove();
17093 stevensc 446
                    $.each(response['data']['capsules'], function(index, element) {
17107 stevensc 447
                        $('#capsule_uuid').append($('<option>', {
17115 stevensc 448
                            value: element.id,
17093 stevensc 449
                            text: element.name
450
                        }));
451
                    });
1 www 452
 
17093 stevensc 453
                    $('#form-add #name').val('');
454
                    $('#form-add #order').val('1');
455
                    $('#form-add #name').val('');
456
 
457
                    $('#form-add #status').val('');
458
                    $('#form-add #file').fileinput('reset');
459
                    $('#form-add #file').val('');
460
 
1 www 461
 
17093 stevensc 462
 
463
                    CKEDITOR.instances.description_add.setData('');
464
                    validatorAdd.resetForm();
465
 
466
                    $('#row-edit').hide();
467
                    $('#row-listing').hide();
468
                    $('#row-add').show();
469
                } else {
470
                    $.fn.showError(response['data']);
471
                }
472
            }).fail(function(jqXHR, textStatus, errorThrown) {
473
                $.fn.showError(textStatus);
474
            }).always(function() {
475
                NProgress.done();
476
            });
16891 efrain 477
 
17093 stevensc 478
 
479
 
480
 
5646 nelberth 481
            return false;
482
        });
483
 
16891 efrain 484
 
1 www 485
 
16905 efrain 486
        $('#form-edit #order').inputNumberFormat({decimal: 0});
1 www 487
 
16905 efrain 488
          $('#form-add #file').fileinput({
16891 efrain 489
                theme: 'fa',
490
                language: 'es',
491
                showUpload: false,
492
                dropZoneEnabled: false,
493
                maxFileCount: 1,
16928 efrain 494
                msgPlaceholder:  'LABEL_RECOMMENDED_SIZE $image_size',
16891 efrain 495
                allowedFileExtensions: ['jpeg', 'jpg', 'png'],
496
            });
497
 
16905 efrain 498
            $('#form-edit #file').fileinput({
16891 efrain 499
                theme: 'fa',
500
                language: 'es',
501
                showUpload: false,
502
                dropZoneEnabled: false,
503
                maxFileCount: 1,
16928 efrain 504
                msgPlaceholder:  'LABEL_RECOMMENDED_SIZE $image_size',
16891 efrain 505
                allowedFileExtensions: ['jpeg', 'jpg', 'png'],
506
            });
8591 nelberth 507
 
1 www 508
        $('body').on('click', 'button.btn-edit', function(e) {
509
            e.preventDefault();
6015 nelberth 510
 
1 www 511
            var url = $(this).data('href');
5900 nelberth 512
			NProgress.start();
1 www 513
            $.ajax({
514
                'dataType'  : 'json',
515
                'accept'    : 'application/json',
516
                'method'    : 'get',
517
                'url'       :  url,
518
            }).done(function(response) {
519
                if(response['success']) {
5913 nelberth 520
					console.log(response['data'])
16905 efrain 521
                    $('#form-edit')[0].reset();
1 www 522
 
16905 efrain 523
                    $('#form-edit').attr('action',url);
524
                    $('#form-edit #name').val(response['data']['name']);
525
                    $('#form-edit #order').val(response['data']['order']);
17113 stevensc 526
                    $('#form-edit #capsule_uuid').children().not(':first').remove();
1 www 527
 
17113 stevensc 528
                    $.each(response['data']['capsules'], function(index, element) {
529
                        $('#form-edit #capsule_uuid').append($('<option>', {
17115 stevensc 530
                            value: element.id,
17113 stevensc 531
                            text: element.name
532
                        }));
533
 
534
                        if(element.checked ) {
535
                            let data = {
17115 stevensc 536
                                id : element.id,
17113 stevensc 537
                                name : element.name,
538
                            };
539
 
540
                            $('#table-capsules tbody').append(
541
                                $('#trCapsuleTemplate').render( data )
542
                            );
543
                        }
544
                    });
545
 
16905 efrain 546
					$('#form-edit #status').val(response['data']['status']);
547
                    $('#form-edit #file').fileinput('reset');
548
                    $('#form-edit #file').val('');
1 www 549
 
550
                    CKEDITOR.instances.description_edit.setData(response['data']['description']);
551
                    validatorEdit.resetForm();
16891 efrain 552
 
553
                    $('#row-add').hide();
554
                    $('#row-listing').hide();
555
                    $('#row-edit').show();
556
 
1 www 557
                } else {
558
                    validatorEdit.resetForm();
559
                    if(jQuery.type(response['data']) == 'string') {
560
                        $.fn.showError(response['data']);
561
                    } else  {
562
                        $.each(response['data'], function( fieldname, errors ) {
16905 efrain 563
                            $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors);
1 www 564
                        });
565
                    }
566
                }
567
            }).fail(function( jqXHR, textStatus, errorThrown) {
568
                $.fn.showError(textStatus);
569
            }).always(function() {
570
                NProgress.done();
571
            });
572
        });
573
 
574
        $('body').on('click', 'button.btn-cancel', function(e) {
575
            e.preventDefault();
16891 efrain 576
            $('#row-add').hide();
577
            $('#row-edit').hide();
578
            $('#row-listing').show();
579
 
1 www 580
        });
581
 
582
        $('body').on('click', 'button.btn-refresh', function(e) {
583
            e.preventDefault();
584
            gridTable.api().ajax.reload(null, false);
585
        });
17113 stevensc 586
 
17122 stevensc 587
        $('#btn-select-capsule').click(function(e) {
17113 stevensc 588
            e.preventDefault();
589
 
590
            var id  = $('#capsule_uuid option:selected').val();
591
 
17123 stevensc 592
            if(!id)  return false;
17113 stevensc 593
 
594
            var name = $('#capsule_uuid option:selected').text();
17122 stevensc 595
            var key         = '#tr_capsule_id_' + id ;
17113 stevensc 596
            var element     = $(key)
597
 
17123 stevensc 598
            if(element.length > 0)  return false;
17113 stevensc 599
 
17123 stevensc 600
            if(name.length > 50)  name = name.substr(0, 50) + '...';
17113 stevensc 601
 
17123 stevensc 602
            let data = { id, name };
17113 stevensc 603
 
604
            $('#table-capsules tbody').append(
605
                $('#trCapsuleTemplate').render( data )
606
            );
607
 
608
            return false;
609
        });
17119 stevensc 610
 
17121 stevensc 611
        $('#capsule_uuid').select2({
17119 stevensc 612
            theme: 'bootstrap-5',
613
            width: '100%',
17121 stevensc 614
        });
1 www 615
 
8290 stevensc 616
        CKEDITOR.replace('description_add', {
617
			toolbar: [
618
                    { name: 'editing', items: ['Scayt'] },
619
                    { name: 'links', items: ['Link', 'Unlink'] },
620
                    { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'] },
621
                    { name: 'basicstyles', items: ['Bold', 'Italic', 'Strike', 'RemoveFormat'] },
622
                    '/',
623
                    { name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar'] },
624
                    { name: 'styles', items: ['Styles', 'Format'] },
625
                    { name: 'tools', items: ['Maximize'] }
626
                ],
627
                removePlugins: 'elementspath,Anchor',
628
                heigth: 100
629
		});
17113 stevensc 630
 
8290 stevensc 631
        CKEDITOR.replace('description_edit', {
632
			toolbar: [
633
                    { name: 'editing', items: ['Scayt'] },
634
                    { name: 'links', items: ['Link', 'Unlink'] },
635
                    { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'] },
636
                    { name: 'basicstyles', items: ['Bold', 'Italic', 'Strike', 'RemoveFormat'] },
637
                    '/',
638
                    { name: 'insert', items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar'] },
639
                    { name: 'styles', items: ['Styles', 'Format'] },
640
                    { name: 'tools', items: ['Maximize'] }
641
                ],
642
                removePlugins: 'elementspath,Anchor',
643
                heigth: 100
644
		});
1 www 645
    });
646
JS;
647
$this->inlineScript()->captureEnd();
648
?>
649
 
16891 efrain 650
<div class="container">
651
	<div class="card" id="row-listing">
652
	 	<div class="card-header">
653
	 		<h6 class="card-title">LABEL_TOPICS</h6>
654
	 	</div>
655
	 	<div class="card-body">
656
	 		<div class="row">
657
	 	         <div class="col-12 mt-3">
658
 
659
	 	         						<table id="gridTable" class="table   table-bordered">
14934 stevensc 660
							<thead>
661
								<tr>
662
									<th>LABEL_NAME</th>
663
									<th>LABEL_STATUS</th>
664
									<th>LABEL_DETAILS</th>
665
									<th>LABEL_ACTIONS</th>
666
								</tr>
667
							</thead>
668
							<tbody>
669
							</tbody>
670
						</table>
16891 efrain 671
 
672
	 	         </div>
673
	 	     </div>
674
	 	</div>
675
	 	<div class="card-footer text-right">
16992 efrain 676
			<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-sync"></i> LABEL_REFRESH </button>
16891 efrain 677
			<?php if ($allowAdd) : ?>
678
			<button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
679
			<?php endif; ?>
680
	 	</div>
14934 stevensc 681
	</div>
16891 efrain 682
 
683
	<div class="card" id="row-add" style="display:none">
684
	 	<div class="card-header">
685
	 		<h6 class="card-title">LABEL_ADD_TOPIC</h6>
686
	 	</div>
687
	 	<?php
14934 stevensc 688
		$form = $this->formAdd;
689
		$form->setAttributes([
690
			'method'  => 'post',
691
			'action'  => $routeAdd,
16905 efrain 692
			'name'    => 'form-add',
693
			'id'      => 'form-add',
14934 stevensc 694
		]);
5678 nelberth 695
 
14934 stevensc 696
		$form->prepare();
697
		echo $this->form()->openTag($form);
698
		?>
16891 efrain 699
	 	<div class="card-body">
700
			<div class="row">
701
    	 		<div class="col-12 mt-3">
702
    			<?php
703
    			$element = $form->get('name');
704
 
705
    			$element->setAttributes(['class' => 'form-control']);
706
    			$element->setOptions(['label' => 'LABEL_NAME']);
707
    			echo $this->formLabel($element);
708
    			echo $this->formText($element);
709
    			?>
710
    			</div>
711
    		</div>
712
 
17123 stevensc 713
            <div class="row">
16891 efrain 714
    	 	         	<div class="col-12 mt-3">
715
    			<?php
716
    			$element = $form->get('description');
717
    			$element->setAttributes(['id' => 'description_add', 'class' => 'form-control', 'rows' => '2', 'class' => 'form-control']);
718
    			$element->setOptions(['label' => 'LABEL_DESCRIPTION']);
719
    			echo $this->formLabel($element);
720
    			echo $this->formTextArea($element);
721
    			?>
722
    			</div>
723
    		</div>
724
 
17123 stevensc 725
            <div class="row">
726
    	 	    <div class="col-12 mt-3">
16891 efrain 727
    			<?php
728
    			$element = $form->get('order');
729
    			$element->setAttributes(['class' => 'form-control']);
730
    			$element->setOptions(['label' => 'LABEL_ORDER']);
731
    			echo $this->formLabel($element);
732
    			echo $this->formText($element);
733
    			?>
734
    			</div>
735
    		</div>
736
 
17123 stevensc 737
            <div class="row">
16891 efrain 738
    	 	         	<div class="col-12 mt-3">
739
    			<?php
740
    			$element = $form->get('status');
741
    			$element->setAttributes(['class' => 'form-control']);
742
    			$element->setOptions(['label' => 'LABEL_STATUS']);
743
    			echo $this->formLabel($element);
744
    			echo $this->formSelect($element);
745
 
746
    			?>
747
    			</div>
748
    		</div>
749
 
17123 stevensc 750
            <div class="row">
16891 efrain 751
    	 		<div class="col-12 mt-3">
752
                            <?php
753
                            $element = $form->get('file');
754
                            $element->setOptions(['label' => 'LABEL_IMAGE']);
755
                            $element->setAttributes(['class' => 'form-control']);
16905 efrain 756
                            $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
16891 efrain 757
                            echo $this->formLabel($element);
758
                            echo $this->formFile($element);
759
                            ?>
760
                	</div>
761
         	</div>
17093 stevensc 762
 
17110 stevensc 763
            <div class="row">
17113 stevensc 764
	 	        <div class="col-8 mt-3">
17115 stevensc 765
					<select name="capsule_uuid" id="capsule_uuid">
17113 stevensc 766
                   		<option value="">LABEL_SELECT</option>
767
                  	</select>
768
                </div>
769
         		<div class="col-4 mt-3">
17114 stevensc 770
                 	<button type="button" class="btn btn-primary" id="btn-select-capsule" data-toggle="tooltip" title="LABEL_ADD LABEL_CAPSULE">LABEL_ADD LABEL_CAPSULE</button>
17113 stevensc 771
       			</div>
772
     		</div>
17123 stevensc 773
 
17122 stevensc 774
            <div class="row">
775
                <div class="col-12 mt-3">
776
                    <table id="table-capsules" class="table table-bordered">
777
                        <thead>
778
                            <tr>
779
                                <th>LABEL_NAME</th>
780
                                <th>LABEL_ACTIONS</th>
781
                            </tr>
782
                        </thead>
783
                        <tbody>
784
                        </tbody>
785
                    </table>
786
                </div>
787
            </div>
17113 stevensc 788
 
16891 efrain 789
	 	</div>
790
	 	<div class="card-footer text-right">
791
	 	     <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
792
      		<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
793
	 	</div>
794
	 	<?php echo $this->form()->closeTag($form); ?>
14934 stevensc 795
	</div>
16891 efrain 796
 
797
 
798
	<div class="card" id="row-edit" style="display:none">
799
 
800
	 	<div class="card-header">
801
	 		<h6 class="card-title">LABEL_EDIT_TOPIC</h6>
802
	 	</div>
803
	 	<?php
14934 stevensc 804
		$form = $this->formEdit;
805
		$form->setAttributes([
806
			'method'    => 'post',
16905 efrain 807
			'name'      => 'form-edit',
808
			'id'        => 'form-edit'
14934 stevensc 809
		]);
5895 nelberth 810
 
14934 stevensc 811
		$form->prepare();
812
		echo $this->form()->openTag($form);
813
		?>
16891 efrain 814
 
815
	 	<div class="card-body">
1 www 816
 
16891 efrain 817
  <div class="row">
818
	 	         	<div class="col-12 mt-3">
14934 stevensc 819
			<?php
820
			$element = $form->get('description');
821
			$element->setAttributes(['id' => 'description_edit', 'rows' => '2', 'class' => 'form-control',   'class' => 'form-control']);
822
			$element->setOptions(['label' => 'LABEL_DESCRIPTION']);
823
			echo $this->formLabel($element);
824
			echo $this->formTextArea($element);
825
			?>
16891 efrain 826
			</div>
14934 stevensc 827
		</div>
16891 efrain 828
 
829
         <div class="row">
830
	 	         	<div class="col-12 mt-3">
14934 stevensc 831
			<?php
832
			$element = $form->get('order');
833
			$element->setAttributes(['class' => 'form-control']);
834
			$element->setOptions(['label' => 'LABEL_ORDER']);
835
			echo $this->formLabel($element);
836
			echo $this->formText($element);
837
			?>
16891 efrain 838
			</div>
14934 stevensc 839
		</div>
1 www 840
 
14934 stevensc 841
 
16891 efrain 842
 
843
         <div class="row">
844
	 	         	<div class="col-12 mt-3">
14934 stevensc 845
			<?php
846
			$element = $form->get('status');
847
			$element->setAttributes(['class' => 'form-control']);
848
			$element->setOptions(['label' => 'LABEL_STATUS']);
849
			echo $this->formLabel($element);
850
			echo $this->formSelect($element);
851
			?>
16891 efrain 852
			</div>
14934 stevensc 853
		</div>
854
 
16891 efrain 855
         <div class="row">
856
	 	         	<div class="col-12 mt-3">
857
                        <?php
858
                        $element = $form->get('file');
859
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
860
                        $element->setAttributes(['class' => 'form-control']);
16905 efrain 861
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
16891 efrain 862
                        echo $this->formLabel($element);
863
                        echo $this->formFile($element);
864
                        ?>
865
                    </div>
866
                </div>
867
 
868
 
869
	 	</div>
870
 
871
	 	<div class="card-footer text-right">
872
			<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
873
      		<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
874
	 	</div>
875
	 	<?php echo $this->form()->closeTag($form); ?>
14934 stevensc 876
	</div>
16891 efrain 877
</div>
14934 stevensc 878
 
879
 
1 www 880
 
881
<!-- The Modal -->
16891 efrain 882
<div class="modal" id="modalPreviewImage">
1 www 883
	<div class="modal-dialog ">
14934 stevensc 884
		<div class="modal-content">
1 www 885
 
14934 stevensc 886
			<!-- Modal Header -->
887
			<div class="modal-header">
16845 efrain 888
				<h6 class="modal-title">LABEL_IMAGE</h6>
16822 efrain 889
				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
14934 stevensc 890
			</div>
1 www 891
 
14934 stevensc 892
			<!-- Modal body -->
893
			<div class="modal-body text-center">
1 www 894
				<img src="" class="img img-responsive" style="width: 300px; height: auto" id="image-app" />
14934 stevensc 895
			</div>
896
 
897
			<!-- Modal footer -->
16891 efrain 898
			<div class="modal-footer text-right">
16822 efrain 899
				 <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
14934 stevensc 900
			</div>
901
		</div>
1 www 902
	</div>
17113 stevensc 903
</div>
904
 
905
<script id="trCapsuleTemplate" type="text/x-jsrender">
17115 stevensc 906
    <tr id="tr_capsule_id_{{:id}}">
17113 stevensc 907
       <td class="text-left">
17123 stevensc 908
            <input type="hidden" class="capsule_id" name="capsule_id[]" value="{{:id}}" />
909
            <span class="d-none d-md-inline">{{:name}}</span>
17113 stevensc 910
       </td>
911
       <td>
17123 stevensc 912
            <button class="btn btn-default btn-remove-capsule" data-id="{{:id}}" data-toggle="tooltip"  data-original-title="LABEL_DELETE">
913
                <i class="fa fa-ban" aria-hidden="true"></i>
914
                <span class="d-none d-md-inline">LABEL_DELETE</span>
915
            </button>
17113 stevensc 916
       </td>
917
   </tr>
918
</script>