Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
2e5a8c558e
@ -54,6 +54,8 @@ $routes->group("/client", ["filter" => "authMVC"], function($routes){
|
||||
$routes->post("create", "ClientController::createClientPolicy");
|
||||
$routes->post("edit", "ClientController::editClientPolicy");
|
||||
$routes->get("list/(:any)", "ClientController::getClientPolicyById/$1");
|
||||
$routes->post("jsonPost", "ClientController::jsonPost");
|
||||
$routes->get("getjson", "ClientController::getjson");
|
||||
});
|
||||
$routes->group("kyc", ["filter" => "authMVC"], function($routes){
|
||||
$routes->post("create", "ClientController::createClientKYCInfo");
|
||||
@ -71,8 +73,8 @@ $routes->group("/client", ["filter" => "authMVC"], function($routes){
|
||||
$routes->group("/employee", ["filter" => "authMVC"], function($routes){
|
||||
$routes->get("list", "EmployeeController::list");
|
||||
$routes->get("search", "EmployeeController::search");
|
||||
$routes->get("bulk-event-uplod", "EmployeeController::employeesUplodWithEvents");
|
||||
$routes->post("bulk-event-uplod", "EmployeeController::employeesUplodWithEvents");
|
||||
$routes->get("upload", "EmployeeController::employeesUplodWithEvents");
|
||||
$routes->post("upload", "EmployeeController::employeesUplodWithEvents");
|
||||
});
|
||||
|
||||
|
||||
@ -150,9 +152,10 @@ $routes->group("/master", ["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->get("kyc-other-docs-delete/(:any)", "ClientController::deleteClientKycOtherDocs/$1");
|
||||
$routes->get("clients-with-policies", "EmployeeController::getClientWithPolicies");
|
||||
$routes->get("police-by-insurer/(:any)", "ClientController::getPolicesByInsurerId/$1");
|
||||
$routes->get("get-file-error/(:any)", "EmployeeController::getUploadedFileError/$1");
|
||||
$routes->get("kyc-other-docs-delete/(:any)", "ClientController::deleteClientKycOtherDocs/$1");
|
||||
$routes->get("policy-premium", "ClientController::getpolicyGridData/$1");
|
||||
});
|
||||
|
||||
|
||||
@ -27,7 +27,6 @@ use App\Models\PolicyGridModel;
|
||||
use App\Models\PolicyPremium1Model;
|
||||
use App\Models\PolicyPremium2Model;
|
||||
|
||||
|
||||
class ClientController extends AdminController
|
||||
{
|
||||
use ResponseTrait;
|
||||
@ -51,7 +50,6 @@ class ClientController extends AdminController
|
||||
protected $policyGridModel;
|
||||
protected $policyPremium1Model;
|
||||
protected $policyPremium2Model;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@ -75,7 +73,8 @@ class ClientController extends AdminController
|
||||
$this->stateModel = new StateModel();
|
||||
$this->policyGridModel = new PolicyGridModel();
|
||||
$this->policyPremium1Model = new PolicyPremium1Model();
|
||||
$this->policyPremium2Model = new PolicyPremium2Model();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
@ -643,6 +642,9 @@ class ClientController extends AdminController
|
||||
$policy_id = $this->request->getGet('policy_id');
|
||||
$client_id = $this->request->getGet('client_id');
|
||||
|
||||
echo $policy_id;
|
||||
echo $client_id;
|
||||
|
||||
$data = $this->policesModel->getPolicyPremium($policy_id);
|
||||
$pattern = '/gmc/i';
|
||||
$subject = $data[0]->policy_type;
|
||||
@ -669,4 +671,120 @@ class ClientController extends AdminController
|
||||
|
||||
}
|
||||
|
||||
public function jsonPost()
|
||||
{
|
||||
|
||||
try {
|
||||
$this->myLogger->logme('error','JSon CREATE function called');
|
||||
// print_r($this->request->getPost());
|
||||
$client_id = $this->request->getPost("client_id");
|
||||
$policy_id = $this->request->getPost("policy_id");
|
||||
$data['sumInsured'] =$this->request->getPost("sumInsured");
|
||||
$data['family_floater'] =$this->request->getPost("family_floater");
|
||||
// print_r($data['familyfloater']);
|
||||
if (!$data['family_floater'] || $data['family_floater'] == 0) {
|
||||
$data['corporatebuffer'] = "";
|
||||
$data['family_floaters'] = "";
|
||||
}else{
|
||||
$data['corporatebuffer'] = $this->request->getPost("corporatebuffer");
|
||||
$data['family_floaters'] = $this->request->getPost("family_floaters") ?? [];
|
||||
}
|
||||
|
||||
$data['waiverofpreexistingdiseases'] =$this->request->getPost("waiverofpreexistingdiseases");
|
||||
if ($data['waiverofpreexistingdiseases'] == 1) {
|
||||
$data['maternitycoverage'] =$this->request->getPost("maternitycoverage");
|
||||
$data['twindelivery'] =$this->request->getPost("twindelivery");
|
||||
$data['preandpostnatal'] =$this->request->getPost("preandpostnatal");
|
||||
$data['babyday1cover'] =$this->request->getPost("babyday1cover");
|
||||
}else{
|
||||
$data['maternitycoverage'] ="";
|
||||
$data['twindelivery'] ="";
|
||||
$data['preandpostnatal'] ="";
|
||||
$data['babyday1cover'] ="";
|
||||
}
|
||||
$data['9monthwaitingperiodwaived'] =$this->request->getPost("9monthwaitingperiodwaived");
|
||||
$data['coverfromthedateofjoining'] =$this->request->getPost("coverfromthedateofjoining");
|
||||
$data['waiverof1,2,3&4thyearexclusions'] =$this->request->getPost("waiverof1,2,3&4thyearexclusions");
|
||||
$data['waiverof30dayswaitingperiod'] =$this->request->getPost("waiverof30dayswaitingperiod");
|
||||
$data['prehospitalizationcover'] =$this->request->getPost("prehospitalizationcover");
|
||||
$data['congenitaldiseasesinternal'] =$this->request->getPost("congenitaldiseasesinternal");
|
||||
$data['copayzonewisecopay'] =$this->request->getPost("copayzonewisecopay");
|
||||
$data['bioabsorbablestenttoriclensmultifocallens'] =$this->request->getPost("bioabsorbablestenttoriclensmultifocallens");
|
||||
$data['roomrentlimit'] =$this->request->getPost("roomrentlimit");
|
||||
$data['proportionatedeductionclause'] =$this->request->getPost("proportionatedeductionclause");
|
||||
$data['nursingallowance'] =$this->request->getPost("nursingallowance");
|
||||
$data['ailmentcapping'] =$this->request->getPost("ailmentcapping");
|
||||
$data['ambulancecharges'] =$this->request->getPost("ambulancecharges");
|
||||
$data['airambulance'] =$this->request->getPost("airambulance");
|
||||
$data['familytransportationbenefit'] =$this->request->getPost("familytransportationbenefit");
|
||||
$data['reasonableandcustomarycharges'] =$this->request->getPost("reasonableandcustomarycharges");
|
||||
$data['ayudhtreatmentcover'] =$this->request->getPost("ayudhtreatmentcover");
|
||||
$data['armdcovered'] =$this->request->getPost("armdcovered");
|
||||
$data['suminsuredenhancement'] =$this->request->getPost("suminsuredenhancement");
|
||||
$data['automaticsuminsuredreinstatement'] =$this->request->getPost("automaticsuminsuredreinstatement");
|
||||
$data['additionalsicknessbenefit'] =$this->request->getPost("additionalsicknessbenefit");
|
||||
$data['lasiksurgery'] =$this->request->getPost("lasiksurgery");
|
||||
$data['midterminclusion'] =$this->request->getPost("midterminclusion");
|
||||
$data['capd'] =$this->request->getPost("capd");
|
||||
$data['organdonorexpenses'] =$this->request->getPost("organdonorexpenses");
|
||||
$data['moderntreatmentsasperirdai'] =$this->request->getPost("moderntreatmentsasperirdai");
|
||||
$data['Wellness'] =$this->request->getPost("Wellness");
|
||||
$data['days_of_discharge'] =$this->request->getPost("days_of_discharge");
|
||||
$data['days_from_dod'] =$this->request->getPost("days_from_dod");
|
||||
$data['specialConditionLabel'] = $this->request->getPost("specialConditionLabel") ?? [];
|
||||
$data['specialConditionInput'] = $this->request->getPost("specialConditionInput") ?? [];
|
||||
|
||||
// print_r($data);
|
||||
|
||||
// print_r($this->request->getPost());
|
||||
// die();
|
||||
|
||||
$jsonData = json_encode($data);
|
||||
$dataa = array(
|
||||
'json' => $jsonData,
|
||||
'client_id' => $client_id,
|
||||
'policy_id' => $policy_id
|
||||
);
|
||||
$record = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
|
||||
if ($record) {
|
||||
$update = $this->clientPolicyModel->update($record['id'], $dataa);
|
||||
if ($update) {
|
||||
echo json_encode(array('message' => 'Data updated successfully'));
|
||||
} else {
|
||||
echo json_encode(array('message' => 'Failed to update data'));
|
||||
}
|
||||
}else{
|
||||
$insert = $this->clientPolicyModel->insert($dataa);
|
||||
if ($insert) {
|
||||
echo json_encode(array('message' => 'Data stored successfully'));
|
||||
} else {
|
||||
echo json_encode(array('message' => 'Failed to store data'));
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
// Handle the exception
|
||||
echo "Failed to insert data: " . $e->getMessage();
|
||||
// Log the error
|
||||
log_message('error', 'Failed to insert data: ' . $e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getjson()
|
||||
{
|
||||
$client_id = $this->request->getVar('client_id');
|
||||
$policy_id = $this->request->getVar('policy_id');
|
||||
$record = $this->clientPolicyModel->where(['client_id' => $client_id, 'policy_id' => $policy_id])->first();
|
||||
|
||||
if ($record) {
|
||||
echo $record['json'];
|
||||
|
||||
} else {
|
||||
echo "Record not found.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -15,6 +15,9 @@ use App\Models\FileModel;
|
||||
|
||||
use App\Controllers\Jobs ;
|
||||
use App\Controllers\JobWorker ;
|
||||
use App\Controllers\Jobs\SubJob;
|
||||
use App\Controllers\EmployeeServiceController;
|
||||
|
||||
|
||||
use CodeIgniter\API\ResponseTrait;
|
||||
|
||||
@ -69,6 +72,27 @@ class EmployeeController extends AdminController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getUploadedFileError()
|
||||
{
|
||||
$file_id = $this->request->uri->getSegment(3);
|
||||
// dd($segments[2]);
|
||||
// die();
|
||||
// $file_id = $this->request->getGet();
|
||||
// echo $file_id;die();
|
||||
$file = $this->fileModel->find($file_id);
|
||||
// print_r($result);die();
|
||||
if(!isset($file))
|
||||
{
|
||||
return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'no data found'], 200);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return $this->respond(['dataStatus' => true,'code' => 200,'data' => $file['reason']], 200);
|
||||
}
|
||||
}
|
||||
|
||||
//handles employee & dependent bulk upload with events like inception,addition,deletion, correction and SI enhancements
|
||||
public function employeesUplodWithEvents()
|
||||
{
|
||||
@ -85,13 +109,25 @@ class EmployeeController extends AdminController
|
||||
// print_r($this->request->getPost('policies'));
|
||||
// print_r($this->request->getPost('upload-action-type'));
|
||||
// die();
|
||||
// $empServiceController = new EmployeeServiceController();
|
||||
// $res = $empServiceController->fileFormatValidationController('12');
|
||||
// // dd($res);
|
||||
|
||||
// if(isset($res) && count($res))
|
||||
// {
|
||||
// $failure_reason = json_encode((json_encode($res)));
|
||||
// $this->fileModel->where('id', '12')->set(['status' => 'failed','reason' => $failure_reason])->update();
|
||||
// dd($failure_reason);
|
||||
// }
|
||||
|
||||
if($this->request->getMethod() == 'post')
|
||||
{
|
||||
//validate uploaded file
|
||||
$filename = '';
|
||||
$validated = $this->validate([
|
||||
'emplist' => [
|
||||
'uploaded[emplist]',
|
||||
'mime_in[emplist,application/vnd.ms-excel,application/vnd,application/pdf]',
|
||||
'mime_in[emplist,application/vnd.ms-excel,application/vnd,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet]',
|
||||
'max_size[emplist,8192]',
|
||||
],
|
||||
]);
|
||||
@ -116,13 +152,16 @@ class EmployeeController extends AdminController
|
||||
$status = 'inprogress';
|
||||
|
||||
$file_id = $this->fileModel->insert(['file_name' => $filename,'client_id' => $client_id,'policy_id' => $policy_id,'created_by' => $loggedInUserID,'status' => $status,'action' => $action]);
|
||||
//die();
|
||||
$this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]);
|
||||
|
||||
//start validation process
|
||||
|
||||
//en dof validation process
|
||||
return $this->respond(['dataStatus' => true,'code' => 200,'data' => 'file upload success'], 200);
|
||||
|
||||
}
|
||||
|
||||
$data['actions'] = ['inception' => 'Inception','addition' => 'Addition','deletion' => 'Deletion','si_enhancement' =>'SI Enhancement'];
|
||||
$data['actions'] = ['inception' => 'Inception','addition' => 'Addition','deletion' => 'Deletion','correction' =>'Correction','si_enhancement' =>'SI Enhancement'];
|
||||
$data['fileList'] = $this->fileModel
|
||||
->select(['files.*','up.emp_code','up.first_name'])
|
||||
->join('user_profiles up','files.created_by = up.id')
|
||||
|
||||
188
app/Controllers/EmployeeServiceController.php
Normal file
188
app/Controllers/EmployeeServiceController.php
Normal file
@ -0,0 +1,188 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
||||
use App\Models\EmployeeModel;
|
||||
use App\Models\EmployeePolicyModel;
|
||||
use App\Models\ClientModel;
|
||||
use App\Models\FileModel;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
|
||||
class EmployeeServiceController extends AdminController
|
||||
{
|
||||
|
||||
protected $myLogger;
|
||||
protected $employeeModel;
|
||||
protected $employeePolicyModel;
|
||||
protected $clientModel;
|
||||
protected $fileModel;
|
||||
protected $general_relationships = ['self' => ['name' => 'Self', 'sex' => 'M','age_min' => 18,'age_max' => null], 'spouse' => ['name' => 'Spouse', 'sex' => 'F','age_min' => 18,'age_max' => null], 'son' => ['name' => 'Son', 'sex' => 'M','age_min' => null,'age_max' => 25], 'daughter' => ['name' => 'Daughter', 'sex' => 'F','age_min' => null,'age_max' => 25], 'father' => ['name' => 'Father', 'sex' => 'M','age_min' => 18,'age_max' => null], 'mother' => ['name' => 'Mother', 'sex' => 'F','age_min' => 18,'age_max' => null], 'father-in-law' => ['name' => 'Father in Law', 'sex' => 'M','age_min' => 18,'age_max' => null], 'mother-in-law' => ['name' => 'Mother in Law', 'sex' => 'F','age_min' => 18,'age_max' => null]];
|
||||
|
||||
protected $inception_excel_columns = ['sno' => ['col_idx' => 0,'col_cell_name' => 'A','col_name' => 'S.No','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => null],'emp_id' => ['col_idx' => 1,'col_cell_name' => 'B','col_name' => 'EMP ID','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => null],'name_of_emp_dep' => ['col_idx' => 2,'col_cell_name' => 'C','col_name' => 'NAME OF EMP/DEP','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => null],'dob' => ['col_idx' => 3,'col_cell_name' => 'D','col_name' => 'DOB','is_mandatory' => true,'data_type' => 'str','format' => 'd-M-Y','allowed_values' => null,'custom' => 'check_dob_diff','params' => ['row','relationship']],'sex' => ['col_idx' => 4,'col_cell_name' => 'E','col_name' => 'SEX','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => ['M','F']],'relationship' => ['col_idx' => 5,'col_cell_name' => 'F','col_name' => 'RELATIONSHIP','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => null,'custom' => 'check_relationship','params' => ['row','relationship']],'basic_cover_si' => ['col_idx' => 6,'col_cell_name' => 'G','col_name' => 'BASIC COVER SI','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => null],'doj' => ['col_idx' => 7,'col_cell_name' => 'H','col_name' => 'DOJ','is_mandatory' => 'custom','data_type' => 'str','format' => 'd-M-Y','allowed_values' => null,'custom' => 'check_doj','params' => ['row']],'basic_pay' => ['col_idx' => 8,'col_cell_name' => 'I','col_name' => 'Basic Pay','is_mandatory' => 'custom','data_type' => 'str','format' => null,'allowed_values' => null,'custom' => 'check_basic_pay','params' => ['row']],'band_grade' => ['col_idx' => 9,'col_cell_name' => 'J','col_name' => 'Band/Grade','is_mandatory' => 'custom','data_type' => 'str','format' => null,'allowed_values' => null,'custom' => 'check_employee_band','params' => ['row']],'designation' => ['col_idx' => 10,'col_cell_name' => 'K','col_name' => 'Designation','is_mandatory' => false,'data_type' => 'str','format' => null,'allowed_values' => null],'phone' => ['col_idx' => 11,'col_cell_name' => 'L','col_name' => 'Phone','is_mandatory' => false,'data_type' => 'str','format' => null,'allowed_values' => null],'email' => ['col_idx' => 12,'col_cell_name' => 'M','col_name' => 'Email','is_mandatory' => false,'data_type' => 'str','format' => null,'allowed_values' => null],'pre_existing_ailments' => ['col_idx' => 13,'col_cell_name' => 'N','col_name' => 'PRE EXISTING AILMENTS','is_mandatory' => true,'data_type' => 'str','format' => null,'allowed_values' => ['0','1']]];
|
||||
public function __construct()
|
||||
{
|
||||
// helper('utility');
|
||||
set_session_context('EmployeeService');
|
||||
$this->myLogger = \Config\Services::mylogger();
|
||||
$this->employeeModel = new EmployeeModel();
|
||||
$this->employeePolicyModel = new EmployeePolicyModel();
|
||||
$this->clientModel = new ClientModel();
|
||||
$this->fileModel = new FileModel();
|
||||
}
|
||||
|
||||
public function fileFormatValidationController($file_id)
|
||||
{
|
||||
helper('excel_util_helper');
|
||||
//get file name
|
||||
// check_dob_diff('4-APr-1990');die();
|
||||
$file = $this->fileModel->find($file_id);
|
||||
// dd($file);
|
||||
$return = [];
|
||||
if(!isset($file))
|
||||
{
|
||||
//file not found in DB
|
||||
return array('status' => false, 'msg' => 'file not found in DB');
|
||||
}
|
||||
$file_name_with_path = WRITEPATH."/uploads/excel/".$file['file_name'];
|
||||
|
||||
//check physical file
|
||||
if(!file_exists($file_name_with_path))
|
||||
{
|
||||
//file not found update status and reason
|
||||
$this->fileModel->where('id', $file_id)->set(['status' => 'failed','reason' => 'file not found'])->update();
|
||||
return array('status' => false, 'msg' => 'file not found');
|
||||
}
|
||||
|
||||
//start validation process
|
||||
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
$highestRowAndColumn = $sheet->getHighestRowAndColumn();
|
||||
// $highestRow = $sheet->getHighestDataRow(); // 1048576, should be 2
|
||||
// $highestColumn = $sheet->getHighestDataColumn(); // L, should be B
|
||||
// print_r($highestRowAndColumn);
|
||||
// echo $highestRow;echo ' - ' . $highestColumn;
|
||||
$excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
|
||||
// $data = array_filter($data);
|
||||
// echo '<pre>';
|
||||
// dd($excel_data);
|
||||
// echo "</pre>";die();
|
||||
// foreach ($excel_data as $key => $value)
|
||||
// {
|
||||
|
||||
// }
|
||||
|
||||
|
||||
$columns_to_check = [];
|
||||
if($file['action'] == 'inception'){ $columns_to_check = $this->inception_excel_columns; }
|
||||
|
||||
//check no of columns in excel
|
||||
$total_defined_columns = count($columns_to_check);
|
||||
$excel_columns = ($excel_data[0]);
|
||||
// var_dump($excel_columns);die();
|
||||
$excel_columns_count = count($excel_columns);
|
||||
if($total_defined_columns != $excel_columns_count)
|
||||
{
|
||||
//columns count mismatch
|
||||
$message = "columns count mismatch. Expected - $total_defined_columns and received - $excel_columns";
|
||||
echo $message;
|
||||
$this->myLogger->logme('error',($message . ' for file id ' . $file_id));
|
||||
//$model->where('id', $file_id)->set(['status' => 'failed','reason' => $message])->update();
|
||||
return array('status' => false, 'msg' => $message);
|
||||
}
|
||||
|
||||
|
||||
//check columns order in excel
|
||||
$column_count_res = check_columns_count($columns_to_check,$excel_columns);
|
||||
|
||||
if(isset($column_count_res) && count($column_count_res))
|
||||
{
|
||||
//columns count mismatch
|
||||
$message = implode("\n", $column_count_res);
|
||||
echo $message;
|
||||
$this->myLogger->logme('error',($message . ' for file id ' . $file_id));
|
||||
// $model->where('id', $file_id)->set(['status' => 'failed','reason' => $message])->update();
|
||||
return array('status' => false, 'msg' => $message);
|
||||
}
|
||||
|
||||
//start other checks
|
||||
$result = [];
|
||||
$keys = array_keys($this->inception_excel_columns);
|
||||
// print_r($keys);die();
|
||||
|
||||
//remove header
|
||||
unset($excel_data[0]);
|
||||
$relationship = $this->general_relationships;
|
||||
foreach ($excel_data as $row_key => $row)
|
||||
{
|
||||
|
||||
//1. avoid empty rows
|
||||
if(check_row_is_empty_or_null($row))
|
||||
{
|
||||
break;
|
||||
}
|
||||
//iterate each row
|
||||
foreach ($row as $col_key => $col)
|
||||
{
|
||||
//mandatory check
|
||||
if(isset($this->inception_excel_columns[$keys[$col_key]]['custom']))
|
||||
{
|
||||
$custom_function = $this->inception_excel_columns[$keys[$col_key]]['custom'];
|
||||
// echo $custom_function;
|
||||
|
||||
$binding_params = $this->inception_excel_columns[$keys[$col_key]]['params'];
|
||||
|
||||
//convert string params into PHP variables
|
||||
// Create an array of variables to pass custom helper funcitons
|
||||
$param_values = [];
|
||||
foreach($binding_params as $bkey => $bparam) { $param_values[] = ($$bparam); }
|
||||
// dd(($param_values));//die();
|
||||
$res = call_user_func_array($custom_function,$param_values);
|
||||
// print_r($res['status']);die();
|
||||
if($res['status'] === false) { $result[$row_key][$keys[$col_key]][] = $res['error']; }
|
||||
|
||||
}
|
||||
|
||||
if($this->inception_excel_columns[$keys[$col_key]]['is_mandatory'] === true)
|
||||
{
|
||||
if($col == "" || $col == NULL) { $result[$row_key][$keys[$col_key]][] = 'value is mandatory'; }
|
||||
}
|
||||
|
||||
//format check
|
||||
if(isset($this->inception_excel_columns[$keys[$col_key]]['format']))
|
||||
{
|
||||
$format_error = check_excel_date_format($col,$this->inception_excel_columns[$keys[$col_key]]['format']);
|
||||
if(!$format_error['status'])
|
||||
{
|
||||
$result[$row_key][$keys[$col_key]][] = $format_error['error'];
|
||||
}
|
||||
}
|
||||
|
||||
//allowed values check
|
||||
if(isset($this->inception_excel_columns[$keys[$col_key]]['allowed_values']) && is_array($this->inception_excel_columns[$keys[$col_key]]['allowed_values']))
|
||||
{
|
||||
$allowed_values = $this->inception_excel_columns[$keys[$col_key]]['allowed_values'];
|
||||
if(!in_array($col,$allowed_values))
|
||||
{
|
||||
$result[$row_key][$keys[$col_key]][] = "Value not allowed: Expected ".implode(",",$allowed_values)." and received $col";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
159
app/Helpers/excel_util_helper.php
Normal file
159
app/Helpers/excel_util_helper.php
Normal file
@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
if (!function_exists('check_columns_count')) {
|
||||
function check_columns_count($definedColumns,$excelColumns)
|
||||
{
|
||||
$mismatchedColumns = [];
|
||||
|
||||
foreach ($definedColumns as $colName => $definedCol) {
|
||||
$definedColIdx = $definedCol['col_idx'];
|
||||
$definedColName = $definedCol['col_name'];
|
||||
|
||||
if ($excelColumns[$definedColIdx] !== $definedColName) {
|
||||
$mismatchedColumns[] = "Column order conflict. Column order no ".($definedColIdx + 1)." expected : ".$definedColName." and received : ".$excelColumns[$definedColIdx];
|
||||
}
|
||||
}
|
||||
|
||||
return $mismatchedColumns;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!function_exists('check_row_is_empty_or_null')) {
|
||||
|
||||
function check_row_is_empty_or_null($arr) {
|
||||
unset($arr[0]);// unset SNO in the array, becoz we need to check only datapoints are empty not SNo, it may added by accidentally
|
||||
foreach ($arr as $item) {
|
||||
if ($item !== null && !empty($item)) {
|
||||
return false; // If any item is not empty or not null, return false
|
||||
}
|
||||
}
|
||||
return true; // If all items are empty or null, return true
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('check_excel_date_format')) {
|
||||
|
||||
function check_excel_date_format($dateString,$format)
|
||||
{
|
||||
|
||||
if($dateString == ""){ return array('status' => true); }
|
||||
$date = DateTime::createFromFormat('d-M-Y', $dateString);
|
||||
|
||||
if ($date !== false && !is_array($date::getLastErrors())) {
|
||||
return array('status' => true);
|
||||
} else {
|
||||
return array('status' => false,'error' => "wrong date format: Expected 'd-M-Y' and received $dateString");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!function_exists('check_relationship'))
|
||||
{
|
||||
function check_relationship($row,$relationship)
|
||||
{
|
||||
// print_r($col);print_r($relationship);
|
||||
// echo '<br>';
|
||||
if($row[5] != null && $row[4] != null)
|
||||
{
|
||||
$slug = \Config\Services::slug();
|
||||
$col = $slug->slugify($row[5]);
|
||||
// echo $col;die();
|
||||
if($col != 'self' && $col != 'spouse')
|
||||
{
|
||||
if($relationship[ $col ]['sex'] != $row[4])
|
||||
{
|
||||
$error = "Gender relationship conflict: Expected ".$relationship[ $col ]['sex'].", received $row[4]";
|
||||
return array('status' => false,'error' => $error);
|
||||
}
|
||||
|
||||
}
|
||||
return array('status' => true);
|
||||
}
|
||||
else
|
||||
{
|
||||
return array('status' => false,'error' => 'Rule Conflict: Both Relationship or Gender required');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!function_exists('check_doj'))
|
||||
{
|
||||
function check_doj($row)
|
||||
{
|
||||
$slug = \Config\Services::slug();
|
||||
$relationship = $slug->slugify($row[5]);
|
||||
// echo $relationship;echo $row[7];
|
||||
if($relationship == 'self' && $row[7] == "") { return array('status' => false,'error' => "DOJ mandantory for self"); }
|
||||
return array('status' => true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!function_exists('check_employee_band'))
|
||||
{
|
||||
function check_employee_band($row)
|
||||
{
|
||||
$slug = \Config\Services::slug();
|
||||
$relationship = $slug->slugify($row[5]);
|
||||
// echo $relationship;echo $row[7];
|
||||
if($relationship == 'self' && $row[9] == "") { return array('status' => false,'error' => "Band mandantory for self"); }
|
||||
return array('status' => true);
|
||||
}
|
||||
}
|
||||
|
||||
if(!function_exists('check_basic_pay'))
|
||||
{
|
||||
function check_basic_pay($row)
|
||||
{
|
||||
$slug = \Config\Services::slug();
|
||||
$relationship = $slug->slugify($row[5]);
|
||||
// echo $relationship;echo $row[7];
|
||||
if($relationship == 'self' && $row[8] == "") { return array('status' => false,'error' => "Basic pay mandantory for self"); }
|
||||
return array('status' => true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!function_exists('check_dob_diff'))
|
||||
{
|
||||
function check_dob_diff($row,$relationships) {
|
||||
// echo 'called';
|
||||
if($row[3] != null && $row[5] != null)
|
||||
{
|
||||
$dob = change_date_format($row[3],'d-M-Y','Y-m-d');
|
||||
// echo $row[3].' - '.$dob;echo '<br>';
|
||||
$currentDateTime = new DateTime();//die();
|
||||
$passedDateTime = new DateTime($dob);
|
||||
$interval = $currentDateTime->diff($passedDateTime);
|
||||
|
||||
$slug = \Config\Services::slug();
|
||||
$relationship = $slug->slugify($row[5]);
|
||||
$age_min = $relationships[$relationship]['age_min'];
|
||||
$age_max = $relationships[$relationship]['age_max'];
|
||||
// echo $relationship.','.$age_min.'-'.$age_max;
|
||||
if($age_min !== null && $age_min > $interval->y)
|
||||
{
|
||||
return array('status' => false,'error' => "Age conflict : minimum $age_min yrs allowed, received $interval->y");
|
||||
}
|
||||
if($age_max !== null && $age_max < $interval->y)
|
||||
{
|
||||
return array('status' => false,'error' => "Age conflict : maximum $age_max yrs allowed, received $interval->y");
|
||||
}
|
||||
return array('status' => true);
|
||||
}
|
||||
else
|
||||
{
|
||||
return array('status' => false,'error' => 'Rule Conflict: Both DOB or Relationship required');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -35,6 +35,7 @@ class ClientPolicyModel extends Model
|
||||
"earned_premium_amount",
|
||||
"claims_incurred_amount",
|
||||
|
||||
"json",
|
||||
"created_by",
|
||||
"updated_by",
|
||||
"Is_active",
|
||||
|
||||
@ -21,5 +21,4 @@ class FileModel extends Model
|
||||
];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php include('policy_grid.php'); ?>
|
||||
<?php include('policy_gmc_terms.php'); ?>
|
||||
|
||||
<div class="tab-pane fade" id="police-tab">
|
||||
|
||||
@ -181,6 +182,7 @@ $(document).ready(function () {
|
||||
<td>
|
||||
<a data-id="${item.id}" class="btnPolicyEdit mdi mdi-lead-pencil" href="#" style="font-size:18px;"></a>
|
||||
<a data-id="${item.policy_id}" class="btnPolicyModel mdi mdi-book-open" href="#" data-toggle="modal" data-target="#bs-example-modal-lg" style="font-size:18px;"></a>
|
||||
<a data-id="${item.policy_id}" class="btnPolicyMaster mdi mdi-wrench" href="#" data-toggle="modal" data-target="#bs-example-modal-sm" style="font-size:18px; margin-left: 7px;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
`;
|
||||
|
||||
@ -10,14 +10,14 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<!-- <div class="text-center"> -->
|
||||
<form id="emp-upload-form" action="<?php echo base_url().'employee/bulk-event-uplod'?>" method="post">
|
||||
<form id="emp-upload-form" action="<?php echo base_url().'employee/upload'?>" method="post">
|
||||
<input type="hidden" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>" id="csrf_token">
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-xl-3">
|
||||
<div class="form-group mb-3">
|
||||
<label>Client</label> <br/>
|
||||
<select name="client_id" class="form-control" id="client_id">
|
||||
<option value="0">Select</option>
|
||||
<select name="client_id" class="form-control" id="client_id" required>
|
||||
<option value="">Select</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@ -25,7 +25,7 @@
|
||||
<div class="form-group mb-3">
|
||||
<label>Policy</label> <br/>
|
||||
<select name="policy_id" class="form-control" id="policy_id">
|
||||
<option value="0">Select</option>
|
||||
<option value="">Select</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@ -33,8 +33,8 @@
|
||||
<div class="col-md-4 col-xl-3">
|
||||
<div class="form-group mb-3">
|
||||
<label>Action</label> <br/>
|
||||
<select name="upload-action-type" class="form-control" id="upload-action-type">
|
||||
<option value="0">Select</option>
|
||||
<select name="upload-action-type" class="form-control" id="upload-action-type" required>
|
||||
<option value="">Select</option>
|
||||
<?php
|
||||
if(isset($actions) && count($actions))
|
||||
{
|
||||
@ -54,7 +54,7 @@
|
||||
<div class="col-md-4 col-xl-3">
|
||||
<div class="form-group mb-3">
|
||||
<label>Choose file</label> <br/>
|
||||
<input type="file" name="emplist" id="emplist">
|
||||
<input type="file" name="emplist" id="emplist" accept=" application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet" required>
|
||||
</div></div>
|
||||
|
||||
<div class="col-8" style="text-align: right;">
|
||||
@ -94,9 +94,7 @@
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<h5>Overflowing text to show scroll behavior</h5>
|
||||
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.modal-dialog -->
|
||||
@ -115,35 +113,45 @@
|
||||
//fetchClientPolicies();
|
||||
//for modal pop up
|
||||
$('#file-err-modal').on('show.bs.modal', function (event) {
|
||||
// console.log(event.relatedTarget);
|
||||
var myVal = $(event.relatedTarget).data('err');
|
||||
$(this).find(".modal-body").text(myVal);
|
||||
console.log(myVal);
|
||||
var model_data = fetchFileError(myVal);
|
||||
console.log('data received.');
|
||||
console.log(model_data);
|
||||
$(this).find(".modal-body").text(model_data);
|
||||
});
|
||||
|
||||
//for form submit
|
||||
$("#emp-upload-form").submit(function(event) {
|
||||
event.preventDefault(); // Prevent default form submission
|
||||
console.log('submit called');
|
||||
// Check required fields
|
||||
if (!$(this)[0].checkValidity()) {
|
||||
// Form is invalid, handle error or notify user
|
||||
console.log('failed');
|
||||
|
||||
var action_item = $('#upload-action-type').val();
|
||||
var policy_id = $('#policy_id').val();
|
||||
console.log('action_item - '+ action_item);
|
||||
if(action_item != 'correction' && policy_id == "")
|
||||
{
|
||||
// $('#policy_id').attr('required', true);
|
||||
// $('#policy_id').prop('title', 'plz choose policy');
|
||||
// $('#policy_id').mouseover();
|
||||
console.log('required');
|
||||
alert('please choose policy for this uploaing event ');
|
||||
return false;
|
||||
}
|
||||
console.log($(this));
|
||||
console.log($(this)[0]);
|
||||
else{
|
||||
|
||||
$('#policy_id').attr('required', false);
|
||||
console.log('not required');
|
||||
}
|
||||
|
||||
// Create FormData object
|
||||
var formData = new FormData($(this)[0]);
|
||||
for (var pair of formData.entries()) {
|
||||
console.log(pair[0]+ ', ' + pair[1]);
|
||||
}
|
||||
// var formData = $("#emp-upload-form").serialize();
|
||||
// var file = document.getElementById('emplist').files[0];
|
||||
// formData.append('file', file);
|
||||
console.log(pair[0]+ ', ' + pair[1]); }
|
||||
|
||||
console.log(formData);
|
||||
// return false;
|
||||
// AJAX request
|
||||
|
||||
$.ajax({
|
||||
url: $(this).attr("action"),
|
||||
type: "POST",
|
||||
@ -156,9 +164,21 @@
|
||||
},
|
||||
success: function(response) {
|
||||
// Request successful, handle response
|
||||
$('#policy_id').attr('required', false);
|
||||
console.log(response);
|
||||
alert('success');
|
||||
window.location.reload();
|
||||
if (response.code === 200 && response.dataStatus === true && response.data !== "") {
|
||||
alert('sucess');
|
||||
window.location.reload();
|
||||
} else if(response.code === 404 && response.dataStatus === false){
|
||||
console.error('no data found', response);
|
||||
alert(response.message);
|
||||
}
|
||||
else
|
||||
{
|
||||
console.error('Something went wrong!');
|
||||
alert('Something went wrong! Try later');
|
||||
}
|
||||
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
// Request failed, handle error
|
||||
@ -223,6 +243,68 @@
|
||||
}
|
||||
|
||||
|
||||
function fetchFileError(file_id) {
|
||||
$('#loader').show();
|
||||
var apiURL = '<?php echo base_url();?>' + 'util/get-file-error/' + file_id;
|
||||
console.log('fetchFileError');
|
||||
console.log(apiURL);
|
||||
$.ajax({
|
||||
url: apiURL,
|
||||
method: 'GET',
|
||||
headers: {
|
||||
"X-Requested-With": "XMLHttpRequest"
|
||||
},
|
||||
success: function(response) {
|
||||
// console.log(response.code);
|
||||
// console.log(response.dataStatus);
|
||||
// console.log(response.data);
|
||||
if (response.code === 200 && response.dataStatus === true && response.data !== "") {
|
||||
try {
|
||||
console.log(JSON.parse(JSON.parse(response.data)));
|
||||
var file_error_data = JSON.parse(JSON.parse(response.data));
|
||||
var file_error_html = "";
|
||||
|
||||
for (var rkey in file_error_data) {
|
||||
// console.log(rkey);
|
||||
var col = file_error_data[rkey]
|
||||
console.log(col);
|
||||
|
||||
for (var ckey in col)
|
||||
{
|
||||
console.log(ckey);
|
||||
console.log(col[ckey]);
|
||||
var err_arr = col[ckey];
|
||||
if(Array.isArray(err_arr)){
|
||||
err_arr.forEach( function (item, index) {file_error_html += "Row "+ rkey +", "+ ckey+ " -" + item + "<br>"; } );
|
||||
}
|
||||
|
||||
}
|
||||
file_error_html += '-----------------------------------------------------------------------<br/>';
|
||||
}
|
||||
console.log(file_error_html);
|
||||
$('#file-err-modal').find(".modal-body").html(file_error_html);
|
||||
return file_error_html;
|
||||
} catch (error)
|
||||
{
|
||||
console.error('Error parsing API response data:', error);
|
||||
}
|
||||
} else if(response.code === 404 && response.dataStatus === false){
|
||||
console.error('no data found', response);
|
||||
}
|
||||
else
|
||||
{
|
||||
console.error('Something went wrong!');
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Error fetching data from API:', error);
|
||||
}
|
||||
});
|
||||
|
||||
$('#loader').hide();
|
||||
}
|
||||
|
||||
|
||||
function appendClients(data) {
|
||||
$.each(data, function(index, item) {
|
||||
$('#client_id').append($('<option>', {
|
||||
@ -234,7 +316,7 @@
|
||||
|
||||
function appendPolicies(data) {
|
||||
$('#policy_id').empty();
|
||||
$('#policy_id').append($('<option>', { value: '0',text: 'Select'}));
|
||||
$('#policy_id').append($('<option>', { value: '',text: 'Select'}));
|
||||
|
||||
$.each(data, function(index, item) {
|
||||
$('#policy_id').append($('<option>', {
|
||||
|
||||
@ -21,15 +21,19 @@
|
||||
<?php
|
||||
if(isset($fileList))
|
||||
{
|
||||
foreach ($fileList as $key => $file) { ?>
|
||||
|
||||
foreach ($fileList as $key => $file) { //print_r((json_decode($file['reason'])));
|
||||
// $reason = json_decode(($file['reason']));
|
||||
// $reason = "{'date':'value data kbckl kcn/aksl'}";
|
||||
// echo $reason;
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><b><?php echo ($key + 1)?></b></td>
|
||||
<td><?php echo $file['file_name']?></td>
|
||||
<td><?php echo fancy_date_time_format($file['created_at']).' by <strong>'.$file['first_name'].'</strong>'?></td>
|
||||
<td><?php echo $file['status']; if($file['status'] == 'failed')
|
||||
{
|
||||
echo '<span class="col-xl-3 col-lg-4 col-sm-6"> <i class="fe-alert-circle" data-toggle="modal" data-target="#file-err-modal" data-err="'.$file['reason'].'"></i></span>';
|
||||
echo "<span class='col-xl-3 col-lg-4 col-sm-6'> <i class='fe-alert-circle' data-toggle='modal' data-target='#file-err-modal' data-err=".$file['id']."></i></span>";
|
||||
}?></td>
|
||||
</tr>
|
||||
<?php }}?>
|
||||
|
||||
@ -489,9 +489,17 @@
|
||||
<!-- bootstrap datepicker -->
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/js/bootstrap-datepicker.min.js"></script> -->
|
||||
|
||||
<script src="<?= base_url()."public"; ?>/assets/js/pages/jquery.xeditable.js"></script>
|
||||
<script src="<?= base_url()."public"; ?>/assets/js/form-xeditable.init.js"></script>
|
||||
<script src="<?= base_url()."public"; ?>/assets/js/bootstrap-editable.min.js"></script>
|
||||
|
||||
<!-- Jodit Js -->
|
||||
<script src="<?= base_url()."public"; ?>/assets/js/jodit.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
toastr.options = {
|
||||
"timeOut": 2000,
|
||||
"closeButton": true,
|
||||
@ -499,5 +507,6 @@ toastr.options = {
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -31,8 +31,22 @@
|
||||
|
||||
<!-- icons -->
|
||||
<link href="<?= base_url()."public"; ?>/assets/css/icons.min.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
|
||||
<!-- <link href="<?= base_url()."public"; ?>/assets/css/bootstrap-material.min.css" rel="stylesheet" type="text/css" id="bs-default-stylesheet" /> -->
|
||||
<!-- <link href="<?= base_url()."public"; ?>/assets/css/app-material.min.css" rel="stylesheet" type="text/css" id="app-default-stylesheet" /> -->
|
||||
|
||||
|
||||
<!-- <link href="<?= base_url()."public"; ?>/assets/css/bootstrap-editable.css" rel="stylesheet" type="text/css" /> -->
|
||||
|
||||
<!-- Jodit Css -->
|
||||
<link href="<?= base_url()."public"; ?>/assets/css/jodit.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- JQuery CDN -->
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
|
||||
@ -197,10 +211,11 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body class="loading" data-layout-mode="" data-layout='{"mode": "light", "width": "fluid", "menuPosition": "fixed", "sidebar": { "color": "light", "size": "condensed", "showuser": false}, "topbar": {"color": "dark"}, "showRightSidebarOnPageLoad": false}'></body>
|
||||
<body class="loading" data-layout-mode="" data-layout='{"mode": "light", "width": "fluid", "menuPosition": "fixed", "sidebar": { "color": "light", "size": "condensed", "showuser": false}, "topbar": {"color": "dark"}, "showRightSidebarOnPageLoad": false}' ></body>
|
||||
|
||||
<!-- Preloader -->
|
||||
<div class="loader-mask">
|
||||
@ -525,7 +540,7 @@
|
||||
<a href="<?= base_url('/employee/list')?>">List</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?= base_url('/employee/bulk-event-uplod')?>">Upload</a>
|
||||
<a href="<?= base_url('/employee/upload')?>">Upload</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
954
app/Views/policy_gmc_terms.php
Normal file
954
app/Views/policy_gmc_terms.php
Normal file
@ -0,0 +1,954 @@
|
||||
<!-- Modal content for the Large example -->
|
||||
<style>
|
||||
.button-like {
|
||||
display: inline-block;
|
||||
padding: 8px 15px;
|
||||
background-color: #02a8b5;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
margin-right: -85px;
|
||||
}
|
||||
.radiobuttondiv{
|
||||
margin-left: 32px;
|
||||
}
|
||||
.form-control-client-policy-master{
|
||||
width:62% !important;
|
||||
margin-left: 30px;
|
||||
margin-top: 3px
|
||||
}
|
||||
/* .form-group.col-md-6 */
|
||||
.form-group-client-policy-master{
|
||||
display:-webkit-box;
|
||||
max-width: 100% !important;
|
||||
/* border:1px solid; */
|
||||
/* background-color: #0001; */
|
||||
}
|
||||
.form-group-client-policy-masters{
|
||||
display:-webkit-box;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
.flex-container {
|
||||
display: block;
|
||||
/* flex-wrap: wrap; */
|
||||
/* align-items: center; Align items vertically center */
|
||||
}
|
||||
|
||||
.flex-container > div {
|
||||
flex: 1; /* Each div takes equal space */
|
||||
}
|
||||
label{
|
||||
padding-top: 7px;
|
||||
width: 400px;
|
||||
/* background-color: #0001; */
|
||||
height: 36px;
|
||||
/* text-align: center; */
|
||||
}
|
||||
.jodit-status-bar{
|
||||
display:none;
|
||||
}
|
||||
.jodit-container{
|
||||
width: 690px !important;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
margin-left: 30px;
|
||||
/* height: 0px !important; */
|
||||
/* min-height: 100px !important; */
|
||||
}
|
||||
.input-group {
|
||||
width: 64.5% !important;
|
||||
}
|
||||
.input-group-append-client-policy-master{
|
||||
margin-top: 3px;
|
||||
}
|
||||
.jodit-wysiwyg{
|
||||
margin-bottom: 162px;
|
||||
}
|
||||
.form-control-client-policy-masters{
|
||||
margin-left: 30px;
|
||||
width: 689px;
|
||||
}
|
||||
</style>
|
||||
<div class="modal fade" id="bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
|
||||
<div class="modal-dialog modal-full-width">
|
||||
<div class="modal-content" style="border-radius: 10px;">
|
||||
<div class="modal-header" style="background-color: #02a8b5; border-top-right-radius: 10px;border-top-left-radius: 10px;">
|
||||
<h4 class="modal-title" id="myLargeModalLabel" style="color: white;">Client Policy Master</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<form role="form" class="parsley-examples" method="post" id="policyJsonForm" enctype="multipart/form-data">
|
||||
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>"/>
|
||||
<input type="hidden" name="client_id" id="Client_id" value="<?= isset($client['id']) ? $client['id'] : '' ?>"/>
|
||||
<input type="hidden" name="client_policy_id" id="client_policy_id" />
|
||||
<input type="hidden" name="policy_id" id="policy_id"/>
|
||||
<div class="form-group">
|
||||
|
||||
<div class="form-column">
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Sum Insured</label>
|
||||
<input type="text" name="sumInsured" id="sumInsured" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class=" " style="width: 400px;">Family Floater</label><br>
|
||||
<div class="flex-container">
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="family_floater" value="1"> Yes
|
||||
<input type="radio" name="family_floater" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
<div style="display:none; margin-top: 27px;margin-bottom: 7px; margin-left: 31px;">
|
||||
<input type="checkbox" name="family_floaters[]" value="Self" id="Self"> Self
|
||||
<input type="checkbox" name="family_floaters[]" value="Spouse" id="Spouse"> Spouse
|
||||
<input type="checkbox" name="family_floaters[]" value="Child1" id="Child1"> Child 1
|
||||
<input type="checkbox" name="family_floaters[]" value="Child2" id="Child2"> Child 2
|
||||
<input type="checkbox" name="family_floaters[]" value="Child3" id="Child3"> Child 3
|
||||
<input type="checkbox" name="family_floaters[]" value="Child4" id="Child4"> Child 4
|
||||
<input type="checkbox" name="family_floaters[]" value="Parent1" id="Parent1"> Parent 1
|
||||
<input type="checkbox" name="family_floaters[]" value="Parent2" id="Parent2"> Parent 2
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master" style="display:none;">
|
||||
<label class="form-check-label " for="corporatebuffer" style="width: 400px;">Corporate Buffer</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="corporatebuffer" value="1"> Yes
|
||||
<input type="radio" name="corporatebuffer" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="waiverofpreexistingdiseases" style="width: 400px;">Waiver of Pre-existing Diseases</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="waiverofpreexistingdiseases" value="1"> Yes, waived off
|
||||
<input type="radio" name="waiverofpreexistingdiseases" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master" style="display:none;">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Maternity Coverage</label>
|
||||
<input type="text" name="maternitycoverage" id="maternitycoverage" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master" style="display:none;">
|
||||
<label for="emp_code" class=" " style="width: 400px; ">Twin Delivery</label>
|
||||
<input type="text" name="twindelivery" id="twindelivery" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master" style="display:none;">
|
||||
<label for="emp_code" class=" " style="width: 400px; ">Pre and Post natal</label>
|
||||
<input type="text" name="preandpostnatal" id="preandpostnatal" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master" style="display:none;">
|
||||
<label for="emp_code" class=" " style="width: 400px; ">Baby Day 1 Cover</label>
|
||||
<input type="text" name="babyday1cover" id="babyday1cover" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="9monthwaitingperiodwaived" style="width: 400px;">9-month waiting Period –waived</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="9monthwaitingperiodwaived" value="1"> Yes, waived off
|
||||
<input type="radio" name="9monthwaitingperiodwaived" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Cover from the date of Joining</label>
|
||||
<input type="text" name="coverfromthedateofjoining" id="coverfromthedateofjoining" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="waiverof1,2,3&4thyearexclusions" style="width: 400px;">Waiver of 1, 2, 3 & 4th year Exclusions</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="waiverof1,2,3&4thyearexclusions" value="1"> Yes, waived off
|
||||
<input type="radio" name="waiverof1,2,3&4thyearexclusions" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="waiverof30dayswaitingperiod" style="width: 400px;">Waiver of 30 days waiting period</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="waiverof30dayswaitingperiod" value="1"> Yes, waived off
|
||||
<input type="radio" name="waiverof30dayswaitingperiod" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Pre Hospitalization Cover</label>
|
||||
<input type="text" name="prehospitalizationcover" id="prehospitalizationcover" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="congenitaldiseasesinternal" style="width: 400px;">Congenital Diseases - Internal</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="congenitaldiseasesinternal" value="internal"> Internal Covered
|
||||
<input type="radio" name="congenitaldiseasesinternal" value="no" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="copayzonewisecopay" class=" " style="width: 400px;">Co-Pay/Zone wise Co Pay</label>
|
||||
<select name="copayzonewisecopay" id="copayzonewisecopay" class="form-control form-control-client-policy-master">
|
||||
<option value="">Select an option</option>
|
||||
<option value="5%">5%</option>
|
||||
<option value="10%">10%</option>
|
||||
<option value="15%">15%</option>
|
||||
<option value="20%">20%</option>
|
||||
<option value="25%">25%</option>
|
||||
<option value="30%">30%</option>
|
||||
<option value="35%">35%</option>
|
||||
<option value="40%">40%</option>
|
||||
<option value="45%">45%</option>
|
||||
<option value="50%">50%</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Bio absorbable stent / Toric lens/ Multi Focal lens</label>
|
||||
<input type="text" name="bioabsorbablestenttoriclensmultifocallens" id="bioabsorbablestenttoriclensmultifocallens" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Room Rent Limit</label>
|
||||
<input type="text" name="roomrentlimit" id="roomrentlimit" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="proportionatedeductionclause" class=" " style="width: 400px;">Proportionate Deduction Clause</label>
|
||||
<select name="proportionatedeductionclause" id="proportionatedeductionclause" class="form-control form-control-client-policy-master">
|
||||
<option value="">Select an option</option>
|
||||
<option value="NotApplicable/WaivedOff">Not Applicable / Waived Off</option>
|
||||
<option value="Applicable">Applicable</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Nursing Allowance</label>
|
||||
<input type="text" name="nursingallowance" id="nursingallowance" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="ailmentcapping" style="width: 400px;">Ailment capping</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="ailmentcapping" value="1"> Yes
|
||||
<input type="radio" name="ailmentcapping" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Ambulance Charges</label>
|
||||
<input type="text" name="ambulancecharges" id="ambulancecharges" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Air Ambulance</label>
|
||||
<input type="text" name="airambulance" id="airambulance" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Family Transportation Benefit</label>
|
||||
<input type="text" name="familytransportationbenefit" id="familytransportationbenefit" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="reasonableandcustomarycharges" style="width: 400px;">Reasonable and Customary Charges</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="reasonableandcustomarycharges" value="1">Applicable
|
||||
<input type="radio" name="reasonableandcustomarycharges" value="0" style="margin-left:10px">Not Applicable
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Day Care Treatment</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="daycaretreatment" value="1"> Yes
|
||||
<input type="radio" name="daycaretreatment" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label class="form-check-label " for="ayudhtreatmentcover" style="width: 400px;">AYUSH treatment cover</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="ayudhtreatmentcover" value="1"> Yes
|
||||
<input type="radio" name="ayudhtreatmentcover" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">ARMD Covered</label>
|
||||
<input type="text" name="armdcovered" id="armdcovered" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Sum Insured enhancement</label>
|
||||
<div class="radiobuttondiv">
|
||||
<input type="radio" name="suminsuredenhancement" value="1"> Yes
|
||||
<input type="radio" name="suminsuredenhancement" value="0" style="margin-left:10px"> No
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Automatic Sum Insured reinstatement</label>
|
||||
<input type="text" name="automaticsuminsuredreinstatement" id="automaticsuminsuredreinstatement" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Additional Sickness Benefit</label>
|
||||
<textarea name="additionalsicknessbenefit" id="additionalsicknessbenefit" class="form-control form-control-client-policy-master"></textarea>
|
||||
</div>
|
||||
<!-- <div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Additional Sickness Benefit</label>
|
||||
<input type="text" name="additionalsicknessbenefit" id="additionalsicknessbenefit" class="form-control form-control-client-policy-master">
|
||||
</div> -->
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Lasik Surgery</label>
|
||||
<input type="text" name="lasiksurgery" id="lasiksurgery" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Mid Term inclusion</label>
|
||||
<input type="text" name="midterminclusion" id="midterminclusion" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">CAPD</label>
|
||||
<input type="text" name="capd" id="capd" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Organ donor expenses</label>
|
||||
<input type="text" name="organdonorexpenses" id="organdonorexpenses" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Modern treatments as per IRDAI</label>
|
||||
<input type="text" name="moderntreatmentsasperirdai" id="moderntreatmentsasperirdai" class="form-control form-control-client-policy-master">
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="emp_code" class=" " style="width: 400px;">Wellness</label>
|
||||
<textarea name="Wellness" id="Wellness" class="form-control form-control-client-policy-master"></textarea>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="days_of_discharge" class=" ">Days of Discharge</label>
|
||||
<div class="input-group mb-3" style="margin-left: 0px;">
|
||||
<input type="text" id="days_of_discharge" name="days_of_discharge" class="form-control form-control-client-policy-master" placeholder="Enter the number of days">
|
||||
<div class="input-group-append input-group-append-client-policy-master">
|
||||
<span class="input-group-text" id="basic-addon2">Days</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 form-group-client-policy-master">
|
||||
<label for="days_from_dod" class=" ">Days from DOD</label>
|
||||
<div class="input-group mb-3" style="margin-left: 0px;">
|
||||
<input type="text" id="days_from_dod" name="days_from_dod" class="form-control form-control-client-policy-master" placeholder="Enter the number of days">
|
||||
<div class="input-group-append input-group-append-client-policy-master">
|
||||
<span class="input-group-text" id="basic-addon2">Days</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <hr> -->
|
||||
|
||||
<!-- <div class="form-row" id="grid_content_input">
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
<div class="form-group text-right m-b-0" style="margin-top: -49px;">
|
||||
<a href="#" class="button-like" id="myButtonSpecialCondition" title="Special Condition">Special Condition</a>
|
||||
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnGridSubmit" style="margin-top: 100px;">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<script>
|
||||
var policy_grid_id = $('#client_id').val();
|
||||
var grid_html = '';
|
||||
|
||||
$('#gmc_remove').hide();
|
||||
$('#btnGridSubmit').hide();
|
||||
$('.close').click(function(){
|
||||
|
||||
$('#sumInsured').val("");
|
||||
$('#familyfloater').val("");
|
||||
$('#waiverofpreexistingdiseases').prop('checked', false);
|
||||
$('#maternitycoverage').val("");
|
||||
for (var i = 1; i <= 11; i++) {
|
||||
$('#grid_' + i).remove();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$('input[name="family_floater"]').change(function() {
|
||||
console.log($(this).val());
|
||||
if ($(this).val() == '1') {
|
||||
var element = $(this).parent().next()[0];
|
||||
$(element).css("display", "block");
|
||||
var element2 = $(this).parent().parent().parent().next()[0];
|
||||
$(element2).css("display", "");
|
||||
} else {
|
||||
var element = $(this).parent().next()[0];
|
||||
$(element).css("display", "none");
|
||||
var element2 = $(this).parent().parent().parent().next()[0];
|
||||
$(element2).css("display", "none");
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
if ($('input[name="waiverofpreexistingdiseases"]').val() == '1') {
|
||||
var element = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next()[0];
|
||||
$(element).css("display", "");
|
||||
var element2 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next()[0];
|
||||
$(element2).css("display", "");
|
||||
var element3 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next().next()[0];
|
||||
$(element3).css("display", "");
|
||||
var element4 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next().next().next()[0];
|
||||
$(element4).css("display", "");
|
||||
} else {
|
||||
var element = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next()[0];
|
||||
$(element).css("display", "none");
|
||||
var element2 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next()[0];
|
||||
$(element2).css("display", "none");
|
||||
var element3 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next().next()[0];
|
||||
$(element3).css("display", "none");
|
||||
var element4 = $('input[name="waiverofpreexistingdiseases"]').parent().parent().next().next().next().next()[0];
|
||||
$(element4).css("display", "none");
|
||||
}
|
||||
|
||||
|
||||
if ($('input[name="family_floater"]').val() == '1') {
|
||||
var element = $('input[name="family_floater"]').parent().next()[0];
|
||||
$(element).css("display", "");
|
||||
var element2 = $('input[name="family_floater"]').parent().parent().parent().next()[0];
|
||||
$(element2).css("display", "");
|
||||
} else {
|
||||
var element = $('input[name="family_floater"]').parent().next()[0];
|
||||
$(element).css("display", "none");
|
||||
var element2 = $('input[name="family_floater"]').parent().parent().parent().next()[0];
|
||||
$(element2).css("display", "none");
|
||||
}
|
||||
});
|
||||
|
||||
$('input[name="waiverofpreexistingdiseases"]').change(function() {
|
||||
console.log("test 739 line.....");
|
||||
console.log($(this).val());
|
||||
if ($(this).val() == '1') {
|
||||
var element = $(this).parent().parent().next()[0];
|
||||
$(element).css("display", "");
|
||||
var element2 = $(this).parent().parent().next().next()[0];
|
||||
$(element2).css("display", "");
|
||||
var element3 = $(this).parent().parent().next().next().next()[0];
|
||||
$(element3).css("display", "");
|
||||
var element4 = $(this).parent().parent().next().next().next().next()[0];
|
||||
$(element4).css("display", "");
|
||||
} else {
|
||||
var element = $(this).parent().parent().next()[0];
|
||||
$(element).css("display", "none");
|
||||
var element2 = $(this).parent().parent().next().next()[0];
|
||||
$(element2).css("display", "none");
|
||||
var element3 = $(this).parent().parent().next().next().next()[0];
|
||||
$(element3).css("display", "none");
|
||||
var element4 = $(this).parent().parent().next().next().next().next()[0];
|
||||
$(element4).css("display", "none");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$("#policyJsonForm").submit(function(event) {
|
||||
event.preventDefault();
|
||||
var isValid = $('#policyJsonForm').parsley().validate();
|
||||
if (!isValid) {
|
||||
console.log('Form is Empty', 'Warning');
|
||||
return ;
|
||||
}
|
||||
|
||||
var formData = new FormData($('#policyJsonForm')[0]);
|
||||
var policy_form_action = '<?= base_url("client/policy/jsonPost") ?>';
|
||||
|
||||
$.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;
|
||||
}
|
||||
document.querySelectorAll('.specialConditionLabel\\[\\]').forEach(element => {
|
||||
element.parentNode.remove();
|
||||
});
|
||||
|
||||
|
||||
console.log(res);
|
||||
var message = (policy_PrimaryKey === '') ? 'Policy Premium Added successfully' : 'Policy Premium Added Successfully';
|
||||
toastr.success(message, 'Success');
|
||||
$('.close').click();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(xhr.responseText);
|
||||
console.error(status, error);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$('body').on('click', '.btnPolicyMaster', function () {
|
||||
|
||||
var policy_id = $(this).data('id');
|
||||
// console.log('policy_id :' ,policy_id);
|
||||
$('#policy_id').val(policy_id);
|
||||
|
||||
var client_id = $('#Client_id').val();
|
||||
$('#client_policy_id').val(policy_id);
|
||||
|
||||
// console.log('client_id :' ,client_id);
|
||||
|
||||
$.ajax({
|
||||
url: '<?= base_url("client/policy/getjson") ?>',
|
||||
method: 'GET',
|
||||
data: { policy_id : policy_id , client_id: client_id},
|
||||
|
||||
// dataType: 'json',
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
// let jsonString = response.substring(response.indexOf('{'), response.lastIndexOf('}') + 1);
|
||||
// console.log(jsonString);
|
||||
if (response) {
|
||||
let jsonObject = JSON.parse(response);
|
||||
// console.log(jsonObject);
|
||||
Object.keys(jsonObject).forEach(function(key) {
|
||||
|
||||
if (key.includes("specialConditionLabel") || key.includes("specialConditionInput")) {
|
||||
if (key.includes("specialConditionLabel")) {
|
||||
for (let index = 0; index < jsonObject[key].length; index++) {
|
||||
specialCondition();
|
||||
}
|
||||
}
|
||||
let elements = document.getElementsByName(`${key}[]`);
|
||||
|
||||
if (elements) {
|
||||
elements.forEach((element,index) => {
|
||||
element.value = jsonObject[key][index];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (key.includes("family_floaters")) {
|
||||
let checkboxes = document.querySelectorAll(`input[name="${key}[]"]`);
|
||||
jsonObject[key].forEach(element => {
|
||||
let checkbox = $(`#${element}`);
|
||||
if (checkbox.is(":checkbox")) {
|
||||
checkbox.prop("checked", true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
let elements = document.getElementsByName(key);
|
||||
if (elements && elements.length > 0) {
|
||||
let element = elements[0]; // Assuming you want to update the first element with the name
|
||||
|
||||
if (element.tagName === 'INPUT' && (element.type === 'checkbox' || element.type === 'radio')) {
|
||||
if (element.type === 'checkbox') {
|
||||
element.checked = jsonObject[key] === '1'; // Assuming jsonObject[key] is '1' or '0' for checkbox
|
||||
} else if (element.type === 'radio') {
|
||||
element.checked = element.value === jsonObject[key];
|
||||
}
|
||||
}else if(key === "Wellness" || key === "additionalsicknessbenefit"){
|
||||
let wysiwygElement = element.previousElementSibling.querySelector('.jodit-wysiwyg');
|
||||
|
||||
|
||||
if (wysiwygElement) {
|
||||
let pTag = wysiwygElement.querySelector('p'); // Find the <p> tag inside the wysiwyg element
|
||||
if (pTag) {
|
||||
// pTag.innerHTML = ''; // Clear the content inside the <p> tag
|
||||
pTag.innerHTML = jsonObject[key]; // Add your new content inside the <p> tag
|
||||
}
|
||||
}
|
||||
// console.log(jsonObject[key]);
|
||||
}else {
|
||||
element.value = jsonObject[key];
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Error:', status, error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// $.ajax({
|
||||
// url: '<?= base_url("util/policy-premium") ?>' ,
|
||||
// type: "GET",
|
||||
// data: { policy_id: policy_id, client_id: client_id },
|
||||
// dataType: 'json',
|
||||
// success: function (res) {
|
||||
// console.log('responce :', res);
|
||||
|
||||
// if (res.status === false) {
|
||||
// toastr.error(res.status);
|
||||
// return;
|
||||
// }
|
||||
// var policy_grid_id_value = '';
|
||||
// if (res.premiumData && res.premiumData.length > 0 && res.premiumData[0].policy_grid_id) {
|
||||
// policy_grid_id_value = res.premiumData[0].policy_grid_id;
|
||||
// }
|
||||
|
||||
// $('#grid_content_input').empty();
|
||||
// var policeGridOptionHTML = '';
|
||||
// policeGridOptionHTML += ` <option value="">Select Premium Type</option>`;
|
||||
// $.each(res.data, function(index, item) {
|
||||
// policeGridOptionHTML += '<option data-id="'+ item.ui_type +'" value="' + item.id + '" ' + (policy_grid_id_value === item.id ? 'selected="selected"' : '') + '>' + item.policy_grid_type + '</option>';
|
||||
// });
|
||||
// $('#grid').html(policeGridOptionHTML);
|
||||
|
||||
|
||||
// console.log('Length', res.premiumData.length)
|
||||
// if (res.premiumData && res.premiumData.length > 0) {
|
||||
|
||||
// addGridHTML(false, res.premiumData[0], res.premiumData[0].policy_grid_id);
|
||||
|
||||
// res.premiumData.shift();
|
||||
// console.log(res.premiumData)
|
||||
// $.each(res.premiumData, function(index, item){
|
||||
// console.log('premiumData index :',index)
|
||||
// appendGridtHtml(item.policy_grid_id, item);
|
||||
// });
|
||||
|
||||
// } else {
|
||||
// console.log("res.premiumData is undefined, null, or empty.");
|
||||
// }
|
||||
|
||||
// $('#bs-example-modal-sm').modal('show');
|
||||
// },
|
||||
// error: function (xhr, status, error) {
|
||||
// console.error(xhr.responseText);
|
||||
// console.error(status, error);
|
||||
// }
|
||||
// });
|
||||
});
|
||||
|
||||
|
||||
var Count = 1
|
||||
function appendGridtHtml(ui_type = false, data = false,) {
|
||||
|
||||
var html = '';
|
||||
console.log('appendGridtHtml function called ');
|
||||
// console.log('Grid Content',data)
|
||||
console.log('UI TYPE :', ui_type);
|
||||
Count++;
|
||||
var container = document.getElementById('grid_content_input');
|
||||
|
||||
if(ui_type == '3'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-5">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="gpa_si" required>
|
||||
</div>
|
||||
<div class="form-group col-md-5">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="gpa_premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml(3)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
}else if(ui_type == '4'){
|
||||
|
||||
|
||||
html =`
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">From Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter From Age" name="age_from[]" id="age_from" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">To Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter TO Age" name="age_to[]" id="age_to" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml(4)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '5'){
|
||||
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">From Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter From Age" name="age_from[]" id="age_from" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">To Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter TO Age" name="age_to[]" id="age_to" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more_${Count}" onclick="appendGridtHtml(5)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '6'){
|
||||
|
||||
html =`
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-4">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">From Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter From Age" name="age_from[]" id="age_from" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">To Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter TO Age" name="age_to[]" id="age_to" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(6)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '7'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">From Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter From Age" name="age_from[]" id="age_from" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">To Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter TO Age" name="age_to[]" id="age_to" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(7)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '8'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Grade/Band</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.grade : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Grade/Band " name="grade[]" id="grade" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(8)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '9'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Grade/Band</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.grade : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Grade/Band " name="grade[]" id="grade" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(9)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '10'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">From Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_from : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter From Age" name="age_from[]" id="age_from" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">To Age</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.age_to : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter TO Age" name="age_to[]" id="age_to" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(10)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
}else if(ui_type == '11'){
|
||||
|
||||
html = `
|
||||
<div class="form-row" id="removeChild_${Count}">
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">Sum Insured</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Sum Insured" name="si[]" id="sum_insured" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Grade/Band</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.grade : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Grade/Band " name="grade[]" id="grade" required>
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="mobile">Premium</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.premium : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Premium" name="premium[]" id="premium" required>
|
||||
</div>
|
||||
<div class="form-group col-md-2">
|
||||
<label for="mobile">Max SI</label>
|
||||
<input value="${data !== false && data !== undefined && data !== '' ? data.max_si : ''}" type="text" class="form-control form-control-client-policy-master" placeholder="Enter Max SI" name="max_si" id="max_si[]" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-primary" id="gmc_add_more" onclick="appendGridtHtml(11)">+</button>
|
||||
<button style="margin-top: 29px;" type="button" class="btn btn-danger" id="gmc_remove" onclick="removebutton(${Count})">x</button>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
container.insertAdjacentHTML('beforeend', html);
|
||||
$('#gmc_add_more').hide()
|
||||
$('#gmc_remove').show()
|
||||
// console.log('count 1',Count)
|
||||
Count--
|
||||
// console.log('count 2',Count)
|
||||
$('#gmc_add_more_'+Count).hide()
|
||||
Count++
|
||||
// console.log('count 3',Count)
|
||||
|
||||
}
|
||||
|
||||
function removebutton(index, type) {
|
||||
|
||||
if(index == 0){
|
||||
var inputs = document.querySelectorAll('#grid_'+ type +' input');
|
||||
inputs.forEach(function(input) {
|
||||
input.value = '';
|
||||
});
|
||||
}else{
|
||||
|
||||
var element = document.getElementById('removeChild_'+ index);
|
||||
var gridContentDiv = document.getElementById('grid_content_input');
|
||||
var count = gridContentDiv.childElementCount;
|
||||
|
||||
if (element) {
|
||||
element.remove();
|
||||
}
|
||||
|
||||
if(count == 2){
|
||||
$('#gmc_add_more').show();
|
||||
}
|
||||
|
||||
index--;
|
||||
$('#gmc_add_more_'+index).show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Jodit RTE -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var editor = new Jodit('#additionalsicknessbenefit', {
|
||||
buttons: 'bold,italic,underline,|,align,alignCenter,alignRight,alignJustify',
|
||||
});
|
||||
|
||||
|
||||
var editor = new Jodit('#Wellness', {
|
||||
buttons: 'bold,italic,underline,|,align,alignCenter,alignRight,alignJustify',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
document.getElementById('myButtonSpecialCondition').addEventListener('click', function(event) {
|
||||
event.preventDefault();
|
||||
specialCondition();
|
||||
});
|
||||
|
||||
|
||||
function specialCondition(count =0) {
|
||||
if (count === 0) {
|
||||
var index =$('.modifyclassinput').length;
|
||||
var appendElement =`<div class="form-group col-md-6 form-group-client-policy-masters">
|
||||
<label for="specialconditionlabel" class="specialConditionLabel[]" style="width: 400px;"><input name="specialConditionLabel[]" id="specialConditionLabel[]"><span class="specialConditionClose" style="color: red;margin-left: 20px;">X</span></label>
|
||||
<input type="text" name="specialConditionInput[]" id="specialConditionInput[]" class="form-control form-control-client-policy-masters specialConditionInput[]">
|
||||
</div>`;
|
||||
$('.form-column').each(function() {
|
||||
$(this).append(appendElement);
|
||||
});
|
||||
}
|
||||
else{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).on('click', '.specialConditionClose', function() {
|
||||
$(this)[0].parentNode.parentNode.remove();
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
@ -16,6 +16,7 @@
|
||||
"ext-mbstring": "*",
|
||||
"google/apiclient": "^2.15.0",
|
||||
"laminas/laminas-escaper": "^2.9",
|
||||
"phpoffice/phpspreadsheet": "^2.0",
|
||||
"psr/log": "^1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
|
||||
17
package-lock.json
generated
Normal file
17
package-lock.json
generated
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "nhance",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"x-editable": "^1.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/x-editable": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/x-editable/-/x-editable-1.5.1.tgz",
|
||||
"integrity": "sha512-eBP10/e6ETIx/TqRmwu6IR/BG0VpFyJzW+eCvAsa8ccJ+UqoYlIPslw7AulpOoym9nv04As8qROtjdU0ij8K2A=="
|
||||
}
|
||||
}
|
||||
}
|
||||
5
package.json
Normal file
5
package.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"x-editable": "^1.5.1"
|
||||
}
|
||||
}
|
||||
8
public/assets/css/app-material.min.copy.css
Normal file
8
public/assets/css/app-material.min.copy.css
Normal file
File diff suppressed because one or more lines are too long
663
public/assets/css/bootstrap-editable.css
vendored
Normal file
663
public/assets/css/bootstrap-editable.css
vendored
Normal file
@ -0,0 +1,663 @@
|
||||
/*! X-editable - v1.5.1
|
||||
* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
|
||||
* http://github.com/vitalets/x-editable
|
||||
* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */
|
||||
.editableform {
|
||||
margin-bottom: 0; /* overwrites bootstrap margin */
|
||||
}
|
||||
|
||||
.editableform .control-group {
|
||||
margin-bottom: 0; /* overwrites bootstrap margin */
|
||||
white-space: nowrap; /* prevent wrapping buttons on new line */
|
||||
line-height: 20px; /* overwriting bootstrap line-height. See #133 */
|
||||
}
|
||||
|
||||
/*
|
||||
BS3 width:1005 for inputs breaks editable form in popup
|
||||
See: https://github.com/vitalets/x-editable/issues/393
|
||||
*/
|
||||
.editableform .form-control {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.editable-buttons {
|
||||
display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
|
||||
vertical-align: top;
|
||||
margin-left: 7px;
|
||||
/* inline-block emulation for IE7*/
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
}
|
||||
|
||||
.editable-buttons.editable-buttons-bottom {
|
||||
display: block;
|
||||
margin-top: 7px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.editable-input {
|
||||
vertical-align: top;
|
||||
display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
|
||||
width: auto; /* bootstrap-responsive has width: 100% that breakes layout */
|
||||
white-space: normal; /* reset white-space decalred in parent*/
|
||||
/* display-inline emulation for IE7*/
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
}
|
||||
|
||||
.editable-buttons .editable-cancel {
|
||||
margin-left: 7px;
|
||||
}
|
||||
|
||||
/*for jquery-ui buttons need set height to look more pretty*/
|
||||
.editable-buttons button.ui-button-icon-only {
|
||||
height: 24px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.editableform-loading {
|
||||
background: url('../img/loading.gif') center center no-repeat;
|
||||
height: 25px;
|
||||
width: auto;
|
||||
min-width: 25px;
|
||||
}
|
||||
|
||||
.editable-inline .editableform-loading {
|
||||
background-position: left 5px;
|
||||
}
|
||||
|
||||
.editable-error-block {
|
||||
max-width: 300px;
|
||||
margin: 5px 0 0 0;
|
||||
width: auto;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/*add padding for jquery ui*/
|
||||
.editable-error-block.ui-state-error {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.editable-error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* ---- For specific types ---- */
|
||||
|
||||
.editableform .editable-date {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* move datepicker icon to center of add-on button. See https://github.com/vitalets/x-editable/issues/183 */
|
||||
.editable-inline .add-on .icon-th {
|
||||
margin-top: 3px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
|
||||
/* checklist vertical alignment */
|
||||
.editable-checklist label input[type="checkbox"],
|
||||
.editable-checklist label span {
|
||||
vertical-align: middle;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.editable-checklist label {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* set exact width of textarea to fit buttons toolbar */
|
||||
.editable-wysihtml5 {
|
||||
width: 566px;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
/* clear button shown as link in date inputs */
|
||||
.editable-clear {
|
||||
clear: both;
|
||||
font-size: 0.9em;
|
||||
text-decoration: none;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* IOS-style clear button for text inputs */
|
||||
.editable-clear-x {
|
||||
background: url('../img/clear.png') center center no-repeat;
|
||||
display: block;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
position: absolute;
|
||||
opacity: 0.6;
|
||||
z-index: 100;
|
||||
|
||||
top: 50%;
|
||||
right: 6px;
|
||||
margin-top: -6px;
|
||||
|
||||
}
|
||||
|
||||
.editable-clear-x:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.editable-pre-wrapped {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
.editable-container.editable-popup {
|
||||
max-width: none !important; /* without this rule poshytip/tooltip does not stretch */
|
||||
}
|
||||
|
||||
.editable-container.popover {
|
||||
width: auto; /* without this rule popover does not stretch */
|
||||
}
|
||||
|
||||
.editable-container.editable-inline {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: auto;
|
||||
/* inline-block emulation for IE7*/
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
}
|
||||
|
||||
.editable-container.ui-widget {
|
||||
font-size: inherit; /* jqueryui widget font 1.1em too big, overwrite it */
|
||||
z-index: 9990; /* should be less than select2 dropdown z-index to close dropdown first when click */
|
||||
}
|
||||
.editable-click,
|
||||
a.editable-click,
|
||||
a.editable-click:hover {
|
||||
text-decoration: none;
|
||||
border-bottom: dashed 1px #0088cc;
|
||||
}
|
||||
|
||||
.editable-click.editable-disabled,
|
||||
a.editable-click.editable-disabled,
|
||||
a.editable-click.editable-disabled:hover {
|
||||
color: #585858;
|
||||
cursor: default;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.editable-empty, .editable-empty:hover, .editable-empty:focus{
|
||||
font-style: italic;
|
||||
color: #DD1144;
|
||||
/* border-bottom: none; */
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.editable-unsaved {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.editable-unsaved:after {
|
||||
/* content: '*'*/
|
||||
}
|
||||
|
||||
.editable-bg-transition {
|
||||
-webkit-transition: background-color 1400ms ease-out;
|
||||
-moz-transition: background-color 1400ms ease-out;
|
||||
-o-transition: background-color 1400ms ease-out;
|
||||
-ms-transition: background-color 1400ms ease-out;
|
||||
transition: background-color 1400ms ease-out;
|
||||
}
|
||||
|
||||
/*see https://github.com/vitalets/x-editable/issues/139 */
|
||||
.form-horizontal .editable
|
||||
{
|
||||
padding-top: 5px;
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Datepicker for Bootstrap
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*/
|
||||
.datepicker {
|
||||
padding: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
direction: ltr;
|
||||
/*.dow {
|
||||
border-top: 1px solid #ddd !important;
|
||||
}*/
|
||||
|
||||
}
|
||||
.datepicker-inline {
|
||||
width: 220px;
|
||||
}
|
||||
.datepicker.datepicker-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.datepicker.datepicker-rtl table tr td span {
|
||||
float: right;
|
||||
}
|
||||
.datepicker-dropdown {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.datepicker-dropdown:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
.datepicker-dropdown:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #ffffff;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
.datepicker > div {
|
||||
display: none;
|
||||
}
|
||||
.datepicker.days div.datepicker-days {
|
||||
display: block;
|
||||
}
|
||||
.datepicker.months div.datepicker-months {
|
||||
display: block;
|
||||
}
|
||||
.datepicker.years div.datepicker-years {
|
||||
display: block;
|
||||
}
|
||||
.datepicker table {
|
||||
margin: 0;
|
||||
}
|
||||
.datepicker td,
|
||||
.datepicker th {
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
.table-striped .datepicker table tr td,
|
||||
.table-striped .datepicker table tr th {
|
||||
background-color: transparent;
|
||||
}
|
||||
.datepicker table tr td.day:hover {
|
||||
background: #eeeeee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker table tr td.old,
|
||||
.datepicker table tr td.new {
|
||||
color: #999999;
|
||||
}
|
||||
.datepicker table tr td.disabled,
|
||||
.datepicker table tr td.disabled:hover {
|
||||
background: none;
|
||||
color: #999999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td.today,
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today.disabled:hover {
|
||||
background-color: #fde19a;
|
||||
background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
|
||||
background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-image: linear-gradient(top, #fdd49a, #fdf59a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
|
||||
border-color: #fdf59a #fdf59a #fbed50;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today:hover:hover,
|
||||
.datepicker table tr td.today.disabled:hover,
|
||||
.datepicker table tr td.today.disabled:hover:hover,
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today:hover.disabled,
|
||||
.datepicker table tr td.today.disabled.disabled,
|
||||
.datepicker table tr td.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.today[disabled],
|
||||
.datepicker table tr td.today:hover[disabled],
|
||||
.datepicker table tr td.today.disabled[disabled],
|
||||
.datepicker table tr td.today.disabled:hover[disabled] {
|
||||
background-color: #fdf59a;
|
||||
}
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active {
|
||||
background-color: #fbf069 \9;
|
||||
}
|
||||
.datepicker table tr td.today:hover:hover {
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today.active:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.datepicker table tr td.range,
|
||||
.datepicker table tr td.range:hover,
|
||||
.datepicker table tr td.range.disabled,
|
||||
.datepicker table tr td.range.disabled:hover {
|
||||
background: #eeeeee;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today,
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover {
|
||||
background-color: #f3d17a;
|
||||
background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
|
||||
background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: -o-linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-image: linear-gradient(top, #f3c17a, #f3e97a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
|
||||
border-color: #f3e97a #f3e97a #edde34;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today:hover:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today:hover.disabled,
|
||||
.datepicker table tr td.range.today.disabled.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.range.today[disabled],
|
||||
.datepicker table tr td.range.today:hover[disabled],
|
||||
.datepicker table tr td.range.today.disabled[disabled],
|
||||
.datepicker table tr td.range.today.disabled:hover[disabled] {
|
||||
background-color: #f3e97a;
|
||||
}
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active {
|
||||
background-color: #efe24b \9;
|
||||
}
|
||||
.datepicker table tr td.selected,
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover {
|
||||
background-color: #9e9e9e;
|
||||
background-image: -moz-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -ms-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
|
||||
background-image: -webkit-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: -o-linear-gradient(top, #b3b3b3, #808080);
|
||||
background-image: linear-gradient(top, #b3b3b3, #808080);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
|
||||
border-color: #808080 #808080 #595959;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected:hover:hover,
|
||||
.datepicker table tr td.selected.disabled:hover,
|
||||
.datepicker table tr td.selected.disabled:hover:hover,
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected:hover.disabled,
|
||||
.datepicker table tr td.selected.disabled.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||
.datepicker table tr td.selected[disabled],
|
||||
.datepicker table tr td.selected:hover[disabled],
|
||||
.datepicker table tr td.selected.disabled[disabled],
|
||||
.datepicker table tr td.selected.disabled:hover[disabled] {
|
||||
background-color: #808080;
|
||||
}
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active {
|
||||
background-color: #666666 \9;
|
||||
}
|
||||
.datepicker table tr td.active,
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(top, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active:hover:hover,
|
||||
.datepicker table tr td.active.disabled:hover,
|
||||
.datepicker table tr td.active.disabled:hover:hover,
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active:hover.disabled,
|
||||
.datepicker table tr td.active.disabled.disabled,
|
||||
.datepicker table tr td.active.disabled:hover.disabled,
|
||||
.datepicker table tr td.active[disabled],
|
||||
.datepicker table tr td.active:hover[disabled],
|
||||
.datepicker table tr td.active.disabled[disabled],
|
||||
.datepicker table tr td.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.datepicker table tr td span:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.datepicker table tr td span.disabled,
|
||||
.datepicker table tr td span.disabled:hover {
|
||||
background: none;
|
||||
color: #999999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td span.active,
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(top, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active:hover:hover,
|
||||
.datepicker table tr td span.active.disabled:hover,
|
||||
.datepicker table tr td span.active.disabled:hover:hover,
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active:hover.disabled,
|
||||
.datepicker table tr td span.active.disabled.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||
.datepicker table tr td span.active[disabled],
|
||||
.datepicker table tr td span.active:hover[disabled],
|
||||
.datepicker table tr td span.active.disabled[disabled],
|
||||
.datepicker table tr td span.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span.old,
|
||||
.datepicker table tr td span.new {
|
||||
color: #999999;
|
||||
}
|
||||
.datepicker th.datepicker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.datepicker thead tr:first-child th,
|
||||
.datepicker tfoot tr th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker thead tr:first-child th:hover,
|
||||
.datepicker tfoot tr th:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.datepicker .cw {
|
||||
font-size: 10px;
|
||||
width: 12px;
|
||||
padding: 0 2px 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.datepicker thead tr:first-child th.cw {
|
||||
cursor: default;
|
||||
background-color: transparent;
|
||||
}
|
||||
.input-append.date .add-on i,
|
||||
.input-prepend.date .add-on i {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.input-daterange input {
|
||||
text-align: center;
|
||||
}
|
||||
.input-daterange input:first-child {
|
||||
-webkit-border-radius: 3px 0 0 3px;
|
||||
-moz-border-radius: 3px 0 0 3px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.input-daterange input:last-child {
|
||||
-webkit-border-radius: 0 3px 3px 0;
|
||||
-moz-border-radius: 0 3px 3px 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.input-daterange .add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: 18px;
|
||||
padding: 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #ffffff;
|
||||
vertical-align: middle;
|
||||
background-color: #eeeeee;
|
||||
border: 1px solid #ccc;
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
4860
public/assets/css/jodit.css
Normal file
4860
public/assets/css/jodit.css
Normal file
File diff suppressed because one or more lines are too long
945
public/assets/css/quill.snow.css
Normal file
945
public/assets/css/quill.snow.css
Normal file
@ -0,0 +1,945 @@
|
||||
/*!
|
||||
* Quill Editor v1.3.7
|
||||
* https://quilljs.com/
|
||||
* Copyright (c) 2014, Jason Chen
|
||||
* Copyright (c) 2013, salesforce.com
|
||||
*/
|
||||
.ql-container {
|
||||
box-sizing: border-box;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
position: relative;
|
||||
}
|
||||
.ql-container.ql-disabled .ql-tooltip {
|
||||
visibility: hidden;
|
||||
}
|
||||
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
|
||||
pointer-events: none;
|
||||
}
|
||||
.ql-clipboard {
|
||||
left: -100000px;
|
||||
height: 1px;
|
||||
overflow-y: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
}
|
||||
.ql-clipboard p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ql-editor {
|
||||
box-sizing: border-box;
|
||||
line-height: 1.42;
|
||||
height: 100%;
|
||||
outline: none;
|
||||
overflow-y: auto;
|
||||
padding: 12px 15px;
|
||||
tab-size: 4;
|
||||
-moz-tab-size: 4;
|
||||
text-align: left;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.ql-editor > * {
|
||||
cursor: text;
|
||||
}
|
||||
.ql-editor p,
|
||||
.ql-editor ol,
|
||||
.ql-editor ul,
|
||||
.ql-editor pre,
|
||||
.ql-editor blockquote,
|
||||
.ql-editor h1,
|
||||
.ql-editor h2,
|
||||
.ql-editor h3,
|
||||
.ql-editor h4,
|
||||
.ql-editor h5,
|
||||
.ql-editor h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol,
|
||||
.ql-editor ul {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.ql-editor ol > li,
|
||||
.ql-editor ul > li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.ql-editor ul > li::before {
|
||||
content: '\2022';
|
||||
}
|
||||
.ql-editor ul[data-checked=true],
|
||||
.ql-editor ul[data-checked=false] {
|
||||
pointer-events: none;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li *,
|
||||
.ql-editor ul[data-checked=false] > li * {
|
||||
pointer-events: all;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li::before,
|
||||
.ql-editor ul[data-checked=false] > li::before {
|
||||
color: #777;
|
||||
cursor: pointer;
|
||||
pointer-events: all;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li::before {
|
||||
content: '\2611';
|
||||
}
|
||||
.ql-editor ul[data-checked=false] > li::before {
|
||||
content: '\2610';
|
||||
}
|
||||
.ql-editor li::before {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
width: 1.2em;
|
||||
}
|
||||
.ql-editor li:not(.ql-direction-rtl)::before {
|
||||
margin-left: -1.5em;
|
||||
margin-right: 0.3em;
|
||||
text-align: right;
|
||||
}
|
||||
.ql-editor li.ql-direction-rtl::before {
|
||||
margin-left: 0.3em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
.ql-editor ol li:not(.ql-direction-rtl),
|
||||
.ql-editor ul li:not(.ql-direction-rtl) {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.ql-editor ol li.ql-direction-rtl,
|
||||
.ql-editor ul li.ql-direction-rtl {
|
||||
padding-right: 1.5em;
|
||||
}
|
||||
.ql-editor ol li {
|
||||
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
counter-increment: list-0;
|
||||
}
|
||||
.ql-editor ol li:before {
|
||||
content: counter(list-0, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1 {
|
||||
counter-increment: list-1;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1:before {
|
||||
content: counter(list-1, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1 {
|
||||
counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2 {
|
||||
counter-increment: list-2;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2:before {
|
||||
content: counter(list-2, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2 {
|
||||
counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3 {
|
||||
counter-increment: list-3;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3:before {
|
||||
content: counter(list-3, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3 {
|
||||
counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4 {
|
||||
counter-increment: list-4;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4:before {
|
||||
content: counter(list-4, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4 {
|
||||
counter-reset: list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5 {
|
||||
counter-increment: list-5;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5:before {
|
||||
content: counter(list-5, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5 {
|
||||
counter-reset: list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6 {
|
||||
counter-increment: list-6;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6:before {
|
||||
content: counter(list-6, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6 {
|
||||
counter-reset: list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7 {
|
||||
counter-increment: list-7;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7:before {
|
||||
content: counter(list-7, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7 {
|
||||
counter-reset: list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8 {
|
||||
counter-increment: list-8;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8:before {
|
||||
content: counter(list-8, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8 {
|
||||
counter-reset: list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-9 {
|
||||
counter-increment: list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-9:before {
|
||||
content: counter(list-9, decimal) '. ';
|
||||
}
|
||||
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
|
||||
padding-left: 3em;
|
||||
}
|
||||
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
|
||||
padding-left: 4.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 3em;
|
||||
}
|
||||
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 4.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
|
||||
padding-left: 6em;
|
||||
}
|
||||
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
|
||||
padding-left: 7.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 6em;
|
||||
}
|
||||
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 7.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
|
||||
padding-left: 9em;
|
||||
}
|
||||
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
|
||||
padding-left: 10.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 9em;
|
||||
}
|
||||
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 10.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
|
||||
padding-left: 12em;
|
||||
}
|
||||
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
|
||||
padding-left: 13.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 12em;
|
||||
}
|
||||
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 13.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
|
||||
padding-left: 15em;
|
||||
}
|
||||
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
|
||||
padding-left: 16.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 15em;
|
||||
}
|
||||
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 16.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
|
||||
padding-left: 18em;
|
||||
}
|
||||
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
|
||||
padding-left: 19.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 18em;
|
||||
}
|
||||
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 19.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
|
||||
padding-left: 21em;
|
||||
}
|
||||
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
|
||||
padding-left: 22.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 21em;
|
||||
}
|
||||
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 22.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
|
||||
padding-left: 24em;
|
||||
}
|
||||
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
|
||||
padding-left: 25.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 24em;
|
||||
}
|
||||
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 25.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
|
||||
padding-left: 27em;
|
||||
}
|
||||
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
|
||||
padding-left: 28.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 27em;
|
||||
}
|
||||
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 28.5em;
|
||||
}
|
||||
.ql-editor .ql-video {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
.ql-editor .ql-video.ql-align-center {
|
||||
margin: 0 auto;
|
||||
}
|
||||
.ql-editor .ql-video.ql-align-right {
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
.ql-editor .ql-bg-black {
|
||||
background-color: #000;
|
||||
}
|
||||
.ql-editor .ql-bg-red {
|
||||
background-color: #e60000;
|
||||
}
|
||||
.ql-editor .ql-bg-orange {
|
||||
background-color: #f90;
|
||||
}
|
||||
.ql-editor .ql-bg-yellow {
|
||||
background-color: #ff0;
|
||||
}
|
||||
.ql-editor .ql-bg-green {
|
||||
background-color: #008a00;
|
||||
}
|
||||
.ql-editor .ql-bg-blue {
|
||||
background-color: #06c;
|
||||
}
|
||||
.ql-editor .ql-bg-purple {
|
||||
background-color: #93f;
|
||||
}
|
||||
.ql-editor .ql-color-white {
|
||||
color: #fff;
|
||||
}
|
||||
.ql-editor .ql-color-red {
|
||||
color: #e60000;
|
||||
}
|
||||
.ql-editor .ql-color-orange {
|
||||
color: #f90;
|
||||
}
|
||||
.ql-editor .ql-color-yellow {
|
||||
color: #ff0;
|
||||
}
|
||||
.ql-editor .ql-color-green {
|
||||
color: #008a00;
|
||||
}
|
||||
.ql-editor .ql-color-blue {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-editor .ql-color-purple {
|
||||
color: #93f;
|
||||
}
|
||||
.ql-editor .ql-font-serif {
|
||||
font-family: Georgia, Times New Roman, serif;
|
||||
}
|
||||
.ql-editor .ql-font-monospace {
|
||||
font-family: Monaco, Courier New, monospace;
|
||||
}
|
||||
.ql-editor .ql-size-small {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
.ql-editor .ql-size-large {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-editor .ql-size-huge {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
.ql-editor .ql-direction-rtl {
|
||||
direction: rtl;
|
||||
text-align: inherit;
|
||||
}
|
||||
.ql-editor .ql-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.ql-editor .ql-align-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
.ql-editor .ql-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.ql-editor.ql-blank::before {
|
||||
color: rgba(0,0,0,0.6);
|
||||
content: attr(data-placeholder);
|
||||
font-style: italic;
|
||||
left: 15px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
}
|
||||
.ql-snow.ql-toolbar:after,
|
||||
.ql-snow .ql-toolbar:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
}
|
||||
.ql-snow.ql-toolbar button,
|
||||
.ql-snow .ql-toolbar button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
height: 24px;
|
||||
padding: 3px 5px;
|
||||
width: 28px;
|
||||
}
|
||||
.ql-snow.ql-toolbar button svg,
|
||||
.ql-snow .ql-toolbar button svg {
|
||||
float: left;
|
||||
height: 100%;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:active:hover,
|
||||
.ql-snow .ql-toolbar button:active:hover {
|
||||
outline: none;
|
||||
}
|
||||
.ql-snow.ql-toolbar input.ql-image[type=file],
|
||||
.ql-snow .ql-toolbar input.ql-image[type=file] {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover,
|
||||
.ql-snow .ql-toolbar button:hover,
|
||||
.ql-snow.ql-toolbar button:focus,
|
||||
.ql-snow .ql-toolbar button:focus,
|
||||
.ql-snow.ql-toolbar button.ql-active,
|
||||
.ql-snow .ql-toolbar button.ql-active,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar button:focus .ql-fill,
|
||||
.ql-snow .ql-toolbar button:focus .ql-fill,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-fill,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
||||
fill: #06c;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
|
||||
stroke: #06c;
|
||||
}
|
||||
@media (pointer: coarse) {
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active),
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) {
|
||||
color: #444;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
|
||||
fill: #444;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
|
||||
stroke: #444;
|
||||
}
|
||||
}
|
||||
.ql-snow {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ql-snow * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ql-snow .ql-hidden {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-out-bottom,
|
||||
.ql-snow .ql-out-top {
|
||||
visibility: hidden;
|
||||
}
|
||||
.ql-snow .ql-tooltip {
|
||||
position: absolute;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
.ql-snow .ql-tooltip a {
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-flip {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
.ql-snow .ql-formats {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ql-snow .ql-formats:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
}
|
||||
.ql-snow .ql-stroke {
|
||||
fill: none;
|
||||
stroke: #444;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.ql-snow .ql-stroke-miter {
|
||||
fill: none;
|
||||
stroke: #444;
|
||||
stroke-miterlimit: 10;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.ql-snow .ql-fill,
|
||||
.ql-snow .ql-stroke.ql-fill {
|
||||
fill: #444;
|
||||
}
|
||||
.ql-snow .ql-empty {
|
||||
fill: none;
|
||||
}
|
||||
.ql-snow .ql-even {
|
||||
fill-rule: evenodd;
|
||||
}
|
||||
.ql-snow .ql-thin,
|
||||
.ql-snow .ql-stroke.ql-thin {
|
||||
stroke-width: 1;
|
||||
}
|
||||
.ql-snow .ql-transparent {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.ql-snow .ql-direction svg:last-child {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-direction.ql-active svg:last-child {
|
||||
display: inline;
|
||||
}
|
||||
.ql-snow .ql-direction.ql-active svg:first-child {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-editor h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.ql-snow .ql-editor h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-snow .ql-editor h3 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
.ql-snow .ql-editor h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ql-snow .ql-editor h5 {
|
||||
font-size: 0.83em;
|
||||
}
|
||||
.ql-snow .ql-editor h6 {
|
||||
font-size: 0.67em;
|
||||
}
|
||||
.ql-snow .ql-editor a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.ql-snow .ql-editor blockquote {
|
||||
border-left: 4px solid #ccc;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
.ql-snow .ql-editor code,
|
||||
.ql-snow .ql-editor pre {
|
||||
background-color: #f0f0f0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.ql-snow .ql-editor pre {
|
||||
white-space: pre-wrap;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.ql-snow .ql-editor code {
|
||||
font-size: 85%;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-editor pre.ql-syntax {
|
||||
background-color: #23241f;
|
||||
color: #f8f8f2;
|
||||
overflow: visible;
|
||||
}
|
||||
.ql-snow .ql-editor img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.ql-snow .ql-picker {
|
||||
color: #444;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
height: 24px;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ql-snow .ql-picker-label {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
padding-left: 8px;
|
||||
padding-right: 2px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.ql-snow .ql-picker-label::before {
|
||||
display: inline-block;
|
||||
line-height: 22px;
|
||||
}
|
||||
.ql-snow .ql-picker-options {
|
||||
background-color: #fff;
|
||||
display: none;
|
||||
min-width: 100%;
|
||||
padding: 4px 8px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ql-snow .ql-picker-options .ql-picker-item {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
|
||||
color: #ccc;
|
||||
z-index: 2;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
|
||||
fill: #ccc;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
|
||||
stroke: #ccc;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
||||
display: block;
|
||||
margin-top: -1px;
|
||||
top: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
.ql-snow .ql-color-picker,
|
||||
.ql-snow .ql-icon-picker {
|
||||
width: 28px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-label,
|
||||
.ql-snow .ql-icon-picker .ql-picker-label {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-label svg,
|
||||
.ql-snow .ql-icon-picker .ql-picker-label svg {
|
||||
right: 4px;
|
||||
}
|
||||
.ql-snow .ql-icon-picker .ql-picker-options {
|
||||
padding: 4px 0px;
|
||||
}
|
||||
.ql-snow .ql-icon-picker .ql-picker-item {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-options {
|
||||
padding: 3px 5px;
|
||||
width: 152px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-item {
|
||||
border: 1px solid transparent;
|
||||
float: left;
|
||||
height: 16px;
|
||||
margin: 2px;
|
||||
padding: 0px;
|
||||
width: 16px;
|
||||
}
|
||||
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
|
||||
position: absolute;
|
||||
margin-top: -9px;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
width: 18px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
|
||||
content: attr(data-label);
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header {
|
||||
width: 98px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
|
||||
content: 'Normal';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
|
||||
content: 'Heading 1';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
|
||||
content: 'Heading 2';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
|
||||
content: 'Heading 3';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
|
||||
content: 'Heading 4';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
|
||||
content: 'Heading 5';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
|
||||
content: 'Heading 6';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
|
||||
font-size: 2em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
|
||||
font-size: 0.83em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
|
||||
font-size: 0.67em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font {
|
||||
width: 108px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
|
||||
content: 'Sans Serif';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
|
||||
content: 'Serif';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
|
||||
content: 'Monospace';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
|
||||
font-family: Georgia, Times New Roman, serif;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
|
||||
font-family: Monaco, Courier New, monospace;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size {
|
||||
width: 98px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
|
||||
content: 'Normal';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
|
||||
content: 'Small';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
|
||||
content: 'Large';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
|
||||
content: 'Huge';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
|
||||
font-size: 10px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
|
||||
font-size: 18px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
|
||||
font-size: 32px;
|
||||
}
|
||||
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
|
||||
background-color: #fff;
|
||||
}
|
||||
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
|
||||
background-color: #000;
|
||||
}
|
||||
.ql-toolbar.ql-snow {
|
||||
border: 1px solid #ccc;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
|
||||
padding: 8px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-formats {
|
||||
margin-right: 15px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker-label {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker-options {
|
||||
border: 1px solid transparent;
|
||||
box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
|
||||
border-color: #ccc;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
||||
border-color: #ccc;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
|
||||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
|
||||
border-color: #000;
|
||||
}
|
||||
.ql-toolbar.ql-snow + .ql-container.ql-snow {
|
||||
border-top: 0px;
|
||||
}
|
||||
.ql-snow .ql-tooltip {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 0px 0px 5px #ddd;
|
||||
color: #444;
|
||||
padding: 5px 12px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ql-snow .ql-tooltip::before {
|
||||
content: "Visit URL:";
|
||||
line-height: 26px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip input[type=text] {
|
||||
display: none;
|
||||
border: 1px solid #ccc;
|
||||
font-size: 13px;
|
||||
height: 26px;
|
||||
margin: 0px;
|
||||
padding: 3px 5px;
|
||||
width: 170px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-preview {
|
||||
display: inline-block;
|
||||
max-width: 200px;
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
vertical-align: top;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-action::after {
|
||||
border-right: 1px solid #ccc;
|
||||
content: 'Edit';
|
||||
margin-left: 16px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-remove::before {
|
||||
content: 'Remove';
|
||||
margin-left: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a {
|
||||
line-height: 26px;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing input[type=text] {
|
||||
display: inline-block;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
|
||||
border-right: 0px;
|
||||
content: 'Save';
|
||||
padding-right: 0px;
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=link]::before {
|
||||
content: "Enter link:";
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=formula]::before {
|
||||
content: "Enter formula:";
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=video]::before {
|
||||
content: "Enter video:";
|
||||
}
|
||||
.ql-snow a {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-container.ql-snow {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
7
public/assets/js/bootstrap-editable.min.js
vendored
Normal file
7
public/assets/js/bootstrap-editable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
public/assets/js/form-xeditable.init.js
Normal file
11
public/assets/js/form-xeditable.init.js
Normal file
@ -0,0 +1,11 @@
|
||||
$(function () { $.fn.editableform.buttons = '<button type="submit" class="btn btn-primary editable-submit btn-sm waves-effect waves-light"><i class="mdi mdi-check"></i></button><button type="button" class="btn btn-danger editable-cancel btn-sm waves-effect"><i class="mdi mdi-close"></i></button>',
|
||||
$("#inline-username").editable({ type: "text", pk: 1, name: "username", title: "Enter username", mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-id").editable({ type: "text", pk: 1, name: "user", title: "Enter username", mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-sex").editable({ prepend: "not selected", mode: "inline", inputclass: "form-control-sm form-control", source: [{ value: 1, text: "Male" }, { value: 2, text: "Female" }], display: function (t, e) { var n = $.grep(e, function (e) { return e.value == t }); n.length ? $(this).text(n[0].text).css("color", { "": "gray", 1: "green", 2: "blue" }[t]) : $(this).empty() } }),
|
||||
$("#inline-group").editable({ showbuttons: !1, mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-status").editable({ mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-dob").editable({ mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-event").editable({ placement: "right", mode: "inline", combodate: { firstItem: "name" }, inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-comments").editable({ showbuttons: "bottom", mode: "inline", inputclass: "form-control-sm form-control" }),
|
||||
$("#inline-treatmentcover").editable({ pk: 1, limit: 3, mode: "inline", inputclass: "form-control-sm form-control", source: [{ value: 1, text: "Yes" }] }),
|
||||
$("#inline-fruits").editable({ pk: 1, limit: 3, mode: "inline", inputclass: "form-control-sm form-control", source: [{ value: 1, text: "Banana" }, { value: 2, text: "Peach" }, { value: 3, text: "Apple" }, { value: 4, text: "Watermelon" }, { value: 5, text: "Orange" }] }) });
|
||||
10
public/assets/js/jodit.min.js
vendored
Normal file
10
public/assets/js/jodit.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
public/assets/js/pages/bootstrap-editable.min.js
vendored
Normal file
7
public/assets/js/pages/bootstrap-editable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
$(function(){$.fn.editableform.buttons='<button type="submit" class="btn btn-primary editable-submit btn-sm waves-effect waves-light"><i class="mdi mdi-check"></i></button><button type="button" class="btn btn-danger editable-cancel btn-sm waves-effect"><i class="mdi mdi-close"></i></button>',$("#inline-username").editable({type:"text",pk:1,name:"username",title:"Enter username",mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-firstname").editable({validate:function(e){if(""==$.trim(e))return"This field is required"},mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-sex").editable({prepend:"not selected",mode:"inline",inputclass:"form-control-sm form-control",source:[{value:1,text:"Male"},{value:2,text:"Female"}],display:function(t,e){var n=$.grep(e,function(e){return e.value==t});n.length?$(this).text(n[0].text).css("color",{"":"gray",1:"green",2:"blue"}[t]):$(this).empty()}}),$("#inline-group").editable({showbuttons:!1,mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-status").editable({mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-dob").editable({mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-event").editable({placement:"right",mode:"inline",combodate:{firstItem:"name"},inputclass:"form-control-sm form-control"}),$("#inline-comments").editable({showbuttons:"bottom",mode:"inline",inputclass:"form-control-sm form-control"}),$("#inline-fruits").editable({pk:1,limit:3,mode:"inline",inputclass:"form-control-sm form-control",source:[{value:1,text:"Banana"},{value:2,text:"Peach"},{value:3,text:"Apple"},{value:4,text:"Watermelon"},{value:5,text:"Orange"}]})});
|
||||
2
public/assets/js/pages/jquery.min.js
vendored
Normal file
2
public/assets/js/pages/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
107
public/assets/js/pages/jquery.xeditable.js
Normal file
107
public/assets/js/pages/jquery.xeditable.js
Normal file
@ -0,0 +1,107 @@
|
||||
|
||||
/**
|
||||
* Theme: Minton Admin Template
|
||||
* Author: Coderthemes
|
||||
* Demo: Editable (Inline editing)
|
||||
*
|
||||
*/
|
||||
|
||||
$(function(){
|
||||
|
||||
//modify buttons style
|
||||
$.fn.editableform.buttons =
|
||||
'<button type="submit" class="btn btn-primary editable-submit btn-sm waves-effect waves-light"><i class="mdi mdi-check"></i></button>' +
|
||||
'<button type="button" class="btn btn-light editable-cancel btn-sm waves-effect"><i class="mdi mdi-close"></i></button>';
|
||||
|
||||
//Inline editables
|
||||
$('#inline-username').editable({
|
||||
type: 'text',
|
||||
pk: 1,
|
||||
name: 'username',
|
||||
title: 'Enter username',
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
$('#inline-id').editable({
|
||||
type: 'text',
|
||||
pk: 1,
|
||||
name: 'username',
|
||||
title: 'Enter username',
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-firstname').editable({
|
||||
validate: function(value) {
|
||||
if($.trim(value) == '') return 'This field is required';
|
||||
},
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-sex').editable({
|
||||
prepend: "not selected",
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm',
|
||||
source: [
|
||||
{value: 1, text: 'Male'},
|
||||
{value: 2, text: 'Female'}
|
||||
],
|
||||
display: function(value, sourceData) {
|
||||
var colors = {"": "gray", 1: "green", 2: "blue"},
|
||||
elem = $.grep(sourceData, function(o){return o.value == value;});
|
||||
|
||||
if(elem.length) {
|
||||
$(this).text(elem[0].text).css("color", colors[value]);
|
||||
} else {
|
||||
$(this).empty();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#inline-group').editable({
|
||||
showbuttons: false,
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-status').editable({
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-dob').editable({
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-event').editable({
|
||||
placement: 'right',
|
||||
mode: 'inline',
|
||||
combodate: {
|
||||
firstItem: 'name'
|
||||
},
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-comments').editable({
|
||||
showbuttons: 'bottom',
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm'
|
||||
});
|
||||
|
||||
$('#inline-fruits').editable({
|
||||
pk: 1,
|
||||
limit: 3,
|
||||
mode: 'inline',
|
||||
inputclass: 'form-control-sm',
|
||||
source: [
|
||||
{value: 1, text: 'Banana'},
|
||||
{value: 2, text: 'Peach'},
|
||||
{value: 3, text: 'Apple'},
|
||||
{value: 4, text: 'Watermelon'},
|
||||
{value: 5, text: 'Orange'}
|
||||
]
|
||||
});
|
||||
|
||||
});
|
||||
8
public/assets/js/quill.min.js
vendored
Normal file
8
public/assets/js/quill.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user