Proyectos de Subversion LeadersLinked - Backend

Rev

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