Upload files to "ui/ui"

Signed-off-by: nestict <icttechnest@gmail.com>
This commit is contained in:
nestict 2025-05-24 12:10:37 +02:00
parent 77bd3ded5b
commit 04693a88e5
5 changed files with 362 additions and 0 deletions

84
ui/ui/bandwidth-add.tpl Normal file
View File

@ -0,0 +1,84 @@
{include file="sections/header.tpl"}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="card card-primary card-hovered card-stacked mb30">
<div class="card-header" style="display: grid; align-content: center; justify-content: center;">
<h5 class="card-title">{Lang::T('Add New Bandwidth')}</h5></div>
<div class="card-body">
<form class="form-horizontal" method="post" role="form" action="{$_url}bandwidth/add-post">
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Bandwidth Name')}</label>
<div class="col-md-6">
<input type="text" class="form-control" id="name" name="name">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Rate Download')}</label>
<div class="col-md-4">
<input type="text" class="form-control" id="rate_down" name="rate_down">
</div>
<div class="col-md-2">
<select class="form-select" style="height: 52px; background-color: white;" id="rate_down_unit" name="rate_down_unit">
<option value="Kbps">Kbps</option>
<option value="Mbps">Mbps</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Rate Upload')}</label>
<div class="col-md-4">
<input type="text" class="form-control" id="rate_up" name="rate_up">
</div>
<div class="col-md-2">
<select class="form-select" style="height: 52px; background-color: white;" id="rate_up_unit" name="rate_up_unit">
<option value="Kbps">Kbps</option>
<option value="Mbps">Mbps</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Limit</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Limit]">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Threshold</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Threshold]">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Time</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Time]">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Priority</label>
<div class="col-md-6">
<input type="number" class="form-control" name="burst[]" placeholder="[Priority]">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Limit At</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Limit/At]">
</div>
</div>
<div class="form-group row">
<div class="col-lg-offset-2 col-lg-10">
<button class="btn btn-primary"
type="submit">{Lang::T('Submit')}</button>
Or <a href="{$_url}bandwidth/list">{Lang::T('Cancel')}</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="sections/footer.tpl"}

97
ui/ui/bandwidth-edit.tpl Normal file
View File

@ -0,0 +1,97 @@
{include file="sections/header.tpl"}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="card card-primary card-hovered card-stacked mb30">
<div class="card-heading" style="display: grid; align-content: center; justify-content: center;">
<h5 class="card-title">{Lang::T('Edit Bandwidth')}</h5>
</div>
<div class="card-body">
<form class="form-horizontal" method="post" role="form" action="{$_url}bandwidth/edit-post">
<input type="hidden" name="id" value="{$d['id']}">
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Bandwidth Name')}</label>
<div class="col-md-6">
<input type="text" class="form-control" id="name" name="name" value="{$d['name_bw']}">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Rate Download')}</label>
<div class="col-md-4">
<input type="text" class="form-control" id="rate_down" name="rate_down"
value="{$d['rate_down']}">
</div>
<div class="col-md-2">
<select class="form-select" style="height: 52px; background-color: white;" id="rate_down_unit" name="rate_down_unit">
<option value="Kbps" {if $d['rate_down_unit'] eq 'Kbps'}selected="selected" {/if}>Kbps
</option>
<option value="Mbps" {if $d['rate_down_unit'] eq 'Mbps'}selected="selected" {/if}>Mbps
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Rate Upload')}</label>
<div class="col-md-4">
<input type="text" class="form-control" id="rate_up" name="rate_up" value="{$d['rate_up']}">
</div>
<div class="col-md-2">
<select class="form-select" style="height: 52px; background-color: white;" id="rate_up_unit" name="rate_up_unit">
<option value="Kbps" {if $d['rate_up_unit'] eq 'Kbps'}selected="selected" {/if}>Kbps
</option>
<option value="Mbps" {if $d['rate_up_unit'] eq 'Mbps'}selected="selected" {/if}>Mbps
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Limit</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Limit]" value="{$burst[0]}">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Threshold</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Threshold]" value="{$burst[1]}">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Burst Time</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Burst/Time]" value="{$burst[2]}">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Priority</label>
<div class="col-md-6">
<input type="number" class="form-control" name="burst[]" placeholder="[Priority]" value="{$burst[3]}">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">Limit At</label>
<div class="col-md-6">
<input type="text" class="form-control" name="burst[]" placeholder="[Limit/At]" value="{$burst[4]}">
</div>
</div>
<div class="form-group row">
<div class="col-lg-offset-2 col-lg-10">
<small>{Lang::T('Editing Bandwidth will not automatically update the plan, you need to edit the plan then save again')}</small>
</div>
</div>
<div class="form-group row">
<div class="col-lg-offset-2 col-lg-10">
<button class="btn btn-primary"
type="submit">{Lang::T('Submit')}</button>
Or <a href="{$_url}bandwidth/list">{Lang::T('Cancel')}</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="sections/footer.tpl"}

42
ui/ui/change-password.tpl Normal file
View File

@ -0,0 +1,42 @@
{include file="sections/header.tpl"}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="card card-primary card-hovered card-stacked mb30">
<div class="card-header" style="display: grid; align-content: center; justify-content: center;">
<h5 class="card-title">{Lang::T('Change Password')}</h5></div>
<div class="card-body">
<form class="form-horizontal" method="post" role="form" action="{$_url}settings/change-password-post">
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Current Password')}</label>
<div class="col-md-6">
<input type="password" class="form-control" id="password" name="password">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('New Password')}</label>
<div class="col-md-6">
<input type="password" class="form-control" id="npass" name="npass">
</div>
</div>
<div class="form-group row">
<label class="col-md-4 control-label">{Lang::T('Confirm New Password')}</label>
<div class="col-md-6">
<input type="password" class="form-control" id="cnpass" name="cnpass">
</div>
</div>
<div class="form-group row">
<div class="col-lg-offset-2 col-lg-10">
<button class="btn btn-success" type="submit">{Lang::T('Save Changes')}</button>
Or <a href="{$_url}dashboard">{Lang::T('Cancel')}</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="sections/footer.tpl"}

42
ui/ui/community.tpl Normal file
View File

@ -0,0 +1,42 @@
{include file="sections/header.tpl"}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12" id="update">
<div class="card card-primary card-hovered mb20 activities">
<div class="card-header">
<h3 class="card-title">MikroPulse</h3>
</div>
<div class="card-body">
<b>MikroPulse</b> is a Billing System for Hotspot and PPPOE in Mikrotik using PHP and Mikrotik API to comunicate with router.
<hr>
<div id="currentVersion">Current Version: </div>
<div id="latestVersion">Latest Version: </div>
</div>
<div class="card-body">
<div class="btn-group btn-group-justified" role="group" aria-label="...">
<a href="./update.php" class="btn btn-success btn-sm btn-block">Install Latest Version</a>
<a href="https://github.com/hotspotbilling/phpnuxbill/archive/refs/heads/master.zip" target="_blank"
class="btn btn-warning btn-sm btn-block">Download Latest Version</a>
</div>
</div>
<div class="card-body">
If you Download manual the update file, sometime update change database, after uploading, click this button to update database structure.
<a href="./update.php?step=4" class="btn btn-default btn-sm btn-block">Update Database</a>
</div>
</div>
</div>
</div>
<script>
window.addEventListener('DOMContentLoaded', function() {
$.getJSON("./version.json?" + Math.random(), function(data) {
$('#currentVersion').html('Current Version: ' + data.version);
});
$.getJSON("https://raw.githubusercontent.com/hotspotbilling/phpnuxbill/master/version.json?" + Math
.random(),
function(data) {
$('#latestVersion').html('Latest Version: ' + data.version);
});
});
</script>
</div>
{include file="sections/footer.tpl"}

97
ui/ui/customers.tpl Normal file
View File

@ -0,0 +1,97 @@
{include file="sections/header.tpl"}
<div class="container-fluid">
<style>
.dataTables_wrapper .dataTables_paginate .paginate_button {
display: inline-block;
padding: 5px 10px;
margin-right: 5px;
border: 1px solid #ccc;
background-color: #fff;
color: #333;
cursor: pointer;
}
</style>
<div class="row">
<div class="col-sm-12">
<div class="card card-hovered mb20 card-primary">
<div class="card-header">
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<div class="btn-group pull-right">
<a class="btn btn-primary btn-xs" title="save" href="{$_url}customers/csv"
onclick="return confirm('This will export to CSV?')"><span class="fa fa-download"
aria-hidden="true"></span> CSV</a>
</div>
{/if}
{Lang::T('Manage Contact')}
</div>
<div class="card-body">
<div class="md-whiteframe-z1 mb20 text-center">
<div class="col-md-8">
</div>
<div class="col-md-4">
<a href="{$_url}customers/add" class="btn btn-primary btn-block"><i class="fa fa-plus">
</i> {Lang::T('Add New Client')}</a>
</div>&nbsp;
</div>
<div class="table-responsive table_mobile">
<table id="customerTable" class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>{Lang::T('Full Name')}</th>
<th>{Lang::T('Username')}</th>
<th>{Lang::T('Account')}</th>
<th>{Lang::T('Acc Type')}</th>
<th>{Lang::T('Area')}</th>
<th>{Lang::T('Package')}</th>
<th>{Lang::T('Service')}</th>
<!--<th>{Lang::T('Created On')}</th>-->
<th>{Lang::T('Manage')}</th>
</tr>
</thead>
<tbody>
{foreach $d as $ds}
<tr {if $ds['status'] != 'on'}class="danger"{/if}>
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'"
style="cursor: pointer;">{$ds['fullname']}</td>
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'"
style="cursor:pointer;">{$ds['username']}</td>
<td>{$ds['account']}</td>
<td>{$ds['account_type']}</td>
<td>{$ds['address']}</td>
<td align="center" api-get-text="{$_url}autoload/customer_is_active/{$d['id']}">
<span class="label label-default">&bull;</span>
</td>
<td>{$ds['service_type']}</td>
<!--<td>{Lang::dateTimeFormat($ds['created_at'])}</td>-->
<td align="center">
<a href="{$_url}customers/view/{$ds['id']}" id="{$ds['id']}"
style="margin: 0px; color:black"
class="btn btn-success btn-xs">&nbsp;&nbsp;{Lang::T('View')}&nbsp;&nbsp;</a>
<a href="{$_url}customers/edit/{$ds['id']}" id="{$ds['id']}"
style="margin: 0px; color:black"
class="btn btn-info btn-xs">&nbsp;&nbsp;{Lang::T('Edit')}&nbsp;&nbsp;</a>
<a href="{$_url}plan/recharge/{$ds['id']}" id="{$ds['id']}" style="margin: 0px;color:black;"
class="btn btn-warning btn-xs">{Lang::T('Recharge')}</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
<script>
var $j = jQuery.noConflict();
$j(document).ready(function () {
$j('#customerTable').DataTable({
"pagingType": "full_numbers"
});
});
</script>
</div>
{include file="sections/footer.tpl"}