You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/CrestApps.Docs/docs/changelog/v2.0.0.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -111,11 +111,14 @@ Large parts of the reusable AI infrastructure are no longer implemented only ins
111
111
- Azure AI Search index editors for **AI Documents** and **AI Memory** now normalize their built-in managed mappings on load and update so repeated edits do not keep appending duplicate `Content`, `Embedding`, and related managed fields, while custom mappings remain preserved
112
112
- The **Clear saved AI memory** action in the current user's profile editor now uses Orchard Core's standard admin confirmation dialog and clears the user's saved memory entries by filtering the store's persisted records for the current user before removing the corresponding indexed AI memory documents
113
113
- Content Transfer content-type settings now default **Allow Bulk Import** and **Allow Bulk Export** to enabled, so content types participate by default and can explicitly opt out by turning either setting off
114
-
- Omnichannel contact import and export now map the first contact-method bag entries to workbook `Email`, `Cell Phone`, and `Phone` columns, also read and write `DoNotCall`, `DoNotCallUtc`, `DoNotSms`, `DoNotSmsUtc`, `DoNotEmail`, `DoNotEmailUtc`, `DoNotChat`, and `DoNotChatUtc` on `OmnichannelContactPart`, support duplicate-phone filtering during import, and can enforce national do-not-call registry checks through **Settings** -> **Import Content Settings**
114
+
- Content Transfer now keeps CSV support in the base `CrestApps.OrchardCore.ContentTransfer` feature and moves optional `.xlsx` support into `CrestApps.OrchardCore.ContentTransfer.OpenXml`, with the import and export UI showing only the file extensions enabled by the current tenant feature set
115
+
- Content Transfer now welds lazily created parts onto the parent content item during column discovery, import, and export so `.xlsx` exports no longer fail with a `System.Text.Json` node-cycle exception when a content item does not already materialize one of its configured parts
116
+
- Omnichannel contact import and export now map the first contact-method bag entries to workbook `Email`, `Cell Phone`, and `Phone` columns, also read and write `DoNotCall`, `DoNotCallUtc`, `DoNotSms`, `DoNotSmsUtc`, `DoNotEmail`, `DoNotEmailUtc`, `DoNotChat`, and `DoNotChatUtc` on `OmnichannelContactPart`, advertise `true` and `false` for the `DoNot*` boolean columns, default duplicate-phone filtering to enabled, add skipped duplicate rows to the error export with a reason, batch-check duplicate phone numbers against both the import file and the existing Orchard contact records, fall back to legacy stored phone values when older tenants have not yet backfilled normalized-phone indexes, and can enforce national do-not-call registry checks through **Settings** -> **Import Content Settings**
115
117
- Omnichannel contact definitions now enforce a fixed `ContactMethods` bag for content types that attach `OmnichannelContactPart`, while `OmnichannelContactPart` itself owns the contact-level Do-Not-Call, Do-Not-SMS, Do-Not-Email, and Do-Not-Chat compliance flags so omnichannel indexing, campaign actions, and activity loading all use one C#-controlled contact model
116
118
- Omnichannel Management now declares the `OrchardCore.Flows` feature dependency required to render the enforced `ContactMethods` bag editor on content types that attach `OmnichannelContactPart`
117
119
- Omnichannel contact type definitions now inject the named `ContactMethods` bag from Orchard's `IContentDefinitionHandler` build pipeline, ensuring the bag materializes whenever a content type attaches `OmnichannelContactPart` even before any stored definition repair runs
118
120
- DNC registry provider configuration is now split into dedicated settings pages under **Settings** -> **DNC Registries** with separate **USA FTC Registry** and **Canada LNNTE-DNCL Registry** pages, and registry API keys are stored as protected values instead of being shown back in the UI
121
+
- DNC registry settings navigation now only shows **USA FTC Registry** and **Canada LNNTE-DNCL Registry** when their matching provider features are enabled, which fixes the 404 links from the shared DNC settings menu
119
122
- DNC registry providers now expose their shared contract through `CrestApps.OrchardCore.DncRegistry.Abstractions`, and Content Transfer row filters now use `InitializeAsync` to opt into an import while keeping import-scoped filtering state on the filter instance itself
120
123
121
124
### Typed AI deployments replace legacy deployment selectors
@@ -223,8 +226,9 @@ Review the current admin navigation after upgrade and update any operator docume
223
226
### Content Transfer module
224
227
225
228
- added `CrestApps.OrchardCore.ContentTransfer`, `CrestApps.OrchardCore.ContentTransfer.Core`, and `CrestApps.OrchardCore.ContentTransfer.Abstractions`
229
+
- added `CrestApps.OrchardCore.ContentTransfer.OpenXml` so Excel workbook support can be enabled separately from the base CSV transfer feature
226
230
- added unit coverage for the imported content transfer services and Excel validation behavior
227
-
- added module documentation for bulk Excel-based content import and export
231
+
- added module documentation for bulk content import and export across CSV and optional OpenXml workbook formats
0 commit comments