Proyectos de Subversion LeadersLinked - Backend

Rev

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