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.baseURL = 'https://localhost/PHP828APPS/ruc/ci4/'
app.baseURL = 'http://localhost/nhance/'
# If you have trouble with `.`, you could also use `_`.
# app_baseURL = ''
# app.forceGlobalSecureRequests = false
@ -30,18 +30,20 @@ app.baseURL = 'https://localhost/PHP828APPS/ruc/ci4/'
# DATABASE
#--------------------------------------------------------------------
database.default.hostname = localhost
database.default.database = ruc
database.default.username = root
database.default.password =
database.default.hostname = 119.18.54.85
database.default.database = venbaehn_nhance
database.default.username = venbaehn_nhance_user1
database.default.password = 'iM~X7(cR+}A-'
# database.default.DBDriver = MySQLi
# database.default.DBPrefix =
# database.default.port = 3306
# database.tests.hostname = localhost
# database.tests.database = ci4_test
# database.tests.username = root
# database.tests.password = root
database.default.hostname = 119.18.54.85
database.default.database = venbaehn_nhance
database.default.username = venbaehn_nhance_user1
database.default.password = 'iM~X7(cR+}A-'
# database.tests.DBDriver = MySQLi
# database.tests.DBPrefix =
# database.tests.port = 3306
@ -141,3 +143,13 @@ database.default.password =
#--------------------------------------------------------------------
# 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[]
* @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("create", "ClientController::clientOnboarding");
$routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
$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->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::clientCreate");
});
$routes->post("create", "ClientController::createClientBranch");
$routes->post("edit", "ClientController::editClientBranch");
$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->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::createClientPolicy");
$routes->post("edit", "ClientController::editClientPolicy");
$routes->get("list/(:any)", "ClientController::getClientPolicyById/$1");
});
$routes->group("kyc", ["filter" => "authMVC"], function($routes){
$routes->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::clientCreate");
$routes->post("create", "ClientController::createClientKYCInfo");
$routes->post("edit", "ClientController::editClientKYCInfo");
$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->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.
*/
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\ResponseInterface;
use Psr\Log\LoggerInterface;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel;
use App\Models\ClientModel;
@ -21,10 +22,14 @@ use App\Models\LevelContactModel;
use App\Models\PolicesModel;
use App\Models\TPABranchModel;
use App\Models\TPAModel;
use App\Models\StateModel;
class ClientController extends AdminController
{
{
use ResponseTrait;
protected $myLogger;
protected $clientModel;
protected $userModel;
protected $clientBranchModel;
@ -39,12 +44,14 @@ class ClientController extends AdminController
protected $policesModel;
protected $tpaBranchModel;
protected $tpaModel;
protected $stateModel;
public function __construct()
{
parent::__construct();
set_session_context('Client');
$this->myLogger = \Config\Services::mylogger();
$this->clientModel = new ClientModel();
$this->userModel = new UserModel();
$this->clientBranchModel = new ClientBranchModel();
@ -59,33 +66,431 @@ class ClientController extends AdminController
$this->policesModel = new PolicesModel();
$this->tpaBranchModel = new TPABranchModel();
$this->tpaModel = new TPAModel();
$this->stateModel = new StateModel();
}
public function index()
{
echo view('layout/header');
echo view('client_list');
$this->myLogger->logme('error','Client list function called');
$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');
// $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['kyc_docs'] = $this->kycDocsModel->findAll();
$data['police'] = $this->policesModel->findAll();
$data['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
$data['tpa'] = $this->tpaBranchModel ->getTpaBranchesWithTpaNames();
$data['state'] = $this->stateModel->getAllStates();
$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('layout/footer');
// $this->loadLayout('client_onboarding', $data);
}
public function createClientGeneralInfo(){
public function editClientOnboarding($id = null)
{
$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'];
// set_session_data($session_data);
// $isLoggedIn = check_session();
$isLoggedIn = check_session();
if ($isLoggedIn) {

View File

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

View File

@ -13,9 +13,24 @@ class ClientBranchModel extends Model
"client_id",
"branch_name",
"branch_code",
"city",
"district",
"state",
"created_by",
"updated_by",
"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 $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
public function clientsWithPolicies()
{
@ -46,7 +47,18 @@ class ClientModel extends Model
}
//print_r(($clients));die();
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",
"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",
];
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",
"city",
"mobile",
"designation",
"created_by",
"updated_by",
"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",
"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",
"updated_by",
"updated_at",
"created_by",
"updated_by",
"is_active",
];
@ -90,13 +88,22 @@ class UserModel extends Model
public function getUserById($id){
$userData = $this->where('id', $id)->get();
if ($userData->getNumRows() > 0) {
return $userData->getRow();
} else {
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>
<!-- 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 -->
<div class="row" id="Add-Edit-Page">
<div class="col-12">
@ -70,56 +59,38 @@ body {
<input type="hidden" name="PrimaryKey" id="UserId"/>
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-6">
<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">
<div class="form-group col-md-3">
<label for="emp_code">Employee Code</label>
<input type="text" class="form-control" id="emp_code" placeholder="Enter Employee Code" name="emp_code">
</div>
<div class="form-group col-md-6">
<label for="profile">Image</label>
<input class="form-control" type="file" name="profile" multiple="true" id="profile" onchange="onFileUpload(this);" accept="image/*">
<div class="form-group col-md-3">
<label for="first_name">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-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 class="form-row">
<div class="form-group col-md-6">
<div class="form-group col-md-4">
<label for="emp_code">User Role</label>
<select class="form-control" id="role" name="role">
<option value="">Select Role</option>
</select>
</div>
<div class="form-group col-md-6">
<div class="form-group col-md-4">
<label for="profile">User Team</label>
<select class="form-control" id="team" name="team[]" multiple>
</select>
</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 class="form-group text-right m-b-0">

View File

@ -1,15 +1 @@
<!-- start page title -->
<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 -->
<h4 class="page-title">Welcome !</h4>

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 -->
<div class="row" id="List-page">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">User List</h4>
</div>
<div class="col-6" style="text-align: right;">
<button type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light">Add</button>
</div>
</div>
<table id="datatable-buttons" class="table table-striped dt-responsive nowrap w-100">
<thead>
<div class="row" id="List-page">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">User List</h4>
</div>
<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" data-toggle="modal" data-target="#con-close-modal" data-placement="top" title="Add" data-trigger="hover">ADD</button>
</div>
</div>
<table class="table table-sm table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
<thead class="bg-light">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Mobile No</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach($UserList as $row) { ?>
<tr id="<?php echo $row['id'];?>">
<td><?php echo $row['first_name']; ?></td>
<td><?php echo $row['last_name']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['mobile']; ?></td>
<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>
<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>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div> <!-- end card body-->
</div> <!-- end card -->
</div><!-- end col-->
</div>
<th class="font-weight-medium">Name</th>
<th class="font-weight-medium">Email</th>
<th class="font-weight-medium">Mobile No</th>
<th class="font-weight-medium">Role</th>
<th class="font-weight-medium">Status</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead>
<tbody>
<?php foreach($UserList as $row) { ?>
<tr id="<?php echo $row->id;?>">
<td class="text-dark"><?php echo $row->first_name; ?></td>
<td><?php echo $row->email; ?></td>
<td><?php echo $row->mobile; ?></td>
<td><?php echo $row->user_role; ?></td>
<td>
<span class="<?php if($row->is_active == 1){ echo 'badge badge-success'; }else{ echo 'badge badge-danger'; } ?>">
<?php if($row->is_active == 1){ echo 'Active'; }else{ echo 'In-Active'; } ?>
</span>
</td>
<td>
<div class="btn-group dropdown" style="position: relative !important;left:0px !important;top:0px !important;">
<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" style="cursor: pointer;">
<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>
<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-->
<!-- 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>
$(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(){
$('#Add-Edit-Page').show();
$('.header-title').html('Add User');
$('#btnSubmit').html('Submit');
$('#first_name').val('');
$('#last_name').val('');
$('#email').val('');
$('#mobile').val('');
$('#emp_code').val('');
$('#profile').val('');
$('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100);
$('#List-page').hide();
$('.btnBack').show();
$('#btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
})
$('.close').click(function(){
$('#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({
url: '<?php echo base_url('user/rolesandteams/');?>',
url: '<?php echo base_url('user/getuser/');?>'+user_id,
type: "GET",
dataType: 'json',
success: function (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('')
$('#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');?>');
$('#UserId').val(res.data.id);
$('#first_name').val(res.data.first_name);
@ -140,40 +240,14 @@ $(document).ready(function () {
$('#email').val(res.data.email);
$('#mobile').val(res.data.mobile);
$('#emp_code').val(res.data.emp_code);
$('#role option[value="' + res.data.role + '"]').prop('selected', true);
$('#btnSubmit').html('Update');
var roleOptionHTML = '';
$.each(res.roleData, function(index, item) {
var isSelected = res.userTeamData.some(function(userTeamItem) {
return res.data.role === item.id;
});
roleOptionHTML += '<option value="' + item.id + '" ' + (isSelected ? 'selected="selected"' : '') + '>' + item.role + '</option>';
$.each(res.userTeamData, function(index, item) {
$('#team option[value="' + item.team_id + '"]').prop('selected', true);
$('#team').multiselect('refresh');
});
$('#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) {
console.error(xhr.responseText);
@ -198,83 +272,75 @@ $(document).ready(function () {
var student_id = $(this).attr('data-id');
$.get('<?php echo base_url('user/deactive/');?>'+student_id, function (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';
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
console.log(e.target.result);
$(id).attr('src', e.target.result).width(100);
};
reader.readAsDataURL(input.files[0]);
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++) { // 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>

View File

@ -2,46 +2,54 @@
<div class="row">
<div class="col-12">
<div class="card-body">
<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" />
<form role="form" class="parsley-examples" method="post" id="general_form" enctype="multipart/form-data">
<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="client_id" id="client_id" />
<div class="form-group">
<div class="form-row">
<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>
<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>
<?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 } ?>
</select>
</div>
<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>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Client Name" name="first_name" required>
<input type="text" class="form-control" id="client_name"
placeholder="Enter Client Name" value="<?= isset($client['client_name']) ? $client['client_name'] : '' ?>" name="client_name" required>
</div>
<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>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Short Name" name="last_name" required>
<input type="text" class="form-control" id="short_name"
placeholder="Enter Short Name" value="<?= isset($client['short_name']) ? $client['short_name'] : '' ?>" name="short_name" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="email">PAN<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="email"
placeholder="Enter PAN Number" name="email" required>
<label for="pan">PAN<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="pan"
placeholder="Enter PAN Number" value="<?= isset($client['pan']) ? $client['pan'] : '' ?>" name="pan" required>
</div>
<div class="form-group col-md-4">
<label for="mobile">GST<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile"
placeholder="Enter GST Number" name="mobile" required>
<label for="gst">GST<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="gst"
placeholder="Enter GST Number" value="<?= isset($client['gst']) ? $client['gst'] : '' ?>" name="gst" required>
</div>
</div>
@ -49,37 +57,49 @@
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">Address 1<span
<label for="address1">Address 1<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="email"
placeholder="Enter Address 1" name="email" required>
<input type="text" class="form-control" id="address1"
placeholder="Enter Address 1" value="<?= isset($client['address1']) ? $client['address1'] : '' ?>" name="address1" required>
</div>
<div class="form-group col-md-6">
<label for="mobile">Address 2<span
<label for="address2">Address 2<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="mobile"
placeholder="Enter Address 2" name="mobile" required>
<input type="text" class="form-control" id="address2"
placeholder="Enter Address 2" value="<?= isset($client['address2']) ? $client['address2'] : '' ?>" name="address2" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="first_name">City<span
<label for="city">City<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="first_name"
placeholder="Enter City" name="first_name" required>
<input type="text" class="form-control" id="city"
placeholder="Enter City" value="<?= isset($client['city']) ? $client['city'] : '' ?>" name="city" required>
</div>
<div class="form-group col-md-4">
<label for="last_name">State<span
<label for="state">State<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter State" name="last_name" required>
<select class="form-control" id="state" name="state" 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 class="form-group col-md-4">
<label for="last_name">Pincode<span
<label for="pincode">Pincode<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Pincode" name="last_name" required>
<input type="text" class="form-control" id="pincode"
placeholder="Enter Pincode" value="<?= isset($client['pincode']) ? $client['pincode'] : '' ?>" name="pincode" maxlength="6" required>
</div>
</div>
</div>
@ -101,6 +121,105 @@
$(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>

View File

@ -2,7 +2,7 @@
<div class="row float-right" style="padding-bottom: 10px;">
<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>
@ -11,22 +11,12 @@
<table class="table table-borderless table-nowrap mb-0">
<thead class="thead-light">
<tr>
<th>#</th>
<th>Branch Name</th>
<th>Branch Code</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<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 id="branch_list">
</tbody>
</table>
</div>
@ -36,29 +26,54 @@
<div class="card-body">
<div class="row float-right" style="position: relative; bottom: 20px;">
<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>
<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">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" />
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<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-row">
<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>
<input type="text" class="form-control" id="first_name"
placeholder="Enter Branch Name" name="first_name" required>
<input type="text" class="form-control" id="branch_name"
placeholder="Enter Branch Name" name="branch_name" required>
</div>
<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>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Branch Code" name="last_name" required>
<input type="text" class="form-control" id="branch_code"
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>
@ -67,47 +82,31 @@
<br>
<div class="form-row">
<div class="form-group col-md-4">
<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">
<div class="form-group col-md-6">
<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>
<input type="text" class="form-control" id="name0"
placeholder="Enter Contact Name" name="name[]" >
</div>
<div class="form-group col-md-4">
<div class="form-group col-md-6">
<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>
<input type="text" class="form-control" id="email0"
placeholder="Enter Contact Email" name="email[]" >
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="last_name">Mobile<span
<div class="form-group col-md-6">
<label for="mobile">Mobile<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Contact Mobile" name="last_name" required>
<input type="text" class="form-control" id="mobile0"
placeholder="Enter Contact Mobile" name="mobile[]" >
</div>
<div class="form-group col-md-4">
<label for="first_name">City<span
<div class="form-group col-md-6">
<label for="designation">Designation<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 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" >
<input type="text" class="form-control" id="designation0"
placeholder="Enter Designation Name" name="designation[]" >
</div>
</div>
@ -116,47 +115,28 @@
<br>
<div class="form-row">
<div class="form-group col-md-4">
<label for="first_name">Contact Level<span
<div class="form-group col-md-6">
<label for="name">Name<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>
<input type="text" class="form-control" id="name1"
placeholder="Enter Contact Name" name="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 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 class="form-group col-md-6">
<label for="email">Email</label>
<input type="text" class="form-control" id="email1"
placeholder="Enter Contact Email" name="email[]" >
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="last_name">Mobile<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Contact Mobile" name="last_name" required>
<div class="form-group col-md-6">
<label for="mobile">Mobile</label>
<input type="text" class="form-control" id="mobile1"
placeholder="Enter Contact Mobile" name="mobile[]" >
</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 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 class="form-group col-md-6">
<label for="designation">Designation</label>
<input type="text" class="form-control" id="designation1"
placeholder="Enter Designation Name" name="designation[]">
</div>
</div>
@ -165,52 +145,30 @@
<br>
<div class="form-row">
<div class="form-group col-md-4">
<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 class="form-group col-md-6">
<label for="name">Name</label>
<input type="text" class="form-control" id="name2"
placeholder="Enter Contact Name" name="name[]" >
</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 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 class="form-group col-md-6">
<label for="email">Email</label>
<input type="text" class="form-control" id="email2"
placeholder="Enter Contact Email" name="email[]" >
</div>
</div>
<div class="form-row">
<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 class="form-group col-md-6">
<label for="mobile">Mobile</label>
<input type="text" class="form-control" id="mobile2"
placeholder="Enter Contact Mobile" name="mobile[]" >
</div>
<div class="form-group col-md-4">
<label for="last_name">Mobile<span
class="text-danger">*</span></label>
<input type="text" class="form-control" id="last_name"
placeholder="Enter Contact Mobile" name="last_name" required>
<div class="form-group col-md-6">
<label for="designation">Designation</label>
<input type="text" class="form-control" id="designation2"
placeholder="Enter Designation Name" name="designation[]" >
</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 class="form-group text-right m-b-0">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
@ -228,16 +186,45 @@
<script>
$(document).ready(function () {
var branch_PrimaryKey = $('#client_id_branch').val();
var branch_form_action = '';
$('#add_branch').hide();
$('.btnBack').hide();
$('#btnBranchAdd').click(function(){
branch_form_action = '<?= base_url("client/branch/create"); ?>';
$('#btnAdd').click(function(){
$('#add_branch').show();
$('#branch_table').hide();
$('.btnBack').show();
$('#btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
$('#btnBranchAdd').hide();
$('#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(){
@ -245,66 +232,123 @@ $(document).ready(function () {
$('#add_branch').hide();
$('#branch_table').show();
$('.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({
url: '<?php echo base_url('user/getuser/');?>'+student_id,
url: '<?php echo base_url('client/branch/list/');?>'+branch_id,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res)
$('#role').val('')
$('#Add-Edit-Page').show();
$('.header-title').html('Edit User');
$('#List-page').hide();
console.log(res)
$('#add_branch').show();
$('#branch_table').hide();
$('.btnBack').show();
$('#btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('user/edit');?>');
$('#UserId').val(res.data.id);
$('#first_name').val(res.data.first_name);
$('#last_name').val(res.data.last_name);
$('#email').val(res.data.email);
$('#mobile').val(res.data.mobile);
$('#emp_code').val(res.data.emp_code);
$('#btnSubmit').html('Update');
$.each(res.roleData, function(index, item) {
var isSelected = res.userTeamData.some(function(userTeamItem) {
return res.data.role === item.id;
});
$('#role').append($('<option>', {
value: item.id,
text : item.role,
selected: isSelected
}));
$('#btnBranchAdd').hide();
$('#branch_name').val(res.data.branch_name);
$('#branch_code').val(res.data.branch_code);
$('#state option[value="' + res.data.state + '"]').prop('selected', true);
$('#district').val(res.data.district);
$('#branch_city').val(res.data.city);
$('#branch_PrimaryKey').val(res.data.id);
$.each(res.contact, function(index, contact) {
if (contact !== undefined) {
$('#name' + index).val(contact.name !== undefined ? contact.name : '');
$('#email' + index).val(contact.email !== undefined ? contact.email : '');
$('#mobile' + index).val(contact.mobile !== undefined ? contact.mobile : '');
$('#designation' + index).val(contact.designation !== undefined ? contact.designation : '');
}
});
$.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) {
console.error(xhr.responseText);
@ -313,6 +357,7 @@ $(document).ready(function () {
});
});
});
</script>

View File

@ -3,26 +3,28 @@
<div class="row">
<div class="col-12">
<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">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" />
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<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-row">
<div class="form-group col-md-4">
<label for="emp_code">Document Type</label>
<select class="form-control" id="role" name="role">
<option value="">Select Document</option>
<select class="form-control" id="kyc_docs" name="kyc_doc_id" required>
<option value="">Select Kyc Docs</option>
</select>
</div>
<div class="form-group col-md-4">
<label for="profile">File</label>
<input class="form-control" type="file" name="profile"
multiple="true" id="profile">
<label for="kyc_docs">File</label>
<input class="form-control" type="file" name="file_name"
multiple="true" id="kyc_docs_file" required>
</div>
<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>
@ -31,6 +33,199 @@
</div>
</div> <!-- end col-->
</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 -->
</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="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Client List</h4>
<div class="row" style="margin-bottom:1rem;">
<div class="col-6" style="align-self: center;">
<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 class="col-6" style="text-align: right;">
<a href="<?= base_url("client/create"); ?>" class="btn btn-primary waves-effect waves-light">Add</a>
</div>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
<table class="table table-sm table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0"
id="tickets-table">
<thead class="bg-light">
<tr>
<th class="font-weight-medium">ID</th>
<th class="font-weight-medium">Requested By</th>
<th class="font-weight-medium">Subject</th>
<th class="font-weight-medium">Assignee</th>
<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>
<tr>
<th class="font-weight-medium">Client Name</th>
<th class="font-weight-medium">Account Manager</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead>
<tbody class="font-14">
<tbody>
<?php foreach($clientList as $row){ ?>
<tr>
<td><b>#1256</b></td>
<td><?php echo $row->client_name; ?> ( <?php echo $row->short_name; ?> ) </td>
<td>
<a href="javascript: void(0);" class="text-dark">
<img src="../assets/images/users/avatar-2.jpg" alt="contact-img" title="contact-img" class="avatar-sm rounded-circle img-thumbnail" />
<span class="ml-2">George A. Lianes</span>
</a>
<?php $account_managers = ''; ?>
<?php foreach ($client_rm as $client): ?>
<?php if ($client->client_id == $row->id): ?>
<?php $account_managers .= $client->account_manager . ', '; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php echo rtrim($account_managers, ', '); ?>
</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>
<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">
<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>
<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-delete mr-2 text-muted font-18 vertical-middle"></i>Delete</a>
</div>
</div>
</td>
</tr>
<tr>
<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>
<?php } ?>
</tbody>
</table>
</div>
@ -139,3 +53,91 @@
</div><!-- end col -->
</div>
<!-- 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="card">
<div class="card-body">
@ -8,7 +39,7 @@
<h4 class="header-title" style="position: relative;">Client Onboarding</h4>
</div>
<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>
<ul class="nav nav-pills navtab-bg">
@ -20,7 +51,7 @@
</a>
</li>
<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="d-none d-sm-inline-block">KYC Docs</span>
</a>
@ -40,7 +71,7 @@
<li class="nav-item">
<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="d-none d-sm-inline-block">Polices</span>
<span class="d-none d-sm-inline-block">Policies</span>
</a>
</li>
</ul>

View File

@ -4,7 +4,7 @@
<div class="row float-right" style="padding-bottom: 10px;">
<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>
@ -13,22 +13,13 @@
<table class="table table-borderless table-nowrap mb-0">
<thead class="thead-light">
<tr>
<th>#</th>
<th>Branch Name</th>
<th>Branch Code</th>
<th>Insurer</th>
<th>Policy</th>
<th>TPA</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<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 id="policy_table">
</tbody>
</table>
</div>
@ -39,37 +30,45 @@
<div class="row float-right" style="position: relative; bottom: 20px;">
<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>
<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">
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="UserId" />
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<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-row">
<div class="form-group col-md-4">
<label for="email">Insurer<span
class="text-danger">*</span></label>
<select class="form-control" id="role" name="role">
<option value="">Select Insurer Branch</option>
<select class="form-control" id="insurer" name="insurer">
<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>
</div>
<div class="form-group col-md-4">
<label for="first_name">Polices<span
<label for="policy">Policies<span
class="text-danger">*</span></label>
<select class="form-control" id="role" name="role">
<option value="">Select Policy</option>
<select class="form-control" id="policy" name="policy_id">
<option value="" selected>Select Policy</option>
</select>
</div>
<div class="form-group col-md-4">
<label for="mobile">TPA<span
class="text-danger">*</span></label>
<select class="form-control" id="role" name="role">
<option value="">Select TPA Branch</option>
<select class="form-control" id="tpa" name="tpa">
<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>
</div>
</div>
@ -91,7 +90,10 @@
<script>
$(document).ready(function () {
var policy_PrimaryKey = $('#client_id_police').val();
var policy_client = $('#policy_PrimaryKey').val();
$('#add_form').hide();
$('.btnBack').hide();
@ -100,7 +102,8 @@ $(document).ready(function () {
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
$('#policy_form_action').val('<?= base_url("client/policy/edit"); ?>');
;
})
$('.btnBack').click(function(){
@ -109,8 +112,160 @@ $(document).ready(function () {
$('#table_list').show();
$('.btnBack').hide();
$('.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>

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="row">
<div class="col-12">
<div class="card-body">
<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" />
<form role="form" class="parsley-examples" method="post" id="relation_form" enctype="multipart/form-data">
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
<input type="hidden" name="PrimaryKey" id="relation_PrimaryKey" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<input type="hidden" name="client_id" id="client_id_relation" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label for="emp_code">Account Manager</label>
<select class="form-control" id="account_manager" name="role">
<!-- <option value="">Select Account Manager</option> -->
<select class="form-control" id="account_manager" name="account_manager[]" multiple>
<?php foreach($RM as $value) { ?>
<?php if($value['role'] === '3') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<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>
<?php foreach($RM as $value) { ?>
<?php if($value['role'] === '2') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="form-group col-md-4">
<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>
<?php foreach($RM as $value) { ?>
<?php if($value['role'] === '5') { ?>
<option value="<?= $value['id'] ?>"><?= $value['first_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
</div>
@ -80,6 +59,9 @@ body {
<script>
$(document).ready(function(){
var relation_PrimaryKey = $('#relation_PrimaryKey').val()
$('#account_manager').multiselect({
nonSelectedText: 'Select Account Manager',
enableFiltering: false,
@ -87,5 +69,95 @@ body {
includeSelectAllOption : false,
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>

View File

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

View File

@ -7,15 +7,15 @@
<div class="container-fluid">
<div class="row">
<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 class="col-md-6">
<!-- <div class="col-md-6">
<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);">Help</a>
<a href="javascript:void(0);">Contact Us</a>
</div>
</div>
</div> -->
</div>
</div>
</footer>
@ -31,400 +31,400 @@
</div>
<!-- END wrapper -->
<!-- Right Sidebar -->
<div class="right-bar">
<div data-simplebar class="h-100">
<!-- Right Sidebar -->
<div class="right-bar">
<div data-simplebar class="h-100">
<!-- Nav tabs -->
<ul class="nav nav-tabs nav-bordered nav-justified" role="tablist">
<li class="nav-item">
<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>
</a>
</li>
<li class="nav-item">
<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>
</a>
</li>
<li class="nav-item">
<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>
</a>
</li>
</ul>
<!-- Nav tabs -->
<ul class="nav nav-tabs nav-bordered nav-justified" role="tablist">
<li class="nav-item">
<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>
</a>
</li>
<li class="nav-item">
<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>
</a>
</li>
<li class="nav-item">
<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>
</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content pt-0">
<div class="tab-pane" id="chat-tab" role="tabpanel">
<!-- Tab panes -->
<div class="tab-content pt-0">
<div class="tab-pane" id="chat-tab" role="tabpanel">
<form class="search-bar p-3">
<div class="position-relative">
<input type="text" class="form-control" placeholder="Search...">
<span class="mdi mdi-magnify"></span>
</div>
</form>
<form class="search-bar p-3">
<div class="position-relative">
<input type="text" class="form-control" placeholder="Search...">
<span class="mdi mdi-magnify"></span>
</div>
</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">
<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>
<span class="mb-0 mt-1">App Development</span>
</a>
<div class="p-2">
<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>
<span class="mb-0 mt-1">App Development</span>
</a>
<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>
<span class="mb-0 mt-1">Office Work</span>
</a>
<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>
<span class="mb-0 mt-1">Office Work</span>
</a>
<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>
<span class="mb-0 mt-1">Personal Group</span>
</a>
<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>
<span class="mb-0 mt-1">Personal Group</span>
</a>
<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>
<span class="mb-0 mt-1">Freelance</span>
</a>
<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>
<span class="mb-0 mt-1">Freelance</span>
</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>
<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 -->
<!-- Right bar overlay-->
<div class="rightbar-overlay"></div>
@ -432,6 +432,11 @@
<!-- Vendor js -->
<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 -->
<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>
@ -449,7 +454,10 @@
<!-- third party js ends -->
<!-- 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-->
<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 -->
<script src="<?= base_url()."public"; ?>/assets/js/app.min.js"></script>
<!-- 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://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" />
<!-- fontAwsome -->
<script src="<?= base_url()."public"; ?>/assets/js/pages/fontawesome.init.js"></script>
<script src="https://cdn.jsdelivr.net/npm/toastr@2.1.4/toastr.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/toastr@2.1.4/build/toastr.min.css" rel="stylesheet">
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -69,6 +69,7 @@
</div>
<div class="form-group mb-0 text-center">
<a href="<?= base_url('auth/google'); ?>"><img
src="<?= base_url()."public"; ?>/assets/images/googleButton.svg" width="300"></a>
</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");
html {
position: relative;
@ -303,8 +296,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3096,12 +3089,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Corporate Demo)
/*
File: Main Css File - Dark (Corporate Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px;
right: 0;
top: 0;
height: 70px;
height: 60px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Corporate Demo)
/*
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=Poppins:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Corporate Demo)
/*
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=Poppins:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Creative Demo)
/*
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=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Creative Demo)
/*
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=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Creative Demo)
/*
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=Inter:wght@300;400;500;600&display=swap");
@ -283,7 +279,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1550px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Creative Demo)
/*
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 (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=Inter:wght@300;400;500;600&display=swap");
@ -304,8 +304,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -553,8 +553,8 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
position: fixed;
left: 240px;
right: 0;
top: 0;
height: 70px;
top: -10;
height: 61px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -3097,12 +3097,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Default Demo)
/*
File: Main Css File - Dark RTL (Default Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Default Demo)
/*
File: Main Css File - Dark (Default Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Material Design Demo)
/*
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");
html {
@ -22,7 +18,7 @@ body {
.content-page {
margin-left: 240px;
overflow: hidden;
padding: 70px 15px 65px 15px;
padding: 85px 15px 65px 15px;
min-height: 80vh; }
.left-side-menu {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0px; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px;
right: 0;
top: 0;
height: 70px;
height: 60px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Material Design Demo)
/*
File: Main Css File - Dark (Material Design Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -22,7 +18,7 @@ body {
.content-page {
margin-left: 240px;
overflow: hidden;
padding: 70px 15px 65px 15px;
padding: 85px 15px 65px 15px;
min-height: 80vh; }
.left-side-menu {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px;
right: 0;
top: 0;
height: 70px;
height: 60px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Material Design Demo)
/*
File: Main Css File - RTL (Material Design Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -553,7 +549,7 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
left: 240px;
right: 0;
top: 0;
height: 70px;
height: 60px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Material-design Demo)
/*
File: Main Css File (Material-design Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -22,7 +18,7 @@ body {
.content-page {
margin-left: 240px;
overflow: hidden;
padding: 70px 15px 65px 15px;
padding: 80px 15px 65px 15px;
min-height: 80vh; }
.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);
z-index: 1; }
.logo-box {
height: 70px;
.logo-box {
width: 240px;
transition: all .1s ease-out;
background-color: #0056c1;
position: fixed;
top: 0;
top: -10px;
height: 61px;
z-index: 1; }
.logo-box .logo {
line-height: 70px; }
@ -282,7 +278,7 @@ body[data-sidebar-size="condensed"] .user-box {
@media (min-width: 768px) {
body[data-sidebar-size="condensed"]:not([data-layout="compact"]):not(.auth-fluid-pages) {
min-height: 1750px; } }
min-height: 0; } }
@media (max-width: 767.98px) {
.pro-user-name {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -552,8 +548,8 @@ body[data-sidebar-icon="twotones"] #sidebar-menu > ul > li > a svg {
position: fixed;
left: 240px;
right: 0;
top: 0;
height: 70px;
top: -10px;
height: 61px;
transition: all .1s ease-out;
z-index: 1001;
/* Search */ }
@ -865,7 +861,7 @@ body[data-layout-mode="detached"] .navbar-custom {
.footer {
bottom: 0;
padding: 19px 15px 20px;
padding: 15px 15px 15px;
position: absolute;
right: 0;
color: #98a6ad;
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (Modern Demo)
/*
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=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (Modern Demo)
/*
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=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Modern Demo)
/*
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=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Modern Demo)
/*
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=Rubik:wght@300;400;500;700&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (Default Demo)
/*
File: Main Css File - RTL (Default Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark RTL (SAAS Demo)
/*
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=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - Dark (SAAS Demo)
/*
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=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File - RTL (SAAS Demo)
/*
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=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (SAAS Demo)
/*
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=IBM+Plex+Sans:wght@300;400;500;600&display=swap");
@ -304,8 +300,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3097,12 +3093,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
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
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Css File (Default Demo)
/*
File: Main Css File (Default Demo)
*/
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap");
html {
@ -303,8 +299,8 @@ body[data-sidebar-size="condensed"] .user-box {
.footer {
left: 0 !important; } }
/* =============
Small Menu
/* =============
Small Menu
============= */
body[data-sidebar-size="compact"]:not([data-sidebar-size="condensed"]) .logo-box {
width: 160px !important; }
@ -3096,12 +3092,12 @@ body.authentication-bg-pattern {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE */
.waves-effect {
position: relative;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,8 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
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)
*/
/*
File: Custom Bootstrap Css File - Dark (Corporate Demo)
*/
:root {
--blue: #5993fd;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Corporate Demo)
/*
File: Custom Bootstrap Css File (Corporate Demo)
*/
@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 {
--blue: #5993fd;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Creative Demo)
/*
File: Custom Bootstrap Css File - Dark (Creative Demo)
*/
@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 {
--blue: #3b82da;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,10 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Creative Demo)
/*
File: Custom Bootstrap Css File (Creative Demo)
*/
@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 {
--blue: #3b82da;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,7 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
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)
*/
/*
File: Custom Bootstrap Css File - Dark (Default Demo)
*/
:root {
--blue: #3bafda;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,7 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
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)
*/
/*
File: Custom Bootstrap Css File - Dark (Material Design Demo)
*/
:root {
--blue: #0056c1;
--indigo: #675aa9;

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,7 @@
@charset "UTF-8";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File (Material Design Demo)
/*
File: Custom Bootstrap Css File (Material Design Demo)
*/
/*!
* 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";
/*
Template Name: Minton - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 5.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Custom Bootstrap Css File - Dark (Modern Demo)
/*
File: Custom Bootstrap Css File - Dark (Modern Demo)
*/
@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