diff --git a/EgwCoreLib.Lux.Data/DataLayerContext.cs b/EgwCoreLib.Lux.Data/DataLayerContext.cs index 23f4dca0..38cc0429 100644 --- a/EgwCoreLib.Lux.Data/DataLayerContext.cs +++ b/EgwCoreLib.Lux.Data/DataLayerContext.cs @@ -1,6 +1,4 @@ -using Microsoft.Extensions.Configuration; - -namespace EgwCoreLib.Lux.Data +namespace EgwCoreLib.Lux.Data { public partial class DataLayerContext : DbContext { @@ -126,7 +124,7 @@ namespace EgwCoreLib.Lux.Data .HasKey(jst => new { jst.JobStepID, jst.CodTag }); modelBuilder.Entity() - .HasKey(x => new { x.ProdItemID, x.ProdODLID }); + .HasKey(x => new { x.ProdItemID, x.ProdODLID }); modelBuilder.Entity() .HasOne(x => x.ProductionItemNav) diff --git a/Lux.Report.Manager/Components/Compo/CmpFooter.razor b/Lux.Report.Manager/Components/Compo/CmpFooter.razor new file mode 100644 index 00000000..24fb2c8d --- /dev/null +++ b/Lux.Report.Manager/Components/Compo/CmpFooter.razor @@ -0,0 +1,12 @@ +
+
+ Lux.ReportManager v.@version +
+
+ @adesso + Egalware +
+
+ + + diff --git a/Lux.Report.Manager/Components/Compo/CmpFooter.razor.cs b/Lux.Report.Manager/Components/Compo/CmpFooter.razor.cs new file mode 100644 index 00000000..d61058cc --- /dev/null +++ b/Lux.Report.Manager/Components/Compo/CmpFooter.razor.cs @@ -0,0 +1,72 @@ +namespace Lux.Report.Manager.Components.Compo +{ + public partial class CmpFooter : IDisposable + { + #region Public Methods + + public void Dispose() + { + if (aTimer != null) + { + aTimer.Elapsed -= ElapsedTimer; + aTimer.Stop(); + aTimer.Dispose(); + } + } + + #endregion Public Methods + + #region Protected Methods + + protected override void OnInitialized() + { + var rawVers = typeof(Program).Assembly.GetName().Version; + version = rawVers != null ? rawVers : new Version("0.0.0.0"); + StartTimer(); + } + + #endregion Protected Methods + + #region Private Fields + + private DateTime adesso = DateTime.Now; + + private System.Timers.Timer aTimer = null!; + + private Version? version = null!; + + #endregion Private Fields + + #region Private Methods + + private void ElapsedTimer(object? source, System.Timers.ElapsedEventArgs e) + { + var pUpd = Task.Run(async () => + { + adesso = DateTime.Now; + await InvokeAsync(StateHasChanged); + }); + pUpd.Wait(); + } + + private void StartTimer() + { + if (aTimer != null) + { + aTimer.Stop(); + aTimer.Dispose(); + } +#if DEBUG + int tOutPeriod = 1000; +#else + int tOutPeriod = 10000; +#endif + aTimer = new System.Timers.Timer(tOutPeriod); + aTimer.Elapsed += ElapsedTimer; + aTimer.Enabled = true; + aTimer.Start(); + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/Lux.Report.Manager/Components/Layout/MainLayout.razor b/Lux.Report.Manager/Components/Layout/MainLayout.razor index 5a24bb13..e0d1f03d 100644 --- a/Lux.Report.Manager/Components/Layout/MainLayout.razor +++ b/Lux.Report.Manager/Components/Layout/MainLayout.razor @@ -6,13 +6,16 @@
-
- About +
+ About
@Body
+
+ +
diff --git a/Lux.Report.Manager/Components/Layout/MainLayout.razor.css b/Lux.Report.Manager/Components/Layout/MainLayout.razor.css index 038baf17..faf60fcc 100644 --- a/Lux.Report.Manager/Components/Layout/MainLayout.razor.css +++ b/Lux.Report.Manager/Components/Layout/MainLayout.razor.css @@ -1,96 +1,102 @@ -.page { - position: relative; - display: flex; - flex-direction: column; +.page { + position: relative; + display: flex; + flex-direction: column; } - main { - flex: 1; + flex: 1; } - -.sidebar { - background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +.sidebar, +.sidebarSmall { + /*background-image: linear-gradient(180deg, rgb(5, 39, 103) 20%, #3aa6ff 90%);*/ + background: -webkit-linear-gradient(to bottom, #053787, #00A5FF); + /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to bottom, #053787, #00A5FF); + /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ } - .top-row { - background-color: #f7f7f7; - border-bottom: 1px solid #d6d5d5; - justify-content: flex-end; - height: 3.5rem; - display: flex; - align-items: center; + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + /*justify-content: flex-end;*/ + height: 3.5rem; + display: flex; + align-items: center; +} +.top-row ::deep a, +.top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; +} +.top-row ::deep a:hover, +.top-row ::deep .btn-link:hover { + text-decoration: underline; +} +.top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; +} +.bottom-row { + color: #dedede; + background-color: #000000; + height: 1.6rem; + align-items: center; } - - .top-row ::deep a, .top-row ::deep .btn-link { - white-space: nowrap; - margin-left: 1.5rem; - text-decoration: none; - } - - .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { - text-decoration: underline; - } - - .top-row ::deep a:first-child { - overflow: hidden; - text-overflow: ellipsis; - } - @media (max-width: 640.98px) { - .top-row { - justify-content: space-between; - } - - .top-row ::deep a, .top-row ::deep .btn-link { - margin-left: 0; - } + .top-row { + justify-content: space-between; + } + .top-row ::deep a, + .top-row ::deep .btn-link { + margin-left: 0; + } } - @media (min-width: 641px) { - .page { - flex-direction: row; - } - - .sidebar { - width: 250px; - height: 100vh; - position: sticky; - top: 0; - } - - .top-row { - position: sticky; - top: 0; - z-index: 1; - } - - .top-row.auth ::deep a:first-child { - flex: 1; - text-align: right; - width: 0; - } - - .top-row, article { - padding-left: 2rem !important; - padding-right: 1.5rem !important; - } + .page { + flex-direction: row; + } + .sidebar { + width: 13.5rem; + height: 100vh; + position: sticky; + top: 0; + } + .sidebarSmall { + width: 4.5rem; + height: 100vh; + position: sticky; + top: 0; + } + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } + .top-row, + article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } } - #blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; } - - #blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; - } +#blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; +} \ No newline at end of file diff --git a/Lux.Report.Manager/Components/Layout/MainLayout.razor.less b/Lux.Report.Manager/Components/Layout/MainLayout.razor.less new file mode 100644 index 00000000..90cc213e --- /dev/null +++ b/Lux.Report.Manager/Components/Layout/MainLayout.razor.less @@ -0,0 +1,114 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} + +.sidebar, +.sidebarSmall { + /*background-image: linear-gradient(180deg, rgb(5, 39, 103) 20%, #3aa6ff 90%);*/ + background: -webkit-linear-gradient(to bottom, #053787, #00A5FF); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to bottom, #053787, #00A5FF); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + /*justify-content: flex-end;*/ + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; + } + + .top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +.bottom-row { + color: #dedede; + background-color: #000000; + height: 1.6rem; + align-items: center; +} + +@media (max-width: 640.98px) { + .top-row { + justify-content: space-between; + } + + .top-row ::deep a, .top-row ::deep .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 13.5rem; + height: 100vh; + position: sticky; + top: 0; + } + + .sidebarSmall { + width: 4.5rem; + height: 100vh; + position: sticky; + top: 0; + } + + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/Lux.Report.Manager/Components/Layout/MainLayout.razor.min.css b/Lux.Report.Manager/Components/Layout/MainLayout.razor.min.css new file mode 100644 index 00000000..7a1a6627 --- /dev/null +++ b/Lux.Report.Manager/Components/Layout/MainLayout.razor.min.css @@ -0,0 +1 @@ +.page{position:relative;display:flex;flex-direction:column;}main{flex:1;}.sidebar,.sidebarSmall{background:-webkit-linear-gradient(to bottom,#053787,#00a5ff);background:linear-gradient(to bottom,#053787,#00a5ff);}.top-row{background-color:#f7f7f7;border-bottom:1px solid #d6d5d5;height:3.5rem;display:flex;align-items:center;}.top-row ::deep a,.top-row ::deep .btn-link{white-space:nowrap;margin-left:1.5rem;text-decoration:none;}.top-row ::deep a:hover,.top-row ::deep .btn-link:hover{text-decoration:underline;}.top-row ::deep a:first-child{overflow:hidden;text-overflow:ellipsis;}.bottom-row{color:#dedede;background-color:#000;height:1.6rem;align-items:center;}@media(max-width:640.98px){.top-row{justify-content:space-between;}.top-row ::deep a,.top-row ::deep .btn-link{margin-left:0;}}@media(min-width:641px){.page{flex-direction:row;}.sidebar{width:13.5rem;height:100vh;position:sticky;top:0;}.sidebarSmall{width:4.5rem;height:100vh;position:sticky;top:0;}.top-row{position:sticky;top:0;z-index:1;}.top-row.auth ::deep a:first-child{flex:1;text-align:right;width:0;}.top-row,article{padding-left:2rem!important;padding-right:1.5rem!important;}}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;} \ No newline at end of file diff --git a/Lux.Report.Manager/Components/Layout/NavMenu.razor b/Lux.Report.Manager/Components/Layout/NavMenu.razor index ca6d464d..e475e734 100644 --- a/Lux.Report.Manager/Components/Layout/NavMenu.razor +++ b/Lux.Report.Manager/Components/Layout/NavMenu.razor @@ -8,18 +8,23 @@