Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16932 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15127 stevensc 1
<?php
2
 
1 www 3
use LeadersLinked\Model\CompanyService;
4
use LeadersLinked\Model\Company;
5
 
6
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
7
$currentUser    = $this->currentUserHelper();
8
 
9
$roleName = $currentUser->getUserTypeId();
10
 
11
 
12
 
13
$routeDatatable = $this->url('companies');
14
$routeDashboard = $this->url('dashboard');
15
 
16
$allowEdit      = $acl->isAllowed($roleName, 'companies/edit') ? 1 : 0;
17
$allowServices  = $acl->isAllowed($roleName, 'companies/services') ? 1 : 0;
18
$allowRoles     = $acl->isAllowed($roleName, 'companies/roles') ? 1 : 0;
19
 
20
 
16822 efrain 21
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));
22
$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));
1 www 23
 
16822 efrain 24
$this->inlineScript()->appendFile($this->basePath('assets/vendors/ckeditor/ckeditor.js'));
1 www 25
 
26
 
27
 
16929 efrain 28
 
29
 
30
 
16822 efrain 31
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
32
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));
1 www 33
 
16822 efrain 34
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));
35
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));
36
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/dataTables.responsive.min.js'));
37
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.min.js'));
1 www 38
 
39
 
40
 
16822 efrain 41
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
42
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
1 www 43
 
44
 
45
 
46
 
47
 
16822 efrain 48
//$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css'));
1 www 49
 
16822 efrain 50
//$this->inlineScript()->appendFile($this->basePath('assets/vendors/moment/moment-with-locales.js'));
51
//$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js'));
15620 stevensc 52
 
16822 efrain 53
$this->inlineScript()->appendFile($this->basePath('assets/vendors/moment/moment-with-locales.js'));
15620 stevensc 54
 
16822 efrain 55
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datepicker/js/bootstrap-datepicker.js'));
56
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datepicker/js/bootstrap-datepicker.es.js'));
1 www 57
 
16822 efrain 58
 
59
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-datepicker/css/bootstrap-datepicker.css'));
60
 
61
 
62
 
1 www 63
$status_active = CompanyService::ACTIVE;
64
$status_inactive = CompanyService::INACTIVE;
65
$status_cancelled = CompanyService::CANCELLED;
66
$status_suspended = CompanyService::SUSPENDED;
67
 
68
 
69
$this->inlineScript()->captureStart();
70
echo <<<JS
71
    jQuery( document ).ready(function( $ ) {
72
 
73
        $.validator.setDefaults({
74
            debug: true,
75
            highlight: function(element) {
76
                $(element).addClass('is-invalid');
77
            },
78
            unhighlight: function(element) {
79
                $(element).removeClass('is-invalid');
80
            },
81
            errorElement: 'span',
82
            errorClass: 'error invalid-feedback',
83
            errorPlacement: function(error, element) {
16822 efrain 84
                if(element.parent('.toggle').length) {
1 www 85
                    error.insertAfter(element.parent().parent());
86
                } else {
87
                    error.insertAfter(element.parent());
88
                }
89
            }
90
        });
91
 
92
 
16929 efrain 93
 
1 www 94
 
95
        var allowEdit = $allowEdit;
96
        var allowServices = $allowServices;
97
        var allowRoles = $allowRoles;
98
 
99
        var gridTable = $('#gridTable').dataTable( {
100
            'processing': true,
101
            'serverSide': true,
102
            'searching': true,
103
            'order': [[ 0, 'asc' ]],
104
            'ordering':  true,
105
            'ordenable' : true,
106
            'responsive': true,
107
            'select' : false,
108
        	'paging': true,
109
            'pagingType': 'simple_numbers',
110
    		'ajax': {
111
    			'url' : '$routeDatatable',
112
    			'type' : 'get',
113
                'beforeSend': function (request) {
114
                  NProgress.start();
115
                },
116
                'data' : function(data) {
117
                    data.status = $('#form-filter #status').val();
15337 efrain 118
                    data.network_id = $('#form-filter #network_id').val();
1 www 119
                } ,
120
                'dataFilter': function(response) {
121
                    var response = jQuery.parseJSON( response );
122
 
123
                    var json                = {};
124
                    json.recordsTotal       = 0;
125
                    json.recordsFiltered    = 0;
126
                    json.data               = [];
127
 
128
 
129
                    if(response.success) {
130
                        json.recordsTotal       = response.data.total;
131
                        json.recordsFiltered    = response.data.total;
132
                        json.data               = response.data.items;
133
                    } else {
134
                        $.fn.showError(response.data)
135
                    }
136
 
137
                    return JSON.stringify( json );
138
                }
139
    		},
140
            'language' : {
141
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
142
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
143
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
144
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
145
                'sInfo':           'LABEL_DATATABLE_SINFO',
146
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
147
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
148
                'sInfoPostFix':    '',
149
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
150
                'sUrl':            '',
151
                'sInfoThousands':  ',',
152
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
153
                'oPaginate': {
154
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
155
                    'sLast':     'LABEL_DATATABLE_SLAST',
156
                    'sNext':     'LABEL_DATATABLE_SNEXT',
157
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
158
                },
159
                'oAria': {
160
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
161
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
162
                },
163
            },
164
            'drawCallback': function( settings ) {
165
                NProgress.done();
16822 efrain 166
 
1 www 167
            },
168
            'aoColumns': [
169
                { 'mDataProp': 'name' },
170
                { 'mDataProp': 'details' },
171
                { 'mDataProp': 'security' },
172
                { 'mDataProp': 'actions' },
173
    	    ],
174
            'columnDefs': [
175
                {
176
                    'targets': 0,
177
                    'className' : 'text-vertical-middle',
178
                    'orderable': false,
179
                    'render' : function ( data, type, row ) {
15337 efrain 180
                        var s = row['name'] + '<br>' + row['network'];
181
 
182
 
1 www 183
                        if(row['link_profile'] ) {
16932 efrain 184
                            s = s + '<br><button class="btn btn-light btn-profile" data-href="' + row['link_profile']+ '" data-toggle="tooltip" title="LABEL_PROFILE"><i class="fa fa-external-link-alt"></i></button>&nbsp;<br>';
1 www 185
                        }
186
                        return s;
187
                    }
188
                },
189
 
190
                {
191
                    'targets': -3,
192
                    'orderable': false,
193
                    'render' : function ( data, type, row ) {
194
                        var s = 'LABEL_STATUS : ' + data['status']  + '<br>';
195
                        s = s +  'LABEL_INTERNAL : ' + data['internal']  + '<br>';
196
                        if(allowServices) {
16932 efrain 197
                            s = s + 'LABEL_SERVICES:  <button class="btn btn-light btn-services" data-href="' + row['actions']['link_services']+ '" data-toggle="tooltip" title="LABEL_SERVICES"><i class="fa fa-external-link-alt"></i></button>&nbsp;<br>';
1 www 198
                        } else {
199
                            s = s + 'LABEL_SERVICES: <br>';
200
                        }
201
 
202
                        if(data['services']) {
203
 
204
                            s = s + '<ul>';
205
                            $.each(data['services'], function(index, service) {
206
                                s = s + '<li>' + service + '</li>';
207
                            });
208
                            s = s + '</ul>';
209
                        }
210
 
211
                        if(allowRoles) {
16932 efrain 212
                            s = s + 'LABEL_ROLES: <button class="btn btn-light btn-roles" data-href="' + row['actions']['link_roles']+ '" data-toggle="tooltip" title="LABEL_ROLES"><i class="fa fa-external-link-alt"></i></button>&nbsp;<br>';
1 www 213
                        } else {
214
                            s = s + 'LABEL_ROLES: <br>';
215
                        }
216
 
217
 
218
                        if(data['roles']) {
219
 
220
                            s = s + '<ul>';
221
                            $.each(data['roles'], function(index, role) {
222
                                s = s + '<li>' + role + '</li>';
223
                            });
224
                            s = s + '</ul>';
225
                        } else {
226
                            s = s + 'LABEL_ROLES: <br>';
227
                        }
228
 
229
                        return s;
230
                    }
231
                },
232
                {
233
                    'targets': -2,
234
                    'orderable': false,
235
                    'render' : function ( data, type, row ) {
236
                        var s = 'LABEL_CREATED_BY<br>';
237
                        s = s + '<ul>';
238
                        s = s + '<li> LABEL_FIRST_NAME : ' + data['first_name']  + ' </li>';
239
                        s = s + '<li>LABEL_LAST_NAME : ' + data['last_name']  + ' </li>';
240
                        s = s + '<li>LABEL_EMAIL : ' + data['email']  + ' </li>';
241
                        s = s + '</ul>';
242
 
243
 
244
                        return s;
245
                    }
246
                },
247
                {
248
                    'targets': -1,
249
                    'orderable': false,
250
                    'render' : function ( data, type, row ) {
251
                        s = '';
252
                        if(allowEdit) {
16906 efrain 253
                            s = s + '<button class="btn btn-sm btn-primary 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 254
                        }
255
                        return s;
256
                    }
257
                }
258
              ],
259
        });
260
 
261
 
262
 
263
 
264
        $('body').on('click', 'button.btn-refresh', function(e) {
265
            e.preventDefault();
266
            gridTable.api().ajax.reload(null, false);
267
        });
268
 
269
 
270
        $('body').on('click', 'button.btn-profile', function(e) {
271
            e.preventDefault();
272
 
273
            var href = $(this).data('href');
274
            window.open(href, '_blank');
275
 
276
        });
277
 
278
 
279
 
280
        $('body').on('click', 'button.btn-services', function(e) {
281
            e.preventDefault();
282
 
283
            var href = $(this).data('href');
284
            $('#form-services').attr('action', href);
285
 
286
            NProgress.start();
287
            $.ajax({
288
                'dataType'  : 'json',
289
                'accept'    : 'application/json',
290
                'method'    : 'get',
291
                            'url'       :  href,
292
            }).done(function(response) {
293
                if(response['success']) {
294
 
295
                    $('#table-services tbody').empty();
296
 
297
                    $.each(response['data'], function(index, service) {
298
 
299
 
300
                        var s = '<tr>';
301
                        s = s + '<td>' + service['name'] + '</td>';
302
                        s = s + '<td><select id="status' + service['id'] + '" name="status' + service['id'] + '" class="form-control">';
303
                        selected = service['status'] == '$status_inactive' ? 'selected' : '';
304
                        s = s + '<option value="$status_inactive" ' + selected + '>LABEL_INACTIVE</option>';
305
 
306
                        selected = service['status'] == '$status_active' ? 'selected' : '';
307
                        s = s + '<option value="$status_active" ' + selected + '>LABEL_ACTIVE</option>';
308
 
309
                        selected = service['status'] == '$status_cancelled' ? 'selected' : '';
310
                        s = s + '<option value="$status_cancelled" ' + selected + '>LABEL_CANCELLED</option>';
311
 
312
                        selected = service['status'] == '$status_suspended' ? 'selected' : '';
313
                        s = s + '<option value="$status_suspended" ' + selected + '>LABEL_SUSPENDED</option>';
314
                        s = s + '</select>';
315
                        s = s + '</td>';
15136 stevensc 316
                        s = s + '<td><input type="text" id="paid_from' + service['id'] + '" name="paid_from' + service['id'] + '" class="form-control input-paid-from" value="' + service['paid_from']+ '"></td>';
1 www 317
                        s = s + '<td><input type="text" id="paid_to' + service['id'] + '" name="paid_to' + service['id'] + '" class="form-control input-paid-to" value="' + service['paid_to']+ '"></td>';
318
                        s = s + '</tr>';
319
 
320
                        $('#table-services tbody').append(s);
321
 
322
                    });
323
 
15137 stevensc 324
                    $('input.input-paid-from').datepicker({
1 www 325
                        'language' : 'es',
326
                        'format' : 'dd/mm/yyyy',
327
                    });
328
 
15137 stevensc 329
                    $('input.input-paid-to').datepicker({
1 www 330
                        'language' : 'es',
331
                        'format' : 'dd/mm/yyyy',
332
                    });
333
 
334
 
335
                    $('#modalServices').modal('show');
336
 
337
                } else {
338
                    $.fn.showError(response['data']);
339
                }
340
            }).fail(function( jqXHR, textStatus, errorThrown) {
341
                $.fn.showError(textStatus);
342
            }).always(function() {
343
                NProgress.done();
344
            });
345
 
346
        });
16822 efrain 347
 
348
    $('body').on('click', 'button.btn-delete', function(e) {
349
        e.preventDefault();
350
        var action = $(this).data('href');
351
 
352
 
353
          swal.fire({
354
            title: 'LABEL_ARE_YOU_SURE',
355
            icon: 'question',
356
            cancelButtonText: 'LABEL_NO',
357
            showCancelButton: true,
358
            confirmButtonText: 'LABEL_YES'
359
          }).then((result) => {
360
            if (result.isConfirmed) {
361
 
362
                    NProgress.start();
363
                    $.ajax({
364
                        'dataType'  : 'json',
365
                        'accept'    : 'application/json',
366
                        'method'    : 'post',
367
                        'url'       :  action,
368
                    }).done(function(response) {
369
                        if(response['success']) {
370
                            $.fn.showSuccess(response['data']);
371
                            gridTable.api().ajax.reload(null, false);
372
                        } else {
373
                            $.fn.showError(response['data']);
374
                        }
375
                    }).fail(function( jqXHR, textStatus, errorThrown) {
376
                        $.fn.showError(textStatus);
377
                    }).always(function() {
378
                        NProgress.done();
379
                    });
380
            }
381
       });
382
 
383
    });
1 www 384
 
385
        $('#form-services').submit(function (e) {
386
            e.preventDefault();
387
            NProgress.start();
388
            $.ajax({
389
                'dataType'  : 'json',
390
                'accept'    : 'application/json',
391
                'method'    : 'post',
392
                'url'       : $('#form-services').attr('action'),
393
                'data'      : $('#form-services').serialize(),
394
            }).done(function(response) {
395
                if(response['success']) {
396
 
397
                    $.fn.showSuccess(response['data']);
398
                    $('#modalServices').modal('hide');
399
                    gridTable.api().ajax.reload(null, false);
400
 
401
                } else {
402
                    $.fn.showError(response['data']);
403
                }
404
            }).fail(function( jqXHR, textStatus, errorThrown) {
405
                $.fn.showError(textStatus);
406
            }).always(function() {
407
                NProgress.done();
408
            });
409
            return false;
410
 
411
        });
412
 
413
        $('body').on('click', 'button.btn-roles', function(e) {
414
            e.preventDefault();
415
 
416
            var href = $(this).data('href');
417
            $('#form-roles').attr('action', href);
418
 
419
            NProgress.start();
420
            $.ajax({
421
                'dataType'  : 'json',
422
                'accept'    : 'application/json',
423
                'method'    : 'get',
424
                            'url'       :  href,
425
            }).done(function(response) {
426
                if(response['success']) {
427
 
428
                    $('#table-roles tbody').empty();
429
 
430
                    $.each(response['data'], function(index, role) {
431
 
432
                        var checked = role['checked'] ? ' checked="checked" ' : '';
433
                        var s = '<tr>';
434
                        s = s + '<td>' + role['name'] + '</td>';
435
 
16841 efrain 436
                        s = s + '<td><div class="form-check ">' +
16822 efrain 437
                            '<input type="checkbox" class="form-check-input" id="checked' + role['id'] + '" name="checked' + role['id'] + '" ' + checked + '>' +
438
						    '<label class="form-check-label" for="exampleCheck1">&nbsp;</label>'+
439
					   '</div></td>';
1 www 440
                        s = s + '</tr>';
441
 
442
                        $('#table-roles tbody').append(s);
443
 
444
                    });
445
 
446
 
447
 
448
                    $('#modalRoles').modal('show');
449
 
450
                } else {
451
                    $.fn.showError(response['data']);
452
                }
453
            }).fail(function( jqXHR, textStatus, errorThrown) {
454
                $.fn.showError(textStatus);
455
            }).always(function() {
456
                NProgress.done();
457
            });
458
 
459
        });
460
 
461
        $('#form-roles').submit(function (e) {
462
            e.preventDefault();
463
            NProgress.start();
464
            $.ajax({
465
                'dataType'  : 'json',
466
                'accept'    : 'application/json',
467
                'method'    : 'post',
468
                'url'       : $('#form-roles').attr('action'),
469
                'data'      : $('#form-roles').serialize(),
470
            }).done(function(response) {
471
                if(response['success']) {
472
 
473
                    $.fn.showSuccess(response['data']);
474
                    $('#modalRoles').modal('hide');
475
                     gridTable.api().ajax.reload(null, false);
476
 
477
                } else {
478
                    $.fn.showError(response['data']);
479
                }
480
            }).fail(function( jqXHR, textStatus, errorThrown) {
481
                $.fn.showError(textStatus);
482
            }).always(function() {
483
                NProgress.done();
484
            });
485
            return false;
486
 
487
        });
488
 
489
      $('body').on('click', 'button.btn-edit', function(e) {
490
            e.preventDefault();
491
 
492
            var href = $(this).data('href');
493
            $('#form-edit').attr('action', href);
494
 
495
            NProgress.start();
496
            $.ajax({
497
                'dataType'  : 'json',
498
                'accept'    : 'application/json',
499
                'method'    : 'get',
500
                            'url'       :  href,
501
            }).done(function(response) {
502
                if(response['success']) {
503
 
504
                    $('#form-edit #status').val(response['data']['status']);
505
                    $('#form-edit #user_uuid').empty();
506
 
507
                    $.each(response['data']['users'], function(index, user) {
508
 
509
 
510
                        var s = '<option value="' + user['uuid'] + '">' + user['name'] + '</option>';
511
                        $('#form-edit #user_uuid').append(s);
512
 
513
                    });
514
 
515
                    $('#form-edit #user_uuid').val(response['data']['creator']);
516
 
517
                    $('#modalEdit').modal('show');
518
 
519
                } else {
520
                    $.fn.showError(response['data']);
521
                }
522
            }).fail(function( jqXHR, textStatus, errorThrown) {
523
                $.fn.showError(textStatus);
524
            }).always(function() {
525
                NProgress.done();
526
            });
527
 
528
        });
529
 
530
        $('#form-edit').submit(function (e) {
531
            e.preventDefault();
532
            NProgress.start();
533
            $.ajax({
534
                'dataType'  : 'json',
535
                'accept'    : 'application/json',
536
                'method'    : 'post',
537
                'url'       : $('#form-edit').attr('action'),
538
                'data'      : $('#form-edit').serialize(),
539
            }).done(function(response) {
540
                if(response['success']) {
541
 
542
                    $.fn.showSuccess(response['data']);
543
                    $('#modalEdit').modal('hide');
544
                     gridTable.api().ajax.reload(null, false);
545
 
546
                } else {
547
                    $.fn.showError(response['data']);
548
                }
549
            }).fail(function( jqXHR, textStatus, errorThrown) {
550
                $.fn.showError(textStatus);
551
            }).always(function() {
552
                NProgress.done();
553
            });
554
            return false;
555
 
556
        });
557
 
558
 
559
        $('body').on('click', 'button.btn-cancel', function(e) {
560
            e.preventDefault();
561
            $('#modalServices').modal('hide');
562
            $('#modalRoles').modal('hide');
563
            $('#modalEdit').modal('hide');
564
 
565
 
566
        });
567
 
15337 efrain 568
        $('#form-filter #status, #form-filter #network_id').change(function(e) {
1 www 569
            e.preventDefault();
570
 
571
             gridTable.api().ajax.reload(null, false);
572
        });
573
 
574
 
575
 
576
 
577
    });
578
JS;
579
$this->inlineScript()->captureEnd();
580
?>
581
 
16822 efrain 582
<div class="container">
583
	<div class="card">
584
 
585
		<div class="card-body">
586
			<h6 class="card-title">LABEL_COMPANIES</h6>
587
			<div class="row">
16841 efrain 588
				<div class="col-12  mt-3">
16822 efrain 589
                    <form name="form-filter" id="form-filter">
590
                        <table class="table">
15127 stevensc 591
                            <thead>
592
                                <tr>
16822 efrain 593
                                    <th>LABEL_STATUS</th>
594
                                    <th>LABEL_PRIVATE_NETWORKS</th>
1 www 595
                                </tr>
15127 stevensc 596
                            </thead>
597
                            <tbody>
16822 efrain 598
                                <tr>
599
                                    <td>
600
                                        <select id="status" name="status" class="form-control">
601
                                            <option value="">LABEL_ALL</option>
602
                                            <option value="<?php echo Company::STATUS_PENDING ?>">LABEL_PENDING</option>
603
                                            <option value="<?php echo Company::STATUS_ACTIVE ?>">LABEL_ACTIVE</option>
604
                                            <option value="<?php echo Company::STATUS_INACTIVE ?>">LABEL_INACTIVE</option>
605
                                            <option value="<?php echo Company::STATUS_DELETED ?>">LABEL_DELETED</option>
606
                                            <option value="<?php echo Company::STATUS_REJECTED ?>">LABEL_REJECTED</option>
607
                                        </select>
608
                                    </td>
609
                                    <td>
610
                                        <select id="network_id" name="network_id" class="form-control">
611
                                            <option value="">LABEL_ALL</option>
612
                                            <?php foreach ($networks as $value => $label) : ?>
613
                                                <option value="<?php echo $value ?>"><?php echo $label ?></option>
614
                                            <?php endforeach; ?>
615
                                        </select>
616
                                    </td>
617
                                </tr>
15127 stevensc 618
                            </tbody>
16822 efrain 619
 
15127 stevensc 620
                        </table>
16822 efrain 621
                    </form>
15127 stevensc 622
                </div>
16822 efrain 623
           	</div>
624
            <div class="row">
16841 efrain 625
                <div class="col-12  mt-3">
16822 efrain 626
 
627
         			<table id="gridTable" class="table table-bordered">
628
                		<thead>
629
                                    <tr>
630
                                        <th style="width: 30%">LABEL_NAME</th>
631
                                        <th style="width: 30%">LABEL_DETAILS</th>
632
                                        <th style="width: 30%">LABEL_SECURITY</th>
633
                                        <th style="width: 10%">LABEL_ACTIONS</th>
634
                                    </tr>
635
                                </thead>
636
                                <tbody>
637
                                </tbody>
638
              			</table>
639
                </div>
640
            </div>
1 www 641
 
16822 efrain 642
   	 	</div>
643
   	 	<div class="card-footer text-right">
16992 efrain 644
   	 		<button type="button" class="btn btn-sm btn-info btn-refresh"><i class="fa fa-sync"></i> LABEL_REFRESH </button>
16822 efrain 645
   	 	</div>
646
	</div>
647
</div>
648
 
1 www 649
<!-- The Modal -->
650
<div class="modal" id="modalServices">
15127 stevensc 651
    <div class="modal-dialog  modal-xl">
652
        <div class="modal-content">
1 www 653
 
654
            <!-- Modal Header -->
15127 stevensc 655
            <div class="modal-header">
16845 efrain 656
                <h6 class="modal-title">LABEL_SERVICES</h6>
16822 efrain 657
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 658
            </div>
1 www 659
 
660
            <!-- Modal body -->
16822 efrain 661
            <form name="form-services" id="form-services">
15127 stevensc 662
            <div class="modal-body">
16822 efrain 663
                <div class="row">
16841 efrain 664
                	<div class="col-12  mt-3">
16822 efrain 665
                    	<table id="table-services" class="table table-bordered">
666
                            <thead>
667
                                <tr>
668
                                    <th>LABEL_NAME</th>
669
                                    <th>LABEL_STATUS</th>
670
                                    <th>LABEL_PAID_FROM</th>
671
                                    <th>LABEL_PAID_TO</th>
672
                                </tr>
673
                            </thead>
674
                            <tbody>
675
                            </tbody>
676
                        </table>
677
                	</div>
678
                </div>
679
 
1 www 680
 
681
 
682
 
16822 efrain 683
 
684
 
15127 stevensc 685
            </div>
16891 efrain 686
            <div class="modal-footer text-right">
16822 efrain 687
           		 <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
688
           		<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
689
 
690
            </div>
691
            </form>
1 www 692
 
15127 stevensc 693
        </div>
694
    </div>
695
</div>
1 www 696
 
15127 stevensc 697
 
1 www 698
<!-- The Modal -->
699
<div class="modal" id="modalRoles">
15127 stevensc 700
    <div class="modal-dialog  modal-xl">
701
        <div class="modal-content">
1 www 702
 
703
            <!-- Modal Header -->
15127 stevensc 704
            <div class="modal-header">
16845 efrain 705
                <h6 class="modal-title">LABEL_ROLES</h6>
16822 efrain 706
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 707
            </div>
1 www 708
 
709
            <!-- Modal body -->
16822 efrain 710
            <form name="form-roles" id="form-roles">
15127 stevensc 711
            <div class="modal-body">
16822 efrain 712
                <div class="row">
16841 efrain 713
                	<div class="col-12  mt-3">
16822 efrain 714
                    	<table id="table-roles" class="table table-bordered">
715
                            <thead>
716
                                <tr>
717
                                    <th>LABEL_NAME</th>
718
                                    <th>LABEL_ACTIVE</th>
719
                                </tr>
720
                            </thead>
721
                            <tbody>
722
                            </tbody>
723
                        </table>
724
                	</div>
725
                </div>
726
 
1 www 727
 
728
 
729
 
16822 efrain 730
 
15127 stevensc 731
            </div>
16891 efrain 732
            <div class="modal-footer text-right">
16822 efrain 733
            	<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
734
       			<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
735
            </div>
736
            </form>
737
 
15127 stevensc 738
 
739
        </div>
740
    </div>
1 www 741
</div>
742
 
743
 
744
<!-- The Modal -->
745
<div class="modal" id="modalEdit">
15127 stevensc 746
    <div class="modal-dialog  modal-xl">
747
        <div class="modal-content">
1 www 748
 
749
            <!-- Modal Header -->
15127 stevensc 750
            <div class="modal-header">
16845 efrain 751
                <h6 class="modal-title">LABEL_EDIT</h6>
16822 efrain 752
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 753
            </div>
1 www 754
 
755
            <!-- Modal body -->
16822 efrain 756
            <form name="form-edit" id="form-edit">
15127 stevensc 757
            <div class="modal-body">
16822 efrain 758
 
1 www 759
 
16822 efrain 760
                    <div class="row">
16891 efrain 761
                    	<div class="col-12 mt-3">
15127 stevensc 762
                        <label for="status">LABEL_STATUS</label>
763
                        <select id="status" name="status" class="form-control">
764
                            <option value="<?php echo Company::STATUS_ACTIVE ?>">LABEL_ACTIVE</option>
765
                            <option value="<?php echo Company::STATUS_INACTIVE ?>">LABEL_INACTIVE</option>
766
                            <option value="<?php echo Company::STATUS_DELETED ?>">LABEL_DELETED</option>
767
                            <option value="<?php echo Company::STATUS_PENDING ?>">LABEL_PENDING</option>
768
                            <option value="<?php echo Company::STATUS_REJECTED ?>">LABEL_REJECTED</option>
769
                        </select>
16822 efrain 770
                        </div>
15127 stevensc 771
                    </div>
16822 efrain 772
                    <div class="row">
16891 efrain 773
                    	<div class="col-12 mt-3">
15127 stevensc 774
                        <label for="user_uuid">LABEL_CREATED_BY</label>
16821 efrain 775
                        <select id="user_uuid" name="user_uuid" class="form-control">
1 www 776
 
15127 stevensc 777
                        </select>
16822 efrain 778
 						</div>
15127 stevensc 779
                    </div>
1 www 780
 
15127 stevensc 781
 
16822 efrain 782
 
783
 
784
            </div>
785
              <div class="card-footer text-right">
15127 stevensc 786
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
787
                        <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
788
                    </div>
16822 efrain 789
            </form>
15127 stevensc 790
 
791
        </div>
792
    </div>
793
</div>