1.2.11.11 Golf Markers, Logs

This commit is contained in:
2024-06-19 17:19:26 +01:00
parent 8f73e616ca
commit 780e6778e5
21 changed files with 827 additions and 176 deletions
+126 -23
View File
@@ -5,7 +5,7 @@
(function (win, doc, undef)
{
"use strict";
let rg = sax.refGolf = sax.refGolf || { data: {}, fn: {}, $pnl: {}, $frm: {}, $dlg: {} };
let rg = sax.refGolf = sax.refGolf || { ajax: {}, data: {}, fn: {}, $pnl: {}, $frm: {}, $dlg: {} };
rg.attr_id = 'sax-id';
rg.class_sel = 'sax-sel';
@@ -13,8 +13,8 @@
/* Reference - Golf - Stats. */
rg.fn.refreshStats = function (delay)
{
rg.ajaxGolfStats = rg.ajaxGolfStats || { url: sax.url.base + 'Reference/Golf/Ajax/GetStats', formId: rg.$frm.filter.prop('id'), callbackFn: rg.fn.doRefreshStats };
sax.doAjaxRequest(rg.ajaxGolfStats, delay || 50);
rg.ajax.golfStats = rg.ajax.golfStats || { url: sax.url.base + 'Reference/Golf/Ajax/GetStats', formId: rg.$frm.filter.prop('id'), callbackFn: rg.fn.doRefreshStats };
sax.doAjaxRequest(rg.ajax.golfStats, delay || 50);
}
rg.fn.doRefreshStats = function (response)
{
@@ -64,8 +64,8 @@
rg.fn.refreshCountries = function (delay)
{
rg.fn.clearCountries();
rg.ajaxGolfCountries = rg.ajaxGolfCountries || { url: sax.url.base + 'Reference/Golf/Ajax/GetCountries', formId: rg.$frm.countries.prop('id'), callbackFn: rg.fn.doRefreshCountries };
sax.doAjaxRequest(rg.ajaxGolfCountries, delay || 50);
rg.ajax.golfCountries = rg.ajax.golfCountries || { url: sax.url.base + 'Reference/Golf/Ajax/GetCountries', formId: rg.$frm.countries.prop('id'), callbackFn: rg.fn.doRefreshCountries };
sax.doAjaxRequest(rg.ajax.golfCountries, delay || 50);
}
rg.fn.doRefreshCountries = function (response)
{
@@ -97,14 +97,14 @@
}
rg.fn.getCountryTemplate = function ()
{
return $('table.sax-panel-item-template tr.GolfCountry', rg.$pnl.countries).clone();
return $('.sax-panel-item-template tr.GolfCountry', rg.$pnl.countries).clone();
}
rg.fn.selectCountry = function ($item, item)
{
//sax.debug('selectCountry', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.countries).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
setTimeout(rg.fn.refreshProvinces(500), 100);
setTimeout(function () { rg.fn.refreshProvinces(250); }, 50);
}
//--------------------------------------------------------------
@@ -126,8 +126,8 @@
return;
}
$('.FilterCountryId', rg.$frm.provinces).val(countryId);
rg.ajaxGolfProvinces = rg.ajaxGolfProvinces || { url: sax.url.base + 'Reference/Golf/Ajax/GetProvinces', formId: rg.$frm.provinces.prop('id'), callbackFn: rg.fn.doRefreshProvinces };
sax.doAjaxRequest(rg.ajaxGolfProvinces, delay || 50);
rg.ajax.golfProvinces = rg.ajax.golfProvinces || { url: sax.url.base + 'Reference/Golf/Ajax/GetProvinces', formId: rg.$frm.provinces.prop('id'), callbackFn: rg.fn.doRefreshProvinces };
sax.doAjaxRequest(rg.ajax.golfProvinces, delay || 50);
}
rg.fn.doRefreshProvinces = function (response)
{
@@ -137,7 +137,13 @@
let $list = rg.$pnl.provincesList;
$('tbody tr', $list).remove()
for (let provinceIdx = 0; provinceIdx < (response.provinces || []).length; provinceIdx++)
$list.append(rg.fn.populateProvince(rg.fn.getProvinceTemplate(), response.provinces[provinceIdx]));
{
let $item = rg.fn.getProvinceTemplate();
let item = response.provinces[provinceIdx];
$list.append(rg.fn.populateProvince($item, item));
if (provinceIdx == 0 && response.provinces.length == 1)
rg.fn.selectProvince($item, item);
}
}
rg.fn.populateProvince = function ($item, item)
{
@@ -153,14 +159,14 @@
}
rg.fn.getProvinceTemplate = function ()
{
return $('table.sax-panel-item-template tr.GolfProvince', rg.$pnl.provinces).clone();
return $('.sax-panel-item-template tr.GolfProvince', rg.$pnl.provinces).clone();
}
rg.fn.selectProvince = function ($item, item)
{
//sax.debug('selectProvince', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.provinces).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
setTimeout(rg.fn.refreshCourses(500), 100);
setTimeout(function () { rg.fn.refreshCourses(250); }, 50);
}
//--------------------------------------------------------------
@@ -180,8 +186,8 @@
return;
}
$('.FilterProvinceId', rg.$frm.courses).val(provinceId);
rg.ajaxGolfCourses = rg.ajaxGolfCourses || { url: sax.url.base + 'Reference/Golf/Ajax/GetCourses', formId: rg.$frm.courses.prop('id'), callbackFn: rg.fn.doRefreshCourses };
sax.doAjaxRequest(rg.ajaxGolfCourses, delay || 50);
rg.ajax.golfCourses = rg.ajax.golfCourses || { url: sax.url.base + 'Reference/Golf/Ajax/GetCourses', formId: rg.$frm.courses.prop('id'), callbackFn: rg.fn.doRefreshCourses };
sax.doAjaxRequest(rg.ajax.golfCourses, delay || 50);
}
rg.fn.doRefreshCourses = function (response)
{
@@ -191,14 +197,20 @@
let $list = rg.$pnl.coursesList;
$('tbody tr', $list).remove()
for (let courseIdx = 0; courseIdx < (response.courses || []).length; courseIdx++)
$list.append(rg.fn.populateCourse(rg.fn.getCourseTemplate(), response.courses[courseIdx]));
{
let $item = rg.fn.getCourseTemplate();
let item = response.courses[courseIdx];
$list.append(rg.fn.populateCourse($item, item));
if (courseIdx == 0 && response.courses.length == 1)
rg.fn.selectCourse($item, item);
}
}
rg.fn.populateCourse = function ($item, item)
{
$item.attr(rg.attr_id, item.id).on('click', function () { rg.fn.selectCourse($item, item); })
$('.CourseId', $item).text(item.usgaCourseId);
$('.CourseCaption', $item).text(item.caption);
$('.CourseLocation', $item).text(item.city||item.address2||item.address1);
$('.CourseLocation', $item).text(item.city || item.address2 || item.address1);
if (item.markerCountActive) $('.CourseMarkers', $item).text(item.markerCountActive);
if (item.priorityPopulate) $('.CoursePriority', $item).append(rg.fn.getTickIcon());
$('.CourseStatus', $item).append(rg.fn.getStatusIcon(item.statusCode.toLowerCase()));
@@ -206,18 +218,101 @@
}
rg.fn.getCourseTemplate = function ()
{
return $('table.sax-panel-item-template tr.GolfCourse', rg.$pnl.courses).clone();
return $('.sax-panel-item-template tr.GolfCourse', rg.$pnl.courses).clone();
}
rg.fn.selectCourse = function ($item, item)
{
//sax.debug('selectCourse', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.courses).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
//setTimeout(rg.fn.refreshMarkers(500), 100);
setTimeout(function () { rg.fn.refreshMarkers(250); }, 50);
}
//--------------------------------------------------------------
// Courses burger.
rg.fn.configureCoursesBurger = function ()
{
var $bgr = $('.sax-burger', rg.$pnl.courses).hide();
var $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
$mnu.append(rg.fn.getCoursesMenuOption('Cleanse captions', function () { rg.fn.cleanseCourseCaptions(); }, 'sax-process'));
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
}
rg.fn.getCoursesDropdownTemplate = function ()
{
return $('.sax-panel-item-template .sax-dropdown-menu.Courses li.sax-dropdown-item', rg.$pnl.courses).clone();
}
rg.fn.getCoursesMenuOption = function (lbl, fn, cls)
{
return rg.fn.getMenuOption(rg.fn.getCoursesDropdownTemplate(), lbl, fn, cls);
}
rg.fn.cleanseCourseCaptions = function ()
{
rg.ajax.cleanseCourseCaptions = rg.ajax.cleanseCourseCaptions || { url: sax.url.base + 'Reference/Golf/Ajax/CleanseUsgaCourseCaptions', formId: rg.$frm.courses.prop('id') };
sax.doAjaxRequest(rg.ajax.cleanseCourseCaptions, 200);
}
//--------------------------------------------------------------
/* Reference - Golf - Markers. */
rg.fn.clearMarkers = function ()
{
rg.$pnl.markersMsgs.empty();
rg.$pnl.markersList.find('tbody tr').remove();
}
rg.fn.refreshMarkers = function (delay)
{
rg.fn.clearMarkers();
let courseId = rg.$pnl.coursesList.find('tbody tr.' + rg.class_sel).attr(rg.attr_id);
if (!courseId)
{
rg.$pnl.markersMsgs.empty().text('Course must be selected.');
return;
}
$('.FilterCourseId', rg.$frm.markers).val(courseId);
rg.ajax.golfMarkers = rg.ajax.golfMarkers || { url: sax.url.base + 'Reference/Golf/Ajax/GetMarkers', formId: rg.$frm.markers.prop('id'), callbackFn: rg.fn.doRefreshMarkers };
sax.doAjaxRequest(rg.ajax.golfMarkers, delay || 50);
}
rg.fn.doRefreshMarkers = function (response)
{
//sax.debug('doRefreshMarkers', response);
rg.fn.clearMarkers();
if (!response.success) return;
let $list = rg.$pnl.markersList;
$('tbody tr', $list).remove()
for (let markerIdx = 0; markerIdx < (response.markers || []).length; markerIdx++)
$list.append(rg.fn.populateMarker(rg.fn.getMarkerTemplate(), response.markers[markerIdx]));
}
rg.fn.populateMarker = function ($item, item)
{
$item.attr(rg.attr_id, item.id).on('click', function () { rg.fn.selectMarker($item, item); })
$('.MarkerCaption', $item).text(item.caption);
$('.MarkerHoles', $item).text(item.holes);
$('.MarkerTee', $item).text(item.tee);
$('.MarkerGender', $item).text(item.gender);
$('.MarkerSlope', $item).text(item.slopeRating);
$('.MarkerPar', $item).text(item.par);
$('.MarkerCourse', $item).text(item.courseRating);
if (item.bogeyRating) $('.MarkerBogey', $item).text(item.bogeyRating);
if (item.length) $('.MarkerLength', $item).text(item.length);
$('.MarkerStatus', $item).append(rg.fn.getStatusIcon(item.statusCode.toLowerCase()));
return $item;
}
rg.fn.getMarkerTemplate = function ()
{
return $('.sax-panel-item-template tr.GolfMarker', rg.$pnl.markers).clone();
}
rg.fn.selectMarker = function ($item, item)
{
//sax.debug('selectMarker', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.markers).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
}
//--------------------------------------------------------------
// Utilities.
rg.fn.getMenuOption = function ($opt, lbl, fn, cls)
{
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
}
rg.fn.getTickIcon = function ()
{
return $('.sax-panel-item-template img.sax-tick', rg.$pnl.golf).clone();
@@ -241,31 +336,39 @@
// Stats.
rg.$pnl.stats = $('.sax-panel-info.GolfStats', rg.$pnl.golf);
setTimeout(rg.fn.refreshStats, 250);
setTimeout(function () { rg.fn.refreshStats(); }, 250);
// Countries.
rg.$pnl.countries = $('.sax-panel-info.Countries', rg.$pnl.golf);
rg.$pnl.countriesMsgs = $('.sax-panel-messages', rg.$pnl.countries);
rg.$pnl.countriesList = $('table.sax-item-list', rg.$pnl.countries);
rg.$frm.countries = $('#frmCountries', rg.$pnl.golf);
$('.FilterCountrySearch', rg.$frm.countries).on('input', function () { setTimeout(rg.fn.refreshCountries(500), 100); });
setTimeout(rg.fn.refreshCountries, 1000);
$('.FilterCountrySearch', rg.$frm.countries).on('input', function () { setTimeout(function () { rg.fn.refreshCountries(500); }, 50); });
setTimeout(function () { rg.fn.refreshCountries(); }, 1000);
// Provinces.
rg.$pnl.provinces = $('.sax-panel-info.Provinces', rg.$pnl.golf);
rg.$pnl.provincesMsgs = $('.sax-panel-messages', rg.$pnl.provinces);
rg.$pnl.provincesList = $('table.sax-item-list', rg.$pnl.provinces);
rg.$frm.provinces = $('#frmProvinces', rg.$pnl.golf);
$('.FilterProvinceSearch', rg.$frm.provinces).on('input', function () { setTimeout(rg.fn.refreshProvinces(500), 100); });
$('.FilterProvinceSearch', rg.$frm.provinces).on('input', function () { setTimeout(function () { rg.fn.refreshProvinces(500); }, 50); });
// Courses.
rg.$pnl.courses = $('.sax-panel-info.Courses', rg.$pnl.golf);
rg.$pnl.coursesMsgs = $('.sax-panel-messages', rg.$pnl.courses);
rg.$pnl.coursesList = $('table.sax-item-list', rg.$pnl.courses);
rg.$frm.courses = $('#frmCourses', rg.$pnl.golf);
$('.FilterCourseSearch', rg.$frm.courses).on('input', function () { setTimeout(rg.fn.refreshCourses(500), 100); });
$('.FilterCourseSearch', rg.$frm.courses).on('input', function () { setTimeout(function () { rg.fn.refreshCourses(500); }, 50); });
//$('.PagingPageNo', rg.$dlg).val(1);
//$('.PagingPageLength', rg.$dlg).val(16);
rg.fn.configureCoursesBurger();
// Markers.
rg.$pnl.markers = $('.sax-panel-info.Markers', rg.$pnl.golf);
rg.$pnl.markersMsgs = $('.sax-panel-messages', rg.$pnl.markers);
rg.$pnl.markersList = $('table.sax-item-list', rg.$pnl.markers);
rg.$frm.markers = $('#frmMarkers', rg.$pnl.golf);
$('.FilterMarkerSearch', rg.$frm.markers).on('input', function () { setTimeout(function () { rg.fn.refreshMarkers(500); }, 50); });
var opt = sax.dlgOpts();
//opt.open = function () { rg.fn.refreshOrganisations(200); };
+88 -24
View File
@@ -13,8 +13,8 @@
{
if (!sl.data.awaitingRefreshFoldersResponse)
{
var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
sl.clearFiles();
//$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
}
sax.ajax.refreshFolders = sax.ajax.refreshFolders || { url: sax.url.base + 'System/Ajax/Logs/GetFolders', formId: sl.$frm.filter.prop('id'), callbackFn: sl.doRefreshFolders };
sax.doAjaxRequest(sax.ajax.refreshFolders, delay || 50);
@@ -57,8 +57,8 @@
}
sl.clearFiles = function ()
{
$('.sax-panel-messages', $pnl.results).hide().empty();
$('.sax-panel-item-list', $pnl.results).hide().empty();
$pnl.msgs.hide().empty();
$pnl.list.find('tbody tr').remove();
}
//--------------------------------------------------------------
@@ -66,8 +66,8 @@
{
if (!sl.data.awaitingRefreshYearsResponse)
{
var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
sl.clearFiles();
//$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
}
sax.ajax.refreshYears = sax.ajax.refreshYears || { url: sax.url.base + 'System/Ajax/Logs/GetYears', formId: sl.$frm.filter.prop('id'), callbackFn: sl.doRefreshYears };
sax.doAjaxRequest(sax.ajax.refreshYears, delay || 50);
@@ -97,8 +97,8 @@
{
if (!sl.data.awaitingRefreshMonthsResponse)
{
var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
sl.clearFiles();
//$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
}
sax.ajax.refreshMonths = sax.ajax.refreshMonths || { url: sax.url.base + 'System/Ajax/Logs/GetMonths', formId: sl.$frm.filter.prop('id'), callbackFn: sl.doRefreshMonths };
sax.doAjaxRequest(sax.ajax.refreshMonths, delay || 50);
@@ -130,8 +130,8 @@
{
if (!sl.data.awaitingRefreshFilesResponse)
{
var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
sl.clearFiles();
//$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
}
sax.ajax.refreshFiles = sax.ajax.refreshFiles || { url: sax.url.base + 'System/Ajax/Logs/GetFiles', formId: sl.$frm.filter.prop('id'), callbackFn: sl.doRefreshFiles };
sax.doAjaxRequest(sax.ajax.refreshFiles, delay || 50);
@@ -143,23 +143,24 @@
delete sl.data.awaitingRefreshFilesResponse;
sl.clearFiles();
sax.refreshControlValues(response.controlValues);
$pnl.msgs.hide().empty();
var $items = $('.sax-panel-item-list', $pnl.results).hide().empty();
if (!response.success) return;
sax.data.logMonth = $ctrl.cbMonths.val();
// Files.
var items = response.files;
if (!items.length)
sl.data.files = response.files;
if (!(items || []).length)
return $pnl.msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
$items.append(sl.populateItem(sl.getFileTemplate(), items[itemIdx]));
$items.fadeIn(50);
$pnl.list.append(sl.populateItem(sl.getFileTemplate(), items[itemIdx]));
$pnl.list.fadeIn(50);
}
sl.populateItem = function ($item, item)
{
if (!item) return $item;
$('.Filename', $item).text(item.name).off('click').on('click', function () { sl.getFile(item.name) });
$('.Length', $item).text(sax.formatFileSize(item.size, 2));
$item.off('click').on('click', function () { sl.showFile(item.name) });
$('.Filename', $item).text(item.name);
$('.Updated', $item).text(item.updateFmt);
$('.Size', $item).text(sax.formatFileSize(item.size, 2));
return $item;
}
sl.getFileTemplate = function ()
@@ -168,29 +169,90 @@
}
//--------------------------------------------------------------
sl.getFile = function (filename, delay)
sl.showFile = function (filename, delay)
{
$('.FilterLogFilename', $frm.filter).val(filename);
sl.setFileTitle(filename);
if (!sl.data.awaitingGetFileResponse)
{
$pnl.msgs.hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
sl.setFileData($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>'));
sax.openDialog($dlg.file, $(win).width(), $(win).height());
}
sax.ajax.getFile = sax.ajax.getFile || { url: sax.url.base + 'System/Ajax/Logs/GetFile', formId: sl.$frm.filter.prop('id'), callbackFn: sl.doGetFiles };
sax.ajax.getFile = sax.ajax.getFile || { url: sax.url.base + 'System/Ajax/Logs/GetFile', formId: sl.$frm.filter.prop('id'), callbackFn: sl.onShowFile };
sax.doAjaxRequest(sax.ajax.getFile, delay || 50);
sl.data.awaitingGetFileResponse = true;
}
sl.doGetFiles = function (response)
sl.onShowFile = function (response)
{
//sax.debug('doGetFiles', response);
delete sl.data.awaitingGetFileResponse;
$pnl.msgs.hide().empty();
if (!response.success) return;
// Configure file action buttons.
let files = sl.data.files;
let filename = response.file.name;
$ctrl.filePrev.prop('disabled', (files || []).length < 2 || !filename || files[0].name == filename);
$ctrl.fileNext.prop('disabled', (files || []).length < 2 || !filename || files[files.length - 1].name == filename);
// Display table details.
$dlg.file.dialog('option', 'title', "File: " + response.file.name || response.popupTitle);
$('.FileData', $dlg.file).html(response.file.html);
sl.setFileTitle(filename || response.popupTitle);
$('.LogFilename', $dlg.file).val(filename);
sl.setFileData(response.file.html);
sax.openDialog($dlg.file, $(win).width(), $(win).height());
}
sl.setFileTitle = function (filename)
{
$dlg.file.dialog('option', 'title', "File: " + filename);
}
sl.setFileData = function (data)
{
$('.FileData', $dlg.file).html(data);
}
//--------------------------------------------------------------
sl.onCreateLogFileDlg = function ()
{
let $btnPane = $('#dlgLogFile + div.ui-dialog-buttonpane');
$pnl.logFileActions = $('<div id="LogFileActions" style="float:left;">');
$ctrl.filePrev = $('<button type="button" class="ui-button ui-corner-all ui-widget">').prop('value', 'LogFilePrev').text('Prev').on('click', sl.prevLogFile);
$ctrl.fileNext = $('<button type="button" class="ui-button ui-corner-all ui-widget">').prop('value', 'LogFileNext').text('Next').on('click', sl.nextLogFile);
$btnPane.append($pnl.logFileActions.append($ctrl.filePrev).append($ctrl.fileNext));
}
sl.prevLogFile = function ()
{
let files = sl.data.files;
if ((files || []).length < 2) return;
let filename = $('.LogFilename', $dlg.file).val();
let filenamePrev = files[files.length - 1].name;
for (let fileIdx = 0; fileIdx < files.length; fileIdx++)
{
let filenameNext = files[fileIdx].name;
if (filenameNext == filename)
{
sl.showFile(filenamePrev);
return;
}
filenamePrev = filenameNext;
}
}
sl.nextLogFile = function ()
{
let files = sl.data.files;
if ((files || []).length < 2) return;
let filename = $('.LogFilename', $dlg.file).val();
let filenameNext = files[0].name;
for (let fileIdx = files.length - 1; fileIdx >= 0; fileIdx--)
{
let filenamePrev = files[fileIdx].name;
if (filenamePrev == filename)
{
sl.showFile(filenameNext);
return;
}
filenameNext = filenamePrev;
}
}
//--------------------------------------------------------------
$(function ()
@@ -199,6 +261,7 @@
$pnl.filter = $('.sax-panel-filter', $pnl.logFiles);
$pnl.results = $('.sax-panel-results', $pnl.logFiles);
$pnl.msgs = $('.sax-panel-messages', $pnl.results)
$pnl.list = $('table.sax-item-list', $pnl.results)
$pnl.filter.on('click', '.sax-action.sax-results-refresh', function () { sl.refreshFiles(); });
$('.sax-input').on('input', function () { sax.clearControlError(this); });
@@ -209,7 +272,8 @@
$ctrl.cbMonths = $('#cbFilterLogMonth', $frm.filter).on('change', function () { sl.refreshFiles(250); });
var opt = sax.dlgOpts();
opt.buttons[sax.dlg.btn.close] = function () { $(this).dialog('close'); };
opt.buttons[sax.dlg.btn.close] = function () { $(this).dialog('close'); sl.setFileData(); };
opt.create = sl.onCreateLogFileDlg;
$dlg.file = $('#dlgLogFile').dialog(opt);
setTimeout(sl.refreshFolders, 250);