Cofoundry Versions Save

Cofoundry is an extensible and flexible .NET Core CMS & application framework focusing on code first development

v0.9.2

2 years ago

Bug Fixes

  • #458 Comments in Page Template files break region detection

v0.9.1

3 years ago

Bug Fixes

  • #401 VisualEditorActionResult.ExecuteResultAsync fails with "Synchronous operations are disallowed"

v0.9.0

3 years ago

Features

  • #325 Support multiple nested data model type options (NestedDataModelMultiTypeCollectionAttribute)
  • #181 Dynamic data model: Default values
  • #397 IApiResponseHelper should use IJsonSerializerSettingsFactory
  • #338 Annotate a field as non editable in a Custom Entity
  • #311 Admin panel: Add field/picker for date and time
  • #312 Admin panel: Add field for decimal/double/float
  • #388 ImageCollection does not support tag filtering or preview dimensions
  • #392 ImageUpload: Resize images client side if they exceed limits
  • #377 TinyMCE: source editor monospaced font, full screen display bug
  • #381 Admin: Panel should fill width if there are no actions
  • #390 InMemoryObjectCache: Allow configuraiton of cache lifetimes
  • #387 ContentRepository: Missing GetCustomEntityRenderSummariesByUrlSlugQuery

Bug fixes

  • #379 Admin: Search Filter prevents links in the header from being clicked.
  • #389 PageTemplateRegistrationException: Duplicate template region
  • #373 Visual Editor does not load when Application Insights is configured
  • #364 Visual Editor does not work when no layout file is specified
  • #330 Way to disable Html Sanitizer on RawHtmlDataModel Region/Blocks
  • #320 Option List using IListOptionApiSource: Issues with API location and formatting
  • #380 Admin: Text in tables is not selectable
  • #342 Data Annotations in Nested Data Models not validating
  • #344 Data model annotations for image size are ignored when uploading image during a page edit

Breaking changes

  • IApiController methods now returns JsonResult instead of IActionResult
  • IApiController methods no longer require a Controller parameter
  • The UI editor associated with the [Date] annotation now captures UTC time instead of local time. To capture local time use the [DateLocal] data annotation instead.
  • Razor comments blocks are now removed when parsing PageTemplate files

Other notable changes

  • The front-end build for the admin panel has been rewritten to use Gulp, it's now less verbose and easier to use in plugins and custom modules, although it is still a non-documented feature and liable to change in an upcoming refresh of the admin panel framework.
  • Column titles can now be customized in the display table rendered for a [CustomEntityMultiTypeCollection] data annotation.

See the announcement blog post for full details.

v0.8.0

3 years ago

Features

  • #261 Add simple data api for basic all-in-one data access
  • #382 TransactionScopeManager: change default isolation from Serializable to ReadCommitted

Bug fixes

  • #383 FError loading page template detail page

v0.7.0

3 years ago

Features

  • #366 Update to .NET Core 3.1

Bug fixes

  • #366 Forgot Login Password - Reset Password
  • #347 UI: Page Selector: Ignore leading slash in page search query
  • #363 Unable to edit custom entity without publish permission
  • #339 Publishing pages from page list leaves publish icon greyed out for other pages
  • #370 How to use IOrderableCustomEntityDefinition

v0.6.1

5 years ago

In addition to bug fixes, this release updates the ASP.NET Core packages to 2.2.1.

Bug fixes

  • #295 GetCurrentUserMicroSummaryQuery: Returns null if executed in the same request as a login
  • #308 Admin panel custom entity nested custom entities links to not found
  • #305 Documentation: Page paths and canonical urls
  • #309 Links in admin email templates do not account for a custom admin directory

Breaking Changes

In doing this I renamed LogAuthenticatedUserInCommand to LogSuccessfulLoginCommand because the old name was misleading. This is only used internally and shouldn't cause a breaking change for developers.

v0.6.0

5 years ago

Features

  • #270 Update to .NET Core 2.2
  • #291 Error handling on startup - better report errors with the update service

Bug fixes

  • #292 Login fails when chrome dev tools is open
  • #285 GOOGLE ANALYTICS UA ID is not saving in the database
  • #278 User Areas: Cannot add, edit or delete non-Cofoundry users in the admin panel

v0.5.1

5 years ago

Bug fixes

  • #277 AutoUpdate: Interrupted startup process occurs occasionally
  • #276 Robots.txt includes sitemap when DisableRobotsTxt set to true
  • #275 IMessageHandler: Updating db throws InvalidOperationException

v0.5.0

5 years ago

Features

  • #81 Querying a custom entity by url slug
  • #256 File type blocking: make configurable
  • #159 Disable built-in features / remove items from admin panel navigation
  • #257 Remove soft-deletes
  • #170 IFileStoreService and orphan items
  • #33 Make Image Asset Files Permanently Cachable
  • #185 Add Cofoundry starter template
  • #50 Allow admin panel path to be configurable
  • #138 Allow admin panel to be disabled via configuration setting
  • #128 SlugFormatter: Improve handling of punctuation marks

Bugs

  • #235 IPageBlockTypeDisplayModelMapper: Should pass down IExecutionContext to map method
  • #260 Issue with CMS admin login
  • #249 DefaultHtmlSanitizationRuleSetFactory incorrectly whitelists class attribute
  • #252 GetCustomEntitySummariesByIdRangeQuery - Setting missing in constructor
  • #247 Tags added to Documents are not saved correctly
  • #248 Image links generated in the html editor dont have the correct url slug or extensions
  • #242 Custom Entity Duplication
  • #241 TextFormatter.PascalCaseToSentence: Should account for acronyms
  • #193 IRouteRegistration: Adding a catch all route can override the admin route

Documentation

Breaking Changes

  • UriParse helper has been renamed HttpUriParser to better describe it's scope as it only parses http base uris.
  • The signature to IPageBlockTypeDisplayModelMapper<TDataModel> has been updated to make mapping simpler (see release blog post for detailed explainaton)
  • AdminRouteAttribute has been removed. Please register your routes via methods in Cofoundry.Web.Admin.AdminRouteBuilderExtentions
  • ImageAsset/DocumentAsset: Many property names/sizes tidied up. Removed soft deletes, routes have changed. If you want to redirect requests from the old assets routes you'll need to enable the compatibility feature Cofoundry:ImageAssets:EnableCompatibilityRoutesFor0_4 or Cofoundry:DocumentAssets:EnableCompatibilityRoutesFor0_4
  • ImageAssets: A max image upload size is now enfoced which defaults to 3200x3200 but can be configured in settings.
  • Setting Cofoundry:AutoUpdate:IsDisabled is now Cofoundry:AutoUpdate:Disabled
  • NotDangerousFileExtensionAttribute and NotDangerousMimeTypeAttribute removed and replaced with IAssetFileValidator that is now configurable.

v0.4.1

5 years ago

Due to a tagging mishap, v0.4 was skipped. Please use 0.4.1 instead.

Features

  • #154 Update to .NET 2.1
  • #223 Ability to define the sort order for non-orderable custom entities
  • #221 Ability to reference the ambient VisualEditor mode
  • #220 Custom Entity: Duplicate
  • #214 Default custom entity ordering differences between queries
  • #217 Add mailto links to the default sanitization ruleset
  • #206 Custom Entity Permissions: Easily add new permissions to roles after initialization
  • #87 Improve Page Querying outside of the admin panel
  • #229 Duplicate pages: Does not duplicate block content
  • #67 Page/Entities version numbers to be stored in database
  • #237 Data mode attributes: throw errors when placed on wrong types

Bugs

  • #234 Template.Region.WrapWithTag: editor does not render for single-block regions
  • #230 MessageAggregator: Publish message on transaction complete
  • #228 Custom Entity: Block data needs to be partitioned by page
  • #227 PageBlockTypes: Missing unique index on filename
  • #225 Increase the size of the CustomEntityModelType field in the PageTemplate table to account for longer namespaces
  • #222 Can't open select boxes for custom entities that have relations on other custom entities

Breaking Changes:

  • ApiResponseHelper.SimpleQueryResponse now returns a 404 status code if the result is null.
  • IEntityFrameworkSqlExecutor: All sync operations have been removed
  • PropertyBuilderExtensions has been moved to Cofoundry.Core.EntityFramework namespace.
  • IDatabase is no longer injected, use ICofoundryDatabase.
  • ModelBuilder.UseDefaultConfig has been replaced with HasAppSchema because since the migration to EF Core no other configuration was being performed here other than setting the default schema.
  • Removed the generic versions of IOrderableCustomEntityDefinition and ICustomizedTermCustomEntityDefinition. Use the non-generic versions instead alongside the generic ICustomEntityDefinition<TDataModel>. The generic versions were a shortcut, but I think it's better to be explicit here so we don't have multiple ways of doing things which can be confusing.
  • VisualEditorMode has been moved from the Cofoundry.Web project to the Cofoundry.Domain project.
  • VisualEditorMode.Draft has been renamed VisualEditorMode.Preview
  • SortDirection naming has been changed from Ascending/Descending to be Default/Resversed to better describe the behaviour, this is because for publish/create date sorting the default behaviour is latest first which is not technically ascending ordering.
  • CustomEntityDetails, CustomEntitySummary: HasDraft property has been renamed HasDraftVersion, IsPublished property replaced with IPublishableEntity.IsPublished() to be consistent with similar classes.
  • GetCustomEntitySummariesByIdRangeQuery no longer accepts PublishStatusQuery filtering, ensuring consistency with other uses of CustomEntitySummary and PageSummary. For an equivalent publish-status-aware query, use GetCustomEntityRenderSummariesByIdRangeQuery
  • OpenGraphData.Image has been changed from an ImageAssetSummary to an ImageAssetRenderDetails object.
  • PageRepository.GetPageSummariesByPageIdAsync was named incorrectly and has been renamed PageRepository.GetPageSummariesByIdRangeAsync
  • AddCustomEntityVersionPageBlockCommand: PageTemplateId property has been removed and PageId has been added in it's place.
  • IQueryable<CustomEntityVersion>.FilterByActive has been renamed `FilterActive for consistency with similar methods.
  • IQueryable<CustomEntityPublishStatusQuery>.FilterByActive has been renamed FilterActive() for consistency with similar methods.
  • The default ordering for custom entities that don't use IOrderableCustomEntityDefinition is now by Title. You can change this by implementing ISortedCustomEntityDefinition on your custom entity definition.