Releases: axuno/Volleyball-League
Releases · axuno/Volleyball-League
v8.2.5
v8.2.4
v8.2.3
What's Changed
- Replaced static
TournamentEntity.IsPlanningMode
with dynamic calculaction in #242 - Breaking: Update
Axuno.TextTemplating
v2.1.0 to v3.0.0 in #244 - chore
ModelValidator
s async method calls use.ConfigureAwait(false)
in #245 - Improve Browser behavior for iCalendar downloads in #246
- Use Content-Disposition attachment for ics files in #247
- Update
ical.net
package to v5.1.0 in #248 - Update nuget packages in #249
- Bump version to v8.2.3 in #250
Full Changelog: v8.2.2...v8.2.3
v8.2.2
What's Changed
- Refactor
Tenant
configuration focusing mail addresses in #236 - Refactor
MailKind
in #237 Salutation
in Contact form and PersonalDetails form in #238Salutation
in Register form and ExternalSignInConfirmation form in #240- Add team manager checks and warnings for missing phone numbers in #239
- iCalendar Event Creation for Planned Matches using
ical.net 5.0.0
in #241
Full Changelog: v8.2.1...v8.2.2
v8.2.1
What's Changed
Refactor RoundSelectorComponentModel in #235
Description
RoundSelectorComponentModel
:- Replaced
RoundNotSpecifiedKey
withEnforceExplicitSelection
- Modified
Default.cshtml
to enhance round selection dropdown with a prompt. - When
EnforceExplicitSelection
istrue
users are prompted they must select unless a selection is already taken. Without a selection an error for Required Field will occur. - For editing a team,
EnforceExplicitSelection
isfalse
. The current value is shown and can be changed.
- Replaced
- Updated
GetRoundSelectorComponentModel
methods inTeam.cs
andTeamApplication.cs
to reflect changes. - Added script to set the initial focus to
SelectedRoundId
inEditTeam.cshtml
.
Full Changelog: v8.2.0...v8.2.1
v8.2.0
v8.1.1
v8.1.0
What's Changed
Fixes
- Fix:
TournamentCreator
could have uninitialized ModifiedOn date in #214 - Fix: Make strings safe to be used as JavaScript object in
MapModel
in #227 and #228 - Fix: T4 Template ViewNames.tt in #216
Enhancements
Package Updates
- Update outdated Authentication Providers in #215
- Update
Axuno.Tools
toTimeZoneNames
package v6.0.0 => v7.0.0 in #217 - Update major package versions of Identity and Cryptography.Xml in #218
- Major update
EPPlus
v7.5.2 to v8.0.5 in #219 - Major update
libphonenumber
from v8.13.52 to v9.0.7 in #220 TournamentCreator
can now also copy teams from another tournament in #221- Update Microsoft.AspNetCore.Authentication packages to 8.0.17 in #222
- Update Microsoft.Data.SqlClient to version 6.0.2 in #223
- Update unit test packages in #224
- Update EPPlus license setting in #225
- Update FluentAssertions to version 8.3.0 in #226
- Improve string handling and JSON safety in
- Update NLog packages and AspNetCore.TestHost in #230
Full Changelog: v8.0.0...v8.1.0
v8.0.0
Migration from v7.x to v8.0
1. WebAppStartup:
- Replace
CustomMainNavigationNodeBuilder
from Demo project withMainNavigationNodeBuilder
fromLeague
project - Add new service
TenantContentProvider
- Remove the reference
using League.WebApp.ViewComponents
;
services.AddScoped<IMainNavigationNodeBuilder, MainNavigationNodeBuilder>();
services.AddSingleton<ITenantContentProvider, TenantContentProvider>();
2. Migrate razor views to HTML partials together with metadata
- Source folder:
Views\TenantContent\<tenant>
- Target folder:
wwwroot\pages\
- Home_Index.cshtml => _home.html
- Info_RuleOfGame.cshtml => _rule-of-game.html
- Info_News.cshtml => _news.html
3. Add JSON metadata files
- Every HTML file has a metadata JSON file as a companion
- Home_Index.cshtml => _home.json
- Info_RuleOfGame.cshtml => _rule-of-game.json
- Info_News.cshtml => _news.json
- The JSON files have the following content, that will be deserialized to
League.Models.TenantContent.ContentItem
s
{
"Position": 0,
"PageTitel": "<PageTitel>",
"Description": "<Content for the HTML meta tag 'Description'>",
"MenuTitel": "<The titel as show in the menu>",
"Topic": "<The topic name used in the URL>",
"IsActive": true,
"LastModified": "2025-01-02T12:00:00Z",
"PubDate": "2025-01-02T12:00:00Z"
}
4. Other Changes
- The
TenantContent
controller is replaced by theTenantContent
controller of theLeague
project, - Same for
Views\TenantContent\Home.cshtml
. _Layout.cshtml
: Only the "general contact" is mentioned now, the tenant contact will be displayed as fixed tenant menu item.<a asp-route="@RouteNames.GeneralContact" class="d-inline-block me-4">@Localizer["Contact"]</a>
What's Changed in Detail
1. Move tenant content from razor views to pure html in wwwroot folder
- Move controller TenantContent from project Demo to League
- Tenant content html have the same name as the url segment for the topic
e.g.:- pages\otherorg_index.html (info about the tenant)
- pages\otherorg_news.html (posted news)
- pages\otherorg_rule-of-game.html (tenant rule of game)
- pages\Files\otherorg_ball.png (uploaded tenant content files)
- Include
pages
folder for League.Demo in the repository
2. Created a tenant content folder /wwwroot/pages
- HTML content is file _.html
- Metadata is in file _.json
- Created new home.html, home.json, news.html, news.json, rule-of-game.html, and rule-of-game.json files with metadata and placeholder content.
- Added a new home.cshtml view to render tenant content.
- Simplified footer in _Layout.cshtml by removing tenant-specific logic for the "Contact" link.
- Updated
WebAppStartup
to use scopedMainNavigationNodeBuilder
and singletonTenantContentProvider
3. Integration
- Updated WebAppStartup.cs to use
MainNavigationNodeBuilder
instead ofCustomMainNavigationNodeBuilder
- Deleted
CustomMainNavigationNodeBuilder
class and related usings. - Added class
ITenantContentProvider
to handle tenant content - Added a new
ContentItem
class in ContentItem.cs to represent a content item for a tenant. - Introduced a new interface
ITenantContentProvider
- Implemented
ITenantContentProvider
interface inTenantContentProvider
- Added new methods in
MainNavigationNodeBuilder
to create tenant-specific navigation nodes. - Updated
TenantContent
controller to useITenantContentProvider
and added a new Home action.
4. Migrate to async
- Updated
IMainNavigationNodeBuilder
interface to make GetNavigationNodes method asynchronous. - Updated
MainNavigation
component andMainNavigationComponentModelExtensions
to use asynchronous methods. - Updated Default.cshtml and NavigationNodeChildDropdownPartial.cshtml to use asynchronous methods for CSS class generation.
5. Miscallaneous
- Updated .gitignore to include pages directory
- Fix a bug in
Axuno.Tools.FileSystem.DelayedFileSystemWatcher
when processing directory changes - Move view TenantContent.Home.cshtml from Demo to League project
Full Changelog: v7.2.4...v8.0.0
v7.2.4
What's Changed
1. Enhancements:
- Updated the
LeagueStartup
andUnitTestHelpers
class to improve initialization and configuration of services for unit tests. - Ensured the database connection is properly opened and closed during initialization.
- Enhanced logging configuration to capture message templates and properties using NLog.
- Added localization support to the service provider for better handling of localized strings in tests.
- Improved the
GetStandardServiceProvider
method to include additional services required for testing.
2. Package Updates:
- Updated
Microsoft.Extensions.Logging
from5.0.0
to6.0.0
. - Updated
NLog.Extensions.Logging
from5.0.0
to6.0.0
. - Updated
Microsoft.AspNetCore.TestHost
from5.0.0
to6.0.0
. - Added reference to
Microsoft.Data.SqlClient
5.2.2
, replacing obsolete classes inSystem.Data.SqlClient
.
3. Code Cleanup:
- Removed unused namespaces and organized using directives for better readability.
- Added XML documentation comments to public methods and properties for better code documentation.
Bump version to v7.2.4
Full Changelog: v7.2.3...v7.2.4