forked from kevinowino869/mitrobill
commit
5788c9c0a7
@ -314,11 +314,32 @@ switch ($do) {
|
|||||||
$ui->display('customer/login-noreg.tpl');
|
$ui->display('customer/login-noreg.tpl');
|
||||||
} else {
|
} else {
|
||||||
$UPLOAD_URL_PATH = str_replace($root_path, '', $UPLOAD_PATH);
|
$UPLOAD_URL_PATH = str_replace($root_path, '', $UPLOAD_PATH);
|
||||||
$login_logo = (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.default.png';
|
if (!empty($config['login_page_logo']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_logo'])) {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_logo'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png')) {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png';
|
||||||
|
} else {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($config['login_page_wallpaper']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_wallpaper'])) {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_wallpaper'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png')) {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png';
|
||||||
|
} else {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($config['login_page_favicon']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_favicon'])) {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_favicon'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png')) {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png';
|
||||||
|
} else {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
$ui->assign('login_logo', $login_logo);
|
$ui->assign('login_logo', $login_logo);
|
||||||
$wallpaper = (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.default.png';
|
|
||||||
$ui->assign('wallpaper', $wallpaper);
|
$ui->assign('wallpaper', $wallpaper);
|
||||||
$favicon = (file_exists($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'favicon.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.default.png';
|
|
||||||
$ui->assign('favicon', $favicon);
|
$ui->assign('favicon', $favicon);
|
||||||
$ui->assign('csrf_token', $csrf_token);
|
$ui->assign('csrf_token', $csrf_token);
|
||||||
$ui->assign('_title', Lang::T('Login'));
|
$ui->assign('_title', Lang::T('Login'));
|
||||||
|
@ -27,24 +27,24 @@ switch ($do) {
|
|||||||
$address = _post('address');
|
$address = _post('address');
|
||||||
|
|
||||||
// Separate phone number input if OTP is required
|
// Separate phone number input if OTP is required
|
||||||
if ($config['sms_otp_registration'] == 'yes') {
|
$phone_number = ($config['sms_otp_registration'] == 'yes') ? alphanumeric(_post('phone_number'), "+_.@-") : $username;
|
||||||
$phone_number = alphanumeric(_post('phone_number'), "+_.@-");
|
|
||||||
} else {
|
|
||||||
$phone_number = $username; // When OTP is not required, treat username as phone number
|
|
||||||
}
|
|
||||||
|
|
||||||
$msg = '';
|
$msg = '';
|
||||||
if (Validator::Length($username, 35, 2) == false) {
|
if (Validator::Length($username, 35, 2) == false) {
|
||||||
$msg .= 'Username should be between 3 to 55 characters' . '<br>';
|
$msg .= "Username should be between 3 to 55 characters<br>";
|
||||||
}
|
}
|
||||||
if (Validator::Length($fullname, 36, 2) == false) {
|
if ($config['man_fields_fname'] == 'yes') {
|
||||||
$msg .= 'Full Name should be between 3 to 25 characters' . '<br>';
|
if (Validator::Length($fullname, 36, 2) == false) {
|
||||||
|
$msg .= "Full Name should be between 3 to 25 characters<br>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!Validator::Length($password, 35, 2)) {
|
if (!Validator::Length($password, 35, 2)) {
|
||||||
$msg .= 'Password should be between 3 to 35 characters' . '<br>';
|
$msg .= "Password should be between 3 to 35 characters<br>";
|
||||||
}
|
}
|
||||||
if (!Validator::Email($email)) {
|
if ($config['man_fields_email'] == 'yes') {
|
||||||
$msg .= 'Email is not Valid<br>';
|
if (!Validator::Email($email)) {
|
||||||
|
$msg .= 'Email is not Valid<br>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($password != $cpassword) {
|
if ($password != $cpassword) {
|
||||||
$msg .= Lang::T('Passwords does not match') . '<br>';
|
$msg .= Lang::T('Passwords does not match') . '<br>';
|
||||||
@ -52,7 +52,7 @@ switch ($do) {
|
|||||||
|
|
||||||
// OTP verification if OTP is enabled
|
// OTP verification if OTP is enabled
|
||||||
if ($_c['sms_otp_registration'] == 'yes') {
|
if ($_c['sms_otp_registration'] == 'yes') {
|
||||||
$otpPath .= sha1($phone_number . $db_pass) . ".txt";
|
$otpPath .= sha1("$phone_number$db_pass") . ".txt";
|
||||||
run_hook('validate_otp'); #HOOK
|
run_hook('validate_otp'); #HOOK
|
||||||
// Expire after 10 minutes
|
// Expire after 10 minutes
|
||||||
if (file_exists($otpPath) && time() - filemtime($otpPath) > 1200) {
|
if (file_exists($otpPath) && time() - filemtime($otpPath) > 1200) {
|
||||||
@ -116,6 +116,10 @@ switch ($do) {
|
|||||||
if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']);
|
if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']);
|
||||||
User::setFormCustomField($user);
|
User::setFormCustomField($user);
|
||||||
run_hook('register_user'); #HOOK
|
run_hook('register_user'); #HOOK
|
||||||
|
$msg .= Lang::T('Registration successful') . '<br>';
|
||||||
|
if ($config['reg_nofify_admin'] == 'yes') {
|
||||||
|
sendTelegram($config['CompanyName'] . ' - ' . Lang::T('New User Registration') . "\n\nFull Name: " . $fullname . "\nUsername: " . $username . "\nEmail: " . $email . "\nPhone Number: " . $phone_number . "\nAddress: " . $address);
|
||||||
|
}
|
||||||
r2(U . 'login', 's', Lang::T('Register Success! You can login now'));
|
r2(U . 'login', 's', Lang::T('Register Success! You can login now'));
|
||||||
} else {
|
} else {
|
||||||
$ui->assign('username', $username);
|
$ui->assign('username', $username);
|
||||||
@ -171,13 +175,13 @@ switch ($do) {
|
|||||||
} else {
|
} else {
|
||||||
$otp = rand(100000, 999999);
|
$otp = rand(100000, 999999);
|
||||||
file_put_contents($otpPath, $otp);
|
file_put_contents($otpPath, $otp);
|
||||||
if($config['phone_otp_type'] == 'whatsapp'){
|
if ($config['phone_otp_type'] == 'whatsapp') {
|
||||||
Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp");
|
Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n" . Lang::T("Registration code") . "\n$otp");
|
||||||
}else if($config['phone_otp_type'] == 'both'){
|
} else if ($config['phone_otp_type'] == 'both') {
|
||||||
Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp");
|
Message::sendWhatsapp($phone_number, $config['CompanyName'] . "\n\n" . Lang::T("Registration code") . "\n$otp");
|
||||||
Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp");
|
Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n" . Lang::T("Registration code") . "\n$otp");
|
||||||
}else{
|
} else {
|
||||||
Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n".Lang::T("Registration code")."\n$otp");
|
Message::sendSMS($phone_number, $config['CompanyName'] . "\n\n" . Lang::T("Registration code") . "\n$otp");
|
||||||
}
|
}
|
||||||
$ui->assign('phone_number', $phone_number);
|
$ui->assign('phone_number', $phone_number);
|
||||||
$ui->assign('notify', 'Registration code has been sent to your phone');
|
$ui->assign('notify', 'Registration code has been sent to your phone');
|
||||||
@ -204,5 +208,3 @@ switch ($do) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
||||||
|
@ -82,11 +82,32 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
$ui->assign('logo', $logo);
|
$ui->assign('logo', $logo);
|
||||||
|
|
||||||
$login_logo = (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.default.png';
|
if (!empty($config['login_page_logo']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_logo'])) {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_logo'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png')) {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.png';
|
||||||
|
} else {
|
||||||
|
$login_logo = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'login-logo.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($config['login_page_wallpaper']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_wallpaper'])) {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_wallpaper'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png')) {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png';
|
||||||
|
} else {
|
||||||
|
$wallpaper = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($config['login_page_favicon']) && file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_favicon'])) {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . $config['login_page_favicon'];
|
||||||
|
} elseif (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png')) {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png';
|
||||||
|
} else {
|
||||||
|
$favicon = $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.default.png';
|
||||||
|
}
|
||||||
|
|
||||||
$ui->assign('login_logo', $login_logo);
|
$ui->assign('login_logo', $login_logo);
|
||||||
$wallpaper = (file_exists($UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'wallpaper.default.png';
|
|
||||||
$ui->assign('wallpaper', $wallpaper);
|
$ui->assign('wallpaper', $wallpaper);
|
||||||
$favicon = (file_exists($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'favicon.png')) ? $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.png' : $UPLOAD_URL_PATH . DIRECTORY_SEPARATOR . 'favicon.default.png';
|
|
||||||
$ui->assign('favicon', $favicon);
|
$ui->assign('favicon', $favicon);
|
||||||
|
|
||||||
$themes = [];
|
$themes = [];
|
||||||
@ -133,7 +154,7 @@ switch ($action) {
|
|||||||
$d->save();
|
$d->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(empty($config['mikrotik_sms_command'])){
|
if (empty($config['mikrotik_sms_command'])) {
|
||||||
$config['mikrotik_sms_command'] = "/tool sms send";
|
$config['mikrotik_sms_command'] = "/tool sms send";
|
||||||
}
|
}
|
||||||
$ui->assign('template_files', $templates);
|
$ui->assign('template_files', $templates);
|
||||||
@ -188,6 +209,10 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Save all settings including tax system
|
// Save all settings including tax system
|
||||||
|
$_POST['man_fields_email'] = isset($_POST['man_fields_email']) ? 'yes' : 'no';
|
||||||
|
$_POST['man_fields_fname'] = isset($_POST['man_fields_fname']) ? 'yes' : 'no';
|
||||||
|
$_POST['man_fields_address'] = isset($_POST['man_fields_address']) ? 'yes' : 'no';
|
||||||
|
$_POST['man_fields_custom'] = isset($_POST['man_fields_custom']) ? 'yes' : 'no';
|
||||||
$enable_session_timeout = isset($_POST['enable_session_timeout']) ? 1 : 0;
|
$enable_session_timeout = isset($_POST['enable_session_timeout']) ? 1 : 0;
|
||||||
$_POST['enable_session_timeout'] = $enable_session_timeout;
|
$_POST['enable_session_timeout'] = $enable_session_timeout;
|
||||||
foreach ($_POST as $key => $value) {
|
foreach ($_POST as $key => $value) {
|
||||||
@ -220,8 +245,6 @@ switch ($action) {
|
|||||||
r2(U . 'settings/app', 'e', Lang::T('Invalid or Expired CSRF Token') . ".");
|
r2(U . 'settings/app', 'e', Lang::T('Invalid or Expired CSRF Token') . ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
$image_paths = [];
|
|
||||||
|
|
||||||
if ($login_page_type == 'custom' && (empty($login_Page_template) || empty($login_page_title) || empty($login_page_description))) {
|
if ($login_page_type == 'custom' && (empty($login_Page_template) || empty($login_page_title) || empty($login_page_description))) {
|
||||||
r2(U . 'settings/app', 'e', 'Please fill all required fields');
|
r2(U . 'settings/app', 'e', 'Please fill all required fields');
|
||||||
return;
|
return;
|
||||||
@ -231,7 +254,7 @@ switch ($action) {
|
|||||||
r2(U . 'settings/app', 'e', 'Login page title must not exceed 25 characters');
|
r2(U . 'settings/app', 'e', 'Login page title must not exceed 25 characters');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (strlen($login_page_description) > 50) {
|
if (strlen($login_page_description) > 100) {
|
||||||
r2(U . 'settings/app', 'e', 'Login page description must not exceed 50 characters');
|
r2(U . 'settings/app', 'e', 'Login page description must not exceed 50 characters');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -243,12 +266,16 @@ switch ($action) {
|
|||||||
'login_page_type' => $login_page_type,
|
'login_page_type' => $login_page_type,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$image_paths = [];
|
||||||
|
$allowed_types = ['image/jpeg', 'image/png'];
|
||||||
|
|
||||||
if ($_FILES['login_page_favicon']['name'] != '') {
|
if ($_FILES['login_page_favicon']['name'] != '') {
|
||||||
$favicon_type = $_FILES['login_page_favicon']['type'];
|
$favicon_type = $_FILES['login_page_favicon']['type'];
|
||||||
if (in_array($favicon_type, ['image/jpeg', 'image/png']) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_favicon']['name'])) {
|
if (in_array($favicon_type, $allowed_types) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_favicon']['name'])) {
|
||||||
$favicon_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'favicon.png';
|
$extension = pathinfo($_FILES['login_page_favicon']['name'], PATHINFO_EXTENSION);
|
||||||
|
$favicon_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('favicon_') . '.' . $extension;
|
||||||
File::resizeCropImage($_FILES['login_page_favicon']['tmp_name'], $favicon_path, 16, 16, 100);
|
File::resizeCropImage($_FILES['login_page_favicon']['tmp_name'], $favicon_path, 16, 16, 100);
|
||||||
$image_paths['favicon'] = $favicon_path;
|
$settings['login_page_favicon'] = basename($favicon_path); // Save dynamic file name
|
||||||
if (file_exists($_FILES['login_page_favicon']['tmp_name'])) unlink($_FILES['login_page_favicon']['tmp_name']);
|
if (file_exists($_FILES['login_page_favicon']['tmp_name'])) unlink($_FILES['login_page_favicon']['tmp_name']);
|
||||||
} else {
|
} else {
|
||||||
r2(U . 'settings/app', 'e', 'Favicon must be a JPG, JPEG, or PNG image.');
|
r2(U . 'settings/app', 'e', 'Favicon must be a JPG, JPEG, or PNG image.');
|
||||||
@ -257,10 +284,11 @@ switch ($action) {
|
|||||||
|
|
||||||
if ($_FILES['login_page_wallpaper']['name'] != '') {
|
if ($_FILES['login_page_wallpaper']['name'] != '') {
|
||||||
$wallpaper_type = $_FILES['login_page_wallpaper']['type'];
|
$wallpaper_type = $_FILES['login_page_wallpaper']['type'];
|
||||||
if (in_array($wallpaper_type, ['image/jpeg', 'image/png']) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_wallpaper']['name'])) {
|
if (in_array($wallpaper_type, $allowed_types) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_wallpaper']['name'])) {
|
||||||
$wallpaper_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'wallpaper.png';
|
$extension = pathinfo($_FILES['login_page_wallpaper']['name'], PATHINFO_EXTENSION);
|
||||||
|
$wallpaper_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('wallpaper_') . '.' . $extension;
|
||||||
File::resizeCropImage($_FILES['login_page_wallpaper']['tmp_name'], $wallpaper_path, 1920, 1080, 100);
|
File::resizeCropImage($_FILES['login_page_wallpaper']['tmp_name'], $wallpaper_path, 1920, 1080, 100);
|
||||||
$image_paths['wallpaper'] = $wallpaper_path;
|
$settings['login_page_wallpaper'] = basename($wallpaper_path); // Save dynamic file name
|
||||||
if (file_exists($_FILES['login_page_wallpaper']['tmp_name'])) unlink($_FILES['login_page_wallpaper']['tmp_name']);
|
if (file_exists($_FILES['login_page_wallpaper']['tmp_name'])) unlink($_FILES['login_page_wallpaper']['tmp_name']);
|
||||||
} else {
|
} else {
|
||||||
r2(U . 'settings/app', 'e', 'Wallpaper must be a JPG, JPEG, or PNG image.');
|
r2(U . 'settings/app', 'e', 'Wallpaper must be a JPG, JPEG, or PNG image.');
|
||||||
@ -269,10 +297,11 @@ switch ($action) {
|
|||||||
|
|
||||||
if ($_FILES['login_page_logo']['name'] != '') {
|
if ($_FILES['login_page_logo']['name'] != '') {
|
||||||
$logo_type = $_FILES['login_page_logo']['type'];
|
$logo_type = $_FILES['login_page_logo']['type'];
|
||||||
if (in_array($logo_type, ['image/jpeg', 'image/png']) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_logo']['name'])) {
|
if (in_array($logo_type, $allowed_types) && preg_match('/\.(jpg|jpeg|png)$/i', $_FILES['login_page_logo']['name'])) {
|
||||||
$logo_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'login-logo.png';
|
$extension = pathinfo($_FILES['login_page_logo']['name'], PATHINFO_EXTENSION);
|
||||||
|
$logo_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('logo_') . '.' . $extension;
|
||||||
File::resizeCropImage($_FILES['login_page_logo']['tmp_name'], $logo_path, 300, 60, 100);
|
File::resizeCropImage($_FILES['login_page_logo']['tmp_name'], $logo_path, 300, 60, 100);
|
||||||
$image_paths['logo'] = $logo_path;
|
$settings['login_page_logo'] = basename($logo_path); // Save dynamic file name
|
||||||
if (file_exists($_FILES['login_page_logo']['tmp_name'])) unlink($_FILES['login_page_logo']['tmp_name']);
|
if (file_exists($_FILES['login_page_logo']['tmp_name'])) unlink($_FILES['login_page_logo']['tmp_name']);
|
||||||
} else {
|
} else {
|
||||||
r2(U . 'settings/app', 'e', 'Logo must be a JPG, JPEG, or PNG image.');
|
r2(U . 'settings/app', 'e', 'Logo must be a JPG, JPEG, or PNG image.');
|
||||||
|
@ -368,6 +368,45 @@
|
|||||||
<p class="help-block col-md-4">{Lang::T('The method which OTP will be sent to user')}<br>
|
<p class="help-block col-md-4">{Lang::T('The method which OTP will be sent to user')}<br>
|
||||||
{Lang::T('For Registration and Update Phone Number')}</p>
|
{Lang::T('For Registration and Update Phone Number')}</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-3 control-label">{Lang::T('Notify Admin')}</label>
|
||||||
|
<div class="col-md-5">
|
||||||
|
<select name="reg_nofify_admin" id="reg_nofify_admin" class="form-control">
|
||||||
|
<option value="no">
|
||||||
|
{Lang::T('No')}
|
||||||
|
</option>
|
||||||
|
<option value="yes" {if $_c['reg_nofify_admin']=='yes' }selected="selected" {/if}>
|
||||||
|
{Lang::T('Yes')}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<p class="help-block col-md-4">
|
||||||
|
{Lang::T('Notify Admin upon self registration')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-3 control-label">{Lang::T('Registration Mandatory Fields')}:</label><br>
|
||||||
|
<label class="col-md-3 control-label">
|
||||||
|
<input type="checkbox" name="man_fields_email" value="yes"
|
||||||
|
{if !isset($_c['man_fields_email']) || $_c['man_fields_email'] neq 'no'}checked{/if}>
|
||||||
|
{Lang::T('Email')}
|
||||||
|
</label>
|
||||||
|
<label class="col-md-3 control-label">
|
||||||
|
<input type="checkbox" name="man_fields_fname" value="yes"
|
||||||
|
{if !isset($_c['man_fields_fname']) || $_c['man_fields_fname'] neq 'no'}checked{/if}>
|
||||||
|
{Lang::T('Full Name')}
|
||||||
|
</label>
|
||||||
|
<label class="col-md-3 control-label">
|
||||||
|
<input type="checkbox" name="man_fields_address" value="yes"
|
||||||
|
{if !isset($_c['man_fields_address']) || $_c['man_fields_address'] neq 'no'}checked{/if}>
|
||||||
|
{Lang::T('Address')}
|
||||||
|
</label>
|
||||||
|
<label class="col-md-3 control-label">
|
||||||
|
<input type="checkbox" name="man_fields_custom" value="yes"
|
||||||
|
{if !isset($_c['man_fields_custom']) || $_c['man_fields_custom'] neq 'no'}checked{/if}>
|
||||||
|
{Lang::T('Custom Fields')}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<button class="btn btn-success btn-block" type="submit">
|
<button class="btn btn-success btn-block" type="submit">
|
||||||
{Lang::T('Save Changes')}
|
{Lang::T('Save Changes')}
|
||||||
</button>
|
</button>
|
||||||
|
@ -33,26 +33,33 @@
|
|||||||
placeholder="{Lang::T('Verification Code')}" name="otp_code">
|
placeholder="{Lang::T('Verification Code')}" name="otp_code">
|
||||||
</div>
|
</div>
|
||||||
{if $_c['photo_register'] == 'yes'}
|
{if $_c['photo_register'] == 'yes'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Photo')}</label>
|
<label>{Lang::T('Photo')}</label>
|
||||||
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
|
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
{if $_c['man_fields_fname'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Full Name')}</label>
|
<label>{Lang::T('Full Name')}</label>
|
||||||
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||||
name="fullname">
|
name="fullname">
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $_c['man_fields_address'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Email')}</label>
|
<label>{Lang::T('Email')}</label>
|
||||||
<input type="text" class="form-control" placeholder="xxxxxx@xxx.xx" id="email"
|
<input type="text" class="form-control" placeholder="xxxxxx@xxx.xx" id="email"
|
||||||
value="{$email}" name="email">
|
value="{$email}" name="email">
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $_c['man_fields_address'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Address')}</label>
|
<label>{Lang::T('Address')}</label>
|
||||||
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
{if $_c['man_fields_custom'] neq 'no'}
|
||||||
{$customFields}
|
{$customFields}
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -114,21 +121,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{if $_c['tawkto'] != ''}
|
{if $_c['tawkto'] != ''}
|
||||||
<!--Start of Tawk.to Script-->
|
<!--Start of Tawk.to Script-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var Tawk_API = Tawk_API || {},
|
var Tawk_API = Tawk_API || {},
|
||||||
Tawk_LoadStart = new Date();
|
Tawk_LoadStart = new Date();
|
||||||
(function() {
|
(function () {
|
||||||
var s1 = document.createElement("script"),
|
var s1 = document.createElement("script"),
|
||||||
s0 = document.getElementsByTagName("script")[0];
|
s0 = document.getElementsByTagName("script")[0];
|
||||||
s1.async = true;
|
s1.async = true;
|
||||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
s1.src = 'https://embed.tawk.to/{$_c['tawkto']}';
|
||||||
s1.charset = 'UTF-8';
|
s1.charset = 'UTF-8';
|
||||||
s1.setAttribute('crossorigin', '*');
|
s1.setAttribute('crossorigin', '*');
|
||||||
s0.parentNode.insertBefore(s1, s0);
|
s0.parentNode.insertBefore(s1, s0);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<!--End of Tawk.to Script-->
|
<!--End of Tawk.to Script-->
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{include file="customer/footer-public.tpl"}
|
{include file="customer/footer-public.tpl"}
|
@ -19,49 +19,57 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>
|
<label>
|
||||||
{if $_c['registration_username'] == 'phone'}
|
{if $_c['registration_username'] == 'phone'}
|
||||||
{Lang::T('Phone Number')}
|
{Lang::T('Phone Number')}
|
||||||
{elseif $_c['registration_username'] == 'email'}
|
{elseif $_c['registration_username'] == 'email'}
|
||||||
{Lang::T('Email')}
|
{Lang::T('Email')}
|
||||||
{else}
|
{else}
|
||||||
{Lang::T('Username')}
|
{Lang::T('Username')}
|
||||||
{/if}
|
{/if}
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
{if $_c['registration_username'] == 'phone'}
|
{if $_c['registration_username'] == 'phone'}
|
||||||
<span class="input-group-addon" id="basic-addon1"><i
|
<span class="input-group-addon" id="basic-addon1"><i
|
||||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||||
{elseif $_c['registration_username'] == 'email'}
|
{elseif $_c['registration_username'] == 'email'}
|
||||||
<span class="input-group-addon" id="basic-addon1"><i
|
<span class="input-group-addon" id="basic-addon1"><i
|
||||||
class="glyphicon glyphicon-envelope"></i></span>
|
class="glyphicon glyphicon-envelope"></i></span>
|
||||||
{else}
|
{else}
|
||||||
<span class="input-group-addon" id="basic-addon1"><i
|
<span class="input-group-addon" id="basic-addon1"><i
|
||||||
class="glyphicon glyphicon-user"></i></span>
|
class="glyphicon glyphicon-user"></i></span>
|
||||||
{/if}
|
{/if}
|
||||||
<input type="text" class="form-control" name="username"
|
<input type="text" class="form-control" name="username"
|
||||||
placeholder="{if $_c['country_code_phone']!= '' || $_c['registration_username'] == 'phone'}{$_c['country_code_phone']} {Lang::T('Phone Number')}{elseif $_c['registration_username'] == 'email'}{Lang::T('Email')}{else}{Lang::T('Username')}{/if}">
|
placeholder="{if $_c['country_code_phone']!= '' || $_c['registration_username'] == 'phone'}{$_c['country_code_phone']} {Lang::T('Phone Number')}{elseif $_c['registration_username'] == 'email'}{Lang::T('Email')}{else}{Lang::T('Username')}{/if}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{if $_c['photo_register'] == 'yes'}
|
{if $_c['photo_register'] == 'yes'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Photo')}</label>
|
<label>{Lang::T('Photo')}</label>
|
||||||
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
|
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
{if $_c['man_fields_fname'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Full Name')}</label>
|
<label>{Lang::T('Full Name')}</label>
|
||||||
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||||
name="fullname">
|
name="fullname">
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $_c['man_fields_email'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Email')}</label>
|
<label>{Lang::T('Email')}</label>
|
||||||
<input type="text" class="form-control" id="email" placeholder="xxxxxxx@xxxx.xx"
|
<input type="text" class="form-control" id="email" placeholder="xxxxxxx@xxxx.xx"
|
||||||
value="{$email}" name="email">
|
value="{$email}" name="email">
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $_c['man_fields_address'] neq 'no'}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{Lang::T('Address')}</label>
|
<label>{Lang::T('Address')}</label>
|
||||||
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $_c['man_fields_custom'] neq 'no'}
|
||||||
{$customFields}
|
{$customFields}
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -173,6 +173,7 @@
|
|||||||
background-color: #efeb0a;
|
background-color: #efeb0a;
|
||||||
border-color: #efeb0a;
|
border-color: #efeb0a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-cron-danger>.panel-heading {
|
.panel-cron-danger>.panel-heading {
|
||||||
border-bottom-right-radius: 21px;
|
border-bottom-right-radius: 21px;
|
||||||
border-bottom-left-radius: 21px;
|
border-bottom-left-radius: 21px;
|
||||||
@ -276,7 +277,7 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box.box-solid.box-primary > .box-header .btn {
|
.box.box-solid.box-primary>.box-header .btn {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1136,12 +1137,17 @@
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark-mode .container {
|
||||||
|
background-color: #353638;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* Dark Mode - Select2 Dropdown ends here */
|
/* Dark Mode - Select2 Dropdown ends here */
|
||||||
|
|
||||||
/* dark mode styles start ends here */
|
/* dark mode styles start ends here */
|
||||||
</style>
|
</style>
|
||||||
{if isset($xheader)}
|
{if isset($xheader)}
|
||||||
{$xheader}
|
{$xheader}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
@ -1232,83 +1238,83 @@
|
|||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_DASHBOARD}
|
{$_MENU_AFTER_DASHBOARD}
|
||||||
{if !in_array($_admin['user_type'],['Report'])}
|
{if !in_array($_admin['user_type'],['Report'])}
|
||||||
<li class="{if in_array($_system_menu, ['customers', 'map'])}active{/if} treeview">
|
<li class="{if in_array($_system_menu, ['customers', 'map'])}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fa fa-users"></i> <span>{Lang::T('Customer')}</span>
|
<i class="fa fa-users"></i> <span>{Lang::T('Customer')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_system_menu eq 'customers' }class="active" {/if}><a
|
<li {if $_system_menu eq 'customers' }class="active" {/if}><a
|
||||||
href="{$_url}customers">{Lang::T('Lists')}</a></li>
|
href="{$_url}customers">{Lang::T('Lists')}</a></li>
|
||||||
<li {if $_system_menu eq 'map' }class="active" {/if}><a
|
<li {if $_system_menu eq 'map' }class="active" {/if}><a
|
||||||
href="{$_url}map/customer">{Lang::T('Location')}</a></li>
|
href="{$_url}map/customer">{Lang::T('Location')}</a></li>
|
||||||
{$_MENU_CUSTOMERS}
|
{$_MENU_CUSTOMERS}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_CUSTOMERS}
|
{$_MENU_AFTER_CUSTOMERS}
|
||||||
<li class="{if $_system_menu eq 'plan'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'plan'}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span>
|
<i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
href="{$_url}plan/list">{Lang::T('Active Users')}</a></li>
|
href="{$_url}plan/list">{Lang::T('Active Users')}</a></li>
|
||||||
{if $_c['disable_voucher'] != 'yes'}
|
{if $_c['disable_voucher'] != 'yes'}
|
||||||
<li {if $_routes[1] eq 'voucher' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'voucher' }class="active" {/if}><a
|
||||||
href="{$_url}plan/voucher">{Lang::T('Vouchers')}</a></li>
|
href="{$_url}plan/voucher">{Lang::T('Vouchers')}</a></li>
|
||||||
<li {if $_routes[1] eq 'refill' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'refill' }class="active" {/if}><a
|
||||||
href="{$_url}plan/refill">{Lang::T('Refill Customer')}</a></li>
|
href="{$_url}plan/refill">{Lang::T('Refill Customer')}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
<li {if $_routes[1] eq 'recharge' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'recharge' }class="active" {/if}><a
|
||||||
href="{$_url}plan/recharge">{Lang::T('Recharge Customer')}</a></li>
|
href="{$_url}plan/recharge">{Lang::T('Recharge Customer')}</a></li>
|
||||||
{if $_c['enable_balance'] == 'yes'}
|
{if $_c['enable_balance'] == 'yes'}
|
||||||
<li {if $_routes[1] eq 'deposit' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'deposit' }class="active" {/if}><a
|
||||||
href="{$_url}plan/deposit">{Lang::T('Refill Balance')}</a></li>
|
href="{$_url}plan/deposit">{Lang::T('Refill Balance')}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_SERVICES}
|
{$_MENU_SERVICES}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_SERVICES}
|
{$_MENU_AFTER_SERVICES}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li class="{if $_system_menu eq 'services'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'services'}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="ion ion-cube"></i> <span>{Lang::T('Internet Plan')}</span>
|
<i class="ion ion-cube"></i> <span>{Lang::T('Internet Plan')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[1] eq 'hotspot' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'hotspot' }class="active" {/if}><a
|
||||||
href="{$_url}services/hotspot">Hotspot</a></li>
|
href="{$_url}services/hotspot">Hotspot</a></li>
|
||||||
<li {if $_routes[1] eq 'pppoe' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'pppoe' }class="active" {/if}><a
|
||||||
href="{$_url}services/pppoe">PPPOE</a></li>
|
href="{$_url}services/pppoe">PPPOE</a></li>
|
||||||
<li {if $_routes[1] eq 'vpn' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'vpn' }class="active" {/if}><a href="{$_url}services/vpn">VPN</a>
|
||||||
href="{$_url}services/vpn">VPN</a></li>
|
</li>
|
||||||
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
href="{$_url}bandwidth/list">Bandwidth</a></li>
|
href="{$_url}bandwidth/list">Bandwidth</a></li>
|
||||||
{if $_c['enable_balance'] == 'yes'}
|
{if $_c['enable_balance'] == 'yes'}
|
||||||
<li {if $_routes[1] eq 'balance' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'balance' }class="active" {/if}><a
|
||||||
href="{$_url}services/balance">{Lang::T('Customer Balance')}</a></li>
|
href="{$_url}services/balance">{Lang::T('Customer Balance')}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_PLANS}
|
{$_MENU_PLANS}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_PLANS}
|
{$_MENU_AFTER_PLANS}
|
||||||
<li class="{if $_system_menu eq 'reports'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'reports'}active{/if} treeview">
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin', 'Report'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin', 'Report'])}
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="ion ion-clipboard"></i> <span>{Lang::T('Reports')}</span>
|
<i class="ion ion-clipboard"></i> <span>{Lang::T('Reports')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[1] eq 'reports' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'reports' }class="active" {/if}><a
|
||||||
@ -1336,70 +1342,70 @@
|
|||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_MESSAGE}
|
{$_MENU_AFTER_MESSAGE}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li class="{if $_system_menu eq 'network'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'network'}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="ion ion-network"></i> <span>{Lang::T('Network')}</span>
|
<i class="ion ion-network"></i> <span>{Lang::T('Network')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[0] eq 'routers' and $_routes[1] eq '' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'routers' and $_routes[1] eq '' }class="active" {/if}><a
|
||||||
href="{$_url}routers">Routers</a></li>
|
href="{$_url}routers">Routers</a></li>
|
||||||
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'list' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
href="{$_url}pool/list">IP Pool</a></li>
|
href="{$_url}pool/list">IP Pool</a></li>
|
||||||
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'port' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'port' }class="active" {/if}><a
|
||||||
href="{$_url}pool/port">Port Pool</a></li>
|
href="{$_url}pool/port">Port Pool</a></li>
|
||||||
<li {if $_routes[0] eq 'routers' and $_routes[1] eq 'maps' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'routers' and $_routes[1] eq 'maps' }class="active" {/if}><a
|
||||||
href="{$_url}routers/maps">{Lang::T('Routers Maps')}</a></li>
|
href="{$_url}routers/maps">{Lang::T('Routers Maps')}</a></li>
|
||||||
{$_MENU_NETWORK}
|
{$_MENU_NETWORK}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_NETWORKS}
|
{$_MENU_AFTER_NETWORKS}
|
||||||
{if $_c['radius_enable']}
|
{if $_c['radius_enable']}
|
||||||
<li class="{if $_system_menu eq 'radius'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'radius'}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fa fa-database"></i> <span>{Lang::T('Radius')}</span>
|
<i class="fa fa-database"></i> <span>{Lang::T('Radius')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[0] eq 'radius' and $_routes[1] eq 'nas-list' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'radius' and $_routes[1] eq 'nas-list' }class="active" {/if}><a
|
||||||
href="{$_url}radius/nas-list">{Lang::T('Radius NAS')}</a></li>
|
href="{$_url}radius/nas-list">{Lang::T('Radius NAS')}</a></li>
|
||||||
{$_MENU_RADIUS}
|
{$_MENU_RADIUS}
|
||||||
</ul>
|
</ul>
|
||||||
|
</li>
|
||||||
|
{/if}
|
||||||
|
{$_MENU_AFTER_RADIUS}
|
||||||
|
<li class="{if $_system_menu eq 'pages'}active{/if} treeview">
|
||||||
|
<a href="#">
|
||||||
|
<i class="ion ion-document"></i> <span>{Lang::T("Static Pages")}</span>
|
||||||
|
<span class="pull-right-container">
|
||||||
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<ul class="treeview-menu">
|
||||||
|
<li {if $_routes[1] eq 'Order_Voucher' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Order_Voucher">{Lang::T('Order Voucher')}</a></li>
|
||||||
|
<li {if $_routes[1] eq 'Voucher' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Voucher">{Lang::T('Theme Voucher')}</a></li>
|
||||||
|
<li {if $_routes[1] eq 'Announcement' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Announcement">{Lang::T('Announcement')}</a></li>
|
||||||
|
<li {if $_routes[1] eq 'Announcement_Customer' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Announcement_Customer">{Lang::T('Customer Announcement')}</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
<li {if $_routes[1] eq 'Registration_Info' }class="active" {/if}><a
|
||||||
{$_MENU_AFTER_RADIUS}
|
href="{$_url}pages/Registration_Info">{Lang::T('Registration Info')}</a></li>
|
||||||
<li class="{if $_system_menu eq 'pages'}active{/if} treeview">
|
<li {if $_routes[1] eq 'Payment_Info' }class="active" {/if}><a
|
||||||
<a href="#">
|
href="{$_url}pages/Payment_Info">{Lang::T('Payment Info')}</a></li>
|
||||||
<i class="ion ion-document"></i> <span>{Lang::T("Static Pages")}</span>
|
<li {if $_routes[1] eq 'Privacy_Policy' }class="active" {/if}><a
|
||||||
<span class="pull-right-container">
|
href="{$_url}pages/Privacy_Policy">{Lang::T('Privacy Policy')}</a></li>
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
|
||||||
</span>
|
href="{$_url}pages/Terms_and_Conditions">{Lang::T('Terms and Conditions')}</a></li>
|
||||||
</a>
|
{$_MENU_PAGES}
|
||||||
<ul class="treeview-menu">
|
</ul>
|
||||||
<li {if $_routes[1] eq 'Order_Voucher' }class="active" {/if}><a
|
</li>
|
||||||
href="{$_url}pages/Order_Voucher">{Lang::T('Order Voucher')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Voucher' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Voucher">{Lang::T('Theme Voucher')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Announcement' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Announcement">{Lang::T('Announcement')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Announcement_Customer' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Announcement_Customer">{Lang::T('Customer Announcement')}</a>
|
|
||||||
</li>
|
|
||||||
<li {if $_routes[1] eq 'Registration_Info' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Registration_Info">{Lang::T('Registration Info')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Payment_Info' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Payment_Info">{Lang::T('Payment Info')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Privacy_Policy' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Privacy_Policy">{Lang::T('Privacy Policy')}</a></li>
|
|
||||||
<li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
|
|
||||||
href="{$_url}pages/Terms_and_Conditions">{Lang::T('Terms and Conditions')}</a></li>
|
|
||||||
{$_MENU_PAGES}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_PAGES}
|
{$_MENU_AFTER_PAGES}
|
||||||
<li
|
<li
|
||||||
@ -1412,80 +1418,80 @@
|
|||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li {if $_routes[1] eq 'app' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'app' }class="active" {/if}><a
|
||||||
href="{$_url}settings/app">{Lang::T('General Settings')}</a></li>
|
href="{$_url}settings/app">{Lang::T('General Settings')}</a></li>
|
||||||
<li {if $_routes[1] eq 'localisation' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'localisation' }class="active" {/if}><a
|
||||||
href="{$_url}settings/localisation">{Lang::T('Localisation')}</a></li>
|
href="{$_url}settings/localisation">{Lang::T('Localisation')}</a></li>
|
||||||
<li {if $_routes[0] eq 'customfield' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'customfield' }class="active" {/if}><a
|
||||||
href="{$_url}customfield">{Lang::T('Custom Fields')}</a></li>
|
href="{$_url}customfield">{Lang::T('Custom Fields')}</a></li>
|
||||||
<li {if $_routes[1] eq 'miscellaneous' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'miscellaneous' }class="active" {/if}><a
|
||||||
href="{$_url}settings/miscellaneous">{Lang::T('Miscellaneous')}</a></li>
|
href="{$_url}settings/miscellaneous">{Lang::T('Miscellaneous')}</a></li>
|
||||||
<li {if $_routes[1] eq 'maintenance' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'maintenance' }class="active" {/if}><a
|
||||||
href="{$_url}settings/maintenance">{Lang::T('Maintenance Mode')}</a></li>
|
href="{$_url}settings/maintenance">{Lang::T('Maintenance Mode')}</a></li>
|
||||||
<li {if $_routes[1] eq 'notifications' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'notifications' }class="active" {/if}><a
|
||||||
href="{$_url}settings/notifications">{Lang::T('User Notification')}</a></li>
|
href="{$_url}settings/notifications">{Lang::T('User Notification')}</a></li>
|
||||||
<li {if $_routes[1] eq 'devices' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'devices' }class="active" {/if}><a
|
||||||
href="{$_url}settings/devices">{Lang::T('Devices')}</a></li>
|
href="{$_url}settings/devices">{Lang::T('Devices')}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin','Agent'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin','Agent'])}
|
||||||
<li {if $_routes[1] eq 'users' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'users' }class="active" {/if}><a
|
||||||
href="{$_url}settings/users">{Lang::T('Administrator Users')}</a></li>
|
href="{$_url}settings/users">{Lang::T('Administrator Users')}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li {if $_routes[1] eq 'dbstatus' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'dbstatus' }class="active" {/if}><a
|
||||||
href="{$_url}settings/dbstatus">{Lang::T('Backup/Restore')}</a></li>
|
href="{$_url}settings/dbstatus">{Lang::T('Backup/Restore')}</a></li>
|
||||||
<li {if $_system_menu eq 'paymentgateway' }class="active" {/if}>
|
<li {if $_system_menu eq 'paymentgateway' }class="active" {/if}>
|
||||||
<a href="{$_url}paymentgateway">
|
<a href="{$_url}paymentgateway">
|
||||||
<span class="text">{Lang::T('Payment Gateway')}</span>
|
<span class="text">{Lang::T('Payment Gateway')}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_SETTINGS}
|
{$_MENU_SETTINGS}
|
||||||
<li {if $_routes[0] eq 'pluginmanager' }class="active" {/if}>
|
<li {if $_routes[0] eq 'pluginmanager' }class="active" {/if}>
|
||||||
<a href="{$_url}pluginmanager"><i class="glyphicon glyphicon-tasks"></i>
|
<a href="{$_url}pluginmanager"><i class="glyphicon glyphicon-tasks"></i>
|
||||||
{Lang::T('Plugin Manager')}</a>
|
{Lang::T('Plugin Manager')}</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_SETTINGS}
|
{$_MENU_AFTER_SETTINGS}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li class="{if $_system_menu eq 'logs' }active{/if} treeview">
|
<li class="{if $_system_menu eq 'logs' }active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="ion ion-clock"></i> <span>{Lang::T('Logs')}</span>
|
<i class="ion ion-clock"></i> <span>{Lang::T('Logs')}</span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="treeview-menu">
|
<ul class="treeview-menu">
|
||||||
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
href="{$_url}logs/phpnuxbill">PhpNuxBill</a></li>
|
href="{$_url}logs/phpnuxbill">PhpNuxBill</a></li>
|
||||||
{if $_c['radius_enable']}
|
{if $_c['radius_enable']}
|
||||||
<li {if $_routes[1] eq 'radius' }class="active" {/if}><a
|
<li {if $_routes[1] eq 'radius' }class="active" {/if}><a
|
||||||
href="{$_url}logs/radius">Radius</a>
|
href="{$_url}logs/radius">Radius</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_LOGS}
|
{$_MENU_LOGS}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_LOGS}
|
{$_MENU_AFTER_LOGS}
|
||||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||||
<li {if $_routes[1] eq 'docs' }class="active" {/if}>
|
<li {if $_routes[1] eq 'docs' }class="active" {/if}>
|
||||||
<a href="{if $_c['docs_clicked'] != 'yes'}{$_url}settings/docs{else}./docs/{/if}">
|
<a href="{if $_c['docs_clicked'] != 'yes'}{$_url}settings/docs{else}./docs/{/if}">
|
||||||
<i class="ion ion-ios-bookmarks"></i>
|
<i class="ion ion-ios-bookmarks"></i>
|
||||||
<span class="text">{Lang::T('Documentation')}</span>
|
<span class="text">{Lang::T('Documentation')}</span>
|
||||||
{if $_c['docs_clicked'] != 'yes'}
|
{if $_c['docs_clicked'] != 'yes'}
|
||||||
<span class="pull-right-container"><small
|
<span class="pull-right-container"><small
|
||||||
class="label pull-right bg-green">New</small></span>
|
class="label pull-right bg-green">New</small></span>
|
||||||
{/if}
|
{/if}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li {if $_system_menu eq 'community' }class="active" {/if}>
|
<li {if $_system_menu eq 'community' }class="active" {/if}>
|
||||||
<a href="{$_url}community">
|
<a href="{$_url}community">
|
||||||
<i class="ion ion-chatboxes"></i>
|
<i class="ion ion-chatboxes"></i>
|
||||||
<span class="text">Community</span>
|
<span class="text">Community</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_COMMUNITY}
|
{$_MENU_AFTER_COMMUNITY}
|
||||||
</ul>
|
</ul>
|
||||||
@ -1493,11 +1499,11 @@
|
|||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
{if $_c['maintenance_mode'] == 1}
|
{if $_c['maintenance_mode'] == 1}
|
||||||
<div class="notification-top-bar">
|
<div class="notification-top-bar">
|
||||||
<p>{Lang::T('The website is currently in maintenance mode, this means that some or all functionality may be
|
<p>{Lang::T('The website is currently in maintenance mode, this means that some or all functionality may be
|
||||||
unavailable to regular users during this time.')}<small> <a
|
unavailable to regular users during this time.')}<small> <a
|
||||||
href="{$_url}settings/maintenance">{Lang::T('Turn Off')}</a></small></p>
|
href="{$_url}settings/maintenance">{Lang::T('Turn Off')}</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
@ -1509,19 +1515,19 @@
|
|||||||
|
|
||||||
<section class="content">
|
<section class="content">
|
||||||
{if isset($notify)}
|
{if isset($notify)}
|
||||||
<script>
|
<script>
|
||||||
// Display SweetAlert toast notification
|
// Display SweetAlert toast notification
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
icon: '{if $notify_t == "s"}success{else}error{/if}',
|
icon: '{if $notify_t == "s"}success{else}error{/if}',
|
||||||
title: '{$notify}',
|
title: '{$notify}',
|
||||||
position: 'top-end',
|
position: 'top-end',
|
||||||
showConfirmButton: false,
|
showConfirmButton: false,
|
||||||
timer: 5000,
|
timer: 5000,
|
||||||
timerProgressBar: true,
|
timerProgressBar: true,
|
||||||
didOpen: (toast) => {
|
didOpen: (toast) => {
|
||||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
Loading…
x
Reference in New Issue
Block a user