Files
Saxonite/SaxoniteCoreWebAdmin/wwwroot/js/ref/sax-ref-baseball.js
T
2024-08-20 17:51:32 +01:00

91 lines
2.9 KiB
JavaScript

/*
* Admin - Reference - Baseball page scripts.
*/
(function (win, doc, undef)
{
"use strict";
let rb = sax.refBaseball = sax.refBaseball || { ajax: {}, data: {}, fn: {}, $pnl: {}, $frm: {}, $dlg: {} };
rb.attr_id = 'sax-id';
rb.class_sel = 'sax-sel';
//--------------------------------------------------------------
/* Reference - Baseball - Stats. */
rb.fn.refreshStats = function (delay)
{
rb.ajax.baseballStats = rb.ajax.baseballStats || { url: sax.url.base + 'Reference/Baseball/Ajax/GetStats', formId: rb.$frm.filter.prop('id'), callbackFn: rb.fn.doRefreshStats };
sax.doAjaxRequest(rb.ajax.baseballStats, delay || 50);
}
rb.fn.doRefreshStats = function (response)
{
if (!response.success) return;
let $msgs = $('.sax-panel-messages', rb.$pnl.stats).empty();
let $list = $('.sax-panel-item-list', rb.$pnl.stats).empty();
for (let groupIdx = 0; groupIdx < (response.groups || []).length; groupIdx++)
{
let group = response.groups[groupIdx];
$list.append(rb.fn.populateStatGroup(rb.fn.getStatGroupTemplate(), group.caption));
for (let statIdx = 0; statIdx < (group.stats || []).length; statIdx++)
{
let stat = group.stats[statIdx];
if (stat.value > 0) $list.append(rb.fn.populateStat(rb.fn.getStatTemplate(), stat.caption, stat.value));
}
}
}
rb.fn.populateStatGroup = function ($item, caption)
{
$('.GroupCaption', $item).text(caption);
return $item;
}
rb.fn.getStatGroupTemplate = function ()
{
return $('.sax-panel-item-template .BaseballStatGroup', rb.$pnl.stats).clone();
}
rb.fn.populateStat = function ($item, caption, value)
{
$('.StatCaption', $item).text(caption);
$('.StatValue', $item).text(value);
return $item;
}
rb.fn.getStatTemplate = function ()
{
return $('.sax-panel-item-template .BaseballStat', rb.$pnl.stats).clone();
}
//--------------------------------------------------------------
// Utilities.
rb.fn.getMenuOption = function ($opt, lbl, fn, cls)
{
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
}
rb.fn.getTickIcon = function ()
{
return $('.sax-panel-item-template img.sax-tick', rb.$pnl.baseball).clone();
}
rb.fn.getCrossIcon = function ()
{
return $('.sax-panel-item-template img.sax-cross', rb.$pnl.baseball).clone();
}
rb.fn.getStatusIcon = function (stat)
{
return $('.sax-panel-item-template img.sax-status-' + stat, rb.$pnl.baseball).clone();
}
//--------------------------------------------------------------
$(function ()
{
rb.$pnl.baseball = $('.sax-panel.Baseball');
rb.$pnl.filter = $('.sax-panel-filter', rb.$pnl.baseball);
$('.sax-results-refresh', rb.$pnl.filter).on('click', rb.fn.refreshStats);
rb.$frm.filter = $('#frmRefBaseballFilter', rb.$pnl.filter);
// Stats.
rb.$pnl.stats = $('.sax-panel-info.BaseballStats', rb.$pnl.baseball);
setTimeout(function () { rb.fn.refreshStats(); }, 250);
});
//--------------------------------------------------------------
}(window, window.document));
/* The End */