Change how pages are loaded to prevent multi-load.

This commit is contained in:
2020-06-10 17:31:57 +01:00
parent 0ed1ea4301
commit df59f668d8
30 changed files with 239 additions and 41 deletions

View File

@@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Version>4.0.0.1611</Version>
<Version>4.0.0.1618</Version>
<Company>Canary Islands Computer Museum</Company>
<Copyright>Copyright © 2003-2020 Natalia Portillo</Copyright>
<Product>Canary Islands Computer Museum Website</Product>

View File

@@ -31,8 +31,17 @@ namespace Marechai.Pages.Admin
{
public partial class BrowserTests
{
bool _loaded;
List<BrowserTest> _tests;
protected override async Task OnInitializedAsync() => _tests = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_tests = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -35,12 +35,20 @@ namespace Marechai.Pages.Admin
public partial class Companies
{
List<CompanyViewModel> _companies;
CompanyViewModel _currentCompany;
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
CompanyViewModel _currentCompany;
bool _deleteInProgress;
Modal _frmDelete;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
protected override async Task OnInitializedAsync() => _companies = await Service.GetAsync();
_companies = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
void ShowModal(int itemId)
{

View File

@@ -35,12 +35,20 @@ namespace Marechai.Pages.Admin
public partial class DocumentCompanies
{
List<DocumentCompanyViewModel> _companies;
DocumentCompanyViewModel _currentCompany;
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
DocumentCompanyViewModel _currentCompany;
bool _deleteInProgress;
Modal _frmDelete;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
protected override async Task OnInitializedAsync() => _companies = await Service.GetAsync();
_companies = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
void ShowModal(int itemId)
{

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
List<DocumentPersonViewModel> _people;
DocumentPersonViewModel _person;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _person = null;
protected override async Task OnInitializedAsync() => _people = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_people = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -38,6 +38,7 @@ namespace Marechai.Pages.Admin
Modal _frmDelete;
GpuViewModel _gpu;
List<GpuViewModel> _gpus;
bool _loaded;
void ShowModal(int itemId)
{
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _gpu = null;
protected override async Task OnInitializedAsync() => _gpus = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_gpus = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -38,6 +38,7 @@ namespace Marechai.Pages.Admin
InstructionSetExtension _extension;
List<InstructionSetExtension> _extensions;
Modal _frmDelete;
bool _loaded;
void ShowModal(int itemId)
{
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _extension = null;
protected override async Task OnInitializedAsync() => _extensions = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_extensions = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -38,6 +38,7 @@ namespace Marechai.Pages.Admin
Modal _frmDelete;
InstructionSet _instructionSet;
List<InstructionSet> _instructionSets;
bool _loaded;
void ShowModal(int itemId)
{
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _instructionSet = null;
protected override async Task OnInitializedAsync() => _instructionSets = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_instructionSets = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -38,6 +38,7 @@ namespace Marechai.Pages.Admin
Modal _frmDelete;
License _license;
List<License> _licenses;
bool _loaded;
void ShowModal(int itemId)
{
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _license = null;
protected override async Task OnInitializedAsync() => _licenses = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_licenses = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
List<MachineFamilyViewModel> _machineFamilies;
MachineFamilyViewModel _machineFamily;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _machineFamily = null;
protected override async Task OnInitializedAsync() => _machineFamilies = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_machineFamilies = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
MachineViewModel _machine;
List<MachineViewModel> _machines;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _machine = null;
protected override async Task OnInitializedAsync() => _machines = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_machines = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -37,9 +37,18 @@ namespace Marechai.Pages.Admin
NewsViewModel _currentNews;
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
List<NewsViewModel> _news;
protected override async Task OnInitializedAsync() => _news = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_news = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
void ShowModal(int itemId)
{

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
List<PersonViewModel> _people;
PersonViewModel _person;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _person = null;
protected override async Task OnInitializedAsync() => _people = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_people = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
ProcessorViewModel _processor;
List<ProcessorViewModel> _processors;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _processor = null;
protected override async Task OnInitializedAsync() => _processors = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_processors = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
ResolutionViewModel _resolution;
List<ResolutionViewModel> _resolutions;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _resolution = null;
protected override async Task OnInitializedAsync() => _resolutions = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_resolutions = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
ScreenViewModel _screen;
List<ScreenViewModel> _screens;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _screen = null;
protected override async Task OnInitializedAsync() => _screens = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_screens = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -36,6 +36,7 @@ namespace Marechai.Pages.Admin
{
bool _deleteInProgress;
Modal _frmDelete;
bool _loaded;
SoundSynthViewModel _soundSynth;
List<SoundSynthViewModel> _soundSynths;
@@ -74,6 +75,14 @@ namespace Marechai.Pages.Admin
void ModalClosing(ModalClosingEventArgs obj) => _soundSynth = null;
protected override async Task OnInitializedAsync() => _soundSynths = await Service.GetAsync();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_soundSynths = await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -32,18 +32,21 @@ namespace Marechai.Pages.Companies
{
public partial class Index
{
char? _character;
char? _character;
List<CompanyViewModel> _companies;
string _countryName;
bool _loaded;
[Parameter]
public int? CountryId { get; set; }
[Parameter]
public string StartingCharacter { get; set; }
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_character = null;
if(!string.IsNullOrWhiteSpace(StartingCharacter) &&
@@ -80,6 +83,8 @@ namespace Marechai.Pages.Companies
}
_companies ??= await Service.GetAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -49,8 +49,11 @@ namespace Marechai.Pages.Companies
public bool ComputersCollapsed { get; set; } = true;
public bool ConsolesCollapsed { get; set; } = true;
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
if(Id <= 0)
{
_loaded = true;
@@ -69,6 +72,7 @@ namespace Marechai.Pages.Companies
_logos = await CompanyLogosService.GetByCompany(Id);
_loaded = true;
StateHasChanged();
}
void CollapseComputers()

View File

@@ -31,7 +31,9 @@
@if (!_loaded)
{
@L["Loading..."]
<p align="center">@L["Loading..."]</p>
return;
}
<p>

View File

@@ -34,13 +34,17 @@ namespace Marechai.Pages.Computers
int _maxYear;
int _minYear;
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_computers = await Service.GetComputersCountAsync();
_minYear = await Service.GetMinimumYearAsync();
_maxYear = await Service.GetMaximumYearAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -33,7 +33,9 @@
@if (_computers is null)
{
@L["Loading..."]
<p align="center">@L["Loading..."]</p>
return;
}
<p>@L["Search results:"]</p>

View File

@@ -32,17 +32,20 @@ namespace Marechai.Pages.Computers
{
public partial class Search
{
char? _character;
char? _character;
List<MachineViewModel> _computers;
bool _loaded;
[Parameter]
public int? Year { get; set; }
[Parameter]
public string StartingCharacter { get; set; }
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_character = null;
if(!string.IsNullOrWhiteSpace(StartingCharacter) &&
@@ -70,6 +73,8 @@ namespace Marechai.Pages.Computers
_computers = await Service.GetComputersByYearAsync(Year.Value);
_computers ??= await Service.GetComputersAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -31,7 +31,9 @@
@if (!_loaded)
{
@L["Loading..."]
<p align="center">@L["Loading..."]</p>
return;
}
<p>

View File

@@ -34,13 +34,17 @@ namespace Marechai.Pages.Consoles
int _maxYear;
int _minYear;
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_consoles = await Service.GetConsolesCountAsync();
_minYear = await Service.GetMinimumYearAsync();
_maxYear = await Service.GetMaximumYearAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -33,7 +33,9 @@
@if (_consoles is null)
{
@L["Loading..."]
<p align="center">@L["Loading..."]</p>
return;
}
<p>@L["Search results:"]</p>

View File

@@ -32,17 +32,20 @@ namespace Marechai.Pages.Consoles
{
public partial class Search
{
char? _character;
char? _character;
List<MachineViewModel> _consoles;
bool _loaded;
[Parameter]
public int? Year { get; set; }
[Parameter]
public string StartingCharacter { get; set; }
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_character = null;
if(!string.IsNullOrWhiteSpace(StartingCharacter) &&
@@ -70,6 +73,8 @@ namespace Marechai.Pages.Consoles
_consoles = await Service.GetConsolesByYearAsync(Year.Value);
_consoles ??= await Service.GetConsolesAsync();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -29,6 +29,14 @@
@inject IStringLocalizer<NewsService> L
<h2>@L["News"]</h2>
@if (!_loaded)
{
<p align="center">@L["Loading..."]</p>
return;
}
@foreach (var news in _news)
{
<table border="0" width="100%">

View File

@@ -30,8 +30,17 @@ namespace Marechai.Pages.Home
{
public partial class Index
{
bool _loaded;
List<NewsViewModel> _news;
protected override void OnInitialized() => _news = Service.GetNews();
protected override void OnAfterRender(bool firstRender)
{
if(_loaded)
return;
_news = Service.GetNews();
_loaded = true;
StateHasChanged();
}
}
}

View File

@@ -42,8 +42,11 @@ namespace Marechai.Pages.Machines
[Parameter]
public int Id { get; set; }
protected override async Task OnInitializedAsync()
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if(_loaded)
return;
_machine = await Service.GetMachine(Id);
_processorVisible = new bool[_machine.Processors.Count];
@@ -52,6 +55,7 @@ namespace Marechai.Pages.Machines
_photos = await MachinePhotosService.GetGuidsByMachineAsync(Id);
_loaded = true;
StateHasChanged();
}
}
}