Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16992 | | 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>';
17342 stevensc 196
 
1 www 197
                        if(allowServices) {
16932 efrain 198
                            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 199
                        } else {
200
                            s = s + 'LABEL_SERVICES: <br>';
201
                        }
202
 
203
                        if(data['services']) {
204
                            s = s + '<ul>';
205
                            $.each(data['services'], function(index, service) {
206
                                s = s + '<li>' + service + '</li>';
207
                            });
208
                            s = s + '</ul>';
17342 stevensc 209
                        }
1 www 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
                            s = s + '<ul>';
220
                            $.each(data['roles'], function(index, role) {
221
                                s = s + '<li>' + role + '</li>';
222
                            });
223
                            s = s + '</ul>';
224
                        } else {
225
                            s = s + 'LABEL_ROLES: <br>';
226
                        }
227
 
228
                        return s;
229
                    }
230
                },
231
                {
232
                    'targets': -2,
233
                    'orderable': false,
234
                    'render' : function ( data, type, row ) {
235
                        var s = 'LABEL_CREATED_BY<br>';
236
                        s = s + '<ul>';
237
                        s = s + '<li> LABEL_FIRST_NAME : ' + data['first_name']  + ' </li>';
238
                        s = s + '<li>LABEL_LAST_NAME : ' + data['last_name']  + ' </li>';
239
                        s = s + '<li>LABEL_EMAIL : ' + data['email']  + ' </li>';
240
                        s = s + '</ul>';
241
 
242
 
243
                        return s;
244
                    }
245
                },
246
                {
247
                    'targets': -1,
248
                    'orderable': false,
249
                    'render' : function ( data, type, row ) {
250
                        s = '';
251
                        if(allowEdit) {
16906 efrain 252
                            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 253
                        }
254
                        return s;
255
                    }
256
                }
257
              ],
258
        });
259
 
260
 
261
 
262
 
263
        $('body').on('click', 'button.btn-refresh', function(e) {
264
            e.preventDefault();
265
            gridTable.api().ajax.reload(null, false);
266
        });
267
 
268
 
269
        $('body').on('click', 'button.btn-profile', function(e) {
270
            e.preventDefault();
271
 
272
            var href = $(this).data('href');
273
            window.open(href, '_blank');
274
 
275
        });
276
 
277
 
278
 
279
        $('body').on('click', 'button.btn-services', function(e) {
280
            e.preventDefault();
281
 
282
            var href = $(this).data('href');
283
            $('#form-services').attr('action', href);
284
 
285
            NProgress.start();
286
            $.ajax({
287
                'dataType'  : 'json',
288
                'accept'    : 'application/json',
289
                'method'    : 'get',
290
                            'url'       :  href,
291
            }).done(function(response) {
292
                if(response['success']) {
293
 
294
                    $('#table-services tbody').empty();
295
 
296
                    $.each(response['data'], function(index, service) {
297
 
298
 
299
                        var s = '<tr>';
300
                        s = s + '<td>' + service['name'] + '</td>';
301
                        s = s + '<td><select id="status' + service['id'] + '" name="status' + service['id'] + '" class="form-control">';
302
                        selected = service['status'] == '$status_inactive' ? 'selected' : '';
303
                        s = s + '<option value="$status_inactive" ' + selected + '>LABEL_INACTIVE</option>';
304
 
305
                        selected = service['status'] == '$status_active' ? 'selected' : '';
306
                        s = s + '<option value="$status_active" ' + selected + '>LABEL_ACTIVE</option>';
307
 
308
                        selected = service['status'] == '$status_cancelled' ? 'selected' : '';
309
                        s = s + '<option value="$status_cancelled" ' + selected + '>LABEL_CANCELLED</option>';
310
 
311
                        selected = service['status'] == '$status_suspended' ? 'selected' : '';
312
                        s = s + '<option value="$status_suspended" ' + selected + '>LABEL_SUSPENDED</option>';
313
                        s = s + '</select>';
314
                        s = s + '</td>';
15136 stevensc 315
                        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 316
                        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>';
317
                        s = s + '</tr>';
318
 
319
                        $('#table-services tbody').append(s);
320
 
321
                    });
322
 
15137 stevensc 323
                    $('input.input-paid-from').datepicker({
1 www 324
                        'language' : 'es',
325
                        'format' : 'dd/mm/yyyy',
326
                    });
327
 
15137 stevensc 328
                    $('input.input-paid-to').datepicker({
1 www 329
                        'language' : 'es',
330
                        'format' : 'dd/mm/yyyy',
331
                    });
332
 
333
 
334
                    $('#modalServices').modal('show');
335
 
336
                } else {
337
                    $.fn.showError(response['data']);
338
                }
339
            }).fail(function( jqXHR, textStatus, errorThrown) {
340
                $.fn.showError(textStatus);
341
            }).always(function() {
342
                NProgress.done();
343
            });
344
 
345
        });
16822 efrain 346
 
347
    $('body').on('click', 'button.btn-delete', function(e) {
348
        e.preventDefault();
349
        var action = $(this).data('href');
350
 
351
 
352
          swal.fire({
353
            title: 'LABEL_ARE_YOU_SURE',
354
            icon: 'question',
355
            cancelButtonText: 'LABEL_NO',
356
            showCancelButton: true,
357
            confirmButtonText: 'LABEL_YES'
358
          }).then((result) => {
359
            if (result.isConfirmed) {
360
 
361
                    NProgress.start();
362
                    $.ajax({
363
                        'dataType'  : 'json',
364
                        'accept'    : 'application/json',
365
                        'method'    : 'post',
366
                        'url'       :  action,
367
                    }).done(function(response) {
368
                        if(response['success']) {
369
                            $.fn.showSuccess(response['data']);
370
                            gridTable.api().ajax.reload(null, false);
371
                        } else {
372
                            $.fn.showError(response['data']);
373
                        }
374
                    }).fail(function( jqXHR, textStatus, errorThrown) {
375
                        $.fn.showError(textStatus);
376
                    }).always(function() {
377
                        NProgress.done();
378
                    });
379
            }
380
       });
381
 
382
    });
1 www 383
 
384
        $('#form-services').submit(function (e) {
385
            e.preventDefault();
386
            NProgress.start();
387
            $.ajax({
388
                'dataType'  : 'json',
389
                'accept'    : 'application/json',
390
                'method'    : 'post',
391
                'url'       : $('#form-services').attr('action'),
392
                'data'      : $('#form-services').serialize(),
393
            }).done(function(response) {
394
                if(response['success']) {
395
 
396
                    $.fn.showSuccess(response['data']);
397
                    $('#modalServices').modal('hide');
398
                    gridTable.api().ajax.reload(null, false);
399
 
400
                } else {
401
                    $.fn.showError(response['data']);
402
                }
403
            }).fail(function( jqXHR, textStatus, errorThrown) {
404
                $.fn.showError(textStatus);
405
            }).always(function() {
406
                NProgress.done();
407
            });
408
            return false;
409
 
410
        });
411
 
412
        $('body').on('click', 'button.btn-roles', function(e) {
413
            e.preventDefault();
414
 
415
            var href = $(this).data('href');
416
            $('#form-roles').attr('action', href);
417
 
418
            NProgress.start();
419
            $.ajax({
420
                'dataType'  : 'json',
421
                'accept'    : 'application/json',
422
                'method'    : 'get',
423
                            'url'       :  href,
424
            }).done(function(response) {
425
                if(response['success']) {
426
 
427
                    $('#table-roles tbody').empty();
428
 
429
                    $.each(response['data'], function(index, role) {
430
 
431
                        var checked = role['checked'] ? ' checked="checked" ' : '';
432
                        var s = '<tr>';
433
                        s = s + '<td>' + role['name'] + '</td>';
434
 
16841 efrain 435
                        s = s + '<td><div class="form-check ">' +
16822 efrain 436
                            '<input type="checkbox" class="form-check-input" id="checked' + role['id'] + '" name="checked' + role['id'] + '" ' + checked + '>' +
437
						    '<label class="form-check-label" for="exampleCheck1">&nbsp;</label>'+
438
					   '</div></td>';
1 www 439
                        s = s + '</tr>';
440
 
441
                        $('#table-roles tbody').append(s);
442
 
443
                    });
444
 
445
 
446
 
447
                    $('#modalRoles').modal('show');
448
 
449
                } else {
450
                    $.fn.showError(response['data']);
451
                }
452
            }).fail(function( jqXHR, textStatus, errorThrown) {
453
                $.fn.showError(textStatus);
454
            }).always(function() {
455
                NProgress.done();
456
            });
457
 
458
        });
459
 
460
        $('#form-roles').submit(function (e) {
461
            e.preventDefault();
462
            NProgress.start();
463
            $.ajax({
464
                'dataType'  : 'json',
465
                'accept'    : 'application/json',
466
                'method'    : 'post',
467
                'url'       : $('#form-roles').attr('action'),
468
                'data'      : $('#form-roles').serialize(),
469
            }).done(function(response) {
470
                if(response['success']) {
471
 
472
                    $.fn.showSuccess(response['data']);
473
                    $('#modalRoles').modal('hide');
474
                     gridTable.api().ajax.reload(null, false);
475
 
476
                } else {
477
                    $.fn.showError(response['data']);
478
                }
479
            }).fail(function( jqXHR, textStatus, errorThrown) {
480
                $.fn.showError(textStatus);
481
            }).always(function() {
482
                NProgress.done();
483
            });
484
            return false;
485
 
486
        });
487
 
488
      $('body').on('click', 'button.btn-edit', function(e) {
489
            e.preventDefault();
490
 
491
            var href = $(this).data('href');
492
            $('#form-edit').attr('action', href);
493
 
494
            NProgress.start();
495
            $.ajax({
496
                'dataType'  : 'json',
497
                'accept'    : 'application/json',
498
                'method'    : 'get',
499
                            'url'       :  href,
500
            }).done(function(response) {
501
                if(response['success']) {
502
 
503
                    $('#form-edit #status').val(response['data']['status']);
504
                    $('#form-edit #user_uuid').empty();
505
 
506
                    $.each(response['data']['users'], function(index, user) {
507
 
508
 
509
                        var s = '<option value="' + user['uuid'] + '">' + user['name'] + '</option>';
510
                        $('#form-edit #user_uuid').append(s);
511
 
512
                    });
513
 
514
                    $('#form-edit #user_uuid').val(response['data']['creator']);
515
 
516
                    $('#modalEdit').modal('show');
517
 
518
                } else {
519
                    $.fn.showError(response['data']);
520
                }
521
            }).fail(function( jqXHR, textStatus, errorThrown) {
522
                $.fn.showError(textStatus);
523
            }).always(function() {
524
                NProgress.done();
525
            });
526
 
527
        });
528
 
529
        $('#form-edit').submit(function (e) {
530
            e.preventDefault();
531
            NProgress.start();
532
            $.ajax({
533
                'dataType'  : 'json',
534
                'accept'    : 'application/json',
535
                'method'    : 'post',
536
                'url'       : $('#form-edit').attr('action'),
537
                'data'      : $('#form-edit').serialize(),
538
            }).done(function(response) {
539
                if(response['success']) {
540
 
541
                    $.fn.showSuccess(response['data']);
542
                    $('#modalEdit').modal('hide');
543
                     gridTable.api().ajax.reload(null, false);
544
 
545
                } else {
546
                    $.fn.showError(response['data']);
547
                }
548
            }).fail(function( jqXHR, textStatus, errorThrown) {
549
                $.fn.showError(textStatus);
550
            }).always(function() {
551
                NProgress.done();
552
            });
553
            return false;
554
 
555
        });
556
 
557
 
558
        $('body').on('click', 'button.btn-cancel', function(e) {
559
            e.preventDefault();
560
            $('#modalServices').modal('hide');
561
            $('#modalRoles').modal('hide');
562
            $('#modalEdit').modal('hide');
563
 
564
 
565
        });
566
 
15337 efrain 567
        $('#form-filter #status, #form-filter #network_id').change(function(e) {
1 www 568
            e.preventDefault();
569
 
570
             gridTable.api().ajax.reload(null, false);
571
        });
572
 
573
 
574
 
575
 
576
    });
577
JS;
578
$this->inlineScript()->captureEnd();
579
?>
580
 
16822 efrain 581
<div class="container">
582
	<div class="card">
583
 
584
		<div class="card-body">
585
			<h6 class="card-title">LABEL_COMPANIES</h6>
586
			<div class="row">
16841 efrain 587
				<div class="col-12  mt-3">
16822 efrain 588
                    <form name="form-filter" id="form-filter">
589
                        <table class="table">
15127 stevensc 590
                            <thead>
591
                                <tr>
16822 efrain 592
                                    <th>LABEL_STATUS</th>
593
                                    <th>LABEL_PRIVATE_NETWORKS</th>
1 www 594
                                </tr>
15127 stevensc 595
                            </thead>
596
                            <tbody>
16822 efrain 597
                                <tr>
598
                                    <td>
599
                                        <select id="status" name="status" class="form-control">
600
                                            <option value="">LABEL_ALL</option>
601
                                            <option value="<?php echo Company::STATUS_PENDING ?>">LABEL_PENDING</option>
602
                                            <option value="<?php echo Company::STATUS_ACTIVE ?>">LABEL_ACTIVE</option>
603
                                            <option value="<?php echo Company::STATUS_INACTIVE ?>">LABEL_INACTIVE</option>
604
                                            <option value="<?php echo Company::STATUS_DELETED ?>">LABEL_DELETED</option>
605
                                            <option value="<?php echo Company::STATUS_REJECTED ?>">LABEL_REJECTED</option>
606
                                        </select>
607
                                    </td>
608
                                    <td>
609
                                        <select id="network_id" name="network_id" class="form-control">
610
                                            <option value="">LABEL_ALL</option>
611
                                            <?php foreach ($networks as $value => $label) : ?>
612
                                                <option value="<?php echo $value ?>"><?php echo $label ?></option>
613
                                            <?php endforeach; ?>
614
                                        </select>
615
                                    </td>
616
                                </tr>
15127 stevensc 617
                            </tbody>
16822 efrain 618
 
15127 stevensc 619
                        </table>
16822 efrain 620
                    </form>
15127 stevensc 621
                </div>
16822 efrain 622
           	</div>
623
            <div class="row">
16841 efrain 624
                <div class="col-12  mt-3">
16822 efrain 625
 
626
         			<table id="gridTable" class="table table-bordered">
627
                		<thead>
628
                                    <tr>
629
                                        <th style="width: 30%">LABEL_NAME</th>
630
                                        <th style="width: 30%">LABEL_DETAILS</th>
631
                                        <th style="width: 30%">LABEL_SECURITY</th>
632
                                        <th style="width: 10%">LABEL_ACTIONS</th>
633
                                    </tr>
634
                                </thead>
635
                                <tbody>
636
                                </tbody>
637
              			</table>
638
                </div>
639
            </div>
1 www 640
 
16822 efrain 641
   	 	</div>
642
   	 	<div class="card-footer text-right">
16992 efrain 643
   	 		<button type="button" class="btn btn-sm btn-info btn-refresh"><i class="fa fa-sync"></i> LABEL_REFRESH </button>
16822 efrain 644
   	 	</div>
645
	</div>
646
</div>
647
 
1 www 648
<!-- The Modal -->
649
<div class="modal" id="modalServices">
15127 stevensc 650
    <div class="modal-dialog  modal-xl">
651
        <div class="modal-content">
1 www 652
 
653
            <!-- Modal Header -->
15127 stevensc 654
            <div class="modal-header">
16845 efrain 655
                <h6 class="modal-title">LABEL_SERVICES</h6>
16822 efrain 656
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 657
            </div>
1 www 658
 
659
            <!-- Modal body -->
16822 efrain 660
            <form name="form-services" id="form-services">
15127 stevensc 661
            <div class="modal-body">
16822 efrain 662
                <div class="row">
16841 efrain 663
                	<div class="col-12  mt-3">
16822 efrain 664
                    	<table id="table-services" class="table table-bordered">
665
                            <thead>
666
                                <tr>
667
                                    <th>LABEL_NAME</th>
668
                                    <th>LABEL_STATUS</th>
669
                                    <th>LABEL_PAID_FROM</th>
670
                                    <th>LABEL_PAID_TO</th>
671
                                </tr>
672
                            </thead>
673
                            <tbody>
674
                            </tbody>
675
                        </table>
676
                	</div>
677
                </div>
678
 
1 www 679
 
680
 
681
 
16822 efrain 682
 
683
 
15127 stevensc 684
            </div>
16891 efrain 685
            <div class="modal-footer text-right">
16822 efrain 686
           		 <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
687
           		<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
688
 
689
            </div>
690
            </form>
1 www 691
 
15127 stevensc 692
        </div>
693
    </div>
694
</div>
1 www 695
 
15127 stevensc 696
 
1 www 697
<!-- The Modal -->
698
<div class="modal" id="modalRoles">
15127 stevensc 699
    <div class="modal-dialog  modal-xl">
700
        <div class="modal-content">
1 www 701
 
702
            <!-- Modal Header -->
15127 stevensc 703
            <div class="modal-header">
16845 efrain 704
                <h6 class="modal-title">LABEL_ROLES</h6>
16822 efrain 705
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 706
            </div>
1 www 707
 
708
            <!-- Modal body -->
16822 efrain 709
            <form name="form-roles" id="form-roles">
15127 stevensc 710
            <div class="modal-body">
16822 efrain 711
                <div class="row">
16841 efrain 712
                	<div class="col-12  mt-3">
16822 efrain 713
                    	<table id="table-roles" class="table table-bordered">
714
                            <thead>
715
                                <tr>
716
                                    <th>LABEL_NAME</th>
717
                                    <th>LABEL_ACTIVE</th>
718
                                </tr>
719
                            </thead>
720
                            <tbody>
721
                            </tbody>
722
                        </table>
723
                	</div>
724
                </div>
725
 
1 www 726
 
727
 
728
 
16822 efrain 729
 
15127 stevensc 730
            </div>
16891 efrain 731
            <div class="modal-footer text-right">
16822 efrain 732
            	<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
733
       			<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
734
            </div>
735
            </form>
736
 
15127 stevensc 737
 
738
        </div>
739
    </div>
1 www 740
</div>
741
 
742
 
743
<!-- The Modal -->
744
<div class="modal" id="modalEdit">
15127 stevensc 745
    <div class="modal-dialog  modal-xl">
746
        <div class="modal-content">
1 www 747
 
748
            <!-- Modal Header -->
15127 stevensc 749
            <div class="modal-header">
16845 efrain 750
                <h6 class="modal-title">LABEL_EDIT</h6>
16822 efrain 751
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15127 stevensc 752
            </div>
1 www 753
 
754
            <!-- Modal body -->
16822 efrain 755
            <form name="form-edit" id="form-edit">
15127 stevensc 756
            <div class="modal-body">
16822 efrain 757
 
1 www 758
 
16822 efrain 759
                    <div class="row">
16891 efrain 760
                    	<div class="col-12 mt-3">
15127 stevensc 761
                        <label for="status">LABEL_STATUS</label>
762
                        <select id="status" name="status" class="form-control">
763
                            <option value="<?php echo Company::STATUS_ACTIVE ?>">LABEL_ACTIVE</option>
764
                            <option value="<?php echo Company::STATUS_INACTIVE ?>">LABEL_INACTIVE</option>
765
                            <option value="<?php echo Company::STATUS_DELETED ?>">LABEL_DELETED</option>
766
                            <option value="<?php echo Company::STATUS_PENDING ?>">LABEL_PENDING</option>
767
                            <option value="<?php echo Company::STATUS_REJECTED ?>">LABEL_REJECTED</option>
768
                        </select>
16822 efrain 769
                        </div>
15127 stevensc 770
                    </div>
16822 efrain 771
                    <div class="row">
16891 efrain 772
                    	<div class="col-12 mt-3">
15127 stevensc 773
                        <label for="user_uuid">LABEL_CREATED_BY</label>
16821 efrain 774
                        <select id="user_uuid" name="user_uuid" class="form-control">
1 www 775
 
15127 stevensc 776
                        </select>
16822 efrain 777
 						</div>
15127 stevensc 778
                    </div>
1 www 779
 
15127 stevensc 780
 
16822 efrain 781
 
782
 
783
            </div>
784
              <div class="card-footer text-right">
15127 stevensc 785
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
786
                        <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
787
                    </div>
16822 efrain 788
            </form>
15127 stevensc 789
 
790
        </div>
791
    </div>
792
</div>