forked from kevinowino869/mitrobill
Merge branch 'Development'
This commit is contained in:
@ -323,7 +323,7 @@ try {
|
|||||||
$d->macaddr = _post('macAddr');
|
$d->macaddr = _post('macAddr');
|
||||||
$d->dateAdded = date('Y-m-d H:i:s');
|
$d->dateAdded = date('Y-m-d H:i:s');
|
||||||
$d->save();
|
$d->save();
|
||||||
if ($d->acctstatustype == 'Start') {
|
if (_post('acctStatusType') == 'Start') {
|
||||||
$tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `username` = '$username'")->where('status', 'on')->where('routers', 'radius')->find_one();
|
$tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `username` = '$username'")->where('status', 'on')->where('routers', 'radius')->find_one();
|
||||||
$plan = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
|
$plan = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
|
||||||
if ($plan['limit_type'] == "Data_Limit" || $plan['limit_type'] == "Both_Limit") {
|
if ($plan['limit_type'] == "Data_Limit" || $plan['limit_type'] == "Both_Limit") {
|
||||||
|
@ -325,6 +325,6 @@ class Validator
|
|||||||
public static function containsKeyword($string, $keywords = ['mikrotik', 'hotspot', 'pppoe', 'radius', 'dummy'])
|
public static function containsKeyword($string, $keywords = ['mikrotik', 'hotspot', 'pppoe', 'radius', 'dummy'])
|
||||||
{
|
{
|
||||||
$regex = '/' . implode('|', $keywords) . '/i';
|
$regex = '/' . implode('|', $keywords) . '/i';
|
||||||
return preg_match($regex, $string);
|
return preg_match($regex, strtolower($string));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -702,5 +702,26 @@
|
|||||||
"New_Voucher_Created": "New Voucher Created",
|
"New_Voucher_Created": "New Voucher Created",
|
||||||
"New_Voucher_for_10mbps_Created": "New Voucher for 10mbps Created",
|
"New_Voucher_for_10mbps_Created": "New Voucher for 10mbps Created",
|
||||||
"Show_Chart": "Show Chart",
|
"Show_Chart": "Show Chart",
|
||||||
"": ""
|
"For_PDF_Reports___Best_size_1078_x_200___uploaded_image_will_be_autosize": "For PDF Reports | Best size 1078 x 200 | uploaded image will be autosize",
|
||||||
|
"For_invoice_print_using_Thermal_Printer": "For invoice print using Thermal Printer",
|
||||||
|
"Theme": "Theme",
|
||||||
|
"Theme_Info": "Theme Info",
|
||||||
|
"This_used_for_admin_to_select_payment_in_recharge__using_comma_for_every_new_options": "This used for admin to select payment in recharge, using comma for every new options",
|
||||||
|
"Income_will_reset_every_this_day": "Income will reset every this day",
|
||||||
|
"edit_at_config_php": "edit at config.php",
|
||||||
|
"Hide_Dashboard_Content": "Hide Dashboard Content",
|
||||||
|
"Radius_Instructions": "Radius Instructions",
|
||||||
|
"Customer_can_request_to_extend_expirations": "Customer can request to extend expirations",
|
||||||
|
"i_agree_to_extends_and_will_paid_full_after_this": "i agree to extends and will paid full after this",
|
||||||
|
"Telegram_Bot_Token": "Telegram Bot Token",
|
||||||
|
"You_will_get_Payment_and_Error_notification_": "You will get Payment and Error notification<",
|
||||||
|
"Must_include": "Must include",
|
||||||
|
"it_will_be_replaced_": "it will be replaced.",
|
||||||
|
"Or_use_Mikrotik_SMS": "Or use Mikrotik SMS",
|
||||||
|
"You_can_use": "You can use",
|
||||||
|
"in_here_too_": "in here too.",
|
||||||
|
"Empty_this_to_use_internal_mail___PHP": "Empty this to use internal mail() PHP",
|
||||||
|
"Mail_Reply_To": "Mail Reply To",
|
||||||
|
"Customer_will_reply_email_to_this_address__empty_if_you_want_to_use_From_Address": "Customer will reply email to this address, empty if you want to use From Address",
|
||||||
|
"You_will_get_Payment_and_Error_notification": "You will get Payment and Error notification"
|
||||||
}
|
}
|
@ -83,7 +83,8 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4"><a
|
<p class="help-block col-md-4"><a
|
||||||
href="https://github.com/hotspotbilling/phpnuxbill/wiki/Themes" target="_blank">{Lang::T('Theme Info')}</a></p>
|
href="https://github.com/hotspotbilling/phpnuxbill/wiki/Themes"
|
||||||
|
target="_blank">{Lang::T('Theme Info')}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-2 control-label">{Lang::T('Recharge Using')}</label>
|
<label class="col-md-2 control-label">{Lang::T('Recharge Using')}</label>
|
||||||
@ -92,8 +93,9 @@
|
|||||||
value="{$_c['payment_usings']}"
|
value="{$_c['payment_usings']}"
|
||||||
placeholder="{Lang::T('Cash')}, {Lang::T('Bank Transfer')}">
|
placeholder="{Lang::T('Cash')}, {Lang::T('Bank Transfer')}">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('This used for admin to select payment in recharge, using comma
|
<p class="help-block col-md-4">
|
||||||
for every new options')}</p>
|
{Lang::T('This used for admin to select payment in recharge, using comma for every new options')}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -191,8 +193,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">
|
<p class="help-block col-md-4">
|
||||||
{Lang::T('Customer just Login with Phone number and Voucher Code, Voucher will be
|
{Lang::T('Customer just Login with Phone number and Voucher Code, Voucher will be password')}
|
||||||
password')}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -202,8 +203,7 @@
|
|||||||
placeholder="https://192.168.88.1/status" value="{$_c['voucher_redirect']}">
|
placeholder="https://192.168.88.1/status" value="{$_c['voucher_redirect']}">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">
|
<p class="help-block col-md-4">
|
||||||
{Lang::T('After Customer activate voucher or login, customer will be redirected to this
|
{Lang::T('After Customer activate voucher or login, customer will be redirected to this url')}
|
||||||
url')}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
@ -326,8 +326,9 @@
|
|||||||
value="{$_c['telegram_target_id']}" placeholder="12345678">
|
value="{$_c['telegram_target_id']}" placeholder="12345678">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<small id="emailHelp" class="form-text text-muted">{Lang::T('You will get Payment and Error
|
<small id="emailHelp" class="form-text text-muted">
|
||||||
notification<')}/small>
|
{Lang::T('You will get Payment and Error notification')}
|
||||||
|
</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
@ -344,7 +345,8 @@
|
|||||||
<input type="text" class="form-control" id="sms_url" name="sms_url" value="{$_c['sms_url']}"
|
<input type="text" class="form-control" id="sms_url" name="sms_url" value="{$_c['sms_url']}"
|
||||||
placeholder="https://domain/?param_number=[number]¶m_text=[text]&secret=">
|
placeholder="https://domain/?param_number=[number]¶m_text=[text]&secret=">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>, {Lang::T('it will be replaced.')}
|
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>,
|
||||||
|
{Lang::T('it will be replaced.')}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -359,11 +361,13 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>, {Lang::T('it will be replaced.')}
|
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>,
|
||||||
|
{Lang::T('it will be replaced.')}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp {Lang::T('in here too.')} <a
|
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp
|
||||||
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small>
|
{Lang::T('in here too.')} <a href="https://wa.nux.my.id/login" target="_blank">Free
|
||||||
|
Server</a></small>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
@ -380,10 +384,12 @@
|
|||||||
<input type="text" class="form-control" id="wa_url" name="wa_url" value="{$_c['wa_url']}"
|
<input type="text" class="form-control" id="wa_url" name="wa_url" value="{$_c['wa_url']}"
|
||||||
placeholder="https://domain/?param_number=[number]¶m_text=[text]&secret=">
|
placeholder="https://domain/?param_number=[number]¶m_text=[text]&secret=">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>, {Lang::T('it will be replaced.')}
|
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> & <b>[number]</b>,
|
||||||
|
{Lang::T('it will be replaced.')}
|
||||||
</div>
|
</div>
|
||||||
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp {Lang::T('in here too.')} <a
|
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp
|
||||||
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small>
|
{Lang::T('in here too.')} <a href="https://wa.nux.my.id/login" target="_blank">Free
|
||||||
|
Server</a></small>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
@ -449,8 +455,9 @@
|
|||||||
<input type="text" class="form-control" id="mail_reply_to" name="mail_reply_to"
|
<input type="text" class="form-control" id="mail_reply_to" name="mail_reply_to"
|
||||||
value="{$_c['mail_reply_to']}" placeholder="support@host.tld">
|
value="{$_c['mail_reply_to']}" placeholder="support@host.tld">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Customer will reply email to this address, empty if you want to
|
<p class="help-block col-md-4">
|
||||||
use From Address')}</p>
|
{Lang::T('Customer will reply email to this address, empty if you want to use From Address')}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
@ -585,19 +592,23 @@
|
|||||||
<label class="col-md-2 control-label">{Lang::T('Enable Session Timeout')}</label>
|
<label class="col-md-2 control-label">{Lang::T('Enable Session Timeout')}</label>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="switch">
|
<label class="switch">
|
||||||
<input type="checkbox" id="enable_session_timeout" value="1" name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}>
|
<input type="checkbox" id="enable_session_timeout" value="1"
|
||||||
|
name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}>
|
||||||
<span class="slider"></span>
|
<span class="slider"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Logout Admin if not Available/Online a period of time')}</p>
|
<p class="help-block col-md-4">
|
||||||
|
{Lang::T('Logout Admin if not Available/Online a period of time')}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" id="timeout_duration_input" style="display: none;">
|
<div class="form-group" id="timeout_duration_input" style="display: none;">
|
||||||
<label class="col-md-2 control-label">{Lang::T('Timeout Duration')}</label>
|
<label class="col-md-2 control-label">{Lang::T('Timeout Duration')}</label>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<input type="number" value="{$_c['session_timeout_duration']}" class="form-control" name="session_timeout_duration" id="session_timeout_duration"
|
<input type="number" value="{$_c['session_timeout_duration']}" class="form-control"
|
||||||
placeholder="{Lang::T('Enter the session timeout duration (minutes)')}" min="1">
|
name="session_timeout_duration" id="session_timeout_duration"
|
||||||
|
placeholder="{Lang::T('Enter the session timeout duration (minutes)')}" min="1">
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('Idle Timeout, Logout Admin if Idle for xx minutes')}</p>
|
<p class="help-block col-md-4">{Lang::T('Idle Timeout, Logout Admin if Idle for xx minutes')}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-2 control-label">{Lang::T('New Version Notification')}</label>
|
<label class="col-md-2 control-label">{Lang::T('New Version Notification')}</label>
|
||||||
@ -624,8 +635,9 @@
|
|||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">{Lang::T('OTP is required when user want to change phone
|
<p class="help-block col-md-4">
|
||||||
number')}</p>
|
{Lang::T('OTP is required when user want to change phone number')}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-2 control-label">{Lang::T('OTP Method')}</label>
|
<label class="col-md-2 control-label">{Lang::T('OTP Method')}</label>
|
||||||
@ -749,11 +761,11 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-2 control-label">Github Username</label>
|
<label class="col-md-2 control-label">Github Username</label>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-addon">https://github.com/</span>
|
<span class="input-group-addon">https://github.com/</span>
|
||||||
<input type="text" class="form-control" id="github_username" name="github_username"
|
<input type="text" class="form-control" id="github_username" name="github_username"
|
||||||
value="{$_c['github_username']}" placeholder="ibnux">
|
value="{$_c['github_username']}" placeholder="ibnux">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -764,7 +776,8 @@
|
|||||||
onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'">
|
onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'">
|
||||||
</div>
|
</div>
|
||||||
<span class="help-block col-md-4"><a href="https://github.com/settings/tokens/new"
|
<span class="help-block col-md-4"><a href="https://github.com/settings/tokens/new"
|
||||||
target="_blank">Create GitHub personal access token (classic)</a>, only need repo scope</span>
|
target="_blank">Create GitHub personal access token (classic)</a>, only need repo
|
||||||
|
scope</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-md-offset-2 col-md-8" style="text-align: left;">This will allow
|
<label class="control-label col-md-offset-2 col-md-8" style="text-align: left;">This will allow
|
||||||
@ -776,8 +789,9 @@
|
|||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button class="btn btn-success btn-block" type="submit">{Lang::T('Save
|
<button class="btn btn-success btn-block" type="submit">
|
||||||
Changes')}</button>
|
{Lang::T('Save Changes')}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -823,7 +837,8 @@ add dst-host=*.{$_domain}</pre>
|
|||||||
});
|
});
|
||||||
|
|
||||||
document.querySelector('form').addEventListener('submit', function(event) {
|
document.querySelector('form').addEventListener('submit', function(event) {
|
||||||
if (sectionTimeoutCheckbox.checked && (!timeoutDurationField.value || isNaN(timeoutDurationField.value))) {
|
if (sectionTimeoutCheckbox.checked && (!timeoutDurationField.value || isNaN(
|
||||||
|
timeoutDurationField.value))) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
alert('Please enter a valid session timeout duration.');
|
alert('Please enter a valid session timeout duration.');
|
||||||
timeoutDurationField.focus();
|
timeoutDurationField.focus();
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": "2024.8.13"
|
"version": "2024.8.15"
|
||||||
}
|
}
|
Reference in New Issue
Block a user