Skip to content

Releases: oqtane/oqtane.framework

3.4.3

03 May 19:01
ec0a537
Compare
Choose a tag to compare

Changes in v3.4.3

#2782 Added validation to prevent module definitions from having duplicate names @sbwalker
#2780 Fixed module rendering order issue within pane @sbwalker
#2780 Moved default module ordering logic to server API for consistency and performance @sbwalker
#2776 Elevated AdminDashboard SecurityAccessLevel to View @thabaum
#2772 Improved module/theme/translation upload user experience to be consistent with download user experience @sbwalker
#2771 Fixed Deploy to Azure button @vnetonline
#2770 Removed default access to Admin Page for Registered User role @thabaum
#2768 Invalidated cache when updating Module Definition name, description, categories @sbwalker
#2759 Fixed MenuHorizontal scroll on mobile view (credit to @GOstSRB) @leigh-pointer
#2754 Added ability to use environment variables in order to set them as app settings in Azure @pepsinio
#2753 Allowed module and theme Dependencies property to include .dll file extension @sbwalker
#2753 Added testmode config setting for validating list of assemblies sent to client @sbwalker
#2747 Added content-type and UTF8 encoding to site map @thabaum
#2745 Added support for common actions to SharedResources @thabaum
#2741 Added filter to exclude orphaned permissions @sbwalker
#2740 Allowed routes with Module ID and no Action to be displayed on any page regardless of whether a PageModule record exists (ie. Admin Dashboard) @sbwalker
#2739 Fixed UI issue where it was not loading correct module instance in scenarios where the same module exists on multiple pages @sbwalker
#2731 Fixed regression issue where module definition permissions were not being created properly for new sites @sbwalker
#2730 Consolidated package installation so that it always occurs during startup and includes logging in case of errors @sbwalker
#2729 Improved UX by bypassing Toggle Password button focus @leigh-pointer
#2727 Included Module Settings when passing Module parameter to ISiteMap interface @leigh-pointer
#2725 Added defensive logic for null reference permissions issue @thabaum

List of Contributors in v3.4.3

@sbwalker
@thabaum
@leigh-pointer
@GOstSRB
@pepsinio
@vnetonline

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.4.2

29 Mar 18:09
1e0c7cf
Compare
Choose a tag to compare

Changes in v3.4.2

#2704 Added defensive logic to package installer to handle invalid packages @sbwalker
#2703 Fixed translation package installation problem @sbwalker
#2698 Fixed PermissionNames not appearing in PermissionGrid @sbwalker
#2697 Modified Registration to display the Password complexity requirements @leigh-pointer
#2691 Implemented code improvements recommended by SonarQube @Behnam-Emamian
#2689 Added Setters to Permissions property to provide improved backward compatibility @sbwalker
#2684 Added defensive logic for loading modules which have not declared all dependencies on WebAssembly @sbwalker
#2683 Added defensive logic for loading modules which have not declared all dependencies on .NET MAUI @sbwalker
#2682 Fixed issue where ModuleDefinition cache properties were being overwritten @sbwalker
#2681 Fixed issue when adding new site to existing installation @sbwalker

List of Contributors in v3.4.2

@sbwalker
@leigh-pointer
@Behnam-Emamian

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.4.1

14 Mar 02:40
ff6187c
Compare
Choose a tag to compare

Changes in v3.4.1

#2674 Fixed issue where cached ModuleDefinition properties were being overwritten by object filter @sbwalker

List of Contributors in v3.4.1

@sbwalker

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.4.0

12 Mar 14:24
f7bb844
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 62 pull requests by 6 contributors were integrated into this release bring the total to over 3300 commits all time.

Noteworthy Changes in v3.4.0

#2661 Added support for capturing user profile information from claims during external login @sbwalker
#2660 Optimized Permission model by removing reference to Role to reduce API payload and minimize information disclosure @sbwalker
#2657 Added IsPortable property on ModuleDefinition to indicate if module implements IPortable @sbwalker
#2657 Filtered ModuleDefinition models returned from API to minimize information disclosure @sbwalker
#2652 Ensured system remains in edit mode when user is editing a page @sbwalker
#2649 Added OnPageChange event handler to the Page and the Module Pagers in Recycle Bin @leigh-pointer
#2644 Hid the Clear Notifications option if no notifications exist @leigh-pointer
#2642 Fixed validation logic for deleting modules from the Recycle Bin @leigh-pointer
#2637 Fixed localization issue in Scheduled Jobs @sbwalker
#2628 Updated module and theme templates to latest standards @thabaum
#2628 Fixed utilization of root folder in Module and Theme Creator @thabaum
#2628 Fixed navbar CSS in theme template @thabaum
#2626 Improved deletion of modules from Recycle Bin to handle permissions and settings @leigh-pointer
#2620 Added logic to delete Permissions when a Module is uninstalled @leigh-pointer
#2612 Replaced custom encoded permission strings with permission collections to improve maintainability and performance @sbwalker
#2611 Explicity specify optional and reload parameters when loading appsettings.json @sbwalker
#2610 Added logic to delete Module and PageModule when Module is uninstalled @leigh-pointer
#2609 Improved Hot Reload support by extending watching of *.dll files @Behnam-Emamian
#2608 Migrated tenant connection string details from database to appsettings.json @sbwalker
#2608 Updated Site Settings and Site Management (when adding a new site) to display the connection name rather than the actual connection string related to a tenant @sbwalker
#2608 Changed terminology in the UI from using "tenant" to "database" as the tenant concept seems to cause a lot of confusion @sbwalker
#2608 Overhauled Sql Management so that it is now driven from the list of database connections in appsettings.json (rather than from the Tenant database table) - and now allows you to add additional connections as well (including ones that are not related to the Oqtane framework) @sbwalker
#2606 Added a sitemap generator which outputs all public pages and also includes an ISitemap interface for modules @sbwalker
#2605 Added AddByteColumn migration method to enable creation of tinyint columns in the database @Behnam-Emamian
#2601 Added logic to delete Settings when Module is uninstalled @leigh-pointer
#2599 Added defensive logic to querystring parser to handle duplicate parameters @sbwalker
#2598 Improved initialization logic in FileManager which could sometimes result in Upload button not being displayed when the component was initially loaded @sbwalker
#2597 Fixed EF Core tracking error when updating a file in a folder which has a Capacity specified @sbwalker
#2593 Added Oqtane.Server project back to module and theme external template solutions @sbwalker
#2592 Added logic to restrict the term "oqtane" as an organization or module/theme name (to avoid namespace issues) in Module/Theme Creator @sbwalker
#2591 Added new API methods for managing visitor settings (for personalization) @sbwalker
#2590 Optimized Split() logic for consistency throughout framework @sbwalker
#2589 Added ability to clear System Log @sbwalker
#2587 Added IsDeleted columns back to Folder and File tables to preserve compatibility for SQLite (which does not support ability to drop columns) @sbwalker
#2585 Refactored visitor cookie name into a shared constant @sbwalker
#2582 Added defensive logic for null ModuleDefinition reference when loading permissions in PageModuleRepository (credit @beolafsen) @sbwalker
#2581 Fixed issue where error notification sent via email included direct link to specific log item, however redirect was causing an infinite loop @sbwalker
#2581 Preserved url querystring parameters during login/logout @sbwalker
#2580 Modified ActiveDatabase setter to be public @markdav-is
#2579 Suppressed unauthorized visitor logging message as it is usually caused by clients that do not support cookies @sbwalker
#2571 Fixed issue where TenantMiddleware was not rewriting the Url path for the new File Server when running on an Alias Path which resulted in a 404 when serving files @sbwalker

List of Contributors in v3.4.0

@sbwalker
@leigh-pointer
@Behnam-Emamian
@thabaum
@beolafsen
@markdav-is

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.3.1

14 Jan 20:00
2c56bfd
Compare
Choose a tag to compare

Changes in v3.3.1

#2562 Set Permission EntityName explicitly to Module when adding module to page from Control Panel @sbwalker
#2560 Fixed incorrect projectUrl in Oqtane.Framework.nuspec @sbwalker

List of Contributors in v3.3.1

@sbwalker

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.3.0

12 Jan 17:52
cd1f12e
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 51 pull requests by 3 contributors were integrated into this release bring the total to 3201 commits all time.

Noteworthy Changes in v3.3.0

#2545 Added Relay Configured site setting to enable sending from users email address @sbwalker
#2544 Formatted PermissionNames to be more readable @sbwalker
#2543 Added support for API permissions at the UI layer - including ability to delegate user, role, profile management @sbwalker
#2542 Added ability to view error.log in System Info @sbwalker
#2540 Improved dynamic policy registration to handle possible race conditions @sbwalker
#2539 Included owner in migration tag name in external module template @sbwalker
#2538 Added an Autocomplete component and implemented in permission grid @sbwalker
#2535 Updated framework root to use the new dark/light theme glow logo @thabaum
#2533 Added support for multiple TabStrip components on a page @sbwalker
#2532 Fixed skip pages logic in Pager component where screen was not being refreshed @sbwalker
#2521 Added new methods for deleting a setting and retrieving a list of settings @sbwalker
#2519 Made casing consistent in route template definition and method parameter declaration or else Swagger will not be able to resolve @sbwalker
#2518 Added ModuleControllerBase helper method for validating EntityId @sbwalker
#2516 Hid connection string by default in SQL Management and provided toggle for display @sbwalker
#2515 Provided guidance about password complexity policy during install, and ensured modified passwords meet complexity policy @sbwalker
#2514 Enhanced dynamic authorization policies to support default role specification @sbwalker
#2506 Generated password using CultureInfo.InvariantCulture to ensure it satisfies password complexity criteria @sbwalker
#2505 Set default Visibility to Same As Page when adding module to a page @sbwalker
#2504 Changed the Pager bar to set the mouse pointer to pointer @leigh-pointer
#2496 Added ability to include inline script resource definitions in modules and themes @sbwalker
#2493 Fixed JS Interop methods for includeScript and includeMeta @sbwalker
#2492 Moved UI logic from FileService to FileManager component @sbwalker
#2492 Updated file attributes if uploading a new version of a file @sbwalker
#2492 Cleaned up temporary artifacts on upload failure, added progressive retry logic, and improved upload efficiency @sbwalker
#2490 Scoped permissions by SiteId to support entity level authorization as well as improved caching and performance @sbwalker
#2490 Optimized GetTenant to use existing cache @sbwalker
#2482 Added support for dynamic authorization policies @sbwalker
#2477 Added ETag / 304 Not Modified logic to File server for performance optimization @sbwalker
#2476 Fixed File Update API to update the file size and image dimensions @sbwalker
#2475 Removed IDeletable fields from Folder and File entities as they are not used @sbwalker
#2474 Fixed IDeletable code documentation @sbwalker
#2473 Updated models to use new ModelBase @sbwalker
#2472 Introduced a ModelBase to move the IAuditable properties to a base class @sbwalker
#2471 Added loading icon to Maui project @sbwalker
#2469 Removed Oqtane.Server from external templates as it causes random compilation issues @sbwalker
#2468 Added validation message for missing package name @sbwalker
#2467 Fixed language delete refresh @sbwalker
#2466 Improved translation install/upgrade experience @sbwalker
#2463 Replace assembly references with package references in Maui project @sbwalker

List of Contributors in v3.3.0

@sbwalker
@leigh-pointer
@thabaum

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.2.1

17 Oct 20:48
c8f56e1
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 21 pull requests by 4 contributors were integrated into this release bring the total to 3093 commits all time.

Noteworthy Changes in v3.2.1

#2459 Changed default Service Url in MAUI solution so users can immediately run client app @sbwalker
#2454 Resolved deserialization issue with System.Text.Json when accessing remote services @sbwalker
#2451 Removed NewtonSoft.Json dependency @sbwalker
#2450 Added support for a file download event @sbwalker
#2449 Enhanced SyncManager to raise events which can be handled on the server within hosted services @sbwalker
#2449 Raised create, update, delete events for all major entities @sbwalker
#2449 Included support for refresh and reload events to synchronize client state @sbwalker
#2449 Moved client state cache invalidation to a hosted service to separate concerns and demonstrate new event system @sbwalker
#2446 Added upgrade logic for sites using remapped identifier and email claim @sbwalker
#2445 Added logging for all user creation errors raised from .NET Identity @sbwalker
#2444 Added support for roles as part of external login via OIDC @sbwalker
#2443 Fixed issue with upgrade available indicator in Language Management @sbwalker
#2442 Fixed regression error in Recycle Bin @sbwalker
#2441 Ensure resource urls are constructed consistently on both client and server (credit @iJungleboy) @sbwalker
#2440 Added footer to the Pager control @leigh-pointer
#2431 Fixed support for unattended installation @chlupac
#2430 Added Blazor Server automatic reconnect script @sbwalker
#2430 Fixed Event Log direct link from notification emails related to errors @sbwalker
#2430 Add more validation to Pager component @sbwalker
#2430 Improved browser refresh JS Interop script to wait for server availability @sbwalker
#2425 Fixed id convention used in new File Server @sbwalker
#2424 Improved BaseUrl handling for MAUI @sbwalker
#2424 Replaced ContentUrl with FileUrl and improved new File Server @sbwalker
#2421 Cleaned up PDB files saved on client and hash client assembly file names @sbwalker

List of Contributors in v3.2.1

@sbwalker
@leigh-pointer
@chlupac
@iJungleboy

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.2.0

13 Sep 13:20
802ee8a
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 49 pull requests by 6 contributors were integrated into this release bring the total to 3051 commits all time.

Noteworthy Changes in v3.2.0

#2414 Cached assemblies on client using IndexedDB on WebAssembly @sbwalker
#2412 Optimized assembly loading for .NET MAUI to use client storage @sbwalker
#2406 Store job date times as UTC for cross platform database support @dkoehnolms
#2398 Added UrlParametersTemplate to improve support of Url paramters @sbwalker
#2396 Introduced new Default pane to improve user experience @sbwalker
#2395 Added public Refresh method to FileManager @sbwalker
#2385 Moved hierarchical ordering logic to server for pages and folders @sbwalker
#2384 Made folder paths cross platform @sbwalker
#2384 Introduced file handler for abstracting the serving of files @sbwalker
#2384 Enabled url mapping for broken file links @sbwalker
#2384 Resolved public folder deletion issue @sbwalker
#2373 Added improvements to richtexteditor to allow file management in raw html editor @sbwalker
#2373 Allowed disabling of raw html editor which can be utilized via new setting in Html/Text module @sbwalker
#2372 Optimized developer experience for Url Parameters and implemented in Event Log for functional example @sbwalker
#2370 Improved administrative responsibilities for page editors and module content editors @sbwalker
#2363 Added ability to specify a site home page @sbwalker
#2363 Updated default template content to include .NET MAUI support @sbwalker
#2362 Added Site option for specifying a Hosting Model of Blazor Hybrid @sbwalker
#2361 Optimized site router logic @sbwalker
#2359 Added performance improvements to reduce API and database interactions @sbwalker
#2358 Added ability to dynamically set module title and visibility from components @sbwalker
#2357 Added support for preserving url state when loading admin components @sbwalker
#2356 Added Schema support to BaseEntityBuilder methods @dkoeder
#2355 Added Blazor Hybrid / .NET MAUI support @sbwalker
#2351 Fixed issue in passing Lifetime property to GenerateToken @ajahangard
#2348 Fixed satellite assembly loading issue when running on WebAssembly @sbwalker
#2342 Fixed path issue with error.png when loading files that do not exist @sbwalker
#2341 Refactored module upgrade logic to remove requirement on ServerManagerType for modules which have no backend @sbwalker
#2338 Truncated UserAgent when saving Visitor information @chlupac
#2331 Added proper translation keys for ActionLink and ActionDialog into RESX for Module Creator template @sbwalker
#2328 Included ResourceType attribute in Settings component for external module template @sbwalker
#2327 Added progress indicator for bulk operations in Recycle Bin and User Profile @leigh-pointer
#2326 Fixed formatting issues with Bootstrap 5.2 @leigh-pointer
#2325 Fixed upgrade issue for framework translations @sbwalker
#2325 Added improvements for managing module translations @sbwalker
#2322 Updated Bootstrap to 5.2 @leigh-pointer

List of Contributors in v3.2.0

@sbwalker
@leigh-pointer
@chlupac
@dkoeder
@ajahangard
@dkoehnolms

Additional Resources

Oqtane is an open source modular application framework that provides advanced functionality for developing single page applications that run on web, mobile, and desktop. It leverages the Razor component model to compose a fully dynamic web development experience which can be hosted either client-side or server-side on Blazor Server, Blazor WebAssembly, or Blazor Hybrid (via .NET MAUI).

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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 and https://www.blazorcms.net

3.1.4

27 Jul 20:20
7b4d13b
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 25 pull requests by 4 contributors were integrated into this release bring the total to 2949 commits all time.

Noteworthy Changes in v3.1.4

#2313 Added support for download/install of module translations @sbwalker
#2312 Added ability to supply raw connection string in Add Site @sbwalker
#2311 Introduced ITransientService interface for auto registration of transient services (for DBContexts and Repositories) @sbwalker (credit to @dkoeder)
#2310 Added ability to supply raw connection string in Install Wizard @sbwalker
#2304 Optimized satellite assembly loading based on the new approach where all cultures are available @sbwalker
#2302 Added null verification check to FileService GetFilesAsync method @chlupac
#2301 Added Environment name to System Info API and UI @sbwalker
#2300 Added performance optimization for permissions loading @sbwalker
#2299 Added validation logic to InstallationManager for missing package folders @chlupac
#2295 Added ability to load environment-specific appsettings @chlupac
#2292 Added translation version to Language Management UI @sbwalker
#2292 Optimized performance by loading list of languages for a site into PageState @sbwalker
#2292 Allowed Administrator to add any language to a site regardless of translation availability @sbwalker
#2291 Dynamically determine framework path when scaffolding project references in Module Creator @sbwalker
#2288 Added validation logic for scenario where module definition associated to a module instance does not exist @sbwalker
#2287 Fixed issue in default site template where MIT License module was being created in invalid pane @sbwalker
#2284 Added 404 page to each Site on upgrade @sbwalker
#2284 Added message indicating a restart is required to activate scheduled jobs after initial framework installation @sbwalker
#2284 Added Package Name to Module and Theme management @sbwalker
#2272 Made Edit Mode visible in the Control Panel when a user has Edit permission to any module on a Page @sbwalker
#2269 Added Missing Resource from Oqtane Theme Settings @leigh-pointer
#2260 Fixed issue with redirect after site deletion and removed tenant if it is empty @sbwalker

List of Contributors in v3.1.4

@sbwalker
@chlupac
@leigh-pointer
@dkoeder

Additional Resources

The Oqtane Framework is built on Blazor, an open source and cross-platform web UI framework for building single-page apps using .NET and C# instead of JavaScript.

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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

3.1.3

27 Jun 20:15
8950e31
Compare
Choose a tag to compare

Release Notes

We deeply appreciate the contributions from our community. A grand total of 26 pull requests by 6 contributors were integrated into this release bring the total to 2904 commits all time.

Noteworthy Changes in v3.1.3

#2255 Add schema support to BaseEntityBuilder @sbwalker
#2254 Fixed issues with site deletion @sbwalker
#2253 Fixed ability to insert images into rich text editor @sbwalker
#2247 Added email notification encoding to support all cultures (credit to @InfDev) @sbwalker
#2246 Set default database type correctly when adding new site @sbwalker
#2246 Added source info to all extension installation scenarios based on the fact that the Registry now supports both Nuget and GitHub locations @sbwalker
#2244 Allow multiple aliases to be defined as default for a site @sbwalker
#2243 Refactored Pager and LocalizableComponent to use new LocalizerFactory @sbwalker
#2243 Added extension method for creating a LocalizerFactory using a type name string @sbwalker
#2242 Fixed Recycle Bin not showing deleted date @leigh-pointer
#2241 Improved log notifications by adding log message to email @sbwalker
#2238 Fixed issued where exception info was not being saved to log for certain sceanrios @chlupac
#2237 Relaxed userrole API restrictions to enable development scenarios @sbwalker
#2235 Added support for an Unauthenticated User global role @sbwalker
#2232 Added missing translation keys for module names @ijaz-saeed
#2231 Validated file extensions client-side before initiating file upload @sbwalker
#2231 Validated file extensions server-side before writing parts to disk @sbwalker
#2231 Optimized part cleanup logic, added error handling to JavaScript XMLHttpRequest logic, ensured FileInput gets initialized after upload @sbwalker
#2228 Log notification improvement to navigate to specific log item @chlupac
#2223 Make toggle button behave independently for password and confirm password on Install Wizard @hishamco
#2222 Modify Pager component to inherit from LocalizableComponent @hishamco
#2219 Add support for disabling the Show On All Pages option in Module Settings @sbwalker
#2217 Added missing RESX entries @leigh-pointer
#2211 Add menu collapse after clicking on a page link (mobile rendering) @elgransan
#2210 Localize Pager component (Page @_page of @_pages) @leigh-pointer
#2207 Add filtering by Category to Module Management @sbwalker

List of Contributors in v3.1.3

@sbwalker
@leigh-pointer
@chlupac
@ijaz-saeed
@hishamco
@elgransan

Additional Resources

The Oqtane Framework is built on Blazor, an open source and cross-platform web UI framework for building single-page apps using .NET and C# instead of JavaScript.

This release of Oqtane is targeted at .NET 6.0. This release is upgradeable from previous Oqtane releases. 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