dict mapping order done
This commit is contained in:
parent
8fdad44f80
commit
a262c66059
@ -51,6 +51,12 @@ $routes->POST('api/dictTests/save', 'API_DictTests::save');
|
||||
$routes->get('api/dictTests/index', 'API_DictTests::index');
|
||||
$routes->get('api/dictTests/detail/(:any)', 'API_DictTests::detail/$1');
|
||||
|
||||
// API - DictTests
|
||||
$routes->get('api/dictMappings/index', 'API_DictMappings::index');
|
||||
$routes->POST('api/dictMappings/saveSingle', 'API_DictMappings::saveSingle');
|
||||
$routes->POST('api/dictMappings/saveProfile', 'API_DictMappings::saveProfile');
|
||||
$routes->get('api/dictMappings/detail/(:any)', 'API_DictMappings::detail/$1');
|
||||
|
||||
// admin
|
||||
$routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
|
||||
$routes->get('', 'AdminController::index');
|
||||
@ -58,6 +64,7 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) {
|
||||
$routes->get('userroles/', 'AdminController::userroles_index');
|
||||
$routes->get('users/', 'AdminController::users_index');
|
||||
$routes->get('dictTests/', 'AdminController::dictTests_index');
|
||||
$routes->get('dictMappings/', 'AdminController::dictMappings_index');
|
||||
});
|
||||
|
||||
// user
|
||||
|
||||
133
app/Controllers/API_DictMappings.php
Normal file
133
app/Controllers/API_DictMappings.php
Normal file
@ -0,0 +1,133 @@
|
||||
<?php
|
||||
namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class API_DictMappings extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function index() {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_DICT_MAPPINGS";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['dictMappings'] = $results;
|
||||
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function detail($mapid) {
|
||||
$data = array();
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_DICT_MAPPINGS where MAPID='$mapid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
if(isset($results[0])) {
|
||||
$data = $results[0];
|
||||
if($data['MAPTYPE']=='P') {
|
||||
$sql = "select * from cmod.dbo.CM_DICT_MAPPING_PROFILES where MAPID='$mapid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['mliscodes'] = $results;
|
||||
}
|
||||
}
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function saveSingle() {
|
||||
$update = $this->request->getPost('update');
|
||||
$liscode = $this->request->getPost('liscode');
|
||||
$hiscode = $this->request->getPost('hiscode');
|
||||
$descs = $this->request->getPost('descs');
|
||||
|
||||
// check if hiscode is exists
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select 1 from cmod.dbo.CM_DICT_MAPPINGS where HISCODE='$hiscode' and MAPTYPE in ('S','P') and MAPID<>'$update'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
if(isset($results[0])) {
|
||||
$response = [
|
||||
'errors' => 'HISCODE already exists',
|
||||
'message' => 'HISCODE already exists'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
|
||||
|
||||
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('S', '$hiscode', '$liscode', '$descs')"; }
|
||||
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE='$liscode', DESCS='$descs' where MAPID='$update'"; }
|
||||
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalid Inputs'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
|
||||
public function saveProfile() {
|
||||
$db = \Config\Database::connect();
|
||||
$update = $this->request->getPost('update');
|
||||
$hiscode = $this->request->getPost('hiscode');
|
||||
$descs = $this->request->getPost('descs');
|
||||
$mliscode = [];
|
||||
for ($i = 1; $i <= 22; $i++) {
|
||||
$key = "mliscode{$i}";
|
||||
if (isset($_POST[$key])) {
|
||||
$mliscode[$key] = $this->request->getPost($key);
|
||||
}
|
||||
}
|
||||
|
||||
// check if hiscode is exists
|
||||
$sql = "select 1 from cmod.dbo.CM_DICT_MAPPINGS where HISCODE='$hiscode' and MAPTYPE in ('P','S') and MAPID<>'$update'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
if(isset($results[0])) {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'HISCODE already exists'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
|
||||
// dict_mappings
|
||||
if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('P', '$hiscode', null, '$descs')"; }
|
||||
else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE=null, DESCS='$descs' where MAPID='$update'"; }
|
||||
if( !$db->query($sql) ) {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalid Inputs'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
// getting mapid after
|
||||
if($update == 0) { $update =$db->insertID(); }
|
||||
|
||||
// dict_mapping_profiles
|
||||
$datasource = '';
|
||||
foreach($mliscode as $liscode) { $datasource .= "('$update','$liscode'),"; }
|
||||
$datasource = rtrim($datasource,',');
|
||||
$sql = "MERGE INTO cmod.dbo.CM_DICT_MAPPING_PROFILES AS t
|
||||
USING ( VALUES
|
||||
$datasource
|
||||
) AS s (MAPID, LISCODE) on s.MAPID=t.MAPID and s.LISCODE=t.LISCODE
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (MAPID, LISCODE)
|
||||
VALUES (s.MAPID, s.LISCODE)
|
||||
WHEN NOT MATCHED BY SOURCE THEN
|
||||
DELETE;";
|
||||
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalid Inputs'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -58,4 +58,8 @@ class AdminController extends BaseController {
|
||||
public function dictTests_index() {
|
||||
return view('admin/dictTests_index');
|
||||
}
|
||||
|
||||
public function dictMappings_index() {
|
||||
return view('admin/dictMappings_index');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?= $this->extend('layouts/main.php') ?>
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
|
||||
|
||||
247
app/Views/admin/dictMappings_index.php
Normal file
247
app/Views/admin/dictMappings_index.php
Normal file
@ -0,0 +1,247 @@
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="card border-0 m-1">
|
||||
<div class="card-body">
|
||||
<div class='card-title'>Dictionary Mapping Order</div>
|
||||
<button class='btn btn-sm btn-primary' onclick="createSingle()"><i class="bi bi-plus-circle"></i> Create Single</button>
|
||||
<button class='btn btn-sm btn-primary' onclick="createProfile()"><i class="bi bi-plus-circle"></i> Create Profile</button>
|
||||
<div class="table-responsive">
|
||||
<table id="myTable" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>HIS Code</th>
|
||||
<th>LIS Code</th>
|
||||
<th>Description</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id='table-body'>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Single -->
|
||||
<div class="modal fade" id="modal_single" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Single Test</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||
</div>
|
||||
<div class="modal-body" id='modal_bodySingle' style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<input type='hidden' id='updateSingle' value='' />
|
||||
<tr class="align-middle"> <th>HIS Code</th> <th>:</th> <td><input class='form-control' type='text' id='hiscodeSingle'/></td> </tr>
|
||||
<tr class="align-middle"> <th>LIS Code</th> <th>:</th> <td><input class='form-control' type='text' id='liscodeSingle' oninput='this.value = this.value.toUpperCase();' /></td> </tr>
|
||||
<tr class="align-middle"> <th>Desc.</th> <th>:</th> <td><input class='form-control' type='text' id='descsSingle'/></td> </tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='saveSingle()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Profile -->
|
||||
<div class="modal fade" id="modal_profile" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Profile Test</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||
</div>
|
||||
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<table class="table table-sm table-borderless">
|
||||
<input type='hidden' id='updateProfile' value='' />
|
||||
<tr class="align-middle"> <th>HIS Code</th> <th>:</th> <td><input class='form-control' type='text' id='hiscodeProfile'/></td> </tr>
|
||||
<tr class="align-middle"> <th>Desc.</th> <th>:</th> <td><input class='form-control' type='text' id='descsProfile'/></td> </tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-top">
|
||||
<th>LIS Code</th> <th>:</th>
|
||||
<?php $j=1; ?>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
<td> <?php for($i=1;$i<=11;$i++) { echo "<input class='mliscode$j' type='text' maxlength='5' size='7' oninput='this.value = this.value.toUpperCase();' /> <br />\n";$j++; } ?> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<button class='btn btn-sm btn-primary' onclick='saveProfile()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('script') ?>
|
||||
<script>
|
||||
index();
|
||||
function index() {
|
||||
let url = '<?=base_url('');?>api/dictMappings/index';
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'GET',
|
||||
success: function(response) {
|
||||
$("#myTable").DataTable().destroy();
|
||||
$("#table-body").html("");
|
||||
var data = response['dictMappings'];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
liscode = data[i].LISCODE;
|
||||
hiscode = data[i].HISCODE;
|
||||
maptype = data[i].MAPTYPE;
|
||||
mapid = data[i].MAPID;
|
||||
descs = data[i].DESCS;
|
||||
editBtn = '';
|
||||
if(data[i].LISCODE == null) { liscode = '-'; }
|
||||
/*
|
||||
if(data[i].HISCODE != null) { text2 = data[i].TEXT2; }
|
||||
if(data[i].MAPPINGTYPE != null) { unit = data[i].UNIT; }
|
||||
if(data[i].MAPPINGID != null) { refftext = data[i].REFFTEXT; }
|
||||
if(data[i].DESCS != null) { refftext = data[i].DESCS; }
|
||||
*/
|
||||
if(maptype == 'S') {
|
||||
editBtn = '<button class="btn btn-sm btn-success" ' + ' onclick="editSingle(' + mapid+ ')">Edit' + '</button> ';
|
||||
} else {
|
||||
editBtn = '<button class="btn btn-sm btn-success" ' + ' onclick="editProfile(' + mapid+ ')">Edit' + '</button> ';
|
||||
}
|
||||
let datarow = '<tr class="align-middle">' +
|
||||
'<td>' + maptype + '</td>' + '<td>' + hiscode+ '</td> <td>' + liscode + '</td>' + '<td>' + descs + '</td>' + '<td>' + editBtn + '</td>' +
|
||||
'</tr>';
|
||||
$("#table-body").append(datarow);
|
||||
}
|
||||
$("#myTable").DataTable({
|
||||
"pageLength" : 25,
|
||||
});
|
||||
},
|
||||
error: function(response) { console.log(response.responseJSON); }
|
||||
});
|
||||
}
|
||||
|
||||
function createSingle() {
|
||||
$("#alertSingle").html();
|
||||
$("#updateSingle").val("0");
|
||||
$("#hiscodeSingle").val("");
|
||||
$("#liscodeSingle").val("");
|
||||
$("#descsSingle").val("");
|
||||
$("#modal_single").modal('show');
|
||||
}
|
||||
|
||||
function editSingle(mapid) {
|
||||
let url = '<?=base_url('');?>api/dictMappings/detail/'+mapid;
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "GET",
|
||||
success: function(response) {
|
||||
let data = response;
|
||||
$("#updateSingle").val(mapid);
|
||||
$("#liscodeSingle").val(data.LISCODE);
|
||||
$("#hiscodeSingle").val(data.HISCODE);
|
||||
$("#descsSingle").val(data.DESCS);
|
||||
$("#modal_single").modal('show');
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function createProfile() {
|
||||
$("#updateProfile").val("0");
|
||||
$("#hiscodeProfile").val("");
|
||||
$("#descsProfile").val("");
|
||||
for (let i = 1; i <= 22; i++) {
|
||||
let id = `.mliscode${i}`;
|
||||
let element = $(id);
|
||||
element.val('');
|
||||
}
|
||||
$("#modal_profile").modal('show');
|
||||
}
|
||||
|
||||
function editProfile(mapid) {
|
||||
let url = '<?=base_url('');?>api/dictMappings/detail/'+mapid;
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "GET",
|
||||
success: function(response) {
|
||||
let data = response;
|
||||
$("#updateProfile").val(mapid);
|
||||
$("#hiscodeProfile").val(data.HISCODE);
|
||||
$("#descsProfile").val(data.DESCS);
|
||||
for (let i = 0; i < data.mliscodes.length; i++) {
|
||||
const fieldId = `mliscode${i + 1}`;
|
||||
$(`.${fieldId}`).val(data.mliscodes[i].LISCODE);
|
||||
}
|
||||
$("#modal_profile").modal('show');
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function saveSingle() {
|
||||
let url = '<?=base_url('');?>api/dictMappings/saveSingle';
|
||||
var update = $("#updateSingle").val();
|
||||
var hiscode = $("#hiscodeSingle").val();
|
||||
var liscode = $("#liscodeSingle").val();
|
||||
var descs = $("#descsSingle").val();
|
||||
let data = { update: update, hiscode: hiscode, liscode:liscode, descs:descs };
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#liscodeSingle").val('');
|
||||
$("#hiscodeSingle").val('');
|
||||
$("#descsSingle").val('');
|
||||
$("#updateSingle").val('');
|
||||
$("#modal_single").modal('hide');
|
||||
index();
|
||||
},
|
||||
error: function(response) {
|
||||
alert(response.responseJSON.messages.errors);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function saveProfile() {
|
||||
let url = '<?=base_url('');?>api/dictMappings/saveProfile';
|
||||
var update = $("#updateProfile").val();
|
||||
var hiscode = $("#hiscodeProfile").val();
|
||||
var descs = $("#descsProfile").val();
|
||||
let data = { update: update, hiscode: hiscode, descs:descs };
|
||||
for (let i = 1; i <= 22; i++) {
|
||||
let className = `.mliscode${i}`;
|
||||
let value = $(className).val();
|
||||
if (value !== undefined && value != '') {
|
||||
data[`mliscode${i}`] = value;
|
||||
}
|
||||
}
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#modal_profile").modal('hide');
|
||||
index();
|
||||
},
|
||||
error: function(response) {
|
||||
alert(response.responseJSON.messages.errors);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,4 +1,4 @@
|
||||
<?= $this->extend('layouts/main.php') ?>
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="card border-0 m-1">
|
||||
|
||||
@ -14,11 +14,11 @@
|
||||
|
||||
<!-- <body class="sb-nav-fixed sb-sidenav-toggled"> -->
|
||||
<body class="sb-nav-fixed">
|
||||
<?= $this->include('layouts/topbar'); ?>
|
||||
<?= $this->include('admin/layout/topbar'); ?>
|
||||
|
||||
<div id="layoutSidenav">
|
||||
|
||||
<?= $this->include('layouts/sidebar'); ?>
|
||||
<?= $this->include('admin/layout/sidebar'); ?>
|
||||
|
||||
<div id="layoutSidenav_content">
|
||||
<main>
|
||||
@ -6,6 +6,7 @@
|
||||
<a class="nav-link" href="<?=base_url();?>admin/"><div class="sb-nav-link-icon"><i class="bi bi-speedometer"></i></div>Dashboard</a>
|
||||
<a class="nav-link" href="<?=base_url();?>changePass/"><div class="sb-nav-link-icon"><i class="bi bi-key"></i></div>Change Password</a>
|
||||
<div class="sb-sidenav-menu-heading">Administration</div>
|
||||
<a class="nav-link" href="<?=base_url();?>admin/dictMappings/"> <div class="sb-nav-link-icon"><i class="bi bi-diagram-2"></i></div> Dict. Mapping Order </a>
|
||||
<a class="nav-link" href="<?=base_url();?>admin/dictTests/"> <div class="sb-nav-link-icon"><i class="bi bi-journal-album"></i></div> Dict. Test </a>
|
||||
<a class="nav-link" href="<?=base_url();?>admin/users/"> <div class="sb-nav-link-icon"><i class="bi bi-person-circle"></i></div> Users </a>
|
||||
<a class="nav-link" href="<?=base_url();?>admin/userroles/"> <div class="sb-nav-link-icon"><i class="bi bi-person-lock"></i></div> User Roles </a>
|
||||
@ -1,4 +1,4 @@
|
||||
<?= $this->extend('layouts/main.php') ?>
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="card border-0">
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?= $this->extend('layouts/main.php') ?>
|
||||
<?= $this->extend('admin/layout/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="card border-0">
|
||||
|
||||
@ -1,69 +0,0 @@
|
||||
<div id="layoutSidenav_nav">
|
||||
<nav class="sb-sidenav accordion sb-sidenav-light" id="sidenavAccordion">
|
||||
<div class="sb-sidenav-menu">
|
||||
<div class="nav">
|
||||
<div class="sb-sidenav-menu-heading">Core</div>
|
||||
<a class="nav-link" href="index.html">
|
||||
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
|
||||
Dashboard
|
||||
</a>
|
||||
<div class="sb-sidenav-menu-heading">Interface</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapseLayouts" aria-expanded="false" aria-controls="collapseLayouts">
|
||||
<div class="sb-nav-link-icon"><i class="fas fa-columns"></i></div>
|
||||
Layouts
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="bi bi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="layout-static.html">Static Navigation</a>
|
||||
<a class="nav-link" href="layout-sidenav-light.html">Light Sidenav</a>
|
||||
</nav>
|
||||
</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapsePages" aria-expanded="false" aria-controls="collapsePages">
|
||||
<div class="sb-nav-link-icon"><i class="fas fa-book-open"></i></div>
|
||||
Pages
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="collapsePages" aria-labelledby="headingTwo" data-bs-parent="#sidenavAccordion">
|
||||
<nav class="sb-sidenav-menu-nested nav accordion" id="sidenavAccordionPages">
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#pagesCollapseAuth" aria-expanded="false" aria-controls="pagesCollapseAuth">
|
||||
Authentication
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="pagesCollapseAuth" data-bs-parent="#sidenavAccordionPages">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="login.html">Login</a>
|
||||
<a class="nav-link" href="register.html">Register</a>
|
||||
<a class="nav-link" href="password.html">Forgot Password</a>
|
||||
</nav>
|
||||
</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#pagesCollapseError" aria-expanded="false" aria-controls="pagesCollapseError">
|
||||
Error
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="pagesCollapseError" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordionPages">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
</nav>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="sb-sidenav-menu-heading">Addons</div>
|
||||
<a class="nav-link" href="charts.html">
|
||||
<div class="sb-nav-link-icon"><i class="fas fa-chart-area"></i></div>
|
||||
Charts
|
||||
</a>
|
||||
<a class="nav-link" href="tables.html">
|
||||
<div class="sb-nav-link-icon"><i class="fas fa-table"></i></div>
|
||||
Tables
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sb-sidenav-footer">
|
||||
<div class="small">Logged in as:</div>
|
||||
Analis Lab
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
Loading…
x
Reference in New Issue
Block a user