v1.0.4.2
This commit is contained in:
@@ -12,7 +12,7 @@ using System.Text;
|
||||
namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxDataCacheConsole_Web : SaxDataCacheConsole
|
||||
public abstract class SaxDataCacheConsole_Web : SaxDataCacheConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
@@ -34,6 +34,10 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
protected abstract void ForceRefresh();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Regions.
|
||||
public bool RegionsSupported { get; protected set; } = false;
|
||||
@@ -48,7 +52,8 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
String fn = GetType().Name + ".ActiveRegions";
|
||||
if (!RegionsSupported) throw new NotSupportedException(fn + " Regions not supported.");
|
||||
List<SaxRegion> activeRegions = new List<SaxRegion>();
|
||||
lock (regionsData)
|
||||
if (regionsData.regions == null) ForceRefresh();
|
||||
lock (regionsData)
|
||||
{
|
||||
if (regionsData.regions == null) throw new NotSupportedException(fn + " Regions not populated.");
|
||||
activeRegions = new List<SaxRegion>(regionsData.activeRegions);
|
||||
@@ -119,9 +124,9 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
String fn = GetType().Name + ".ActiveSports";
|
||||
if (!SportsSupported) throw new NotSupportedException(fn + " Sports not supported.");
|
||||
List<SaxSport> activeSports = new List<SaxSport>();
|
||||
if (sportsData.sports == null) ForceRefresh();
|
||||
lock (sportsData)
|
||||
{
|
||||
if (sportsData.sports == null) throw new NotSupportedException(fn + " Sports not populated.");
|
||||
foreach (SaxSport sport in sportsData.sports.GetValues())
|
||||
{
|
||||
if (IsSportActive(sport))
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
return View(new ErrorViewModel(Localiser) { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -65,13 +65,6 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
return View(model);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
using Saxonite.Net.Core.Web.Base.App;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
{
|
||||
//=======================================================================
|
||||
public class ErrorViewModel
|
||||
public class ErrorViewModel : SaxModel_Admin
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public ErrorViewModel(SaxLocaliser localiser) :
|
||||
base(localiser)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public string RequestId { get; set; }
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
public Model_Security(SaxLocaliser localiser) :
|
||||
base(localiser)
|
||||
{
|
||||
AdditionalFiles_CSS.Add("css/sax-security.css");
|
||||
//AdditionalFiles_CSS.Add("css/sax-security.css");
|
||||
AdditionalFiles_JS.Add("js/sax-security.js");
|
||||
}
|
||||
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["organisation.caption.organisations"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["organisation.caption.organisations"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmOrganisationFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -30,10 +31,13 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Organisation">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><div class="OrganisationName">Organisation name</div></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action OrganisationName">Organisation name</div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="fixed sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter OrganisationMembers">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["organisation.caption.members"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["organisation.caption.members"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="fixed sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="fixed sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmMemberFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -38,10 +39,13 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Member">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><div class="UserDisplayName"></div></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action UserDisplayName"></div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["region.caption.regions"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["region.caption.regions"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRegionFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -30,10 +31,13 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Region">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><span class="RegionName"></span> <span class="RegionCountryIso2Code"></span></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action"><span class="RegionName"></span> <span class="RegionCountryIso2Code"></span></div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
<div class="row">
|
||||
<div class="col-auto sax-label-text pt4">@Localiser["label.strength"] </div>
|
||||
<div id="" class="col-auto"><div id="prgPasswordStrength" class="col-auto"></div></div>
|
||||
<div class="clearb"></div>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
<div class="sax-action-link" style="font-size:12px;" onclick="sax.goToPage('Security/RequestPassword');">@Localiser["label.forgotten.password"]</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-control">
|
||||
@Html.PasswordFor(model => model.Password, new { @id = "ifPassword", @class = "sax-input", @maxlength = @Model.PasswordMaxLength })
|
||||
</div>
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["sport.caption.sports"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["sport.caption.sports"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSportFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -30,10 +31,13 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Sport">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><div class="SportName">Sport name</div></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class=" sax-action SportName">Sport name</div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
@@ -47,7 +51,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["system.caption.database"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["system.caption.database"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmDatabaseFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -29,8 +30,12 @@
|
||||
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item DatabaseTable">
|
||||
<div class="sax-header">
|
||||
<div class="sax-caption TableName"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action TableName"></div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content"></div>
|
||||
</div>
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["system.caption.logs"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["system.caption.logs"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmLogsFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -29,8 +30,12 @@
|
||||
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item LogFile">
|
||||
<div class="sax-header">
|
||||
<div class="sax-caption Filename"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action Filename"></div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content"></div>
|
||||
</div>
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["user.caption.users"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["user.caption.users"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmUserFilter", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
@@ -30,24 +31,27 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item User">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><div class="UserEmailAddress"></div></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action UserEmailAddress"></div></div>
|
||||
</div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><span class="UserDisplayName"></span></div>
|
||||
<div class="col-sm-4"><div>Roles: <span class="UserRoleCount"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="StatusDesc"></div></div>
|
||||
</div>
|
||||
<div class="col-sm-4 right"><div class="StatusDesc"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"></div>
|
||||
<div class="col-sm-4"><div class=""></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
border-radius: 6px;
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
overflow:hidden;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header
|
||||
@@ -116,13 +116,34 @@
|
||||
border-bottom: solid 2px #979797;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-caption
|
||||
.sax-panel-item .sax-header .sax-caption
|
||||
{
|
||||
margin-top: 4px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-action
|
||||
{
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-caption .sax-action:hover
|
||||
{
|
||||
color: var(--color-light);
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-actions .sax-action
|
||||
{
|
||||
margin: 2px 0 0 8px;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-actions .sax-action:hover
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
box-shadow: 0 0 4px 2px #c0c0c080;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-content
|
||||
{
|
||||
margin: 4px 8px;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
@@ -58,7 +58,9 @@
|
||||
$('.OrganisationSport', $item).text(item.sportName);
|
||||
$('.OrganisationMemberCount', $item).on('click', function () { sax.onClickMemberCount(item.id); }).find('.MemberCount').text(item.memberCount);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -83,7 +85,7 @@
|
||||
}
|
||||
sax.onRegionSelected = function (rgn)
|
||||
{
|
||||
sax.debug('onRegionSelected', rgn);
|
||||
//sax.debug('onRegionSelected', rgn);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationRegionId', $frm).val(rgn.id);
|
||||
$('.OrganisationRegionCaption', $frm).val(rgn.name);
|
||||
@@ -111,7 +113,7 @@
|
||||
}
|
||||
sax.onSportSelected = function (rgn)
|
||||
{
|
||||
sax.debug('onSportSelected', rgn);
|
||||
//sax.debug('onSportSelected', rgn);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationSportId', $frm).val(rgn.id);
|
||||
$('.OrganisationSportCaption', $frm).val(rgn.name);
|
||||
|
||||
@@ -58,7 +58,9 @@
|
||||
$('.UserDisplayName', $item).text(item.displayName);
|
||||
$('.MemberRoleCount .RoleCount', $item).text(item.roleCount);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
@@ -56,7 +56,9 @@
|
||||
$('.RegionTypeDesc', $item).text(item.regionTypeDesc);
|
||||
$('.RegionParentName', $item).text(item.parentName);
|
||||
$('.RegionStatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
@@ -53,7 +53,9 @@
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.SportName', $item).text(item.name);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
@@ -65,7 +65,9 @@
|
||||
$('.UserLastName', $item).text(item.lastName);
|
||||
$('.UserRoleCount', $item).text(item.userRoleCount);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Saxonite.Net.Core.Web.Base.Consoles;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Core.Web.Base.Consoles;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Consoles;
|
||||
using System;
|
||||
@@ -17,6 +18,7 @@ namespace Saxonite.Net.Core.Web.Online.Consoles
|
||||
public SaxDataCacheConsole_Online(SaxSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
String fn = GetType().Name + ".CTR";
|
||||
RegionsSupported = true;
|
||||
SportsSupported = true;
|
||||
|
||||
@@ -24,11 +26,26 @@ namespace Saxonite.Net.Core.Web.Online.Consoles
|
||||
refreshTimer = new System.Timers.Timer(Math.Max(2, Sax.Config.Online.DataCache.RefreshIntervalSecs.Initial) * 1000);
|
||||
refreshTimer.Elapsed += RefreshTimer_Elapsed;
|
||||
refreshTimer.Start();
|
||||
SaLogger.Info(fn + " Refresh timer initialised. Interval: " + refreshTimer.Interval, true);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
protected override void ForceRefresh()
|
||||
{
|
||||
String fn = GetType().Name + ".ForceRefresh";
|
||||
SaLogger.Warn(fn + " Refresh timer initialised", true);
|
||||
RefreshData();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Refresh data cache.
|
||||
private void RefreshTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
refreshTimer.Stop();
|
||||
RefreshData();
|
||||
}
|
||||
private void RefreshData()
|
||||
{
|
||||
refreshTimer.Stop();
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
return View(new ErrorViewModel(Localiser) { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
using Saxonite.Net.Core.Web.Base.App;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Core.Web.Online.Models
|
||||
{
|
||||
//=======================================================================
|
||||
public class ErrorViewModel
|
||||
public class ErrorViewModel : SaxModel_Online
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public ErrorViewModel(SaxLocaliser localiser) :
|
||||
base(localiser)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public string RequestId { get; set; }
|
||||
|
||||
|
||||
@@ -7,11 +7,12 @@
|
||||
<div class="">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["journalist.caption.articles"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["journalist.caption.articles"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmArticleFilter", @class = "sax-form", @action = "#", @method = "POST", onsubmit = "return false;" }))
|
||||
@@ -29,25 +30,28 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Article">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><div class="ArticleHeadline"></div></div>
|
||||
<div class="floatr sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="ArticleSummary"></div></div>
|
||||
<div class="col-sm-6"><div class="ArticleRegionCaption"></div></div>
|
||||
<div class="col-sm-6 right"><div class="ArticleSportCaption"></div></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action ArticleHeadline"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="ArticleCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="ArticlePublished">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="ArticleStatusDesc"></div></div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="ArticleSummary"></div></div>
|
||||
<div class="col-sm-6"><div class="ArticleRegionCaption"></div></div>
|
||||
<div class="col-sm-6 right"><div class="ArticleSportCaption"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="ArticleCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="ArticlePublished">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="ArticleStatusDesc"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -7,11 +7,12 @@
|
||||
<div id="pnlOpportunities">
|
||||
|
||||
<div class="sax-panel-filter">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption">@Localiser["organisation.caption.opportunities"]</div>
|
||||
<div class="floatr sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="floatr sax-action sax-item-create hidden"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["organisation.caption.opportunities"]</div></div>
|
||||
<div class="fixed row">
|
||||
<div class="sax-action sax-results-refresh"><img src="~/img/action/refresh24.png" alt="@(Localiser["label.refresh"])" title="@(Localiser["label.refresh"])" /></div>
|
||||
<div class="sax-action sax-item-create hidden"><img src="~/img/action/add24.png" alt="@(Localiser["label.create"])" title="@(Localiser["label.create"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmOpportunityFilter", @class = "sax-form", @action = "#", @method = "POST", onsubmit = "return false;" }))
|
||||
@@ -37,25 +38,28 @@
|
||||
<div class="sax-panel-item-list"></div>
|
||||
<div class="sax-panel-item-template">
|
||||
<div class="sax-panel-item Opportunity">
|
||||
<div class="sax-header">
|
||||
<div class="floatl sax-caption"><span class="OpportunityType"></span> - <span class="OpportunityPosition"></span></div>
|
||||
<div class="floatr sax-action sax-item-update hidden"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
<div class="clearb"></div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="OpportunityOutline"></div></div>
|
||||
<div class="col-sm-6"><div class="OpportunityRegionCaption"></div></div>
|
||||
<div class="col-sm-6 right"><div class="OpportunitySportCaption"></div></div>
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption"><div class="sax-action"><span class="OpportunityType"></span> - <span class="OpportunityPosition"></span></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="OpportunityCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="OpportunityPublished">@Localiser["label.published"]: <span class="OpportunityPublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="OpportunityStatusDesc"></div></div>
|
||||
<div class="fixed sax-actions">
|
||||
<div class="sax-action sax-item-update hidden"><img src="~/img/action/edit24.png" alt="@(Localiser["label.update"])" title="@(Localiser["label.update"])" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="OpportunityOutline"></div></div>
|
||||
<div class="col-sm-6"><div class="OpportunityRegionCaption"></div></div>
|
||||
<div class="col-sm-6 right"><div class="OpportunitySportCaption"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="OpportunityCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="OpportunityPublished">@Localiser["label.published"]: <span class="OpportunityPublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="OpportunityStatusDesc"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
<div class="row">
|
||||
<div class="col-auto sax-label-text pt4">@Localiser["label.strength"] </div>
|
||||
<div id="" class="col-auto"><div id="prgPasswordStrength" class="col-auto"></div></div>
|
||||
<div class="clearb"></div>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
<div class="sax-action-link" style="font-size:12px;" onclick="sax.goToPage('Security/RequestPassword');">@Localiser["label.forgotten.password"]</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearb"></div>
|
||||
<div class="sax-control">
|
||||
@Html.PasswordFor(model => model.Password, new { @id = "ifPassword", @class = "sax-input", @maxlength = @Model.PasswordMaxLength })
|
||||
</div>
|
||||
|
||||
@@ -129,6 +129,27 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-action
|
||||
{
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-caption .sax-action:hover
|
||||
{
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-actions .sax-action
|
||||
{
|
||||
margin: 2px 0 0 8px;
|
||||
}
|
||||
|
||||
.sax-panel-item .sax-header .sax-actions .sax-action:hover
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
box-shadow: 0 0 4px 2px #c0c0c080;
|
||||
}
|
||||
|
||||
.sax-panel-item > .sax-content
|
||||
{
|
||||
margin: 6px 8px;
|
||||
|
||||
@@ -54,7 +54,8 @@
|
||||
$('.ArticlePublishedOn', $item).text(item.publishedOnFmt);
|
||||
$('.ArticlePublished', $item).toggle(!!item.publishedOnFmt);
|
||||
$('.ArticleStatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) })
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,8 @@
|
||||
$('.OpportunityExpiresOn', $item).text(item.expiresOnFmt);
|
||||
$('.OpportunityExpires', $item).toggle(!!item.expiresOnFmt);
|
||||
$('.OpportunityStatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) });
|
||||
$('.sax-caption .sax-action, .sax-actions .sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) });
|
||||
$item.off('dblclick').on('dblclick', function () { sax.updateItem(item.id) });
|
||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.0.4.0";
|
||||
private static String version { get; } = "1.0.4.2";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUserAccount\n\tQuery: " + dbCommand.CommandText + "\n\t" + exc.GetType().Name + ": " + exc.Message);
|
||||
SaLogger.Warn(GetType().Name + ".GetUserAccount\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userAccount;
|
||||
|
||||
Reference in New Issue
Block a user