Proyectos de Subversion LeadersLinked - Backend

Rev

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