+
+
+
+
+
+
+ {if $_c['hide_mrc'] != 'yes'}
+
+ {/if}
+
+
+
+ {if $_c['hide_tms'] != 'yes'}
+
+ {/if}
+
+
+ {if $_c['hide_uet'] != 'yes'}
+
+
+
+
+
+
+
+ {Lang::T('Fullname')}
+ {Lang::T('Username')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Router')}
+ {Lang::T('Package')}
+ {Lang::T('Action')}
+
+
+
+ {foreach $expire as $expired}
+
+ {$expired['fullname']}
+ {$expired['username']}
+ {Lang::dateAndTimeFormat($expired['recharged_on'],$expired['recharged_time'])}
+
+ {Lang::dateAndTimeFormat($expired['expiration'],$expired['time'])}
+
+ {$expired['routers']}
+ {$expired['namebp']}
+
+ {Lang::T('Recharge')}
+
+
+
+ {/foreach}
+
+
+ {include file="pagination.tpl"}
+
+
+ {/if}
+
+
+ {if $_c['disable_voucher'] != 'yes' && $stocks['unused']>0 || $stocks['used']>0}
+ {if $_c['hide_vs'] != 'yes'}
+
+
+
+
+
+
+ {Lang::T('Plan Name')}
+ unused
+ used
+
+
+
+ {foreach $plans as $stok}
+
+ {$stok['name_plan']}
+ {$stok['unused']}
+ {$stok['used']}
+
+
+ {/foreach}
+
+ Total
+ {$stocks['unused']}
+ {$stocks['used']}
+
+
+
+
+ {/if}
+ {/if}
+
+
+
+
+ {if $_c['hide_aui'] != 'yes'}
+
+ {/if}
+
+
+ {if $_c['hide_al'] != 'yes'}
+
+ {/if}
+
+
+
+
+
+
+
+ {include file="sections/footer.tpl"}
diff --git a/ui/ui/dbstatus.tpl b/ui/ui/dbstatus.tpl
new file mode 100644
index 0000000..009ad6b
--- /dev/null
+++ b/ui/ui/dbstatus.tpl
@@ -0,0 +1,61 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/deposit.tpl b/ui/ui/deposit.tpl
new file mode 100644
index 0000000..2db7de4
--- /dev/null
+++ b/ui/ui/deposit.tpl
@@ -0,0 +1,183 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
+
+
\ No newline at end of file
diff --git a/ui/ui/hotspot-add.tpl b/ui/ui/hotspot-add.tpl
new file mode 100644
index 0000000..30f5f5d
--- /dev/null
+++ b/ui/ui/hotspot-add.tpl
@@ -0,0 +1,222 @@
+{include file="sections/header.tpl"}
+
+
+
+ {if $_c['radius_enable']}
+ {literal}
+
+ {/literal}
+ {/if}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/hotspot-edit.tpl b/ui/ui/hotspot-edit.tpl
new file mode 100644
index 0000000..f3cd4ed
--- /dev/null
+++ b/ui/ui/hotspot-edit.tpl
@@ -0,0 +1,258 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+ {if $_c['radius_enable'] && $d['is_radius']}
+ {literal}
+
+ {/literal}
+ {/if}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/hotspot.tpl b/ui/ui/hotspot.tpl
new file mode 100644
index 0000000..26f5ab1
--- /dev/null
+++ b/ui/ui/hotspot.tpl
@@ -0,0 +1,95 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Type')}
+ {Lang::T('Bandwidth Plans')}
+ {Lang::T('Plan Category')}
+ {Lang::T('Plan Price')}
+ {Lang::T('Time Limit')}
+ {Lang::T('Data Limit')}
+ {Lang::T('Plan Validity')}
+ {Lang::T('Routers')}
+ {Lang::T('Expired IP Pool')}
+ {Lang::T('ID')}
+ {Lang::T('Manage')}
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['name_plan']}
+ {$ds['plan_type']}
+ {$ds['name_bw']}
+ {$ds['typebp']}
+ {Lang::moneyFormat($ds['price'])}
+ {$ds['time_limit']} {$ds['time_unit']}
+ {$ds['data_limit']} {$ds['data_unit']}
+ {$ds['validity']} {$ds['validity_unit']}
+
+ {if $ds['is_radius']}
+ RADIUS
+ {else}
+ {if $ds['routers']!=''}
+ {$ds['routers']}
+ {/if}
+ {/if}
+
+ {$ds['pool_expired']}{if $ds['list_expired']}{if $ds['pool_expired']} |
+ {/if}{$ds['list_expired']}{/if}
+ {$ds['id']}
+
+ {Lang::T('Edit')}
+
+
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/hotspot_users.tpl b/ui/ui/hotspot_users.tpl
new file mode 100644
index 0000000..b537ed0
--- /dev/null
+++ b/ui/ui/hotspot_users.tpl
@@ -0,0 +1,69 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Username')}
+ {Lang::T('Address')}
+ {Lang::T('Uptime')}
+ {Lang::T('Server')}
+ {Lang::T('MAC Address')}
+ {Lang::T('Session Time')}
+ {Lang::T('Upload')}
+ {Lang::T('Download')}
+ {Lang::T('Total')}
+ {Lang::T('Action')}
+
+
+
+
+
+
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+{include file="sections/footer.tpl"}
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/index.html b/ui/ui/index.html
new file mode 100644
index 0000000..9757970
--- /dev/null
+++ b/ui/ui/index.html
@@ -0,0 +1,8 @@
+
+
+
403 Forbidden
+
+
+
Directory access is forbidden.
+
+
\ No newline at end of file
diff --git a/ui/ui/indexmain.tpl b/ui/ui/indexmain.tpl
new file mode 100644
index 0000000..9fa8d97
--- /dev/null
+++ b/ui/ui/indexmain.tpl
@@ -0,0 +1,815 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
100 Projects/ monthy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Therichpost
+
Youtuber
+
Folllow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Yoast
+ Esac
+
+
Created on Sep 8th, 2020
+
+
+
+
Yoast
+ Esac
+
+
Created on Sep 8th, 2020
+
+
+
+
Yoast
+ Esac
+
+
Created on Sep 8th, 2020
+
+
+
+
+
+
+
+
+
+
+
Quick To-Do List
+ Lorem ipsum dolor sit amet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You don’t have badges yet
+
Earn Budges
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/invoice-customer.tpl b/ui/ui/invoice-customer.tpl
new file mode 100644
index 0000000..777ec41
--- /dev/null
+++ b/ui/ui/invoice-customer.tpl
@@ -0,0 +1,21 @@
+{include file="sections/user-header.tpl"}
+
+
+{include file="sections/user-footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/invoice-print.tpl b/ui/ui/invoice-print.tpl
new file mode 100644
index 0000000..f470f23
--- /dev/null
+++ b/ui/ui/invoice-print.tpl
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Login')} - {$_c['CompanyName']}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {if $content}
+ {$content} {else}
+ {Lang::pad($_c['CompanyName'],' ', 2)}
+ {Lang::pad($_c['address'],' ', 2)}
+ {Lang::pad($_c['phone'],' ', 2)}
+ {Lang::pad("", '=')}
+ {Lang::pads("Invoice", $in['invoice'], ' ')}
+ {Lang::pads(Lang::T('Date'), $date, ' ')}
+ {Lang::pads(Lang::T('Sales'), $_admin['fullname'], ' ')}
+ {Lang::pad("", '=')}
+ {Lang::pads(Lang::T('Type'), $in['type'], ' ')}
+ {Lang::pads(Lang::T('Plan Name'), $in['plan_name'], ' ')}
+ {Lang::pads(Lang::T('Plan Price'), Lang::moneyFormat($in['price']), ' ')}
+ {Lang::pad($in['method'], ' ', 2)}
+
+ {Lang::pads(Lang::T('Username'), $in['username'], ' ')}
+ {Lang::pads(Lang::T('Password'), '**********', ' ')}
+ {if $in['type'] != 'Balance'}
+ {Lang::pads(Lang::T('Created On'), Lang::dateAndTimeFormat($in['recharged_on'],$in['recharged_time']), ' ')}
+ {Lang::pads(Lang::T('Expires On'), Lang::dateAndTimeFormat($in['expiration'],$in['time']), ' ')}
+ {/if}
+ {Lang::pad("", '=')}
+ {Lang::pad($_c['note'],' ', 2)}
+ {/if}
+
+
+
+ {if $nuxprint}
+
+
+ Print Invoice
+
+
+
+
+
+
+
+
+ {if isset($xfooter)}
+ {$xfooter}
+ {/if}
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/invoice.tpl b/ui/ui/invoice.tpl
new file mode 100644
index 0000000..549d15e
--- /dev/null
+++ b/ui/ui/invoice.tpl
@@ -0,0 +1,43 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/language-add.tpl b/ui/ui/language-add.tpl
new file mode 100644
index 0000000..21e4777
--- /dev/null
+++ b/ui/ui/language-add.tpl
@@ -0,0 +1,31 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+ {foreach $langs as $lang}
+
+ {/foreach}
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/logs-cron.tpl b/ui/ui/logs-cron.tpl
new file mode 100644
index 0000000..29eb523
--- /dev/null
+++ b/ui/ui/logs-cron.tpl
@@ -0,0 +1,199 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{$stats.total_runs}
+
Total Runs (7 days)
+
+
+
+
+
+
+
{$stats.successful_runs}
+
Successful Runs
+
+
+
+
+
+
+
{$stats.failed_runs}
+
Failed Runs
+
+
+
+
+
+
+
{$stats.avg_execution_time}s
+
Avg Execution Time
+
+
+
+
+
+
+
+
Last Run Information
+
Last Run: {if $stats.last_run}{$stats.last_run}{else}Never{/if}
+
Last Success: {if $stats.last_success}{$stats.last_success}{else}Never{/if}
+
Last Failure: {if $stats.last_failure}{$stats.last_failure}{else}Never{/if}
+
+
+
+
+
+
+
+
+
+
+
+ All Types
+ Main Cron
+ Reminder Cron
+
+
+
+
+ All Status
+ Completed
+ Failed
+ Running
+
+
+
+ Filter
+
+
+ Clear
+
+
+
+
+
+
+
+
+
+
+ ID
+ Type
+ Started
+ Finished
+ Status
+ Duration
+ Expired Users
+ Notifications
+ Auto Renewals
+ Memory
+ Error
+
+
+
+ {foreach from=$d item=log}
+
+ {$log.id}
+
+
+ {$log.cron_type|upper}
+
+
+ {$log.started_at}
+ {if $log.finished_at}{$log.finished_at}{else}-{/if}
+
+
+ {$log.status|upper}
+
+
+
+ {if $log.execution_time}
+ {$log.execution_time}s
+ {else}
+ -
+ {/if}
+
+
+ {$log.expired_users_processed}
+ {if $log.expired_users_found != $log.expired_users_processed}
+ ({$log.expired_users_found} found)
+ {/if}
+
+
+ {$log.notifications_sent}
+
+
+ {if $log.auto_renewals_attempted > 0}
+ {$log.auto_renewals_successful}/{$log.auto_renewals_attempted}
+ {else}
+ -
+ {/if}
+
+
+ {if $log.memory_usage}
+ {$log.memory_usage}
+ {else}
+ -
+ {/if}
+
+
+ {if $log.error_message}
+
+
+
+ {else}
+ -
+ {/if}
+
+
+ {foreachelse}
+
+
+ No cron logs found
+
+
+ {/foreach}
+
+
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
Legend:
+
+ COMPLETED - Cron job finished successfully
+ FAILED - Cron job encountered an error
+ RUNNING - Cron job is currently running
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
diff --git a/ui/ui/logs-radius.tpl b/ui/ui/logs-radius.tpl
new file mode 100644
index 0000000..d95dd23
--- /dev/null
+++ b/ui/ui/logs-radius.tpl
@@ -0,0 +1,71 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/logs.tpl b/ui/ui/logs.tpl
new file mode 100644
index 0000000..c43864d
--- /dev/null
+++ b/ui/ui/logs.tpl
@@ -0,0 +1,66 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+ {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
+
+ {/if}
+ Activity Log
+
+
+
+
+
+
+
+ Keep Logs
+
+ Days
+
+ Clean Logs
+
+
+
+
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['id']}
+ {Lang::dateTimeFormat($ds['date'])}
+ {$ds['type']}
+ {$ds['ip']}
+ {nl2br($ds['description'])}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/main.css b/ui/ui/main.css
new file mode 100644
index 0000000..8a2101d
--- /dev/null
+++ b/ui/ui/main.css
@@ -0,0 +1,209 @@
+* {
+ margin: 0;
+ padding: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html {
+ font-size: 62.5%;
+ font-family: "Montserrat", sans-serif;
+}
+
+body {
+ min-height: 100vh;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #ecf0f3;
+ color: grey;
+}
+
+h1 {
+ color: #000;
+ font-size: 3rem;
+ text-transform: capitalize;
+}
+
+button {
+ width: 16rem;
+ height: 4.5rem;
+ border-radius: 2.5rem;
+ font-size: 1.3rem;
+ font-weight: 700;
+ letter-spacing: 0.1rem;
+ text-transform: uppercase;
+ background-color: #ecf0f3;
+ color: grey;
+ border: none;
+ outline: none;
+ -webkit-box-shadow: 1rem 1rem 1.6rem #d1d9e6, -0.6rem -0.6rem 1.6rem #fff;
+ box-shadow: 1rem 1rem 1.6rem #d1d9e6, -0.6rem -0.6rem 1.6rem #fff;
+ cursor: pointer;
+}
+
+button:active {
+ -webkit-box-shadow: inset 1rem 1rem 1.6rem #d1d9e6, inset -1rem -1rem 1.6rem #fff;
+ box-shadow: inset 1rem 1rem 1.6rem #d1d9e6, inset -1rem -1rem 1.6rem #fff;
+}
+
+.container {
+ position: relative;
+ width: 80rem;
+ height: 60vh;
+ background-color: #ecf0f3;
+ -webkit-box-shadow: 1rem 1rem 1rem #d1d9e6, -0.5rem -0.5rem 1rem #fff;
+ box-shadow: 1rem 1rem 1rem #d1d9e6, -0.5rem -0.5rem 1rem #fff;
+ border-radius: 1.2rem;
+ overflow: hidden;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 12px;
+}
+
+.container .circle {
+ position: absolute;
+ left: 0;
+ width: 20rem;
+ height: 20rem;
+ border-radius: 50%;
+ background-color: #ecf0f3;
+ -webkit-box-shadow: 0.4rem 0.4rem 0.8rem #d1d9e6;
+ box-shadow: 0.4rem 0.4rem 0.8rem #d1d9e6;
+ z-index: 10;
+}
+
+.container .top-left {
+ top: 0;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+}
+
+.container .bottom-left {
+ bottom: 0;
+ -webkit-transform: translate(-70%, 70%) rotate(-80deg);
+ transform: translate(-70%, 70%) rotate(-80deg);
+}
+
+.container .side {
+ position: absolute;
+ top: 0;
+ height: 100%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.container .left-side {
+ width: 40%;
+ text-align: center;
+ padding: 12px;
+ -webkit-box-shadow: 0.4rem 0.4rem 1rem #d1d9e6;
+ box-shadow: 0.4rem 0.4rem 1rem #d1d9e6;
+}
+
+.container .left-side .content p {
+ margin: 1rem 0 2rem 0;
+ font-size: 1.4rem;
+}
+
+.container .right-side {
+ width: 60%;
+ right: 0;
+}
+
+.container .right-side .content {
+ width: 70%;
+ text-align: center;
+}
+
+.container .right-side .content .icon-group {
+ margin: 1rem 0 3rem 0;
+}
+
+.container .right-side .content .icon-group .btn {
+ margin: 0 1rem;
+ border: none;
+ outline: none;
+ background-color: #ecf0f3;
+ -webkit-box-shadow: 0.3rem 0.3rem 0.6rem #d1d9e6, -0.3rem -0.3rem 0.6rem #fff;
+ box-shadow: 0.3rem 0.3rem 0.6rem #d1d9e6, -0.3rem -0.3rem 0.6rem #fff;
+ border-radius: 50%;
+ width: 3rem;
+ height: 3rem;
+ color: #000;
+ cursor: pointer;
+}
+
+.container .right-side .content .icon-group .btn:hover {
+ -webkit-box-shadow: inset 0.3rem 0.3rem 0.6rem #d1d9e6, inset -0.3rem -0.3rem 0.6rem #fff;
+ box-shadow: inset 0.3rem 0.3rem 0.6rem #d1d9e6, inset -0.3rem -0.3rem 0.6rem #fff;
+}
+
+.container .right-side .content .line {
+ width: 100%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-pack: distribute;
+ justify-content: space-around;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin-bottom: 2rem;
+}
+
+.container .right-side .content .line hr {
+ width: 40%;
+ border: 1px solid transparent;
+ border-top: 1px solid #aaa;
+}
+
+.container .right-side .content .form form .form-control {
+ position: relative;
+}
+
+.container .right-side .content .form form .form-control i {
+ position: absolute;
+ top: 50%;
+ left: 4%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+}
+
+.container .right-side .content .form form .form-control input {
+ width: 100%;
+ height: 4rem;
+ border: none;
+ outline: none;
+ background-color: #ecf0f3;
+ -webkit-box-shadow: inset 0.2rem 0.2rem 0.4rem #d1d9e6, inset -0.4rem -0.4rem 0.4rem #fff;
+ box-shadow: inset 0.2rem 0.2rem 0.4rem #d1d9e6, inset -0.4rem -0.4rem 0.4rem #fff;
+ padding-left: 2.5rem;
+ border-radius: 0.8rem;
+ color: #000;
+ margin: 0.5rem 0;
+}
+
+.container .right-side .content .form form .form-control input:focus {
+ -webkit-box-shadow: inset 0.4rem 0.4rem 0.4rem #d1d9e6, inset -0.4rem -0.4rem 0.4rem #fff;
+ box-shadow: inset 0.4rem 0.4rem 0.4rem #d1d9e6, inset -0.4rem -0.4rem 0.4rem #fff;
+}
+
+.container .right-side .content .form form button {
+ margin-top: 2rem;
+}
+/*# sourceMappingURL=main.css.map */
\ No newline at end of file
diff --git a/ui/ui/maintenance-mode.tpl b/ui/ui/maintenance-mode.tpl
new file mode 100644
index 0000000..2f94e25
--- /dev/null
+++ b/ui/ui/maintenance-mode.tpl
@@ -0,0 +1,106 @@
+{include file="sections/header.tpl"}
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/maintenance.tpl b/ui/ui/maintenance.tpl
new file mode 100644
index 0000000..80a79f5
--- /dev/null
+++ b/ui/ui/maintenance.tpl
@@ -0,0 +1,249 @@
+
+
+
+
+
{Lang::T('Site is down for maintenance')}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Site is temporarily unavailable.')}
+
{Lang::T('Scheduled maintenance is currently in progress. Please check back soon.')}
+
{Lang::T('We apologize for any inconvenience.')} — {Lang::T('The ')} {$companyName} {Lang::T('
+ Team.')}
+
+ {if $date}
+ {/if}
+
+
+ {if $date}
+
+ {/if}
+
+
+
\ No newline at end of file
diff --git a/ui/ui/message-bulk.tpl b/ui/ui/message-bulk.tpl
new file mode 100644
index 0000000..90e2169
--- /dev/null
+++ b/ui/ui/message-bulk.tpl
@@ -0,0 +1,144 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+ {if $batchStatus}
+
Total SMS Sent: {$totalSMSSent} Total SMS
+ Failed: {$totalSMSFailed} Total WhatsApp Sent:
+ {$totalWhatsappSent} Total WhatsApp Failed:
+ {$totalWhatsappFailed}
+ {/if}
+
+
+
+
+
+
+
+
+ Name
+ Phone
+ Message
+ Status
+
+
+
+ {foreach $batchStatus as $customer}
+
+ {$customer.name}
+ {$customer.phone}
+ {$customer.message}
+ {$customer.status}
+
+ {/foreach}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/message-list.tpl b/ui/ui/message-list.tpl
new file mode 100644
index 0000000..9439880
--- /dev/null
+++ b/ui/ui/message-list.tpl
@@ -0,0 +1,74 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('From')}
+ {Lang::T('To')}
+ {Lang::T('Title')}
+ {Lang::T('Date')}
+ {Lang::T('Status')}
+ {Lang::T('Actions')}
+
+
+
+ {foreach $messages as $msg}
+
+ {$msg.from_user}
+ {$msg.to_user}
+ {$msg.title}
+ {Lang::dateTimeFormat($msg.date)}
+ {if $msg.status == 0}{Lang::T('Not Sent')}{else}{Lang::T('Sent')}{/if}
+
+ {Lang::T('View')}
+
+
+ {/foreach}
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
diff --git a/ui/ui/message.tpl b/ui/ui/message.tpl
new file mode 100644
index 0000000..d7ced68
--- /dev/null
+++ b/ui/ui/message.tpl
@@ -0,0 +1,66 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/onlinehotspot.tpl b/ui/ui/onlinehotspot.tpl
new file mode 100644
index 0000000..7800a4c
--- /dev/null
+++ b/ui/ui/onlinehotspot.tpl
@@ -0,0 +1,78 @@
+
+
+
+
+
+
Online Hotspot Users
+
+
+
+
+
+
+
+
+
Online Hotspot Users
+
+
+
+ Username
+ Address
+ Uptime
+ Server
+ MAC
+ Session Time
+ Rx Bytes
+ Tx Bytes
+ Total Bytes
+ Action
+
+
+
+ {foreach $onlineHotspotUsers as $user}
+
+ {$user.username}
+ {$user.address}
+ {$user.uptime}
+ {$user.server}
+ {$user.mac}
+ {$user.session_time}
+ {$user.rx_bytes}
+ {$user.tx_bytes}
+ {$user.total}
+ Disconnect
+
+ {/foreach}
+
+
+
+
+
+
diff --git a/ui/ui/page-edit.tpl b/ui/ui/page-edit.tpl
new file mode 100644
index 0000000..2e33b98
--- /dev/null
+++ b/ui/ui/page-edit.tpl
@@ -0,0 +1,63 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
{$htmls}
+ {if $writeable}
+
+ {else}
+
+ {/if}
+ {if $PageFile=='Voucher'}
+
+ {/if}
+
+
+
+
+
+
+
+ {literal}
+
+ {/literal}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/pagination.tpl b/ui/ui/pagination.tpl
new file mode 100644
index 0000000..5bf0452
--- /dev/null
+++ b/ui/ui/pagination.tpl
@@ -0,0 +1,20 @@
+{if $paginator}
+
+
+
+{/if}
\ No newline at end of file
diff --git a/ui/ui/paymentgateway.tpl b/ui/ui/paymentgateway.tpl
new file mode 100644
index 0000000..a153fa6
--- /dev/null
+++ b/ui/ui/paymentgateway.tpl
@@ -0,0 +1,35 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/plan-edit.tpl b/ui/ui/plan-edit.tpl
new file mode 100644
index 0000000..1d0ed4d
--- /dev/null
+++ b/ui/ui/plan-edit.tpl
@@ -0,0 +1,69 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/plan.tpl b/ui/ui/plan.tpl
new file mode 100644
index 0000000..a822636
--- /dev/null
+++ b/ui/ui/plan.tpl
@@ -0,0 +1,407 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Username')}
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Type')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Status')}
+ {Lang::T('Time Left')}
+ {Lang::T('Method')}
+ {Lang::T('Routers')}
+ {Lang::T('Manage')}
+
+
+
+ {foreach $d as $ds}
+
+
+ {$ds['username']}
+ {$ds['namebp']}
+ {$ds['type']}
+ {Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}
+ {Lang::dateAndTimeFormat($ds['expiration'],$ds['time'])}
+
+ {if $ds['is_active']}
+ Active
+ {elseif $ds['is_suspended'] && $ds['is_expired']}
+ Suspended
+ {elseif $ds['is_suspended'] && !$ds['is_expired']}
+ Suspending
+ {else}
+ Inactive
+ {/if}
+
+
+ {if $ds['is_suspended'] && !$ds['is_expired']}
+
+ Calculating...
+
+ {elseif $ds['is_expired']}
+ Expired
+ {else}
+ -
+ {/if}
+
+ {$ds['method']}
+ {$ds['routers']}
+
+ {Lang::T('Edit')}
+ {if !$ds['is_off'] && !($ds['is_suspended'] && $ds['is_expired'])}
+
+ {Lang::T('Suspend')}
+
+ {elseif $ds['is_suspended'] && $ds['is_expired']}
+
+ {Lang::T('Suspended')}
+
+ {else}
+
+ {Lang::T('Inactive')}
+
+ {/if}
+
+ {Lang::T('Recharge')}
+
+ {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
+
+ {/if}
+
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Customer')}:
+
+
+
+ {Lang::T('Suspension Date')}:
+
+
+
+ {Lang::T('Suspension Time')}:
+
+
+
+ {Lang::T('The customer will be suspended at the specified date and time.')}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/plugin-manager.tpl b/ui/ui/plugin-manager.tpl
new file mode 100644
index 0000000..7db49bf
--- /dev/null
+++ b/ui/ui/plugin-manager.tpl
@@ -0,0 +1,92 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+ {foreach $plugins as $plugin}
+
+
+
+
+
{$plugin['name']}
+
{$plugin['description']}
+
+
+
+
+ @{$plugin['author']} Last update: {$plugin['last_update']}
+
+
+
+
+
+
+
+
+
+
+ {/foreach}
+
+
+
+
+
+
+
+ foreach $pgs as $pg}
+
+
+
+
+
{$pg['name']}
+
{$pg['description']}
+
+
+
+
+ @{$pg['author']} Last update: {$pg['last_update']}
+
+
+
+
+
+
+
+
+
+ {/foreach}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/pool.tpl b/ui/ui/pool.tpl
new file mode 100644
index 0000000..59e9299
--- /dev/null
+++ b/ui/ui/pool.tpl
@@ -0,0 +1,70 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Name Pool')}
+ {Lang::T('Range IP')}
+ {Lang::T('Routers')}
+ {Lang::T('Manage')}
+ ID
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['pool_name']}
+ {$ds['range_ip']}
+ {$ds['routers']}
+
+ {Lang::T('Edit')}
+
+
+ {$ds['id']}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/radius-nas-add.tpl b/ui/ui/radius-nas-add.tpl
new file mode 100644
index 0000000..0489ba2
--- /dev/null
+++ b/ui/ui/radius-nas-add.tpl
@@ -0,0 +1,88 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/radius-nas-edit.tpl b/ui/ui/radius-nas-edit.tpl
new file mode 100644
index 0000000..e6fbe18
--- /dev/null
+++ b/ui/ui/radius-nas-edit.tpl
@@ -0,0 +1,88 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/radius-nas.tpl b/ui/ui/radius-nas.tpl
new file mode 100644
index 0000000..6c59936
--- /dev/null
+++ b/ui/ui/radius-nas.tpl
@@ -0,0 +1,73 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ Name
+ IP
+ Type
+ Port
+ Server
+ Community
+ Routers
+ {Lang::T('Manage')}
+ ID
+
+
+
+ {foreach $nas as $ds}
+
+ {$ds['shortname']}
+ {$ds['nasname']}
+ {$ds['type']}
+ {$ds['ports']}
+ {$ds['server']}
+ {$ds['community']}
+ {$ds['routers']}
+
+ {Lang::T('Edit')}
+
+
+ {$ds['id']}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/recharge-confirm.tpl b/ui/ui/recharge-confirm.tpl
new file mode 100644
index 0000000..2280e05
--- /dev/null
+++ b/ui/ui/recharge-confirm.tpl
@@ -0,0 +1,96 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
{Lang::T('Customer')}
+
+
+ {Lang::T('Username')} {$cust['username']}
+
+
+ {Lang::T('Name')} {$cust['fullname']}
+
+
+ {Lang::T('Phone Number')} {$cust['phonenumber']}
+
+
+ {Lang::T('Email')} {$cust['email']}
+
+
+ {Lang::T('Address')} {$cust['address']}
+
+
+ {Lang::T('Balance')} {Lang::moneyFormat($cust['balance'])}
+
+
+
{Lang::T('Plan')}
+
+
+ {Lang::T('Plan Name')} {$plan['name_plan']}
+
+
+ {Lang::T('Location')} {if $plan['is_radius']}Radius{else}{$plan['routers']}{/if}
+
+
+ {Lang::T('Type')} {if $plan['prepaid'] eq 'yes'}Prepaid{else}Postpaid{/if}
+ {$plan['type']}
+
+
+ {Lang::T('Plan Price')} {if $using eq 'zero'}{Lang::moneyFormat(0)}{else}{Lang::moneyFormat($plan['price'])}{/if}
+
+
+ {Lang::T('Plan Validity')} {$plan['validity']}
+ {$plan['validity_unit']}
+
+
+ {Lang::T('Using')} {ucwords($using)}
+
+
+
{Lang::T('Total')}
+
+ {if $using neq 'zero' and $add_cost>0}
+ {foreach $bills as $k => $v}
+
+ {$k} {Lang::moneyFormat($v)}
+
+ {/foreach}
+
+ {Lang::T('Additional Cost')} {Lang::moneyFormat($add_cost)}
+
+
+ {Lang::T('Total')} ({Lang::T('Plan Price')} +{Lang::T('Additional Cost')}) {Lang::moneyFormat($plan['price']+$add_cost)}
+
+ {else}
+
+ {Lang::T('Total')} {if $using eq 'zero'}{Lang::moneyFormat(0)}{else}{Lang::moneyFormat($plan['price'])}{/if}
+
+ {/if}
+
+
+
+
+
+
+
+
+ {Lang::T('Recharge')}
+ {Lang::T('Cancel')}
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/recharge.tpl b/ui/ui/recharge.tpl
new file mode 100644
index 0000000..05420a3
--- /dev/null
+++ b/ui/ui/recharge.tpl
@@ -0,0 +1,297 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
+
+
\ No newline at end of file
diff --git a/ui/ui/refill.tpl b/ui/ui/refill.tpl
new file mode 100644
index 0000000..35a9bc2
--- /dev/null
+++ b/ui/ui/refill.tpl
@@ -0,0 +1,135 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
+
+
\ No newline at end of file
diff --git a/ui/ui/register-otp.tpl b/ui/ui/register-otp.tpl
new file mode 100644
index 0000000..e284f37
--- /dev/null
+++ b/ui/ui/register-otp.tpl
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Login')} - {$_c['CompanyName']}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{$_c['CompanyName']}
+
+
+ {if isset($notify)}
+
+ {/if}
+
+
+
+
+ {include file="$_path/../pages/Registration_Info.html"}
+
+
+
+
+
+
+
+
+
+
+ {if $_c['tawkto'] != ''}
+
+
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/register-rotp.tpl b/ui/ui/register-rotp.tpl
new file mode 100644
index 0000000..3d44db7
--- /dev/null
+++ b/ui/ui/register-rotp.tpl
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Login')} - {$_c['CompanyName']}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{$_c['CompanyName']}
+
+
+ {if isset($notify)}
+
+ {/if}
+
+
+
+
+
+
+
+ {include file="$_path/../pages/Registration_Info.html"}
+
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Request OTP')}
+
+
+
+
+ Privacy
+ •
+ T & C
+
+
+
+
+
+
+
+
+
+
+ {if $_c['tawkto'] != ''}
+
+
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/register.tpl b/ui/ui/register.tpl
new file mode 100644
index 0000000..686324c
--- /dev/null
+++ b/ui/ui/register.tpl
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Login')} - {$_c['CompanyName']}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{$_c['CompanyName']}
+
+
+ {if isset($notify)}
+
+ {/if}
+
+
+
+
+ {include file="$_path/../pages/Registration_Info.html"}
+
+
+
+
+
+
+
+
+
+ {if $_c['tawkto'] != ''}
+
+
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/reports-activation.tpl b/ui/ui/reports-activation.tpl
new file mode 100644
index 0000000..3967630
--- /dev/null
+++ b/ui/ui/reports-activation.tpl
@@ -0,0 +1,69 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Invoice')}
+ {Lang::T('Username')}
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Price')}
+ {Lang::T('Type')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Method')}
+
+
+
+ {foreach $activation as $ds}
+
+ {$ds['invoice']}
+ {$ds['username']}
+ {$ds['plan_name']}
+ {Lang::moneyFormat($ds['price'])}
+ {$ds['type']}
+
+ {Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}
+
+ {Lang::dateAndTimeFormat($ds['expiration'],$ds['time'])}
+ {$ds['method']}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/reports-daily.tpl b/ui/ui/reports-daily.tpl
new file mode 100644
index 0000000..2205477
--- /dev/null
+++ b/ui/ui/reports-daily.tpl
@@ -0,0 +1,68 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
{Lang::T('All Transactions at Date')}:
+
{date($_c['date_format'], strtotime($mdate))} {$mtime}
+
+
+
+
+
+
+
+ {Lang::T('Username')}
+ {Lang::T('Type')}
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Price')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Method')}
+ {Lang::T('Routers')}
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['username']}
+ {$ds['type']}
+ {$ds['plan_name']}
+ {Lang::moneyFormat($ds['price'])}
+ {Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}
+ {Lang::dateAndTimeFormat($ds['expiration'],$ds['time'])}
+ {$ds['method']}
+ {$ds['routers']}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
{Lang::T('Total Income')}:
+ {Lang::moneyFormat($dr)}
+
+
{Lang::T('All Transactions at Date')}:
+ {date($_c['date_format'], strtotime($mdate))} {$mtime}
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/reports-period-view.tpl b/ui/ui/reports-period-view.tpl
new file mode 100644
index 0000000..6dce046
--- /dev/null
+++ b/ui/ui/reports-period-view.tpl
@@ -0,0 +1,78 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
{Lang::T('All Transactions at Date')}:
+
{$stype} [{date( $_c['date_format'], strtotime($fdate))} -
+ {date( $_c['date_format'], strtotime($tdate))}]
+
+
+
+
+
+
+
+ {Lang::T('Export for Print')}
+
+
+
+
+
+
+ {Lang::T('Export to PDF')}
+
+
+
+
+
+
+
+ {Lang::T('Username')}
+ {Lang::T('Type')}
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Price')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Method')}
+ {Lang::T('Routers')}
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['username']}
+ {$ds['type']}
+ {$ds['plan_name']}
+ {Lang::moneyFormat($ds['price'])}
+ {Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}
+ {Lang::dateAndTimeFormat($ds['expiration'],$ds['time'])}
+ {$ds['method']}
+ {$ds['routers']}
+
+ {/foreach}
+
+
+
+
+
{Lang::T('Total Income')}:
+ {Lang::moneyFormat($dr)}
+
+
{$stype} [{date( $_c['date_format'], strtotime($fdate))} -
+ {date( $_c['date_format'], strtotime($tdate))}]
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/reports-period.tpl b/ui/ui/reports-period.tpl
new file mode 100644
index 0000000..5b83b84
--- /dev/null
+++ b/ui/ui/reports-period.tpl
@@ -0,0 +1,44 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/router-error.tpl b/ui/ui/router-error.tpl
new file mode 100644
index 0000000..0177dc5
--- /dev/null
+++ b/ui/ui/router-error.tpl
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{Lang::T('Login')} - {$_c['CompanyName']}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{$error_message}
+
+
Mikrotik troubleshooting:
+
+ 1. Make sure you use API Port, Default 8728
+ 2. Make sure Username and Password are correct
+ 3. Make sure your hosting is not blocking port to external
+ 4. Make sure your is Mikrotik accessible from MikroPulse
+
+
Note: If you just update MikroPulse from upload files, try
+ contact admin
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/routers-add.tpl b/ui/ui/routers-add.tpl
new file mode 100644
index 0000000..15aa9a1
--- /dev/null
+++ b/ui/ui/routers-add.tpl
@@ -0,0 +1,70 @@
+{include file="sections/header.tpl"}
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/routers-edit.tpl b/ui/ui/routers-edit.tpl
new file mode 100644
index 0000000..a3b6dde
--- /dev/null
+++ b/ui/ui/routers-edit.tpl
@@ -0,0 +1,70 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{include file="sections/footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/routers.tpl b/ui/ui/routers.tpl
new file mode 100644
index 0000000..c9d3f41
--- /dev/null
+++ b/ui/ui/routers.tpl
@@ -0,0 +1,320 @@
+{include file="sections/header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Router Name')}
+ {Lang::T('IP Address')}
+ {Lang::T('Status')}
+ {Lang::T('Uptime')}
+ {Lang::T('Free Memory')}
+ {Lang::T('CPU Load')}
+ {Lang::T('Manage')}
+ ID
+ {Lang::T('Download')}
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['name']}
+ {$ds['ip_address']}
+ Loading...
+ Loading...
+ Loading...
+ Loading...
+
+ {Lang::T('Edit')}
+
+ {Lang::T('Reboot')}
+
+ {$ds['id']}
+
+
+
+
+
+ {Lang::T('Download')}
+
+
+
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+{include file="sections/footer.tpl"}
+
+
+
+
\ No newline at end of file
diff --git a/ui/ui/user-activation-list.tpl b/ui/ui/user-activation-list.tpl
new file mode 100644
index 0000000..c815053
--- /dev/null
+++ b/ui/ui/user-activation-list.tpl
@@ -0,0 +1,44 @@
+{include file="sections/user-header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Invoice')}
+ {Lang::T('Plan Name')}
+ {Lang::T('Plan Price')}
+ {Lang::T('Type')}
+ {Lang::T('Created On')}
+ {Lang::T('Expires On')}
+ {Lang::T('Method')}
+
+
+
+ {foreach $d as $ds}
+
+ {$ds['invoice']}
+ {$ds['plan_name']}
+ {Lang::moneyFormat($ds['price'])}
+ {$ds['type']}
+ {Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}
+ {Lang::dateAndTimeFormat($ds['expiration'],$ds['time'])}
+ {$ds['method']}
+
+ {/foreach}
+
+
+
+ {include file="pagination.tpl"}
+
+
+
+
+
+
+{include file="sections/user-footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/user-activation.tpl b/ui/ui/user-activation.tpl
new file mode 100644
index 0000000..e5edef9
--- /dev/null
+++ b/ui/ui/user-activation.tpl
@@ -0,0 +1,42 @@
+{include file="sections/user-header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
+
For cash payment Make sure You Get A Voucher code
+ {include file="$_path/../pages/Order_Voucher.html"}
+
+
+
+
+
+
+
+
+
+
+ {Lang::T('Code Voucher')}
+
+
+
+
+
+
+
+
+
+{include file="sections/user-footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/user-change-password.tpl b/ui/ui/user-change-password.tpl
new file mode 100644
index 0000000..1020a83
--- /dev/null
+++ b/ui/ui/user-change-password.tpl
@@ -0,0 +1,43 @@
+{include file="sections/user-header.tpl"}
+
+
+
+
+{include file="sections/user-footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/user-dashboard.tpl b/ui/ui/user-dashboard.tpl
new file mode 100644
index 0000000..22e0c17
--- /dev/null
+++ b/ui/ui/user-dashboard.tpl
@@ -0,0 +1,333 @@
+{include file="sections/user-header.tpl"}
+
+
+
+
+
+
+
+
+
+
+
{Lang::moneyFormat($_user['balance'])}
+
{Lang::T('Balance')}
+
+
Refresh
+
+
+
+
+
+
{Lang::T('Your Account Information')}
+
Below are your account details. Auto renew is enabled by default.
+
+
+
+
+
+
+
+
+
+
+
+ {if $unpaid }
+
+
+
+
+
+
+ {Lang::T('expired')}
+ {Lang::dateTimeFormat($unpaid['expired_date'])}
+
+
+ {Lang::T('Plan Name')}
+ {$unpaid['plan_name']}
+
+
+ {Lang::T('Plan Price')}
+ {$unpaid['price']}
+
+
+ {Lang::T('Routers')}
+ {$unpaid['routers']}
+
+
+
+
+
+
+ {/if}
+
+
+
+
+
+ {$Announcement_Customer = "{$PAGES_PATH}/Announcement_Customer.html"}
+ {if file_exists($Announcement_Customer)}
+ {include file=$Announcement_Customer}
+ {/if}
+
+
+
+
+
+
+
+
+ {if $_bills}
+
+ {foreach $_bills as $_bill}
+ {if $_bill['routers'] != 'radius'}
+
+ {else}
+
+ {/if}
+
+
+
+ {Lang::T('Plan Name')}
+
+ {$_bill['namebp']}
+ {if $_bill['status'] != 'on'}
+ {Lang::T('expired')}
+ {/if}
+
+
+
+ {Lang::T('Created On')}
+
+ {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['recharged_on'],$_bill['recharged_time'])}
+ {/if}
+
+
+ {Lang::T('Expires On')}
+
+ {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['expiration'],$_bill['time'])}{/if}
+
+
+
+ {Lang::T('Type')}
+
+ {if $_bill['prepaid'] eq yes}Prepaid{else}Postpaid{/if}
+ {Lang::T($_bill['plan_type'])}
+
+
+ {if $nux_ip neq ''}
+
+ {Lang::T('Current IP')}
+ {$nux_ip}
+
+ {/if}
+ {if $nux_mac neq ''}
+
+ {Lang::T('Current MAC')}
+ {$nux_mac}
+
+ {/if}
+ {if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on' && $_bill['routers'] != 'radius'}
+
+ {Lang::T('Login Status')}
+
+
+
+
+ {/if}
+
+
+ {if $_bill['status'] == 'on'}
+
+ {/if}
+
+
+ {if $_bill['status'] != 'on' && $_bill['prepaid'] != 'yes' && $_c['extend_expired']}
+ {Lang::T('Extend')}
+ {/if}
+ {Lang::T('Recharge')}
+
+
+
+
+ {/foreach}
+
+ {/if}
+ {if $_c['disable_voucher'] == 'yes'}
+
+ {/if}
+ {if $_bills}
+ {foreach $_bills as $_bill}
+ {if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'}
+
+ {/if}
+ {/foreach}
+ {/if}
+
+
+ {if $_c['enable_balance'] == 'yes' && $_c['allow_balance_transfer'] == 'yes'}
+
+
+
+
+
+
+
+
+
+
+
+
+ Transfer
+
+
+
+
+
+
+
+
+ {/if}
+
+
+ {if $_c['disable_voucher'] != 'yes'}
+
+
+
+
+ {Lang::T('Code Voucher')}
+
+
+
+
+
+
+ {Lang::T('Recharge')}
+
+
+
+
+
+
+
+ {/if}
+
+
+{include file="sections/user-footer.tpl"}
\ No newline at end of file
diff --git a/ui/ui/user-logi.tpl b/ui/ui/user-logi.tpl
new file mode 100644
index 0000000..698c967
--- /dev/null
+++ b/ui/ui/user-logi.tpl
@@ -0,0 +1,119 @@
+
+
+
+
+