mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Continuo migrando, estoy perfilando activity y los settings
This commit is contained in:
180
ci4/app/Views/themes/backend/vuexy/form/activity/index.php → ci4/app/Views/themes/backend/vuexy/form/activity/activityList.php
Executable file → Normal file
180
ci4/app/Views/themes/backend/vuexy/form/activity/index.php → ci4/app/Views/themes/backend/vuexy/form/activity/activityList.php
Executable file → Normal file
@ -1,6 +1,6 @@
|
||||
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/datatables") ?>
|
||||
<?= $this->extend('themes/backend/vuexy/main/activities_layout') ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
|
||||
<?= $this->section('content'); ?>
|
||||
<!--Content Body-->
|
||||
@ -137,31 +137,25 @@
|
||||
<div class="col-sm-6">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<?php if (session()->get('dashboard')=='admin') : ?>
|
||||
<div class="col-sm-6 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<a href="<?= site_url("activity/all")?>" class="btn btn-primary float-md-right">
|
||||
<?=lang("App.activity_all_btn")?>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- CSRF token -->
|
||||
<input type="hidden" class="txt_csrfname" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>" />
|
||||
<!-- Table -->
|
||||
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
|
||||
<div class="table-responsive">
|
||||
<table id='table-grid' class="table table-striped nowrap" style="width:100%">
|
||||
<table id='activityTable' class="table table-striped table-hover" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?=lang("App.activity_grid_user")?></th>
|
||||
<th><?=lang("App.activity_grid_level")?></th>
|
||||
<th><?=lang("App.activity_grid_event")?></th>
|
||||
<th><?=lang("App.activity_grid_ip")?></th>
|
||||
<th><?=lang("App.activity_grid_os")?></th>
|
||||
<th><?=lang("App.activity_grid_browser")?></th>
|
||||
<th><?=lang("App.activity_grid_created")?></th>
|
||||
<th><?=lang("Actividad.user")?></th>
|
||||
<th><?=lang("Actividad.level")?></th>
|
||||
<th><?=lang("Actividad.event")?></th>
|
||||
<th><?=lang("Actividad.ip")?></th>
|
||||
<th><?=lang("Actividad.os")?></th>
|
||||
<th><?=lang("Actividad.browser")?></th>
|
||||
<th><?=lang("Actividad.createdAt")?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@ -174,48 +168,112 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('additionalInlineJs') ?>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
let dataFormat = [
|
||||
{
|
||||
targets: 1,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case 'error':
|
||||
return '<span class="badge bg-danger"><?=lang("App.activity_alert_error")?></span>';
|
||||
case 'recovery':
|
||||
return '<span class="badge bg-secondary"><?=lang("App.activity_alert_recovery")?></span>';
|
||||
case 'throttling':
|
||||
return '<span class="badge bg-warning"><?=lang("App.activity_alert_throttling")?></span>';
|
||||
case 'information':
|
||||
return '<span class="badge bg-primary"><?=lang("App.activity_alert_information")?></span>';
|
||||
default:
|
||||
return '<span class="badge bg-primary">'+data+'</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 2,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case 'login-authenticate':
|
||||
return '<?=lang("App.activity_alert_login_auth")?>';
|
||||
case 'recovery-password':
|
||||
return '<?=lang("App.activity_alert_recovery")?>';
|
||||
default:
|
||||
return data;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 6,
|
||||
//render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
|
||||
|
||||
const lastColNr = $('#activityTable').find("tr:first th").length - 1;
|
||||
const actionBtns = function(data) {
|
||||
return `<td class="text-right py-0 align-middle">
|
||||
<div class="btn-group btn-group-sm">
|
||||
<button class="btn btn-sm btn-danger btn-delete ms-1" data-id="${data.id}"><?= lang('Basic.global.Delete') ?></button>
|
||||
</div>
|
||||
</td>`;
|
||||
};
|
||||
theTable = $('#activityTable').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
autoWidth: true,
|
||||
responsive: true,
|
||||
scrollX: true,
|
||||
lengthMenu: [ 5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500 ],
|
||||
pageLength: 10,
|
||||
lengthChange: true,
|
||||
"dom": 'lfBrtip',
|
||||
"buttons": [
|
||||
'copy', 'csv', 'excel', 'print', {
|
||||
extend: 'pdfHtml5',
|
||||
orientation: 'landscape',
|
||||
pageSize: 'A4'
|
||||
}
|
||||
];
|
||||
let order = [[6, "desc"]];
|
||||
let translate = '/themes/focus2/vendor/datatables/locales/<?=langJS()?>.json';
|
||||
let button = ["<?=lang("App.global_copy")?>","<?=lang("App.global_print")?>","<?=lang("App.global_excel")?>","<?=lang("App.global_pdf")?>"];
|
||||
let columns = [{ data: 'name' },{ data: 'level' },{ data: 'event' },{ data: 'ip' },{ data: 'os' },{ data: 'browser' },{ data: 'created_at' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url("ajax/getActivities".$all??"")?>', translate, true, true, order, columns,dataFormat, button);
|
||||
],
|
||||
stateSave: true,
|
||||
order: [[1, 'asc']],
|
||||
language: {
|
||||
url: "/themes/vuexy/vendors/libs/datatables-sk/plugins/i18n/es-ES.json"
|
||||
},
|
||||
ajax : $.fn.dataTable.pipeline( {
|
||||
url: '<?= route_to('dataTableOfActividad') ?>',
|
||||
method: 'POST',
|
||||
headers: {'X-Requested-With': 'XMLHttpRequest'},
|
||||
async: true,
|
||||
}),
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
targets: [lastColNr]
|
||||
}
|
||||
],
|
||||
columns : [
|
||||
{ 'data': 'user' },
|
||||
{ 'data': 'level' },
|
||||
{ 'data': 'event' },
|
||||
{ 'data': 'ip' },
|
||||
{ 'data': 'os' },
|
||||
{ 'data': 'browser' },
|
||||
{ 'data': 'created_at' },
|
||||
{ 'data': actionBtns }
|
||||
]
|
||||
});
|
||||
|
||||
theTable.on( 'draw.dt', function () {
|
||||
const boolCols = [7];
|
||||
for (let coln of boolCols) {
|
||||
theTable.column(coln, { page: 'current' }).nodes().each( function (cell, i) {
|
||||
cell.innerHTML = cell.innerHTML == '1' ? '<i class="text-success bi bi-check-lg"></i>' : '';
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*$(document).on('click', '.btn-delete', function(e) {
|
||||
Swal.fire({
|
||||
title: '<?= lang('Basic.global.sweet.sureToDeleteTitle', [mb_strtolower(lang('Paises.pais'))]) ?>',
|
||||
text: '<?= lang('Basic.global.sweet.sureToDeleteText') ?>',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
confirmButtonText: '<?= lang('Basic.global.sweet.deleteConfirmationButton') ?>',
|
||||
cancelButtonText: '<?= lang('Basic.global.Cancel') ?>',
|
||||
cancelButtonColor: '#d33'
|
||||
})
|
||||
.then((result) => {
|
||||
const dataId = $(this).data('id');
|
||||
const row = $(this).closest('tr');
|
||||
if (result.value) {
|
||||
$.ajax({
|
||||
url: `<?= route_to('activityList') ?>/${dataId}`,
|
||||
method: 'DELETE',
|
||||
}).done((data, textStatus, jqXHR) => {
|
||||
Toast.fire({
|
||||
icon: 'success',
|
||||
title: data.msg ?? jqXHR.statusText,
|
||||
});
|
||||
|
||||
theTable.clearPipeline();
|
||||
theTable.row($(row)).invalidate().draw();
|
||||
}).fail((jqXHR, textStatus, errorThrown) => {
|
||||
Toast.fire({
|
||||
icon: 'error',
|
||||
title: jqXHR.responseJSON.messages.error,
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
});*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,234 +0,0 @@
|
||||
<!--Content Body-->
|
||||
<div class="content-body">
|
||||
<div class="container-fluid">
|
||||
<div class="row page-titles mx-0">
|
||||
<div class="col-sm-6 p-md-0">
|
||||
<div class="welcome-text">
|
||||
<h4><i class="<?= $title['icon']??'' ?>"></i> <?= $title['module']??'' ?></h4>
|
||||
<span class="ml-1"><?= $title['page']??'' ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<ol class="breadcrumb">
|
||||
<?php foreach ($breadcrumb??[] as $item) : ?>
|
||||
<?php if (!$item['active']) : ?>
|
||||
<li class="breadcrumb-item"><a href="<?= site_url($item['route']) ?>"><?= $item['title'] ?></a></li>
|
||||
<?php else : ?>
|
||||
<li class="breadcrumb-item active"><?= $item['title'] ?></li>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-windows text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_windows"))?></div>
|
||||
<div class="stat-digit"><?=$logs['windows']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-apple text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_mac"))?></div>
|
||||
<div class="stat-digit"><?=$logs['mac']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-linux text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_linux"))?></div>
|
||||
<div class="stat-digit"><?=$logs['linux']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-android text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_mobile"))?></div>
|
||||
<div class="stat-digit"><?=($logs['android']??'0') + ($logs['iphone']??'0')?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-edge text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_edge"))?></div>
|
||||
<div class="stat-digit"><?=($logs['ie']??'0') + ($logs['edge']??'0')?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-safari text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_safari"))?></div>
|
||||
<div class="stat-digit"><?=$logs['safari']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-firefox-browser text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_firefox"))?></div>
|
||||
<div class="stat-digit"><?=$logs['firefox']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="card">
|
||||
<div class="stat-widget-one card-body">
|
||||
<div class="d-inline-block">
|
||||
<i class="fab fa-chrome text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.activity_top_chrome"))?></div>
|
||||
<div class="stat-digit"><?=$logs['chrome']??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header row">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<?php if (session()->get('dashboard')=='admin') : ?>
|
||||
<div class="col-sm-6 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<a href="<?= site_url("activity/all")?>" class="btn btn-lg btn-primary float-md-right">
|
||||
<i class="fas fa-eye"></i> <?=lang("App.activity_all_btn")?></a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- CSRF token -->
|
||||
<input type="hidden" class="txt_csrfname" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>" />
|
||||
<!-- Table -->
|
||||
<div class="table-responsive">
|
||||
<table id='table-grid' class="table table-striped nowrap" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?=lang("App.activity_grid_user")?></th>
|
||||
<th><?=lang("App.activity_grid_level")?></th>
|
||||
<th><?=lang("App.activity_grid_event")?></th>
|
||||
<th><?=lang("App.activity_grid_ip")?></th>
|
||||
<th><?=lang("App.activity_grid_os")?></th>
|
||||
<th><?=lang("App.activity_grid_browser")?></th>
|
||||
<th><?=lang("App.activity_grid_created")?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Required vendors -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/global/global.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/js/quixnav-init.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/js/custom.min.js")?>"></script>
|
||||
<!-- Datatable -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/jquery.dataTables.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/pickers/daterange/moment.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/dataTables.datetime.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/dataTables.buttons.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/buttons.bootstrap4.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/jszip.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/pdfmake.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/vfs_fonts.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/buttons.html5.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/buttons.print.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/datatables/js/buttons.colVis.min.js")?>"></script>
|
||||
<!-- Alert -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/toastr/js/toastr.min.js")?>"></script>
|
||||
<!-- Custom -->
|
||||
<script src="<?=site_url("assets/js/main.js")?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
let dataFormat = [
|
||||
{
|
||||
targets: 1,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case 'error':
|
||||
return '<span class="badge badge-danger"><?=lang("App.activity_alert_error")?></span>';
|
||||
case 'recovery':
|
||||
return '<span class="badge badge-secondary"><?=lang("App.activity_alert_recovery")?></span>';
|
||||
case 'throttling':
|
||||
return '<span class="badge badge-warning"><?=lang("App.activity_alert_throttling")?></span>';
|
||||
case 'information':
|
||||
return '<span class="badge badge-primary"><?=lang("App.activity_alert_information")?></span>';
|
||||
default:
|
||||
return '<span class="badge badge-primary">'+data+'</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 2,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case 'login-authenticate':
|
||||
return '<?=lang("App.activity_alert_login_auth")?>';
|
||||
case 'recovery-password':
|
||||
return '<?=lang("App.activity_alert_recovery")?>';
|
||||
default:
|
||||
return data;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 6,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
}
|
||||
];
|
||||
let order = [[6, "desc"]];
|
||||
let translate = '/themes/focus2/vendor/datatables/locales/<?=langJS()?>.json';
|
||||
let button = ["<?=lang("App.global_copy")?>","<?=lang("App.global_print")?>","<?=lang("App.global_excel")?>","<?=lang("App.global_pdf")?>"];
|
||||
let columns = [{ data: 'name' },{ data: 'level' },{ data: 'event' },{ data: 'ip' },{ data: 'os' },{ data: 'browser' },{ data: 'created_at' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url("ajax/getActivities".$all??"")?>', translate, true, true, order, columns,dataFormat, button);
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user