Proyectos de Subversion LeadersLinked - Backend

Rev

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