Added original Vuexy files and cloned focus2 views into vuexy views for its conversion
12
.vscode/sftp.json
vendored
@ -1,12 +0,0 @@
|
||||
{
|
||||
"name": "sk-jjo",
|
||||
"host": "sk-jjo.imnavajas.es",
|
||||
"protocol": "ftp",
|
||||
"port": 21,
|
||||
"username": "sk-jjo",
|
||||
"password": "yuh1C^290",
|
||||
"remotePath": "/",
|
||||
"uploadOnSave": true,
|
||||
"useTempFile": false,
|
||||
"openSsh": false
|
||||
}
|
||||
234
ci4/app/Views/themes/backend/vuexy/form/activity/index.php
Normal file
@ -0,0 +1,234 @@
|
||||
<!--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>
|
||||
246
ci4/app/Views/themes/backend/vuexy/form/dashboard/admin.php
Normal file
@ -0,0 +1,246 @@
|
||||
<!--Style-->
|
||||
<link rel="stylesheet" href="<?= site_url("themes/focus2/vendor/chartist/css/chartist.min.css") ?>">
|
||||
<style>
|
||||
.ct-series-a .ct-bar, .ct-series-a .ct-line, .ct-series-a .ct-point, .ct-series-a,.bg-char-lead{
|
||||
stroke: #6b51df;
|
||||
}
|
||||
.ct-series-b .ct-bar, .ct-series-b .ct-line, .ct-series-b .ct-point, .ct-series-b,.bg-char-conversion{
|
||||
stroke: limegreen;
|
||||
}
|
||||
.ct-series-c .ct-bar, .ct-series-c .ct-line, .ct-series-c .ct-point, .ct-series-c,.bg-char-disengaged{
|
||||
stroke: #ff004d;
|
||||
}
|
||||
.ct-pie-chart .ct-label {
|
||||
fill: rgb(255 255 255);
|
||||
color: rgb(255 255 255);
|
||||
font-size: .70rem;
|
||||
line-height: 1;
|
||||
}
|
||||
.ct-icon {
|
||||
height: 23px;
|
||||
width: 23px;
|
||||
margin-right: 5px;
|
||||
float: left;
|
||||
}
|
||||
</style>
|
||||
<!--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="fas fa-users text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.dashboard_user_total"))?></div>
|
||||
<div class="stat-digit"><?=$total_user??'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="fas fa-user-friends text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.dashboard_user_new"))?></div>
|
||||
<div class="stat-digit"><?=$total_new??'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="fas fa-user-check text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.dashboard_user_enabled"))?></div>
|
||||
<div class="stat-digit"><?=$total_enabled??'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="fas fa-user-times text-pink fa-3x"></i>
|
||||
</div>
|
||||
<div class="stat-content d-inline-block">
|
||||
<div class="stat-text text-pink"><?=strtoupper(lang("App.dashboard_user_disabled"))?></div>
|
||||
<div class="stat-digit"><?=$total_disabled??'0'?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?=lang("App.dashboard_chart_history")?></h4>
|
||||
<span><i class="fas fa-square" style="color: #6b51df"></i> <?=lang("App.dashboard_user_total")?> <i class="fas fa-square" style="color: limegreen"></i> <?=lang("App.dashboard_user_enabled")?> <i class="fas fa-square" style="color: #ff004d"></i> <?=lang("App.dashboard_user_disabled")?></span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="ct-bar-chart mt-5"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?=lang("App.dashboard_grid_user")?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive" style="max-height: 300px; overflow-y: auto;">
|
||||
<table class="table" id="table-grid" >
|
||||
<tbody>
|
||||
<?php foreach ($data_user??[] as $item) : ?>
|
||||
<tr>
|
||||
<td style="height: 56px; text-align: center;">
|
||||
<img src="<?= $item['picture']??''?>" class="btn-circle btn-circle-sm">
|
||||
</td>
|
||||
<td>
|
||||
<b><?= $item['first_name']??''?> <?= $item['last_name']??''?></b><br>
|
||||
<?= $item['email']??''?><br>
|
||||
<span class="timeAgo"><?= $item['created_at']??'' ?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?=lang("App.dashboard_grid_access")?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive" style="max-height: 370px; overflow-y: auto;">
|
||||
<table class="table" id="table-grid">
|
||||
<thead class="text-primary">
|
||||
<tr>
|
||||
<th><?=lang("App.dashboard_user")?></th>
|
||||
<th><?=lang("App.dashboard_email")?></th>
|
||||
<th><?=lang("App.dashboard_created_at")?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($data_activity??[] as $item) : ?>
|
||||
<?php $data = json_decode($item['detail'],true); ?>
|
||||
<tr>
|
||||
<td><?= $item['first_name']??''?></td>
|
||||
<td><?= $item['email']??''?></td>
|
||||
<td><span class="timeAgo"><?= $item['created_at']??'' ?></span> </td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</tbody>
|
||||
</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>
|
||||
<!-- Form -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/chartist/js/chartist.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/moment/moment.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/pg-calendar/js/pignose.calendar.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.js")?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
let dataPie = <?= $data_char_pie??'{}' ?>;
|
||||
let labels = dataPie['labels'];
|
||||
let icons = document.getElementById("ct-icon-chart").innerHTML;
|
||||
for (let i = 0; i < labels.length; i++) {
|
||||
switch (labels[i].toLowerCase()) {
|
||||
case 'vkontakte':
|
||||
icons += '<p class="btn-vk btn-circle ct-icon"><i class="fab fa-vk mt-1 ml-1"></i></p>';
|
||||
break;
|
||||
case 'wechat':
|
||||
icons += '<p class="btn-wechat btn-circle ct-icon"><i class="fab fa-weixin mt-1 ml-1"></i></p>';
|
||||
break;
|
||||
case 'google':
|
||||
icons += '<p class="btn-'+labels[i].toLowerCase()+'-plus btn-circle ct-icon"><i class="fab fa-'+labels[i].toLowerCase()+' mt-1 ml-1"></i></p>';
|
||||
break;
|
||||
default:
|
||||
icons += '<p class="btn-'+labels[i].toLowerCase()+' btn-circle ct-icon"><i class="fab fa-'+labels[i].toLowerCase()+' mt-1 ml-1"></i></p>';
|
||||
}
|
||||
}
|
||||
document.getElementById("ct-icon-chart").innerHTML = icons;
|
||||
let optionsPie = {
|
||||
labelInterpolationFnc: function(value) {
|
||||
return value[0]+value[1]+value[2]
|
||||
}
|
||||
};
|
||||
let responsiveOptionsPie = [
|
||||
['screen and (min-width: 640px)', {
|
||||
chartPadding: 30,
|
||||
labelOffset: 100,
|
||||
labelDirection: 'explode',
|
||||
labelInterpolationFnc: function(value) {
|
||||
return value;
|
||||
}
|
||||
}],
|
||||
['screen and (min-width: 1024px)', {
|
||||
labelOffset: 0,
|
||||
chartPadding: 10
|
||||
}]
|
||||
];
|
||||
new Chartist.Pie('.ct-pie-chart', dataPie, optionsPie, responsiveOptionsPie);
|
||||
let dataBar = <?= $data_char_bar??'{}' ?>;
|
||||
let optionsBar = {
|
||||
seriesBarDistance: 10
|
||||
};
|
||||
let responsiveOptionsBar = [
|
||||
['screen and (max-width: 640px)', {
|
||||
seriesBarDistance: 5,
|
||||
axisX: {
|
||||
labelInterpolationFnc: function(value) {
|
||||
return value[0];
|
||||
}
|
||||
}
|
||||
}]
|
||||
];
|
||||
new Chartist.Bar('.ct-bar-chart', dataBar, optionsBar, responsiveOptionsBar);
|
||||
});
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
12
ci4/app/Views/themes/backend/vuexy/form/dashboard/index.php
Normal file
@ -0,0 +1,12 @@
|
||||
<!--Content Body-->
|
||||
<div class="content-body"></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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.js")?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
});
|
||||
</script>
|
||||
29
ci4/app/Views/themes/backend/vuexy/form/dashboard/user.php
Normal file
@ -0,0 +1,29 @@
|
||||
<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>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.js")?>"></script>
|
||||
<?= sweetAlert() ?>
|
||||
166
ci4/app/Views/themes/backend/vuexy/form/group/form.php
Normal file
@ -0,0 +1,166 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?= formAlert() ?>
|
||||
<form class="form" action="<?= site_url("usuarios/group/store")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" name="id_group" value="<?= (isset($obj)) ? $obj['id_group'] : set_value('id_group') ?>">
|
||||
<input type="hidden" name="token" value="<?= (isset($obj)) ? $obj['token'] : set_value('token') ?>">
|
||||
<div class="form-body">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="form-group">
|
||||
<label for="title" class="text-dark"><?=lang("App.group_field_title")?></label>
|
||||
<input type="text" name="title" id="title" class="form-control" value="<?= (isset($obj)) ? $obj['title'] : set_value('title') ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="dashboard" class="text-dark"><?=lang("App.group_field_dashboard")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['dashboard'] : set_value('dashboard');?>
|
||||
<select name="dashboard" id="dashboard" class="form-control">
|
||||
<option value="user" <?= $id_select == "user" ? 'selected' : '' ?>><?=lang("App.group_label_user")?></option>
|
||||
<option value="admin" <?= $id_select == "admin" ? 'selected' : '' ?>><?=lang("App.group_label_admin")?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 right">
|
||||
<div class="form-group">
|
||||
<button type="button" name="select_all" id="select_all" class="btn btn-primary round"><i class="la la-toggle-on"></i> <?=lang("App.group_btn_select")?></button>
|
||||
<button type="button" name="remove_all" id="remove_all" class="btn btn-primary round ml-1"><i class="la la-toggle-off"></i> <?=lang("App.group_btn_remove")?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 right">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= lang("App.permisos_general") ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<?php foreach(getAllClass() as $item): ?>
|
||||
<?php if (empty($item['path'])): ?>
|
||||
<div class="col-md-3 col-lg-2">
|
||||
<h4 class="danger"><?=getDictionary($item['name'])?></h4>
|
||||
<?php foreach($item['methods'] as $subitem): ?>
|
||||
<?php if(!getIgnoreMethod($subitem)): ?>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" id="<?=$item['name'].'_'.$subitem?>" name="<?=$item['name'].'_'.$subitem?>" class="custom-control-input">
|
||||
<label for="<?=$item['name'].'_'.$subitem?>" class="custom-control-label"><?=getDictionary($subitem)?></label>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php foreach(getAllFolder() as $folder): ?>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= getDictionary($folder)??'' ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<?php foreach(getAllClass() as $item): ?>
|
||||
<?php if (str_contains($item['path'], $folder)): ?>
|
||||
<div class="col-md-3 col-lg-2">
|
||||
<h4 class="danger"><?=getDictionary($item['name'])?></h4>
|
||||
<?php foreach($item['methods'] as $subitem): ?>
|
||||
<?php if(!getIgnoreMethod($subitem)): ?>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" id="<?=$item['name'].'_'.$subitem?>" name="<?=$item['name'].'_'.$subitem?>" class="custom-control-input">
|
||||
<label for="<?=$item['name'].'_'.$subitem?>" class="custom-control-label"><?=getDictionary($subitem)?></label>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions mt-2">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
<button type="submit" class="<?= $btn_submit['class']??''?>">
|
||||
<i class="<?= $btn_submit['icon']??'' ?>"></i> <?= $btn_submit['title']??'' ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/select2/js/select2.full.min.js")?>"></script>
|
||||
<!-- Form -->
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#title').focus();
|
||||
$("#dashboard").select2();
|
||||
LoadRules();
|
||||
});
|
||||
function LoadRules() {
|
||||
let obj = JSON.parse('<?= (isset($obj)) ? str_replace('"','"',$obj['rules']) : '{}' ?>');
|
||||
$.each(obj, function (key, item) {
|
||||
$.each(item, function (sub_key, sub_item) {
|
||||
try {
|
||||
document.getElementById(key+"_"+sub_item).checked = true;
|
||||
}catch (e) {
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
$('#select_all').on('click', function () {
|
||||
$(':checkbox').each(function() {
|
||||
this.checked = true;
|
||||
});
|
||||
});
|
||||
$('#remove_all').on('click', function () {
|
||||
$(':checkbox').each(function() {
|
||||
this.checked = false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
118
ci4/app/Views/themes/backend/vuexy/form/group/index.php
Normal file
@ -0,0 +1,118 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header row">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<a href="<?= site_url($btn_add['route']??'#')?>" class="<?= $btn_add['class']??''?>">
|
||||
<i class="<?= $btn_add['icon']??'' ?>"></i> <?= $btn_add['title']??'' ?>
|
||||
</a>
|
||||
</div>
|
||||
</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.group_grid_title")?></th>
|
||||
<th><?=lang("App.group_grid_dashboard")?></th>
|
||||
<th><?=lang("App.group_grid_created")?></th>
|
||||
<th><?=lang("App.group_grid_updated")?></th>
|
||||
<th><?=lang("App.group_grid_options")?></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: 2,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
},
|
||||
{
|
||||
targets: 3,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
}
|
||||
];
|
||||
let order = [[0, "asc"]];
|
||||
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: 'title' },{ data: 'dashboard' },{ data: 'created_at' },{ data: 'updated_at' },{ data: 'options' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url('ajax/getGroups')?>', translate, true, true, order, columns,dataFormat, button);
|
||||
});
|
||||
function delete_group(id){
|
||||
swal({
|
||||
title: "<?=lang("App.group_delete_title")?>",
|
||||
text: "<?=lang("App.group_delete_subtitle")?>",
|
||||
type: "warning",
|
||||
showCancelButton: !0,
|
||||
confirmButtonColor: "#f34141",
|
||||
confirmButtonText: "<?=lang("App.group_delete_btn_ok")?>",
|
||||
cancelButtonText: "<?=lang("App.group_delete_btn_cancel")?>",
|
||||
closeOnConfirm: !1
|
||||
}).then(function(isConfirm) {
|
||||
console.log(isConfirm);
|
||||
if (isConfirm.value) {
|
||||
window.location.href = '<?=site_url("usuarios/group/delete/")?>'+id;
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
@ -0,0 +1,76 @@
|
||||
<div class="authincation h-100">
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row justify-content-center h-100 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<div class="authincation-content">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-12">
|
||||
<div class="auth-form">
|
||||
<h4 class="text-center mb-4"><?= lang("App.login_title_otp") ?></h4>
|
||||
<form action="<?=site_url("login/otp")?>" id="sendForm" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_otp_code") ?></strong></label>
|
||||
<div><span><?= lang("App.login_otp_span") ?></span></div>
|
||||
<div id="otp" class="inputs d-flex flex-row justify-content-center mt-2">
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_1" name="pin_1" maxlength="1" />
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_2" name="pin_2" maxlength="1" />
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_3" name="pin_3" maxlength="1" />
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_4" name="pin_4" maxlength="1" />
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_5" name="pin_5" maxlength="1" />
|
||||
<input class="m-2 text-center form-control rounded" type="text" id="pin_6" name="pin_6" maxlength="1" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-1 mb-2">
|
||||
<button type="button" class="btn btn-dark btn-block" onclick="window.location.href = '<?=site_url("login")?>';"><?= lang("App.login_come_back") ?></button>
|
||||
</div>
|
||||
<p class="text-primary" id="msg" style="display: none;"><i class="fas fa-spinner fa-pulse"></i> <?= lang("App.login_wait") ?></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="<?=site_url("themes/focus2/vendor/global/global.min.js")?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#pin_1').focus();
|
||||
});
|
||||
document.addEventListener("DOMContentLoaded", function(event) {
|
||||
function OTPInput() {
|
||||
const inputs = document.querySelectorAll('#otp > *[id]');
|
||||
for (let i = 0; i < inputs.length; i++) {
|
||||
inputs[i].addEventListener('keydown', function(event) {
|
||||
if (event.key === "Backspace") {
|
||||
inputs[i].value = '';
|
||||
if (i !== 0) inputs[i - 1].focus();
|
||||
} else {
|
||||
if (i === inputs.length - 1 && inputs[i].value !== '') {
|
||||
return true;
|
||||
} else if (event.keyCode > 47 && event.keyCode < 58) {
|
||||
inputs[i].value = event.key;
|
||||
if (i !== inputs.length - 1) inputs[i + 1].focus();
|
||||
event.preventDefault();
|
||||
} else if (event.keyCode > 64 && event.keyCode < 91) {
|
||||
inputs[i].value = String.fromCharCode(event.keyCode);
|
||||
if (i !== inputs.length - 1) inputs[i + 1].focus();
|
||||
event.preventDefault();
|
||||
} else if (event.keyCode > 95 && event.keyCode < 106) {
|
||||
inputs[i].value = event.key;
|
||||
if (i !== inputs.length - 1) inputs[i + 1].focus();
|
||||
event.preventDefault();
|
||||
}
|
||||
if(i === 5){
|
||||
load();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
OTPInput();
|
||||
});
|
||||
</script>
|
||||
@ -0,0 +1,44 @@
|
||||
<div class="authincation h-100">
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row justify-content-center h-100 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<div class="authincation-content">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-12">
|
||||
<div class="auth-form">
|
||||
<h4 class="text-center mb-4"><?= lang("App.login_title_forgot_password") ?></h4>
|
||||
<?= formAlert() ?>
|
||||
<form action="<?=site_url("integration/reset_password")?>" id="sendForm" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_email") ?></strong></label>
|
||||
<input type="email" name="email" id="email" placeholder="<?= lang("App.login_email_ph") ?>" class="form-control" value="">
|
||||
</div>
|
||||
<?php if($settings['captcha_recovery']??false): ?>
|
||||
<?php if($settings['captcha_gateway'] == 'recaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="g-recaptcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if($settings['captcha_gateway'] == 'hcaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="h-captcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<div class="text-center">
|
||||
<button type="button" class="btn btn-primary btn-block" onclick="load()"><?= lang("App.login_request") ?></button>
|
||||
</div>
|
||||
<div class="text-center mt-1">
|
||||
<button type="button" class="btn btn-dark btn-block" onclick="window.location.href = '<?=site_url("login")?>';"><?= lang("App.login_come_back") ?></button>
|
||||
</div>
|
||||
<p class="text-primary" id="msg" style="display: none;"><i class="fas fa-spinner fa-pulse"></i> <?= lang("App.login_wait") ?></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
79
ci4/app/Views/themes/backend/vuexy/form/login/index.php
Normal file
@ -0,0 +1,79 @@
|
||||
<div class="authincation h-100">
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row justify-content-center h-100 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<div class="authincation-content">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-12">
|
||||
<div class="auth-form">
|
||||
<a href="<?= site_url('login'); ?>" class="justify-content-center mb-4"></a>
|
||||
<h4 class="text-center mb-2">
|
||||
<img src="<?= site_url('themes/focus2/images/logo-full.png'); ?>" alt=""><br>
|
||||
</h4>
|
||||
<h4 class="text-center mb-4">
|
||||
<?= lang("App.login_title") ?>
|
||||
</h4>
|
||||
<div class="row mb-4">
|
||||
<div class="col-xl-12 text-center">
|
||||
<?php foreach($oauth??[] as $item): ?>
|
||||
<a href="<?= site_url('oauth/'.$item['provider']); ?>" class="btn <?=$item['btn_class'] ?> mt-1 mr-1"><i class="<?=$item['icon_class']?> <?=$item['show_text']?'mr-2':'fa-2x' ?> "></i><?=$item['show_text']?$item['btn_text']:'' ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div><i class="fa-2x"></i>
|
||||
</div>
|
||||
<form action="<?= site_url('login/authenticate'); ?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_email") ?></strong></label>
|
||||
<input type="email" id="email" name="email" placeholder="<?= lang("App.login_email_ph") ?>" class="form-control" value="">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_password") ?></strong></label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="password" name="password" placeholder="<?= lang("App.login_password_ph") ?>" class="form-control" value="">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-dark" id="btn_pass" onclick="pass()"><i class="far fa-eye"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row d-flex justify-content-between mt-4 mb-2">
|
||||
<div class="form-group">
|
||||
<?php if($settings['remember_me']??false): ?>
|
||||
<div class="custom-control custom-switch ml-2">
|
||||
<input type="checkbox" id="remember" name="remember" class="custom-control-input">
|
||||
<label for="remember" class="custom-control-label"><?= lang("App.login_remember_me") ?></label>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php if($settings['forgot_password']??false): ?>
|
||||
<a href="<?= site_url('login/forgot_password'); ?>"><?= lang("App.login_forgot_password") ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button type="submit" class="btn btn-access btn-primary btn-block"><?= lang("App.login_access") ?></button>
|
||||
</div>
|
||||
<?php if($settings['captcha_login']??false): ?>
|
||||
<?php if($settings['captcha_gateway'] == 'recaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="g-recaptcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if($settings['captcha_gateway'] == 'hcaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="h-captcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($settings['registration']??false): ?>
|
||||
<h6 class="text-center mt-4 text-dark"><?= lang("App.login_signup_desc") ?> <a href="<?= site_url('login/signup'); ?>" class="text-primary"><?= lang("App.login_signup") ?></a></h6>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,39 @@
|
||||
<div class="authincation h-100">
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row justify-content-center h-100 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<div class="authincation-content">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-12">
|
||||
<div class="auth-form">
|
||||
<h4 class="text-center mb-4"><?= lang("App.login_title_recovery") ?></h4>
|
||||
<?= formAlert() ?>
|
||||
<form action="<?=site_url("login/recovery_store")?>" id="sendForm" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" name="token" value="<?=$token??''?>">
|
||||
<input type="hidden" name="user" value="<?=$user??''?>">
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_new_password") ?></strong></label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="password" name="password" placeholder="<?= lang("App.login_password_ph") ?>" class="form-control">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-dark" id="btn_pass" onclick="pass()"><i class="far fa-eye"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button type="button" class="btn btn-primary btn-block" onclick="load()"><?= lang("App.login_btn_recovery") ?></button>
|
||||
</div>
|
||||
<div class="text-center mt-1">
|
||||
<button type="button" class="btn btn-dark btn-block" onclick="window.location.href = '<?=site_url("login")?>';"><?= lang("App.login_come_back") ?></button>
|
||||
</div>
|
||||
<p class="text-primary" id="msg" style="display: none;"><i class="fas fa-spinner fa-pulse"></i> <?= lang("App.login_wait") ?></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
114
ci4/app/Views/themes/backend/vuexy/form/login/signup.php
Normal file
@ -0,0 +1,114 @@
|
||||
<div class="authincation h-100">
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row justify-content-center h-100 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<div class="authincation-content">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-xl-12">
|
||||
<div class="auth-form">
|
||||
<h4 class="text-center mb-4"><?= lang("App.login_title_signup") ?></h4>
|
||||
<?= formAlert() ?>
|
||||
<form action="<?=site_url("login/store")?>" id="sendForm" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_first_name") ?></strong></label>
|
||||
<input type="text" name="first_name" id="first_name" placeholder="<?= lang("App.login_first_name_ph") ?>" class="form-control" value="<?= set_value('first_name') ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_last_name") ?></strong></label>
|
||||
<input type="text" name="last_name" id="last_name" placeholder="<?= lang("App.login_last_name_ph") ?>" class="form-control" value="<?= set_value('last_name') ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_email") ?></strong></label>
|
||||
<input type="email" name="email" id="email" placeholder="<?= lang("App.login_email_ph") ?>" class="form-control" value="<?= set_value('email') ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label><strong><?= lang("App.login_password") ?></strong></label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="password" name="password" placeholder="<?= lang("App.login_password_ph") ?>" class="form-control" value="<?= set_value('password') ?>">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-dark" id="btn_pass" onclick="pass()"><i class="far fa-eye"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($settings['terms_conditions']??false): ?>
|
||||
<div class="col-lg-12 d-flex justify-content-between">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-switch ml-2">
|
||||
<input type="checkbox" id="accept" name="accept" class="custom-control-input" <?= set_value('accept')=='on'?'checked':''?>>
|
||||
<label for="accept" class="custom-control-label"><?= lang("App.login_accept_terms") ?></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a href="javascript:void(0)" data-toggle="modal" data-target=".terms-conditions-modal-lg"><?= lang("App.login_read_terms") ?></a>
|
||||
</div>
|
||||
<div class="modal fade terms-conditions-modal-lg" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><?= lang("App.login_terms_use") ?></h5>
|
||||
<button type="button" class="close" data-dismiss="modal"><span>×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body"><?= html_entity_decode($settings['terms_conditions_text']??'');?></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-dark" data-dismiss="modal"><?= lang("App.login_closed") ?></button>
|
||||
<button type="button" class="btn btn-primary" onclick="accepted()"><?= lang("App.login_accept") ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if($settings['captcha_register']??false): ?>
|
||||
<?php if($settings['captcha_gateway'] == 'recaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="g-recaptcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if($settings['captcha_gateway'] == 'hcaptcha'): ?>
|
||||
<div class="text-center mt-2">
|
||||
<div class="h-captcha" style="display: inline-block" data-sitekey="<?=$settings['captcha_site_key']??''?>"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<div class="text-center">
|
||||
<button type="button" class="btn btn-primary btn-block" onclick="validate()"><?= lang("App.login_register") ?></button>
|
||||
</div>
|
||||
<div class="text-center mt-1">
|
||||
<button type="button" class="btn btn-dark btn-block" onclick="window.location.href = '<?=site_url("login")?>';"><?= lang("App.login_come_back") ?></button>
|
||||
</div>
|
||||
<p class="text-primary" id="msg" style="display: none;"><i class="fas fa-spinner fa-pulse"></i> <?= lang("App.login_wait") ?></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
"use strict";
|
||||
function validate(){
|
||||
if(<?= $settings['terms_conditions']??0 ?> === 1){
|
||||
if(document.getElementById('accept').checked === true){
|
||||
load();
|
||||
}else{
|
||||
toastr.error('<?= lang("App.login_alert_terms") ?>','<?= lang("App.login_alert") ?>!',{positionClass: 'toast-top-center'})
|
||||
}
|
||||
}else{
|
||||
load();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
106
ci4/app/Views/themes/backend/vuexy/form/my/notification.php
Normal file
@ -0,0 +1,106 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header row">
|
||||
<div class="col-sm-12">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
</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.notification_grid_sender")?></th>
|
||||
<th><?=lang("App.notification_grid_recipient")?></th>
|
||||
<th><?=lang("App.notification_grid_title")?></th>
|
||||
<th><?=lang("App.notification_grid_created_my")?></th>
|
||||
<th><?=lang("App.notification_grid_view_my")?></th>
|
||||
<th><?=lang("App.user_grid_options")?></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 src="<?=site_url('themes/focus2/vendor/timeago/jquery.timeago.js'); ?>"></script>
|
||||
<script src="<?=site_url('themes/focus2/vendor/timeago/locales/jquery.timeago.'.langJS().'.js'); ?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
let dataFormat = [
|
||||
{
|
||||
targets: 3,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
},
|
||||
{
|
||||
targets: 4,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case '1':
|
||||
return '<span class="badge badge-success"><?=lang("App.notification_grid_yes")?></span>';
|
||||
default:
|
||||
return '<span class="badge badge-dark"><?=lang("App.notification_grid_no")?></span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
];
|
||||
let order = [[3, "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: 'sender' },{ data: 'recipient' },{ data: 'title' },{ data: 'created_at' },{ data: 'is_read' },{ data: 'options' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url('ajax/getMyNotification')?>', translate, true, true, order, columns,dataFormat, button);
|
||||
});
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
46
ci4/app/Views/themes/backend/vuexy/form/my/view.php
Normal file
@ -0,0 +1,46 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= $obj['title']??''?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?= html_entity_decode($obj['body']??'');?>
|
||||
<div class="form-actions mt-4">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
</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>
|
||||
|
||||
166
ci4/app/Views/themes/backend/vuexy/form/notification/form.php
Normal file
@ -0,0 +1,166 @@
|
||||
<!--Style-->
|
||||
<link href="<?=site_url("themes/focus2/vendor/summernote/summernote.css")?>" rel="stylesheet">
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row mx-0" style="width: 100%;">
|
||||
<div class="col-sm-6 p-md-0">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<button type="button" class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#tagModalCenter" title="<?=lang("App.template_label_tag")?>">
|
||||
<i class="fas fa-tags"></i>
|
||||
</button>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="tagModalCenter">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><?=lang("App.template_modal_title")?></h5>
|
||||
<button type="button" class="close" data-dismiss="modal"><span>×</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p><?=lang("App.template_modal_subtitle")?></p>
|
||||
<?php foreach (keywordEmail()??[] as $item) : ?>
|
||||
<button type="button" class="btn btn-primary btn-sm mt-1 mr-1" onclick="copy('[<?=$item?>]')">[<?=$item?>]</button>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-dark" data-dismiss="modal"><?=lang("App.template_modal_btn_1")?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?= formAlert() ?>
|
||||
<form class="form" action="<?=site_url("notification/store")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="form-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="email_gateway" class="text-dark"><?=lang("App.notification_field_user")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['user_recipient'] : set_value('user_recipient');?>
|
||||
<select name="user_recipient" id="user_recipient" class="form-control">
|
||||
<option value="" <?= $id_select == "" ? 'selected' : '' ?>><?=lang("App.notification_field_user_all")?></option>
|
||||
<?php foreach($user??[] as $item): ?>
|
||||
<option value="<?=$item['token']?>" <?= $id_select == $item['token'] ? 'selected' : '' ?>><?=$item['first_name']?> - <?=$item['email']?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="form-group">
|
||||
<label for="title" class="text-dark"><?=lang("App.notification_field_title")?></label>
|
||||
<input type="text" name="title" id="title" class="form-control" value="<?= (isset($obj)) ? $obj['title'] : set_value('title') ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.notification_field_body")?></label>
|
||||
<textarea class="form-control" id="body" name="body" rows="3"><?= (isset($obj)) ? $obj['body'] : set_value('body') ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="text-primary"><?=lang("App.notification_field_send_msg")?></label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.notification_field_send_email")?></label>
|
||||
<div class="custom-control custom-switch">
|
||||
<input type="checkbox" id="send_email_notification" name="send_email_notification" class="custom-control-input" <?= $obj['send_email_notification']??false ? 'checked' : ''?>>
|
||||
<label for="send_email_notification" class="custom-control-label"><?=lang("App.notification_field_send_label")?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions mt-2">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
<button type="submit" class="<?= $btn_submit['class']??''?>">
|
||||
<i class="<?= $btn_submit['icon']??'' ?>"></i> <?= $btn_submit['title']??'' ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/select2/js/select2.full.min.js")?>"></script>
|
||||
<!-- Summernote -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/summernote/summernote.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>
|
||||
<!-- Form -->
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#title').focus();
|
||||
$("#user_recipient").select2();
|
||||
let configSummerNote = {
|
||||
height: 150, // set editor height
|
||||
minHeight: null, // set minimum height of editor
|
||||
maxHeight: null, // set maximum height of editor
|
||||
focus: true, // set focus to editable area after initializing summernote
|
||||
toolbar: [
|
||||
['style', ['style']],
|
||||
['font', ['bold', 'italic', 'underline', 'clear']],
|
||||
['fontname', ['fontname']],
|
||||
['color', ['color']],
|
||||
['para', ['ul', 'ol', 'paragraph']],
|
||||
['height', ['height']],
|
||||
['table', ['table']],
|
||||
['insert', ['link', 'picture', 'hr']],
|
||||
['view', ['codeview']]
|
||||
]
|
||||
}
|
||||
$("#body").summernote(configSummerNote);
|
||||
});
|
||||
$("#body").on("summernote.enter", function(we, e) {
|
||||
$(this).summernote("pasteHTML", "<br><br>");
|
||||
e.preventDefault();
|
||||
});
|
||||
function copy(copyText) {
|
||||
navigator.clipboard.writeText(copyText);
|
||||
toastr.success('<?= lang("App.template_modal_copy_msg") ?>','<?= lang("App.template_modal_copy") ?>!',{positionClass: 'toast-top-center'})
|
||||
$('#tagModalCenter').modal('hide')
|
||||
}
|
||||
</script>
|
||||
<?= toastAlert() ?>
|
||||
149
ci4/app/Views/themes/backend/vuexy/form/notification/index.php
Normal file
@ -0,0 +1,149 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header row">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<a href="<?= site_url($btn_add['route']??'#')?>" class="<?= $btn_add['class']??''?>">
|
||||
<i class="<?= $btn_add['icon']??'' ?>"></i> <?= $btn_add['title']??'' ?>
|
||||
</a>
|
||||
</div>
|
||||
</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.notification_grid_sender")?></th>
|
||||
<th><?=lang("App.notification_grid_recipient")?></th>
|
||||
<th><?=lang("App.notification_grid_title")?></th>
|
||||
<th><?=lang("App.notification_grid_email")?></th>
|
||||
<th><?=lang("App.notification_grid_view")?></th>
|
||||
<th><?=lang("App.notification_grid_created")?></th>
|
||||
<th><?=lang("App.user_grid_options")?></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: 3,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case '1':
|
||||
return '<span class="badge badge-success"><?=lang("App.notification_grid_yes")?></span>';
|
||||
default:
|
||||
return '<span class="badge badge-dark"><?=lang("App.notification_grid_no")?></span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 4,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case '1':
|
||||
return '<span class="badge badge-success"><?=lang("App.notification_grid_yes")?></span>';
|
||||
default:
|
||||
return '<span class="badge badge-dark"><?=lang("App.notification_grid_no")?></span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 5,
|
||||
render: function ( data, type, row ) {
|
||||
switch (data) {
|
||||
case '1':
|
||||
return '<span class="badge badge-success"><?=lang("App.notification_grid_yes")?></span>';
|
||||
default:
|
||||
return '<span class="badge badge-dark"><?=lang("App.notification_grid_no")?></span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
targets: 6,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
}
|
||||
];
|
||||
let order = [[0, "asc"]];
|
||||
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: 'sender' },{ data: 'recipient' },{ data: 'title' },{ data: 'is_send_email' },{ data: 'is_read' },{ data: 'created_at' },{ data: 'options' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url('ajax/getNotification')?>', translate, true, true, order, columns,dataFormat, button);
|
||||
});
|
||||
function delete_this(id){
|
||||
swal({
|
||||
title: "<?=lang("App.notification_delete_title")?>",
|
||||
text: "<?=lang("App.notification_delete_subtitle")?>",
|
||||
type: "warning",
|
||||
showCancelButton: !0,
|
||||
confirmButtonColor: "#f34141",
|
||||
confirmButtonText: "<?=lang("App.notification_delete_btn_ok")?>",
|
||||
cancelButtonText: "<?=lang("App.notification_delete_btn_cancel")?>",
|
||||
closeOnConfirm: !1
|
||||
}).then(function(isConfirm) {
|
||||
console.log(isConfirm);
|
||||
if (isConfirm.value) {
|
||||
window.location.href = '<?=site_url("notification/delete/")?>'+id;
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
376
ci4/app/Views/themes/backend/vuexy/form/profile/index.php
Normal file
@ -0,0 +1,376 @@
|
||||
<!--Style-->
|
||||
<link href="<?=site_url("themes/focus2/vendor/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css")?>" rel="stylesheet">
|
||||
<style>
|
||||
.input_hidden {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
</style>
|
||||
<!--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-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?= formAlert() ?>
|
||||
<form class="form" action="<?=site_url("profile/store")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="form-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="text-primary"><?=lang("App.profile_msg_desc_1")?></label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.profile_first_name")?></label>
|
||||
<input type="text" id="first_name" name="first_name" class="form-control" placeholder="<?=lang("App.profile_first_name_ph")?>" value="<?= (isset($obj)) ? $obj['first_name'] : set_value('first_name');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.profile_last_name")?></label>
|
||||
<input type="text" id="last_name" name="last_name" class="form-control" placeholder="<?=lang("App.profile_last_name_ph")?>" value="<?= (isset($obj)) ? $obj['last_name'] : set_value('last_name');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.profile_date_birth")?></label>
|
||||
<input type="text" class="form-control" placeholder="<?=lang("App.profile_date_birth_ph")?>" id="date_birth" name="date_birth" value="<?= (isset($obj)) ? $obj['date_birth'] : set_value('date_birth');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.profile_email")?></label>
|
||||
<input type="text" id="email" name="email" class="form-control" placeholder="<?=lang("App.profile_email_ph")?>" value="<?= (isset($obj)) ? $obj['email'] : set_value('email');?>" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="mobile" class="text-dark"><?=lang("App.profile_mobile")?></label>
|
||||
<input type="text" id="mobile" name="mobile" class="form-control" placeholder="<?=lang("App.profile_mobile_ph")?>" value="<?= (isset($obj)) ? $obj['mobile'] : set_value('mobile');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="password" class="text-dark"><?=lang("App.profile_password")?></label>
|
||||
<input type="password" id="password" name="password" class="form-control" placeholder="<?=lang("App.profile_password_ph")?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="confirm_password" class="text-dark"><?=lang("App.profile_confirm_password")?></label>
|
||||
<input type="password" id="confirm_password" name="confirm_password" class="form-control" placeholder="<?=lang("App.profile_confirm_password_ph")?>">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="text-primary"><?=lang("App.profile_msg_desc_2")?></label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.profile_address")?></label>
|
||||
<input type="text" id="address" name="address" class="form-control" placeholder="<?=lang("App.profile_address_ph")?>" value="<?= (isset($obj)) ? $obj['address'] : set_value('address');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="city" class="text-dark"><?=lang("App.profile_city")?></label>
|
||||
<input type="text" id="city" name="city" class="form-control" placeholder="<?=lang("App.profile_city_ph")?>" value="<?= (isset($obj)) ? $obj['city'] : set_value('city');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="state" class="text-dark"><?=lang("App.profile_state")?></label>
|
||||
<input type="text" id="state" name="state" class="form-control" placeholder="<?=lang("App.profile_state_ph")?>" value="<?= (isset($obj)) ? $obj['state'] : set_value('state');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="country" class="text-dark"><?=lang("App.profile_country")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['country']??[] : set_value('country');?>
|
||||
<select name="country" id="country" class="form-control">
|
||||
<option value=""><?=lang("App.global_select")?></option>
|
||||
<?php foreach ($country??[] as $item) : ?>
|
||||
<option value="<?=$item['code']??''?>" <?= $id_select == $item['code'] ? 'selected' : '' ?>><?=$item['name']??''?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="language" class="text-dark"><?=lang("App.profile_language")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['language']??[] : set_value('language');?>
|
||||
<select name="language" id="language" class="form-control">
|
||||
<option value=""><?=lang("App.global_select")?></option>
|
||||
<option value="en" <?= $id_select == "en" ? 'selected' : '' ?>><?=lang("App.lang_en")?></option>
|
||||
<option value="es" <?= $id_select == "es" ? 'selected' : '' ?>><?=lang("App.lang_es")?></option>
|
||||
<option value="pt" <?= $id_select == "pt" ? 'selected' : '' ?>><?=lang("App.lang_pt")?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
<button type="submit" class="<?= $btn_submit['class']??''?>">
|
||||
<i class="<?= $btn_submit['icon']??'' ?>"></i> <?= $btn_submit['title']??'' ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?=lang("App.profile_subtitle_image")?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 justify-content-center d-flex" >
|
||||
<img src="<?= $obj['picture']??''?>" class="btn-circle btn-circle-md">
|
||||
</div>
|
||||
<div class="col-lg-12 text-center mt-3" >
|
||||
<span><b><?= $obj['first_name']??''?></b></span><br>
|
||||
<span><?= $obj['email']??''?></span>
|
||||
</div>
|
||||
<div class="col-lg-12 mt-3">
|
||||
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#photoModalCenter"><i class="fas fa-camera"></i> <?=lang("App.profile_change_photo")?></button>
|
||||
</div>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="photoModalCenter">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mb-2">
|
||||
<h5><?=lang("App.profile_change_image")?></h5>
|
||||
</div>
|
||||
<div class="col-lg-3 mt-2">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 justify-content-center d-flex">
|
||||
<form name="form_upload" class="form" action="<?=site_url("profile")?>" enctype="multipart/form-data" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="file" name="file" id="file" class="input_hidden" onchange="form_upload.submit()" accept="image/*">
|
||||
<div class="btn btn-light btn-circle btn-circle-md"><a href="#" class="file-upload"><i class="fas fa-cloud-upload-alt fa-2xl"></i></a></div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center mt-1" >
|
||||
<b><i class="fas fa-upload"></i> <?=strtoupper(lang("App.profile_upload_msg"))?></b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 mt-2">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 justify-content-center d-flex" >
|
||||
<form name="form_not" action="<?=site_url("profile")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" id="image_not" name="image_not" value="<?=site_url("assets/img/default-user.png")?>">
|
||||
<a href="javascript:form_not.submit()"><img src="<?=site_url("assets/img/default-user.png")?>" class="btn-circle btn-circle-md"></a>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center mt-1" >
|
||||
<b><i class="fas fa-user-slash"></i> <?=strtoupper(lang("App.profile_no_image_msg"))?></b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 mt-2">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 justify-content-center d-flex" >
|
||||
<form name="form_gravatar" action="<?=site_url("profile")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" id="image_gravatar" name="image_gravatar" value="https://s.gravatar.com/avatar/<?=MD5($obj['email']??'')?>?s=150">
|
||||
<a href="javascript:form_gravatar.submit()"><img src="https://s.gravatar.com/avatar/<?=MD5($obj['email']??'')?>?s=150" class="btn-circle btn-circle-md"></a>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center mt-1" >
|
||||
<b><i class="fas fa-user-circle"></i> <?=strtoupper(lang("App.profile_gravatar_msg"))?></b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php foreach ($oauth??[] as $item) : ?>
|
||||
<?php
|
||||
$icon = '';
|
||||
switch ($item['provider']) {
|
||||
case "vkontakte":
|
||||
$icon = '<i class="fab fa-vk"></i> ';
|
||||
break;
|
||||
case "wechat":
|
||||
$icon = '<i class="fab fa-weixin"></i> ';
|
||||
break;
|
||||
default:
|
||||
$icon = '<i class="fab fa-'.$item['provider'].'"></i> ';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<div class="col-lg-3 mt-2">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 justify-content-center d-flex" >
|
||||
<form name="form_<?=$item['provider']??''?>" action="<?=site_url("profile")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" id="image_<?=$item['provider']??''?>" name="image_<?=$item['provider']??''?>" value="<?=$item['picture']??''?>">
|
||||
<a href="javascript:form_<?=$item['provider']??''?>.submit()"><img src="<?=$item['picture']??''?>" class="btn-circle btn-circle-md"></a>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center mt-1" >
|
||||
<b><?=$icon?><?=strtoupper($item['provider']??'')?></b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $settings = session()->get('settings'); ?>
|
||||
<?php if ($settings['two_factor_auth']) : ?>
|
||||
<form name="form_otp" class="form" action="<?=site_url("profile/store")?>" method="post" id="sendFormTFA">
|
||||
<?= csrf_field() ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row mx-0" style="width: 100%;">
|
||||
<div class="col-sm-6 p-md-0">
|
||||
<h4 class="card-title"><?=lang("App.profile_subtitle_tfa")?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<div class="custom-control custom-switch ml-2">
|
||||
<input type="checkbox" id="tfa" name="tfa" class="custom-control-input" onchange="tfaView()" <?=$obj['tfa']??false ?'checked':''?>>
|
||||
<label for="tfa" class="custom-control-label"><?= lang("App.profile_tfa_msg") ?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="otp" style="display: <?=$obj['tfa']??false ?'block':'none'?>">
|
||||
<?php
|
||||
$tfa = new \App\Libraries\Authenticator();
|
||||
$name = $obj['first_name']??'';
|
||||
if($obj['tfa'] && !empty($obj['tfa_secret'])) {
|
||||
$tfa_secret = $obj['tfa_secret']??'';
|
||||
$qrcode = $tfa->GetQR("{$settings['title']} ({$name})", $tfa_secret);
|
||||
} else {
|
||||
$tfa_secret = $tfa->createSecret();
|
||||
$qrcode = $tfa->GetQR("{$settings['title']} ({$name})", $tfa_secret);
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<p><b><?=lang("App.profile_qrcode")?></b></p>
|
||||
<img src="<?php echo $qrcode; ?>" class="img-responsive">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<p><b><?=lang("App.profile_backup_code")?></b></p>
|
||||
<?php
|
||||
$codes = "";
|
||||
if(!empty($obj['tfa_code']??'')) {
|
||||
$codes = explode(',' , $obj['tfa_code']??'');
|
||||
foreach($codes as $item) {
|
||||
echo '<span class="badge badge-primary mr-2 mb-1">'.$item.'</span>';
|
||||
}
|
||||
}else{
|
||||
$codes = array();
|
||||
for($i = 1 ; $i <= 8 ; $i++) {
|
||||
$code = random_string('numeric', 6);
|
||||
$codes[] = $code;
|
||||
echo '<span class="badge badge-primary mr-2 mb-1">'.$code.'</span>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<p class="mt-2"><b><?=lang("App.profile_tfa_secret")?></b><br><b class="text-primary"><?=$tfa_secret?></b></p>
|
||||
<input type="hidden" id="tfa_secret" name="tfa_secret" value="<?=$tfa_secret?>">
|
||||
<input type="hidden" id="tfa_code" name="tfa_code" value="<?=implode(',',$codes)?>">
|
||||
<button type="button" class="btn btn-primary btn-block mt-2" onclick="download('<?=lang("App.profile_qrcode")?>\n<?=implode(",",$codes)?>\n<?=lang("App.profile_tfa_secret")?>\n<?=$tfa_secret?>','backup_codes.txt')"><i class="fas fa-download mr-1"></i> <?=lang("App.profile_tfa_download")?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/select2/js/select2.full.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>
|
||||
<!-- Date Range Picker -->
|
||||
<!-- momment js is must -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/moment/moment.min.js")?>">></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/bootstrap-daterangepicker/daterangepicker.js")?>">></script>
|
||||
<!-- Material color picker -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.js")?>">></script>
|
||||
<!-- Form -->
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#first_name').focus();
|
||||
$("#country").select2();
|
||||
$("#language").select2();
|
||||
$('#date_birth').bootstrapMaterialDatePicker({
|
||||
format: '<?=momentDateJS()?>',
|
||||
time: false
|
||||
});
|
||||
});
|
||||
$('.file-upload').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
$('#file').trigger('click');
|
||||
});
|
||||
function download(text, filename){
|
||||
let blob = new Blob([text], {type: "text/plain;charset=utf-8"});
|
||||
let url = window.URL.createObjectURL(blob);
|
||||
let a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = filename;
|
||||
a.click();
|
||||
}
|
||||
function tfaView(){
|
||||
document.getElementById("sendFormTFA").submit();
|
||||
}
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
1173
ci4/app/Views/themes/backend/vuexy/form/settings/index.php
Normal file
182
ci4/app/Views/themes/backend/vuexy/form/settings/template.php
Normal file
@ -0,0 +1,182 @@
|
||||
<!--Style-->
|
||||
<link href="<?=site_url("themes/focus2/vendor/summernote/summernote.css")?>" rel="stylesheet">
|
||||
<!--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>
|
||||
<form class="form" action="<?=site_url("settings/template_store")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row mx-0" style="width: 100%;">
|
||||
<div class="col-sm-6 p-md-0">
|
||||
<h4 class="card-title"><?=lang("App.template_subtitle_email")?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<button type="button" class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#tagModalCenter" title="<?=lang("App.template_label_tag")?>">
|
||||
<i class="fas fa-tags"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="default-tab">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<?php $count=1; ?>
|
||||
<?php foreach ($template??[] as $item) : ?>
|
||||
<?php if ($item['type']=='email') : ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link <?=$count==1?'active':''?>" data-toggle="tab" href="#email_<?=$item['id_template']?>"><?=lang("App.".$item['name'])?></a>
|
||||
</li>
|
||||
<?php $count++; ?>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<?php $count=1; ?>
|
||||
<?php foreach ($template??[] as $item) : ?>
|
||||
<?php if ($item['type']=='email') : ?>
|
||||
<div class="tab-pane fade show <?=$count==1?'active':''?>" id="email_<?=$item['id_template']?>" role="tabpanel">
|
||||
<div class="row mt-4">
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.template_label_title")?></label>
|
||||
<input type="text" id="title_email_<?=$item['id_template']?>" name="title_email_<?=$item['id_template']?>" class="form-control" placeholder="<?=lang("App.template_label_title_ph")?>" value="<?=$item['subject']?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.template_label_message")?></label>
|
||||
<textarea class="form-control" id="body_email_<?=$item['id_template']?>" name="body_email_<?=$item['id_template']?>" rows="3"><?=$item['body']?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $count++; ?>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="form-actions">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
<button type="submit" class="<?= $btn_submit['class']??''?>">
|
||||
<i class="<?= $btn_submit['icon']??'' ?>"></i> <?= $btn_submit['title']??'' ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="tagModalCenter">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><?=lang("App.template_modal_title")?></h5>
|
||||
<button type="button" class="close" data-dismiss="modal"><span>×</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p><?=lang("App.template_modal_subtitle")?></p>
|
||||
<?php foreach (keywordEmail()??[] as $item) : ?>
|
||||
<button type="button" class="btn btn-primary btn-sm mt-1 mr-1" onclick="copy('[<?=$item?>]')">[<?=$item?>]</button>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-dark" data-dismiss="modal"><?=lang("App.template_modal_btn_1")?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/select2/js/select2.full.min.js")?>"></script>
|
||||
<!-- Summernote -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/summernote/summernote.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>
|
||||
<!-- Form -->
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#first_name').focus();
|
||||
$("#email_gateway").select2();
|
||||
$("#email_cert").select2();
|
||||
|
||||
let configSummerNote = {
|
||||
height: 150, // set editor height
|
||||
minHeight: null, // set minimum height of editor
|
||||
maxHeight: null, // set maximum height of editor
|
||||
focus: true, // set focus to editable area after initializing summernote
|
||||
toolbar: [
|
||||
['style', ['style']],
|
||||
['font', ['bold', 'italic', 'underline', 'clear']],
|
||||
['fontname', ['fontname']],
|
||||
['color', ['color']],
|
||||
['para', ['ul', 'ol', 'paragraph']],
|
||||
['height', ['height']],
|
||||
['table', ['table']],
|
||||
['insert', ['link', 'picture', 'hr']],
|
||||
['view', ['codeview']]
|
||||
]
|
||||
}
|
||||
<?php foreach ($template??[] as $item) : ?>
|
||||
$("#body_<?=$item['type']?>_<?=$item['id_template']?>").summernote(configSummerNote);
|
||||
<?php endforeach; ?>
|
||||
});
|
||||
<?php foreach ($template??[] as $item) : ?>
|
||||
$("#body_<?=$item['type']?>_<?=$item['id_template']?>").on("summernote.enter", function(we, e) {
|
||||
$(this).summernote("pasteHTML", "<br><br>");
|
||||
e.preventDefault();
|
||||
});
|
||||
<?php endforeach; ?>
|
||||
function copy(copyText) {
|
||||
navigator.clipboard.writeText(copyText);
|
||||
toastr.success('<?= lang("App.template_modal_copy_msg") ?>','<?= lang("App.template_modal_copy") ?>!',{positionClass: 'toast-top-center'})
|
||||
$('#tagModalCenter').modal('hide')
|
||||
}
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
<?= toastAlert() ?>
|
||||
@ -0,0 +1,70 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<div class="mb-3">
|
||||
<label for="nombre" class="form-label">
|
||||
<?=lang('Tarifaacabado.nombre') ?>*
|
||||
</label>
|
||||
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control" value="<?=old('nombre', $tarifaacabado_->nombre) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="tiradaMin" class="form-label">
|
||||
<?=lang('Tarifaacabado.tiradaMin') ?>*
|
||||
</label>
|
||||
<input type="number" id="tiradaMin" name="tirada_min" required placeholder="0" maxLength="11" class="form-control" value="<?=old('tirada_min', $tarifaacabado_->tirada_min) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="precioMin" class="form-label">
|
||||
<?=lang('Tarifaacabado.precioMin') ?>*
|
||||
</label>
|
||||
<input type="number" id="precioMin" name="precio_min" required placeholder="0" maxLength="31" step="0.01" class="form-control" value="<?=old('precio_min', $tarifaacabado_->precio_min) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="tiradaMax" class="form-label">
|
||||
<?=lang('Tarifaacabado.tiradaMax') ?>*
|
||||
</label>
|
||||
<input type="number" id="tiradaMax" name="tirada_max" required placeholder="0" maxLength="11" class="form-control" value="<?=old('tirada_max', $tarifaacabado_->tirada_max) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="precioMax" class="form-label">
|
||||
<?=lang('Tarifaacabado.precioMax') ?>*
|
||||
</label>
|
||||
<input type="number" id="precioMax" name="precio_max" required maxLength="31" step="0.01" class="form-control" value="<?=old('precio_max', $tarifaacabado_->precio_max) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="ajuste" class="form-label">
|
||||
<?=lang('Tarifaacabado.ajuste') ?>*
|
||||
</label>
|
||||
<input type="number" id="ajuste" name="ajuste" required placeholder="0" maxLength="31" step="0.01" class="form-control" value="<?=old('ajuste', $tarifaacabado_->ajuste) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
</div><!--//.col -->
|
||||
<div class="col-md-12 col-lg-6 px-4">
|
||||
<div class="mb-3">
|
||||
<label for="formulaPrice" class="form-label">
|
||||
<?=lang('Tarifaacabado.formulaPrice') ?>*
|
||||
</label>
|
||||
<textarea rows="3" id="formulaPrice" name="formula_price" required style="height: 10em;" class="form-control"><?=old('formula_price', $tarifaacabado_->formula_price) ?></textarea>
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="userCreatedId" class="form-label">
|
||||
<?=lang('Tarifaacabado.userCreatedId') ?>*
|
||||
</label>
|
||||
<input type="number" id="userCreatedId" name="user_created_id" required placeholder="1" maxLength="10" class="form-control" value="<?=old('user_created_id', $tarifaacabado_->user_created_id) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="userUpdateId" class="form-label">
|
||||
<?=lang('Tarifaacabado.userUpdateId') ?>*
|
||||
</label>
|
||||
<input type="number" id="userUpdateId" name="user_update_id" required placeholder="1" maxLength="10" class="form-control" value="<?=old('user_update_id', $tarifaacabado_->user_update_id) ?>">
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
</div><!--//.col -->
|
||||
|
||||
</div><!-- //.row -->
|
||||
@ -0,0 +1,25 @@
|
||||
<?= $this->include("Themes/_commonPartialsBs/select2bs5") ?>
|
||||
<?= $this->extend("Themes/" . config("Basics")->theme["name"] . "/AdminLayout/defaultLayout") ?>
|
||||
<?= $this->section("content") ?>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||
</div><!--//.card-header -->
|
||||
<form id="tarifaacabadoForm" method="post" action="<?= $formAction ?>">
|
||||
<?= csrf_field() ?>
|
||||
<div class="card-body">
|
||||
<?= view("Themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||
<?= view("admin/acabadoViews/_tarifaacabadoFormItems") ?>
|
||||
</div><!-- /.card-body -->
|
||||
<div class="card-footer">
|
||||
<?= anchor(route_to("tarifaacabadoList2"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
|
||||
<input type="submit" class="btn btn-primary float-end" name="save" value="<?= lang("Basic.global.Save") ?>">
|
||||
</div><!-- /.card-footer -->
|
||||
</form>
|
||||
</div><!-- //.card -->
|
||||
</div><!--//.col -->
|
||||
</div><!--//.row -->
|
||||
<?= $this->endSection() ?>
|
||||
@ -0,0 +1,93 @@
|
||||
<?=$this->include('themes/_commonPartialsBs/datatables') ?>
|
||||
<?=$this->extend('themes/backend/focus2/main/defaultlayout') ?>
|
||||
|
||||
<?=$this->section('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title"><?=lang('Tarifaacabado.tarifaacabadoList') ?></h3>
|
||||
<?=anchor(route_to('newTarifaacabado'), lang('Basic.global.addNew').' '.lang('Tarifaacabado.tarifaacabado'), ['class'=>'btn btn-primary float-end']); ?>
|
||||
</div><!--//.card-header -->
|
||||
<div class="card-body">
|
||||
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
|
||||
|
||||
<table id="tableOfTarifasacabado" class="table table-striped table-hover using-data-table" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('Tarifaacabado.id') ?></th>
|
||||
<th><?= lang('Tarifaacabado.nombre') ?></th>
|
||||
<th><?= lang('Tarifaacabado.tiradaMin') ?></th>
|
||||
<th><?= lang('Tarifaacabado.precioMin') ?></th>
|
||||
<th><?= lang('Tarifaacabado.tiradaMax') ?></th>
|
||||
<th><?= lang('Tarifaacabado.precioMax') ?></th>
|
||||
<th><?= lang('Tarifaacabado.ajuste') ?></th>
|
||||
<th><?= lang('Tarifaacabado.formulaPrice') ?></th>
|
||||
<th><?= lang('Tarifaacabado.userCreatedId') ?></th>
|
||||
<th><?= lang('Tarifaacabado.userUpdateId') ?></th>
|
||||
<th><?= lang('Tarifaacabado.deletedAt') ?></th>
|
||||
<th><?= lang('Tarifaacabado.createdAt') ?></th>
|
||||
<th><?= lang('Tarifaacabado.updatedAt') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($tarifaacabadoList as $item ) : ?>
|
||||
<tr>
|
||||
<td class="align-middle text-center">
|
||||
<?=$item->id ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= empty($item->nombre) || strlen($item->nombre) < 51 ? esc($item->nombre) : character_limiter(esc($item->nombre), 50) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->tirada_min) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->precio_min) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->tirada_max) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->precio_max) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->ajuste) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= empty($item->formula_price) || strlen($item->formula_price) < 51 ? esc($item->formula_price) : character_limiter(esc($item->formula_price), 50) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->user_created_id) ?>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<?= esc($item->user_update_id) ?>
|
||||
</td>
|
||||
<td class="align-middle text-nowrap">
|
||||
<?= empty($item->deleted_at) ? '' : date('d/m/Y H:m:s', strtotime($item->deleted_at)) ?>
|
||||
</td>
|
||||
<td class="align-middle text-nowrap">
|
||||
<?= empty($item->created_at) ? '' : date('d/m/Y H:m:s', strtotime($item->created_at)) ?>
|
||||
</td>
|
||||
<td class="align-middle text-nowrap">
|
||||
<?= empty($item->updated_at) ? '' : date('d/m/Y H:m:s', strtotime($item->updated_at)) ?>
|
||||
</td>
|
||||
<td class="align-middle text-center text-nowrap">
|
||||
<?=anchor(route_to('editTarifaacabado', $item->id), lang('Basic.global.edit'), ['class'=>'btn btn-sm btn-warning btn-edit me-1', 'data-id'=>$item->id,]); ?>
|
||||
<?=anchor('#confirm2delete', lang('Basic.global.Delete'), ['class'=>'btn btn-sm btn-danger btn-delete ms-1', 'data-href'=>route_to('deleteTarifaacabado', $item->id), 'data-bs-toggle'=>'modal', 'data-bs-target'=>'#confirm2delete']); ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div><!--//.card-body -->
|
||||
<div class="card-footer">
|
||||
</div><!--//.card-footer -->
|
||||
</div><!--//.card -->
|
||||
</div><!--//.col -->
|
||||
</div><!--//.row -->
|
||||
|
||||
<?=$this->endSection() ?>
|
||||
219
ci4/app/Views/themes/backend/vuexy/form/user/form.php
Normal file
@ -0,0 +1,219 @@
|
||||
<!--Style-->
|
||||
<link href="<?=site_url("themes/focus2/vendor/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css")?>" rel="stylesheet">
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?= formAlert() ?>
|
||||
<form class="form" action="<?=site_url("user/store")?>" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<input type="hidden" name="id_user" value="<?= (isset($obj)) ? $obj['id_user'] : set_value('id_user') ?>">
|
||||
<div class="form-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="text-primary"><?=lang("App.user_msg_desc_1")?></label>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.user_field_first_name")?></label>
|
||||
<input type="text" id="first_name" name="first_name" class="form-control" placeholder="<?=lang("App.user_field_first_name_ph")?>" value="<?= (isset($obj)) ? $obj['first_name'] : set_value('first_name');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.user_field_last_name")?></label>
|
||||
<input type="text" id="last_name" name="last_name" class="form-control" placeholder="<?=lang("App.user_field_last_name_ph")?>" value="<?= (isset($obj)) ? $obj['last_name'] : set_value('last_name');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.user_field_email")?></label>
|
||||
<input type="text" id="email" name="email" class="form-control" placeholder="<?=lang("App.user_field_email_ph")?>" value="<?= (isset($obj)) ? $obj['email'] : set_value('email');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.user_field_date_birth")?></label>
|
||||
<input type="text" class="form-control" placeholder="<?=lang("App.user_field_date_birth_ph")?>" id="date_birth" name="date_birth" value="<?= (isset($obj)) ? $obj['date_birth'] : set_value('date_birth');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="mobile" class="text-dark"><?=lang("App.user_field_cell")?></label>
|
||||
<input type="text" id="mobile" name="mobile" class="form-control" placeholder="<?=lang("App.user_field_cell_ph")?>" value="<?= (isset($obj)) ? $obj['mobile'] : set_value('mobile');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="password" class="text-dark"><?=lang("App.user_field_password")?></label>
|
||||
<input type="password" id="password" name="password" class="form-control" placeholder="<?=lang("App.user_field_password_ph")?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="confirm_password" class="text-dark"><?=lang("App.user_field_password_confirm")?></label>
|
||||
<input type="password" id="confirm_password" name="confirm_password" class="form-control" placeholder="<?=lang("App.user_field_password_confirm_ph")?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="id_group" class="text-dark"><?=lang("App.user_field_group")?></label>
|
||||
<?php $select = (isset($selected_groups)) ? $selected_groups??[] : [];?>
|
||||
<select name="group[]" id="group" multiple="multiple">
|
||||
<?php foreach ($group??[] as $item) : ?>
|
||||
<?php foreach ($select??[] as $id_select) : ?>
|
||||
<?php
|
||||
if ($id_select['token_group'] == $item['token']){
|
||||
$selItem = 'selected';
|
||||
break;
|
||||
}
|
||||
else{
|
||||
$selItem = '';
|
||||
}
|
||||
?>
|
||||
<?php endforeach; ?>
|
||||
<option value="<?=$item['token']??''?>" <?= isset($selItem)?$selItem:"" ?>> <?=$item['title']??''?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="email_confirmed" class="text-dark"><?=lang("App.user_field_email_confirmed")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['email_confirmed']??[] : set_value('email_confirmed');?>
|
||||
<select name="email_confirmed" id="email_confirmed" class="form-control">
|
||||
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("App.user_alert_not_confirmed")?></option>
|
||||
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("App.user_alert_confirmed")?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="status" class="text-dark"><?=lang("App.user_field_status")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['status']??[] : set_value('status');?>
|
||||
<select name="status" id="status" class="form-control">
|
||||
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("App.global_active")?></option>
|
||||
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("App.global_inactive")?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="text-primary"><?=lang("App.user_msg_desc_2")?></label>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<div class="form-group">
|
||||
<label class="text-dark"><?=lang("App.user_field_address")?></label>
|
||||
<input type="text" id="address" name="address" class="form-control" placeholder="<?=lang("App.user_field_address_ph")?>" value="<?= (isset($obj)) ? $obj['address'] : set_value('address');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="form-group">
|
||||
<label for="city" class="text-dark"><?=lang("App.user_field_city")?></label>
|
||||
<input type="text" id="city" name="city" class="form-control" placeholder="<?=lang("App.user_field_city_ph")?>" value="<?= (isset($obj)) ? $obj['city'] : set_value('city');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="state" class="text-dark"><?=lang("App.user_field_state")?></label>
|
||||
<input type="text" id="state" name="state" class="form-control" placeholder="<?=lang("App.user_field_state_ph")?>" value="<?= (isset($obj)) ? $obj['state'] : set_value('state');?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="country" class="text-dark"><?=lang("App.user_field_country")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['country']??[] : set_value('country');?>
|
||||
<select name="country" id="country" class="form-control">
|
||||
<option value=""><?=lang("App.global_select")?></option>
|
||||
<?php foreach ($country??[] as $item) : ?>
|
||||
<option value="<?=$item['code']??''?>" <?= $id_select == $item['code'] ? 'selected' : '' ?>><?=$item['name']??''?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="form-group">
|
||||
<label for="language" class="text-dark"><?=lang("App.user_field_language")?></label>
|
||||
<?php $id_select = (isset($obj)) ? $obj['language']??[] : set_value('language');?>
|
||||
<select name="language" id="language" class="form-control">
|
||||
<option value=""><?=lang("App.global_select")?></option>
|
||||
<option value="en" <?= $id_select == "en" ? 'selected' : '' ?>><?=lang("App.lang_en")?></option>
|
||||
<option value="es" <?= $id_select == "es" ? 'selected' : '' ?>><?=lang("App.lang_es")?></option>
|
||||
<option value="pt" <?= $id_select == "pt" ? 'selected' : '' ?>><?=lang("App.lang_pt")?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<a href="<?= site_url($btn_return['route']??'#') ?>" class="<?= $btn_return['class']??''?>">
|
||||
<i class="<?= $btn_return['icon']??'' ?>"></i> <?= $btn_return['title']??'' ?>
|
||||
</a>
|
||||
<button type="submit" class="<?= $btn_submit['class']??''?>">
|
||||
<i class="<?= $btn_submit['icon']??'' ?>"></i> <?= $btn_submit['title']??'' ?>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</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>
|
||||
<script src="<?=site_url("themes/focus2/vendor/select2/js/select2.full.min.js")?>"></script>
|
||||
<!-- Date Range Picker -->
|
||||
<!-- momment js is must -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/moment/moment.min.js")?>"></script>
|
||||
<script src="<?=site_url("themes/focus2/vendor/bootstrap-daterangepicker/daterangepicker.js")?>"></script>
|
||||
<!-- Material color picker -->
|
||||
<script src="<?=site_url("themes/focus2/vendor/bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.js")?>"></script>
|
||||
<!-- Form -->
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
$('#first_name').focus();
|
||||
$("#group").select2();
|
||||
$("#status").select2();
|
||||
$("#country").select2();
|
||||
$("#language").select2();
|
||||
$("#email_confirmed").select2();
|
||||
$('#date_birth').bootstrapMaterialDatePicker({
|
||||
format: '<?=momentDateJS()?>',
|
||||
time: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
120
ci4/app/Views/themes/backend/vuexy/form/user/index.php
Normal file
@ -0,0 +1,120 @@
|
||||
<!--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-12">
|
||||
<div class="card">
|
||||
<div class="card-header row">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="card-title"><?= $title['page']??'' ?></h4>
|
||||
</div>
|
||||
<div class="col-sm-6 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||
<a href="<?= site_url($btn_add['route']??'#')?>" class="<?= $btn_add['class']??''?>">
|
||||
<i class="<?= $btn_add['icon']??'' ?>"></i> <?= $btn_add['title']??'' ?>
|
||||
</a>
|
||||
</div>
|
||||
</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.user_grid_name")?></th>
|
||||
<th><?=lang("App.user_grid_email")?></th>
|
||||
<th><?=lang("App.user_grid_group")?></th>
|
||||
<th><?=lang("App.user_grid_mobile")?></th>
|
||||
<th><?=lang("App.user_grid_last_access")?></th>
|
||||
<th><?=lang("App.user_grid_last_ip")?></th>
|
||||
<th><?=lang("App.user_grid_created")?></th>
|
||||
<th><?=lang("App.user_grid_options")?></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: 4,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
},
|
||||
{
|
||||
targets: 6,
|
||||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss','<?=momentDateTimeJS()?>')
|
||||
}
|
||||
];
|
||||
let order = [[0, "asc"]];
|
||||
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: 'first_name' },{ data: 'email' },{ data: 'group' },{ data: 'mobile' },{ data: 'last_access' },{ data: 'last_ip' },{ data: 'created_at' },{ data: 'options' }];
|
||||
loadDataTableAjax('table-grid', '<?=site_url('ajax/getUsers')?>', translate, true, true, order, columns,dataFormat, button);
|
||||
});
|
||||
function delete_user(id){
|
||||
swal({
|
||||
title: "<?=lang("App.user_delete_title")?>",
|
||||
text: "<?=lang("App.user_delete_subtitle")?>",
|
||||
type: "warning",
|
||||
showCancelButton: !0,
|
||||
confirmButtonColor: "#f34141",
|
||||
confirmButtonText: "<?=lang("App.user_delete_btn_ok")?>",
|
||||
cancelButtonText: "<?=lang("App.user_delete_btn_cancel")?>",
|
||||
closeOnConfirm: !1
|
||||
}).then(function(isConfirm) {
|
||||
console.log(isConfirm);
|
||||
if (isConfirm.value) {
|
||||
window.location.href = '<?=site_url("usuarios/user/delete/")?>'+id;
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
8
ci4/app/Views/themes/backend/vuexy/login/footer.php
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 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/vendor/toastr/js/toastr.min.js'); ?>"></script>
|
||||
<script src="<?= site_url('assets/js/login.js'); ?>"></script>
|
||||
<?= toastAlert() ?>
|
||||
</body>
|
||||
</html>
|
||||
28
ci4/app/Views/themes/backend/vuexy/login/header.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
$session = session();
|
||||
$token = $session->get('token')??'';
|
||||
$tfa = $session->get('tfa')??false;
|
||||
$settings = $session->get('settings');
|
||||
if (!empty($token) && $tfa == false) {
|
||||
echo "<script>window.location.href = '/'; </script>";
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?= $settings['default_language']??'en'=='pt' ? 'pt-br' : $settings['default_language']??'en' ?>" class="h-100">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title><?= $settings['title']??'' ?><?= empty($title??'') ? '' : ' - ' . $title?></title>
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<?= site_url('themes/focus2/images/favicon.png'); ?>">
|
||||
<link href="<?= site_url('themes/focus2/vendor/toastr/css/toastr.min.css'); ?>" rel="stylesheet">
|
||||
<link href="<?= site_url('themes/focus2/css/style.css'); ?>" rel="stylesheet">
|
||||
<?php
|
||||
if($settings['captcha_gateway'] == 'recaptcha'){
|
||||
echo "<script src='https://www.google.com/recaptcha/api.js' async defer></script>";
|
||||
}else{
|
||||
echo "<script src='https://www.hCaptcha.com/1/api.js' async defer></script>";
|
||||
}
|
||||
?>
|
||||
</head>
|
||||
<body class="h-100">
|
||||
211
ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php
Normal file
@ -0,0 +1,211 @@
|
||||
<?php
|
||||
$settings = session()->get('settings');
|
||||
$picture = session()->get('picture');
|
||||
$pulse = session()->get('pulse');
|
||||
$notification = session()->get('notification');
|
||||
?>
|
||||
<?php
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?= $settings['default_language']??'en'=='pt' ? 'pt-br' : $settings['default_language']??'en' ?>">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title><?= lang("App.dashboard_title") ?> - <?= $settings['title']??'' ?></title>
|
||||
<!-- Favicon icon -->
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<?=site_url('themes/focus2/images/favicon.png')?>">
|
||||
<link href="<?=site_url('themes/focus2/vendor/owl-carousel/css/owl.carousel.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/owl-carousel/css/owl.theme.default.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/jqvmap/css/jqvmap.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/datatables/css/jquery.dataTables.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/select2/css/select2.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/lou-multi-select/css/multi-select.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/nestable2/css/jquery.nestable.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/toastr/css/toastr.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/css/style.css')?>" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="preloader">
|
||||
<div class="sk-three-bounce">
|
||||
<div class="sk-child sk-bounce1"></div>
|
||||
<div class="sk-child sk-bounce2"></div>
|
||||
<div class="sk-child sk-bounce3"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mainWrapper">
|
||||
<!--Nav Header-->
|
||||
<div class="nav-header">
|
||||
<a href="<?=site_url('home')?>" class="brand-logo">
|
||||
|
||||
<!--- Insertar logo safekat --->
|
||||
</a>
|
||||
<div class="nav-control">
|
||||
<div class="hamburger">
|
||||
<span class="line"></span><span class="line"></span><span class="line"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Header-->
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<nav class="navbar navbar-expand">
|
||||
<div class="collapse navbar-collapse justify-content-between">
|
||||
<div class="header-left"></div>
|
||||
<ul class="navbar-nav header-right">
|
||||
<li class="nav-item dropdown header-profile">
|
||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown">
|
||||
<i class="fas fa-globe-americas"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a href="<?= site_url('lang/en'); ?>" class="dropdown-item">
|
||||
<img src="<?=site_url('assets/flags/us_32_circle.png')?>">
|
||||
<span class="ml-2"><?= lang("App.lang_en") ?></span>
|
||||
</a>
|
||||
<a href="<?= site_url('lang/es'); ?>" class="dropdown-item">
|
||||
<img src="<?=site_url('assets/flags/es_32_circle.png')?>">
|
||||
<span class="ml-2"><?= lang("App.lang_es") ?></span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown header-profile">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
<img src="<?= $picture??''?>" class="btn-circle btn-circle-sm" style="width: 50px ; height: 50px;">
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a href="<?= site_url('profile'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-user"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_profile") ?></span>
|
||||
</a>
|
||||
<!--- JJO
|
||||
<a href="<?= site_url('activity'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-list"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_activity") ?></span>
|
||||
</a>
|
||||
--->
|
||||
<a href="<?= site_url('login/logout'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-sign-out-alt"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_logout") ?></span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<?php include "menu.php" ?>
|
||||
|
||||
|
||||
<div class="content-body">
|
||||
<div class="container-fluid">
|
||||
<?= $this->renderSection('content') ?>
|
||||
</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";
|
||||
|
||||
</script>
|
||||
<?= sweetAlert() ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?= $this->renderSection('footerAdditions') ?>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
||||
|
||||
<?= $this->renderSection('additionalExternalJs') ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var theTable;
|
||||
var <?=csrf_token() ?? 'token'?>v = '<?= csrf_hash() ?>';
|
||||
|
||||
function yeniden(andac = null) {
|
||||
if (andac == null) {
|
||||
andac = <?= csrf_token() ?>v;
|
||||
} else {
|
||||
<?= csrf_token() ?>v = andac;
|
||||
}
|
||||
$('input[name="<?= csrf_token() ?>"]').val(andac);
|
||||
$('meta[name="<?= config('Security')->tokenName ?>"]').attr('content', andac)
|
||||
$.ajaxSetup({ headers: {'<?= config('Security')->headerName ?>': andac, 'X-Requested-With': 'XMLHttpRequest' }, <?=csrf_token()?>: andac });
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
function adjustSidebar4ContentWrapper() {
|
||||
if ($('#sidebar').hasClass('d-none') && $(window).width() <= 768) {
|
||||
$('#contentWrapper').addClass('full-width');
|
||||
} else {
|
||||
if (!$('#sidebar').hasClass('inactive')) {
|
||||
$('#contentWrapper').removeClass('full-width');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
adjustSidebar4ContentWrapper();
|
||||
|
||||
$('#sidebarCollapse').on('click', function () {
|
||||
|
||||
if ($('#sidebar').hasClass('d-none') && $(window).width() <= 768 ) {
|
||||
$('#sidebar').removeClass('d-none d-sm-none d-md-block');
|
||||
|
||||
$('#contentWrapper').removeClass('full-width');
|
||||
} else {
|
||||
$('#sidebar').toggleClass('inactive');
|
||||
$('#contentWrapper').toggleClass('full-width');
|
||||
$('.collapse.in').toggleClass('in');
|
||||
$('a[aria-expanded=true]').attr('aria-expanded', 'false');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
adjustSidebar4ContentWrapper();
|
||||
});
|
||||
|
||||
<?= $this->renderSection('additionalInlineJs') ?>
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
19
ci4/app/Views/themes/backend/vuexy/main/footer.php
Normal file
@ -0,0 +1,19 @@
|
||||
<script src="<?= site_url('themes/focus2/vendor/timeago/jquery.timeago.js'); ?>"></script>
|
||||
<script src="<?= site_url('themes/focus2/vendor/timeago/locales/jquery.timeago.'.langJS().'.js'); ?>"></script>
|
||||
<script>
|
||||
"use strict";
|
||||
$(document).ready(function () {
|
||||
let time_ago = document.getElementsByClassName("timeAgo");
|
||||
for (let i = 0; i < time_ago.length; i++) {
|
||||
time_ago[i].innerText = jQuery.timeago(time_ago[i].innerText)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<div class="footer">
|
||||
<div class="copyright">
|
||||
<p>Copyright © Designed by <a href="https://quixkit.com/" target="_blank">Quixkit</a> & Developed by <a href="https://eduardofiorini.com/" target="_blank">Eduardo Fiorini</a> - WebGuard v<?=version()?> </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
128
ci4/app/Views/themes/backend/vuexy/main/header.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
$settings = session()->get('settings');
|
||||
$picture = session()->get('picture');
|
||||
$pulse = session()->get('pulse');
|
||||
$notification = session()->get('notification');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?= $settings['default_language']??'en'=='pt' ? 'pt-br' : $settings['default_language']??'en' ?>">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title><?= lang("App.dashboard_title") ?> - <?= $settings['title']??'' ?></title>
|
||||
<!-- Favicon icon -->
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<?=site_url('themes/focus2/images/favicon.png')?>">
|
||||
<link href="<?=site_url('themes/focus2/vendor/owl-carousel/css/owl.carousel.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/owl-carousel/css/owl.theme.default.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/jqvmap/css/jqvmap.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/datatables/css/jquery.dataTables.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/select2/css/select2.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/sweetalert2/dist/sweetalert2.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/lou-multi-select/css/multi-select.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/nestable2/css/jquery.nestable.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/vendor/toastr/css/toastr.min.css')?>" rel="stylesheet">
|
||||
<link href="<?=site_url('themes/focus2/css/style.css')?>" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<!--PreLoader-->
|
||||
<div id="preloader">
|
||||
<div class="sk-three-bounce">
|
||||
<div class="sk-child sk-bounce1"></div>
|
||||
<div class="sk-child sk-bounce2"></div>
|
||||
<div class="sk-child sk-bounce3"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Main Wrapper-->
|
||||
<div id="main-wrapper">
|
||||
<!--Nav Header-->
|
||||
<div class="nav-header">
|
||||
<a href="<?=site_url('home')?>" class="brand-logo">
|
||||
|
||||
</a>
|
||||
<div class="nav-control">
|
||||
<div class="hamburger">
|
||||
<span class="line"></span><span class="line"></span><span class="line"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Header-->
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<nav class="navbar navbar-expand">
|
||||
<div class="collapse navbar-collapse justify-content-between">
|
||||
<div class="header-left"></div>
|
||||
<ul class="navbar-nav header-right">
|
||||
<!--- JJO
|
||||
<li class="nav-item dropdown notification_dropdown">
|
||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown">
|
||||
<i class="fas fa-bell"></i>
|
||||
<?php if ($pulse > 0) : ?>
|
||||
<div class="pulse-css text-danger"></div>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<ul class="list-unstyled">
|
||||
<?php foreach ($notification??[] as $item) : ?>
|
||||
<a href="<?=site_url('my/notification_view/'.$item['token'])?>">
|
||||
<li class="media dropdown-item">
|
||||
<?php if ($item['is_read']) : ?>
|
||||
<span class="success"><i class="far fa-envelope-open"></i> </span>
|
||||
<?php else : ?>
|
||||
<span class="primary"><i class="far fa-envelope"></i> </span>
|
||||
<?php endif; ?>
|
||||
<div class="media-body">
|
||||
<p><?=$item['title']?></p>
|
||||
</div>
|
||||
<span class="notify-time timeAgo"><?=$item['created_at']?></span>
|
||||
</li>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<a class="all-notification" href="<?=site_url('my/notification')?>"><?= lang("App.notification_bell_btn") ?> <i class="ti-arrow-right"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
--->
|
||||
<li class="nav-item dropdown header-profile">
|
||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown">
|
||||
<i class="fas fa-globe-americas"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a href="<?= site_url('lang/en'); ?>" class="dropdown-item">
|
||||
<img src="<?=site_url('assets/flags/us_32_circle.png')?>">
|
||||
<span class="ml-2"><?= lang("App.lang_en") ?></span>
|
||||
</a>
|
||||
<a href="<?= site_url('lang/es'); ?>" class="dropdown-item">
|
||||
<img src="<?=site_url('assets/flags/es_32_circle.png')?>">
|
||||
<span class="ml-2"><?= lang("App.lang_es") ?></span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown header-profile">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
<img src="<?= $picture??''?>" class="btn-circle btn-circle-sm" style="width: 50px ; height: 50px;">
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a href="<?= site_url('profile'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-user"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_profile") ?></span>
|
||||
</a>
|
||||
<!--- JJO
|
||||
<a href="<?= site_url('activity'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-list"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_activity") ?></span>
|
||||
</a>
|
||||
--->
|
||||
<a href="<?= site_url('login/logout'); ?>" class="dropdown-item">
|
||||
<i class="fas fa-sign-out-alt"></i>
|
||||
<span class="ml-2"><?= lang("App.menu_logout") ?></span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<?php include "menu.php" ?>
|
||||
|
||||
266
ci4/app/Views/themes/backend/vuexy/main/menu.php
Normal file
@ -0,0 +1,266 @@
|
||||
<?php $menus = getMenuControl(); ?>
|
||||
<!--Sidebar-->
|
||||
<div class="quixnav">
|
||||
<div class="quixnav-scroll">
|
||||
<ul class="metismenu" id="menu">
|
||||
<li><a href="<?= site_url("")?>" aria-expanded="false"><i class="fas fa-th-large"></i><span class="nav-text"><?= lang("App.menu_dashboard") ?></span></a></li>
|
||||
|
||||
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Cliente', 'Tarifacliente'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_clientes") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Cliente')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("clientes/cliente")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_clientes") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifacliente')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("clientes/tarifacliente")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifacliente") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Calendario', 'Correo', 'Formaspago', 'Imposiciones', 'Maquina', 'Papelgenerico', 'Seriefactura', 'Serviciocliente', 'Tamanioformatos', 'Tamaniolibros', 'Tareaservicio', 'Tiposimpresion', 'Trabajo'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_configuration") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Calendario')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/calendario")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_calendario") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Correo')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/correo")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_correo") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Formaspago')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/formaspago")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_formaspago") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Imposiciones')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/imposiciones")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_imposiciones") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Maquina')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/maquina")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_maquina") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Papelgenerico')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/papelgenerico")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_papelgenerico") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Seriefactura')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/seriefactura")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_seriefactura") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Serviciocliente')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/serviciocliente")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_serviciocliente") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tamanioformatos')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/tamanioformatos")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tamanioformatos") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tamaniolibros')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/tamaniolibros")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tamaniolibros") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tareasservicio')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/tareasservicio")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tareasservicio") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tiposimpresion')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/tiposimpresion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tiposimpresion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Trabajo')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("configuracion/trabajo")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_trabajo") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Digitalizacion')) > 0): ?>
|
||||
<li><a href="<?= site_url("serviciosdigitalizacion/digitalizacion")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_digitalizacion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Logistica')) > 0): ?>
|
||||
<li><a href="<?= site_url("envioslogistica/logistica")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_logistica") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Albaran', 'Factura'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_facturación") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Albaran')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("facturacion/albaran")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_albaran") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Factura')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("facturacion/factura")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_facturas") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Informe')) > 0): ?>
|
||||
<li><a href="<?= site_url("informes/informe")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_informes") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Pedido')) > 0): ?>
|
||||
<li><a href="<?= site_url("pedidos/pedido")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_pedidos") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Presupuesto', 'Presupuestomaquetacion'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_presupuestos") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Albaran')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("presupuestos/presupuesto")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_presupuestos") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Factura')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("presupuestos/presupuestomaquetacion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_presupuestomaquetacion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Ordenmaquina', 'Ordentrabajo', 'Ordentrabajomaquetacion', 'Pedidoproduccion'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_produccion") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Ordenmaquina')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("produccion/ordenmaquina")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_ordenmaquina") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Ordentrabajo')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("produccion/ordentrabajo")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_ordentrabajo") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Ordentrabajomaquetacion')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("produccion/ordentrabajomaquetacion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_ordentrabajomaquetacion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Pedidoproduccion')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("produccion/pedidoproduccion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_pedidoproduccion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Proveedor')) > 0): ?>
|
||||
<li><a href="<?= site_url("proveedores/proveedor")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_proveedores") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(allowMenuSection($menus, ['Tarifaacabado', 'Tarifaenvio', 'Tarifaimpresion', 'Tarifamanipulado', 'Tarifapapelcompra', 'Tarifapapeldefecto', 'Tarifapreimpresion'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_tarifas") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifaacabado')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifaacabado")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifaacabado") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifaenvio')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifaenvio")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifaenvio") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifaimpresion')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifaimpresion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifaimpresion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifamanipulado')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifamanipulado")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifamanipulado") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifapapelcompra')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifapapelcompra")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifapapelcompra") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifapapeldefecto')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifapapeldefecto")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifapapeldefecto") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Tarifapreimpresion')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("tarifas/tarifapreimpresion")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_tarifapreimpresion") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(allowMenuSection($menus, ['User', 'Group'], 'index')): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="icon-arrow-down"></i><span class="nav-text"><?= lang("App.menu_users") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count($temp=getArrayItem($menus,'name','User')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("usuarios/user")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_users") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php if (count($temp=getArrayItem($menus,'name','Group')) > 0): ?>
|
||||
<?php if (count(getArrayItem($temp,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("usuarios/group")?>" aria-expanded="false"><i class="icon-list"></i><span class="nav-text"><?= lang("App.menu_permission_group") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<!---
|
||||
<?php if (count(getArrayItem($menus,'name','Notification')) > 0): ?>
|
||||
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="fas fa-bell"></i><span class="nav-text"><?= lang("App.menu_notification") ?></span></a>
|
||||
<ul aria-expanded="false">
|
||||
<?php if (count(getArrayItem($menus,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("notification")?>"><?= lang("App.menu_list") ?></a></li>
|
||||
<?php endif; ?>
|
||||
<?php if (count(getArrayItem($menus,'methods','add',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("notification/add")?>"><?= lang("App.menu_add") ?></a></li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (count(getArrayItem($menus,'name','Settings')) > 0): ?>
|
||||
<li class="nav-label"><?= lang("App.menu_settings") ?></li>
|
||||
<?php if (count(getArrayItem($menus,'methods','index',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("settings")?>" aria-expanded="false"><i class="fas fa-sliders-h"></i><span class="nav-text"><?= lang("App.menu_general") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (count(getArrayItem($menus,'methods','template',true)) > 0): ?>
|
||||
<li><a href="<?= site_url("settings/template")?>" aria-expanded="false"><i class="fas fa-mail-bulk"></i><span class="nav-text"><?= lang("App.menu_template") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<li class="nav-label"></li>
|
||||
--->
|
||||
|
||||
<?php if (count(getArrayItem($menus,'name','Activity')) > 0): ?>
|
||||
<li><a href="<?= site_url("activity")?>" aria-expanded="false"><i class="fas fa-list"></i><span class="nav-text"><?= lang("App.menu_activity") ?></span></a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="<?= site_url("login/logout")?>" aria-expanded="false"><i class="fas fa-sign-out-alt"></i><span class="nav-text"><?= lang("App.menu_logout") ?></span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
BIN
httpdocs/themes/vuexy/audio/Water_Lily.mp3
Normal file
116
httpdocs/themes/vuexy/css/demo.css
Normal file
@ -0,0 +1,116 @@
|
||||
/*
|
||||
* demo.css
|
||||
* File include item demo only specific css only
|
||||
******************************************************************************/
|
||||
|
||||
.light-style .menu .app-brand.demo {
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.dark-style .menu .app-brand.demo {
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.app-brand-logo.demo {
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
width: 34px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.app-brand-logo.demo svg {
|
||||
width: 35px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.app-brand-text.demo {
|
||||
font-size: 1.375rem;
|
||||
}
|
||||
|
||||
/* ! For .layout-navbar-fixed added fix padding top tpo .layout-page */
|
||||
.layout-navbar-fixed .layout-wrapper:not(.layout-without-menu) .layout-page {
|
||||
padding-top: 64px !important;
|
||||
}
|
||||
.layout-navbar-fixed .layout-wrapper:not(.layout-horizontal):not(.layout-without-menu) .layout-page {
|
||||
padding-top: 78px !important;
|
||||
}
|
||||
/* Navbar page z-index issue solution */
|
||||
.content-wrapper .navbar {
|
||||
z-index: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Content
|
||||
******************************************************************************/
|
||||
|
||||
.demo-blocks > * {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.demo-inline-spacing > * {
|
||||
margin: 1rem 0.375rem 0 0 !important;
|
||||
}
|
||||
|
||||
/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
|
||||
.demo-vertical-spacing > * {
|
||||
margin-top: 1rem !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.demo-vertical-spacing.demo-only-element > :first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.demo-vertical-spacing-lg > * {
|
||||
margin-top: 1.875rem !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.demo-vertical-spacing-lg.demo-only-element > :first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.demo-vertical-spacing-xl > * {
|
||||
margin-top: 5rem !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.demo-vertical-spacing-xl.demo-only-element > :first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.rtl-only {
|
||||
display: none !important;
|
||||
text-align: left !important;
|
||||
direction: ltr !important;
|
||||
}
|
||||
|
||||
[dir='rtl'] .rtl-only {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* Layout demo
|
||||
******************************************************************************/
|
||||
|
||||
.layout-demo-wrapper {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
.layout-demo-placeholder img {
|
||||
width: 900px;
|
||||
}
|
||||
.layout-demo-info {
|
||||
text-align: center;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
BIN
httpdocs/themes/vuexy/img/avatars/1.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/10.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/11.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/12.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/13.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/14.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/15.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/2.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/3.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/4.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/5.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/6.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/7.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/8.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
httpdocs/themes/vuexy/img/avatars/9.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/1.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/2.jpg
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/3.jpg
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/4.jpg
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/5.jpg
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/6.jpg
Normal file
|
After Width: | Height: | Size: 193 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/7.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/airpods.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/event.jpg
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/headphones.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/mac.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/phone.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/speaker.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
httpdocs/themes/vuexy/img/backgrounds/watch.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
httpdocs/themes/vuexy/img/branding/brand-img-dark.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
httpdocs/themes/vuexy/img/branding/brand-img-light.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
httpdocs/themes/vuexy/img/branding/brand-img-small.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
httpdocs/themes/vuexy/img/branding/logo.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
httpdocs/themes/vuexy/img/elements/1.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
httpdocs/themes/vuexy/img/elements/10.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
httpdocs/themes/vuexy/img/elements/11.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
httpdocs/themes/vuexy/img/elements/12.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
httpdocs/themes/vuexy/img/elements/13.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
httpdocs/themes/vuexy/img/elements/14.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
httpdocs/themes/vuexy/img/elements/15.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
httpdocs/themes/vuexy/img/elements/16.jpg
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
httpdocs/themes/vuexy/img/elements/2.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
httpdocs/themes/vuexy/img/elements/3.jpg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
httpdocs/themes/vuexy/img/elements/4.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
httpdocs/themes/vuexy/img/elements/5.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
httpdocs/themes/vuexy/img/elements/6.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
httpdocs/themes/vuexy/img/elements/7.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
httpdocs/themes/vuexy/img/elements/8.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
httpdocs/themes/vuexy/img/elements/9.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
httpdocs/themes/vuexy/img/favicon/favicon.ico
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/asana.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/behance.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/bootstrap-logo.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/brave.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/chrome.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/dribbble.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/edge.png
Normal file
|
After Width: | Height: | Size: 868 B |
BIN
httpdocs/themes/vuexy/img/icons/brands/event-label.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/facebook.png
Normal file
|
After Width: | Height: | Size: 681 B |
BIN
httpdocs/themes/vuexy/img/icons/brands/figma-label.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/figma-logo.png
Normal file
|
After Width: | Height: | Size: 818 B |
BIN
httpdocs/themes/vuexy/img/icons/brands/firefox.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/github.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/google.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/html-label.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/instagram.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
httpdocs/themes/vuexy/img/icons/brands/laravel-logo.png
Normal file
|
After Width: | Height: | Size: 963 B |
BIN
httpdocs/themes/vuexy/img/icons/brands/mailchimp.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |