Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17191 | Rev 17193 | 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
 
17192 stevensc 198
                        console.log(data)
199
 
17178 stevensc 200
                        if (data['marketplace']) {
201
                            s =
202
                                s +
203
                                '&nbsp; <img class="btn-view-image-marketplace" data-href="' +
204
                                data['marketplace'] +
205
                                '" data-toggle="tooltip" src="' +
206
                                data['marketplace'] +
207
                                '" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
208
                        } else {
209
                            s = s + ''
210
                        }
1 www 211
 
17178 stevensc 212
                        if (data['image']) {
213
                            s =
214
                                s +
215
                                '&nbsp; <img class="btn-view-image-app" data-href="' +
216
                                data['image'] +
217
                                '" data-toggle="tooltip" src="' +
218
                                data['image'] +
219
                                '" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
220
                        } else {
221
                            s = s + ''
222
                        }
223
 
224
                        return s
225
                    }
226
                },
1 www 227
                {
17178 stevensc 228
                    targets: -1,
229
                    orderable: false,
230
                    render: function (data, type, row) {
231
                        s = ''
232
 
233
                        if (allowEdit && data['link_edit']) {
234
                            s =
235
                                s +
236
                                '<button class="btn btn-info btn-sm btn-edit" data-href="' +
237
                                data['link_edit'] +
238
                                '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pen"></i> LABEL_EDIT </button>&nbsp;'
1 www 239
                        }
17178 stevensc 240
                        if (allowDelete && data['link_delete']) {
241
                            s =
242
                                s +
243
                                '<button class="btn btn-danger btn-sm btn-delete" data-href="' +
244
                                data['link_delete'] +
245
                                '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>&nbsp;'
1 www 246
                        }
17178 stevensc 247
                        return s
1 www 248
                    }
249
                }
17178 stevensc 250
            ]
251
        })
1 www 252
 
17178 stevensc 253
        // Validación de formulario de creación
254
        var validatorAdd = $('#form-add').validate({
255
            debug: true,
256
            onclick: false,
257
            onkeyup: false,
258
            ignore: [],
259
            rules: {
260
                name: {
261
                    required: true,
262
                    maxlength: 128
1 www 263
                },
17178 stevensc 264
                description: {
265
                    updateCkeditor: function () {
266
                        CKEDITOR.instances.description_add.updateElement()
267
                    },
268
                    required: true
269
                },
270
                file: {
271
                    required: true,
272
                    extension: 'jpg|jpeg|png',
273
                    accept: 'image/jpg,image/jpeg,image/png'
274
                },
275
                order: {
276
                    required: true,
277
                    digits: true,
278
                    min: 1,
279
                    max: 250
280
                },
281
                marketplace: {
282
                    required: false,
283
                    extension: 'jpg|jpeg|png',
284
                    accept: 'image/jpg,image/jpeg,image/png'
285
                },
286
                status: {
287
                    required: true
288
                },
289
                privacy: {
290
                    required: true
291
                },
292
                type: {
293
                    required: true
294
                },
295
                cost: {
296
                    required: function () {
297
                        return $('#form-add #type').val() == 's'
298
                    },
299
                    number: true,
300
                    min: 0
301
                }
1 www 302
            },
17178 stevensc 303
            submitHandler: function (form) {
304
                var formdata = false
305
                if (window.FormData) {
306
                    formdata = new FormData(form)
307
                }
5709 nelberth 308
 
17178 stevensc 309
                $('.info_noticia').prop('disabled', true)
310
                NProgress.start()
311
                $.ajax({
312
                    dataType: 'json',
313
                    accept: 'application/json',
314
                    method: 'post',
315
                    url: $('#form-add').attr('action'),
316
                    data: formdata,
317
                    processData: false,
318
                    contentType: false
319
                })
320
                    .done(function (response) {
321
                        console.log(response)
322
                        if (response['success']) {
323
                            $.fn.showSuccess(response['data'])
16891 efrain 324
 
17178 stevensc 325
                            $('#row-add').hide()
326
                            $('#row-edit').hide()
327
                            $('#row-listing').show()
16891 efrain 328
 
17178 stevensc 329
                            gridTable.api().ajax.reload(null, false)
330
                        } else {
331
                            validatorAdd.resetForm()
332
                            if (jQuery.type(response['data']) == 'string') {
333
                                $.fn.showError(response['data'])
334
                            } else {
335
                                $.each(response['data'], function (fieldname, errors) {
336
                                    $.fn.showFormErrorValidator('#form-add #' + fieldname, errors)
337
                                })
338
                            }
339
                        }
340
                    })
341
                    .fail(function (jqXHR, textStatus, errorThrown) {
342
                        $.fn.showError(textStatus)
343
                    })
344
                    .always(function () {
345
                        NProgress.done()
346
                    })
347
                return false
348
            },
349
            invalidHandler: function (form, validator) { }
350
        })
16891 efrain 351
 
17178 stevensc 352
        // Validación de formulario de edición
353
        var validatorEdit = $('#form-edit').validate({
354
            debug: true,
355
            onclick: false,
356
            onkeyup: false,
357
            ignore: [],
358
            rules: {
359
                name: {
360
                    required: true,
361
                    maxlength: 128
362
                },
363
                description: {
364
                    updateCkeditor: function () {
365
                        CKEDITOR.instances.description_edit.updateElement()
366
                    },
367
                    required: true
368
                },
369
                file: {
370
                    required: false,
371
                    extension: 'jpg|jpeg|png',
372
                    accept: 'image/jpg,image/jpeg,image/png'
373
                },
374
                order: {
375
                    required: true,
376
                    digits: true,
377
                    min: 1,
378
                    max: 250
379
                },
380
                marketplace: {
381
                    required: false,
382
                    extension: 'jpg|jpeg|png',
383
                    accept: 'image/jpg,image/jpeg,image/png'
384
                },
385
                status: {
386
                    required: true
387
                },
388
                privacy: {
389
                    required: true
390
                },
391
                type: {
392
                    required: true
393
                },
394
                cost: {
395
                    required: function () {
396
                        return $('#form-edit #type').val() == 's'
397
                    },
398
                    number: true,
399
                    min: 0
1 www 400
                }
17178 stevensc 401
            },
402
            submitHandler: function (form) {
403
                var formdata = false
404
                if (window.FormData) {
405
                    formdata = new FormData(form)
406
                }
16891 efrain 407
 
17178 stevensc 408
                NProgress.start()
409
                $.ajax({
410
                    dataType: 'json',
411
                    accept: 'application/json',
412
                    method: 'post',
413
                    url: $('#form-edit').attr('action'),
414
                    data: formdata,
415
                    processData: false,
416
                    contentType: false
417
                })
418
                    .done(function (response) {
419
                        if (response['success']) {
420
                            $.fn.showSuccess(response['data'])
16891 efrain 421
 
17178 stevensc 422
                            gridTable.api().ajax.reload(null, false)
1 www 423
 
17178 stevensc 424
                            $('#row-add').hide()
425
                            $('#row-edit').hide()
426
                            $('#row-listing').show()
427
                        } else {
428
                            validatorEdit.resetForm()
429
                            if (jQuery.type(response['data']) == 'string') {
430
                                $.fn.showError(response['data'])
431
                            } else {
432
                                $.each(response['data'], function (fieldname, errors) {
433
                                    $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors)
434
                                })
435
                            }
436
                        }
437
                    })
438
                    .fail(function (jqXHR, textStatus, errorThrown) {
439
                        $.fn.showError(textStatus)
440
                    })
441
                    .always(function () {
442
                        NProgress.done()
443
                    })
444
                return false
1 www 445
            },
17178 stevensc 446
            invalidHandler: function (form, validator) { }
447
        })
1 www 448
 
17178 stevensc 449
        // Evento de botón de vista de imagen de la aplicación
450
        $('body').on('click', '.btn-view-image-app', function (e) {
451
            e.preventDefault()
1 www 452
 
17178 stevensc 453
            $('#image-app').attr('src', $(this).data('href'))
454
            $('#modalPreviewImage').modal('show')
455
            return false
456
        })
16891 efrain 457
 
17178 stevensc 458
        // Evento de botón de vista de imagen del marketplace
459
        $('body').on('click', '.btn-view-image-marketplace', function (e) {
460
            e.preventDefault()
461
 
462
            $('#image-marketplace').attr('src', $(this).data('href'))
463
            $('#modalPreviewMarketPlace').modal('show')
464
            return false
465
        })
466
 
467
        // Evento de botón de añadir
468
        $('body').on('click', 'button.btn-add', function (e) {
469
            e.preventDefault()
470
            NProgress.start()
471
 
1 www 472
            $.ajax({
17178 stevensc 473
                dataType: 'json',
474
                method: 'get',
475
                url: '$routeAdd'
476
            })
477
                .done(function (response) {
478
                    if (response['success']) {
479
                        $('#table-capsules tbody').empty()
16891 efrain 480
 
17178 stevensc 481
                        $('#capsule_uuid').children().not(':first').remove()
482
                        $.each(response['data']['capsules'], function (index, element) {
483
                            $('#capsule_uuid').append(
484
                                $('<option>', {
485
                                    value: element.id,
486
                                    text: element.name
487
                                })
488
                            )
489
                        })
16891 efrain 490
 
17178 stevensc 491
                        $('#form-add #name').val('')
492
                        $('#form-add #privacy').val('')
493
                        $('#form-add #status').val('')
494
                        $('#form-add #cost').val('')
495
                        $('#form-add #form-row-cost').hide()
496
                        $('#form-add #file').fileinput('reset')
497
                        $('#form-add #file').val('')
498
                        $('#form-add #marketplace').fileinput('reset')
499
                        $('#form-add #marketplace').val('')
500
                        $('#form-add #order').val('1')
16891 efrain 501
 
17178 stevensc 502
                        CKEDITOR.instances.description_add.setData('')
503
                        validatorAdd.resetForm()
504
 
505
                        $('#row-edit').hide()
506
                        $('#row-listing').hide()
507
                        $('#row-add').show()
508
                    } else {
509
                        $.fn.showError(response['data'])
1 www 510
                    }
17178 stevensc 511
                })
512
                .fail(function (jqXHR, textStatus, errorThrown) {
513
                    $.fn.showError(textStatus)
514
                })
515
                .always(function () {
516
                    NProgress.done()
517
                })
16891 efrain 518
 
17178 stevensc 519
            return false
520
        })
1 www 521
 
17178 stevensc 522
        // Evento de botón de editar
523
        $('body').on('click', 'button.btn-edit', function (e) {
524
            e.preventDefault()
525
            var url = $(this).data('href')
1 www 526
 
17178 stevensc 527
            NProgress.start()
528
            $.ajax({
529
                dataType: 'json',
530
                accept: 'application/json',
531
                method: 'get',
532
                url: url
533
            })
534
                .done(function (response) {
535
                    if (response['success']) {
536
                        $('#form-edit').attr('action', url)
16822 efrain 537
 
17178 stevensc 538
                        $('#form-edit #capsule_uuid').children().not(':first').remove()
16822 efrain 539
 
17178 stevensc 540
                        $.each(response['data']['capsules'], function (index, element) {
541
                            $('#form-edit #capsule_uuid').append(
542
                                $('<option>', {
543
                                    value: element.id,
544
                                    text: element.name
545
                                })
546
                            )
547
 
548
                            if (element.checked) {
549
                                let data = {
550
                                    id: element.id,
551
                                    name: element.name
552
                                }
553
 
554
                                $('#table-capsules tbody').append(
555
                                    $('#trCapsuleTemplate').render(data)
556
                                )
557
                            }
558
                        })
559
 
560
                        $('#form-edit').attr('action', url)
561
                        $('#form-edit #name').val(response['data']['name'])
562
                        $('#form-edit #privacy').val(response['data']['privacy'])
563
                        $('#form-edit #type').val(response['data']['type'])
564
                        $('#form-edit #order').val(response['data']['order'])
565
                        $('#form-edit #status').val(response['data']['status'])
566
 
567
                        if ('s' == response['data']['type']) {
568
                            $('#form-edit #form-row-cost').show()
569
                            $('#form-edit #cost').val(response['data']['cost'])
16822 efrain 570
                        } else {
17178 stevensc 571
                            $('#form-edit #form-row-cost').hide()
572
                            $('#form-edit #cost').val('')
16822 efrain 573
                        }
574
 
17178 stevensc 575
                        $('#form-edit #file').fileinput('reset')
576
                        $('#form-edit #file').val(response['data']['image'])
1 www 577
 
17178 stevensc 578
                        $('#form-edit #marketplace').fileinput('reset')
579
                        $('#form-edit #marketplace').val(response['data']['marketplace'])
1 www 580
 
17178 stevensc 581
                        CKEDITOR.instances.description_edit.setData(
582
                            response['data']['description']
583
                        )
584
                        validatorEdit.resetForm()
1 www 585
 
17178 stevensc 586
                        $('#row-add').hide()
587
                        $('#row-listing').hide()
588
                        $('#row-edit').show()
589
                    } else {
590
                        validatorEdit.resetForm()
591
                        if (jQuery.type(response['data']) == 'string') {
592
                            $.fn.showError(response['data'])
593
                        } else {
594
                            $.each(response['data'], function (fieldname, errors) {
595
                                $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors)
596
                            })
597
                        }
598
                    }
599
                })
600
                .fail(function (jqXHR, textStatus, errorThrown) {
601
                    $.fn.showError(textStatus)
602
                })
603
                .always(function () {
604
                    NProgress.done()
605
                })
606
        })
1 www 607
 
17178 stevensc 608
        // Evento de botón de eliminar
609
        $('body').on('click', 'button.btn-delete', function (e) {
610
            e.preventDefault()
611
            var action = $(this).data('href')
612
 
613
            swal
614
                .fire({
615
                    title: 'LABEL_ARE_YOU_SURE',
616
                    icon: 'question',
617
                    cancelButtonText: 'LABEL_NO',
618
                    showCancelButton: true,
619
                    confirmButtonText: 'LABEL_YES'
620
                })
621
                .then((result) => {
622
                    if (result.isConfirmed) {
623
                        NProgress.start()
624
                        $.ajax({
625
                            dataType: 'json',
626
                            accept: 'application/json',
627
                            method: 'post',
628
                            url: action
629
                        })
630
                            .done(function (response) {
631
                                if (response['success']) {
632
                                    $.fn.showSuccess(response['data'])
633
                                    gridTable.api().ajax.reload(null, false)
634
                                } else {
635
                                    $.fn.showError(response['data'])
636
                                }
637
                            })
638
                            .fail(function (jqXHR, textStatus, errorThrown) {
639
                                $.fn.showError(textStatus)
640
                            })
641
                            .always(function () {
642
                                NProgress.done()
643
                            })
644
                    }
645
                })
646
        })
647
 
648
        // Evento de botón de cancelar
649
        $('body').on('click', 'button.btn-cancel', function (e) {
650
            e.preventDefault()
651
            $('#row-add').hide()
652
            $('#row-edit').hide()
653
            $('#row-listing').show()
654
        })
655
 
656
        // Evento de botón de refrescar
657
        $('body').on('click', 'button.btn-refresh', function (e) {
658
            e.preventDefault()
659
            gridTable.api().ajax.reload(null, false)
660
        })
661
 
662
        // Evento de botón de vista de usuarios
663
        $('body').on('click', 'button.btn-view-total-users', function (e) {
664
            e.preventDefault()
665
 
666
            var href = $(this).data('href')
667
            NProgress.start()
17093 stevensc 668
            $.ajax({
17178 stevensc 669
            dataType: 'json',
670
            accept: 'application/json',
671
            method: 'get',
672
            url: href
673
            })
674
            .done(function (response) {
17093 stevensc 675
                if (response['success']) {
17178 stevensc 676
                $('#table-users-capsule').val(response['data']['capsule'])
17093 stevensc 677
 
17178 stevensc 678
                $('#gridTableUsers tbody').empty()
1 www 679
 
17178 stevensc 680
                $.each(response['data']['items'], function (index, item) {
681
                    var s = '<tr>'
682
                    s = s + '<td>' + item['first_name'] + '</td>'
683
                    s = s + '<td>' + item['last_name'] + '</td>'
684
                    s = s + '<td>' + item['email'] + '</td>'
685
 
686
                    s = s + '<td>'
687
                    if (item['details']['access']) {
688
                    s = s + 'LABEL_ACCESS : ' + item['details']['access'] + '<br>'
689
                    }
690
                    if (item['details']['paid_from']) {
691
                    s =
692
                        s + 'LABEL_PAID_FROM : ' + item['details']['paid_from'] + '<br>'
693
                    }
694
                    if (item['details']['paid_to']) {
695
                    s = s + 'LABEL_PAID_TO : ' + item['details']['paid_to'] + '<br>'
696
                    }
697
 
698
                    s = s + '</td>'
699
                    s = s + '</tr>'
700
 
701
                    $('#gridTableUsers tbody').append(s)
702
                })
703
 
704
                $('#notificationUsersModal').modal('show')
17093 stevensc 705
                } else {
17178 stevensc 706
                $.fn.showError(response['data'])
17093 stevensc 707
                }
17178 stevensc 708
            })
709
            .fail(function (jqXHR, textStatus, errorThrown) {
710
                $.fn.showError(textStatus)
711
            })
712
            .always(function () {
713
                NProgress.done()
714
            })
715
            return false
716
        })
16891 efrain 717
 
17178 stevensc 718
        // Evento de cambio de tipo de formulario de creación
719
        $('#form-add #type').change(function (e) {
720
            e.preventDefault()
17093 stevensc 721
 
17178 stevensc 722
            if ('s' == $(this).val()) {
723
            $('#form-add #form-row-cost').show()
724
            } else {
725
            $('#form-add #cost').val(0)
726
            $('#form-add #form-row-cost').hide()
727
            }
728
        })
17093 stevensc 729
 
17178 stevensc 730
        // Evento de cambio de tipo de formulario de edición
731
        $('#form-edit #type').change(function (e) {
732
            e.preventDefault()
17093 stevensc 733
 
17178 stevensc 734
            if ('s' == $(this).val()) {
735
            $('#form-edit #form-row-cost').show()
736
            } else {
737
            $('#form-edit #cost').val(0)
738
            $('#form-edit #form-row-cost').hide()
739
            }
740
        })
5646 nelberth 741
 
17178 stevensc 742
        // Formato de número de formulario de creación
743
        $('#form-add #cost').inputNumberFormat({ decimal: 2 })
16891 efrain 744
 
17178 stevensc 745
        // Formato de número de formulario de edición
746
        $('#form-edit #cost').inputNumberFormat({ decimal: 2 })
1 www 747
 
17178 stevensc 748
        // Formato de número de formulario de creación
749
        $('#form-add #order').inputNumberFormat({ decimal: 0 })
17113 stevensc 750
 
17178 stevensc 751
        // Formato de número de formulario de edición
752
        $('#form-edit #order').inputNumberFormat({ decimal: 0 })
17113 stevensc 753
 
17178 stevensc 754
        // Configuración del formulario de creación
755
        $('#form-add #file').fileinput({
756
            theme: 'fa',
757
            language: 'es',
758
            showUpload: false,
759
            dropZoneEnabled: false,
760
            maxFileCount: 1,
761
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
762
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
763
        })
1 www 764
 
17178 stevensc 765
        // Configuración del formulario de edición
766
        $('#form-edit #file').fileinput({
767
            theme: 'fa',
768
            language: 'es',
769
            showUpload: false,
770
            dropZoneEnabled: false,
771
            maxFileCount: 1,
772
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
773
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
774
        })
16891 efrain 775
 
17178 stevensc 776
        // Configuración del formulario de creación
777
        $('#form-add #marketplace').fileinput({
778
            theme: 'fa',
779
            language: 'es',
780
            showUpload: false,
781
            dropZoneEnabled: false,
782
            maxFileCount: 1,
783
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $marketplace_size',
784
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
785
        })
1 www 786
 
17178 stevensc 787
        // Configuración del formulario de edición
788
        $('#form-edit #marketplace').fileinput({
789
            theme: 'fa',
790
            language: 'es',
791
            showUpload: false,
792
            dropZoneEnabled: false,
793
            maxFileCount: 1,
794
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $marketplace_size',
795
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
796
        })
17113 stevensc 797
 
17178 stevensc 798
        // Evento de botón de seleccionar capsule
799
        $('#btn-select-capsule').click(function (e) {
800
            e.preventDefault()
17113 stevensc 801
 
17178 stevensc 802
            var id = $('#capsule_uuid option:selected').val()
17113 stevensc 803
 
17178 stevensc 804
            if (!id) return false
17113 stevensc 805
 
17178 stevensc 806
            var name = $('#capsule_uuid option:selected').text()
807
            var key = '#tr_capsule_id_' + id
808
            var element = $(key)
17113 stevensc 809
 
17178 stevensc 810
            if (element.length > 0) return false
17113 stevensc 811
 
17178 stevensc 812
            if (name.length > 50) name = name.substr(0, 50) + '...'
17113 stevensc 813
 
17178 stevensc 814
            let data = { id, name }
17113 stevensc 815
 
17178 stevensc 816
            $('#table-capsules tbody').append($('#trCapsuleTemplate').render(data))
17119 stevensc 817
 
17178 stevensc 818
            return false
819
        })
820
 
821
        // Configuración del formulario de creación
17121 stevensc 822
        $('#capsule_uuid').select2({
17119 stevensc 823
            theme: 'bootstrap-5',
17178 stevensc 824
            width: '100%'
825
        })
826
 
827
        // Configuración del editor de CKEditor para el formulario de creación
8290 stevensc 828
        CKEDITOR.replace('description_add', {
17178 stevensc 829
            toolbar: [
830
                { name: 'editing', items: ['Scayt'] },
831
                { name: 'links', items: ['Link', 'Unlink'] },
832
                {
833
                    name: 'paragraph',
834
                    items: [
835
                        'NumberedList',
836
                        'BulletedList',
837
                        '-',
838
                        'Outdent',
839
                        'Indent',
840
                        'Blockquote'
841
                    ]
842
                },
843
                {
844
                    name: 'basicstyles',
845
                    items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
846
                },
847
                '/',
848
                {
849
                    name: 'insert',
850
                    items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
851
                },
852
                { name: 'styles', items: ['Styles', 'Format'] },
853
                { name: 'tools', items: ['Maximize'] }
854
            ],
855
            removePlugins: 'elementspath,Anchor',
856
            heigth: 100
857
        })
17113 stevensc 858
 
17178 stevensc 859
        // Configuración del editor de CKEditor para el formulario de edición
8290 stevensc 860
        CKEDITOR.replace('description_edit', {
17178 stevensc 861
            toolbar: [
862
                { name: 'editing', items: ['Scayt'] },
863
                { name: 'links', items: ['Link', 'Unlink'] },
864
                {
865
                    name: 'paragraph',
866
                    items: [
867
                        'NumberedList',
868
                        'BulletedList',
869
                        '-',
870
                        'Outdent',
871
                        'Indent',
872
                        'Blockquote'
873
                    ]
874
                },
875
                {
876
                    name: 'basicstyles',
877
                    items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
878
                },
879
                '/',
880
                {
881
                    name: 'insert',
882
                    items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
883
                },
884
                { name: 'styles', items: ['Styles', 'Format'] },
885
                { name: 'tools', items: ['Maximize'] }
886
            ],
887
            removePlugins: 'elementspath,Anchor',
888
            heigth: 100
889
        })
890
    })
1 www 891
JS;
892
$this->inlineScript()->captureEnd();
893
?>
894
 
16891 efrain 895
<div class="container">
896
	<div class="card" id="row-listing">
897
	 	<div class="card-header">
898
	 		<h6 class="card-title">LABEL_TOPICS</h6>
899
	 	</div>
17178 stevensc 900
 
16891 efrain 901
	 	<div class="card-body">
17178 stevensc 902
	 	    <div class="row">
16891 efrain 903
	 	         <div class="col-12 mt-3">
17178 stevensc 904
                    <table id="gridTable" class="table   table-bordered">
905
                        <thead>
906
                            <tr>
907
                                <th>LABEL_NAME</th>
908
                                <th>LABEL_DETAILS</th>
909
                                <th>LABEL_IMAGES</th>
910
                                <th>LABEL_ACTIONS</th>
911
                            </tr>
912
                        </thead>
913
                        <tbody>
914
                        </tbody>
915
                    </table>
16891 efrain 916
	 	         </div>
17178 stevensc 917
	 	    </div>
16891 efrain 918
	 	</div>
17178 stevensc 919
 
16891 efrain 920
	 	<div class="card-footer text-right">
16992 efrain 921
			<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-sync"></i> LABEL_REFRESH </button>
16891 efrain 922
			<?php if ($allowAdd) : ?>
923
			<button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
924
			<?php endif; ?>
925
	 	</div>
14934 stevensc 926
	</div>
16891 efrain 927
 
928
	<div class="card" id="row-add" style="display:none">
929
	 	<div class="card-header">
930
	 		<h6 class="card-title">LABEL_ADD_TOPIC</h6>
931
	 	</div>
17178 stevensc 932
 
16891 efrain 933
	 	<?php
14934 stevensc 934
		$form = $this->formAdd;
935
		$form->setAttributes([
936
			'method'  => 'post',
937
			'action'  => $routeAdd,
16905 efrain 938
			'name'    => 'form-add',
939
			'id'      => 'form-add',
14934 stevensc 940
		]);
5678 nelberth 941
 
14934 stevensc 942
		$form->prepare();
943
		echo $this->form()->openTag($form);
944
		?>
17178 stevensc 945
            <div class="card-body">
946
                <div class="row">
947
                    <div class="col-12 mt-3">
948
                        <?php
949
                        $element = $form->get('name');
950
 
951
                        $element->setAttributes(['class' => 'form-control']);
952
                        $element->setOptions(['label' => 'LABEL_NAME']);
953
                        echo $this->formLabel($element);
954
                        echo $this->formText($element);
955
                        ?>
956
                    </div>
957
                </div>
17093 stevensc 958
 
17178 stevensc 959
                <div class="row">
960
                    <div class="col-12 mt-3">
961
                        <?php
962
                        $element = $form->get('description');
963
                        $element->setAttributes(['id' => 'description_add', 'class' => 'form-control', 'rows' => '2', 'class' => 'form-control']);
964
                        $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
965
                        echo $this->formLabel($element);
966
                        echo $this->formTextArea($element);
967
                        ?>
968
                    </div>
17113 stevensc 969
                </div>
17178 stevensc 970
 
971
                <div class="row">
972
                    <div class="col-12 mt-3">
973
                        <?php
974
                        $element = $form->get('order');
975
                        $element->setAttributes(['class' => 'form-control']);
976
                        $element->setOptions(['label' => 'LABEL_ORDER']);
977
                        echo $this->formLabel($element);
978
                        echo $this->formText($element);
979
                        ?>
980
                    </div>
17122 stevensc 981
                </div>
17178 stevensc 982
 
983
                <div class="row">
984
                    <div class="col-12 mt-3">
985
                        <?php
986
                        $element = $form->get('status');
987
                        $element->setAttributes(['class' => 'form-control']);
988
                        $element->setOptions(['label' => 'LABEL_STATUS']);
989
                        echo $this->formLabel($element);
990
                        echo $this->formSelect($element);
991
                        ?>
992
                    </div>
993
                </div>
994
 
995
                <div class="row">
996
                    <div class="col-12 mt-3">
997
                        <?php
998
                        $element = $form->get('privacy');
999
                        $element->setAttributes(['class' => 'form-control']);
1000
                        $element->setOptions(['label' => 'LABEL_PRIVACY']);
1001
                        echo $this->formLabel($element);
1002
                        echo $this->formSelect($element);
1003
                        ?>
1004
                    </div>
1005
                </div>
1006
 
1007
                <div class="row">
1008
                    <div class="col-12 mt-3">
1009
                        <?php
1010
                        $element = $form->get('type');
1011
                        $element->setAttributes(['class' => 'form-control']);
1012
                        $element->setOptions(['label' => 'LABEL_TYPE']);
1013
                        echo $this->formLabel($element);
1014
                        echo $this->formSelect($element);
1015
                        ?>
1016
                    </div>
1017
                </div>
1018
 
1019
                <div class="row"  id="form-row-cost">
1020
                    <div class="col-12 mt-3">
1021
                        <?php
1022
                        $element = $form->get('cost');
1023
                        $element->setAttributes(['class' => 'form-control']);
1024
                        $element->setOptions(['label' => 'LABEL_COST']);
1025
                        echo $this->formLabel($element);
1026
                        echo $this->formText($element);
1027
                        ?>
1028
                    </div>
1029
                </div>
1030
 
1031
                <div class="row">
1032
                    <div class="col-12 mt-3">
1033
                        <?php
1034
                        $element = $form->get('file');
1035
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
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">
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>