From 778ee3aa030800c6208781556045a2fc85bd737f Mon Sep 17 00:00:00 2001 From: Andy Howard Date: Sat, 22 May 2021 13:44:34 +0100 Subject: [PATCH] v1.0.4.2 --- .../Base/Consoles/SaxDataCacheConsole_Web.cs | 11 +++-- .../Admin/Controllers/HomeController.cs | 2 +- .../Admin/Controllers/SystemController.cs | 7 --- .../Admin/Models/ErrorViewModel.cs | 10 ++++- .../Admin/Models/Model_Security.cs | 2 +- .../Views/Organisation/Index.cshtml | 22 ++++++---- .../Views/Organisation/Members.cshtml | 22 ++++++---- .../Views/Region/Index.cshtml | 22 ++++++---- .../Views/Security/ChangePassword.cshtml | 1 - .../Views/Security/Signin.cshtml | 1 - SaxoniteCoreWebAdmin/Views/Sport/Index.cshtml | 24 +++++----- .../Views/System/Database.cshtml | 17 ++++--- SaxoniteCoreWebAdmin/Views/System/Logs.cshtml | 17 ++++--- SaxoniteCoreWebAdmin/Views/User/Index.cshtml | 28 +++++++----- SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css | 25 ++++++++++- .../wwwroot/js/sax-organisation.js | 10 +++-- .../wwwroot/js/sax-organisationMembers.js | 4 +- SaxoniteCoreWebAdmin/wwwroot/js/sax-region.js | 4 +- SaxoniteCoreWebAdmin/wwwroot/js/sax-sport.js | 4 +- SaxoniteCoreWebAdmin/wwwroot/js/sax-user.js | 4 +- .../Consoles/SaxDataCacheConsole_Online.cs | 19 +++++++- .../Online/Controllers/HomeController.cs | 2 +- .../Online/Models/ErrorViewModel.cs | 10 ++++- .../Views/Journalist/Articles.cshtml | 44 ++++++++++--------- .../Views/Organisation/Opportunities.cshtml | 44 ++++++++++--------- .../Views/Security/ChangePassword.cshtml | 1 - .../Views/Security/Signin.cshtml | 1 - .../wwwroot/css/sax-data.css | 21 +++++++++ .../wwwroot/js/sax-jrn-art.js | 3 +- .../wwwroot/js/sax-org-opp.js | 3 +- SaxoniteStandardBase/Base/App/Sax-Version.cs | 2 +- .../Mgr/SaxAccountMgr_Dbas-UserAccount.cs | 2 +- 32 files changed, 254 insertions(+), 135 deletions(-) diff --git a/SaxoniteCoreWeb/Base/Consoles/SaxDataCacheConsole_Web.cs b/SaxoniteCoreWeb/Base/Consoles/SaxDataCacheConsole_Web.cs index 28e5e72..24fc30c 100644 --- a/SaxoniteCoreWeb/Base/Consoles/SaxDataCacheConsole_Web.cs +++ b/SaxoniteCoreWeb/Base/Consoles/SaxDataCacheConsole_Web.cs @@ -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 activeRegions = new List(); - lock (regionsData) + if (regionsData.regions == null) ForceRefresh(); + lock (regionsData) { if (regionsData.regions == null) throw new NotSupportedException(fn + " Regions not populated."); activeRegions = new List(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 activeSports = new List(); + 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)) diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController.cs index af75acf..adb97bb 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController.cs @@ -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 }); } //------------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController.cs index 280837a..70ab60a 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController.cs @@ -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 }); - } - //------------------------------------------------------------------- } //======================================================================= diff --git a/SaxoniteCoreWebAdmin/Admin/Models/ErrorViewModel.cs b/SaxoniteCoreWebAdmin/Admin/Models/ErrorViewModel.cs index 492b125..25b2821 100644 --- a/SaxoniteCoreWebAdmin/Admin/Models/ErrorViewModel.cs +++ b/SaxoniteCoreWebAdmin/Admin/Models/ErrorViewModel.cs @@ -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; } diff --git a/SaxoniteCoreWebAdmin/Admin/Models/Model_Security.cs b/SaxoniteCoreWebAdmin/Admin/Models/Model_Security.cs index 7d443ba..843bf31 100644 --- a/SaxoniteCoreWebAdmin/Admin/Models/Model_Security.cs +++ b/SaxoniteCoreWebAdmin/Admin/Models/Model_Security.cs @@ -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"); } diff --git a/SaxoniteCoreWebAdmin/Views/Organisation/Index.cshtml b/SaxoniteCoreWebAdmin/Views/Organisation/Index.cshtml index 40ba1e1..b87c2a3 100644 --- a/SaxoniteCoreWebAdmin/Views/Organisation/Index.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Organisation/Index.cshtml @@ -8,11 +8,12 @@
-
-
@Localiser["organisation.caption.organisations"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["organisation.caption.organisations"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmOrganisationFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -30,10 +31,13 @@
-
-
Organisation name
-
@(Localiser[
-
+
+
+
Organisation name
+
+
+
@(Localiser[
+
diff --git a/SaxoniteCoreWebAdmin/Views/Organisation/Members.cshtml b/SaxoniteCoreWebAdmin/Views/Organisation/Members.cshtml index 53e5c37..ecebfa9 100644 --- a/SaxoniteCoreWebAdmin/Views/Organisation/Members.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Organisation/Members.cshtml @@ -8,11 +8,12 @@
-
-
@Localiser["organisation.caption.members"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["organisation.caption.members"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmMemberFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -38,10 +39,13 @@
-
-
-
@(Localiser[
-
+
+
+
+
+
+
@(Localiser[
+
diff --git a/SaxoniteCoreWebAdmin/Views/Region/Index.cshtml b/SaxoniteCoreWebAdmin/Views/Region/Index.cshtml index a178a57..859c370 100644 --- a/SaxoniteCoreWebAdmin/Views/Region/Index.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Region/Index.cshtml @@ -8,11 +8,12 @@
-
-
@Localiser["region.caption.regions"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["region.caption.regions"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRegionFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -30,10 +31,13 @@
-
-
-
@(Localiser[
-
+
+
+
+
+
+
@(Localiser[
+
diff --git a/SaxoniteCoreWebAdmin/Views/Security/ChangePassword.cshtml b/SaxoniteCoreWebAdmin/Views/Security/ChangePassword.cshtml index db29414..c762bde 100644 --- a/SaxoniteCoreWebAdmin/Views/Security/ChangePassword.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Security/ChangePassword.cshtml @@ -39,7 +39,6 @@
@Localiser["label.strength"] 
-
diff --git a/SaxoniteCoreWebAdmin/Views/Security/Signin.cshtml b/SaxoniteCoreWebAdmin/Views/Security/Signin.cshtml index 0e44686..871c952 100644 --- a/SaxoniteCoreWebAdmin/Views/Security/Signin.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Security/Signin.cshtml @@ -34,7 +34,6 @@
-
@Html.PasswordFor(model => model.Password, new { @id = "ifPassword", @class = "sax-input", @maxlength = @Model.PasswordMaxLength })
diff --git a/SaxoniteCoreWebAdmin/Views/Sport/Index.cshtml b/SaxoniteCoreWebAdmin/Views/Sport/Index.cshtml index 52c7559..a6478f3 100644 --- a/SaxoniteCoreWebAdmin/Views/Sport/Index.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Sport/Index.cshtml @@ -8,11 +8,12 @@
-
-
@Localiser["sport.caption.sports"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["sport.caption.sports"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSportFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -30,10 +31,13 @@
-
-
Sport name
-
@(Localiser[
-
+
+
+
Sport name
+
+
+
@(Localiser[
+
@@ -47,7 +51,7 @@
-
+
diff --git a/SaxoniteCoreWebAdmin/Views/System/Database.cshtml b/SaxoniteCoreWebAdmin/Views/System/Database.cshtml index 97873b8..f06b38c 100644 --- a/SaxoniteCoreWebAdmin/Views/System/Database.cshtml +++ b/SaxoniteCoreWebAdmin/Views/System/Database.cshtml @@ -7,10 +7,11 @@
-
-
@Localiser["system.caption.database"]
-
@(Localiser[
-
+
+
@Localiser["system.caption.database"]
+
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmDatabaseFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -29,8 +30,12 @@
-
-
+
+
+
+
+
+
diff --git a/SaxoniteCoreWebAdmin/Views/System/Logs.cshtml b/SaxoniteCoreWebAdmin/Views/System/Logs.cshtml index 4a8c283..ed981c6 100644 --- a/SaxoniteCoreWebAdmin/Views/System/Logs.cshtml +++ b/SaxoniteCoreWebAdmin/Views/System/Logs.cshtml @@ -7,10 +7,11 @@
-
-
@Localiser["system.caption.logs"]
-
@(Localiser[
-
+
+
@Localiser["system.caption.logs"]
+
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmLogsFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -29,8 +30,12 @@
-
-
+
+
+
+
+
+
diff --git a/SaxoniteCoreWebAdmin/Views/User/Index.cshtml b/SaxoniteCoreWebAdmin/Views/User/Index.cshtml index 72c08f9..2d3fe88 100644 --- a/SaxoniteCoreWebAdmin/Views/User/Index.cshtml +++ b/SaxoniteCoreWebAdmin/Views/User/Index.cshtml @@ -8,11 +8,12 @@
-
-
@Localiser["user.caption.users"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["user.caption.users"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmUserFilter", @class = "sax-form", @onSubmit = "return false;" })) @@ -30,24 +31,27 @@
-
-
-
@(Localiser[
-
+
+
+
+
+
+
@(Localiser[
+
Roles:
-
-
+
+
-
+
diff --git a/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css b/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css index f90571e..eeea31c 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css +++ b/SaxoniteCoreWebAdmin/wwwroot/css/sax-data.css @@ -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; diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisation.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisation.js index 29df97b..c65c86d 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisation.js +++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisation.js @@ -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); diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisationMembers.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisationMembers.js index b6c1343..2422552 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisationMembers.js +++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-organisationMembers.js @@ -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(); } //-------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-region.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-region.js index 3b69a4b..f0c24bc 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-region.js +++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-region.js @@ -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(); } //-------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-sport.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-sport.js index 46a509d..9b65352 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-sport.js +++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-sport.js @@ -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(); } //-------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/wwwroot/js/sax-user.js b/SaxoniteCoreWebAdmin/wwwroot/js/sax-user.js index 77c38bd..c0a39a4 100644 --- a/SaxoniteCoreWebAdmin/wwwroot/js/sax-user.js +++ b/SaxoniteCoreWebAdmin/wwwroot/js/sax-user.js @@ -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(); } //-------------------------------------------------------------- diff --git a/SaxoniteCoreWebOnline/Online/Consoles/SaxDataCacheConsole_Online.cs b/SaxoniteCoreWebOnline/Online/Consoles/SaxDataCacheConsole_Online.cs index 48a26a0..c13f398 100644 --- a/SaxoniteCoreWebOnline/Online/Consoles/SaxDataCacheConsole_Online.cs +++ b/SaxoniteCoreWebOnline/Online/Consoles/SaxDataCacheConsole_Online.cs @@ -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(); diff --git a/SaxoniteCoreWebOnline/Online/Controllers/HomeController.cs b/SaxoniteCoreWebOnline/Online/Controllers/HomeController.cs index 411cfe3..ee215b7 100644 --- a/SaxoniteCoreWebOnline/Online/Controllers/HomeController.cs +++ b/SaxoniteCoreWebOnline/Online/Controllers/HomeController.cs @@ -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 }); } //------------------------------------------------------------------- diff --git a/SaxoniteCoreWebOnline/Online/Models/ErrorViewModel.cs b/SaxoniteCoreWebOnline/Online/Models/ErrorViewModel.cs index 0ec2125..2eeec44 100644 --- a/SaxoniteCoreWebOnline/Online/Models/ErrorViewModel.cs +++ b/SaxoniteCoreWebOnline/Online/Models/ErrorViewModel.cs @@ -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; } diff --git a/SaxoniteCoreWebOnline/Views/Journalist/Articles.cshtml b/SaxoniteCoreWebOnline/Views/Journalist/Articles.cshtml index 011749e..a053934 100644 --- a/SaxoniteCoreWebOnline/Views/Journalist/Articles.cshtml +++ b/SaxoniteCoreWebOnline/Views/Journalist/Articles.cshtml @@ -7,11 +7,12 @@
-
-
@Localiser["journalist.caption.articles"]
-
@(Localiser[
-
@(Localiser[
-
+
+
@Localiser["journalist.caption.articles"]
+
+
@(Localiser[
+
@(Localiser[
+
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmArticleFilter", @class = "sax-form", @action = "#", @method = "POST", onsubmit = "return false;" })) @@ -29,25 +30,28 @@
-
-
-
@(Localiser[
-
-
-
-
-
-
-
+
+
+
-
-
@Localiser["label.created"]: 
-
-
+
+
@(Localiser[
+
+
+
+
+
+
+
+
+
+
@Localiser["label.created"]: 
+
+
+
-
diff --git a/SaxoniteCoreWebOnline/Views/Organisation/Opportunities.cshtml b/SaxoniteCoreWebOnline/Views/Organisation/Opportunities.cshtml index cf52640..90b1e83 100644 --- a/SaxoniteCoreWebOnline/Views/Organisation/Opportunities.cshtml +++ b/SaxoniteCoreWebOnline/Views/Organisation/Opportunities.cshtml @@ -7,11 +7,12 @@
-
-
@Localiser["organisation.caption.opportunities"]
-
@(Localiser[
- -
+
+
@Localiser["organisation.caption.opportunities"]
+
+
@(Localiser[
+ +
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmOpportunityFilter", @class = "sax-form", @action = "#", @method = "POST", onsubmit = "return false;" })) @@ -37,25 +38,28 @@
-
-
-
- -
-
-
-
-
-
-
+
+
+
-
-
-
@Localiser["label.created"]: 
-
@Localiser["label.published"]: 
-
+
+ +
+
+
+
+
+
+
+
+
+
@Localiser["label.created"]: 
+
@Localiser["label.published"]: 
+
+
-
diff --git a/SaxoniteCoreWebOnline/Views/Security/ChangePassword.cshtml b/SaxoniteCoreWebOnline/Views/Security/ChangePassword.cshtml index 68c1c79..13db2b9 100644 --- a/SaxoniteCoreWebOnline/Views/Security/ChangePassword.cshtml +++ b/SaxoniteCoreWebOnline/Views/Security/ChangePassword.cshtml @@ -42,7 +42,6 @@
@Localiser["label.strength"] 
-
diff --git a/SaxoniteCoreWebOnline/Views/Security/Signin.cshtml b/SaxoniteCoreWebOnline/Views/Security/Signin.cshtml index 7ae90b0..35f2ed4 100644 --- a/SaxoniteCoreWebOnline/Views/Security/Signin.cshtml +++ b/SaxoniteCoreWebOnline/Views/Security/Signin.cshtml @@ -38,7 +38,6 @@
-
@Html.PasswordFor(model => model.Password, new { @id = "ifPassword", @class = "sax-input", @maxlength = @Model.PasswordMaxLength })
diff --git a/SaxoniteCoreWebOnline/wwwroot/css/sax-data.css b/SaxoniteCoreWebOnline/wwwroot/css/sax-data.css index 2a9068b..89a52a3 100644 --- a/SaxoniteCoreWebOnline/wwwroot/css/sax-data.css +++ b/SaxoniteCoreWebOnline/wwwroot/css/sax-data.css @@ -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; diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-jrn-art.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-jrn-art.js index ba39faf..2808ff3 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-jrn-art.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-jrn-art.js @@ -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(); } diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js index b1f505f..c5aba83 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js @@ -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(); } diff --git a/SaxoniteStandardBase/Base/App/Sax-Version.cs b/SaxoniteStandardBase/Base/App/Sax-Version.cs index c40ab8a..f2351b9 100644 --- a/SaxoniteStandardBase/Base/App/Sax-Version.cs +++ b/SaxoniteStandardBase/Base/App/Sax-Version.cs @@ -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 () diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs index 07a5481..63a63a0 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs @@ -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;