Proyectos de Subversion LeadersLinked - Backend

Rev

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