Proyectos de Subversion LeadersLinked - Backend

Rev

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