diff --git a/Marechai/Areas/Admin/Views/CompanyLogos/Edit.cshtml b/Marechai/Areas/Admin/Views/CompanyLogos/Edit.cshtml
deleted file mode 100644
index a44a4ab9..00000000
--- a/Marechai/Areas/Admin/Views/CompanyLogos/Edit.cshtml
+++ /dev/null
@@ -1,43 +0,0 @@
-@model Marechai.Database.Models.CompanyLogo
-
-@{
- ViewData["Title"] = "Edit";
-}
-
Edit
-Company logo
-
-
\ No newline at end of file
diff --git a/Marechai/Marechai.csproj b/Marechai/Marechai.csproj
index 6e8b7810..92ab17b2 100644
--- a/Marechai/Marechai.csproj
+++ b/Marechai/Marechai.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 3.0.99.1269
+ 3.0.99.1275
Canary Islands Computer Museum
Copyright © 2003-2020 Natalia Portillo
Canary Islands Computer Museum Website
diff --git a/Marechai/Pages/Admin/Details/Company.razor b/Marechai/Pages/Admin/Details/Company.razor
index 2d9f7c4a..79db29d1 100644
--- a/Marechai/Pages/Admin/Details/Company.razor
+++ b/Marechai/Pages/Admin/Details/Company.razor
@@ -337,9 +337,10 @@
@foreach (var logo in _logos)
{
+ bool logoFound = File.Exists(Path.Combine(Host.WebRootPath, "assets/logos", logo.Guid + ".svg"));
|
- @if (File.Exists(Path.Combine(Host.WebRootPath, "assets/logos", logo.Guid + ".svg")))
+ @if (logoFound)
{
@@ -364,8 +365,11 @@
}
|
- @L["Change year"]
-
+ @if (logoFound)
+ {
+
+ }
+
|
}
@@ -373,19 +377,62 @@
}
-
+
@L["Delete logo"]
-
+
@string.Format(@L["Are you sure you want to delete the company logo introduced in {0}?"], _currentLogo?.Year)
-
+
+
+
+
+
+
+ @L["Change logo year"]
+
+
+
+ @if (_currentLogo != null)
+ {
+
+
+
+
+
+
+
+
+ @L["Year logo came in use"]
+ @L["Unknown (logo year)"]
+ @if (!_unknownLogoYear)
+ {
+
+
+
+ @L["Please enter a valid year."]
+
+
+
+ }
+
+ }
+
+
+
+ @if (_currentLogo != null)
+ {
+
+ }
+
+
+
diff --git a/Marechai/Pages/Admin/Details/Company.razor.cs b/Marechai/Pages/Admin/Details/Company.razor.cs
index 43baa7d8..0ebd963d 100644
--- a/Marechai/Pages/Admin/Details/Company.razor.cs
+++ b/Marechai/Pages/Admin/Details/Company.razor.cs
@@ -17,9 +17,11 @@ namespace Marechai.Pages.Admin.Details
List _countries;
bool _creating;
CompanyLogo _currentLogo;
+ int? _currentLogoYear;
bool _deleteInProgress;
bool _editing;
Modal _frmDelete;
+ Modal _frmLogoYear;
bool _loaded;
List _logos;
CompanyViewModel _model;
@@ -28,12 +30,15 @@ namespace Marechai.Pages.Admin.Details
bool _unknownCountry;
bool _unknownFacebook;
bool _unknownFounded;
+ bool _unknownLogoYear;
bool _unknownPostalCode;
bool _unknownProvince;
bool _unknownSold;
bool _unknownSoldTo;
bool _unknownTwitter;
bool _unknownWebsite;
+
+ bool _yearChangeInProgress;
[Parameter]
public int Id { get; set; }
@@ -237,13 +242,13 @@ namespace Marechai.Pages.Admin.Details
void ValidateFacebook(ValidatorEventArgs e) =>
Validators.ValidateString(e, L["Facebook username must be smaller than 256 characters."], 256);
- void ShowModal(int itemId)
+ void ShowDeleteModal(int itemId)
{
_currentLogo = _logos.FirstOrDefault(n => n.Id == itemId);
_frmDelete.Show();
}
- void HideModal() => _frmDelete.Hide();
+ void HideDeleteModal() => _frmDelete.Hide();
async void ConfirmDelete()
{
@@ -268,6 +273,55 @@ namespace Marechai.Pages.Admin.Details
StateHasChanged();
}
- void ModalClosing(ModalClosingEventArgs obj) => _currentLogo = null;
+ void DeleteModalClosing(ModalClosingEventArgs e) => _currentLogo = null;
+
+ void ShowLogoYearModal(int itemId)
+ {
+ _currentLogo = _logos.FirstOrDefault(n => n.Id == itemId);
+ _currentLogoYear = _currentLogo?.Year;
+ _unknownLogoYear = _currentLogoYear is null;
+ _frmLogoYear.Show();
+ }
+
+ void HideLogoYearModal() => _frmLogoYear.Hide();
+
+ async void ConfirmLogoYear()
+ {
+ if(_currentLogo is null)
+ return;
+
+ _yearChangeInProgress = true;
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ await CompanyLogosService.ChangeYearAsync(_currentLogo.Id, _unknownLogoYear ? null : _currentLogoYear);
+ _logos = await CompanyLogosService.GetByCompany(Id);
+
+ _yearChangeInProgress = false;
+ _frmLogoYear.Hide();
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ // Tell we finished loading
+ StateHasChanged();
+ }
+
+ void LogoYearModalClosing(ModalClosingEventArgs e)
+ {
+ _currentLogo = null;
+ _currentLogoYear = null;
+ }
+
+ void ValidateLogoYear(ValidatorEventArgs e)
+ {
+ if(!(e.Value is int item) ||
+ item <= 1000 ||
+ item > DateTime.UtcNow.Year)
+ e.Status = ValidationStatus.Error;
+ else
+ e.Status = ValidationStatus.Success;
+ }
}
}
\ No newline at end of file
diff --git a/Marechai/Resources/Services/CompaniesService.en.resx b/Marechai/Resources/Services/CompaniesService.en.resx
index f7521ea6..20a4f25a 100644
--- a/Marechai/Resources/Services/CompaniesService.en.resx
+++ b/Marechai/Resources/Services/CompaniesService.en.resx
@@ -162,4 +162,8 @@
Unknown
Unknown, referring to another company name
+
+ Unknown
+ Unknown, referring to a company logo year
+
\ No newline at end of file
diff --git a/Marechai/Resources/Services/CompaniesService.es.resx b/Marechai/Resources/Services/CompaniesService.es.resx
index 0a5bff8f..f29e8cfb 100644
--- a/Marechai/Resources/Services/CompaniesService.es.resx
+++ b/Marechai/Resources/Services/CompaniesService.es.resx
@@ -402,4 +402,48 @@
Por favor introduce una fecha de venta, fusión, bancarrota o renombre válida.
Please enter a valid sold/merge/bankruptcy date.
+
+ Desconocido
+ Unknown, referring to a company logo year
+
+
+ Subir nuevo logo
+ Upload new logo
+
+
+ Logos
+ Logos
+
+
+ Logo
+ Logo
+
+
+ Año el logo empezó a usarse
+ Year logo came in use
+
+
+ No se pudo encontrar el archivo del logo
+ Cannot find logo file
+
+
+ Cambiar año
+ Change year
+
+
+ Borrar logo
+ Delete logo
+
+
+ ¿Estás seguro de que quieres borrar el logo que la compañía empezó a utilizar en {0}?
+ Are you sure you want to delete the company logo introduced in {0}?
+
+
+ Cambiar año del logo
+ Change logo year
+
+
+ Por favor introduce un año válido.
+ Please enter a valid year.
+
\ No newline at end of file
diff --git a/Marechai/Services/CompanyLogosService.cs b/Marechai/Services/CompanyLogosService.cs
index 43e4ceaa..0969b6ed 100644
--- a/Marechai/Services/CompanyLogosService.cs
+++ b/Marechai/Services/CompanyLogosService.cs
@@ -73,5 +73,16 @@ namespace Marechai.Services
if(File.Exists(Path.Combine(_webRootPath, "assets/logos/thumbs/png/3x", logo.Guid + ".png")))
File.Delete(Path.Combine(_webRootPath, "assets/logos/thumbs/png/3x", logo.Guid + ".png"));
}
+
+ public async Task ChangeYearAsync(int id, int? year)
+ {
+ CompanyLogo logo = await _context.CompanyLogos.Where(l => l.Id == id).FirstOrDefaultAsync();
+
+ if(logo is null)
+ return;
+
+ logo.Year = year;
+ await _context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file