-
-
-
+ @* Log file list. *@
+
+
+
+
+ | @Localiser["label.file"] |
+ @Localiser["label.updated"] |
+ @Localiser["label.size"] |
+
+
+
+
+ @* Log file template. *@
+
diff --git a/SaxoniteCoreWebAdmin/Views/_ViewImports.cshtml b/SaxoniteCoreWebAdmin/Views/_ViewImports.cshtml
index 5ea8d6f..001f8b6 100644
--- a/SaxoniteCoreWebAdmin/Views/_ViewImports.cshtml
+++ b/SaxoniteCoreWebAdmin/Views/_ViewImports.cshtml
@@ -5,5 +5,6 @@
@using Saxonite.Net.Standard.Base.App
@using Saxonite.Net.Core.Web.Base.App
@using Saxonite.Net.Core.Web.Admin.Models
+@using Saxonite.Net.Core.Web.Admin.Models.Reference
@using Saxonite.Net.Core.Web.Admin.Models.Support
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css b/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css
index b1873d6..f7d82e0 100644
--- a/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css
+++ b/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css
@@ -318,6 +318,11 @@ table.sax-item-list tbody tr.sax-sel
background-color: palegreen;
}
+table.sax-item-list tbody td
+{
+ padding: 0 2px;
+}
+
/* Item */
.sax-panel-item-template
diff --git a/SaxoniteCoreWebAdmin/wwwroot/css/sax-main.css b/SaxoniteCoreWebAdmin/wwwroot/css/sax-main.css
index f9ce95d..606aa9f 100644
--- a/SaxoniteCoreWebAdmin/wwwroot/css/sax-main.css
+++ b/SaxoniteCoreWebAdmin/wwwroot/css/sax-main.css
@@ -127,7 +127,7 @@ button.accept-policy
#sax-page-footer div,
#sax-page-footer a
{
- font-size:0.75rem;
+ font-size: 0.75rem;
}
/* Information */
@@ -383,14 +383,21 @@ a:focus
.ui-dialog .ui-dialog-buttonpane button
{
- min-width:80px;
- margin:4px 8px 4px 0;
+ min-width: 80px;
+ margin: 4px 8px 4px 0;
color: #fff;
background-color: #d4af37;
border-color: #d4af37;
outline: none;
}
+.ui-dialog .ui-dialog-buttonpane button:disabled
+{
+ color: #e0e0e0;
+ background-color:#d5be70;
+ border-color:#d5be70;
+}
+
.ui-widget-overlay
{
background-color: #b0b0b0;
diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-ref-golf.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-ref-golf.js
index 52301cf..76df989 100644
--- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-ref-golf.js
+++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-ref-golf.js
@@ -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); };
diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-sys-logs.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-sys-logs.js
index 9e8b764..c68ceb6 100644
--- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-sys-logs.js
+++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-sys-logs.js
@@ -13,8 +13,8 @@
{
if (!sl.data.awaitingRefreshFoldersResponse)
{
- var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
- $pnl.msgs.hide().empty().append($('
' + sax.msg.dataQuerying + '
')).fadeIn(200);
+ sl.clearFiles();
+ //$pnl.msgs.hide().empty().append($('
' + sax.msg.dataQuerying + '
')).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($('
' + sax.msg.dataQuerying + '
')).fadeIn(200);
+ sl.clearFiles();
+ //$pnl.msgs.hide().empty().append($('
' + sax.msg.dataQuerying + '
')).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($('
' + sax.msg.dataQuerying + '
')).fadeIn(200);
+ sl.clearFiles();
+ //$pnl.msgs.hide().empty().append($('
' + sax.msg.dataQuerying + '
')).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($('
' + sax.msg.dataQuerying + '
')).fadeIn(200);
+ sl.clearFiles();
+ //$pnl.msgs.hide().empty().append($('
' + sax.msg.dataQuerying + '
')).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($('
' + sax.msg.dataNoneFound + '
')).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($('
' + sax.msg.dataQuerying + '
')).fadeIn(200);
+ sl.setFileData($('
' + sax.msg.dataQuerying + '
'));
+ 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 = $('
');
+ $ctrl.filePrev = $('