initial: bootstrap from BukidBountyApp base

This commit is contained in:
Jonathan Sykes
2026-06-06 18:43:00 +08:00
commit eb4a5731fb
5674 changed files with 160857 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
<br><br><br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2.5rem;">Daily Bet Amounts and Prizes of Users Under Me</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body">
<table id="DailyBetsAmountsPrizesPerUser_table">
<thead>
<tr>
<th>
User
</th>
<th>
Type
</th>
<th>
Amount
</th>
<th>
Prize
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<brb><br><br>
<script>
function GenerateDailyBetsAmountsPrizesPerUserRow(User,Type, Bet_Amount, Prize) {
return `<tr>
<td>${User}</td>
<td>${Type}</td>
<td>${Bet_Amount}</td>
<td>${Prize}</td>
</tr>`;
}
async function GenerateDailyBetsAmountsPrizesPerUserRows(responsearray) {
console.log(responsearray);
let newhtmltable = '';
for (let i = 0; i < responsearray.length; i++) {
newhtmltable += GenerateDailyBetsAmountsPrizesPerUserRow(
responsearray[i]['user'],
responsearray[i]['type'],
responsearray[i]['amount'],
responsearray[i]['prize']
);
}
//$("#User_list_table").find("tbody").replaceWith(newhtmltable);
// new DataTable('#User_list_table');
$("#DailyBetsAmountsPrizesPerUser_table").find("tbody").html(newhtmltable);
new DataTable('#DailyBetsAmountsPrizesPerUser_table', {
language: {
emptyTable: 'No Data Loaded'
},
// order: [[0, 'desc']],
"bDestroy": true
});
}
function GenerateDailyBetsAmountsPrizesPerUserTable() {
AjaxDo('?BetAmountsPrizes/PerUser/List', { targetuser: currenttarget }, GenerateDailyBetsAmountsPrizesPerUserRows, null, reqtype = 'POST');
}
GenerateDailyBetsAmountsPrizesPerUserTable();
setInterval(function () {
if (currentPage == 'DailyBetsAmountsPrizesPerUser') {
GenerateDailyBetsAmountsPrizesPerUserTable();
}
}, 300000);
</script>

View File

@@ -0,0 +1,107 @@
<br><br><br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2.5rem;">Daily Bets</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body">
<table id="Daily_bets_table">
<thead>
<tr>
<th>
User
</th>
<th>
Type
</th>
<th>
Amount
</th>
<th>
Prize
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<brb><br><br>
<script>
function GenerateDailyBetsRow(User,Type, Bet_Amount, Prize) {
return `<tr>
<td>${User}</td>
<td>${Type}</td>
<td>${Bet_Amount}</td>
<td>${Prize}</td>
</tr>`;
}
async function GenerateDailyBetsRows(responsearray) {
console.log(responsearray);
let newhtmltable = '';
for (let i = 0; i < responsearray.length; i++) {
newhtmltable += GenerateDailyBetsRow(
responsearray[i]['date'],
responsearray[i]['user'],
responsearray[i]['type'],
responsearray[i]['amount'],
responsearray[i]['prize']
);
}
//$("#User_list_table").find("tbody").replaceWith(newhtmltable);
// new DataTable('#User_list_table');
$("#Daily_bets_table").find("tbody").html(newhtmltable);
//$("#Last30DaysTotalBetAmount").html(totalbetamount);
//$("#Last30DaysTotalPrizesAmount").html(totalprizes);
new DataTable('#Daily_bets_table', {
language: {
emptyTable: 'No Data Loaded'
},
order: [[0, 'desc']],
"bDestroy": true
});
}
function GenerateDailyBetsTable() {
AjaxDo('?Reports/DailyBets/List', { targetuser: currenttarget }, GenerateDailyBetsRows, null, reqtype = 'POST');
}
GenerateDailyBetsTable();
setInterval(function () {
if (currentPage == 'DailyBets') {
GenerateDailyBetsTable();
}
}, 300000);
</script>

View File

@@ -0,0 +1,251 @@
<br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2rem;">Daily Summary for Transfers, Bets and Prizes</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body ">
<div class="row card-body">
<div class="col-md-6">
<h5>Amounts Transferred Today:</h5>
</div>
<div class="col-md-6" style="">
<h5 id="TotalBalanceTransferAmountReportsToday"></h5>
</div>
</div>
<div class="row card-body">
<div class="col-md-6">
<h5>Total Bet Amounts Today of Users Under Me:</h5>
</div>
<div class="col-md-6" style="">
<h5 id="TotalBetAmountReportsToday"></h5>
</div>
</div>
<div class="row card-body">
<div class="col-md-6">
<h5>Total Amount of Prizes:</h5>
</div>
<div class="col-md-6" style="">
<h5 id="TotalPrizesAmountReportsToday"></h5>
</div>
</div>
</div>
</div>
<br><br>
<div class="card card-primary card-outline card-outline-tabs">
<div class="card-header p-0 border-bottom-0">
<ul class="nav nav-tabs" id="dailybetstransfersprofitssummarytabs-four-tab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="dailybetstransfersprofitssummarytabs-four-2PM-tab" data-toggle="pill"
href="#dailybetstransfersprofitssummarytabs-four-2PM" role="tab"
aria-controls="dailybetstransfersprofitssummarytabs-four-2PM" aria-selected="true">2PM</a>
</li>
<li class="nav-item">
<a class="nav-link" id="dailybetstransfersprofitssummarytabs-four-5PM-tab" data-toggle="pill"
href="#dailybetstransfersprofitssummarytabs-four-5PM" role="tab"
aria-controls="dailybetstransfersprofitssummarytabs-four-5PM" aria-selected="false">5PM</a>
</li>
<li class="nav-item">
<a class="nav-link" id="dailybetstransfersprofitssummarytabs-four-9PM-tab" data-toggle="pill"
href="#dailybetstransfersprofitssummarytabs-four-9PM" role="tab"
aria-controls="dailybetstransfersprofitssummarytabs-four-9PM" aria-selected="false">9PM</a>
</li>
</ul>
</div>
<div class="card-body">
<div class="tab-content" id="dailybetstransfersprofitssummarytabs-four-tabContent">
<div class="tab-pane fade active show" id="dailybetstransfersprofitssummarytabs-four-2PM" role="tabpanel"
aria-labelledby="dailybetstransfersprofitssummarytabs-four-2PM-tab"></div>
<div class="tab-pane fade" id="dailybetstransfersprofitssummarytabs-four-5PM" role="tabpanel"
aria-labelledby="dailybetstransfersprofitssummarytabs-four-5PM-tab"></div>
<div class="tab-pane fade" id="dailybetstransfersprofitssummarytabs-four-9PM" role="tabpanel"
aria-labelledby="dailybetstransfersprofitssummarytabs-four-9PM-tab">
</div>
</div>
</div>
</div>
<script>
function CreateSummaryCardforDailyTransfersProfitsSummary(timeIDText) {
return `<div class="card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 1rem;">Summary</h1>
</div>
<div class="card-body ">
<center><h3 id="TransferStatusbyTime`+ timeIDText + `"></h3></center>
<div class="row card-body" style="display:none;">
<div class="col-md-4">
<h5>Amounts Transferred Today:</h5>
</div>
<div class="col-md-4" style="">
<h5 id="TotalBalanceTransferAmountReportsToday`+ timeIDText + `"></h5>
</div>
</div>
<div class="row card-body">
<div class="col-md-4">
<h5>Total Winning Bet Amounts Today of Users Under Me:</h5>
</div>
<div class="col-md-4" style="">
<h5 id="TotalBetAmountReportsToday`+ timeIDText + `"></h5>
</div>
</div>
<div class="row card-body">
<div class="col-md-4">
<h5>Total Amount of Prizes:</h5>
</div>
<div class="col-md-4" style="">
<h5 id="TotalPrizesAmountReportsToday`+ timeIDText + `"></h5>
</div>
</div>
</div>
</div>`;
}
function DailyBetsTransfersProfitsUSERTABLE(tableid, title) {
return `<br><br>
<div class="card" id="secondary-card" style="">
<div class="card-header ui-sortable-handle" style="cursor: move;">
<h3 class="card-title">${title}</h3>
<div class="card-tools"></div>
</div>
<div class="card-body">
<table id="${tableid}">
<thead>
<tr>
<th>Number /<br>Nickname</th>
<th>Amount<br>Bet</th>
<th><center>Total<br>Prize</center></th>
</tr>
</thead>
<tbody id="${tableid}-body">
</tbody>
</table>
</div>
</div><br><br><br>`;
}
function UpdateDailyBetsTransfersProfitsSummary(target_date = '', target_user = '') {
function populatereportdetails(response) {
console.log(response);
setElementhtml('TotalBalanceTransferAmountReportsToday', response.TotalTransferAmountToday);
setElementhtml('TotalBetAmountReportsToday', response.TotalBetAmountToday);
setElementhtml('TotalPrizesAmountReportsToday', response.TotalRewardAmountToday);
setElementhtml('TotalBetAmountReportsToday2PM', response['2PM'].TotalBets);
setElementhtml('TotalPrizesAmountReportsToday2PM', response['2PM'].TotalPrize);
setElementhtml('TotalBetAmountReportsToday5PM', response['5PM'].TotalBets);
setElementhtml('TotalPrizesAmountReportsToday5PM', response['5PM'].TotalPrize);
setElementhtml('TotalBetAmountReportsToday9PM', response['9PM'].TotalBets);
setElementhtml('TotalPrizesAmountReportsToday9PM', response['9PM'].TotalPrize);
function GenerateBetsByUserTableRows(usernumnick, totalamount, totalprize) {
let user_nick = usernumnick;
user_nick = user_nick.replace(' ', '<br>');
return `<tr>
<td>${user_nick}</td>
<td>${totalamount}</td>
<td>${totalprize}</td>
</tr>`;
}
let tablerowshtml2pm = '';
for (let i = 0; i < response['2PM']['betsbyuser'].length; i++) {
tablerowshtml2pm += GenerateBetsByUserTableRows(response['2PM']['betsbyuser'][i]['usermnumber_nick'], response['2PM']['betsbyuser'][i]['totalamount'], response['2PM']['betsbyuser'][i]['totalprize']);
}
let tablerowshtml5pm = '';
for (let i = 0; i < response['5PM']['betsbyuser'].length; i++) {
tablerowshtml5pm += GenerateBetsByUserTableRows(response['5PM']['betsbyuser'][i]['usermnumber_nick'], response['5PM']['betsbyuser'][i]['totalamount'], response['5PM']['betsbyuser'][i]['totalprize']);
}
let tablerowshtml9pm = '';
for (let i = 0; i < response['9PM']['betsbyuser'].length; i++) {
tablerowshtml9pm += GenerateBetsByUserTableRows(response['9PM']['betsbyuser'][i]['usermnumber_nick'], response['9PM']['betsbyuser'][i]['totalamount'], response['9PM']['betsbyuser'][i]['totalprize']);
}
setElementhtml('userbetstable2PM-body', tablerowshtml2pm);
setElementhtml('userbetstable5PM-body', tablerowshtml5pm);
setElementhtml('userbetstable9PM-body', tablerowshtml9pm);
$("#userbetstable2PM").DataTable({
"destroy": true,
order: [[0, 'desc']],
pageLength: 5,
lengthMenu: [[5], [5]]
});
$("#userbetstable5PM").DataTable({
"destroy": true,
order: [[0, 'desc']],
pageLength: 5,
lengthMenu: [[5], [5]]
});
$("#userbetstable9PM").DataTable({
"destroy": true,
order: [[0, 'desc']],
pageLength: 5,
lengthMenu: [[5], [5]]
});
}
AjaxDo('?admin/reports/dailybetstransfersprofitssummary/details', { target_date: target_date, target_user: target_user }, populatereportdetails, null, reqtype = 'POST');
}
setElementhtml('dailybetstransfersprofitssummarytabs-four-2PM', CreateSummaryCardforDailyTransfersProfitsSummary('2PM') + DailyBetsTransfersProfitsUSERTABLE('userbetstable2PM', 'Winning Bets By User'));
setElementhtml('dailybetstransfersprofitssummarytabs-four-5PM', CreateSummaryCardforDailyTransfersProfitsSummary('5PM') + DailyBetsTransfersProfitsUSERTABLE('userbetstable5PM', 'Winning Bets By User'));
setElementhtml('dailybetstransfersprofitssummarytabs-four-9PM', CreateSummaryCardforDailyTransfersProfitsSummary('9PM') + DailyBetsTransfersProfitsUSERTABLE('userbetstable9PM', 'Winning Bets By User'));
$(document).ready(function () {
if (typeof target_date === 'undefined') {
target_date = '';
}
if (typeof target_user === 'undefined') {
target_user = '';
}
UpdateDailyBetsTransfersProfitsSummary(target_date, target_user);
let UpdateDailyBetsTransfersProfitsSummaryIntervalID = setInterval(UpdateDailyBetsTransfersProfitsSummary, 300000);
});
</script>

View File

@@ -0,0 +1,58 @@
<br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2rem;">Daily Transfers</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body ">
<div class="row card-body">
<div class="col-md-6">
<h5>Amounts Transferred Today:</h5>
</div>
<div class="col-md-6" style="">
<h5 id="TotalBalanceTransferAmountReports"></h5>
</div>
</div>
<div class="row card-body">
<div class="col-md-6">
<h5>Amounts Transferred Today:</h5>
</div>
<div class="col-md-6" style="" id="TotalBalanceTransferAmountReports">
<h5 id="TotalBalanceTransferAmountReports"></h5>
</div>
</div>
</div>
</div>
<br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2rem;">Users Breakdown</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body ">
</div>
</div>
<br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 1rem;">Transfer Logs</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body ">
<div class="row card-body">
</div>
<div class="row card-body">
</div>
</div>
</div>

View File

@@ -0,0 +1,121 @@
<br><br><br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2rem;" id='totalbettitle30days'>Total Bet Amounts and Prizes for the Last 30 Days (Only Me)</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body ">
<br><br>
<table id="MonthlyBetAmountsandPrizesTable">
<thead>
<th>Date</th>
<th> Bet Amount</th>
<th>Prizes</th>
</thead>
<tbody>
</tbody>
</table>
Total Bet Amount: <h4 id="Last30DaysTotalBetAmount"></h4>
Total Prizes Amount: <h4 id="Last30DaysTotalPrizesAmount"></h4>
</div>
</div>
<br><br><br>
<script>
function GenerateBetAmountPrizes30DaysRow(Date, Bet_Amount, Prize) {
return `<tr>
<td>${Date}</td>
<td>${Bet_Amount}</td>
<td>${Prize}</td>
</tr>`;
}
async function GenerateBetAmountPrizeTodayRows(responsearray) {
// console.log(responsearray);
let newhtmltable = '';
let totalbetamount = 0;
let totalprizes = 0;
for (let i = 0; i < responsearray.length; i++) {
totalbetamount += responsearray[i]['total_bet_amount'];
totalprizes += responsearray[i]['total_prizes'];
newhtmltable += GenerateBetAmountPrizes30DaysRow(
responsearray[i]['date'],
responsearray[i]['total_bet_amount'],
responsearray[i]['total_prizes']
);
}
//$("#User_list_table").find("tbody").replaceWith(newhtmltable);
// new DataTable('#User_list_table');
$("#MonthlyBetAmountsandPrizesTable").find("tbody").html(newhtmltable);
$("#Last30DaysTotalBetAmount").html(totalbetamount);
$("#Last30DaysTotalPrizesAmount").html(totalprizes);
new DataTable('#MonthlyBetAmountsandPrizesTable', {
language: {
emptyTable: 'No Data Loaded'
},
order: [[0, 'desc']],
"bDestroy": true
});
}
function GenerateBetAmountsAndPrizes30DaysTable() {
let onlyme;
if (typeof currenttarget === 'object' && currenttarget.hasOwnProperty('onlyme')) {
onlyme = currenttarget['onlyme'];
}
if (typeof currenttarget === 'object' && currenttarget.hasOwnProperty('currenttarget')) {
currenttarget = currenttarget['currenttarget'];
}
if (onlyme) {
document.getElementById('totalbettitle30days').innerHTML = 'Total Bet Amounts and Prizes for the Last 30 Days (Only Me)';
} else {
document.getElementById('totalbettitle30days').innerHTML = 'Total Bet Amounts and Prizes for the Last 30 Days (Me and All Users Under Me)';
}
AjaxDo('?admin/reports/TotalBetsPrizes/Last30Days', { targetuser: currenttarget, onlyme: onlyme}, GenerateBetAmountPrizeTodayRows, null, reqtype = 'POST');
}
GenerateBetAmountsAndPrizes30DaysTable();
setInterval(function () {
if (currentPage == 'BetAmountsAndPrizes30Days ') {
GenerateBetAmountsAndPrizes30DaysTable();
}
}, 300000);
$( document ).ready(function() {
});
</script>

View File

@@ -0,0 +1,111 @@
<br><br><br><br>
<div class="card" id="primary-card">
<div class="card-header ui-sortable-handle" style="cursor: move">
<h1 class="card-title" style="font-size: 2.5rem;">Winning Bets</h1>
<div class="card-tools">
</div>
</div>
<div class="card-body">
<table id="Winning_bets_table">
<thead>
<tr>
<th>
Date
</th>
<th>
User
</th>
<th>
Type
</th>
<th>
Amount
</th>
<th>
Prize
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<brb><br><br>
<script>
function GenerateWinningBetsRow(Date,User,Type, Bet_Amount, Prize) {
return `<tr>
<td>${Date}</td>
<td>${User}</td>
<td>${Type}</td>
<td>${Bet_Amount}</td>
<td>${Prize}</td>
</tr>`;
}
async function GenerateWinningBetsRows(responsearray) {
console.log(responsearray);
let newhtmltable = '';
for (let i = 0; i < responsearray.length; i++) {
newhtmltable += GenerateWinningBetsRow(
responsearray[i]['date'],
responsearray[i]['user'],
responsearray[i]['type'],
responsearray[i]['amount'],
responsearray[i]['prize']
);
}
//$("#User_list_table").find("tbody").replaceWith(newhtmltable);
// new DataTable('#User_list_table');
$("#Winning_bets_table").find("tbody").html(newhtmltable);
//$("#Last30DaysTotalBetAmount").html(totalbetamount);
//$("#Last30DaysTotalPrizesAmount").html(totalprizes);
new DataTable('#Winning_bets_table', {
language: {
emptyTable: 'No Data Loaded'
},
order: [[0, 'desc']],
"bDestroy": true
});
}
function GenerateWinningBetsTable() {
AjaxDo('?WinningNumbers/List', { targetuser: currenttarget }, GenerateWinningBetsRows, null, reqtype = 'POST');
}
GenerateWinningBetsTable();
setInterval(function () {
if (currentPage == 'MyWinningBets') {
GenerateWinningBetsTable();
}
}, 300000);
</script>