Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17195 | Rev 17197 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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