2024.3.19
This commit is contained in:
parent
8f595af9a1
commit
5b3be79420
@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## 2024.3.19
|
||||||
|
|
||||||
|
- Add Customer Type Personal or Bussiness by @pro-cms
|
||||||
|
- Fix Broadcast Message by @Focuslinkstech
|
||||||
|
- Add Customer Geolocation by @Focuslinkstech
|
||||||
|
- Change Customer Menu
|
||||||
|
|
||||||
## 2024.3.18
|
## 2024.3.18
|
||||||
|
|
||||||
- Add Broadcasting SMS by @Focuslinkstech
|
- Add Broadcasting SMS by @Focuslinkstech
|
||||||
|
@ -26,7 +26,7 @@ CREATE TABLE `tbl_customers` (
|
|||||||
`address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
`address` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
||||||
`phonenumber` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0',
|
`phonenumber` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0',
|
||||||
`email` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1',
|
`email` varchar(128) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1',
|
||||||
`coordinates` VARCHAR(50) NOT NULL DEFAULT '6.465422, 3.406448' COMMENT 'Latitude and Longitude coordinates',
|
`coordinates` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Latitude and Longitude coordinates',
|
||||||
`balance` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT 'For Money Deposit',
|
`balance` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT 'For Money Deposit',
|
||||||
`service_type` ENUM('Hotspot','PPPoE','Others') DEFAULT 'Others' COMMENT 'For selecting user type',
|
`service_type` ENUM('Hotspot','PPPoE','Others') DEFAULT 'Others' COMMENT 'For selecting user type',
|
||||||
`account_type` ENUM('Business', 'Personal') DEFAULT 'Personal' COMMENT 'For selecting account type',
|
`account_type` ENUM('Business', 'Personal') DEFAULT 'Personal' COMMENT 'For selecting account type',
|
||||||
|
@ -512,5 +512,14 @@
|
|||||||
"All_Customers": "All Customers",
|
"All_Customers": "All Customers",
|
||||||
"New_Customers": "New Customers",
|
"New_Customers": "New Customers",
|
||||||
"Expired_Customers": "Expired Customers",
|
"Expired_Customers": "Expired Customers",
|
||||||
"Active_Customers": "Active Customers"
|
"Active_Customers": "Active Customers",
|
||||||
|
"Map": "Map",
|
||||||
|
"Customer_Location": "Customer Location",
|
||||||
|
"Account_Type": "Account Type",
|
||||||
|
"Coordinates": "Coordinates",
|
||||||
|
"Latitude_and_Longitude_coordinates_for_map_must_be_separate_with_comma____": "Latitude and Longitude coordinates for map must be separate with comma ","",
|
||||||
|
"6_465422__3_406448": "6.465422, 3.406448",
|
||||||
|
"Customer_Geo_Location_Information": "Customer Geo Location Information",
|
||||||
|
"List": "List",
|
||||||
|
"Lists": "Lists"
|
||||||
}
|
}
|
@ -80,8 +80,9 @@
|
|||||||
"ALTER TABLE `tbl_transactions` ADD `note` VARCHAR(256) NOT NULL DEFAULT '' COMMENT 'for note' AFTER `type`;"
|
"ALTER TABLE `tbl_transactions` ADD `note` VARCHAR(256) NOT NULL DEFAULT '' COMMENT 'for note' AFTER `type`;"
|
||||||
],
|
],
|
||||||
"2024.3.19" : [
|
"2024.3.19" : [
|
||||||
"ALTER TABLE `tbl_customers` ADD `coordinates` VARCHAR(50) NOT NULL DEFAULT '6.465422, 3.406448' COMMENT 'Latitude and Longitude coordinates' AFTER `email`;"
|
"ALTER TABLE `tbl_customers` ADD `coordinates` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Latitude and Longitude coordinates' AFTER `email`;"
|
||||||
|
],
|
||||||
|
"2024.3.19.1" : [
|
||||||
|
"ALTER TABLE `tbl_customers` ADD `account_type` ENUM('Business', 'Personal') DEFAULT 'Personal' COMMENT 'For selecting account type' AFTER `coordinates`;"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -5,41 +5,56 @@
|
|||||||
|
|
||||||
{literal}
|
{literal}
|
||||||
<script>
|
<script>
|
||||||
|
function getLocation() {
|
||||||
|
if (navigator.geolocation) {
|
||||||
|
navigator.geolocation.getCurrentPosition(showPosition);
|
||||||
|
} else {
|
||||||
|
setupMap(51.505, -0.09);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showPosition(position) {
|
||||||
|
setupMap(position.coords.latitude, position.coords.longitude);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setupMap(lat, lon) {
|
||||||
|
var map = L.map('map').setView([lat, lon], 13);
|
||||||
|
var group = L.featureGroup().addTo(map);
|
||||||
|
|
||||||
|
var customers = {/literal}{$customers|json_encode}{literal};
|
||||||
|
|
||||||
|
L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}.png', {
|
||||||
|
attribution:
|
||||||
|
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <a href="https://carto.com/attributions">CARTO</a>',
|
||||||
|
subdomains: 'abcd',
|
||||||
|
maxZoom: 20
|
||||||
|
}).addTo(map);
|
||||||
|
|
||||||
|
customers.forEach(function(customer) {
|
||||||
|
var name = customer.id;
|
||||||
|
var name = customer.name;
|
||||||
|
var info = customer.info;
|
||||||
|
var coordinates = customer.coordinates;
|
||||||
|
var balance = customer.balance;
|
||||||
|
var address = customer.address;
|
||||||
|
|
||||||
|
// Create a popup for the marker
|
||||||
|
var popupContent = "<strong>Customer Name</strong>: " + name + "<br>" +
|
||||||
|
"<strong>Customer Info</strong>: " + info + "<br>" +
|
||||||
|
"<strong>Customer Balance</strong>: " + balance + "<br>" +
|
||||||
|
"<strong>Address</strong>: " + address + "<br>" +
|
||||||
|
"<strong>Coordinates</strong>: " + coordinates + "<br>" +
|
||||||
|
"<a href='{/literal}{$_url}{literal}customers/view/"+ customer.id +"'>More Info</a><br>";
|
||||||
|
|
||||||
|
// Add marker to map
|
||||||
|
var marker = L.marker(JSON.parse(coordinates)).addTo(group);
|
||||||
|
marker.bindTooltip(name).bindPopup(popupContent);
|
||||||
|
});
|
||||||
|
|
||||||
|
map.fitBounds(group.getBounds());
|
||||||
|
}
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
var map = L.map('map').setView([51.505, -0.09], 13);
|
getLocation();
|
||||||
var group = L.featureGroup().addTo(map);
|
|
||||||
|
|
||||||
var customers = {/literal}{$customers|json_encode}{literal};
|
|
||||||
|
|
||||||
L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}.png', {
|
|
||||||
attribution:
|
|
||||||
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <a href="https://carto.com/attributions">CARTO</a>',
|
|
||||||
subdomains: 'abcd',
|
|
||||||
maxZoom: 20
|
|
||||||
}).addTo(map);
|
|
||||||
|
|
||||||
customers.forEach(function(customer) {
|
|
||||||
var name = customer.id;
|
|
||||||
var name = customer.name;
|
|
||||||
var info = customer.info;
|
|
||||||
var coordinates = customer.coordinates;
|
|
||||||
var balance = customer.balance;
|
|
||||||
var address = customer.address;
|
|
||||||
|
|
||||||
// Create a popup for the marker
|
|
||||||
var popupContent = "<strong>Customer Name</strong>: " + name + "<br>" +
|
|
||||||
"<strong>Customer Info</strong>: " + info + "<br>" +
|
|
||||||
"<strong>Customer Balance</strong>: " + balance + "<br>" +
|
|
||||||
"<strong>Address</strong>: " + address + "<br>" +
|
|
||||||
"<strong>Coordinates</strong>: " + coordinates + "<br>" +
|
|
||||||
"<a href='{/literal}{$_url}{literal}customers/view/"+ customer.id +"'>More Info</a><br>";
|
|
||||||
|
|
||||||
// Add marker to map
|
|
||||||
var marker = L.marker(JSON.parse(coordinates)).addTo(group);
|
|
||||||
marker.bindTooltip(name).bindPopup(popupContent);
|
|
||||||
});
|
|
||||||
|
|
||||||
map.fitBounds(group.getBounds());
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
{/literal}
|
{/literal}
|
||||||
|
@ -30,7 +30,8 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-2 control-label">{Lang::T('Message')}</label>
|
<label class="col-md-2 control-label">{Lang::T('Message')}</label>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<textarea class="form-control" id="message" name="message" placeholder="{Lang::T('Compose your message...')}" rows="5"></textarea>
|
<textarea class="form-control" id="message" name="message"
|
||||||
|
placeholder="{Lang::T('Compose your message...')}" rows="5"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block col-md-4">
|
<p class="help-block col-md-4">
|
||||||
{Lang::T('Use placeholders:')}
|
{Lang::T('Use placeholders:')}
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{if isset($xheader)}
|
{if isset($xheader)}
|
||||||
{$xheader}
|
{$xheader}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
@ -158,62 +158,71 @@
|
|||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_DASHBOARD}
|
{$_MENU_AFTER_DASHBOARD}
|
||||||
{if !in_array($_admin['user_type'],['Report'])}
|
{if !in_array($_admin['user_type'],['Report'])}
|
||||||
<li {if $_system_menu eq 'customers' }class="active" {/if}>
|
<li class="{if in_array($_system_menu, ['customers', 'map'])}active{/if} treeview">
|
||||||
<a href="{$_url}customers">
|
<a href="#">
|
||||||
<i class="fa fa-users"></i>
|
<i class="fa fa-users"></i> <span>{Lang::T('Customer')}</span>
|
||||||
<span>{Lang::T('Customer')}</span>
|
<span class="pull-right-container">
|
||||||
</a>
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</li>
|
</span>
|
||||||
{$_MENU_AFTER_CUSTOMERS}
|
</a>
|
||||||
<li class="{if $_system_menu eq 'plan'}active{/if} treeview">
|
<ul class="treeview-menu">
|
||||||
<a href="#">
|
<li {if $_system_menu eq 'customers' }class="active" {/if}><a
|
||||||
<i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span>
|
href="{$_url}customers">{Lang::T('Lists')}</a></li>
|
||||||
<span class="pull-right-container">
|
<li {if $_system_menu eq 'map' }class="active" {/if}><a
|
||||||
<i class="fa fa-angle-left pull-right"></i>
|
href="{$_url}map/customer">{Lang::T('Location')}</a></li>
|
||||||
</span>
|
{$_MENU_CUSTOMERS}
|
||||||
</a>
|
</ul>
|
||||||
<ul class="treeview-menu">
|
</li>
|
||||||
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
{$_MENU_AFTER_CUSTOMERS}
|
||||||
href="{$_url}plan/list">{Lang::T('Active Users')}</a></li>
|
<li class="{if $_system_menu eq 'plan'}active{/if} treeview">
|
||||||
{if $_c['disable_voucher'] != 'yes'}
|
<a href="#">
|
||||||
<li {if $_routes[1] eq 'voucher' }class="active" {/if}><a
|
<i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span>
|
||||||
href="{$_url}plan/voucher">{Lang::T('Vouchers')}</a></li>
|
<span class="pull-right-container">
|
||||||
<li {if $_routes[1] eq 'refill' }class="active" {/if}><a
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
href="{$_url}plan/refill">{Lang::T('Refill Customer')}</a></li>
|
</span>
|
||||||
{/if}
|
</a>
|
||||||
<li {if $_routes[1] eq 'recharge' }class="active" {/if}><a
|
<ul class="treeview-menu">
|
||||||
href="{$_url}plan/recharge">{Lang::T('Recharge Customer')}</a></li>
|
<li {if $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
{if $_c['enable_balance'] == 'yes'}
|
href="{$_url}plan/list">{Lang::T('Active Users')}</a></li>
|
||||||
<li {if $_routes[1] eq 'deposit' }class="active" {/if}><a
|
{if $_c['disable_voucher'] != 'yes'}
|
||||||
href="{$_url}plan/deposit">{Lang::T('Refill Balance')}</a></li>
|
<li {if $_routes[1] eq 'voucher' }class="active" {/if}><a
|
||||||
{/if}
|
href="{$_url}plan/voucher">{Lang::T('Vouchers')}</a></li>
|
||||||
{$_MENU_SERVICES}
|
<li {if $_routes[1] eq 'refill' }class="active" {/if}><a
|
||||||
</ul>
|
href="{$_url}plan/refill">{Lang::T('Refill Customer')}</a></li>
|
||||||
</li>
|
{/if}
|
||||||
|
<li {if $_routes[1] eq 'recharge' }class="active" {/if}><a
|
||||||
|
href="{$_url}plan/recharge">{Lang::T('Recharge Customer')}</a></li>
|
||||||
|
{if $_c['enable_balance'] == 'yes'}
|
||||||
|
<li {if $_routes[1] eq 'deposit' }class="active" {/if}><a
|
||||||
|
href="{$_url}plan/deposit">{Lang::T('Refill Balance')}</a></li>
|
||||||
|
{/if}
|
||||||
|
{$_MENU_SERVICES}
|
||||||
|
</ul>
|
||||||
|
</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('Plans')}</span>
|
<i class="ion ion-cube"></i> <span>{Lang::T('Plans')}</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">{Lang::T('Hotspot')}</a></li>
|
href="{$_url}services/hotspot">{Lang::T('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">{Lang::T('PPPOE')}</a></li>
|
href="{$_url}services/pppoe">{Lang::T('PPPOE')}</a></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">{Lang::T('Bandwidth')}</a></li>
|
href="{$_url}bandwidth/list">{Lang::T('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('Balance')}</a></li>
|
href="{$_url}services/balance">{Lang::T('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">
|
||||||
@ -234,20 +243,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{$_MENU_AFTER_REPORTS}
|
{$_MENU_AFTER_REPORTS}
|
||||||
<li class="{if $_system_menu eq 'map'}active{/if} treeview">
|
|
||||||
<a href="#">
|
|
||||||
<i class="ion ion-ios-location"></i> <span>{Lang::T('Map')}</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 'customer' }class="active" {/if}><a
|
|
||||||
href="{$_url}map/customer">{Lang::T('Customer Location')}</a></li>
|
|
||||||
{$_MENU_MAP}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{$_MENU_AFTER_MAP}
|
|
||||||
<li class="{if $_system_menu eq 'message'}active{/if} treeview">
|
<li class="{if $_system_menu eq 'message'}active{/if} treeview">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="ion ion-android-chat"></i> <span>{Lang::T('Send Message')}</span>
|
<i class="ion ion-android-chat"></i> <span>{Lang::T('Send Message')}</span>
|
||||||
@ -265,64 +260,64 @@
|
|||||||
</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 'list' }class="active" {/if}><a
|
<li {if $_routes[0] eq 'routers' and $_routes[1] eq 'list' }class="active" {/if}><a
|
||||||
href="{$_url}routers/list">{Lang::T('Routers')}</a></li>
|
href="{$_url}routers/list">{Lang::T('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">{Lang::T('IP Pool')}</a></li>
|
href="{$_url}pool/list">{Lang::T('IP Pool')}</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('Voucher')} Template</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>
|
||||||
<li {if $_routes[1] eq 'Registration_Info' }class="active" {/if}><a
|
{/if}
|
||||||
href="{$_url}pages/Registration_Info">{Lang::T('Registration Info')}</a></li>
|
{$_MENU_AFTER_RADIUS}
|
||||||
<li {if $_routes[1] eq 'Privacy_Policy' }class="active" {/if}><a
|
<li class="{if $_system_menu eq 'pages'}active{/if} treeview">
|
||||||
href="{$_url}pages/Privacy_Policy">Privacy Policy</a></li>
|
<a href="#">
|
||||||
<li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
|
<i class="ion ion-document"></i> <span>{Lang::T("Static Pages")}</span>
|
||||||
href="{$_url}pages/Terms_and_Conditions">Terms and Conditions</a></li>
|
<span class="pull-right-container">
|
||||||
{$_MENU_PAGES}
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
</ul>
|
</span>
|
||||||
</li>
|
</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('Voucher')} Template</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 'Privacy_Policy' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Privacy_Policy">Privacy Policy</a></li>
|
||||||
|
<li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
|
||||||
|
href="{$_url}pages/Terms_and_Conditions">Terms and Conditions</a></li>
|
||||||
|
{$_MENU_PAGES}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_PAGES}
|
{$_MENU_AFTER_PAGES}
|
||||||
<li
|
<li
|
||||||
@ -335,31 +330,31 @@
|
|||||||
</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[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>
|
||||||
{/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')} <small class="label pull-right">Free</small></a>
|
{Lang::T('Plugin Manager')} <small class="label pull-right">Free</small></a>
|
||||||
</li>
|
</li>
|
||||||
{* <li {if $_routes[0] eq 'codecanyon' }class="active" {/if}>
|
{* <li {if $_routes[0] eq 'codecanyon' }class="active" {/if}>
|
||||||
<a href="{$_url}codecanyon"><i class="glyphicon glyphicon-shopping-cart"></i>
|
<a href="{$_url}codecanyon"><i class="glyphicon glyphicon-shopping-cart"></i>
|
||||||
Codecanyon.net <small class="label pull-right">Paid</small></a>
|
Codecanyon.net <small class="label pull-right">Paid</small></a>
|
||||||
</li> *}
|
</li> *}
|
||||||
@ -368,24 +363,24 @@
|
|||||||
</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}
|
||||||
</ul>
|
</ul>
|
||||||
{$_MENU_LOGS}
|
{$_MENU_LOGS}
|
||||||
</li>
|
</li>
|
||||||
{/if}
|
{/if}
|
||||||
{$_MENU_AFTER_LOGS}
|
{$_MENU_AFTER_LOGS}
|
||||||
<li {if $_system_menu eq 'community' }class="active" {/if}>
|
<li {if $_system_menu eq 'community' }class="active" {/if}>
|
||||||
@ -408,20 +403,20 @@
|
|||||||
|
|
||||||
<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}',
|
||||||
toast: true,
|
toast: true,
|
||||||
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}
|
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": "2024.3.18"
|
"version": "2024.3.19"
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user