MERGE_EMPLOYEE_MODULE_WITH_NEW_UI

This commit is contained in:
velz 2024-02-16 17:08:31 +05:30
commit d8a2ea435b
125 changed files with 21801 additions and 2554 deletions

View File

@ -20,7 +20,7 @@ CI_ENVIRONMENT = development
# APP # APP
#-------------------------------------------------------------------- #--------------------------------------------------------------------
app.baseURL = 'https://localhost/PHP828APPS/ruc/ci4/' app.baseURL = 'http://localhost/nhance/'
# If you have trouble with `.`, you could also use `_`. # If you have trouble with `.`, you could also use `_`.
# app_baseURL = '' # app_baseURL = ''
# app.forceGlobalSecureRequests = false # app.forceGlobalSecureRequests = false
@ -30,18 +30,20 @@ app.baseURL = 'https://localhost/PHP828APPS/ruc/ci4/'
# DATABASE # DATABASE
#-------------------------------------------------------------------- #--------------------------------------------------------------------
database.default.hostname = localhost
database.default.database = ruc
database.default.username = root database.default.hostname = 119.18.54.85
database.default.password = database.default.database = venbaehn_nhance
database.default.username = venbaehn_nhance_user1
database.default.password = 'iM~X7(cR+}A-'
# database.default.DBDriver = MySQLi # database.default.DBDriver = MySQLi
# database.default.DBPrefix = # database.default.DBPrefix =
# database.default.port = 3306 # database.default.port = 3306
# database.tests.hostname = localhost database.default.hostname = 119.18.54.85
# database.tests.database = ci4_test database.default.database = venbaehn_nhance
# database.tests.username = root database.default.username = venbaehn_nhance_user1
# database.tests.password = root database.default.password = 'iM~X7(cR+}A-'
# database.tests.DBDriver = MySQLi # database.tests.DBDriver = MySQLi
# database.tests.DBPrefix = # database.tests.DBPrefix =
# database.tests.port = 3306 # database.tests.port = 3306
@ -141,3 +143,13 @@ database.default.password =
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# curlrequest.shareOptions = true # curlrequest.shareOptions = true
#--------------------------------------------------------------------
# Google-OAUTH-Credentials
#--------------------------------------------------------------------
GOOGLE_OAUTH_APP_NAME = 'OAuth'
GOOGLE_OAUTH_CLIENT_ID = '696241936560-m2mr272ge7vr2n4q36c22l3d2gdgi90l.apps.googleusercontent.com'
GOOGLE_OAUTH_CLIENT_SECRET = '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'
GOOGLE_OAUTH_REDIRECT_URI = 'http://localhost/nhance/oauth2callback'
GOOGLE_OAUTH_SCOPES = "https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile"

View File

@ -99,5 +99,5 @@ class Autoload extends AutoloadConfig
* @var string[] * @var string[]
* @phpstan-var list<string> * @phpstan-var list<string>
*/ */
public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth']; public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth', 'fileupload'];
} }

View File

@ -32,30 +32,33 @@ $routes->group("/client", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index"); $routes->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientOnboarding"); $routes->get("create", "ClientController::clientOnboarding");
$routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
$routes->group("general", ["filter" => "authMVC"], function($routes){ $routes->group("general", ["filter" => "authMVC"], function($routes){
$routes->get("create", "ClientController::clientGeneralInfoData"); $routes->post("create", "ClientController::createClientGeneralInfo");
$routes->post("create", "ClientController::createClientGeneralInfo"); $routes->post("edit", "ClientController::editClientGeneralInfo");
}); });
$routes->group("relation", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::clientCreate");
});
$routes->group("branch", ["filter" => "authMVC"], function($routes){ $routes->group("branch", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index"); $routes->post("create", "ClientController::createClientBranch");
$routes->get("create", "ClientController::clientCreate"); $routes->post("edit", "ClientController::editClientBranch");
$routes->post("create", "ClientController::clientCreate"); $routes->get("list/(:any)", "ClientController::getSingleBranchDataById/$1");
}); });
$routes->group("relation", ["filter" => "authMVC"], function($routes){
$routes->post("create", "ClientController::createClientRelation");
$routes->post("edit", "ClientController::editClientRelation");
});
$routes->group("policy", ["filter" => "authMVC"], function($routes){ $routes->group("policy", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index"); $routes->post("create", "ClientController::createClientPolicy");
$routes->get("create", "ClientController::clientCreate"); $routes->post("edit", "ClientController::editClientPolicy");
$routes->post("create", "ClientController::clientCreate"); $routes->get("list/(:any)", "ClientController::getClientPolicyById/$1");
}); });
$routes->group("kyc", ["filter" => "authMVC"], function($routes){ $routes->group("kyc", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index"); $routes->post("create", "ClientController::createClientKYCInfo");
$routes->get("create", "ClientController::clientCreate"); $routes->post("edit", "ClientController::editClientKYCInfo");
$routes->post("create", "ClientController::clientCreate"); $routes->get("list/(:any)", "ClientController::getKycDocsById/$1");
$routes->get("delete/(:any)", "ClientController::deleteClientKycDocs/$1");
}); });
}); });
@ -69,6 +72,8 @@ $routes->group("/employee", ["filter" => "authMVC"], function($routes){
$routes->group("/util", ["filter" => "authMVC"], function($routes){ $routes->group("/util", ["filter" => "authMVC"], function($routes){
$routes->get("clients-with-policies", "EmployeeController::getClientWithPolicies"); $routes->get("clients-with-policies", "EmployeeController::getClientWithPolicies");
$routes->get("police-by-insurer/(:any)", "ClientController::getPolicesByInsurerId/$1");
}); });
$routes->cli('processjob', 'JobWorker::processJob'); $routes->cli('processjob', 'JobWorker::processJob');

View File

@ -71,7 +71,7 @@ class Security extends BaseConfig
* *
* Regenerate CSRF Token on every submission. * Regenerate CSRF Token on every submission.
*/ */
public bool $regenerate = true; public bool $regenerate = false;
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel; use App\Models\UserModel;
use App\Models\ClientModel; use App\Models\ClientModel;
@ -21,10 +22,14 @@ use App\Models\LevelContactModel;
use App\Models\PolicesModel; use App\Models\PolicesModel;
use App\Models\TPABranchModel; use App\Models\TPABranchModel;
use App\Models\TPAModel; use App\Models\TPAModel;
use App\Models\StateModel;
class ClientController extends AdminController class ClientController extends AdminController
{ {
use ResponseTrait;
protected $myLogger;
protected $clientModel; protected $clientModel;
protected $userModel; protected $userModel;
protected $clientBranchModel; protected $clientBranchModel;
@ -39,12 +44,14 @@ class ClientController extends AdminController
protected $policesModel; protected $policesModel;
protected $tpaBranchModel; protected $tpaBranchModel;
protected $tpaModel; protected $tpaModel;
protected $stateModel;
public function __construct() public function __construct()
{ {
parent::__construct(); set_session_context('Client');
$this->myLogger = \Config\Services::mylogger();
$this->clientModel = new ClientModel(); $this->clientModel = new ClientModel();
$this->userModel = new UserModel(); $this->userModel = new UserModel();
$this->clientBranchModel = new ClientBranchModel(); $this->clientBranchModel = new ClientBranchModel();
@ -59,33 +66,431 @@ class ClientController extends AdminController
$this->policesModel = new PolicesModel(); $this->policesModel = new PolicesModel();
$this->tpaBranchModel = new TPABranchModel(); $this->tpaBranchModel = new TPABranchModel();
$this->tpaModel = new TPAModel(); $this->tpaModel = new TPAModel();
$this->stateModel = new StateModel();
} }
public function index() public function index()
{ {
echo view('layout/header'); $this->myLogger->logme('error','Client list function called');
echo view('client_list'); $headerData['page_name'] = 'Client List';
$data['clientList'] = $this->clientModel->getCreatedByUserName();
$data['client_rm'] = $this->clientRMModel->getAllClientRM();
// echo '<pre>';
// print_r($data); die;
echo view('layout/header', $headerData);
echo view('client_list', $data);
echo view('layout/footer'); echo view('layout/footer');
// $this->loadLayout('client_onboarding', $data);
} }
public function clientOnboarding(){ public function clientOnboarding()
{
$this->myLogger->logme('error','Client Onboarding function called');
$headerData['page_name'] = 'Client Onboarding';
$data['contact_level'] = ['1'=>'level 1', '2'=>'level 2', '3'=>'level 3'];
$data['entity'] = $this->kycEntityTypeModel->findAll(); $data['entity'] = $this->kycEntityTypeModel->findAll();
$data['kyc_docs'] = $this->kycDocsModel->findAll(); $data['kyc_docs'] = $this->kycDocsModel->findAll();
$data['police'] = $this->policesModel->findAll(); $data['police'] = $this->policesModel->findAll();
$data['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames(); $data['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
$data['tpa'] = $this->tpaBranchModel ->getTpaBranchesWithTpaNames();
$data['state'] = $this->stateModel->getAllStates();
$data['RM'] = $this->userModel->findAll(); $data['RM'] = $this->userModel->findAll();
echo view('layout/header'); // echo "<pre>";
// print_r($data); die;
echo view('layout/header', $headerData);
echo view('client_onboarding', $data); echo view('client_onboarding', $data);
echo view('layout/footer'); echo view('layout/footer');
// $this->loadLayout('client_onboarding', $data);
} }
public function editClientOnboarding($id = null)
public function createClientGeneralInfo(){ {
$this->myLogger->logme('error','Edit Client Onboarding function called');
$headerData['page_name'] = 'Edit Client Onboarding';
$editData['RM'] = $this->userModel->findAll();
$editData['tpa'] = $this->tpaBranchModel ->getTpaBranchesWithTpaNames();
$editData['state'] = $this->stateModel->getAllStates();
$editData['police'] = $this->policesModel->findAll();
$editData['entity'] = $this->kycEntityTypeModel->findAll();
$editData['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
$editData['kyc_docs'] = $this->kycDocsModel->findAll();
$editData['client'] = $this->clientModel->where(['id' => $id, 'is_active' => 1])->first();
$editData['client_kyc'] = $this->clientKYCDocsModel->getKycDocsName($id);
$editData['client_branch'] = $this->clientBranchModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
$editData['client_relation'] = $this->clientRMModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
$editData['client_policy'] = $this->clientPolicyModel->getClientPolicyByClientId($id);
// echo "<pre>";
// print_r($editData); die;
echo view('layout/header', $headerData);
echo view('client_onboarding', $editData);
echo view('layout/footer');
} }
public function createClientGeneralInfo()
{
$this->myLogger->logme('error','Client general info function called');
$data = $this->request->getPost();
$data['created_by'] = get_session_userid();
$insert = $this->clientModel->insert($data);
if($insert){
$client_data = $this->clientModel->where(['id' => $insert, 'is_active' => 1])->first();
echo json_encode(array("status" => true , 'data' => $client_data));
}else{
echo json_encode(array("status" => false));
}
}
public function editClientGeneralInfo()
{
$this->myLogger->logme('error','edit client general info function called');
$id = $this->request->getPost('PrimaryKey');
$data = $this->request->getPost();
$data['updated_by'] = get_session_userid();
$update = $this->clientModel->update($id,$data);
if($update){
echo json_encode(array("status" => true , 'data' => $data));
}else{
echo json_encode(array("status" => false));
}
}
public function createClientKYCInfo()
{
$this->myLogger->logme('error','create Client kyc function called');
$File = file_Upload($this->request->getFile('file_name'));
if(!empty($File)){
$data['file_name'] = $File;
}
$data['client_id'] = $this->request->getPost('client_id');
$data['kyc_doc_type_id'] = $this->request->getPost('kyc_doc_id');
$data['created_by'] = get_session_userid();
$insert = $this->clientKYCDocsModel->insert($data);
if($insert){
$kycDocs = $this->clientKYCDocsModel->getKycDocsName($this->request->getPost('client_id'));
echo json_encode(array("status" => true , 'data' => $kycDocs));
}else{
echo json_encode(array("status" => false));
}
}
public function editClientKYCInfo()
{
$this->myLogger->logme('error','edit client kyc function called');
$File = file_Upload($this->request->getFile('file_name'));
if(!empty($File)){
$data['file_name'] = $File;
}
$id = $this->request->getPost('PrimaryKey');
$data['client_id'] = $id;
$data['kyc_doc_type_id'] = $this->request->getPost('kyc_doc_id');
$data['updated_by'] = get_session_userid();
$insert = $this->clientKYCDocsModel->insert($data);
if($insert){
$kycDocs = $this->clientKYCDocsModel->getKycDocsName($id);
echo json_encode(array("status" => true , 'data' => $kycDocs));
}else{
echo json_encode(array());
}
}
public function deleteClientKycDocs($id=null)
{
$delete = $this->clientKYCDocsModel->where('id', $id)->delete();
if($delete){
echo json_encode(array("status" => true ));
}else{
echo json_encode(array("status" => false));
}
}
public function createClientRelation()
{
$this->myLogger->logme('error','Client relation function called');
$data['client_id'] = $this->request->getPost('client_id');
$data['created_by'] = get_session_userid();
$inserted = false;
if ($this->request->getPost('head')) {
$data['level'] = "1";
$data['user_id'] = $this->request->getPost('head');
$inserted = $this->clientRMModel->insert($data);
}
if ($this->request->getPost('manager')) {
$data['level'] = "2";
$data['user_id'] = $this->request->getPost('manager');
$inserted = $this->clientRMModel->insert($data);
}
if ($this->request->getPost('account_manager')) {
$data['level'] = "3";
foreach ($this->request->getPost('account_manager') as $value) {
$data['user_id'] = $value;
$inserted = $this->clientRMModel->insert($data);
}
}
if ($inserted) {
echo json_encode(array("status" => true, 'data' => $this->request->getPost()));
} else {
echo json_encode(array("status" => false));
}
}
public function editClientRelation()
{
$this->myLogger->logme('error','Client relation function called');
$id = $this->request->getPost('PrimaryKey');
$data['client_id'] = $this->request->getPost('client_id');
$data['updated_by'] = get_session_userid();
$inserted = false;
if ($this->request->getPost('head')) {
$data['user_id'] = $this->request->getPost('head');
$checkHead = $this->clientRMModel->checkExistenceOfClientRelation($id, $this->request->getPost('head'), 1);
if($checkHead){
$inserted = $this->clientRMModel->where('client_id', $id )->where('level', 1)->set($data)->update();
}else{
$data['level'] = "1";
$data['user_id'] = $this->request->getPost('head');
$inserted = $this->clientRMModel->insert($data);
}
}
if ($this->request->getPost('manager')) {
$data['user_id'] = $this->request->getPost('manager');
$checkHead = $this->clientRMModel->checkExistenceOfClientRelation($id, $this->request->getPost('manager'), 2);
if($checkHead){
$inserted = $this->clientRMModel->where('client_id', $id )->where('level', 2)->set($data)->update();
}else{
$data['level'] = "2";
$data['user_id'] = $this->request->getPost('manager');
$inserted = $this->clientRMModel->insert($data);
}
}
if ($this->request->getPost('account_manager')) {
$this->clientRMModel->where('client_id', $id)->where('level', 3)->delete();
$data['level'] = "3";
foreach ($this->request->getPost('account_manager') as $value) {
$data['user_id'] = $value;
$inserted = $this->clientRMModel->insert($data);
}
}
$lastQuery = $this->clientRMModel->getLastQuery();
if ($inserted) {
echo json_encode(array("status" => true, 'data' => $this->request->getPost(), "place" => 'edit'));
} else {
echo json_encode(array("status" => false, "place" => 'edit'));
}
}
public function createClientBranch()
{
$this->myLogger->logme('error','Client branch CREATE function called');
$data = $this->request->getPost();
$data['created_by'] = get_session_userid();
$insert = $this->clientBranchModel->insert($data);
if($insert){
for ($i = 0; $i < count($this->request->getPost('name')); $i++) {
// Prepare data to insert
$data = [
'contact_type' => 'client',
'ref_id' => $insert,
'created_by' => get_session_userid(),
'name' => $this->request->getPost('name')[$i],
'email' => $this->request->getPost('email')[$i],
'mobile' => $this->request->getPost('mobile')[$i],
'designation' => $this->request->getPost('designation')[$i]
];
$contacts = $this->levelContactModel->insert($data);
}
}
if($insert){
$branchData = $this->clientBranchModel->where('client_id', $this->request->getPost('client_id'))->findAll();
echo json_encode(array("status" => true , 'data' => $branchData));
}else{
echo json_encode(array("status" => false));
}
}
public function editClientBranch()
{
$this->myLogger->logme('error','Client branch EDIT function called');
$id = $this->request->getPost('PrimaryKey');
$client_id = $this->request->getPost('client_id');
$data = $this->request->getPost();
$data['updated_by'] = get_session_userid();
$insert = $this->clientBranchModel->update($id, $data);
$this->myLogger->logme('error','Client branch EDITED by {data}', ['data' => get_session_userid()]);
if($insert){
$this->levelContactModel->where('ref_id', $id)->where('contact_type', 'client')->delete();
for ($i = 0; $i < count($this->request->getPost('name')); $i++) {
$data = [
'contact_type' => 'client',
'ref_id' => $id,
'updated_by' => get_session_userid(),
'name' => $this->request->getPost('name')[$i],
'email' => $this->request->getPost('email')[$i],
'mobile' => $this->request->getPost('mobile')[$i],
'designation' => $this->request->getPost('designation')[$i]
];
$contacts = $this->levelContactModel->insert($data);
}
}
if($insert){
$branchData = $this->clientBranchModel->where('client_id', $client_id)->findAll();
echo json_encode(array("status" => true , 'data' => $branchData));
}else{
echo json_encode(array("status" => false));
}
}
public function createClientPolicy()
{
$this->myLogger->logme('error','Client policy CREATE function called');
$insurerValue = (string) $this->request->getPost('insurer');
list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
$data['insurer_branch_id'] = $insurerBranchId;
$data['insurer_id'] = $insurerId;
$tpaValue = (string) $this->request->getPost('tpa');
list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
$data['tpa_branch_id'] = $tpaBranchId;
$data['tpa_id'] = $tpaId;
$data['policy_id'] = $this->request->getPost('policy_id');
$data['client_id'] = $this->request->getPost('client_id');
$data['created_by'] = get_session_userid();
$insert = $this->clientPolicyModel->insert($data);
if($insert){
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id'));
echo json_encode(array("status" => true , 'data' => $clientPoliceData));
}else{
echo json_encode(array("status" => false));
}
}
public function editClientPolicy()
{
$this->myLogger->logme('error','Client policy function called');
$id = $this->request->getPost('PrimaryKey');
$client_id = $this->request->getPost('client_id');
$insurerValue = (string) $this->request->getPost('insurer');
list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
$data['insurer_branch_id'] = $insurerBranchId;
$data['insurer_id'] = $insurerId;
$tpaValue = (string) $this->request->getPost('tpa');
list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
$data['tpa_branch_id'] = $tpaBranchId;
$data['tpa_id'] = $tpaId;
$data['policy_id'] = $this->request->getPost('policy_id');
$data['updated_by'] = get_session_userid();
$insert = $this->clientPolicyModel->update($id,$data);
$lastQuery = $this->clientPolicyModel->getLastQuery();
if($insert){
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($client_id);
echo json_encode(array("status" => true , 'data' => $clientPoliceData));
}else{
echo json_encode(array("status" => false));
}
}
public function getKycDocsById($id=null)
{
$this->myLogger->logme('error','getKycDocsById function called');
if($id){
$kyc_docs_data = $this->kycDocsModel->where(['kyc_type_id' => $id, 'is_active' => 1])->findAll();
echo json_encode(array("status" => true , 'data' => $kyc_docs_data));
$this->myLogger->logme('error','getKycDocs status TRUE');
}else{
echo json_encode(array("status" => false));
$this->myLogger->logme('error','getKycDocs status FALSE');
}
}
public function getPolicesByInsurerId($id = null)
{
$this->myLogger->logme('error','getPolicesByInsurerId function called');
if($id){
$police_data = $this->policesModel->where(['insurer_id' => $id, 'is_active' => 1])->findAll();
echo json_encode(array("status" => true , 'data' => $police_data));
}else{
echo json_encode(array("status" => false));
}
}
public function getSingleBranchDataById($id=null)
{
$this->myLogger->logme('error','getSingleBranchDataById function called');
if($id){
$branch_data = $this->clientBranchModel->where(['id' => $id, 'is_active' => 1])->first();
$branch_contact_data = $this->levelContactModel->where(['ref_id' => $id, 'contact_type'=>'client', 'is_active' => 1])->findAll();
echo json_encode(array("status" => true , 'data' => $branch_data, 'contact' => $branch_contact_data));
}else{
echo json_encode(array("status" => false));
}
}
public function getClientPolicyById($id=null)
{
$this->myLogger->logme('error','getClientPolicyById function called');
if($id){
$client_policy_data = $this->clientPolicyModel->where(['id' => $id, 'is_active' => 1])->first();
$insurer_id = $client_policy_data['insurer_id'];
$polices = $this->policesModel->where(['insurer_id' => $insurer_id, 'is_active' => 1])->findAll();
echo json_encode(array("status" => true , 'data' => $client_policy_data, 'policy' => $polices));
}else{
echo json_encode(array("status" => false));
}
}
} }

View File

@ -17,6 +17,7 @@ class LoginController extends BaseController
// $session_data = ['isLoggedIn' => True ,'userid' => '4']; // $session_data = ['isLoggedIn' => True ,'userid' => '4'];
// set_session_data($session_data); // set_session_data($session_data);
// $isLoggedIn = check_session();
$isLoggedIn = check_session(); $isLoggedIn = check_session();
if ($isLoggedIn) { if ($isLoggedIn) {

View File

@ -16,109 +16,98 @@ use App\Models\UserTeamsModel;
class UserController extends AdminController class UserController extends AdminController
{ {
protected $myLogger; protected $myLogger;
protected $userModel;
protected $roleModel;
protected $teamModel;
protected $userTeamsModel;
public function __construct() public function __construct()
{ {
// helper('utility');
set_session_context('User'); set_session_context('User');
$this->myLogger = \Config\Services::mylogger(); $this->myLogger = \Config\Services::mylogger();
$this->userModel = new UserModel();
$this->roleModel = new RoleModel();
$this->teamModel = new TeamModel();
$this->userTeamsModel = new UserTeamsModel();
} }
public function list() public function list()
{ {
$model = new UserModel(); $data['headerData'] = 'User List';
$this->myLogger->logme('error','list {data} called',['data' => '9638527410']); $this->myLogger->logme('error','User list function called');
$data['UserList'] = $model->where('is_active', 1)->orderBy('id', 'DESC')->findAll(); $data['UserList'] = $this->userModel->getUserList();
echo view('layout/header'); // echo '<pre>';
echo view('AddUser'); // print_r($data); die;
echo view('UserList', $data); $data['roleData'] = $this->roleModel->select('id, role')->findAll();
echo view('layout/footer'); $data['teamData'] = $this->teamModel->select('id, name')->findAll();
$this->loadLayout('UserList', $data);
} }
public function create() public function create()
{ {
$this->myLogger->logme('error','User create function called');
$teams = $this->request->getPost('team'); $teams = $this->request->getPost('team');
//if this is get method return to user creation page //if this is get method return to user creation page
if(!$this->request->getPost()){ if(!$this->request->getPost()){
return redirect()->to(base_url('/user/list')); return redirect()->to(base_url('/user/list'));
}else{ }else{
//else do user insert operation
$userModel = new UserModel();
$File = fileUpload($this->request->getFile('profile'));
$userData = $this->request->getPost(); $userData = $this->request->getPost();
if(!empty($File)){
$userData['profile'] = $File;
}
// Inserting data into the 'users' table
$userData['created_by'] = get_session_userid(); $userData['created_by'] = get_session_userid();
unset($userData['team']); unset($userData['team']);
$insert = $userModel->insert($userData); $insert = $this->userModel->insert($userData);
if($insert){ if($insert){
$teamData['user_id'] = $insert ; $teamData['user_id'] = $insert ;
$UserTeamsModel = new UserTeamsModel();
foreach ($teams as $value) { foreach ($teams as $value) {
$teamData['team_id'] = $value; $teamData['team_id'] = $value;
$teamData['created_by'] = get_session_userid(); $teamData['created_by'] = get_session_userid();
$UserTeamsModel->insert($teamData); $this->userTeamsModel->insert($teamData);
} }
} }
} }
$this->myLogger->logme('error','User create Successfully created by id {data}', ['data' => get_session_userid()]);
return redirect()->to(base_url('/user/list')); return redirect()->to(base_url('/user/list'));
} }
public function getuser($id = null){ public function getuser($id = null)
{
$model = new UserModel(); $userTeamData = $this->userTeamsModel->where('user_id', $id)->findAll();
$RoleModel = new RoleModel(); $data = $this->userModel->getUserById($id);
$TeamModal = new TeamModel();
$UserTeamsModel = new UserTeamsModel();
$roleData = $RoleModel->select('id, role')->findAll();
$teamData = $TeamModal->select('id, name')->findAll();
$userTeamData = $UserTeamsModel->where('user_id', $id)->findAll();
$data = $model->getUserById($id);
if($data){ if($data){
echo json_encode(array("status" => true , 'data' => $data, 'roleData' => $roleData, 'teamData' => $teamData, 'userTeamData' => $userTeamData)); echo json_encode(array("status" => true , 'data' => $data, 'userTeamData' => $userTeamData));
}else{ }else{
echo json_encode(array("status" => false)); echo json_encode(array("status" => false));
} }
} }
public function edit() public function edit()
{ {
$teams = $this->request->getPost('team'); $teams = $this->request->getPost('team');
// echo '<pre>';
// print_r($this->request->getPost()); die;
if(!$this->request->getPost()){ if(!$this->request->getPost()){
return redirect()->to(base_url('/user/list')); return redirect()->to(base_url('/user/list'));
}else{ }else{
$userModel = new UserModel();
$id = $this->request->getPost('PrimaryKey'); $id = $this->request->getPost('PrimaryKey');
$imageDetails = $userModel->find($id);
$File = fileUpload($this->request->getFile('profile'), (isset($imageDetails['profile']) ? $imageDetails['profile'] : null));
$userData = $this->request->getPost(); $userData = $this->request->getPost();
if(!empty($File)){
$userData['profile'] = $File;
}
// Update data in the 'users' table based on the $id // Update data in the 'users' table based on the $id
$userData['updated_by'] = get_session_userid(); $userData['updated_by'] = get_session_userid();
unset($userData['PrimaryKey']); $update = $this->userModel->where('id', $id )->set($userData)->update();
$update = $userModel->update($id, $userData);
if($update){ if($update){
$UserTeamsModel = new UserTeamsModel(); $this->userTeamsModel->where('user_id', $id)->delete();
$UserTeamsModel->where('user_id', $id)->delete(); if($teams){
$teamData['user_id'] = $id ; $teamData['user_id'] = $id ;
foreach ($teams as $value) { foreach ($teams as $value) {
$teamData['team_id'] = $value; $teamData['team_id'] = $value;
$teamData['created_by'] = get_session_userid(); $teamData['created_by'] = get_session_userid();
$UserTeamsModel->insert($teamData); $this->userTeamsModel->insert($teamData);
} }
}
} }
return redirect()->to(base_url('/user/list')); return redirect()->to(base_url('/user/list'));
} }
@ -137,14 +126,10 @@ class UserController extends AdminController
} }
} }
public function getRolesAndTeams(){ public function getRolesAndTeams()
{
$RoleModel = new RoleModel(); $roleData = $this->roleModel->select('id, role')->findAll();
$TeamModal = new TeamModel(); $teamData = $this->teamModel->select('id, name')->findAll();
$roleData = $RoleModel->select('id, role')->findAll();
$teamData = $TeamModal->select('id, name')->findAll();
echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,)); echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,));
} }
} }

View File

@ -0,0 +1,40 @@
<?php
if (!function_exists('file_to_upload')) {
function file_to_upload($file, $allowedTypes = [], $uploadDirectory = '')
{
$uploadPath = ROOTPATH . 'public/uploads/' . $uploadDirectory;
// Check if the upload directory exists
if (!is_dir($uploadPath)) {
throw new \Exception('Upload directory does not exist.');
}
// Validate file type
if (!empty($allowedTypes) && !in_array($file->getClientMimeType(), $allowedTypes)) {
throw new \Exception('Invalid file type.');
}
// Generate a unique filename
$originalName = $file->getName();
$ext = pathinfo($originalName, PATHINFO_EXTENSION);
$baseName = pathinfo($originalName, PATHINFO_FILENAME);
$counter = 0;
$newName = $baseName . '.' . $ext;
while (file_exists($uploadPath . $newName)) {
$counter++;
$newName = $baseName . '_' . $counter . '.' . $ext;
}
// Move the file to the upload directory
try {
$file->move($uploadPath, $newName);
} catch (\Exception $e) {
throw new \Exception('Failed to upload file: ' . $e->getMessage());
}
return $uploadDirectory . $newName;
}
}

View File

@ -43,9 +43,9 @@ if (!function_exists('change_date_format')) {
} }
} }
if (!function_exists('fileUpload')) { if (!function_exists('file_Upload')) {
function fileUpload($fileToUpload, $imageDetails = null) function file_Upload($fileToUpload, $imageDetails = null)
{ {
$fileName = $fileToUpload->getClientName(); $fileName = $fileToUpload->getClientName();
if ($fileToUpload !== NULL && $fileName !== "") { if ($fileToUpload !== NULL && $fileName !== "") {

View File

@ -13,9 +13,24 @@ class ClientBranchModel extends Model
"client_id", "client_id",
"branch_name", "branch_name",
"branch_code", "branch_code",
"city",
"district",
"state",
"created_by", "created_by",
"updated_by", "updated_by",
"is_active", "is_active",
]; ];
public function getBranchAndContactByBranchId($branch_id){
return $this->db->table('client_branch')
->select('client_branch.*')
->select('level_contacts.name, level_contacts.email, level_contacts.mobile, level_contacts.designation,')
->join('level_contacts', 'level_contacts.ref_id = client_branch.id')
->where('level_contacts.contact_type', 'client')
->where('client_branch.id', $branch_id)
->get()
->getResult();
}
} }

View File

@ -8,6 +8,22 @@ class ClientKYCDocsModel extends Model
{ {
protected $table = 'client_kyc_documents'; protected $table = 'client_kyc_documents';
protected $primaryKey = 'id'; protected $primaryKey = 'id';
protected $allowedFields = ['id','client_id','entity_type_id','file_name','is_active',"created_by","updated_by",]; protected $allowedFields = [
'id',
'client_id',
'kyc_doc_type_id',
'file_name',
'is_active',
"created_by",
"updated_by",
];
public function getKycDocsName($client_id){
$query = $this->select('client_kyc_documents.*, kyc_docs.file_name as client_file_name')
->join('kyc_docs', 'kyc_docs.id = client_kyc_documents.kyc_doc_type_id')
->where(['client_id' => $client_id, 'client_kyc_documents.is_active' => 1])
->findAll();
return $query;
}
} }

View File

@ -27,6 +27,7 @@ class ClientModel extends Model
]; ];
//get client and its associated policies in same array //get client and its associated policies in same array
public function clientsWithPolicies() public function clientsWithPolicies()
{ {
@ -46,7 +47,18 @@ class ClientModel extends Model
} }
//print_r(($clients));die(); //print_r(($clients));die();
return $clients; return $clients;
}
public function getCreatedByUserName(){
return $this->db->table('clients')
->select('clients.*')
->select('user_profiles.first_name as user_name')
->join('user_profiles', 'user_profiles.id = clients.created_by')
->get()
->getResult();
} }
} }

View File

@ -20,4 +20,43 @@ class ClientPolicyModel extends Model
"updated_by", "updated_by",
"Is_active", "Is_active",
]; ];
public function getClientPolicyById($id){
return $this->db->table('client_policy')
->select('insurers.name as insurer_name, insurers.short_name as insurer_short')
->select('tpa.name as tpa_name, tpa.short_name as tpa_short')
->select('policies.name as policy_name')
->select('insurer_branch.branch_name as insurer_branch_name, insurer_branch.branch_code as insurer_branch_code')
->select('tpa_branch.branch_name as tpa_branch_name, tpa_branch.branch_code as tpa_branch_code')
->join('insurers', 'insurers.id = client_policy.insurer_id')
->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id')
->join('tpa', 'tpa.id = client_policy.tpa_id')
->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id')
->join('policies', 'policies.id = client_policy.policy_id')
->where('client_policy.id', $id)
->get()
->getResult();
}
public function getClientPolicyByClientId($client_id){
return $this->db->table('client_policy')
->select('client_policy.*')
->select('insurers.name as insurer_name, insurers.short_name as insurer_short')
->select('tpa.name as tpa_name, tpa.short_name as tpa_short')
->select('policies.name as policy_name')
->select('insurer_branch.branch_name as insurer_branch_name, insurer_branch.branch_code as insurer_branch_code')
->select('tpa_branch.branch_name as tpa_branch_name, tpa_branch.branch_code as tpa_branch_code')
->join('insurers', 'insurers.id = client_policy.insurer_id')
->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id')
->join('tpa', 'tpa.id = client_policy.tpa_id')
->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id')
->join('policies', 'policies.id = client_policy.policy_id')
->where('client_policy.client_id', $client_id)
->get()
->getResult();
}
} }

View File

@ -18,4 +18,25 @@ class ClientRMModel extends Model
"is_active", "is_active",
]; ];
public function checkExistenceOfClientRelation($id, $user_id, $level)
{
$query = $this->where('client_id', $id)
->where('user_id', $user_id)
->where('level', $level)
->countAllResults();
return ($query > 0) ? true : false;
}
public function getAllClientRM(){
return $this->db->table('client_rm')
->select('client_rm.client_id, client_rm.level,')
->select('user_profiles.first_name as account_manager')
->join('user_profiles', 'user_profiles.id = client_rm.user_id')
->where('level', 3)
->get()
->getResult();
}
} }

View File

@ -17,6 +17,7 @@ class LevelContactModel extends Model
"email", "email",
"city", "city",
"mobile", "mobile",
"designation",
"created_by", "created_by",
"updated_by", "updated_by",
"is_active", "is_active",

20
app/Models/StateModel.php Normal file
View File

@ -0,0 +1,20 @@
<?php
namespace App\Models;
use CodeIgniter\Model;
class StateModel extends Model
{
protected $table = 'states';
protected $primaryKey = 'id';
protected $allowedFields = [
"id",
"state"
];
public function getAllStates()
{
return $this->select('id, state')->findAll();
}
}

View File

@ -23,4 +23,12 @@ class TPABranchModel extends Model
"updated_by", "updated_by",
"is_active", "is_active",
]; ];
public function getTpaBranchesWithTpaNames()
{
$query = $this->select('tpa_branch.*, T.short_name as tpa_short_name, T.name as tpa_name')
->join('tpa T', 'tpa_branch.tpa_id = T.id', 'left')
->find();
return $query;
}
} }

View File

@ -26,8 +26,6 @@ class UserModel extends Model
"created_at", "created_at",
"updated_by", "updated_by",
"updated_at", "updated_at",
"created_by",
"updated_by",
"is_active", "is_active",
]; ];
@ -90,13 +88,22 @@ class UserModel extends Model
public function getUserById($id){ public function getUserById($id){
$userData = $this->where('id', $id)->get(); $userData = $this->where('id', $id)->get();
if ($userData->getNumRows() > 0) { if ($userData->getNumRows() > 0) {
return $userData->getRow(); return $userData->getRow();
} else { } else {
return false; return false;
} }
} }
public function getUserList(){
return $this->db->table('user_profiles')
->select('user_profiles.*')
->select('roles.role as user_role')
->join('roles', 'roles.id = user_profiles.role')
->get()
->getResult();
}
} }
?> ?>

View File

@ -40,18 +40,7 @@ body {
</style> </style>
<!-- start page title --> <!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<h4 class="page-title"></h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li></li>
</ol>
</div>
</div>
</div>
</div>
<!-- ADD and EDIT Page HTML --> <!-- ADD and EDIT Page HTML -->
<div class="row" id="Add-Edit-Page"> <div class="row" id="Add-Edit-Page">
<div class="col-12"> <div class="col-12">
@ -70,56 +59,38 @@ body {
<input type="hidden" name="PrimaryKey" id="UserId"/> <input type="hidden" name="PrimaryKey" id="UserId"/>
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-3">
<label for="first_name">First Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" placeholder="Enter First Name" name="first_name" required>
</div>
<div class="form-group col-md-6">
<label for="last_name">Last Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" placeholder="Enter Last Name" name="last_name" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">Email<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" required>
</div>
<div class="form-group col-md-6">
<label for="mobile">Mobile Number<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile" placeholder="Enter Mobile Number" name="mobile" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="emp_code">Employee Code</label> <label for="emp_code">Employee Code</label>
<input type="text" class="form-control" id="emp_code" placeholder="Enter Employee Code" name="emp_code"> <input type="text" class="form-control" id="emp_code" placeholder="Enter Employee Code" name="emp_code">
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-3">
<label for="profile">Image</label> <label for="first_name">Name<span class="text-danger">*</span></label>
<input class="form-control" type="file" name="profile" multiple="true" id="profile" onchange="onFileUpload(this);" accept="image/*"> <input type="text" class="form-control" id="first_name" placeholder="Enter First Name" name="first_name" required>
</div>
<div class="form-group col-md-3">
<label for="email">Email<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" required>
</div>
<div class="form-group col-md-3">
<label for="mobile">Mobile Number<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile" placeholder="Enter Mobile Number" name="mobile" required>
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-4">
<label for="emp_code">User Role</label> <label for="emp_code">User Role</label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="role" name="role">
<option value="">Select Role</option> <option value="">Select Role</option>
</select> </select>
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-4">
<label for="profile">User Team</label> <label for="profile">User Team</label>
<select class="form-control" id="team" name="team[]" multiple> <select class="form-control" id="team" name="team[]" multiple>
</select> </select>
</div> </div>
</div> </div>
<div class="form-row">
<div class="form-group col-md-12" style="position: relative;top: 30px;">
<img class="mb-3 float-right" id="ajaxImgUpload" alt="Preview Image" src="https://via.placeholder.com/300" width="100" />
</div>
</div>
</div> </div>
<div class="form-group text-right m-b-0"> <div class="form-group text-right m-b-0">

View File

@ -1,15 +1 @@
<!-- start page title --> <h4 class="page-title">Welcome !</h4>
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<h4 class="page-title">Welcome !</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->

View File

@ -1,138 +1,238 @@
<style>
body {
.multiselect-native-select {
position: relative;
/* bottom: 32px; */
select {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px -1px -1px -3px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
left: 50%;
top: 30px;
}
}
.multiselect-container{
width: 100% !important;
}
.multiselect-selected-text{
float: left !important;
}
}
</style>
<!-- End ADD and EDIT Page HTML --> <!-- End ADD and EDIT Page HTML -->
<div class="row" id="List-page"> <div class="row" id="List-page">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="row" style="padding-bottom: 10px;"> <div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;"> <div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">User List</h4> <h4 class="header-title" style="position: relative;">User List</h4>
</div> </div>
<div class="col-6" style="text-align: right;"> <div class="col-6" style="text-align: right; position: relative;top: 53px;">
<button type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light">Add</button> <button type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light" data-toggle="modal" data-target="#con-close-modal" data-placement="top" title="Add" data-trigger="hover">ADD</button>
</div> </div>
</div> </div>
<table id="datatable-buttons" class="table table-striped dt-responsive nowrap w-100"> <table class="table table-sm table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
<thead> <thead class="bg-light">
<tr> <tr>
<th>First Name</th> <th class="font-weight-medium">Name</th>
<th>Last Name</th> <th class="font-weight-medium">Email</th>
<th>Email</th> <th class="font-weight-medium">Mobile No</th>
<th>Mobile No</th> <th class="font-weight-medium">Role</th>
<th>Action</th> <th class="font-weight-medium">Status</th>
</tr> <th class="font-weight-medium">Action</th>
</thead> </tr>
<tbody> </thead>
<?php foreach($UserList as $row) { ?> <tbody>
<tr id="<?php echo $row['id'];?>"> <?php foreach($UserList as $row) { ?>
<td><?php echo $row['first_name']; ?></td> <tr id="<?php echo $row->id;?>">
<td><?php echo $row['last_name']; ?></td> <td class="text-dark"><?php echo $row->first_name; ?></td>
<td><?php echo $row['email']; ?></td> <td><?php echo $row->email; ?></td>
<td><?php echo $row['mobile']; ?></td> <td><?php echo $row->mobile; ?></td>
<td> <td><?php echo $row->user_role; ?></td>
<a class="btnEdit" data-id="<?php echo $row['id']; ?>"><i data-id="<?php echo $row['id']; ?>" class="mdi mdi-lead-pencil btnEdit" style="font-size:18px;"></i></a> <td>
<a class="btnDelete" data-id="<?php echo $row['id']; ?>"><i data-id="<?php echo $row['id']; ?>" class="mdi mdi-delete btnDelete" style="font-size:18px;"></i></a> <span class="<?php if($row->is_active == 1){ echo 'badge badge-success'; }else{ echo 'badge badge-danger'; } ?>">
</td> <?php if($row->is_active == 1){ echo 'Active'; }else{ echo 'In-Active'; } ?>
</tr> </span>
<?php } ?> </td>
</tbody> <td>
</table> <div class="btn-group dropdown" style="position: relative !important;left:0px !important;top:0px !important;">
</div> <!-- end card body--> <a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown" aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
</div> <!-- end card --> <div class="dropdown-menu dropdown-menu-right" style="cursor: pointer;">
</div><!-- end col--> <a data-toggle="modal" data-target="#con-close-modal" class="dropdown-item btnEdit" data-id="<?php echo $row->id; ?>"><i data-id="<?php echo $row->id; ?>" class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle btnEdit"></i>Edit</a>
</div> <a class="dropdown-item btnDelete" data-id="<?php echo $row->id; ?>"><i data-id="<?php echo $row->id; ?>" class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle btnDelete"></i>Delete</a>
</div>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- end col -->
</div>
<!-- end row--> <!-- end row-->
<!-- modal content -->
<div id="con-close-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Add User</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<div class="">
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>"/>
<input type="hidden" name="PrimaryKey" id="UserId"/>
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label for="emp_code">Employee Code<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="emp_code" placeholder="Enter Employee Code" name="emp_code" required>
</div>
<div class="form-group col-md-8">
<label for="first_name">Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" placeholder="Ente Name" name="first_name" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="email">Email<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="mobile">Mobile Number<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile" placeholder="Enter Mobile Number" name="mobile" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="emp_code">User Role<span class="text-danger">*</span></label>
<select class="form-control" id="role" name="role" required>
<option value="">Select Role</option>
<?php foreach($roleData as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['role'] ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label for="profile">User Team<span class="text-danger">*</span></label>
<select hidden class="form-control" id="team" name="team[]" multiple required>
<?php foreach($teamData as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option>
<?php } ?>
</select>
</div>
</div>
</div>
<div class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
<button type="button" class="btn btn-secondary waves-effect btnBack" id="btnBack">Cancel</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div><!-- /.modal -->
<script> <script>
$(document).ready(function () { $(document).ready(function () {
$('#Add-Edit-Page').hide();
$('.btnBack').hide();
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" ,
buttons: [
{
extend: 'csv',
text: 'CSV',
title: 'UserList',
exportOptions: {
columns: ':not(:last-child)'
}
}
],
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
});
$('#team').multiselect({
nonSelectedText: 'Select Team',
enableFiltering: false,
enableCaseInsensitiveFiltering: false,
includeSelectAllOption : false,
buttonWidth:'100%'
});
$('#btnAdd').click(function(){ $('#btnAdd').click(function(){
$('#Add-Edit-Page').show();
$('.header-title').html('Add User');
$('#btnSubmit').html('Submit');
$('#first_name').val(''); $('#first_name').val('');
$('#last_name').val(''); $('#last_name').val('');
$('#email').val(''); $('#email').val('');
$('#mobile').val(''); $('#mobile').val('');
$('#emp_code').val(''); $('#emp_code').val('');
$('#profile').val(''); $('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
$('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100); })
$('#List-page').hide();
$('.btnBack').show();
$('#btnAdd').hide(); $('.close').click(function(){
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>'); $('#UserId').val('');
$('#first_name').val('');
$('#email').val('');
$('#mobile').val('');
$('#emp_code').val('');
$('#role').val('')
})
$('body').on('click', '.btnEdit', function () {
var user_id = $(this).attr('data-id');
$.ajax({ $.ajax({
url: '<?php echo base_url('user/rolesandteams/');?>', url: '<?php echo base_url('user/getuser/');?>'+user_id,
type: "GET", type: "GET",
dataType: 'json', dataType: 'json',
success: function (res) { success: function (res) {
console.log(res) console.log(res)
$.each(res.roleData, function(index, item) {
console.log(item.role)
$('#role').append($('<option>', {
value: item.id,
text : item.role
}));
});
$.each(res.teamData, function(index, item) {
$('#team').append($('<option>', {
value: item.id,
text : item.name
}));
});
$('#team').multiselect({
nonSelectedText: 'Select Team',
enableFiltering: false,
enableCaseInsensitiveFiltering: false,
includeSelectAllOption : false,
buttonWidth:'100%'
});
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
})
$('.btnBack').click(function(){
$('#Add-Edit-Page').hide();
$('.header-title').html('User List');
$('#UserId').val('');
$('#first_name').val('');
$('#last_name').val('');
$('#email').val('');
$('#mobile').val('');
$('#emp_code').val('');
$('#profile').val('');
$('#role').val('')
$('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100);
$('#List-page').show();
$('.btnBack').hide();
$('#btnAdd').show();
})
$('body').on('click', '.btnEdit', function () {
var student_id = $(this).attr('data-id');
$.ajax({
url: '<?php echo base_url('user/getuser/');?>'+student_id,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res)
$('#role').val('') $('#role').val('')
$('#Add-Edit-Page').show();
$('.header-title').html('Edit User');
$('#List-page').hide();
$('.btnBack').show();
$('#btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('user/edit');?>'); $('#UserForm').attr('action', '<?php echo base_url('user/edit');?>');
$('#UserId').val(res.data.id); $('#UserId').val(res.data.id);
$('#first_name').val(res.data.first_name); $('#first_name').val(res.data.first_name);
@ -140,40 +240,14 @@ $(document).ready(function () {
$('#email').val(res.data.email); $('#email').val(res.data.email);
$('#mobile').val(res.data.mobile); $('#mobile').val(res.data.mobile);
$('#emp_code').val(res.data.emp_code); $('#emp_code').val(res.data.emp_code);
$('#role option[value="' + res.data.role + '"]').prop('selected', true);
$('#btnSubmit').html('Update'); $('#btnSubmit').html('Update');
var roleOptionHTML = ''; $.each(res.userTeamData, function(index, item) {
$.each(res.roleData, function(index, item) { $('#team option[value="' + item.team_id + '"]').prop('selected', true);
var isSelected = res.userTeamData.some(function(userTeamItem) { $('#team').multiselect('refresh');
return res.data.role === item.id;
});
roleOptionHTML += '<option value="' + item.id + '" ' + (isSelected ? 'selected="selected"' : '') + '>' + item.role + '</option>';
}); });
$('#role').html(roleOptionHTML);
var optionsHTML = '';
$.each(res.teamData, function(index, item) {
var isSelected = res.userTeamData.some(function(userTeamItem) {
return userTeamItem.team_id === item.id;
});
optionsHTML += '<option value="' + item.id + '" ' + (isSelected ? 'selected="selected"' : '') + '>' + item.name + '</option>';
});
$('#team').html(optionsHTML);
$('#team').multiselect({
nonSelectedText: 'Select Team',
enableFiltering: false,
enableCaseInsensitiveFiltering: false,
includeSelectAllOption : false,
buttonWidth:'100%'
});
if(res.data.profile){
$('#ajaxImgUpload').attr('src', '<?php echo base_url();?>public/uploads/'+res.data.profile).width(100);
}else{
$('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100);
}
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
console.error(xhr.responseText); console.error(xhr.responseText);
@ -198,83 +272,75 @@ $(document).ready(function () {
var student_id = $(this).attr('data-id'); var student_id = $(this).attr('data-id');
$.get('<?php echo base_url('user/deactive/');?>'+student_id, function (data) { $.get('<?php echo base_url('user/deactive/');?>'+student_id, function (data) {
console.log(data); console.log(data);
$('#datatable-buttons tbody #'+ student_id).remove(); // $('#tickets-table tbody #'+ student_id).remove();
window.location.reload()
}) })
} }
}); });
}); });
$('#datatable-buttons').DataTable({
"dom": 'Bfrtip', // Show export buttons
"paging": true,
"lengthMenu": [ [10, 25, 50, 100], [10, 25, 50, 100] ], // Define length menu options
buttons: [
{
extend: 'pdfHtml5',
title: 'UserList', // Set your custom PDF title here
text: 'PDF',
customize: function(doc) {
// You can further customize the PDF here if needed
doc.content[1].table.body.forEach(function(row) {
row.pop(); // Remove the last column
});
}
},
{
extend: 'csv',
text: 'CSV', // Set the title for the CSV button
title: 'UserList', // Set your custom print title here
exportOptions: {
columns: ':not(:last-child)' // Exclude the first and last column (ID column)
}
},
]
});
}); });
function onFileUpload(input, id) {
id = id || '#ajaxImgUpload'; const btnExport = document.querySelector("#btnExport");
if (input.files && input.files[0]) { const tableElement = document.querySelector("#tickets-table");
var reader = new FileReader();
reader.onload = function (e) { btnExport.addEventListener("click", () => {
console.log(e.target.result); const obj = new csvExport(tableElement);
$(id).attr('src', e.target.result).width(100); const csvData = obj.exportCsv();
}; const blob = new Blob([csvData], { type: "text/csv" });
reader.readAsDataURL(input.files[0]); const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "UserList.csv";
a.click();
setTimeout(() => {
URL.revokeObjectURL(url);
}, 500);
});
class csvExport {
constructor(table, header = true) {
this.table = table;
this.rows = Array.from(table.querySelectorAll("tr"));
if (!header && this.rows[0].querySelectorAll("th").length) {
this.rows.shift();
}
}
exportCsv() {
const lines = [];
const ncols = this._longestRow();
for (const row of this.rows) {
let line = "";
for (let i = 0; i < ncols - 1; i++) { // Adjusted loop to exclude the last column
if (row.children[i] !== undefined) {
line += csvExport.safeData(row.children[i]);
line += ",";
}
}
// Remove the trailing comma
line = line.slice(0, -1);
lines.push(line);
}
return lines.join("\n");
}
_longestRow() {
return this.rows.reduce((length, row) => (row.childElementCount > length ? row.childElementCount : length), 0);
}
static safeData(td) {
let data = td.textContent;
//Replace all double quote to two double quotes
data = data.replace(/"/g, `""`);
//Replace , and \n to double quotes
data = /[",\n"]/.test(data) ? `"${data}"` : data;
return data;
} }
} }
function isFieldEmptyOrNull(formData, fieldName) {
let value = formData.get(fieldName);
return value === '' || value === null;
}
function areFieldsEmptyOrFileEmpty(id) {
console.log(id)
let element = document.getElementById(id);
if (element.type === 'file') {
console.log(element.files.length)
if (element.files.length === 0) {
return true; // File input is empty
}
} else {
if (element.value === '') {
return true; // Other input field is empty
}
}
return false; // All fields are non-empty
}
</script> </script>

View File

@ -2,46 +2,54 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="card-body"> <div class="card-body">
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" <form role="form" class="parsley-examples" method="post" id="general_form" enctype="multipart/form-data">
enctype="multipart/form-data"> <input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" /> <input type="hidden" name="PrimaryKey" id="general_PrimaryKey" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<input type="hidden" name="PrimaryKey" id="UserId" /> <input type="hidden" name="client_id" id="client_id" />
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="emp_code">Entity Type <span <label for="entity_type_id">Entity Type <span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="role" name="role" required> <select class="form-control" id="entity_type" name="entity_type_id" required>
<option value="">Select Entity</option> <option value="">Select Entity</option>
<?php foreach($entity as $value) { ?> <?php foreach($entity as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option> <?php if(isset($client['entity_type_id'])){ ?>
<?php if($value['id'] == $client['entity_type_id']) { ?>
<option value="<?= $value['id'] ?>" selected><?= $value['name'] ?></option>
<?php } else { ?>
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option>
<?php } ?>
<?php } else { ?>
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option>
<?php } ?>
<?php } ?> <?php } ?>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="first_name">Client Name<span <label for="client_name">Client Name<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" <input type="text" class="form-control" id="client_name"
placeholder="Enter Client Name" name="first_name" required> placeholder="Enter Client Name" value="<?= isset($client['client_name']) ? $client['client_name'] : '' ?>" name="client_name" required>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="last_name">Client Short Name<span <label for="short_name">Client Short Name<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <input type="text" class="form-control" id="short_name"
placeholder="Enter Short Name" name="last_name" required> placeholder="Enter Short Name" value="<?= isset($client['short_name']) ? $client['short_name'] : '' ?>" name="short_name" required>
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="email">PAN<span class="text-danger">*</span></label> <label for="pan">PAN<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" <input type="text" class="form-control" id="pan"
placeholder="Enter PAN Number" name="email" required> placeholder="Enter PAN Number" value="<?= isset($client['pan']) ? $client['pan'] : '' ?>" name="pan" required>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="mobile">GST<span class="text-danger">*</span></label> <label for="gst">GST<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile" <input type="text" class="form-control" id="gst"
placeholder="Enter GST Number" name="mobile" required> placeholder="Enter GST Number" value="<?= isset($client['gst']) ? $client['gst'] : '' ?>" name="gst" required>
</div> </div>
</div> </div>
@ -49,37 +57,49 @@
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="email">Address 1<span <label for="address1">Address 1<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="email" <input type="text" class="form-control" id="address1"
placeholder="Enter Address 1" name="email" required> placeholder="Enter Address 1" value="<?= isset($client['address1']) ? $client['address1'] : '' ?>" name="address1" required>
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="mobile">Address 2<span <label for="address2">Address 2<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile" <input type="text" class="form-control" id="address2"
placeholder="Enter Address 2" name="mobile" required> placeholder="Enter Address 2" value="<?= isset($client['address2']) ? $client['address2'] : '' ?>" name="address2" required>
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="first_name">City<span <label for="city">City<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" <input type="text" class="form-control" id="city"
placeholder="Enter City" name="first_name" required> placeholder="Enter City" value="<?= isset($client['city']) ? $client['city'] : '' ?>" name="city" required>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="last_name">State<span <label for="state">State<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <select class="form-control" id="state" name="state" required>
placeholder="Enter State" name="last_name" required> <option value="">Select State</option>
<?php foreach($state as $value) { ?>
<?php if(isset($client['state'])){ ?>
<?php if($value['id'] == $client['state']) { ?>
<option value="<?= $value['id'] ?>" selected><?= $value['state'] ?></option>
<?php } else { ?>
<option value="<?= $value['id'] ?>"><?= $value['state'] ?></option>
<?php } ?>
<?php } else { ?>
<option value="<?= $value['id'] ?>"><?= $value['state'] ?></option>
<?php } ?>
<?php } ?>
</select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="last_name">Pincode<span <label for="pincode">Pincode<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <input type="text" class="form-control" id="pincode"
placeholder="Enter Pincode" name="last_name" required> placeholder="Enter Pincode" value="<?= isset($client['pincode']) ? $client['pincode'] : '' ?>" name="pincode" maxlength="6" required>
</div> </div>
</div> </div>
</div> </div>
@ -101,6 +121,105 @@
$(document).ready(function () { $(document).ready(function () {
$("#general_form").submit(function(event) {
event.preventDefault();
var isValid = validateForm();
var PrimaryKey = $('#general_PrimaryKey').val();
var form_action = '';
if (isValid) {
if(PrimaryKey === ''){
form_action = '<?= base_url("client/general/create"); ?>';
}else{
form_action = '<?= base_url("client/general/edit"); ?>';
}
var formData = new FormData($('#general_form')[0]);
var OptionsHTML1 = ''
$.ajax({
data: formData,
url: form_action,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
$('#client_id').val(res.data.id);
$('#client_id_relation').val(res.data.id);
$('#client_id_branch').val(res.data.id);
$('#client_id_police').val(res.data.id);
$('#client_id_kyc').val(res.data.id);
$('#kyc_tab').click();
$.toast({
text: 'Client General Info',
heading: "Submitted Sucessfully",
position: 'top-right',
icon: 'success',
bgColor: !1,
});
$.ajax({
url: '<?= base_url("client/kyc/list/"); ?>'+res.data.entity_type_id,
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
$.each(res.data, function(index, item) {
OptionsHTML1 += '<option value="' + item.id + '">' + item.file_name + '</option>';
});
$('#kyc_docs').html(OptionsHTML1);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
}
});
function validateForm() {
var isValid = true;
// Perform validation for each field
$('#general_form input, #general_form select').each(function() {
// Check for empty text inputs and selects
if ($(this).is('input[type="text"]') || $(this).is('select')) {
if ($.trim($(this).val()) == '') {
alert('Please fill in all fields');
isValid = false;
return false; // Exit the loop early
}
}
// Check for file inputs (assuming image files)
if ($(this).is('input[type="file"]')) {
var fileInput = $(this)[0];
if (fileInput.files.length === 0) {
alert('Please select an image file');
isValid = false;
return false; // Exit the loop early
}
}
});
return isValid;
}
}); });
</script> </script>

View File

@ -2,7 +2,7 @@
<div class="row float-right" style="padding-bottom: 10px;"> <div class="row float-right" style="padding-bottom: 10px;">
<div class="col-6"> <div class="col-6">
<button type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light">Add</button> <button type="button" id="btnBranchAdd" class="btn btn-primary waves-effect waves-light"><i class="fa fa-plus-square" aria-hidden="true"></i></button>
</div> </div>
</div> </div>
@ -11,22 +11,12 @@
<table class="table table-borderless table-nowrap mb-0"> <table class="table table-borderless table-nowrap mb-0">
<thead class="thead-light"> <thead class="thead-light">
<tr> <tr>
<th>#</th>
<th>Branch Name</th> <th>Branch Name</th>
<th>Branch Code</th> <th>Branch Code</th>
<th>Action</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody id="branch_list">
<tr>
<td>1</td>
<td>App design and development</td>
<td>01/01/2015</td>
</tr>
<tr>
<td>2</td>
<td>Coffee detail page - Main Page</td>
<td>21/07/2016</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -36,29 +26,54 @@
<div class="card-body"> <div class="card-body">
<div class="row float-right" style="position: relative; bottom: 20px;"> <div class="row float-right" style="position: relative; bottom: 20px;">
<div class="col-6"> <div class="col-6">
<button type="button" class="btn btn-primary waves-effect waves-light btnBack">Back</button> <button type="button" class="btn btn-primary waves-effect waves-light btnBack"><i class="fa fa-list" aria-hidden="true"></i></button>
</div> </div>
</div> </div>
<hr> <hr>
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" <form role="form" class="parsley-examples" method="post" id="branch_form"
enctype="multipart/form-data"> enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" /> <input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" /> <input type="hidden" name="PrimaryKey" id="branch_PrimaryKey" />
<input type="hidden" name="client_id" id="client_id_branch" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="first_name">Branch Name<span <label for="branch_name">Branch Name<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" <input type="text" class="form-control" id="branch_name"
placeholder="Enter Branch Name" name="first_name" required> placeholder="Enter Branch Name" name="branch_name" required>
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="last_name">Branch Code<span <label for="branch_code">Branch Code<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <input type="text" class="form-control" id="branch_code"
placeholder="Enter Branch Code" name="last_name" required> placeholder="Enter Branch Code" name="branch_code" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="state">State<span
class="text-danger">*</span></label>
<select class="form-control" id="state" name="state" required>
<option value="">Select State</option>
<?php foreach($state as $value) { ?>
<option value="<?= $value['id'] ?>"><?= $value['state'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<label for="district">District<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="district"
placeholder="Enter District" name="district" required>
</div>
<div class="form-group col-md-4">
<label for="city">City</label>
<input type="text" class="form-control" id="branch_city"
placeholder="Enter City" name="city" required>
</div> </div>
</div> </div>
@ -67,47 +82,31 @@
<br> <br>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">Contact Level<span
class="text-danger">*</span></label>
<select class="form-control" id="role" name="role">
<option value="">Select Contact Level</option>
<?php foreach($contact_level as $key => $value) { ?>
<option value="<?= $key ?>"><?= $value ?></option>
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<label for="first_name">Name<span <label for="first_name">Name<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" <input type="text" class="form-control" id="name0"
placeholder="Enter Contact Name" name="first_name" required> placeholder="Enter Contact Name" name="name[]" >
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="last_name">Email<span <label for="last_name">Email<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <input type="text" class="form-control" id="email0"
placeholder="Enter Contact Email" name="last_name" required> placeholder="Enter Contact Email" name="email[]" >
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="last_name">Mobile<span <label for="mobile">Mobile<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name" <input type="text" class="form-control" id="mobile0"
placeholder="Enter Contact Mobile" name="last_name" required> placeholder="Enter Contact Mobile" name="mobile[]" >
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">City<span <label for="designation">Designation<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name" <input type="text" class="form-control" id="designation0"
placeholder="Enter Contact City" name="first_name" required> placeholder="Enter Designation Name" name="designation[]" >
</div>
<div class="form-group col-md-4">
<label for="first_name">Level Name</label>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Level Name" name="first_name" >
</div> </div>
</div> </div>
@ -116,47 +115,28 @@
<br> <br>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">Contact Level<span <label for="name">Name<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="role" name="role"> <input type="text" class="form-control" id="name1"
<option value="">Select Contact Level</option> placeholder="Enter Contact Name" name="name[]" >
<?php foreach($contact_level as $key => $value) { ?>
<option value="<?= $key ?>"><?= $value ?></option>
<?php } ?>
</select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">Name<span <label for="email">Email</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="email1"
<input type="text" class="form-control" id="first_name" placeholder="Enter Contact Email" name="email[]" >
placeholder="Enter Contact Name" name="first_name" required>
</div>
<div class="form-group col-md-4">
<label for="last_name">Email<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Contact Email" name="last_name" required>
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="last_name">Mobile<span <label for="mobile">Mobile</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="mobile1"
<input type="text" class="form-control" id="last_name" placeholder="Enter Contact Mobile" name="mobile[]" >
placeholder="Enter Contact Mobile" name="last_name" required>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">City<span <label for="designation">Designation</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="designation1"
<input type="text" class="form-control" id="first_name" placeholder="Enter Designation Name" name="designation[]">
placeholder="Enter Contact City" name="first_name" required>
</div>
<div class="form-group col-md-4">
<label for="first_name">Level Name</label>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Level Name" name="first_name" >
</div> </div>
</div> </div>
@ -165,52 +145,30 @@
<br> <br>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="first_name">Contact Level<span <label for="name">Name</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="name2"
<select class="form-control" id="role" name="role"> placeholder="Enter Contact Name" name="name[]" >
<option value="">Select Contact Level</option>
<?php foreach($contact_level as $key => $value) { ?>
<option value="<?= $key ?>"><?= $value ?></option>
<?php } ?>
</select>
</div> </div>
<div class="form-group col-md-6">
<div class="form-group col-md-4"> <label for="email">Email</label>
<label for="first_name">Level Name</label> <input type="text" class="form-control" id="email2"
<input type="text" class="form-control" id="first_name" placeholder="Enter Contact Email" name="email[]" >
placeholder="Enter Level Name" name="first_name" >
</div>
<div class="form-group col-md-4">
<label for="first_name">Name<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Contact Name" name="first_name" required>
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="last_name">Email<span <label for="mobile">Mobile</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="mobile2"
<input type="text" class="form-control" id="last_name" placeholder="Enter Contact Mobile" name="mobile[]" >
placeholder="Enter Contact Email" name="last_name" required>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-6">
<label for="last_name">Mobile<span <label for="designation">Designation</label>
class="text-danger">*</span></label> <input type="text" class="form-control" id="designation2"
<input type="text" class="form-control" id="last_name" placeholder="Enter Designation Name" name="designation[]" >
placeholder="Enter Contact Mobile" name="last_name" required>
</div> </div>
<div class="form-group col-md-4">
<label for="first_name">City<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Contact City" name="first_name" required>
</div>
</div> </div>
</div> </div>
<div class="form-group text-right m-b-0"> <div class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" <button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
@ -228,16 +186,45 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
var branch_PrimaryKey = $('#client_id_branch').val();
var branch_form_action = '';
$('#add_branch').hide(); $('#add_branch').hide();
$('.btnBack').hide(); $('.btnBack').hide();
$('#btnBranchAdd').click(function(){
branch_form_action = '<?= base_url("client/branch/create"); ?>';
$('#btnAdd').click(function(){
$('#add_branch').show(); $('#add_branch').show();
$('#branch_table').hide(); $('#branch_table').hide();
$('.btnBack').show(); $('.btnBack').show();
$('#btnAdd').hide(); $('#btnBranchAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
$('#branch_name').val('');
$('#branch_code').val('');
$('#state').val('');
$('#district').val('');
$('#branch_city').val('');
$('#name0').val('');
$('#email0').val('');
$('#mobile0').val('');
$('#designation0').val('');
$('#name1').val('');
$('#email1').val('');
$('#mobile1').val('');
$('#designation1').val('');
$('#name2').val('');
$('#email2').val('');
$('#mobile2').val('');
$('#designation2').val('');
}) })
$('.btnBack').click(function(){ $('.btnBack').click(function(){
@ -245,66 +232,123 @@ $(document).ready(function () {
$('#add_branch').hide(); $('#add_branch').hide();
$('#branch_table').show(); $('#branch_table').show();
$('.btnBack').hide(); $('.btnBack').hide();
$('#btnAdd').show(); $('#btnBranchAdd').show();
$('#branch_name').val('');
$('#branch_code').val('');
$('#state').val('');
$('#district').val('');
$('#branch_city').val('');
$('#name0').val('');
$('#email0').val('');
$('#mobile0').val('');
$('#designation0').val('');
$('#name1').val('');
$('#email1').val('');
$('#mobile1').val('');
$('#designation1').val('');
$('#name2').val('');
$('#email2').val('');
$('#mobile2').val('');
$('#designation2').val('');
}) })
$('body').on('click', '.btnEdit', function () {
var student_id = $(this).attr('data-id'); if(branch_PrimaryKey !== ''){
var branchTable = '';
var data = <?= isset($client_branch) ? json_encode($client_branch) : '[]' ?>;
$.each(data, function(index, item) {
branchTable += `
<tr>
<td>${item.branch_name}</td>
<td>${item.branch_code}</td>
<td><a class="btnBranchEdit" data-id="${item.id}" href="#"><i data-id="${item.id}" class="mdi mdi-lead-pencil btnBranchEdit" style="font-size:18px;"></i></a></td>
</tr>
`;
});
$('#branch_list').append(branchTable);
}
$("#branch_form").submit(function(event) {
event.preventDefault();
// Perform validation
var isValid = true; // Assuming you have a function for form validation
if (isValid) {
var formData = new FormData($('#branch_form')[0]);
$.ajax({
data: formData,
url: branch_form_action,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
$('#branch_list tr').remove();
var branchTableInsert = ''
$.each(res.data, function(index, item) {
branchTableInsert += `
<tr>
<td>${item.branch_name}</td>
<td>${item.branch_code}</td>
<td><a class="btnBranchEdit" data-id="${item.id}" href="#"><i data-id="${item.id}" class="mdi mdi-lead-pencil btnBranchEdit" style="font-size:18px;"></i></a></td>
</tr>
`;
});
$('#branch_list').append(branchTableInsert);
$('#add_branch').hide();
$('#branch_table').show();
$('.btnBack').hide();
$('#btnBranchAdd').show();
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
}
});
$('body').on('click', '.btnBranchEdit', function () {
var branch_id = $(this).attr('data-id');
branch_form_action = '<?= base_url("client/branch/edit"); ?>';
$.ajax({ $.ajax({
url: '<?php echo base_url('user/getuser/');?>'+student_id, url: '<?php echo base_url('client/branch/list/');?>'+branch_id,
type: "GET", type: "GET",
dataType: 'json', dataType: 'json',
success: function (res) { success: function (res) {
console.log(res)
$('#role').val('') console.log(res)
$('#Add-Edit-Page').show(); $('#add_branch').show();
$('.header-title').html('Edit User'); $('#branch_table').hide();
$('#List-page').hide();
$('.btnBack').show(); $('.btnBack').show();
$('#btnAdd').hide(); $('#btnBranchAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('user/edit');?>'); $('#branch_name').val(res.data.branch_name);
$('#UserId').val(res.data.id); $('#branch_code').val(res.data.branch_code);
$('#first_name').val(res.data.first_name); $('#state option[value="' + res.data.state + '"]').prop('selected', true);
$('#last_name').val(res.data.last_name); $('#district').val(res.data.district);
$('#email').val(res.data.email); $('#branch_city').val(res.data.city);
$('#mobile').val(res.data.mobile); $('#branch_PrimaryKey').val(res.data.id);
$('#emp_code').val(res.data.emp_code);
$('#btnSubmit').html('Update'); $.each(res.contact, function(index, contact) {
$.each(res.roleData, function(index, item) { if (contact !== undefined) {
var isSelected = res.userTeamData.some(function(userTeamItem) { $('#name' + index).val(contact.name !== undefined ? contact.name : '');
return res.data.role === item.id; $('#email' + index).val(contact.email !== undefined ? contact.email : '');
}); $('#mobile' + index).val(contact.mobile !== undefined ? contact.mobile : '');
$('#designation' + index).val(contact.designation !== undefined ? contact.designation : '');
$('#role').append($('<option>', { }
value: item.id,
text : item.role,
selected: isSelected
}));
}); });
$.each(res.teamData, function(index, item) {
var isSelected = res.userTeamData.some(function(userTeamItem) {
return userTeamItem.team_id === item.id;
});
$('#team').append($('<option>', {
value: item.id,
text : item.name,
selected: isSelected
}));
});
$('#team').multiselect({
nonSelectedText: 'Select Team',
enableFiltering: false,
enableCaseInsensitiveFiltering: false,
includeSelectAllOption : false,
buttonWidth:'100%'
});
if(res.data.profile){
$('#ajaxImgUpload').attr('src', '<?php echo base_url();?>public/uploads/'+res.data.profile).width(100);
}else{
$('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100);
}
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
console.error(xhr.responseText); console.error(xhr.responseText);
@ -313,6 +357,7 @@ $(document).ready(function () {
}); });
}); });
}); });
</script> </script>

View File

@ -3,26 +3,28 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="card-body"> <div class="card-body">
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" <form role="form" class="parsley-examples" method="post" id="kyc_form"
enctype="multipart/form-data"> enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" /> <input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" /> <input type="hidden" name="PrimaryKey" id="kyc_PrimaryKey" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<input type="hidden" name="client_id" id="client_id_kyc" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<input type="hidden" name="entity_type" id="entity_type" />
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="emp_code">Document Type</label> <label for="emp_code">Document Type</label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="kyc_docs" name="kyc_doc_id" required>
<option value="">Select Document</option> <option value="">Select Kyc Docs</option>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="profile">File</label> <label for="kyc_docs">File</label>
<input class="form-control" type="file" name="profile" <input class="form-control" type="file" name="file_name"
multiple="true" id="profile"> multiple="true" id="kyc_docs_file" required>
</div> </div>
<div class="form-group col-md-4 align-self-end"> <div class="form-group col-md-4 align-self-end">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"id="btnSubmit">Submit</button> <button type="submit" class="btn btn-primary waves-effect waves-light mr-1"id="btnSubmit">Upload</button>
</div> </div>
</div> </div>
@ -31,6 +33,199 @@
</div> </div>
</div> <!-- end col--> </div> <!-- end col-->
</div> </div>
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table id="kyc_table" class="table table-sm mb-0">
<thead>
<tr>
<th>Document Name</th>
<th>File Name</th>
<th>Action</th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>
</div> <!-- end table-responsive-->
</div>
</div> <!-- end card -->
</div> <!-- end col -->
<!-- end row --> <!-- end row -->
</div> </div>
<!-- end --> <!-- end -->
<script>
var kycPrimaryKey = $('#kyc_PrimaryKey').val();
$(document).ready(function(){
// $('#kyc_docs').change(function(){
// var selectedValue = $(this).val()
// console.log(selectedValue);
// })
if(kycPrimaryKey !== ''){
var OptionsHTML3 =""
$.ajax({
url: '<?= base_url("client/kyc/list/"); ?>'+'<?= isset($client['entity_type_id']) ? $client['entity_type_id'] : '' ?>',
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
$.each(res.data, function(index, item) {
OptionsHTML3 += '<option value="' + item.id + '">' + item.file_name + '</option>';
});
$('#kyc_docs').html(OptionsHTML3);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
var table = '';
var data = <?= isset($client_kyc) ? json_encode($client_kyc) : '[]' ?>;
$('#tbody tr').remove();
$.each(data, function(index, item) {
table += `
<tr id="kyc-${item.id}">
<td>${item.client_file_name}</td>
<td>${item.file_name}</td>
<td><i data-id="${item.id}" class="mdi mdi-delete btnKycDelete" style="font-size:18px;"></i></td>
</tr>
`;
});
$('#tbody').append(table);
}
})
$("#kyc_form").submit(function(event) {
event.preventDefault();
// Perform validation
var isValid = validateForm(); // Assuming you have a function for form validation
var rowHtml = '';
var form_action = '';
if (isValid) {
if(kycPrimaryKey === ''){
form_action = '<?= base_url("client/kyc/create"); ?>';
}else{
form_action = '<?= base_url("client/kyc/edit"); ?>';
}
var formData = new FormData($('#kyc_form')[0]);
$.ajax({
data: formData,
url: form_action,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
if(kycPrimaryKey === ''){
$.toast({
text: 'Client Relation Info',
heading: "Submitted Sucessfully",
position: 'top-right',
icon: 'success',
});
}else{
$.toast({
text: 'Client Relation Info',
heading: "Updated Sucessfully",
position: 'top-right',
icon: 'success',
});
}
$('#tbody tr').remove();
$.each(res.data, function(index, item) {
rowHtml += `
<tr id="kyc-${item.id}">
<td>${item.client_file_name}</td>
<td>${item.file_name}</td>
<td><i data-id="${item.id}" class="mdi mdi-delete btnKycDelete" style="font-size:18px;"></i></td>
</tr>
`;
});
$('#tbody').append(rowHtml);
$('#kyc_docs_file').val('');
$('#kyc_docs').val('');
$('#kyc_docs').val('Select Document Type');
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
}
});
$('body').on('click', '.btnKycDelete', function () {
Swal.fire({
title: "Are you sure?",
text: "You won't be able to revert this!",
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "Yes, delete it!"
}).then((result) => {
if (result.isConfirmed) {
var kyc_id = $(this).attr('data-id');
$.get('<?php echo base_url('client/kyc/delete/');?>'+kyc_id, function (data) {
console.log('kyc-'+ kyc_id)
if(data){
$('#kyc-'+ kyc_id).remove();
}
})
}
});
});
function validateForm() {
var isValid = true;
// Perform validation for each field
$('#kyc_form input, #kyc_form select').each(function() {
// Check for empty text inputs and selects
if ($(this).is('input[type="text"]') || $(this).is('select')) {
if ($.trim($(this).val()) == '') {
alert('Please fill in all fields');
isValid = false;
return false; // Exit the loop early
}
}
// Check for file inputs (assuming image files)
if ($(this).is('input[type="file"]')) {
var fileInput = $(this)[0];
if (fileInput.files.length === 0) {
console.log('Please select an image file');
isValid = false;
return false; // Exit the loop early
}
}
});
return isValid;
}
</script>

View File

@ -1,137 +1,51 @@
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<h4 class="page-title"></h4>
<div class="page-title-right">
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row" id="client_list"> <div class="row" id="client_list">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="row" style="padding-bottom: 10px;"> <div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;"> <div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Client List</h4> <h4 class="header-title" style="position: relative;">Client List</h4>
</div>
<div class="col-6" style="text-align: right; position: relative;top: 53px;">
<a href="<?= base_url("client/create"); ?>" type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light" data-toggle="" data-placement="top" title="Add" data-trigger="hover">ADD</a>
</div>
</div> </div>
<div class="col-6" style="text-align: right;"> <table class="table table-sm table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0"
<a href="<?= base_url("client/create"); ?>" class="btn btn-primary waves-effect waves-light">Add</a> id="tickets-table">
</div>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
<thead class="bg-light"> <thead class="bg-light">
<tr> <tr>
<th class="font-weight-medium">ID</th> <th class="font-weight-medium">Client Name</th>
<th class="font-weight-medium">Requested By</th> <th class="font-weight-medium">Account Manager</th>
<th class="font-weight-medium">Subject</th> <th class="font-weight-medium">Action</th>
<th class="font-weight-medium">Assignee</th> </tr>
<th class="font-weight-medium">Priority</th>
<th class="font-weight-medium">Status</th>
<th class="font-weight-medium">Created Date</th>
<th class="font-weight-medium">Due Date</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead> </thead>
<tbody class="font-14"> <tbody>
<?php foreach($clientList as $row){ ?>
<tr> <tr>
<td><b>#1256</b></td> <td><?php echo $row->client_name; ?> ( <?php echo $row->short_name; ?> ) </td>
<td> <td>
<a href="javascript: void(0);" class="text-dark"> <?php $account_managers = ''; ?>
<img src="../assets/images/users/avatar-2.jpg" alt="contact-img" title="contact-img" class="avatar-sm rounded-circle img-thumbnail" /> <?php foreach ($client_rm as $client): ?>
<span class="ml-2">George A. Lianes</span> <?php if ($client->client_id == $row->id): ?>
</a> <?php $account_managers .= $client->account_manager . ', '; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php echo rtrim($account_managers, ', '); ?>
</td> </td>
<td>
Support for theme
</td>
<td>
<a href="javascript: void(0);">
<img src="../assets/images/users/avatar-10.jpg" alt="contact-img" title="contact-img" class="avatar-sm rounded-circle img-thumbnail" />
</a>
</td>
<td>
<span class="badge badge-secondary">Low</span>
</td>
<td>
<span class="badge badge-success">Open</span>
</td>
<td>
2017/04/28
</td>
<td>
2017/04/28
</td>
<td> <td>
<div class="btn-group dropdown"> <div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown" aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a> <a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit Ticket</a> <a class="dropdown-item" href="<?= base_url("client/list/"); ?><?= $row->id;?>"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-check-all mr-2 text-muted font-18 vertical-middle"></i>Close</a> <a class="dropdown-item" href="#"><i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Delete</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Remove</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-star mr-2 font-18 text-muted vertical-middle"></i>Mark as Unread</a>
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
<tr> <?php } ?>
<td><b>#2542</b></td>
<td>
<a href="javascript: void(0);" class="text-dark">
<img src="../assets/images/users/avatar-3.jpg" alt="contact-img" title="contact-img" class="avatar-sm rounded-circle img-thumbnail" />
<span class="ml-2">Jose D. Delacruz</span>
</a>
</td>
<td>
New submission on your website
</td>
<td>
<a href="javascript: void(0);">
<img src="../assets/images/users/avatar-9.jpg" alt="contact-img" title="contact-img" class="avatar-sm rounded-circle img-thumbnail" />
</a>
</td>
<td>
<span class="badge badge-warning">Medium</span>
</td>
<td>
<span class="badge badge-secondary">Closed</span>
</td>
<td>
2008/04/25
</td>
<td>
2008/04/25
</td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown" aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit Ticket</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-check-all mr-2 text-muted font-18 vertical-middle"></i>Close</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Remove</a>
<a class="dropdown-item" href="#"><i class="mdi mdi-star mr-2 font-18 text-muted vertical-middle"></i>Mark as Unread</a>
</div>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -139,3 +53,91 @@
</div><!-- end col --> </div><!-- end col -->
</div> </div>
<!-- end row --> <!-- end row -->
<script>
$(document).ready(function(){
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" ,
buttons: [
{
extend: 'csv',
text: 'CSV',
title: 'ClientList',
exportOptions: {
columns: ':not(:last-child)'
}
}
],
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
});
})
const btnExport = document.querySelector("#btnExport");
const tableElement = document.querySelector("#tickets-table");
btnExport.addEventListener("click", () => {
const obj = new csvExport(tableElement);
const csvData = obj.exportCsv();
const blob = new Blob([csvData], { type: "text/csv" });
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "UserList.csv";
a.click();
setTimeout(() => {
URL.revokeObjectURL(url);
}, 500);
});
class csvExport {
constructor(table, header = true) {
this.table = table;
this.rows = Array.from(table.querySelectorAll("tr"));
if (!header && this.rows[0].querySelectorAll("th").length) {
this.rows.shift();
}
}
exportCsv() {
const lines = [];
const ncols = this._longestRow();
for (const row of this.rows) {
let line = "";
for (let i = 0; i < ncols - 1; i++) { // Exclude the last column
if (row.children[i] !== undefined) {
line += csvExport.safeData(row.children[i]);
}
line += i !== ncols - 2 ? "," : ""; // Adjusted for the last column exclusion
}
lines.push(line);
}
return lines.join("\n");
}
_longestRow() {
return this.rows.reduce((length, row) => (row.childElementCount > length ? row.childElementCount : length), 0);
}
static safeData(td) {
let data = td.textContent;
//Replace all double quote to two double quotes
data = data.replace(/"/g, `""`);
//Replace , and \n to double quotes
data = /[",\n"]/.test(data) ? `"${data}"` : data;
return data;
}
}
</script>

View File

@ -1,5 +1,36 @@
<style>
<div class="row mt-4" id="client_add"> body {
.multiselect-native-select {
position: relative;
/* bottom: 32px; */
select {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px -1px -1px -3px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
left: 50%;
top: 30px;
}
}
.multiselect-container{
width: 100% !important;
}
.multiselect-selected-text{
float: left !important;
}
}
</style>
<div class="row" id="client_add">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
@ -8,7 +39,7 @@
<h4 class="header-title" style="position: relative;">Client Onboarding</h4> <h4 class="header-title" style="position: relative;">Client Onboarding</h4>
</div> </div>
<div class="col-6" style="text-align: right;"> <div class="col-6" style="text-align: right;">
<a href="<?= base_url("client/list"); ?>" class="btn btn-primary waves-effect waves-light">Back</a> <!-- <a href="<?= base_url("client/list"); ?>" class="btn btn-primary waves-effect waves-light">Back</a> -->
</div> </div>
</div> </div>
<ul class="nav nav-pills navtab-bg"> <ul class="nav nav-pills navtab-bg">
@ -20,7 +51,7 @@
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a href="#KYC-DOC-tab" data-toggle="tab" aria-expanded="true" class="nav-link px-3 py-2"> <a href="#KYC-DOC-tab" data-toggle="tab" aria-expanded="true" class="nav-link px-3 py-2" id="kyc_tab">
<span class="mr-1"><i class="fa fa-file"></i></span> <span class="mr-1"><i class="fa fa-file"></i></span>
<span class="d-none d-sm-inline-block">KYC Docs</span> <span class="d-none d-sm-inline-block">KYC Docs</span>
</a> </a>
@ -40,7 +71,7 @@
<li class="nav-item"> <li class="nav-item">
<a href="#police-tab" data-toggle="tab" aria-expanded="false" class="nav-link px-3 py-2"> <a href="#police-tab" data-toggle="tab" aria-expanded="false" class="nav-link px-3 py-2">
<span class="mr-1"><i class="mdi mdi-book-open-page-variant"></i></span> <span class="mr-1"><i class="mdi mdi-book-open-page-variant"></i></span>
<span class="d-none d-sm-inline-block">Polices</span> <span class="d-none d-sm-inline-block">Policies</span>
</a> </a>
</li> </li>
</ul> </ul>

View File

@ -4,7 +4,7 @@
<div class="row float-right" style="padding-bottom: 10px;"> <div class="row float-right" style="padding-bottom: 10px;">
<div class="col-6"> <div class="col-6">
<button type="button" id="BtnAdd" class="btn btn-primary waves-effect waves-light btnAdd">Add</button> <button type="button" id="BtnAdd" class="btn btn-primary waves-effect waves-light btnAdd"><i class="fa fa-plus-square" aria-hidden="true"></i></button>
</div> </div>
</div> </div>
@ -13,22 +13,13 @@
<table class="table table-borderless table-nowrap mb-0"> <table class="table table-borderless table-nowrap mb-0">
<thead class="thead-light"> <thead class="thead-light">
<tr> <tr>
<th>#</th> <th>Insurer</th>
<th>Branch Name</th> <th>Policy</th>
<th>Branch Code</th> <th>TPA</th>
<th>Action</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody id="policy_table">
<tr>
<td>1</td>
<td>App design and development</td>
<td>01/01/2015</td>
</tr>
<tr>
<td>2</td>
<td>Coffee detail page - Main Page</td>
<td>21/07/2016</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -39,37 +30,45 @@
<div class="row float-right" style="position: relative; bottom: 20px;"> <div class="row float-right" style="position: relative; bottom: 20px;">
<div class="col-6"> <div class="col-6">
<button type="button" class="btn btn-primary waves-effect waves-light btnBack">Back</button> <button type="button" class="btn btn-primary waves-effect waves-light btnBack"><i class="fa fa-list" aria-hidden="true"></i></button>
</div> </div>
</div> </div>
<hr> <hr>
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" <form role="form" class="parsley-examples" method="post" id="policy_form"
enctype="multipart/form-data"> enctype="multipart/form-data">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" /> <input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" /> <input type="hidden" name="PrimaryKey" id="policy_PrimaryKey" />
<input type="hidden" id="policy_form_action" />
<input type="hidden" name="client_id" id="client_id_police" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="email">Insurer<span <label for="email">Insurer<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="insurer" name="insurer">
<option value="">Select Insurer Branch</option> <option value="">Select Insurer</option>
<?php foreach($insurer as $value) { ?>
<option value="<?= $value['id'] . '-' . $value['insurer_id']?>"><?= $value['insurer_name'] . '-' . $value['branch_code'] ?></option>
<?php } ?>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="first_name">Polices<span <label for="policy">Policies<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="policy" name="policy_id">
<option value="">Select Policy</option> <option value="" selected>Select Policy</option>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="mobile">TPA<span <label for="mobile">TPA<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="tpa" name="tpa">
<option value="">Select TPA Branch</option> <option value="">Select TPA</option>
<?php foreach($tpa as $value) { ?>
<option value="<?= $value['id']. '-' . $value['tpa_id'] ?>"><?= $value['tpa_short_name'] . '-' . $value['branch_code'] ?></option>
<?php } ?>
</select> </select>
</div> </div>
</div> </div>
@ -91,7 +90,10 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
var policy_PrimaryKey = $('#client_id_police').val();
var policy_client = $('#policy_PrimaryKey').val();
$('#add_form').hide(); $('#add_form').hide();
$('.btnBack').hide(); $('.btnBack').hide();
@ -100,7 +102,8 @@ $(document).ready(function () {
$('#table_list').hide(); $('#table_list').hide();
$('.btnBack').show(); $('.btnBack').show();
$('.btnAdd').hide(); $('.btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>'); $('#policy_form_action').val('<?= base_url("client/policy/edit"); ?>');
;
}) })
$('.btnBack').click(function(){ $('.btnBack').click(function(){
@ -109,8 +112,160 @@ $(document).ready(function () {
$('#table_list').show(); $('#table_list').show();
$('.btnBack').hide(); $('.btnBack').hide();
$('.btnAdd').show(); $('.btnAdd').show();
$('#insurer').val('');
$('#tpa').val('');
$('#policy').html('<option value="" selected>Select Policy</option>');
}) })
toastr.options = {
"timeOut": 2000,
"closeButton": true,
};
if (policy_PrimaryKey !== '') {
var policyTable = '';
var data = <?= isset($client_policy) ? json_encode($client_policy) : '[]' ?>;
console.log(data);
data.forEach(function(item) {
policyTable += `
<tr>
<td>${item.insurer_short} - ${item.insurer_branch_name}</td>
<td>${item.policy_name}</td>
<td>${item.tpa_short} - ${item.tpa_branch_code}</td>
<td><a data-id="${item.id}" class="btnPolicyEdit" href="#"><i data-id="${item.id}" class="mdi mdi-lead-pencil btnPolicyEdit" style="font-size:18px;"></i></a></td>
</tr>
`;
});
$('#policy_table').append(policyTable);
}
$("#policy_form").submit(function(event) {
event.preventDefault();
if (policy_PrimaryKey === '' && policy_client === '') {
toastr.error('Client ID is required', 'Error');
$('#insurer').val('');
$('#tpa').val('');
$('#policy').html('<option value="" selected>Select Policy</option>');
return;
}
var formData = new FormData($('#policy_form')[0]);
var policy_form_action = $('#policy_form_action').val();
$.ajax({
data: formData,
url: policy_form_action,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
if (res.status === false) {
toastr.error('Policy Dose Not Create', 'Error');
return;
}
console.log(res);
var message = (policy_PrimaryKey === '') ? 'Policy Created successfully' : 'Updated Successfully';
toastr.success(message, 'Success');
$('#policy_table tr').remove();
var policyTable = '';
$.each(res.data, function(index, item) {
policyTable += `
<tr>
<td>${item.insurer_short} - ${item.insurer_branch_name}</td>
<td>${item.policy_name}</td>
<td>${item.tpa_short} - ${item.tpa_branch_code}</td>
<td><a data-id="${item.id}" class="btnPolicyEdit" href="#"><i data-id="${item.id}" class="mdi mdi-lead-pencil btnPolicyEdit" style="font-size:18px;"></i></a></td>
</tr>
`;
});
$('#policy_table').append(policyTable);
$('#add_form').hide();
$('#table_list').show();
$('.btnBack').hide();
$('.btnAdd').show();
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
});
$('#insurer').change(function() {
var id = $(this).val();
var url = "<?= base_url("util/police-by-insurer/") ?>" + id;
$.get(url, function(res) {
res = JSON.parse(res)
var OptionsHTML = '';
$.each(res.data, function(index, item) {
OptionsHTML += '<option value="' + item.id + '">' + item.name + '</option>';
});
$('#policy').html(OptionsHTML);
}).fail(function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
});
});
$('body').on('click', '.btnPolicyEdit', function () {
var policy_form_action = '';
var policy_id = $(this).data('id');
$.ajax({
url: '<?= base_url("client/policy/list/") ?>' + policy_id,
type: "GET",
dataType: 'json',
success: function (res) {
$('#policy_form_action').val('<?= base_url("client/policy/edit"); ?>');
if (res.status === false) {
toastr.error(res.status);
return;
}
$('#add_form').show();
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id);
$('#tpa').val(res.data.tpa_branch_id + '-' + res.data.tpa_id);
$('#policy').val(res.data.policy_id);
$('#policy_PrimaryKey').val(res.data.id);
var policeOptionHTML = '';
$.each(res.policy, function(index, item) {
policeOptionHTML += '<option value="' + item.id + '" ' + (res.data.policy_id === item.id ? 'selected="selected"' : '') + '>' + item.name + '</option>';
});
$('#policy').html(policeOptionHTML);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
});
}); });
</script> </script>

View File

@ -1,64 +1,43 @@
<style>
body {
.multiselect-native-select {
position: relative;
/* bottom: 32px; */
select {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px -1px -1px -3px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
left: 50%;
top: 30px;
}
}
.multiselect-container{
width: 100% !important;
}
.multiselect-selected-text{
float: left !important;
}
}
</style>
<div class="tab-pane fade" id="RM-tab"> <div class="tab-pane fade" id="RM-tab">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="card-body"> <div class="card-body">
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" <form role="form" class="parsley-examples" method="post" id="relation_form" enctype="multipart/form-data">
enctype="multipart/form-data"> <input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" /> <input type="hidden" name="PrimaryKey" id="relation_PrimaryKey" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<input type="hidden" name="PrimaryKey" id="UserId" /> <input type="hidden" name="client_id" id="client_id_relation" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<div class="form-group"> <div class="form-group">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="emp_code">Account Manager</label> <label for="emp_code">Account Manager</label>
<select class="form-control" id="account_manager" name="role"> <select class="form-control" id="account_manager" name="account_manager[]" multiple>
<!-- <option value="">Select Account Manager</option> --> <?php foreach($RM as $value) { ?>
<?php if($value['role'] === '3') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="profile">Manager</label> <label for="profile">Manager</label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="manager" name="manager">user_id
<option value="">Select Manager</option> <option value="">Select Manager</option>
<?php foreach($RM as $value) { ?>
<?php if($value['role'] === '2') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select> </select>
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="profile">Head</label> <label for="profile">Head</label>
<select class="form-control" id="role" name="role"> <select class="form-control" id="head" name="head">
<option value="">Select Head</option> <option value="">Select Head</option>
<?php foreach($RM as $value) { ?>
<?php if($value['role'] === '5') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select> </select>
</div> </div>
</div> </div>
@ -80,6 +59,9 @@ body {
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
var relation_PrimaryKey = $('#relation_PrimaryKey').val()
$('#account_manager').multiselect({ $('#account_manager').multiselect({
nonSelectedText: 'Select Account Manager', nonSelectedText: 'Select Account Manager',
enableFiltering: false, enableFiltering: false,
@ -87,5 +69,95 @@ body {
includeSelectAllOption : false, includeSelectAllOption : false,
buttonWidth:'100%' buttonWidth:'100%'
}); });
var data = <?= isset($client_relation) ? json_encode($client_relation) : '[]' ?>;
if (relation_PrimaryKey !== '') {
$.each(data, function(index, item) {
$('#head option[value="' + item.user_id + '"]').prop('selected', true);
$('#manager option[value="' + item.user_id + '"]').prop('selected', true);
var $option = $('#account_manager option[value="' + item.user_id + '"]');
if ($option.length > 0) {
$option.prop('selected', true);
}
$('#account_manager').multiselect('refresh');
});
}
$("#relation_form").submit(function(event) {
event.preventDefault();
// Perform validation
var isValid = validateForm(); // Assuming you have a function for form validation
var form_action = '';
if (isValid) {
if(relation_PrimaryKey === ''){
form_action = '<?= base_url("client/relation/create"); ?>';
}else{
form_action = '<?= base_url("client/relation/edit"); ?>';
}
var formData = new FormData($('#relation_form')[0]);
$.ajax({
data: formData,
url: form_action,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
if(relation_PrimaryKey === ''){
$.toast({
text: 'Client Relation Info',
heading: "Submitted Sucessfully",
position: 'top-right',
icon: 'success',
});
}else{
$.toast({
text: 'Client Relation Info',
heading: "Updated Sucessfully",
position: 'top-right',
icon: 'success',
});
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
}
});
}
});
function validateForm() {
var isValid = true;
// Perform validation for each field
$('#relation_form input, #relation_form select').each(function() {
// Check for empty text inputs and selects
if ($(this).is('input[type="text"]') || $(this).is('select')) {
if ($.trim($(this).val()) == '') {
alert('Please fill in all fields');
isValid = false;
return false; // Exit the loop early
}
}
});
return isValid;
}
}); });
</script> </script>

View File

@ -10,6 +10,7 @@ CLI::write($message);
CLI::newLine(); CLI::newLine();
CLI::write('at ' . CLI::color(clean_path($exception->getFile()) . ':' . $exception->getLine(), 'green')); CLI::write('at ' . CLI::color(clean_path($exception->getFile()) . ':' . $exception->getLine(), 'green'));
CLI::newLine(); CLI::newLine();
CLI::error('ERROR: ' . $code);
// The backtrace // The backtrace
if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE) { if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE) {

View File

@ -7,15 +7,15 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<script>document.write(new Date().getFullYear())</script> &copy; Minton theme by <a href="">Coderthemes</a> <script>document.write(new Date().getFullYear())</script> &copy; NHANCE
</div> </div>
<div class="col-md-6"> <!-- <div class="col-md-6">
<div class="text-md-right footer-links d-none d-sm-block"> <div class="text-md-right footer-links d-none d-sm-block">
<a href="javascript:void(0);">About Us</a> <a href="javascript:void(0);">About Us</a>
<a href="javascript:void(0);">Help</a> <a href="javascript:void(0);">Help</a>
<a href="javascript:void(0);">Contact Us</a> <a href="javascript:void(0);">Contact Us</a>
</div> </div>
</div> </div> -->
</div> </div>
</div> </div>
</footer> </footer>
@ -31,400 +31,400 @@
</div> </div>
<!-- END wrapper --> <!-- END wrapper -->
<!-- Right Sidebar --> <!-- Right Sidebar -->
<div class="right-bar"> <div class="right-bar">
<div data-simplebar class="h-100"> <div data-simplebar class="h-100">
<!-- Nav tabs --> <!-- Nav tabs -->
<ul class="nav nav-tabs nav-bordered nav-justified" role="tablist"> <ul class="nav nav-tabs nav-bordered nav-justified" role="tablist">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link py-2" data-toggle="tab" href="#chat-tab" role="tab"> <a class="nav-link py-2" data-toggle="tab" href="#chat-tab" role="tab">
<i class="mdi mdi-message-text-outline d-block font-22 my-1"></i> <i class="mdi mdi-message-text-outline d-block font-22 my-1"></i>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link py-2" data-toggle="tab" href="#tasks-tab" role="tab"> <a class="nav-link py-2" data-toggle="tab" href="#tasks-tab" role="tab">
<i class="mdi mdi-format-list-checkbox d-block font-22 my-1"></i> <i class="mdi mdi-format-list-checkbox d-block font-22 my-1"></i>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link py-2 active" data-toggle="tab" href="#settings-tab" role="tab"> <a class="nav-link py-2 active" data-toggle="tab" href="#settings-tab" role="tab">
<i class="mdi mdi-cog-outline d-block font-22 my-1"></i> <i class="mdi mdi-cog-outline d-block font-22 my-1"></i>
</a> </a>
</li> </li>
</ul> </ul>
<!-- Tab panes --> <!-- Tab panes -->
<div class="tab-content pt-0"> <div class="tab-content pt-0">
<div class="tab-pane" id="chat-tab" role="tabpanel"> <div class="tab-pane" id="chat-tab" role="tabpanel">
<form class="search-bar p-3"> <form class="search-bar p-3">
<div class="position-relative"> <div class="position-relative">
<input type="text" class="form-control" placeholder="Search..."> <input type="text" class="form-control" placeholder="Search...">
<span class="mdi mdi-magnify"></span> <span class="mdi mdi-magnify"></span>
</div> </div>
</form> </form>
<h6 class="font-weight-medium px-3 mt-2 text-uppercase">Group Chats</h6> <h6 class="font-weight-medium px-3 mt-2 text-uppercase">Group Chats</h6>
<div class="p-2"> <div class="p-2">
<a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block"> <a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block">
<i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-success"></i> <i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-success"></i>
<span class="mb-0 mt-1">App Development</span> <span class="mb-0 mt-1">App Development</span>
</a> </a>
<a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block"> <a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block">
<i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-warning"></i> <i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-warning"></i>
<span class="mb-0 mt-1">Office Work</span> <span class="mb-0 mt-1">Office Work</span>
</a> </a>
<a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block"> <a href="javascript: void(0);" class="text-reset notification-item pl-3 mb-2 d-block">
<i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-danger"></i> <i class="mdi mdi-checkbox-blank-circle-outline mr-1 text-danger"></i>
<span class="mb-0 mt-1">Personal Group</span> <span class="mb-0 mt-1">Personal Group</span>
</a> </a>
<a href="javascript: void(0);" class="text-reset notification-item pl-3 d-block"> <a href="javascript: void(0);" class="text-reset notification-item pl-3 d-block">
<i class="mdi mdi-checkbox-blank-circle-outline mr-1"></i> <i class="mdi mdi-checkbox-blank-circle-outline mr-1"></i>
<span class="mb-0 mt-1">Freelance</span> <span class="mb-0 mt-1">Freelance</span>
</a> </a>
</div>
<h6 class="font-weight-medium px-3 mt-3 text-uppercase">Favourites <a href="javascript: void(0);" class="font-18 text-danger"><i class="float-right mdi mdi-plus-circle"></i></a></h6>
<div class="p-2">
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-10.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Andrew Mackie</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">It will seem like simplified English.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-1.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Rory Dalyell</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">To an English person, it will seem like simplified</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status busy"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-9.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Jaxon Dunhill</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">To achieve this, it would be necessary.</p>
</div>
</div>
</div>
</a>
</div>
<h6 class="font-weight-medium px-3 mt-3 text-uppercase">Other Chats <a href="javascript: void(0);" class="font-18 text-danger"><i class="float-right mdi mdi-plus-circle"></i></a></h6>
<div class="p-2 pb-4">
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-2.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Jackson Therry</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">Everyone realizes why a new common language.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status away"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-4.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Charles Deakin</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">The languages only differ in their grammar.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-5.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Ryan Salting</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">If several languages coalesce the grammar of the resulting.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-6.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Sean Howse</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">It will seem like simplified English.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status busy"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-7.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Dean Coward</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">The new common language will be more simple.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status away"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-8.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Hayley East</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">One could refuse to pay expensive translators.</p>
</div>
</div>
</div>
</a>
<div class="text-center mt-3">
<a href="javascript:void(0);" class="btn btn-sm btn-white">
<i class="mdi mdi-spin mdi-loading mr-2"></i>
Load more
</a>
</div>
</div>
</div>
<div class="tab-pane" id="tasks-tab" role="tabpanel">
<h6 class="font-weight-medium p-3 m-0 text-uppercase">Working Tasks</h6>
<div class="px-2">
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">App Development<span class="float-right">75%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-success" role="progressbar" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Database Repair<span class="float-right">37%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-info" role="progressbar" style="width: 37%" aria-valuenow="37" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Backup Create<span class="float-right">52%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-warning" role="progressbar" style="width: 52%" aria-valuenow="52" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
</div>
<h6 class="font-weight-medium px-3 mb-0 mt-4 text-uppercase">Upcoming Tasks</h6>
<div class="p-2">
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Sales Reporting<span class="float-right">12%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-danger" role="progressbar" style="width: 12%" aria-valuenow="12" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Redesign Website<span class="float-right">67%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-primary" role="progressbar" style="width: 67%" aria-valuenow="67" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">New Admin Design<span class="float-right">84%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-success" role="progressbar" style="width: 84%" aria-valuenow="84" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
</div>
<div class="p-3 mt-2">
<a href="javascript: void(0);" class="btn btn-success btn-block waves-effect waves-light">Create Task</a>
</div>
</div>
<div class="tab-pane active" id="settings-tab" role="tabpanel">
<h6 class="font-weight-medium px-3 m-0 py-2 font-13 text-uppercase bg-light">
<span class="d-block py-1">Theme Settings</span>
</h6>
<div class="p-3">
<div class="alert alert-warning" role="alert">
<strong>Customize </strong> the overall color scheme, sidebar menu, etc.
</div>
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Color Scheme</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="color-scheme-mode" value="light"
id="light-mode-check" checked />
<label class="custom-control-label" for="light-mode-check">Light Mode</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="color-scheme-mode" value="dark"
id="dark-mode-check" />
<label class="custom-control-label" for="dark-mode-check">Dark Mode</label>
</div>
<!-- Width -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Width</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="width" value="fluid" id="fluid-check" checked />
<label class="custom-control-label" for="fluid-check">Fluid</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="width" value="boxed" id="boxed-check" />
<label class="custom-control-label" for="boxed-check">Boxed</label>
</div>
<!-- Topbar -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Topbar</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="topbar-color" value="dark" id="darktopbar-check"
checked />
<label class="custom-control-label" for="darktopbar-check">Dark</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="topbar-color" value="light" id="lighttopbar-check" />
<label class="custom-control-label" for="lighttopbar-check">Light</label>
</div>
<!-- Menu positions -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Menus Positon <small>(Leftsidebar and Topbar)</small></h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="menus-position" value="fixed" id="fixed-check"
checked />
<label class="custom-control-label" for="fixed-check">Fixed</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="menus-position" value="scrollable"
id="scrollable-check" />
<label class="custom-control-label" for="scrollable-check">Scrollable</label>
</div>
<!-- Left Sidebar-->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Left Sidebar Color</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="light" id="light-check" checked />
<label class="custom-control-label" for="light-check">Light</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="dark" id="dark-check" />
<label class="custom-control-label" for="dark-check">Dark</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="brand" id="brand-check" />
<label class="custom-control-label" for="brand-check">Brand</label>
</div>
<div class="custom-control custom-switch mb-3">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="gradient" id="gradient-check" />
<label class="custom-control-label" for="gradient-check">Gradient</label>
</div>
<!-- size -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Left Sidebar Size</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="default"
id="default-size-check" checked />
<label class="custom-control-label" for="default-size-check">Default</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="condensed"
id="condensed-check" />
<label class="custom-control-label" for="condensed-check">Condensed <small>(Extra Small size)</small></label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="compact"
id="compact-check" />
<label class="custom-control-label" for="compact-check">Compact <small>(Small size)</small></label>
</div>
<!-- User info -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Sidebar User Info</h6>
<div class="custom-control custom-switch mb-1">
<input type="checkbox" class="custom-control-input" name="leftsidebar-user" value="fixed" id="sidebaruser-check" />
<label class="custom-control-label" for="sidebaruser-check">Enable</label>
</div>
<button class="btn btn-primary btn-block mt-4" id="resetBtn">Reset to Default</button>
<a href=""
class="btn btn-danger btn-block mt-2" target="_blank"><i class="mdi mdi-basket mr-1"></i> Purchase Now</a>
</div>
</div>
</div>
</div> <!-- end slimscroll-menu-->
</div> </div>
<!-- /Right-bar -->
<h6 class="font-weight-medium px-3 mt-3 text-uppercase">Favourites <a href="javascript: void(0);" class="font-18 text-danger"><i class="float-right mdi mdi-plus-circle"></i></a></h6>
<div class="p-2">
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-10.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Andrew Mackie</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">It will seem like simplified English.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-1.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Rory Dalyell</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">To an English person, it will seem like simplified</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status busy"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-9.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Jaxon Dunhill</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">To achieve this, it would be necessary.</p>
</div>
</div>
</div>
</a>
</div>
<h6 class="font-weight-medium px-3 mt-3 text-uppercase">Other Chats <a href="javascript: void(0);" class="font-18 text-danger"><i class="float-right mdi mdi-plus-circle"></i></a></h6>
<div class="p-2 pb-4">
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-2.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Jackson Therry</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">Everyone realizes why a new common language.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status away"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-4.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Charles Deakin</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">The languages only differ in their grammar.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-5.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Ryan Salting</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">If several languages coalesce the grammar of the resulting.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status online"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-6.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Sean Howse</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">It will seem like simplified English.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status busy"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-7.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Dean Coward</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">The new common language will be more simple.</p>
</div>
</div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset notification-item">
<div class="media">
<div class="position-relative mr-2">
<span class="user-status away"></span>
<img src="<?= base_url()."public"; ?>/assets/images/users/avatar-8.jpg" class="rounded-circle avatar-sm" alt="user-pic">
</div>
<div class="media-body overflow-hidden">
<h6 class="mt-0 mb-1 font-14">Hayley East</h6>
<div class="font-13 text-muted">
<p class="mb-0 text-truncate">One could refuse to pay expensive translators.</p>
</div>
</div>
</div>
</a>
<div class="text-center mt-3">
<a href="javascript:void(0);" class="btn btn-sm btn-white">
<i class="mdi mdi-spin mdi-loading mr-2"></i>
Load more
</a>
</div>
</div>
</div>
<div class="tab-pane" id="tasks-tab" role="tabpanel">
<h6 class="font-weight-medium p-3 m-0 text-uppercase">Working Tasks</h6>
<div class="px-2">
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">App Development<span class="float-right">75%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-success" role="progressbar" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Database Repair<span class="float-right">37%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-info" role="progressbar" style="width: 37%" aria-valuenow="37" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Backup Create<span class="float-right">52%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-warning" role="progressbar" style="width: 52%" aria-valuenow="52" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
</div>
<h6 class="font-weight-medium px-3 mb-0 mt-4 text-uppercase">Upcoming Tasks</h6>
<div class="p-2">
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Sales Reporting<span class="float-right">12%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-danger" role="progressbar" style="width: 12%" aria-valuenow="12" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">Redesign Website<span class="float-right">67%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-primary" role="progressbar" style="width: 67%" aria-valuenow="67" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
<a href="javascript: void(0);" class="text-reset item-hovered d-block p-2">
<p class="text-muted mb-0">New Admin Design<span class="float-right">84%</span></p>
<div class="progress mt-2" style="height: 4px;">
<div class="progress-bar bg-success" role="progressbar" style="width: 84%" aria-valuenow="84" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</a>
</div>
<div class="p-3 mt-2">
<a href="javascript: void(0);" class="btn btn-success btn-block waves-effect waves-light">Create Task</a>
</div>
</div>
<div class="tab-pane active" id="settings-tab" role="tabpanel">
<h6 class="font-weight-medium px-3 m-0 py-2 font-13 text-uppercase bg-light">
<span class="d-block py-1">Theme Settings</span>
</h6>
<div class="p-3">
<div class="alert alert-warning" role="alert">
<strong>Customize </strong> the overall color scheme, sidebar menu, etc.
</div>
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Color Scheme</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="color-scheme-mode" value="light"
id="light-mode-check" checked />
<label class="custom-control-label" for="light-mode-check">Light Mode</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="color-scheme-mode" value="dark"
id="dark-mode-check" />
<label class="custom-control-label" for="dark-mode-check">Dark Mode</label>
</div>
<!-- Width -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Width</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="width" value="fluid" id="fluid-check" checked />
<label class="custom-control-label" for="fluid-check">Fluid</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="width" value="boxed" id="boxed-check" />
<label class="custom-control-label" for="boxed-check">Boxed</label>
</div>
<!-- Topbar -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Topbar</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="topbar-color" value="dark" id="darktopbar-check"
checked />
<label class="custom-control-label" for="darktopbar-check">Dark</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="topbar-color" value="light" id="lighttopbar-check" />
<label class="custom-control-label" for="lighttopbar-check">Light</label>
</div>
<!-- Menu positions -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Menus Positon <small>(Leftsidebar and Topbar)</small></h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="menus-position" value="fixed" id="fixed-check"
checked />
<label class="custom-control-label" for="fixed-check">Fixed</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="menus-position" value="scrollable"
id="scrollable-check" />
<label class="custom-control-label" for="scrollable-check">Scrollable</label>
</div>
<!-- Left Sidebar-->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Left Sidebar Color</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="light" id="light-check" checked />
<label class="custom-control-label" for="light-check">Light</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="dark" id="dark-check" />
<label class="custom-control-label" for="dark-check">Dark</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="brand" id="brand-check" />
<label class="custom-control-label" for="brand-check">Brand</label>
</div>
<div class="custom-control custom-switch mb-3">
<input type="radio" class="custom-control-input" name="leftsidebar-color" value="gradient" id="gradient-check" />
<label class="custom-control-label" for="gradient-check">Gradient</label>
</div>
<!-- size -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Left Sidebar Size</h6>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="default"
id="default-size-check" checked />
<label class="custom-control-label" for="default-size-check">Default</label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="condensed"
id="condensed-check" />
<label class="custom-control-label" for="condensed-check">Condensed <small>(Extra Small size)</small></label>
</div>
<div class="custom-control custom-switch mb-1">
<input type="radio" class="custom-control-input" name="leftsidebar-size" value="compact"
id="compact-check" />
<label class="custom-control-label" for="compact-check">Compact <small>(Small size)</small></label>
</div>
<!-- User info -->
<h6 class="font-weight-medium font-14 mt-4 mb-2 pb-1">Sidebar User Info</h6>
<div class="custom-control custom-switch mb-1">
<input type="checkbox" class="custom-control-input" name="leftsidebar-user" value="fixed" id="sidebaruser-check" />
<label class="custom-control-label" for="sidebaruser-check">Enable</label>
</div>
<button class="btn btn-primary btn-block mt-4" id="resetBtn">Reset to Default</button>
<a href="https://wrapbootstrap.com/theme/minton-admin-dashboard-landing-template-WB0858DB6?ref=coderthemes"
class="btn btn-danger btn-block mt-2" target="_blank"><i class="mdi mdi-basket mr-1"></i> Purchase Now</a>
</div>
</div>
</div>
</div> <!-- end slimscroll-menu-->
</div>
<!-- /Right-bar -->
<!-- Right bar overlay--> <!-- Right bar overlay-->
<div class="rightbar-overlay"></div> <div class="rightbar-overlay"></div>
@ -432,6 +432,11 @@
<!-- Vendor js --> <!-- Vendor js -->
<script src="<?= base_url()."public"; ?>/assets/js/vendor.min.js"></script> <script src="<?= base_url()."public"; ?>/assets/js/vendor.min.js"></script>
<!-- KNOB JS -->
<script src="<?= base_url()."public"; ?>/assets/libs/jquery-knob/jquery.knob.min.js"></script>
<!-- Apex js-->
<script src="<?= base_url()."public"; ?>/assets/libs/apexcharts/apexcharts.min.js"></script>
<!-- third party js --> <!-- third party js -->
<script src="<?= base_url()."public"; ?>/assets/libs/datatables.net/js/jquery.dataTables.min.js"></script> <script src="<?= base_url()."public"; ?>/assets/libs/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="<?= base_url()."public"; ?>/assets/libs/datatables.net-bs4/js/dataTables.bootstrap4.min.js"></script> <script src="<?= base_url()."public"; ?>/assets/libs/datatables.net-bs4/js/dataTables.bootstrap4.min.js"></script>
@ -449,7 +454,10 @@
<!-- third party js ends --> <!-- third party js ends -->
<!-- Datatables init --> <!-- Datatables init -->
<script src="<?= base_url()."public"; ?>/assets/js/pages/datatables.init.js"></script> <!-- <script src="<?= base_url()."public"; ?>/assets/js/pages/datatables.init.js"></script> -->
<script src="<?= base_url()."public"; ?>/assets/js/pages/tickets.init.js"></script>
<!-- Plugins js--> <!-- Plugins js-->
<script src="<?= base_url()."public"; ?>/assets/libs/admin-resources/jquery.vectormap/jquery-jvectormap-1.2.2.min.js"></script> <script src="<?= base_url()."public"; ?>/assets/libs/admin-resources/jquery.vectormap/jquery-jvectormap-1.2.2.min.js"></script>
@ -465,13 +473,13 @@
<!-- App js --> <!-- App js -->
<script src="<?= base_url()."public"; ?>/assets/js/app.min.js"></script> <script src="<?= base_url()."public"; ?>/assets/js/app.min.js"></script>
<!-- Sweet Alert CDN --> <!-- Sweet Alert CDN -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap-multiselect@1.1.0/dist/js/bootstrap-multiselect.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap-multiselect@1.1.0/dist/js/bootstrap-multiselect.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css" />
<!-- fontAwsome --> <script src="https://cdn.jsdelivr.net/npm/toastr@2.1.4/toastr.min.js"></script>
<script src="<?= base_url()."public"; ?>/assets/js/pages/fontawesome.init.js"></script> <link href="https://cdn.jsdelivr.net/npm/toastr@2.1.4/build/toastr.min.css" rel="stylesheet">
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@ -69,6 +69,7 @@
</div> </div>
<div class="form-group mb-0 text-center"> <div class="form-group mb-0 text-center">
<a href="<?= base_url('auth/google'); ?>"><img <a href="<?= base_url('auth/google'); ?>"><img
src="<?= base_url()."public"; ?>/assets/images/googleButton.svg" width="300"></a> src="<?= base_url()."public"; ?>/assets/images/googleButton.svg" width="300"></a>
</div> </div>

View File

@ -1,11 +1,4 @@
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Corporate Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
position: relative; position: relative;
@ -303,8 +296,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3096,12 +3089,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (Corporate Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Corporate Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: 0;
height: 70px; height: 60px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (Corporate Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Corporate Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File (Corporate Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Corporate Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark RTL (Creative Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (Creative Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (Creative Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1550px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,10 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes Author: CoderThemes
Version: 5.0.0 Version: 5.0.0
Website: https://coderthemes.com/ Website: https://coderthemes.com/
Contact: support@coderthemes.com Contact: support@coderthemes.com
File: Main Css File (Creative Demo) File: Main Css File (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
@ -304,8 +304,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -553,8 +553,8 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
position: fixed; position: fixed;
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: -10;
height: 70px; height: 61px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -3097,12 +3097,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark RTL (Default Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Default Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (Default Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Default Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark RTL (Material Design Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Material Design Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -22,7 +18,7 @@ body {
.content-page { .content-page {
margin-left: 240px; margin-left: 240px;
overflow: hidden; overflow: hidden;
padding: 70px 15px 65px 15px; padding: 85px 15px 65px 15px;
min-height: 80vh; } min-height: 80vh; }
.left-side-menu { .left-side-menu {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0px; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: 0;
height: 70px; height: 60px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (Material Design Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Material Design Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -22,7 +18,7 @@ body {
.content-page { .content-page {
margin-left: 240px; margin-left: 240px;
overflow: hidden; overflow: hidden;
padding: 70px 15px 65px 15px; padding: 85px 15px 65px 15px;
min-height: 80vh; } min-height: 80vh; }
.left-side-menu { .left-side-menu {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: 0;
height: 70px; height: 60px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (Material Design Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Material Design Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: 0;
height: 70px; height: 60px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File (Material-design Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Material-design Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -22,7 +18,7 @@ body {
.content-page { .content-page {
margin-left: 240px; margin-left: 240px;
overflow: hidden; overflow: hidden;
padding: 70px 15px 65px 15px; padding: 80px 15px 65px 15px;
min-height: 80vh; } min-height: 80vh; }
.left-side-menu { .left-side-menu {
@ -37,13 +33,13 @@ body {
box-shadow: 0 2px 6px -2px rgba(0, 0, 0, 0.16), 0 2px 6px 0 rgba(0, 0, 0, 0.12); box-shadow: 0 2px 6px -2px rgba(0, 0, 0, 0.16), 0 2px 6px 0 rgba(0, 0, 0, 0.12);
z-index: 1; } z-index: 1; }
.logo-box { .logo-box {
height: 70px;
width: 240px; width: 240px;
transition: all .1s ease-out; transition: all .1s ease-out;
background-color: #0056c1; background-color: #0056c1;
position: fixed; position: fixed;
top: 0; top: -10px;
height: 61px;
z-index: 1; } z-index: 1; }
.logo-box .logo { .logo-box .logo {
line-height: 70px; } line-height: 70px; }
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) { @media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) { body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } } min-height: 0; } }
@media (max-width: 767.98px) { @media (max-width: 767.98px) {
.pro-user-name { .pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -552,8 +548,8 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
position: fixed; position: fixed;
left: 240px; left: 240px;
right: 0; right: 0;
top: 0; top: -10px;
height: 70px; height: 61px;
transition: all .1s ease-out; transition: all .1s ease-out;
z-index: 1001; z-index: 1001;
/* Search */ } /* Search */ }
@ -865,7 +861,7 @@ body[data-layout-mode="detached"] .navbar-custom {
.footer { .footer {
bottom: 0; bottom: 0;
padding: 19px 15px 20px; padding: 15px 15px 15px;
position: absolute; position: absolute;
right: 0; right: 0;
color: #98a6ad; color: #98a6ad;
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark RTL (Modern Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Modern Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (Modern Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Modern Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (Modern Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Modern Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File (Modern Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Modern Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (Default Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Default Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark RTL (SAAS Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (SAAS Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - Dark (SAAS Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (SAAS Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File - RTL (SAAS Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (SAAS Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File (SAAS Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (SAAS Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Main Css File (Default Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Default Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html { html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer { .footer {
left: 0 !important; } } left: 0 !important; } }
/* ============= /* =============
Small Menu Small Menu
============= */ ============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box { body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; } width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1); -webkit-transform: scale(1);
opacity: 0.0; } } opacity: 0.0; } }
/*! /*!
* Waves v0.7.6 * Waves v0.7.6
* http://fian.my.id/Waves * http://fian.my.id/Waves
* *
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license * Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */ * https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect { .waves-effect {
position: relative; position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,8 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File - Dark (Corporate Demo)
Version: 5.0.0 */
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Corporate Demo)
*/
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #5993fd; --blue: #5993fd;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File (Corporate Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Corporate Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap");
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #5993fd; --blue: #5993fd;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File - Dark (Creative Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #3b82da; --blue: #3b82da;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File (Creative Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Creative Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap");
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #3b82da; --blue: #3b82da;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,7 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard File: Custom Bootstrap Css File - Dark (Default Demo)
Author: CoderThemes */
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Default Demo)
*/
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #3bafda; --blue: #3bafda;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,7 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard File: Custom Bootstrap Css File - Dark (Material Design Demo)
Author: CoderThemes */
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Material Design Demo)
*/
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root { :root {
--blue: #0056c1; --blue: #0056c1;
--indigo: #675aa9; --indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,7 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File (Material Design Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Material Design Demo)
*/ */
/*! /*!
* Bootstrap v4.5.2 (https://getbootstrap.com/) * Bootstrap v4.5.2 (https://getbootstrap.com/)

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,7 @@
@charset "UTF-8"; @charset "UTF-8";
/* /*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes File: Custom Bootstrap Css File - Dark (Modern Demo)
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Modern Demo)
*/ */
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;700&display=swap");
/*! /*!

Some files were not shown because too many files have changed in this diff Show More