Proyectos de Subversion LeadersLinked - Backend

Rev

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