Proyectos de Subversion LeadersLinked - Backend

Rev

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

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