mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Select simple y multiple. Cambios en formularios de usuarios y grupos
This commit is contained in:
3
.idea/deployment.xml
generated
3
.idea/deployment.xml
generated
@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="PublishConfigData" autoUpload="Always" serverName="SK-MAIN" remoteFilesAllowedToDisappearOnAutoupload="false">
|
<component name="PublishConfigData" autoUpload="Always" serverName="SK-IMN" remoteFilesAllowedToDisappearOnAutoupload="false" confirmBeforeUploading="false">
|
||||||
|
<option name="confirmBeforeUploading" value="false" />
|
||||||
<serverData>
|
<serverData>
|
||||||
<paths name="SK-IMN">
|
<paths name="SK-IMN">
|
||||||
<serverdata>
|
<serverdata>
|
||||||
|
|||||||
32
.idea/workspace.xml
generated
32
.idea/workspace.xml
generated
@ -5,13 +5,19 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="7c8f7059-cd40-417c-936e-48dbc0507d86" name="Changes" comment="Add static Vuexy files">
|
<list default="true" id="7c8f7059-cd40-417c-936e-48dbc0507d86" name="Changes" comment="Add static Vuexy files">
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/deployment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/deployment.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Helpers/general_helper.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Helpers/general_helper.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/ci4/.env" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/.env" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/login/header.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/login/header.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/ci4/app/Controllers/Home.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Controllers/Home.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/group/form.php" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/group/index.php" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/user/viewUserForm.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/form/user/viewUserForm.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/crud_layout.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/crud_layout.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all_selects.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all_selects.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/header.php" beforeDir="false" afterPath="$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/header.php" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@ -38,22 +44,23 @@
|
|||||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"WebServerToolWindowFactoryState": "false",
|
"WebServerToolWindowFactoryState": "false",
|
||||||
"last_opened_file_path": "C:/temp-sk/safekat/ci4/app/Views/themes/backend/vuexy/main",
|
"last_opened_file_path": "D:/Safekat/safekat/ci4/app/Views/themes/_commonPartialsBs",
|
||||||
"node.js.detected.package.eslint": "true",
|
"node.js.detected.package.eslint": "true",
|
||||||
"node.js.detected.package.tslint": "true",
|
"node.js.detected.package.tslint": "true",
|
||||||
"node.js.selected.package.eslint": "(autodetect)",
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
"node.js.selected.package.tslint": "(autodetect)",
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
"nodejs_package_manager_path": "npm",
|
"nodejs_package_manager_path": "npm",
|
||||||
|
"settings.editor.selected.configurable": "preferences.pluginManager",
|
||||||
"vue.rearranger.settings.migration": "true"
|
"vue.rearranger.settings.migration": "true"
|
||||||
}
|
}
|
||||||
}</component>
|
}</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="D:\Safekat\safekat\ci4\app\Views\themes\_commonPartialsBs" />
|
||||||
<recent name="C:\temp-sk\safekat\ci4\app\Views\themes\backend\vuexy\main" />
|
<recent name="C:\temp-sk\safekat\ci4\app\Views\themes\backend\vuexy\main" />
|
||||||
<recent name="C:\temp-sk\safekat\httpdocs\themes\vuexy\vendor\libs\toastr" />
|
<recent name="C:\temp-sk\safekat\httpdocs\themes\vuexy\vendor\libs\toastr" />
|
||||||
<recent name="C:\temp-sk\safekat\ci4\app\Language\es-ES" />
|
<recent name="C:\temp-sk\safekat\ci4\app\Language\es-ES" />
|
||||||
<recent name="C:\temp-sk\safekat\ci4\app\Views\themes\backend\vuexy\form\user" />
|
<recent name="C:\temp-sk\safekat\ci4\app\Views\themes\backend\vuexy\form\user" />
|
||||||
<recent name="C:\temp-sk\safekat\ci4\app\Views\themes\backend" />
|
|
||||||
</key>
|
</key>
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
<recent name="C:\temp-sk\safekat\ci4\app\Controllers\Usuarios" />
|
<recent name="C:\temp-sk\safekat\ci4\app\Controllers\Usuarios" />
|
||||||
@ -83,6 +90,8 @@
|
|||||||
<workItem from="1684226343116" duration="4598000" />
|
<workItem from="1684226343116" duration="4598000" />
|
||||||
<workItem from="1684236911941" duration="2213000" />
|
<workItem from="1684236911941" duration="2213000" />
|
||||||
<workItem from="1684239429024" duration="2049000" />
|
<workItem from="1684239429024" duration="2049000" />
|
||||||
|
<workItem from="1684313352573" duration="9284000" />
|
||||||
|
<workItem from="1684350581362" duration="2244000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="Starting Vuexy Theme creation">
|
<task id="LOCAL-00001" summary="Starting Vuexy Theme creation">
|
||||||
<created>1682339938559</created>
|
<created>1682339938559</created>
|
||||||
@ -133,4 +142,15 @@
|
|||||||
<MESSAGE value="Add static Vuexy files" />
|
<MESSAGE value="Add static Vuexy files" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="Add static Vuexy files" />
|
<option name="LAST_COMMIT_MESSAGE" value="Add static Vuexy files" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="XDebuggerManager">
|
||||||
|
<breakpoint-manager>
|
||||||
|
<breakpoints>
|
||||||
|
<line-breakpoint enabled="true" type="php">
|
||||||
|
<url>file://$PROJECT_DIR$/ci4/app/Views/themes/backend/vuexy/main/all.php</url>
|
||||||
|
<line>372</line>
|
||||||
|
<option name="timeStamp" value="1" />
|
||||||
|
</line-breakpoint>
|
||||||
|
</breakpoints>
|
||||||
|
</breakpoint-manager>
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
||||||
8
ci4/.env
8
ci4/.env
@ -23,7 +23,7 @@ CI_ENVIRONMENT = development
|
|||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
# app.baseURL = 'https://sk-imn.imnavajas.es'
|
# app.baseURL = 'https://sk-imn.imnavajas.es'
|
||||||
app.baseURL = 'https://sk-jjo.imnavajas.es'
|
app.baseURL = 'https://sk-imn.imnavajas.es'
|
||||||
# app.forceGlobalSecureRequests = false
|
# app.forceGlobalSecureRequests = false
|
||||||
|
|
||||||
# app.sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'
|
# app.sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'
|
||||||
@ -41,9 +41,9 @@ app.baseURL = 'https://sk-jjo.imnavajas.es'
|
|||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
database.default.hostname = localhost
|
database.default.hostname = localhost
|
||||||
database.default.database = sk_jjo
|
database.default.database = sk_imn
|
||||||
database.default.username = sk_jjo
|
database.default.username = sk_imn
|
||||||
database.default.password = 61tv&G1Zf^XY
|
database.default.password = Uyia19_87
|
||||||
database.default.DBDriver = MySQLi
|
database.default.DBDriver = MySQLi
|
||||||
database.default.DBPrefix =
|
database.default.DBPrefix =
|
||||||
database.default.dump =
|
database.default.dump =
|
||||||
|
|||||||
@ -32,7 +32,7 @@ class Home extends BaseController
|
|||||||
else
|
else
|
||||||
$salutation = lang("App.dashboard_good_night");
|
$salutation = lang("App.dashboard_good_night");
|
||||||
|
|
||||||
echo view(getenv('theme.path').'main/all');
|
echo view(getenv('theme.path').'main/all_selects');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
//echo view(getenv('theme.path').'main/header');
|
//echo view(getenv('theme.path').'main/header');
|
||||||
|
|||||||
@ -1,35 +1,27 @@
|
|||||||
<!-- Push section css -->
|
<!-- Push section css -->
|
||||||
<?= $this->section('css') ?>
|
<?= $this->section('css') ?>
|
||||||
<?php /*
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css">
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.1.1/dist/select2-bootstrap-5-theme.min.css" />
|
|
||||||
*/ ?>
|
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/select2/select2.css') ?>"/>
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/select2/select2.css') ?>"/>
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
<!-- Push additional js -->
|
<!-- Push additional js -->
|
||||||
<?= $this->section('additionalExternalJs') ?>
|
<?= $this->section('additionalExternalJs') ?>
|
||||||
<?php //<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.full.min.js"></script> ?>
|
|
||||||
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/select2/select2.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/select2/select2.js') ?>"></script>
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|
||||||
<?= $this->section('additionalInlineJs') ?>
|
<?= $this->section('additionalInlineJs') ?>
|
||||||
|
|
||||||
'use strict';
|
const select2 = $('.select2');
|
||||||
const select2 = $('.select2');
|
|
||||||
|
|
||||||
// Select2
|
// Select2
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
if (select2.length) {
|
if (select2.length) {
|
||||||
select2.each(function () {
|
select2.each(function () {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
$this.wrap('<div class="position-relative"></div>').select2({
|
$this.wrap('<div class="position-relative"></div>').select2({
|
||||||
placeholder: 'Select value',
|
placeholder: 'Select value',
|
||||||
dropdownParent: $this.parent()
|
dropdownParent: $this.parent()
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
}
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
@ -1,166 +0,0 @@
|
|||||||
<!--Content Body-->
|
|
||||||
<div class="content-body">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row page-titles mx-0">
|
|
||||||
<div class="col-sm-6 p-md-0">
|
|
||||||
<div class="welcome-text">
|
|
||||||
<h4><i class="<?= $title['icon']??'' ?>"></i> <?= $title['module']??'' ?></h4>
|
|
||||||
<span class="ml-1"><?= $title['page']??'' ?></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<?php foreach ($breadcrumb??[] as $item) : ?>
|
|
||||||
<?php if (!$item['active']) : ?>
|
|
||||||
<li class="breadcrumb-item"><a href="<?= site_url($item['route']) ?>"><?= $item['title'] ?></a></li>
|
|
||||||
<?php else : ?>
|
|
||||||
<li class="breadcrumb-item active"><?= $item['title'] ?></li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-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>
|
|
||||||
@ -1,118 +0,0 @@
|
|||||||
<!--Content Body-->
|
|
||||||
<div class="content-body">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row page-titles mx-0">
|
|
||||||
<div class="col-sm-6 p-md-0">
|
|
||||||
<div class="welcome-text">
|
|
||||||
<h4><i class="<?= $title['icon']??'' ?>"></i> <?= $title['module']??'' ?></h4>
|
|
||||||
<span class="ml-1"><?= $title['page']??'' ?></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<?php foreach ($breadcrumb??[] as $item) : ?>
|
|
||||||
<?php if (!$item['active']) : ?>
|
|
||||||
<li class="breadcrumb-item"><a href="<?= site_url($item['route']) ?>"><?= $item['title'] ?></a></li>
|
|
||||||
<?php else : ?>
|
|
||||||
<li class="breadcrumb-item active"><?= $item['title'] ?></li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-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() ?>
|
|
||||||
@ -6,107 +6,65 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card card-info">
|
<div class="card card-info">
|
||||||
<div class="card-header">
|
<h3 class="card-header"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
|
||||||
</div><!--//.card-header -->
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<?= formAlert() ?>
|
<?= formAlert() ?>
|
||||||
<form id="groupForm" method="post" action="<?= $formAction ?>">
|
<form id="groupForm" method="post" class="card-body" action="<?= $formAction ?>">
|
||||||
<?= csrf_field() ?>
|
<?= csrf_field() ?>
|
||||||
<input type="hidden" name="id_group"
|
<input type="hidden"
|
||||||
value="<?= (isset($obj)) ? $obj['id_group'] : set_value('id_group') ?>">
|
name="id_group"
|
||||||
<input type="hidden" name="token"
|
value="<?= (isset($obj)) ? $obj['id_group'] : set_value('id_group') ?>"
|
||||||
value="<?= (isset($obj)) ? $obj['token'] : set_value('token') ?>">
|
>
|
||||||
<div class="form-body">
|
<input type="hidden"
|
||||||
<div class="row">
|
name="token"
|
||||||
<div class="col-md-8">
|
value="<?= (isset($obj)) ? $obj['token'] : set_value('token') ?>"
|
||||||
<div class="form-group">
|
>
|
||||||
<label for="title"
|
<div class="row g-3">
|
||||||
class="text-dark"><?= lang("App.group_field_title") ?></label>
|
<div class="col-md-6">
|
||||||
<input type="text" name="title" id="title" class="form-control"
|
<label for="title" class="form-label text-dark">
|
||||||
value="<?= old('title', $group->title) ?>">
|
<?= lang("App.group_field_title") ?>
|
||||||
</div>
|
</label>
|
||||||
</div>
|
<input type="text" name="title" id="title" class="form-control"
|
||||||
<div class="col-md-4">
|
value="<?= old('title', $group->title) ?>">
|
||||||
<div class="form-group">
|
|
||||||
<label for="dashboard"
|
|
||||||
class="text-dark"><?= lang("App.group_field_dashboard") ?></label>
|
|
||||||
<?php $id_select = (isset($group)) ? $group->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>
|
||||||
<div class="row">
|
<div class="col-md-6">
|
||||||
<div class="col-md-12 right">
|
<label for="dashboard" class="form-label text-dark">
|
||||||
<div class="form-group">
|
<?= lang("App.group_field_dashboard") ?>
|
||||||
<button type="button" name="select_all" id="select_all"
|
</label>
|
||||||
class="btn btn-primary round"><i
|
<?php $id_select = (isset($group)) ? $group->dashboard : set_value('dashboard'); ?>
|
||||||
class="la la-toggle-on"></i> <?= lang("App.group_btn_select") ?>
|
<select name="dashboard" id="dashboard" class="select2 form-control">
|
||||||
</button>
|
<option value="user" <?= $id_select == "user" ? 'selected' : '' ?>><?= lang("App.group_label_user") ?></option>
|
||||||
<button type="button" name="remove_all" id="remove_all"
|
<option value="admin" <?= $id_select == "admin" ? 'selected' : '' ?>><?= lang("App.group_label_admin") ?></option>
|
||||||
class="btn btn-primary round ml-1"><i
|
</select>
|
||||||
class="la la-toggle-off"></i> <?= lang("App.group_btn_remove") ?>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="col-md-6">
|
||||||
<div class="col-md-12">
|
<button type="button" name="select_all"
|
||||||
<h5>Role Permissions</h5>
|
id="select_all"
|
||||||
<!-- Permission table -->
|
class="btn btn-primary me-sm-3 me-1">
|
||||||
<div class="table-responsive">
|
<i class="la la-toggle-on"></i> <?= lang("App.group_btn_select") ?>
|
||||||
<table class="table table-flush-spacing">
|
</button>
|
||||||
<tbody>
|
<button type="button" name="remove_all"
|
||||||
<!-- <tr>-->
|
id="remove_all"
|
||||||
<!-- <td class="text-nowrap fw-semibold">-->
|
class="btn btn-secondary ">
|
||||||
<!-- Permisos GLobales-->
|
<i class="la la-toggle-off"></i> <?= lang("App.group_btn_remove") ?>
|
||||||
<!-- <i-->
|
</button>
|
||||||
<!-- class="ti ti-info-circle"-->
|
</div>
|
||||||
<!-- data-bs-toggle="tooltip"-->
|
</div>
|
||||||
<!-- data-bs-placement="top"-->
|
<div class="row g-3 mt-3">
|
||||||
<!-- title="Allows a full access to the system"></i>-->
|
<div class="col-md-12">
|
||||||
<!-- </td>-->
|
<h5>Role Permissions</h5>
|
||||||
<!-- <td>-->
|
<!-- Permission table -->
|
||||||
<!-- <div class="form-check">-->
|
<div class="table-responsive">
|
||||||
<!-- <input class="form-check-input" type="checkbox" id="selectAll"/>-->
|
<table class="table table-flush-spacing">
|
||||||
<!-- <label class="form-check-label" for="selectAll"> Seleccionar-->
|
<tbody>
|
||||||
<!-- todos </label>-->
|
<?php foreach (getAllFolder() as $folder): ?>
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </td>-->
|
|
||||||
<!-- </tr>-->
|
|
||||||
<?php foreach (getAllFolder() as $folder): ?>
|
|
||||||
<?php foreach (getAllClass() as $item): ?>
|
|
||||||
<?php if (str_contains($item['path'], $folder)): ?>
|
|
||||||
<tr>
|
|
||||||
<td class="text-nowrap fw-semibold"><?= getDictionary($folder) ?? '' ?> >> <?= getDictionary($item['name']) ?></td>
|
|
||||||
<?php foreach ($item['methods'] as $subitem): ?>
|
|
||||||
<?php if (!getIgnoreMethod($subitem)): ?>
|
|
||||||
<td>
|
|
||||||
<div class="form-check">
|
|
||||||
<input type="checkbox"
|
|
||||||
id="<?= $item['name'] . '_' . $subitem ?>"
|
|
||||||
name="<?= $item['name'] . '_' . $subitem ?>"
|
|
||||||
class="form-check-input"
|
|
||||||
<?=ruleIsChecked($group->rules, $item['name'], $subitem)?'checked':''?>
|
|
||||||
>
|
|
||||||
<label for="<?= $item['name'] . '_' . $subitem ?>"
|
|
||||||
class="form-check-label"><?= getDictionary($subitem) ?></label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</tr>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
|
|
||||||
<?php foreach (getAllClass() as $item): ?>
|
<?php foreach (getAllClass() as $item): ?>
|
||||||
<?php if (empty($item['path'])): ?>
|
<?php if (str_contains($item['path'], $folder)): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-nowrap fw-semibold"><?= getDictionary($item['name']) ?></td>
|
<td class="text-nowrap fw-semibold">
|
||||||
|
<?= getDictionary($folder) ?? '' ?>
|
||||||
|
>> <?= getDictionary($item['name']) ?>
|
||||||
|
</td>
|
||||||
<?php foreach ($item['methods'] as $subitem): ?>
|
<?php foreach ($item['methods'] as $subitem): ?>
|
||||||
<?php if (!getIgnoreMethod($subitem)): ?>
|
<?php if (!getIgnoreMethod($subitem)): ?>
|
||||||
<td>
|
<td>
|
||||||
@ -115,7 +73,7 @@
|
|||||||
id="<?= $item['name'] . '_' . $subitem ?>"
|
id="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
name="<?= $item['name'] . '_' . $subitem ?>"
|
name="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
class="form-check-input"
|
class="form-check-input"
|
||||||
<?=ruleIsChecked($group->rules, $item['name'], $subitem)?'checked':''?>
|
<?= ruleIsChecked($group->rules, $item['name'], $subitem) ? 'checked' : '' ?>
|
||||||
>
|
>
|
||||||
<label for="<?= $item['name'] . '_' . $subitem ?>"
|
<label for="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
class="form-check-label"><?= getDictionary($subitem) ?></label>
|
class="form-check-label"><?= getDictionary($subitem) ?></label>
|
||||||
@ -126,17 +84,41 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
</tbody>
|
<?php foreach (getAllClass() as $item): ?>
|
||||||
</table>
|
<?php if (empty($item['path'])): ?>
|
||||||
</div>
|
<tr>
|
||||||
|
<td class="text-nowrap fw-semibold"><?= getDictionary($item['name']) ?></td>
|
||||||
|
<?php foreach ($item['methods'] as $subitem): ?>
|
||||||
|
<?php if (!getIgnoreMethod($subitem)): ?>
|
||||||
|
<td>
|
||||||
|
<div class="form-check">
|
||||||
|
<input type="checkbox"
|
||||||
|
id="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
|
name="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
|
class="form-check-input"
|
||||||
|
<?= ruleIsChecked($group->rules, $item['name'], $subitem) ? 'checked' : '' ?>
|
||||||
|
>
|
||||||
|
<label for="<?= $item['name'] . '_' . $subitem ?>"
|
||||||
|
class="form-check-label"><?= getDictionary($subitem) ?></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions mt-2">
|
|
||||||
<?= anchor(route_to("groupIndex"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
|
<div class="pt-4">
|
||||||
<input type="submit" class="btn btn-primary float-end" name="save"
|
<input type="submit" class="btn btn-primary float-start me-sm-3 me-1" name="save"
|
||||||
value="<?= lang("Basic.global.Save") ?>">
|
value="<?= lang("Basic.global.Save") ?>">
|
||||||
|
<?= anchor(route_to("groupIndex"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary"]) ?>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@ -150,14 +132,14 @@
|
|||||||
<?= $this->section('additionalInlineJs') ?>
|
<?= $this->section('additionalInlineJs') ?>
|
||||||
|
|
||||||
$('#select_all').on('click', function () {
|
$('#select_all').on('click', function () {
|
||||||
$(':checkbox').each(function() {
|
$(':checkbox').each(function() {
|
||||||
this.checked = true;
|
this.checked = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#remove_all').on('click', function () {
|
$('#remove_all').on('click', function () {
|
||||||
$(':checkbox').each(function() {
|
$(':checkbox').each(function() {
|
||||||
this.checked = false;
|
this.checked = false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
<label for="country" class="form-label">
|
<label for="country" class="form-label">
|
||||||
<?=lang('Users.country') ?>*
|
<?=lang('Users.country') ?>*
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<select id="country" name="country" required class="select2 form-control " style="width: 100%;" >
|
<select id="country" name="country" required class="select2 form-control " style="width: 100%;" >
|
||||||
<option value=""><?=lang('Basic.global.pleaseSelectA', [lang('Users.country')]) ?></option>
|
<option value=""><?=lang('Basic.global.pleaseSelectA', [lang('Users.country')]) ?></option>
|
||||||
|
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="dateBirth" class="form-label">
|
<label for="dateBirth" class="form-label">
|
||||||
<?=lang('Users.dateBirth') ?>
|
<?=lang('Users.dateBirth') ?>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<input type="date" id="dateBirth" name="date_birth" maxLength="10" class="form-control" value="<?=old('date_birth', $user->date_birth) ?>">
|
<input type="date" id="dateBirth" name="date_birth" maxLength="10" class="form-control" value="<?=old('date_birth', $user->date_birth) ?>">
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="mobile" class="form-label">
|
<label for="mobile" class="form-label">
|
||||||
<?=lang('Users.mobile') ?>*
|
<?=lang('Users.mobile') ?>*
|
||||||
@ -75,22 +75,22 @@
|
|||||||
<?php foreach ($groups as $item) : ?>
|
<?php foreach ($groups as $item) : ?>
|
||||||
<?php if (isset($selectedGroups) && sizeof($selectedGroups)>=1): ?>
|
<?php if (isset($selectedGroups) && sizeof($selectedGroups)>=1): ?>
|
||||||
<?php foreach ($selectedGroups as $selItem) : ?>
|
<?php foreach ($selectedGroups as $selItem) : ?>
|
||||||
<option value="<?=$item->token ?>" data-select2-id=<?=$item->token ?> <?=$item->token==$selItem['token_group']?'selected':'' ?>> <?= $item->title ?>
|
<option value="<?=$item->token ?>" data-select2-id=<?=$item->token ?> <?=$item->token==$selItem['token_group']?'selected':'' ?>> <?= $item->title ?>
|
||||||
</option>
|
</option>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<option value="<?=$item->token ?>" data-select2-id=<?=$item->token ?> > <?= $item->title ?>
|
<option value="<?=$item->token ?>" data-select2-id=<?=$item->token ?> > <?= $item->title ?>
|
||||||
</option>
|
</option>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
</div><!--//.col -->
|
||||||
<div class="col-md-12 col-lg-6 px-4">
|
<div class="col-md-12 col-lg-6 px-4">
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="lastName" class="form-label">
|
<label for="lastName" class="form-label">
|
||||||
<?=lang('Users.lastName') ?>*
|
<?=lang('Users.lastName') ?>*
|
||||||
@ -151,24 +151,24 @@
|
|||||||
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("User.user_alert_not_confirmed")?></option>
|
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("User.user_alert_not_confirmed")?></option>
|
||||||
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("User.user_alert_confirmed")?></option>
|
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("User.user_alert_confirmed")?></option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="status" class="form-label">
|
<label for="status" class="form-label">
|
||||||
<?=lang('Users.status') ?>*
|
<?=lang('Users.status') ?>*
|
||||||
</label>
|
</label>
|
||||||
<?php $id_select = old('status', $user->status);?>
|
<?php $id_select = old('status', $user->status);?>
|
||||||
<select name="status" id="status" class="form-control">
|
<select name="status" id="status" class="select2 form-control">
|
||||||
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("User.global_active")?></option>
|
<option value="1" <?= $id_select == "1" ? 'selected' : '' ?>><?=lang("User.global_active")?></option>
|
||||||
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("User.global_inactive")?></option>
|
<option value="0" <?= $id_select == "0" ? 'selected' : '' ?>><?=lang("User.global_inactive")?></option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div><!--//.col -->
|
|
||||||
|
</div><!--//.col -->
|
||||||
|
|
||||||
</div><!-- //.row -->
|
</div><!-- //.row -->
|
||||||
@ -1,25 +1,26 @@
|
|||||||
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
||||||
<?=$this->extend('themes/backend/vuexy/main/defaultlayout') ?>
|
<?= $this->extend('themes/backend/vuexy/main/defaultlayout') ?>
|
||||||
<?= $this->section("content") ?>
|
<?= $this->section("content") ?>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card card-info">
|
<div class="card card-info">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||||
</div><!--//.card-header -->
|
</div><!--//.card-header -->
|
||||||
<form id="userForm" method="post" action="<?= $formAction ?>">
|
<div class="card-body">
|
||||||
<?= csrf_field() ?>
|
<form id="userForm" method="post" class="card-body" action="<?= $formAction ?>">
|
||||||
<div class="card-body">
|
<?= csrf_field() ?>
|
||||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||||
<?= view("themes/backend/vuexy/form/user/_userFormItems") ?>
|
<?= view("themes/backend/vuexy/form/user/_userFormItems") ?>
|
||||||
</div><!-- /.card-body -->
|
<div class="pt-4">
|
||||||
<div class="card-footer">
|
<input type="submit" class="btn btn-primary float-start me-sm-3 me-1" name="save"
|
||||||
<?= anchor(route_to("userIndex"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
|
value="<?= lang("Basic.global.Save") ?>">
|
||||||
<input type="submit" class="btn btn-primary float-end" name="save" value="<?= lang("Basic.global.Save") ?>">
|
<?= anchor(route_to("userIndex"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary"]) ?>
|
||||||
</div><!-- /.card-footer -->
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div><!-- //.card -->
|
</div><!-- /.card-body -->
|
||||||
|
</div><!-- //.card -->
|
||||||
</div><!--//.col -->
|
</div><!--//.col -->
|
||||||
</div><!--//.row -->
|
</div><!--//.row -->
|
||||||
<?= $this->endSection() ?>
|
<?= $this->endSection() ?>
|
||||||
|
|||||||
@ -62,8 +62,8 @@ if (!empty($token) && $tfa == false) {
|
|||||||
<link rel="manifest" href="<?= site_url('themes/vuexy/img/favicon/manifest.json') ?>">
|
<link rel="manifest" href="<?= site_url('themes/vuexy/img/favicon/manifest.json') ?>">
|
||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<link rel="preconnect" href="https:/fonts.googleapis.com"/>
|
<link rel="preconnect" href="https://fonts.googleapis.com"/>
|
||||||
<link rel="preconnect" href="https:/fonts.gstatic.com" crossorigin/>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
@ -81,7 +81,6 @@ if (!empty($token) && $tfa == false) {
|
|||||||
|
|
||||||
<!-- Vendors CSS -->
|
<!-- Vendors CSS -->
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') ?>"/>
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') ?>"/>
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/node-waves/node-waves.css') ?>"/>
|
|
||||||
|
|
||||||
<!-- Page CSS -->
|
<!-- Page CSS -->
|
||||||
|
|
||||||
@ -492,7 +491,6 @@ if (!empty($token) && $tfa == false) {
|
|||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/node-waves/node-waves.js') ?>"></script>
|
|
||||||
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
||||||
|
|
||||||
|
|||||||
@ -80,7 +80,7 @@ if (!empty($token) && $tfa == false) {
|
|||||||
|
|
||||||
<!-- Vendors CSS -->
|
<!-- Vendors CSS -->
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') ?>"/>
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') ?>"/>
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/node-waves/node-waves.css') ?>"/>
|
|
||||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/select2/select2.css') ?>"/>
|
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/select2/select2.css') ?>"/>
|
||||||
|
|
||||||
<!-- Page CSS -->
|
<!-- Page CSS -->
|
||||||
@ -398,7 +398,6 @@ if (!empty($token) && $tfa == false) {
|
|||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/node-waves/node-waves.js') ?>"></script>
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/js/menu.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/js/menu.js') ?>"></script>
|
||||||
<!-- endbuild -->
|
<!-- endbuild -->
|
||||||
@ -414,19 +413,10 @@ if (!empty($token) && $tfa == false) {
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
const selectPicker = $('.selectpicker'),
|
const select2 = $('.select2');
|
||||||
select2 = $('.select2');
|
|
||||||
|
|
||||||
// Bootstrap Select
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
if (selectPicker.length) {
|
|
||||||
selectPicker.selectpicker();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Select2
|
// Select2
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
|
|
||||||
// Default
|
|
||||||
if (select2.length) {
|
if (select2.length) {
|
||||||
select2.each(function () {
|
select2.each(function () {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|||||||
@ -16,8 +16,7 @@ if (!empty($token) && $tfa == false) {
|
|||||||
|
|
||||||
<html
|
<html
|
||||||
lang="<?= $session->get('lang') ?>"
|
lang="<?= $session->get('lang') ?>"
|
||||||
class="h-100"
|
class="h-100 light-style layout-navbar-fixed layout-menu-fixed"
|
||||||
class="semi-dark-style customizer-hide"
|
|
||||||
dir="ltr"
|
dir="ltr"
|
||||||
data-theme="theme-default"
|
data-theme="theme-default"
|
||||||
data-assets-path="<?= site_url('themes/vuexy/') ?>"
|
data-assets-path="<?= site_url('themes/vuexy/') ?>"
|
||||||
@ -63,8 +62,8 @@ if (!empty($token) && $tfa == false) {
|
|||||||
<link rel="manifest" href="<?= site_url('themes/vuexy/img/favicon/manifest.json') ?>">
|
<link rel="manifest" href="<?= site_url('themes/vuexy/img/favicon/manifest.json') ?>">
|
||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Fonts -->
|
||||||
<link rel="preconnect" href="https:/fonts.googleapis.com"/>
|
<link rel="preconnect" href="https://fonts.googleapis.com"/>
|
||||||
<link rel="preconnect" href="https:/fonts.gstatic.com" crossorigin/>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
@ -267,9 +266,7 @@ if (!empty($token) && $tfa == false) {
|
|||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/popper/popper.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/js/bootstrap.js') ?>"></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||||
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/hammer/hammer.js') ?>"></script>
|
||||||
|
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/js/menu.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/js/menu.js') ?>"></script>
|
||||||
<!-- endbuild -->
|
<!-- endbuild -->
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user