Oqtane.framework Versions Save

CMS & Application Framework for Blazor & .NET MAUI

v5.1.1

3 weeks ago

Changes in v5.1.1

#4147 Fixed SiteMap path issue for Page Urls @sbwalker #4146 Include .NET MAUI CORS policy for static files @sbwalker #4145 Fixed SiteRouter exception when running on .NET MAUI @sbwalker #4144 Fixed RichTextEditor localization and enabled multiple instances per page @sbwalker #4140 Converted QuillJS's empty content string to empty string @sbwalker #4139 Ensured raw HTML content is not sanitized @sbwalker #4137 Fixed additional RichTextEditor scenarios @sbwalker #4136 Avoided nested square bracket issue with token replace in Module Creator @zyhfish #4135 Fixed Module Creator not setting the correct PackageReference @leigh-pointer #4132 Moved RichTextEditor script registration to Body @sbwalker #4129 Enhanced System Info to indicate if Process is 32 bit or 64 bit @sbwalker #4127 Fixed issue in RichTextEditor where active tab not set correctly when rich text editor disabled @sbwalker #4126 Fixed RichTextEditor throwing JS Interop exception @sbwalker #4125 Updated ImageSharp from 3.1.3 to 3.1.4 @leigh-pointer #4124 Updated theme and module templates to .NET SDK 8.0.4 @sbwalker #4123 Update framework dependencies to .NET SDK 8.0.4 @sbwalker #4119 Fixed resx key in SqlServerConfig (credit @mmisu) @sbwalker #4118 Removed StreamRendering attribute as recent SDK seems to have resolved earlier rendering issues @sbwalker #4112 Set AccelerateBuildsInVisualStudio to False in theme/module template @mdmontesinos #4111 Fixed issue where content modifications were lost when adding image to RichTextEditor @sbwalker #4106 Updated text in component to be consistent with resx file @sbwalker #4105 Fixed localization in Event Log and changed Clear to Delete in API methods for consistency with rest of framework @sbwalker #4099 Added a Clear option to the Event Log @zyhfish #4098 Fixed Oqtane Theme ThemeSettings SetSetting() references to not specify IsPrivate property @sbwalker #4097 Fixed SiteMap so that it supports page Urls @sbwalker #4093 Fixed double slash generated for home page path ("/") and urlparameters @sbwalker #4090 Fixed UX behavior to allow redirect to login if not authenticated @sbwalker #4089 Fixed incorrect parameter passed from ProfileService to ProfileController @W6HBR #4083 Used Constants.RequestVerificationToken rather than magic string @sbwalker #4082 Removed changes to allow path to support urls - urls should be specified as redirects @sbwalker #4079 Fixed OIDC/OAuth2 redirect flow with static rendering @sbwalker #4078 Fixed auth cookie being rejected under some scenarios - change from Strict to Lax to match latest .NET Identity configuration @sbwalker #4077 Fixedd ActionLink to use the Text property value @zyhfish

List of Contributors in v5.1.1

@sbwalker @zyhfish @mdmontesinos @leigh-pointer @W6HBR @mmisu

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages the Blazor component model to compose a fully dynamic digital experience.

This release of Oqtane is targeted at .NET 8.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v5.1.0

1 month ago

Changes in v5.1.0

#4068 Fixed upgrade issue by removing legacy Views assembly @sbwalker #4067 Fixed Settings UI issue by setting the RenderModeBoundary parameter @zyhfish #4065 Updated Template Module and Theme json from 5.0.0 to 5.1.0 @leigh-pointer #4064 Moved static JS references (ie. blazor.web.js) to end of body @thabaum #4063 Removed type attribute for favicon as it is specified by file server @sbwalker #4060 Increased minimum characters to view Edit button at bottom of Html/Text module @sbwalker #4056 Set active tab in RichTextEditor based on content @sbwalker #4055 Fixed regression issue in ActionLink related to localization @sbwalker #4054 Added Edit button to top of content in Html/Text module @sbwalker #4053 Optimized SiteRouter to only call SyncService for Interactive render mode @sbwalker #4052 Set the return url correctly in User Profile @zyhfish #4049 Fixed theme template release.cmd to copy package to /Packages folder @sbwalker #4046 Used consistent naming for DbContext in SiteRepository @sbwalker #4045 Used DbContextFactory in all HtmlText module methods @sbwalker #4044 Moved logging from HtmlText controller to Server Service class so that is captured in all render modes @sbwalker #4043 Ignored Antiforgerytoken in logout as it can sometimes prevent a user from logging out unless they refresh their browser, due to the Antiforgerytoken being expired @sbwalker #4042 Updated module template for static rendering (ActionDialog Id property, Service interface moved to Shared, Client Service using IHttpClientFactory, Async methods added to Repository, Server Service implementation added, Controller uses Server Service implementation, Server Service registered in Startup) @sbwalker #4041 Update Theme template to .NET 8.0.3 @sbwalker #4039 Added HttpClientFactory support to ServiceBase @sbwalker #4034 Updated Module creator template package references to 8.0.3 @thabaum #4032 Added static rendering support to ActionDialog @sbwalker #4029 Verified if user info is null in Control Panel @zyhfish #4027 Added user setting to preserve Edit mode in static rendering @zyhfish #4021 Fix EditUrl to remove extra slash on child sites @sbwalker #4019 Consolidated SiteState class so that it functions correctly on static and interactive scenarios @sbwalker #4018 Pass RenderModeBoundary parameter when dynamically creating Module Settings component @sbwalker #4016 Handled redirect for subfolder aliases in Site Management @sbwalker #4011 Updated repositories to using DbContextFactory @zyhfish #4009 Removed Synchronize Content option from RichTextEditor @sbwalker #4004 Optimized to remove IsInstalled API call on every Web UI request (MAUI clients still require this logic) @sbwalker #4003 Added the Quill editor JS map file @zyhfish #4001 Fixed personalized page display issue @sbwalker #4000 Made Pager capable of functioning in Static or Interactive render modes @sbwalker #3996 Fixed issue referencing ClaimsPrincipal UserId extension method in site caching logic @sbwalker #3995 Fixed personalized page throwing 404 on static render mode @sbwalker #3992 Updated Package Dependencies to .NET 8.0.3 Release @thabaum #3986 Fixed error when file path not specified @sbwalker #3985 Fixed ActionLink Text property behavior @leigh-pointer #3982 Improved caching for sites with many registered users @sbwalker #3981 Updated Module Template IServerStartup to be ServerStartup instead of DbContextFactory @mdmontesinos #3979 Improved UX by remaining in Edit Mode after editing Module Settings @sbwalker #3978 Improved module deletion UX behavior @sbwalker #3973 Optimized site router to avoid iterating through all pages @sbwalker #3972 Fixed static resource processing issue @sbwalker #3971 Used IServerStartup rather than class naming convention to register server service class @sbwalker #3969 Consolidated Clone logic for Resource objects @sbwalker #3968 Added ability to reload JavaScript on page transitions with enhanced navigation @sbwalker #3967 Added DbContextFactory class into the module template @zyhfish #3966 Updated ImageSharp to latest release @sbwalker #3965 Used IServerStartup for registering DbContextFactory @sbwalker #3964 Ensured Resource management logic is consistent in App and SiteRouter @sbwalker #3961 Implemented DbContextFactory in SiteRepository @sbwalker #3960 Fixed issue relating to staying in edit mode after choosing a module action @sbwalker #3959 Implemented DBContextFactory in HtmlText module @sbwalker #3958 Registered ServerSiteService as Transient @sbwalker #3956 Added IClientService support to .NET MAUI @sbwalker #3954 Used ITransientService interface rather than introducing a new IServerService interface @sbwalker #3952 Fixed rendering issue with progress indicator @zyhfish #3950 Implemented client and server service implementations for HtmlText module @sbwalker #3944 Removed div wrapper in body in Static render mode @sbwalker #3943 Added data-enhance to edit mode transition @sbwalker #3942 Allowed Admin to navigate to login page when signed in @sbwalker #3941 Added url decoding before converting url to friendly url @sbwalker #3940 Set parent page default to current page when adding new pages @sbwalker #3935 Fixed exception when creating child pages @sbwalker #3933 Added support for specifying RenderMode for Resources @sbwalker #3931 Improved Pager Search Input Text Field Autocomplete Behavior @leigh-pointer #3929 Modified ExceptionMiddleware to get alias using extensions method and log to either database or file logger @sbwalker #3928 Improved IdentityRevalidatingAuthenticationStateProvider to work with multi-tenancy @sbwalker #3925 Added ExceptionMiddleware for logging unhandled server exceptions @pyramidsbuilder #3924 Only call navigate to fragment JS Interop method in Interactive render mode @sbwalker #3924 Use PageState.Site.Themes rather than calling ThemeService from Control Panel @sbwalker #3923 Set RevalidationInterval to same as default Blazor Web template @sbwalker #3922 Added IdentityRevalidatingAuthenticationStateProvider @sbwalker #3921 Optimized ParseParameters to use native Uri classes @sbwalker #3920 Updated Oqtane.Sever.csproj Microsoft.Data.SqlClient package reference version to 5.2.0 @thabaum #3918 Fixed theme fallback to use Oqtane Theme IThemeInfo resources @sbwalker #3917 Fixed page Path so it supports the specification of external Urls, querystrings, and anchors @sbwalker #3916 Changed Admin Dashboard to use static rendering and fixed invalid markup (H2 within P element) @sbwalker #3914 Fixed support for multiple themes within a site by changing link element format @sbwalker #3911 Introduced async SiteRepository methods to call from SiteService @sbwalker #3910 Removed the visible parameter from ModuleMessage component @zyhfish #3906 Fixed ModuleMessage to not display modal if message is blank @sbwalker #3905 Moved JavaScript references to end of body @sbwalker #3904 Changed Site Setting terminology for render modes @sbwalker #3903 Fixed prerender help text @sbwalker #3902 Improve help text for Interactivity setting @sbwalker #3901 Changed default so that new sites use Static rendering @sbwalker #3900 Cloned Platform property in SiteState @sbwalker #3899 Refreshed cache if user is updated @sbwalker #3898 Included SiteId in SyncEvent @sbwalker #3897 Improved caching for static rendering @sbwalker #3896 Added Platform property to SiteState and populate on both Web and .NET MAUI @sbwalker #3895 Fixed Url Mappings and Visitor Management IsNavigation property @sbwalker #3887 Added data-enhance to AdminContainer to prevent flash when closing modal @sbwalker #3885 Avoided the infinite loop issue of calling AddModuleMessage method within OnParametersSet @zyhfish #3883 Organized server RESX files in folders to be consistent with client project @sbwalker #3882 Changed name of form class to reflect purpose @sbwalker #3881 Added static rendering support for page level themes within site @sbwalker #3880 Added Resource Files to Theme Templates @leigh-pointer #3879 Improved UX by adding data-enhance to Edit Mode button @sbwalker #3877 Removed Microsoft.AspNetCore.Components.WebAssembly.DevServer from default module and theme template as it is no longer needed @sbwalker #3876 Modified ActionLink to use a link rather than button for disabled scenario @sbwalker #3875 Removed AddModuleMessage from OnParametersSetAsync methods to mitigate risk of infinite loops @sbwalker #3872 Updated Microsoft.AspNetCore.Authentication.OpenIdConnect To Version 8.0.2 @thabaum #3870 Updated Blazor Theme Bootstrap to Version 5.3.2 @thabaum #3869 Avoid JS Interop username file focus error when verifying email address @pyramidsbuilder #3867 Always reload the page on Save in Site Settings @thabaum #3866 Updated module and theme default templates to use ModuleBase methods rather than ModuleInstance methods @sbwalker #3862 Updated default site template with latest Blazor messaging @sbwalker #3861 Update user profile Cancel option to redirect to RedirectUrl (using PageState.ReturnUrl) @sbwalker #3860 Removed Delete option from Scheduled Jobs - they are automatically created at startup @sbwalker #3858 Added variability for StreamRendering based on render mode @sbwalker #3857 Fixed ModuleMessage to include constant form name in static rendering @sbwalker #3856 Fixed Schedule Jobs infinite loop after new install @sbwalker #3855 Fixed exception when changing theme in Page Add/Edit @sbwalker #3854 Fixed ModuleMessage so that it is not dependent on ModuleState @sbwalker #3853 Improved route object constructor validation @sbwalker #3852 Handled site level scripts in App component @sbwalker #3850 Moved stylesheet injection to App component to eliminate flash on static rendering @sbwalker #3848 Passed RenderMode and Runtime to Head component @sbwalker #3847 Removed filtering of scripts from head content in static rendering @sbwalker #3845 Refactored App component to eliminate database calls @sbwalker #3842 Added [StreamRendering] to Head component for static rendering (credit @thabaum) @sbwalker #3837 Documented the mandatory StreamRendering attribute @sbwalker #3836 Ensured PageState and ModuleState are passed to ModuleMessage if an unhandled module exception occurs @sbwalker #3835 Updated Npgsql.EntityFrameworkCore.PostgreSQL to version 8.0.2 @sbwalker #3834 Introduced token replace class @zyhfish #3832 Cleaned up module definition service namespaces @thabaum #3828 Reload the page after saving Page settings @thabaum #3826 Fixed handling of returnurl parameter in UserProfile component @thabaum #3824 Ensured "login" route is included in login URL construction @thabaum #3823 Added links from login to register and vice versa @pyramidsbuilder #3822 Fixed account lockout to read from correct setting and consider timezone @pyramidsbuilder #3821 Added localization resources for UserManager email messages @pyramidsbuilder #3819 Ensured script resources are loaded before rendering ThemeBuilder @sbwalker #3818 Fixed title and headcontent behavior in interactive render mode @sbwalker #3815 Added PreserveCompilationContext back to server project @sbwalker #3814 Fixed regression issues with installer @sbwalker #3810 Included support for data attributes in script resources @zyhfish #3808 Loaded PageState in App component and pass to SiteRouter to optimize data loading @sbwalker #3803 Created server-side SiteService implementation for ISiteService @sbwalker #3797 Fixed render issues on .NET MAUI @sbwalker #3796 Added app-form-button styles to sync with Oqtane.Server App.css @thabaum #3792 Updated To new namespace For DynamicComponent type Oqtane.UI.Head in .NET MAUI @thabaum #3791 Updated project to reference latest package dependency versions released with 8.0.2 @thabaum #3788 Forced ModuleActions to use interactive render mode @sbwalker #3787 Fixed ModuleBase breaking change for ModuleInstance reference @sbwalker #3786 Forced Control Panel to use interactive render mode @sbwalker #3783 Enabled close of modal admin container on static rendering @sbwalker #3782 Enabled Edit Mode in static rendering @sbwalker #3779 Enabled Admin Dashboard in static rendering @sbwalker #3778 Updated theme bootstrap and bootswatch to version 5.3.2 @thabaum #3770 Allowed prerender selection in all scenarios in Site Settings @sbwalker #3768 Resolved issue where components were not being rendered interactively @sbwalker #3765 Set responsive breakpoint to 767.98px to address responsive design issue @thabaum #3763 Included form button wrapper CSS class for inline-block to address buttons wrapping in form element @sbwalker #3759 Updated .NET MAUI package references @thabaum #3757 Changed RESX values for Interactivity option in Site Settings @sbwalker #3756 Made Interactivity selectable regardless of the default render mode in Site Settings @sbwalker #3752 Renamed RenderMode class and adding using statements @sbwalker #3751 Specified default interactive render mode @sbwalker #3748 Preserve backward compatibility for ModuleInstance methods but flag methods as obsolete @sbwalker #3746 Optimized render mode @sbwalker #3745 Set HtmlText Index component to Static rendering @sbwalker #3744 Implemented RenderModeBoundary @sbwalker #3743 Added attribute [StreamRendering] attribute to Routes component to address render issues @sbwalker #3741 Removed UseBlazorFrameworkFiles as no longer needed @sbwalker #3740 Updated project files to make consistent with Blazor template @sbwalker #3738 Optimization to eliminate file lookup in Logo control @sbwalker #3732 Use Runtimes constant to eliminate magic strings @sbwalker #3730 Updated .NET MAUI client to reflect latest changes @sbwalker #3729 Moved root UI components to UI namespace @sbwalker #3728 Fixed Cancel behavior in Login to redirect properly @sbwalker #3727 Changed extension method name to reflect actual purpose @sbwalker #3724 Fixed unnecessary conditional check for page values @thabaum #3722 Added back support for Razor Pages @sbwalker #3721 Integrated new Cascading Authentication State services @sbwalker #3718 Fixed Runtimes property behavior @sbwalker #3717 Added RenderMode to IModuleControl @sbwalker #3716 Used new constants in .NET MAUI @sbwalker #3715 Split RenderMode and Runtime configuration @sbwalker #3714 Fixed site Hybrid behavior @sbwalker #3713 Used new RenderModes constant @sbwalker #3712 Removed app.UseAntiForgery as it is handled by the IAntiforgery service @sbwalker #3711 Documented CORS policy @sbwalker #3710 Added SignalR options to startup @sbwalker #3709 Fixed .NET MAUI integration @sbwalker #3707 Added render mode integration @sbwalker #3706 Added support for Jwt Token creation @sbwalker #3705 Removed unnecessary database call to GetSettings in App component @sbwalker #3704 Added support for visitor tracking @sbwalker #3703 Added support for page not found functionality @sbwalker #3702 Added support for Render Modes and Prerendering @sbwalker #3701 Implemented non-default alias redirect @sbwalker #3700 Resolved antiforgery issue @sbwalker #3697 Introduced initial migration changes to new Blazor Web App approach in .NET 8 @sbwalker #3696 Added IDisposable declaration to accompany existing Dispose method @sbwalker #3692 Added white-space: nowrap; to the .app-menu .nav-item to address Menu display issue @leigh-pointer

List of Contributors in v5.1.0

@sbwalker @thabaum @zyhfish @pyramidsbuilder @leigh-pointer @mdmontesinos

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages the Blazor component model to compose a fully dynamic digital experience.

This release of Oqtane is targeted at .NET 8.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v5.0.2

3 months ago

Changes in v5.0.2

#3684 Updated default Module and Theme template to .NET 8.0.1 to match framework @sbwalker #3683 Resolved regression installation issue with PostgreSQL @sbwalker #3682 Resolved mySQL installation issue caused by Rows reserved word @sbwalker #3681 Updated the default module template to specify the entity table name to match the model attribute @zyhfish #3679 Upgraded MySQL database provider dependencies to latest official .NET 8 versions @sbwalker #3677 Narrowed CORS policy scope to file upload method (credit @thabaum) @sbwalker #3671 Added CORS policy and used Jwt with XHR to allow file uploads to work in .NET MAUI @sbwalker #3667 Fixed UploadableFiles and ImageFiles settings not loading properly resulting in upload issues @sbwalker #3659 Improved help text for autocomplete @sbwalker #3657 Removed Licensing assembly from framework and added logic to prevent uninstall @sbwalker #3655 Fixed issue when inserting images into RichTextEditor @sbwalker #3654 Updated request.status to request.statusText in uploadFile method in Interop.js @thabaum #3652 Added HTML Autocomplete attribute enhancement to Profile Management @thabaum #3649 Removed protocol prior to validating alias in Site Settings @thabaum #3645 Handled null or empty formfile in UploadFile method @thabaum #3644 Fixed Interop.js xhr status on error @thabaum #3641 Fixed issue where rich text was not being refreshed in the editor when content changed, and original rich text was not always preserved @sbwalker #3640 Included major enhancements on documentation including updates to .NET 8 @ijungleboy @thabaum #3639 Ensured ServerState Scripts only contain site level script resources @sbwalker #3638 Added defensive null check to ServiceBase @sbwalker #3632 Added start and end date validation on Scheduled Jobs @leigh-pointer #3630 Upgraded NuGet packages to .NET 8.0.1 @thabaum #3628 Clarified getting started instructions @thabaum #3624 Fixed documentation spelling mistakes @thabaum #3622 Used relative path for browse/edit current site in Site Management @sbwalker #3615 Changed max profile field rows to 10 @sbwalker #3613 Displayed informational error message if user is attempting to run the application prior to performing a full compilation @sbwalker #3611 Added component rendering optimizations to eliminate rendering of components which are being disposed @sbwalker #3610 Updated Profile Management to fix breaking behaviorial changes related to Order field validation @W6HBR #3605 Synchronized static assets with .NET MAUI project @sbwalker #3602 Added start date and expiry date for Module instances and Pages @leigh-pointer #3600 Cleared module message prior to displaying a new message @thabaum #3598 Added Module Creator help text to include warning for "Oqtane" reserved word @thabaum #3592 Refactored logic related to domain filtering for emails during external login @sbwalker

List of Contributors in v5.0.2

@sbwalker @thabaum @leigh-pointer @ijungleboy @W6HBR @zyhfish

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 8.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v5.0.1

4 months ago

Changes in v5.0.1

#3585 Added an AllowRichText parameter to the RichTextEditor component and added logic to handle JS Interop failures @sbwalker #3579 Ensured database provider assemblies are included in Publish folder @sbwalker #3575 Added defensive logic to Alias Path property @sbwalker #3574 Improved loading and saving logic for File Extensions @sbwalker #3573 Added database provider projects to Oqtane.sln @sbwalker #3572 Set logo max height in Oqtane theme CSS @thabaum #3568 Added additional SetAlias overload to TenantManager @sbwalker #3565 Padded JWT token secret to 32 characters to resolve IDX10720 error in .NET 8 @sbwalker #3565 Changed input id of JWT Secret field to reduce chance of form autocomplete causing issues @sbwalker #3558 Modifed module and theme template release.cmd to remove old nupkg files before packaging @sbwalker #3557 Introduced a simple dependency manager for assemblies to deal with shared uninstall scenarios @sbwalker #3555 Suppressed database provider project compiler warnings for internal Entity Framework Core API usage and WebApplicationBuilderAnalyzer @sbwalker #3553 Eliminated database provider nuget packages @sbwalker #3552 Ignored Blazor framework requests which could cause issues with tenant resolution @sbwalker #3549 HTML-encoded notification content sent by non-admins to prevent HTML injection @sbwalker #3548 Added a Pages tab to Module Management to display where modules are used in a site @leigh-pointer #3547 Set authentication cookie to HttpOnly @sbwalker #3546 Ensured returnurl querystring parameter is a relative path to prevent open Url redirects @sbwalker #3545 Added support for root sitemap.xml and robots.txt @sbwalker #3542 Moved status message into file upload region of FileManager @sbwalker #3540 Prevented multiple click on login button which was causing querystring to continuously be appended @leigh-pointer #3535 Modified Language Management to allow default language to be set during Edit @rcpacheco #3533 Fixed issue where the list of containers was not being refreshed when the theme was changed @sbwalker #3532 Added HybridEnabled field to Site table to indicate if .NET MAUI hybrid applications are enabled and assemblies should be downloaded @sbwalker #3531 Added generic Result model for leveraging Result pattern @sbwalker #3530 Added new parameter to AddModuleMessage to support displaying the message at the bottom of the module instance @sbwalker #3529 Invalidated client assemblies cache when site is updated @sbwalker #3528 Added customizable File Extension settings for Image Files and Uploadable File at the site level @leigh-pointer #3527 Optimized assembly loading performance @sbwalker #3526 Prevented download of assemblies unless using site hosting model is WebAssembly @sbwalker #3525 Validated numerical input for data retention fields @leigh-pointer #3523 Extended the Section component with an IsVisible parameter @beolafsen #3522 Removed Blazor Hybrid from Hosting Models selection as it is not actually a hosting model @sbwalker #3518 Added defensive logic to handle scenario where a tenant connection string does not exist in appsettings.json @sbwalker #3517 Suppressed verbose logging for resized image files which no longer exist @sbwalker #3516 Updated SQLite and PostgreSQL database provider project dependencies to latest packages @sbwalker #3515 Refactored Always Remember logic for code consistency @sbwalker #3514 Added ClaimsPrincipal extension methods to access user claims @sbwalker #3513 Allowed OAuth2 configuration to specify Role and Profile claim types - previously this was only supported for OIDC however user info endpoints can return this information for OAuth2 as well @sbwalker #3513 Added Name Claim Type as it is useful when identifying a user and creating a user account @sbwalker #3513 Removed Email Claim requirement as some IDPs do not return an email address but the system should still allow an external user to login and then provide their email address afterward @sbwalker #3513 Added Email Address entry flow where the system will redirect the user to the User Profile if their account does not have an Email address specified @sbwalker #3513 Improved user flow in User Profile and Registration so that the framework now remembers the current Url and redirects the user back to that Url after updating their profile or registering @sbwalker #3513 Added email re-verification when a user changes an email address (and they are not an admin) @sbwalker #3513 Included Review Claims option in External Login to review the claims returned by the IDP to assist in providing the proper claim type mappings in their configuration (and not rely on trial and error). Review Claims includes a Test button to simplify the workflow. @sbwalker #3513 When using Review Claims, the Claims returned from the IDP will be recorded in the Event Log and will now include not only the claim type names but the values as well @sbwalker #3510 Updated _Host.cshtml.cs to account for fully qualified type names in theme resources @markdav-is #3506 Removed InstallDatabase method as it is no longer required now that all database providers are installed automatically @sbwalker #3505 Changed UI terminology to Uninstall rather than Delete in Module Management and Theme Management @sbwalker #3504 Hide Authorization Response Type option for OAuth2 and fix missing localization keys @sbwalker #3503 Prevented localized Microsoft.CodeAnalysis.*.resources.dll files from being included in release @sbwalker #3502 Added Update API method validation to default module template @sbwalker #3501 Added additional validation logic to Update API methods to ensure model ID matches ID parameter @sbwalker #3494 Fixed .NET 8 upgrade issue related to database provider package installation timing @sbwalker #3487 Increased size of MaximumReceiveMessageSize for Blazor Server to prevent issues in managing large content assets @sbwalker

List of Contributors in v5.0.1

@sbwalker @thabaum @leigh-pointer @rcpacheco @beolafsen @markdav-is

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 8.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v5.0.0

5 months ago

Changes in v5.0.0

#3477 Updated Database provider packages to official .NET 8 release @sbwalker #3477 Fixed assembly warning related to MySQL.Data in MySQL provider @sbwalker #3477 Added Oqtane.Licensing to framework distribution @sbwalker #3476 Added IsPrerendering property back to avoid breaking change and used new .NET 8 HttpContext CascadingParameter @sbwalker #3475 Migrated framework to official .NET 8 release packages @sbwalker #3472 Prevented removal of Oqtane.Licensing assemblies during package uninstall @sbwalker #3469 Updated email address in AspNetUsers table when user's email is modified @sbwalker #3468 Removed ability to manage photo from Edit User as files cannot be written to other user's folders @sbwalker #3465 Set default options for all fields in Add Site UI @sbwalker #3464 Auto created user folder for Host user if it does not exist for current site @sbwalker #3463 Moved visitor tracking after url mapping and 404 handling @sbwalker #3462 Added login cookie expiration time functionality @PfaffIC #3460 Improved upload time estimate calculations and limited polling attempts @sbwalker #3459 Removed IsPrerendering property as it is not used, and removed reference to HttpContext to prevent errors in some environments (credit @nicpitsch) @sbwalker #3447 Added form validation for Rows, Length and Order and added resource key for Rows @thabaum #3445 Added Verify Existing Users? option to User Management - External Login Setting @sbwalker #3444 Added redirect to external identity provider if site login is disabled @sbwalker #3443 Fixed notifications UI in user profile @sbwalker #3434 Improved profile validation for User Management (Add/Edit) @sbwalker #3425 Improved notifications formatting and added message for no notifications @thabaum #3424 Fixed form CSS classes and disabled reply when Notification is from System @thabaum #3423 Set Profile Rows default value to 1 @thabaum #3409 Updated development module and theme templates to .NET 8 @thabaum #3408 Fixed .NET 8 compiler warning ASP0019: Use IHeaderDictionary.Append or the indexer to append or set headers @sbwalker #3405 Removed unnecessary added space from upgrade to .NET 8 @thabaum #3404 Removed default connection string data from appsettings @thabaum #3402 Migrated framework to .NET 8 RC2 @sbwalker #3392 Resolved null reference exception in FileManager when ShowFiles is false @sbwalker

List of Contributors in v5.0.0

@sbwalker @thabaum @PfaffIC @nicpitsch

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 8.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v4.0.6

6 months ago

Changes in v4.0.6

#3375 Enhanced Module Creator to allow specific punctuation characters in Description field @leigh-pointer #3370 Fixed Language Selector control alignment so that it does not overflow viewport in default themes @leigh-pointer #3363 Added Search capability to Pager control and implement in Admin UIs (credit @thabaum) @sbwalker #3362 Added Rows option to Profile Management to include support for textarea fields @sbwalker #3362 Improved Profile validation behavior and feedback to users @sbwalker #3362 Added support to Add User for Profile fields utilizing select options @sbwalker #3360 Added ability for module to be inserted at top of pane in Control Panel @sbwalker #3352 Introduced a dropdown menu for authorization response types in User Settings @Rodien #3347 Disabled display of uploaded file name or delete button when multiple uploads are enabled in FileManager control @sbwalker #3346 Displayed uploaded file name in FileManager when ShowFiles is disabled in FileManager @sbwalker #3344 Modified to use CultureInfo.InvariantCulture for LastSyncDate to support Persian calendar @Mostafa-Moafi #3342 Added explicit styling to page names in Admin Dashboard so that they are always visible in Bootstrap themes regardles of light/dark mode @sbwalker #3341 Included CopyLocalLockFileAssemblies property in Client project in Default Module Template @sbwalker #3340 Added hyperlinks to product logos in Marketplace UIs @sbwalker #3339 Fixed UrlCombine so that it handles leading and trailing path delimiters and returns proper paths when creating nested folders @sbwalker

List of Contributors in v4.0.6

@sbwalker @leigh-pointer @thabaum @Rodien @Mostafa-Moafi

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 7.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v4.0.5

7 months ago

Changes in v4.0.5

#3326 Fixed _themetype validation @ijaz-saeed

List of Contributors in v4.0.5

@ijaz-saeed

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 7.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v4.0.4

7 months ago

Changes in v4.0.4

#3319 Refactored login component to redirect to external login provider when local site login is disabled @sbwalker #3318 Include Logout link in Control Panel for scenarios where a theme does not include a Login/Logout component @sbwalker #3310 Updated Language Switcher component with end padding @leigh-pointer #3308 Reverted remaining logic which forced page themes to be a member of a site theme (4.0.0) @sbwalker #3303 Fixed localization for SMTP Retention and Import Users @leigh-pointer #3297 **Fixed issue where module migrations were not being executed on upgrade due to version not being overridden from database @sbwalker #3293 Added Email column to User Manager screen @W6HBR #3292 Fixed typo in app.css @thabaum #3290 Added named site option support to site options factory @sbwalker #3288 Set DefaultScheme for authentication @sbwalker #3285 Fixed missing localization in Profile Management @sbwalker #3279 Updated Child Page Link Color in Theme Creator template @thabaum #3275 Updated to Profiles field list to include Title, Category and ViewOrder @W6HBR #3271 Validated module description in Create Module @sbwalker #3270 Redirected Login to external identity provider if site login is disabled @sbwalker #3268 Prevented System Update in development environment @sbwalker #3267 Added ability to import users @sbwalker #3266 Added password complexity requirements message to password Reset module @W6HBR #3263 Adjusted error message text when adding users with duplicate email addresses @sbwalker #3262 Fixed error when Allow User Login is set to false @sbwalker #3260 ** Fixed issue with module order in panes caused by transition from Admin to Default pane naming @sbwalker #3258 Removed the ReadOnly attribute in the Notifications Reply field @leigh-pointer #3257 ** Fixed behavior when moving pages to other parents @sbwalker #3254 Fixed login to validate User.IsDeleted property @sbwalker #3244 Improved polling in file upload to use actual file sizes to calculate duration @sbwalker #3242 Retained querystring parameters on url mapping redirect @sbwalker #3240 Fixed dynamic injection of JavaScript into page @sbwalker #3239 Fixed issue where </script> not being removed from Head Content @sbwalker #3238 Fixed navigation isue when changing page path in Edit Page when invoked from Control Panel @sbwalker #3223 Displayed Site Guid in Site Settings @sbwalker #3221 Added ability to validate and download Module packages @sbwalker #3220 Improved help text for package name @sbwalker #3219 Fixed paths in Edit Page / Modules tab / Edit option @sbwalker #3218 Included User Settings when calling UserService @sbwalker #3217 ** Fixed incorrect ServerManagerType value in Module Creator @sbwalker #3216 Allowed an administrator to browse to the SiteMap @sbwalker #3216 Handled default module panes and ordering for PageTemplates @sbwalker #3216 Allowed trial products to be purchased @sbwalker #3211 Improved Marketplace UI consistency @sbwalker

** = higher severity

List of Contributors in v4.0.4

@sbwalker @leigh-pointer @W6HBR @thabaum

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 7.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v4.0.3

8 months ago

Changes in v4.0.3

#3205 Filtered deleted pages and modules on the server prior to sending to client @sbwalker #3204 Fixed routable module page template add/update logic @sbwalker #3200 Abstracted Namespace specification to template.json so that module and theme templates can use their own naming conventions @sbwalker #3197 Allowed module or theme License property to be a Url @sbwalker #3194 Optimized Package Manager queries for update checks @sbwalker #3193 Removed Module Creator module in favor of using Create Module option in Module Management @sbwalker #3192 Displayed password complexity requirements to users in User Registration, User Profile, and User Management @sbwalker #3190 Made folder path a querystring parameter when sending to folder API to resolve inconsistent behavior on some web servers @sbwalker #3187 Included PackageRegistryUrl property in System Info @sbwalker #3185 Added time validation to Scheduled Jobs @leigh-pointer #3183 Included IconResources.resx to allow default icon names to be localized @leigh-pointer #3182 Added refresh button to module and theme installation page to improve Marketplace UX flow @sbwalker #3179 Allowed InputList component to be localizable and support multiple instances on a page @sbwalker #3179 Implemented icon localization in Page Add/Edit @sbwalker #3177 Added support for background color padding during image resizing @sbwalker #3176 Improved Module and Theme Management UX for Extend license option @sbwalker #3175 Resolved module installation issue where ModuleDefinition Version property was not being populated correctly on initial install @sbwalker #3171 Added logic to clear the message in the Control Panel upon open/close @vnetonline #3169 Added InputList component to allow user to input information by optionally selecting values from a Dictionary @leigh-pointer #3161 Updated database installers to include show/hide password functionality @rcpacheco #3160 Added support for asynchronous scheduled jobs @sbwalker #3158 Added support for wildcard (*) ImageSizes for folders @sbwalker #3154 Changed Module Title and Visibility events to ExpandoObject instead of an Anonymous Object to resolve issues in external modules @vnetonline #3153 Updated the column headers with link-primary decoration classes in User Management @leigh-pointer #3152 Modifed column size to prevent text wrapping in Module and Theme Management @sbwalker #3151 Fixed the id handling in FileManager for the progressinfo and progressbar elements @sbwalker #3151 Included OnSelect events on Upload and Delete in FileManager @sbwalker #3151 Added missing backend implementation for AddFileAsync method @sbwalker #3150 Fixed missing translation keys throughout framework @alikoli #3147 Modified Notification job to convert \n to < br / > now that IsBodyHtml is set to True @sbwalker #3146 Fixed localization in AuditInfo @HonesDK #3143 Added ability to get user based on username or email address in UserManager @sbwalker #3141 Changed "price" to "from" in Module and Theme Management to reflect possibility of multiple license options @sbwalker #3137 Improved parsing of headcontent to handle space delimiters @sbwalker #3133 Fix missing translations throughout framework @alikoli

List of Contributors in v4.0.3

@sbwalker @vnetonline @leigh-pointer @alikoli @HonesDK @rcpacheco

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 7.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net

v4.0.2

8 months ago

Changes in v4.0.2

#3129 Fixed missing resource keys and properties @alikoli #3128 Fixed installed cultures logic to recognize all satellite resources @sbwalker #3125 Updated Module Title localization using SetModuleTitle on ModuleBase @leigh-pointer #3123 Fixed missing resource keys and properties @leigh-pointer #3122 Updated the Settings Heading in Page Management for localization @leigh-pointer #3121 Improved sync service to always rely on server dates @sbwalker #3120 Added missing resource keys and properties (credit @HonesDK) @leigh-pointer #3119 Fixed Section component localization @sbwalker #3117 Fixed localization of admin module titles @sbwalker #3115 Fixed issue where user could not be shared across multiple sites @sbwalker #3114 Raised reload event to router after user logs out to sychronize client @sbwalker #3111 Changed Help button style in Module and Theme Management @sbwalker #3109 Introduced new GetJsonAsync method with default result parameter @sbwalker #3107 Added support for transparent backgrounds on image resizing @sbwalker #3106 Updated Module and Theme Install UI to match Marketplace (including logos and sorting) @sbwalker #3103 Fixed GetFolderByPath to support root folder path ("/") @sbwalker #3102 Fixed issue where meta name="description" tags were being excluded from page output @sbwalker #3101 Excluded Module and Theme templates from release packages as they are only relevant for development environments @sbwalker #3100 Added error handling and logging to folder creation logic @sbwalker #3099 Redirected user if they are already logged in and navigating to Login page @sbwalker #3097 Handle JWT username claim as "unique_name" with "name" as fallback (credit @W6HBR) @sbwalker #3097 Improved JWT validation logic and logging @sbwalker #3096 Fixed issue where user email links included extra "://" (credit @ryanjagdfeld) @sbwalker #3095 Added appsettings.json support in Maui client @sbwalker #3092 Fixed WebAssembly startup alias handling @sbwalker #3089 Added appicon to Maui client project @sbwalker #3088 Added version number to Support Url when navigating to Marketplace @sbwalker #3087 Trimmed whitespace from dependencies for Themes @sbwalker #3086 Fixed support for microsites when using .NET MAUI @sbwalker #3079 Trimmed whitespace from dependencies for Modules (credit @maxmontgmx) @vnetonline #3058 Fixed FileManager behavior when Folder property is set and ShowFolders is False @vnetonline #3055 Extended AutoComplete control to allow the Required attribute @leigh-pointer #3051 Fixed package upload logic which was showing unsuccessful message in UI @sbwalker #3050 Reverted folder permission change which resulted in user folders being displayed in folder lists @sbwalker #3049 Fixed FileManager behavior when ShowFolders property is set to False @sbwalker #3047 Fixed External Module template to handle null results returned from database @leigh-pointer

List of Contributors in v4.0.2

@sbwalker @vnetonline @leigh-pointer @alikoli @W6HBR @ajahangard @ryanjagdfeld @HonesDK @maxmontgmx

Additional Resources

Oqtane is an open source CMS and Application Framework that provides advanced functionality for developing web, mobile, and desktop applications on .NET. It leverages Blazor to compose a fully dynamic digital experience which can be hosted on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 7.0. This release is upgradeable from previous Oqtane releases with no breaking changes. Simply install the Upgrade package and your database will be upgraded automatically.

This release of Oqtane is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net