Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17205 | Rev 17207 | 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
$routeAdd       = $this->url('microlearning/content/topics/add');
8
$routeDatatable = $this->url('microlearning/content/topics');
9
 
10
$allowAdd               = $acl->isAllowed($roleName, 'microlearning/content/topics/add') ? 1 : 0;
11
$allowEdit              = $acl->isAllowed($roleName, 'microlearning/content/topics/edit') ? 1 : 0;
12
$allowDelete            = $acl->isAllowed($roleName, 'microlearning/content/topics/delete') ? 1 : 0;
17190 stevensc 13
$allowUsers             = $acl->isAllowed($roleName, 'microlearning/content/topics/users') ? 1 : 0;
1 www 14
 
17178 stevensc 15
// NProgress
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
 
17178 stevensc 19
// CKEditor
16822 efrain 20
$this->inlineScript()->appendFile($this->basePath('assets/vendors/ckeditor/ckeditor.js'));
1 www 21
 
17178 stevensc 22
// File Input
16822 efrain 23
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/css/fileinput.min.css'));
24
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fas/theme.css'));
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
 
17178 stevensc 32
// Datatables
16822 efrain 33
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
34
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));
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
 
17178 stevensc 40
// Select2
17121 stevensc 41
$this->inlineScript()->appendFile($this->basePath('assets/vendors/select2/js/select2.js'));
42
$this->inlineScript()->appendFile($this->basePath('assets/vendors/select2/js/i18n/es.js'));
43
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2/css/select2.css'));
1 www 44
 
17121 stevensc 45
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2-bootstrap5-theme/select2-bootstrap-5-theme.css'));
46
 
17124 stevensc 47
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jsrender/jsrender.min.js'));
17121 stevensc 48
 
17178 stevensc 49
// Toggle
16822 efrain 50
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
51
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
1 www 52
 
17178 stevensc 53
// Input Number Format
16822 efrain 54
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-input-number/input-number-format.jquery.js'));
55
 
1 www 56
$this->inlineScript()->captureStart();
57
echo <<<JS
17178 stevensc 58
    jQuery(document).ready(function ($) {
1 www 59
        $.validator.setDefaults({
60
            debug: true,
17178 stevensc 61
            highlight: function (element) {
62
                $(element).addClass('is-invalid')
1 www 63
            },
17178 stevensc 64
            unhighlight: function (element) {
65
                $(element).removeClass('is-invalid')
1 www 66
            },
67
            errorElement: 'span',
68
            errorClass: 'error invalid-feedback',
17178 stevensc 69
            errorPlacement: function (error, element) {
70
                if (element.parent('.btn-file').length) {
71
                    error.insertAfter(element.parent().parent())
72
                } else if (element.parent('.toggle').length) {
73
                    error.insertAfter(element.parent().parent())
1 www 74
                } else {
17178 stevensc 75
                    error.insertAfter(element.parent())
1 www 76
                }
77
            }
17178 stevensc 78
        })
1 www 79
 
17178 stevensc 80
        var allowAdd = $allowAdd
81
        var allowEdit = $allowEdit
82
        var allowDelete = $allowDelete
17191 stevensc 83
        var allowUsers = $allowUsers
1 www 84
 
17178 stevensc 85
        // Datatables
86
        var gridTable = $('#gridTable').dataTable({
87
            processing: true,
88
            serverSide: true,
89
            searching: true,
90
            order: [[0, 'asc']],
91
            ordering: true,
92
            ordenable: true,
93
            responsive: true,
94
            select: false,
95
            paging: true,
96
            pagingType: 'simple_numbers',
97
            ajax: {
98
                url: '$routeDatatable',
99
                type: 'get',
100
                beforeSend: function (request) {
101
                    NProgress.start()
102
                },
103
                dataFilter: function (response) {
104
                    var response = jQuery.parseJSON(response)
1 www 105
 
17178 stevensc 106
                    var json = {}
107
                    json.recordsTotal = 0
108
                    json.recordsFiltered = 0
109
                    json.data = []
1 www 110
 
17178 stevensc 111
                    if (response.success) {
112
                        json.recordsTotal = response.data.total
113
                        json.recordsFiltered = response.data.total
114
                        json.data = response.data.items
1 www 115
                    } else {
116
                        $.fn.showError(response.data)
117
                    }
17178 stevensc 118
 
119
                    return JSON.stringify(json)
1 www 120
                }
17178 stevensc 121
            },
122
            language: {
123
                sProcessing: 'LABEL_DATATABLE_SPROCESSING',
124
                sLengthMenu: 'LABEL_DATATABLE_SLENGTHMENU',
125
                sZeroRecords: 'LABEL_DATATABLE_SZERORECORDS',
126
                sEmptyTable: 'LABEL_DATATABLE_SEMPTYTABLE',
127
                sInfo: 'LABEL_DATATABLE_SINFO',
128
                sInfoEmpty: 'LABEL_DATATABLE_SINFOEMPTY',
129
                sInfoFiltered: 'LABEL_DATATABLE_SINFOFILTERED',
130
                sInfoPostFix: '',
131
                sSearch: 'LABEL_DATATABLE_SSEARCH',
132
                sUrl: '',
133
                sInfoThousands: ',',
134
                sLoadingRecords: 'LABEL_DATATABLE_SLOADINGRECORDS',
135
                oPaginate: {
136
                    sFirst: 'LABEL_DATATABLE_SFIRST',
137
                    sLast: 'LABEL_DATATABLE_SLAST',
138
                    sNext: 'LABEL_DATATABLE_SNEXT',
139
                    sPrevious: 'LABEL_DATATABLE_SPREVIOUS'
1 www 140
                },
17178 stevensc 141
                oAria: {
142
                    sSortAscending: ': LABEL_DATATABLE_SSORTASCENDING',
143
                    sSortDescending: ':LABEL_DATATABLE_SSORTDESCENDING'
144
                }
1 www 145
            },
17178 stevensc 146
            drawCallback: function (settings) {
147
                NProgress.done()
1 www 148
            },
17178 stevensc 149
            aoColumns: [
150
                { mDataProp: 'name' },
151
                { mDataProp: 'details' },
17197 stevensc 152
                { mDataProp: 'images' },
17178 stevensc 153
                { mDataProp: 'actions' }
154
            ],
155
            columnDefs: [
1 www 156
                {
17178 stevensc 157
                    targets: 0,
158
                    className: 'text-vertical-middle'
1 www 159
                },
160
                {
17178 stevensc 161
                    targets: -3,
162
                    orderable: false,
163
                    render: function (data, type, row) {
164
                        var s = ''
165
                        s += 'LABEL_STATUS: ' + data['status'] + '<br/>'
1 www 166
 
17178 stevensc 167
                        if (allowUsers && row['actions']['link_total_users']) {
168
                            s +=
169
                                'LABEL_TOTAL_USERS: ' +
170
                                data['total_users'] +
171
                                ' <button class="btn btn-view-total-users" data-href="' +
172
                                row['actions']['link_total_users'] +
173
                                '" data-toggle="tooltip" title="LABEL_VIEW"><i class="fa fa-external-link-alt"></i></button> <br>'
174
                        } else {
175
                            s += 'LABEL_TOTAL_USERS: ' + data['total_users'] + '<br/>'
176
                        }
177
                        if (allowUsers && row['actions']['link_total_users_actives']) {
178
                            s +=
179
                                'LABEL_TOTAL_USERS_ACTIVE: ' +
180
                                data['total_users_active'] +
181
                                ' <button class="btn btn-view-total-users" data-href="' +
182
                                row['actions']['link_total_users_actives'] +
183
                                '" data-toggle="tooltip" title="LABEL_VIEW"><i class="fa fa-external-link-alt"></i></button> <br>'
184
                        } else {
185
                            s +=
186
                                'LABEL_TOTAL_USERS_ACTIVE: ' + data['total_users_active'] + '<br/>'
187
                        }
1 www 188
 
17178 stevensc 189
                        return s
1 www 190
                    }
191
                },
17178 stevensc 192
                {
193
                    targets: -2,
194
                    orderable: false,
195
                    render: function (data, type, row) {
196
                        s = ''
17199 stevensc 197
 
17198 stevensc 198
                        if (data['image']) {
17178 stevensc 199
                            s =
200
                                s +
201
                                '&nbsp; <img class="btn-view-image-app" data-href="' +
17198 stevensc 202
                                data['image'] +
17178 stevensc 203
                                '" data-toggle="tooltip" src="' +
17198 stevensc 204
                                data['image'] +
17178 stevensc 205
                                '" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
206
                        } else {
207
                            s = s + ''
208
                        }
209
 
17198 stevensc 210
                        if (data['marketplace']) {
17195 stevensc 211
                            s =
212
                                s +
213
                                '&nbsp; <img class="btn-view-image-marketplace" data-href="' +
17198 stevensc 214
                                data['marketplace'] +
17195 stevensc 215
                                '" data-toggle="tooltip" src="' +
17198 stevensc 216
                                data['marketplace'] +
17195 stevensc 217
                                '" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
218
                        } else {
219
                            s = s + ''
220
                        }
221
 
17178 stevensc 222
                        return s
223
                    }
224
                },
1 www 225
                {
17178 stevensc 226
                    targets: -1,
227
                    orderable: false,
228
                    render: function (data, type, row) {
229
                        s = ''
230
 
231
                        if (allowEdit && data['link_edit']) {
232
                            s =
233
                                s +
234
                                '<button class="btn btn-info btn-sm btn-edit" data-href="' +
235
                                data['link_edit'] +
236
                                '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pen"></i> LABEL_EDIT </button>&nbsp;'
1 www 237
                        }
17178 stevensc 238
                        if (allowDelete && data['link_delete']) {
239
                            s =
240
                                s +
241
                                '<button class="btn btn-danger btn-sm btn-delete" data-href="' +
242
                                data['link_delete'] +
243
                                '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>&nbsp;'
1 www 244
                        }
17178 stevensc 245
                        return s
1 www 246
                    }
247
                }
17178 stevensc 248
            ]
249
        })
1 www 250
 
17178 stevensc 251
        // Validación de formulario de creación
252
        var validatorAdd = $('#form-add').validate({
253
            debug: true,
254
            onclick: false,
255
            onkeyup: false,
256
            ignore: [],
257
            rules: {
258
                name: {
259
                    required: true,
260
                    maxlength: 128
1 www 261
                },
17178 stevensc 262
                description: {
263
                    updateCkeditor: function () {
264
                        CKEDITOR.instances.description_add.updateElement()
265
                    },
266
                    required: true
267
                },
268
                file: {
269
                    required: true,
270
                    extension: 'jpg|jpeg|png',
271
                    accept: 'image/jpg,image/jpeg,image/png'
272
                },
273
                order: {
274
                    required: true,
275
                    digits: true,
276
                    min: 1,
277
                    max: 250
278
                },
279
                marketplace: {
280
                    required: false,
281
                    extension: 'jpg|jpeg|png',
282
                    accept: 'image/jpg,image/jpeg,image/png'
283
                },
284
                status: {
285
                    required: true
286
                },
287
                privacy: {
288
                    required: true
289
                },
290
                type: {
291
                    required: true
292
                },
293
                cost: {
294
                    required: function () {
295
                        return $('#form-add #type').val() == 's'
296
                    },
297
                    number: true,
298
                    min: 0
299
                }
1 www 300
            },
17178 stevensc 301
            submitHandler: function (form) {
302
                var formdata = false
303
                if (window.FormData) {
304
                    formdata = new FormData(form)
305
                }
5709 nelberth 306
 
17178 stevensc 307
                $('.info_noticia').prop('disabled', true)
308
                NProgress.start()
309
                $.ajax({
310
                    dataType: 'json',
311
                    accept: 'application/json',
312
                    method: 'post',
313
                    url: $('#form-add').attr('action'),
314
                    data: formdata,
315
                    processData: false,
316
                    contentType: false
317
                })
318
                    .done(function (response) {
319
                        console.log(response)
320
                        if (response['success']) {
321
                            $.fn.showSuccess(response['data'])
16891 efrain 322
 
17178 stevensc 323
                            $('#row-add').hide()
324
                            $('#row-edit').hide()
325
                            $('#row-listing').show()
16891 efrain 326
 
17178 stevensc 327
                            gridTable.api().ajax.reload(null, false)
328
                        } else {
329
                            validatorAdd.resetForm()
330
                            if (jQuery.type(response['data']) == 'string') {
331
                                $.fn.showError(response['data'])
332
                            } else {
333
                                $.each(response['data'], function (fieldname, errors) {
334
                                    $.fn.showFormErrorValidator('#form-add #' + fieldname, errors)
335
                                })
336
                            }
337
                        }
338
                    })
339
                    .fail(function (jqXHR, textStatus, errorThrown) {
340
                        $.fn.showError(textStatus)
341
                    })
342
                    .always(function () {
343
                        NProgress.done()
344
                    })
345
                return false
346
            },
347
            invalidHandler: function (form, validator) { }
348
        })
16891 efrain 349
 
17178 stevensc 350
        // Validación de formulario de edición
351
        var validatorEdit = $('#form-edit').validate({
352
            debug: true,
353
            onclick: false,
354
            onkeyup: false,
355
            ignore: [],
356
            rules: {
357
                name: {
358
                    required: true,
359
                    maxlength: 128
360
                },
361
                description: {
362
                    updateCkeditor: function () {
363
                        CKEDITOR.instances.description_edit.updateElement()
364
                    },
365
                    required: true
366
                },
367
                file: {
368
                    required: false,
369
                    extension: 'jpg|jpeg|png',
370
                    accept: 'image/jpg,image/jpeg,image/png'
371
                },
372
                order: {
373
                    required: true,
374
                    digits: true,
375
                    min: 1,
376
                    max: 250
377
                },
378
                marketplace: {
379
                    required: false,
380
                    extension: 'jpg|jpeg|png',
381
                    accept: 'image/jpg,image/jpeg,image/png'
382
                },
383
                status: {
384
                    required: true
385
                },
386
                privacy: {
387
                    required: true
388
                },
389
                type: {
390
                    required: true
391
                },
392
                cost: {
393
                    required: function () {
394
                        return $('#form-edit #type').val() == 's'
395
                    },
396
                    number: true,
397
                    min: 0
1 www 398
                }
17178 stevensc 399
            },
400
            submitHandler: function (form) {
401
                var formdata = false
402
                if (window.FormData) {
403
                    formdata = new FormData(form)
404
                }
16891 efrain 405
 
17178 stevensc 406
                NProgress.start()
407
                $.ajax({
408
                    dataType: 'json',
409
                    accept: 'application/json',
410
                    method: 'post',
411
                    url: $('#form-edit').attr('action'),
412
                    data: formdata,
413
                    processData: false,
414
                    contentType: false
415
                })
416
                    .done(function (response) {
417
                        if (response['success']) {
418
                            $.fn.showSuccess(response['data'])
16891 efrain 419
 
17178 stevensc 420
                            gridTable.api().ajax.reload(null, false)
1 www 421
 
17178 stevensc 422
                            $('#row-add').hide()
423
                            $('#row-edit').hide()
424
                            $('#row-listing').show()
425
                        } else {
426
                            validatorEdit.resetForm()
427
                            if (jQuery.type(response['data']) == 'string') {
428
                                $.fn.showError(response['data'])
429
                            } else {
430
                                $.each(response['data'], function (fieldname, errors) {
431
                                    $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors)
432
                                })
433
                            }
434
                        }
435
                    })
436
                    .fail(function (jqXHR, textStatus, errorThrown) {
437
                        $.fn.showError(textStatus)
438
                    })
439
                    .always(function () {
440
                        NProgress.done()
441
                    })
442
                return false
1 www 443
            },
17178 stevensc 444
            invalidHandler: function (form, validator) { }
445
        })
1 www 446
 
17178 stevensc 447
        // Evento de botón de vista de imagen de la aplicación
448
        $('body').on('click', '.btn-view-image-app', function (e) {
449
            e.preventDefault()
1 www 450
 
17178 stevensc 451
            $('#image-app').attr('src', $(this).data('href'))
452
            $('#modalPreviewImage').modal('show')
453
            return false
454
        })
16891 efrain 455
 
17178 stevensc 456
        // Evento de botón de vista de imagen del marketplace
457
        $('body').on('click', '.btn-view-image-marketplace', function (e) {
458
            e.preventDefault()
459
 
460
            $('#image-marketplace').attr('src', $(this).data('href'))
461
            $('#modalPreviewMarketPlace').modal('show')
462
            return false
463
        })
464
 
465
        // Evento de botón de añadir
466
        $('body').on('click', 'button.btn-add', function (e) {
467
            e.preventDefault()
468
            NProgress.start()
469
 
1 www 470
            $.ajax({
17178 stevensc 471
                dataType: 'json',
472
                method: 'get',
473
                url: '$routeAdd'
474
            })
475
                .done(function (response) {
476
                    if (response['success']) {
17205 stevensc 477
                        $('#form-add #table-capsules tbody').empty()
16891 efrain 478
 
17205 stevensc 479
                        $('#form-add #capsule_uuid').children().not(':first').remove()
17178 stevensc 480
                        $.each(response['data']['capsules'], function (index, element) {
17205 stevensc 481
                            $('#form-add #capsule_uuid').append(
17178 stevensc 482
                                $('<option>', {
483
                                    value: element.id,
484
                                    text: element.name
485
                                })
486
                            )
487
                        })
16891 efrain 488
 
17178 stevensc 489
                        $('#form-add #name').val('')
490
                        $('#form-add #privacy').val('')
491
                        $('#form-add #status').val('')
492
                        $('#form-add #cost').val('')
493
                        $('#form-add #form-row-cost').hide()
494
                        $('#form-add #file').fileinput('reset')
495
                        $('#form-add #file').val('')
496
                        $('#form-add #marketplace').fileinput('reset')
497
                        $('#form-add #marketplace').val('')
498
                        $('#form-add #order').val('1')
16891 efrain 499
 
17178 stevensc 500
                        CKEDITOR.instances.description_add.setData('')
501
                        validatorAdd.resetForm()
502
 
503
                        $('#row-edit').hide()
504
                        $('#row-listing').hide()
505
                        $('#row-add').show()
506
                    } else {
507
                        $.fn.showError(response['data'])
1 www 508
                    }
17178 stevensc 509
                })
510
                .fail(function (jqXHR, textStatus, errorThrown) {
511
                    $.fn.showError(textStatus)
512
                })
513
                .always(function () {
514
                    NProgress.done()
515
                })
16891 efrain 516
 
17178 stevensc 517
            return false
518
        })
1 www 519
 
17178 stevensc 520
        // Evento de botón de editar
521
        $('body').on('click', 'button.btn-edit', function (e) {
522
            e.preventDefault()
523
            var url = $(this).data('href')
1 www 524
 
17178 stevensc 525
            NProgress.start()
526
            $.ajax({
527
                dataType: 'json',
528
                accept: 'application/json',
529
                method: 'get',
530
                url: url
531
            })
532
                .done(function (response) {
533
                    if (response['success']) {
534
                        $('#form-edit').attr('action', url)
16822 efrain 535
 
17178 stevensc 536
                        $('#form-edit #capsule_uuid').children().not(':first').remove()
16822 efrain 537
 
17178 stevensc 538
                        $.each(response['data']['capsules'], function (index, element) {
539
                            $('#form-edit #capsule_uuid').append(
540
                                $('<option>', {
541
                                    value: element.id,
542
                                    text: element.name
543
                                })
544
                            )
545
 
546
                            if (element.checked) {
547
                                let data = {
548
                                    id: element.id,
549
                                    name: element.name
550
                                }
551
 
17205 stevensc 552
                                $('#form-edit #table-capsules tbody').append(
17178 stevensc 553
                                    $('#trCapsuleTemplate').render(data)
554
                                )
555
                            }
556
                        })
557
 
558
                        $('#form-edit').attr('action', url)
559
                        $('#form-edit #name').val(response['data']['name'])
560
                        $('#form-edit #privacy').val(response['data']['privacy'])
561
                        $('#form-edit #type').val(response['data']['type'])
562
                        $('#form-edit #order').val(response['data']['order'])
563
                        $('#form-edit #status').val(response['data']['status'])
564
 
565
                        if ('s' == response['data']['type']) {
566
                            $('#form-edit #form-row-cost').show()
567
                            $('#form-edit #cost').val(response['data']['cost'])
16822 efrain 568
                        } else {
17178 stevensc 569
                            $('#form-edit #form-row-cost').hide()
570
                            $('#form-edit #cost').val('')
16822 efrain 571
                        }
572
 
17178 stevensc 573
                        $('#form-edit #file').fileinput('reset')
17199 stevensc 574
                        $('#form-edit #file').val('')
1 www 575
 
17178 stevensc 576
                        $('#form-edit #marketplace').fileinput('reset')
17199 stevensc 577
                        $('#form-edit #marketplace').val('')
1 www 578
 
17178 stevensc 579
                        CKEDITOR.instances.description_edit.setData(
580
                            response['data']['description']
581
                        )
582
                        validatorEdit.resetForm()
1 www 583
 
17178 stevensc 584
                        $('#row-add').hide()
585
                        $('#row-listing').hide()
586
                        $('#row-edit').show()
587
                    } else {
588
                        validatorEdit.resetForm()
589
                        if (jQuery.type(response['data']) == 'string') {
590
                            $.fn.showError(response['data'])
591
                        } else {
592
                            $.each(response['data'], function (fieldname, errors) {
593
                                $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors)
594
                            })
595
                        }
596
                    }
597
                })
598
                .fail(function (jqXHR, textStatus, errorThrown) {
599
                    $.fn.showError(textStatus)
600
                })
601
                .always(function () {
602
                    NProgress.done()
603
                })
604
        })
1 www 605
 
17178 stevensc 606
        // Evento de botón de eliminar
607
        $('body').on('click', 'button.btn-delete', function (e) {
608
            e.preventDefault()
609
            var action = $(this).data('href')
610
 
611
            swal
612
                .fire({
613
                    title: 'LABEL_ARE_YOU_SURE',
614
                    icon: 'question',
615
                    cancelButtonText: 'LABEL_NO',
616
                    showCancelButton: true,
617
                    confirmButtonText: 'LABEL_YES'
618
                })
619
                .then((result) => {
620
                    if (result.isConfirmed) {
621
                        NProgress.start()
622
                        $.ajax({
623
                            dataType: 'json',
624
                            accept: 'application/json',
625
                            method: 'post',
626
                            url: action
627
                        })
628
                            .done(function (response) {
629
                                if (response['success']) {
630
                                    $.fn.showSuccess(response['data'])
631
                                    gridTable.api().ajax.reload(null, false)
632
                                } else {
633
                                    $.fn.showError(response['data'])
634
                                }
635
                            })
636
                            .fail(function (jqXHR, textStatus, errorThrown) {
637
                                $.fn.showError(textStatus)
638
                            })
639
                            .always(function () {
640
                                NProgress.done()
641
                            })
642
                    }
643
                })
644
        })
645
 
646
        // Evento de botón de cancelar
647
        $('body').on('click', 'button.btn-cancel', function (e) {
648
            e.preventDefault()
649
            $('#row-add').hide()
650
            $('#row-edit').hide()
651
            $('#row-listing').show()
652
        })
653
 
654
        // Evento de botón de refrescar
655
        $('body').on('click', 'button.btn-refresh', function (e) {
656
            e.preventDefault()
657
            gridTable.api().ajax.reload(null, false)
658
        })
659
 
660
        // Evento de botón de vista de usuarios
661
        $('body').on('click', 'button.btn-view-total-users', function (e) {
662
            e.preventDefault()
663
 
664
            var href = $(this).data('href')
665
            NProgress.start()
17093 stevensc 666
            $.ajax({
17178 stevensc 667
            dataType: 'json',
668
            accept: 'application/json',
669
            method: 'get',
670
            url: href
671
            })
672
            .done(function (response) {
17093 stevensc 673
                if (response['success']) {
17178 stevensc 674
                $('#table-users-capsule').val(response['data']['capsule'])
17093 stevensc 675
 
17178 stevensc 676
                $('#gridTableUsers tbody').empty()
1 www 677
 
17178 stevensc 678
                $.each(response['data']['items'], function (index, item) {
679
                    var s = '<tr>'
680
                    s = s + '<td>' + item['first_name'] + '</td>'
681
                    s = s + '<td>' + item['last_name'] + '</td>'
682
                    s = s + '<td>' + item['email'] + '</td>'
683
 
684
                    s = s + '<td>'
685
                    if (item['details']['access']) {
686
                    s = s + 'LABEL_ACCESS : ' + item['details']['access'] + '<br>'
687
                    }
688
                    if (item['details']['paid_from']) {
689
                    s =
690
                        s + 'LABEL_PAID_FROM : ' + item['details']['paid_from'] + '<br>'
691
                    }
692
                    if (item['details']['paid_to']) {
693
                    s = s + 'LABEL_PAID_TO : ' + item['details']['paid_to'] + '<br>'
694
                    }
695
 
696
                    s = s + '</td>'
697
                    s = s + '</tr>'
698
 
699
                    $('#gridTableUsers tbody').append(s)
700
                })
701
 
702
                $('#notificationUsersModal').modal('show')
17093 stevensc 703
                } else {
17178 stevensc 704
                $.fn.showError(response['data'])
17093 stevensc 705
                }
17178 stevensc 706
            })
707
            .fail(function (jqXHR, textStatus, errorThrown) {
708
                $.fn.showError(textStatus)
709
            })
710
            .always(function () {
711
                NProgress.done()
712
            })
713
            return false
714
        })
16891 efrain 715
 
17178 stevensc 716
        // Evento de cambio de tipo de formulario de creación
717
        $('#form-add #type').change(function (e) {
718
            e.preventDefault()
17093 stevensc 719
 
17178 stevensc 720
            if ('s' == $(this).val()) {
721
            $('#form-add #form-row-cost').show()
722
            } else {
723
            $('#form-add #cost').val(0)
724
            $('#form-add #form-row-cost').hide()
725
            }
726
        })
17093 stevensc 727
 
17178 stevensc 728
        // Evento de cambio de tipo de formulario de edición
729
        $('#form-edit #type').change(function (e) {
730
            e.preventDefault()
17093 stevensc 731
 
17178 stevensc 732
            if ('s' == $(this).val()) {
733
            $('#form-edit #form-row-cost').show()
734
            } else {
735
            $('#form-edit #cost').val(0)
736
            $('#form-edit #form-row-cost').hide()
737
            }
738
        })
5646 nelberth 739
 
17178 stevensc 740
        // Formato de número de formulario de creación
741
        $('#form-add #cost').inputNumberFormat({ decimal: 2 })
16891 efrain 742
 
17178 stevensc 743
        // Formato de número de formulario de edición
744
        $('#form-edit #cost').inputNumberFormat({ decimal: 2 })
1 www 745
 
17178 stevensc 746
        // Formato de número de formulario de creación
747
        $('#form-add #order').inputNumberFormat({ decimal: 0 })
17113 stevensc 748
 
17178 stevensc 749
        // Formato de número de formulario de edición
750
        $('#form-edit #order').inputNumberFormat({ decimal: 0 })
17113 stevensc 751
 
17178 stevensc 752
        // Configuración del formulario de creación
753
        $('#form-add #file').fileinput({
754
            theme: 'fa',
755
            language: 'es',
756
            showUpload: false,
757
            dropZoneEnabled: false,
758
            maxFileCount: 1,
759
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
760
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
761
        })
1 www 762
 
17178 stevensc 763
        // Configuración del formulario de edición
764
        $('#form-edit #file').fileinput({
765
            theme: 'fa',
766
            language: 'es',
767
            showUpload: false,
768
            dropZoneEnabled: false,
769
            maxFileCount: 1,
770
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
771
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
772
        })
16891 efrain 773
 
17178 stevensc 774
        // Configuración del formulario de creación
775
        $('#form-add #marketplace').fileinput({
776
            theme: 'fa',
777
            language: 'es',
778
            showUpload: false,
779
            dropZoneEnabled: false,
780
            maxFileCount: 1,
781
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $marketplace_size',
782
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
783
        })
1 www 784
 
17178 stevensc 785
        // Configuración del formulario de edición
786
        $('#form-edit #marketplace').fileinput({
787
            theme: 'fa',
788
            language: 'es',
789
            showUpload: false,
790
            dropZoneEnabled: false,
791
            maxFileCount: 1,
792
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $marketplace_size',
793
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
794
        })
17113 stevensc 795
 
17178 stevensc 796
        // Evento de botón de seleccionar capsule
797
        $('#btn-select-capsule').click(function (e) {
798
            e.preventDefault()
17113 stevensc 799
 
17178 stevensc 800
            var id = $('#capsule_uuid option:selected').val()
17113 stevensc 801
 
17178 stevensc 802
            if (!id) return false
17113 stevensc 803
 
17178 stevensc 804
            var name = $('#capsule_uuid option:selected').text()
805
            var key = '#tr_capsule_id_' + id
806
            var element = $(key)
17113 stevensc 807
 
17178 stevensc 808
            if (element.length > 0) return false
17113 stevensc 809
 
17178 stevensc 810
            if (name.length > 50) name = name.substr(0, 50) + '...'
17113 stevensc 811
 
17178 stevensc 812
            let data = { id, name }
17113 stevensc 813
 
17205 stevensc 814
            $('#form-add #table-capsules tbody').append($('#trCapsuleTemplate').render(data))
17119 stevensc 815
 
17178 stevensc 816
            return false
817
        })
818
 
819
        // Configuración del formulario de creación
17202 stevensc 820
        $('#form-add #capsule_uuid').select2({
17119 stevensc 821
            theme: 'bootstrap-5',
17202 stevensc 822
            width: '100%',
17205 stevensc 823
            placeholder: 'LABEL_SELECT',
824
            multiple: true
17178 stevensc 825
        })
826
 
17202 stevensc 827
        // Configuración del formulario de edición
828
        $('#form-edit #capsule_uuid').select2({
829
            theme: 'bootstrap-5',
830
            width: '100%',
17205 stevensc 831
            placeholder: 'LABEL_SELECT',
832
            multiple: true
17202 stevensc 833
        })
834
 
17178 stevensc 835
        // Configuración del editor de CKEditor para el formulario de creación
8290 stevensc 836
        CKEDITOR.replace('description_add', {
17178 stevensc 837
            toolbar: [
838
                { name: 'editing', items: ['Scayt'] },
839
                { name: 'links', items: ['Link', 'Unlink'] },
840
                {
841
                    name: 'paragraph',
842
                    items: [
843
                        'NumberedList',
844
                        'BulletedList',
845
                        '-',
846
                        'Outdent',
847
                        'Indent',
848
                        'Blockquote'
849
                    ]
850
                },
851
                {
852
                    name: 'basicstyles',
853
                    items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
854
                },
855
                '/',
856
                {
857
                    name: 'insert',
858
                    items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
859
                },
860
                { name: 'styles', items: ['Styles', 'Format'] },
861
                { name: 'tools', items: ['Maximize'] }
862
            ],
863
            removePlugins: 'elementspath,Anchor',
864
            heigth: 100
865
        })
17113 stevensc 866
 
17178 stevensc 867
        // Configuración del editor de CKEditor para el formulario de edición
8290 stevensc 868
        CKEDITOR.replace('description_edit', {
17178 stevensc 869
            toolbar: [
870
                { name: 'editing', items: ['Scayt'] },
871
                { name: 'links', items: ['Link', 'Unlink'] },
872
                {
873
                    name: 'paragraph',
874
                    items: [
875
                        'NumberedList',
876
                        'BulletedList',
877
                        '-',
878
                        'Outdent',
879
                        'Indent',
880
                        'Blockquote'
881
                    ]
882
                },
883
                {
884
                    name: 'basicstyles',
885
                    items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
886
                },
887
                '/',
888
                {
889
                    name: 'insert',
890
                    items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
891
                },
892
                { name: 'styles', items: ['Styles', 'Format'] },
893
                { name: 'tools', items: ['Maximize'] }
894
            ],
895
            removePlugins: 'elementspath,Anchor',
896
            heigth: 100
897
        })
898
    })
1 www 899
JS;
900
$this->inlineScript()->captureEnd();
901
?>
902
 
16891 efrain 903
<div class="container">
904
	<div class="card" id="row-listing">
905
	 	<div class="card-header">
906
	 		<h6 class="card-title">LABEL_TOPICS</h6>
907
	 	</div>
17178 stevensc 908
 
16891 efrain 909
	 	<div class="card-body">
17178 stevensc 910
	 	    <div class="row">
16891 efrain 911
	 	         <div class="col-12 mt-3">
17178 stevensc 912
                    <table id="gridTable" class="table   table-bordered">
913
                        <thead>
914
                            <tr>
915
                                <th>LABEL_NAME</th>
916
                                <th>LABEL_DETAILS</th>
917
                                <th>LABEL_IMAGES</th>
918
                                <th>LABEL_ACTIONS</th>
919
                            </tr>
920
                        </thead>
921
                        <tbody>
922
                        </tbody>
923
                    </table>
16891 efrain 924
	 	         </div>
17178 stevensc 925
	 	    </div>
16891 efrain 926
	 	</div>
17178 stevensc 927
 
16891 efrain 928
	 	<div class="card-footer text-right">
16992 efrain 929
			<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-sync"></i> LABEL_REFRESH </button>
16891 efrain 930
			<?php if ($allowAdd) : ?>
931
			<button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
932
			<?php endif; ?>
933
	 	</div>
14934 stevensc 934
	</div>
16891 efrain 935
 
936
	<div class="card" id="row-add" style="display:none">
937
	 	<div class="card-header">
938
	 		<h6 class="card-title">LABEL_ADD_TOPIC</h6>
939
	 	</div>
17178 stevensc 940
 
16891 efrain 941
	 	<?php
14934 stevensc 942
		$form = $this->formAdd;
943
		$form->setAttributes([
944
			'method'  => 'post',
945
			'action'  => $routeAdd,
16905 efrain 946
			'name'    => 'form-add',
947
			'id'      => 'form-add',
14934 stevensc 948
		]);
5678 nelberth 949
 
14934 stevensc 950
		$form->prepare();
951
		echo $this->form()->openTag($form);
952
		?>
17178 stevensc 953
            <div class="card-body">
954
                <div class="row">
955
                    <div class="col-12 mt-3">
956
                        <?php
957
                        $element = $form->get('name');
958
 
959
                        $element->setAttributes(['class' => 'form-control']);
960
                        $element->setOptions(['label' => 'LABEL_NAME']);
961
                        echo $this->formLabel($element);
962
                        echo $this->formText($element);
963
                        ?>
964
                    </div>
965
                </div>
17093 stevensc 966
 
17178 stevensc 967
                <div class="row">
968
                    <div class="col-12 mt-3">
969
                        <?php
970
                        $element = $form->get('description');
971
                        $element->setAttributes(['id' => 'description_add', 'class' => 'form-control', 'rows' => '2', 'class' => 'form-control']);
972
                        $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
973
                        echo $this->formLabel($element);
974
                        echo $this->formTextArea($element);
975
                        ?>
976
                    </div>
17113 stevensc 977
                </div>
17178 stevensc 978
 
979
                <div class="row">
980
                    <div class="col-12 mt-3">
981
                        <?php
982
                        $element = $form->get('order');
983
                        $element->setAttributes(['class' => 'form-control']);
984
                        $element->setOptions(['label' => 'LABEL_ORDER']);
985
                        echo $this->formLabel($element);
986
                        echo $this->formText($element);
987
                        ?>
988
                    </div>
17122 stevensc 989
                </div>
17178 stevensc 990
 
991
                <div class="row">
992
                    <div class="col-12 mt-3">
993
                        <?php
994
                        $element = $form->get('status');
995
                        $element->setAttributes(['class' => 'form-control']);
996
                        $element->setOptions(['label' => 'LABEL_STATUS']);
997
                        echo $this->formLabel($element);
998
                        echo $this->formSelect($element);
999
                        ?>
1000
                    </div>
1001
                </div>
1002
 
1003
                <div class="row">
1004
                    <div class="col-12 mt-3">
1005
                        <?php
1006
                        $element = $form->get('privacy');
1007
                        $element->setAttributes(['class' => 'form-control']);
1008
                        $element->setOptions(['label' => 'LABEL_PRIVACY']);
1009
                        echo $this->formLabel($element);
1010
                        echo $this->formSelect($element);
1011
                        ?>
1012
                    </div>
1013
                </div>
1014
 
1015
                <div class="row">
1016
                    <div class="col-12 mt-3">
1017
                        <?php
1018
                        $element = $form->get('type');
1019
                        $element->setAttributes(['class' => 'form-control']);
1020
                        $element->setOptions(['label' => 'LABEL_TYPE']);
1021
                        echo $this->formLabel($element);
1022
                        echo $this->formSelect($element);
1023
                        ?>
1024
                    </div>
1025
                </div>
1026
 
1027
                <div class="row"  id="form-row-cost">
1028
                    <div class="col-12 mt-3">
1029
                        <?php
1030
                        $element = $form->get('cost');
1031
                        $element->setAttributes(['class' => 'form-control']);
1032
                        $element->setOptions(['label' => 'LABEL_COST']);
1033
                        echo $this->formLabel($element);
1034
                        echo $this->formText($element);
1035
                        ?>
1036
                    </div>
1037
                </div>
1038
 
1039
                <div class="row">
1040
                    <div class="col-12 mt-3">
1041
                        <?php
1042
                        $element = $form->get('file');
1043
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
1044
                        $element->setAttributes(['class' => 'form-control']);
1045
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
1046
                        echo $this->formLabel($element);
1047
                        echo $this->formFile($element);
1048
                        ?>
1049
                    </div>
1050
                </div>
1051
 
1052
                <div class="row">
17194 stevensc 1053
                    <div class="col-12 mt-3">
1054
                        <?php
1055
                        $element = $form->get('marketplace');
1056
                        $element->setOptions(['label' => 'LABEL_MARKETPLACE']);
1057
                        $element->setAttributes(['class' => 'form-control']);
1058
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
1059
                        echo $this->formLabel($element);
1060
                        echo $this->formFile($element);
1061
                        ?>
1062
                    </div>
1063
                </div>
1064
 
1065
                <div class="row">
17178 stevensc 1066
                    <div class="col-8 mt-3">
1067
                        <select name="capsule_uuid" id="capsule_uuid">
1068
                            <option value="">LABEL_SELECT</option>
1069
                        </select>
1070
                    </div>
1071
                    <div class="col-4 mt-3">
1072
                        <button type="button" class="btn btn-primary" id="btn-select-capsule" data-toggle="tooltip" title="LABEL_ADD LABEL_CAPSULE">LABEL_ADD LABEL_CAPSULE</button>
1073
                    </div>
1074
                </div>
1075
 
1076
                <div class="row">
1077
                    <div class="col-12 mt-3">
1078
                        <table id="table-capsules" class="table table-bordered">
1079
                            <thead>
1080
                                <tr>
1081
                                    <th>LABEL_NAME</th>
1082
                                    <th>LABEL_ACTIONS</th>
1083
                                </tr>
1084
                            </thead>
1085
                            <tbody>
1086
                            </tbody>
1087
                        </table>
1088
                    </div>
1089
                </div>
17122 stevensc 1090
            </div>
17178 stevensc 1091
 
1092
            <div class="card-footer text-right">
1093
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1094
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
1095
            </div>
16891 efrain 1096
	 	<?php echo $this->form()->closeTag($form); ?>
14934 stevensc 1097
	</div>
16891 efrain 1098
 
1099
 
1100
	<div class="card" id="row-edit" style="display:none">
1101
	 	<div class="card-header">
1102
	 		<h6 class="card-title">LABEL_EDIT_TOPIC</h6>
1103
	 	</div>
17178 stevensc 1104
 
16891 efrain 1105
	 	<?php
14934 stevensc 1106
		$form = $this->formEdit;
1107
		$form->setAttributes([
1108
			'method'    => 'post',
16905 efrain 1109
			'name'      => 'form-edit',
1110
			'id'        => 'form-edit'
14934 stevensc 1111
		]);
5895 nelberth 1112
 
14934 stevensc 1113
		$form->prepare();
1114
		echo $this->form()->openTag($form);
1115
		?>
16891 efrain 1116
 
17178 stevensc 1117
            <div class="card-body">
1118
                <div class="row">
1119
                    <div class="col-12 mt-3">
1120
                        <?php
1121
                        $element = $form->get('name');
1122
                        $element->setAttributes(['class' => 'form-control']);
1123
                        $element->setOptions(['label' => 'LABEL_NAME']);
1124
                        echo $this->formLabel($element);
1125
                        echo $this->formText($element);
1126
                        ?>
1127
                    </div>
1128
                </div>
1 www 1129
 
17178 stevensc 1130
                <div class="row">
1131
                    <div class="col-12 mt-3">
1132
                        <?php
1133
                        $element = $form->get('description');
1134
                        $element->setAttributes(['id' => 'description_edit', 'rows' => '2', 'class' => 'form-control',   'class' => 'form-control']);
1135
                        $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
1136
                        echo $this->formLabel($element);
1137
                        echo $this->formTextArea($element);
1138
                        ?>
1139
                    </div>
1140
                </div>
16891 efrain 1141
 
17178 stevensc 1142
                <div class="row">
1143
                    <div class="col-12 mt-3">
1144
                        <?php
1145
                        $element = $form->get('order');
1146
                        $element->setAttributes(['class' => 'form-control']);
1147
                        $element->setOptions(['label' => 'LABEL_ORDER']);
1148
                        echo $this->formLabel($element);
1149
                        echo $this->formText($element);
1150
                        ?>
1151
                    </div>
1152
                </div>
1 www 1153
 
17178 stevensc 1154
                <div class="row">
1155
                    <div class="col-12 mt-3">
1156
                        <?php
1157
                        $element = $form->get('status');
1158
                        $element->setAttributes(['class' => 'form-control']);
1159
                        $element->setOptions(['label' => 'LABEL_STATUS']);
1160
                        echo $this->formLabel($element);
1161
                        echo $this->formSelect($element);
1162
                        ?>
1163
                    </div>
1164
                </div>
14934 stevensc 1165
 
17178 stevensc 1166
                <div class="row">
1167
                    <div class="col-12 mt-3">
1168
                        <?php
1169
                        $element = $form->get('privacy');
1170
                        $element->setAttributes(['class' => 'form-control']);
1171
                        $element->setOptions(['label' => 'LABEL_PRIVACY']);
1172
                        echo $this->formLabel($element);
1173
                        echo $this->formSelect($element);
1174
                        ?>
1175
                    </div>
1176
                </div>
16891 efrain 1177
 
17178 stevensc 1178
                <div class="row">
1179
                    <div class="col-12 mt-3">
1180
                        <?php
1181
                        $element = $form->get('type');
1182
                        $element->setAttributes(['class' => 'form-control']);
1183
                        $element->setOptions(['label' => 'LABEL_TYPE']);
1184
                        echo $this->formLabel($element);
1185
                        echo $this->formSelect($element);
1186
                        ?>
1187
                    </div>
1188
                </div>
14934 stevensc 1189
 
17178 stevensc 1190
                <div class="row"  id="form-row-cost">
1191
                    <div class="col-12 mt-3">
16891 efrain 1192
                        <?php
17178 stevensc 1193
                        $element = $form->get('cost');
1194
                        $element->setAttributes(['class' => 'form-control']);
1195
                        $element->setOptions(['label' => 'LABEL_COST']);
1196
                        echo $this->formLabel($element);
1197
                        echo $this->formText($element);
1198
                        ?>
1199
                    </div>
1200
                </div>
1201
 
1202
                <div class="row">
1203
                    <div class="col-12 mt-3">
1204
                        <?php
16891 efrain 1205
                        $element = $form->get('file');
1206
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
1207
                        $element->setAttributes(['class' => 'form-control']);
16905 efrain 1208
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
16891 efrain 1209
                        echo $this->formLabel($element);
1210
                        echo $this->formFile($element);
1211
                        ?>
1212
                    </div>
17178 stevensc 1213
                </div>
1214
 
1215
                <div class="row">
1216
                    <div class="col-12 mt-3">
1217
                        <?php
1218
                        $element = $form->get('marketplace');
1219
                        $element->setOptions(['label' => 'LABEL_MARKETPLACE']);
1220
                        $element->setAttributes(['class' => 'form-control']);
1221
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
1222
                        echo $this->formLabel($element);
1223
                        echo $this->formFile($element);
1224
                        ?>
1225
                    </div>
16891 efrain 1226
                </div>
17201 stevensc 1227
 
1228
                <div class="row">
1229
                    <div class="col-8 mt-3">
1230
                        <select name="capsule_uuid" id="capsule_uuid">
1231
                            <option value="">LABEL_SELECT</option>
1232
                        </select>
1233
                    </div>
1234
                    <div class="col-4 mt-3">
1235
                        <button type="button" class="btn btn-primary" id="btn-select-capsule" data-toggle="tooltip" title="LABEL_ADD LABEL_CAPSULE">LABEL_ADD LABEL_CAPSULE</button>
1236
                    </div>
1237
                </div>
1238
 
1239
                <div class="row">
1240
                    <div class="col-12 mt-3">
1241
                        <table id="table-capsules" class="table table-bordered">
1242
                            <thead>
1243
                                <tr>
1244
                                    <th>LABEL_NAME</th>
1245
                                    <th>LABEL_ACTIONS</th>
1246
                                </tr>
1247
                            </thead>
1248
                            <tbody>
1249
                            </tbody>
1250
                        </table>
1251
                    </div>
1252
                </div>
17178 stevensc 1253
            </div>
16891 efrain 1254
 
17178 stevensc 1255
            <div class="card-footer text-right">
1256
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1257
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
1258
            </div>
16891 efrain 1259
	 	<?php echo $this->form()->closeTag($form); ?>
14934 stevensc 1260
	</div>
16891 efrain 1261
</div>
14934 stevensc 1262
 
1 www 1263
<!-- The Modal -->
16891 efrain 1264
<div class="modal" id="modalPreviewImage">
1 www 1265
	<div class="modal-dialog ">
14934 stevensc 1266
		<div class="modal-content">
1 www 1267
 
14934 stevensc 1268
			<!-- Modal Header -->
1269
			<div class="modal-header">
16845 efrain 1270
				<h6 class="modal-title">LABEL_IMAGE</h6>
16822 efrain 1271
				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
14934 stevensc 1272
			</div>
1 www 1273
 
14934 stevensc 1274
			<!-- Modal body -->
1275
			<div class="modal-body text-center">
1 www 1276
				<img src="" class="img img-responsive" style="width: 300px; height: auto" id="image-app" />
14934 stevensc 1277
			</div>
1278
 
1279
			<!-- Modal footer -->
16891 efrain 1280
			<div class="modal-footer text-right">
16822 efrain 1281
				 <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
14934 stevensc 1282
			</div>
1283
		</div>
1 www 1284
	</div>
17113 stevensc 1285
</div>
1286
 
17178 stevensc 1287
<!-- The Modal -->
1288
<div class="modal" id="modalPreviewMarketPlace">
1289
	<div class="modal-dialog">
1290
		<div class="modal-content">
1291
			<!-- Modal Header -->
1292
			<div class="modal-header">
1293
				<h6 class="modal-title">LABEL_IMAGE_MARKETPLACE</h6>
1294
				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
1295
			</div>
1296
 
1297
			<!-- Modal body -->
1298
			<div class="modal-body text-center">
1299
				<img src="" class="img img-responsive" style="width: 300px; height: auto" id="image-marketplace" />
1300
			</div>
1301
 
1302
			<!-- Modal footer -->
1303
			<div class="modal-footer text-right">
1304
				<button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1305
			</div>
1306
		</div>
1307
	</div>
1308
</div>
1309
 
1310
<!-- The Modal -->
1311
<div class="modal" id="notificationUsersModal">
1312
	<div class="modal-dialog modal-xl">
1313
		<div class="modal-content">
1314
 
1315
			<!-- Modal Header -->
1316
			<div class="modal-header">
1317
				<h6 class="modal-title">LABEL_USERS</h6>
1318
				<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
1319
			</div>
1320
 
1321
			<!-- Modal body -->
1322
			<div class="modal-body">
1323
				<form>
1324
					<div class="row">
1325
						<div class="col-12 mt-3">
1326
						<label>LABEL_CAPSULE</label>
1327
						<input type="text" readonly="readonly" id="table-users-capsule" class="form-control">
1328
						</div>
1329
					</div>
1330
				</form>
1331
				<div class="row">
1332
					<div class="col-12 mt-3">
1333
        				<div style="height: 300px;overflow: scroll;">
1334
        					<table id="gridTableUsers" style="width: 100%" class="table table-bordered">
1335
        						<thead>
1336
        							<tr>
1337
        								<th>LABEL_FIRST_NAME</th>
1338
        								<th>LABEL_LAST_NAME</th>
1339
        								<th>LABEL_EMAIL</th>
1340
        								<th>LABEL_DETAILS</th>
1341
        							</tr>
1342
        						</thead>
1343
        						<tbody>
1344
        						</tbody>
1345
        					</table>
1346
        				</div>
1347
    				</div>
1348
    			</div>
1349
			</div>
1350
 
1351
			<!-- Modal footer -->
1352
			<div class="modal-footer text-right">
1353
				<button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1354
			</div>
1355
 
1356
		</div>
1357
	</div>
1358
</div>
1359
 
17113 stevensc 1360
<script id="trCapsuleTemplate" type="text/x-jsrender">
17115 stevensc 1361
    <tr id="tr_capsule_id_{{:id}}">
17113 stevensc 1362
       <td class="text-left">
17123 stevensc 1363
            <input type="hidden" class="capsule_id" name="capsule_id[]" value="{{:id}}" />
1364
            <span class="d-none d-md-inline">{{:name}}</span>
17113 stevensc 1365
       </td>
1366
       <td>
17123 stevensc 1367
            <button class="btn btn-default btn-remove-capsule" data-id="{{:id}}" data-toggle="tooltip"  data-original-title="LABEL_DELETE">
1368
                <i class="fa fa-ban" aria-hidden="true"></i>
1369
                <span class="d-none d-md-inline">LABEL_DELETE</span>
1370
            </button>
17113 stevensc 1371
       </td>
1372
   </tr>
17178 stevensc 1373
</script>