This commit is contained in:
2021-05-22 13:44:34 +01:00
parent 047e8b235a
commit 778ee3aa03
32 changed files with 254 additions and 135 deletions
@@ -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">
+13 -9
View File
@@ -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"]&nbsp;</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>
+14 -10
View File
@@ -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>
+11 -6
View File
@@ -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>
+16 -12
View File
@@ -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>
+23 -2
View File
@@ -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();
}
//--------------------------------------------------------------
+3 -1
View File
@@ -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();
}
//--------------------------------------------------------------
+3 -1
View File
@@ -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();
}
//--------------------------------------------------------------