Proyectos de Subversion LeadersLinked - Backend

Rev

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