Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17240 | | Comparar con el anterior | Ultima modificación | Ver Log |

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