diff --git a/mkdocs.yml b/mkdocs.yml index a186713e5c7..7c2c530255d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -260,3 +260,7 @@ nav: - 1.0.0-beta3: docs/releases/1.0.0-beta3.md - 1.0.0-beta2: docs/releases/1.0.0-beta2.md - 1.0.0-beta1: docs/releases/1.0.0-beta1.md + - Community: + - Overview: docs/community/README.md + - Honorable Members: + - Jean-Thierry Kéchichian: docs/community/jean-thierry/README.md diff --git a/src/OrchardCore.Build/Dependencies.props b/src/OrchardCore.Build/Dependencies.props index dfae2941805..11af59e2834 100644 --- a/src/OrchardCore.Build/Dependencies.props +++ b/src/OrchardCore.Build/Dependencies.props @@ -24,7 +24,7 @@ - + @@ -46,8 +46,8 @@ - - + + @@ -58,9 +58,9 @@ - - - + + + diff --git a/src/OrchardCore.Modules/OrchardCore.Forms/Activities/HttpRedirectToFormLocationTask.cs b/src/OrchardCore.Modules/OrchardCore.Forms/Activities/HttpRedirectToFormLocationTask.cs index 5c69952bae9..b1e6d64b7d5 100644 --- a/src/OrchardCore.Modules/OrchardCore.Forms/Activities/HttpRedirectToFormLocationTask.cs +++ b/src/OrchardCore.Modules/OrchardCore.Forms/Activities/HttpRedirectToFormLocationTask.cs @@ -32,8 +32,8 @@ public override IEnumerable GetPossibleOutcomes(WorkflowExecutionContex public string FormLocationKey { - get => GetProperty(); - set => SetProperty(value); + get => GetProperty(() => string.Empty); + set => SetProperty(value ?? string.Empty); } public override Task ExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext) @@ -41,10 +41,7 @@ public override Task ExecuteAsync(WorkflowExecutionCont if (workflowContext.Output.TryGetValue(WorkflowConstants.HttpFormLocationOutputKeyName, out var obj) && obj is Dictionary formLocations) { - // if no custom location-key was provided, we use empty string as the default key. - var location = FormLocationKey ?? string.Empty; - - if (formLocations.TryGetValue(location, out var path)) + if (formLocations.TryGetValue(FormLocationKey, out var path)) { _httpContextAccessor.HttpContext.Items[WorkflowConstants.FormOriginatedLocationItemsKey] = path; diff --git a/src/OrchardCore.Modules/OrchardCore.Forms/Views/Items/HttpRedirectToFormLocationTask.Fields.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Forms/Views/Items/HttpRedirectToFormLocationTask.Fields.Edit.cshtml index 0103d6f9622..287b87ea431 100644 --- a/src/OrchardCore.Modules/OrchardCore.Forms/Views/Items/HttpRedirectToFormLocationTask.Fields.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Forms/Views/Items/HttpRedirectToFormLocationTask.Fields.Edit.cshtml @@ -6,5 +6,5 @@ - @T["This value needs to correspond with the Form Location Key value utilized in the HTTP request event settings. Leave blank if the workflow handles a single form event."] + @T["This key name should be equal to the 'Form Location Key' of the HTTP request event. Leave blank if the workflow only handles a single form."] diff --git a/src/OrchardCore.Modules/OrchardCore.Workflows/Http/Activities/HttpRequestEvent.cs b/src/OrchardCore.Modules/OrchardCore.Workflows/Http/Activities/HttpRequestEvent.cs index 9eb46001d4b..a1fdcec43cf 100644 --- a/src/OrchardCore.Modules/OrchardCore.Workflows/Http/Activities/HttpRequestEvent.cs +++ b/src/OrchardCore.Modules/OrchardCore.Workflows/Http/Activities/HttpRequestEvent.cs @@ -55,8 +55,8 @@ public int TokenLifeSpan public string FormLocationKey { - get => GetProperty(); - set => SetProperty(value); + get => GetProperty(() => string.Empty); + set => SetProperty(value ?? string.Empty); } public override bool CanExecute(WorkflowExecutionContext workflowContext, ActivityContext activityContext) @@ -77,13 +77,10 @@ public override Task ExecuteAsync(WorkflowExecutionCont if (!workflowContext.Output.TryGetValue(WorkflowConstants.HttpFormLocationOutputKeyName, out var obj) || obj is not Dictionary formLocation) { - formLocation = new Dictionary(); + formLocation = []; } - // if no custom location-key was provided, we use empty string as the default key. - var location = FormLocationKey ?? string.Empty; - - formLocation[location] = GetLocationUrl(value); + formLocation[FormLocationKey] = GetLocationUrl(value); workflowContext.Output[WorkflowConstants.HttpFormLocationOutputKeyName] = formLocation; } diff --git a/src/OrchardCore.Modules/OrchardCore.Workflows/Views/Items/HttpRequestEvent.Fields.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Workflows/Views/Items/HttpRequestEvent.Fields.Edit.cshtml index 7b5f64ad025..1b1f4e79c6f 100644 --- a/src/OrchardCore.Modules/OrchardCore.Workflows/Views/Items/HttpRequestEvent.Fields.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Workflows/Views/Items/HttpRequestEvent.Fields.Edit.cshtml @@ -41,10 +41,10 @@
- + - @T["This key serves to differentiate the current form's location. Leave blank if the workflow handles a single form event."] + @T["This key name is used to store and then retrieve the current form's location. Leave blank if the workflow doesn't handle any form or a single one."]
diff --git a/src/docs/community/README.md b/src/docs/community/README.md new file mode 100644 index 00000000000..c2076e13565 --- /dev/null +++ b/src/docs/community/README.md @@ -0,0 +1,7 @@ +# Community + +The Orchard Core community is a thriving hub of collaboration and knowledge exchange, where diverse members come together to contribute to the growth and innovation of Orchard Core. This dynamic group is characterized by its shared passion for development and a commitment to supporting one another. In recognizing those who have played instrumental roles in our collective journey, we extend our gratitude to the following honorable member: + +## Honorable Members + +- [Jean-Thierry Kéchichian](jean-thierry/README.md) diff --git a/src/docs/community/jean-thierry/README.md b/src/docs/community/jean-thierry/README.md new file mode 100644 index 00000000000..e18782fef6d --- /dev/null +++ b/src/docs/community/jean-thierry/README.md @@ -0,0 +1,13 @@ +# In honor of Jean-Thierry Kéchichian + +![image](images/profile.png) + +It is with sadness that we grieve the loss of [Jean Thierry Kéchichian](https://github.com/jtkech) on the morning of December 24, 2023. His incredible kindness, unwavering assistance and vast knowledge have left an impression on our community. Jean-Thierry was a guiding light to provide detailed answers and educate those in search of guidance. His dedication to the Orchard Core project was unmatched. His contributions will forever resonate within the spaces he helped shape. + +Jean-Thierry never turned anyone away in need; he always extended a helping hand with grace. His legacy can be found not only in the lines of code he wrote, or the detailed comments he blessed us with. But, in the countless lives he touched through his generosity and warmth. The void left by his absence is immeasurable. We will deeply miss him in our community. + +As we navigate this time let us remember and celebrate the person that Jean Thierry was – a friend, mentor and true pillar of our community. His spirit will continue to live on through the projects he championed. The knowledge he generously shared. + +Rest peacefully Jean Thierry Kéchichian. Your memory will forever inspire us. + +If you like to recall the moments that he brought smiles to your face, the wisdom he shared with you, or the profound impact he had on you, [please leave your comment here](https://github.com/OrchardCMS/OrchardCore/issues/14954). diff --git a/src/docs/community/jean-thierry/images/profile.png b/src/docs/community/jean-thierry/images/profile.png new file mode 100644 index 00000000000..f0b457e3b9b Binary files /dev/null and b/src/docs/community/jean-thierry/images/profile.png differ diff --git a/src/docs/reference/modules/Elasticsearch/README.md b/src/docs/reference/modules/Elasticsearch/README.md index 4f5ec84dedb..63affe55328 100644 --- a/src/docs/reference/modules/Elasticsearch/README.md +++ b/src/docs/reference/modules/Elasticsearch/README.md @@ -43,7 +43,7 @@ You should get this result in Docker Desktop app: ### Set up Elasticsearch in Orchard Core -- Add Elastic Connection in the shell configuration (OrchardCore.Cms.Web appsettings.json file). [See Elasticsearch Configurations](#elasticsearch-configuration). +- Add Elastic Connection in the shell configuration (OrchardCore.Cms.Web `appsettings.json` file). [See Elasticsearch Configurations](#elasticsearch-configuration). - Start an Orchard Core instance with VS Code debugger - Go to Orchard Core features, Enable Elasticsearch. @@ -109,7 +109,7 @@ It doesn't delete existing entries from the index. { "steps":[ { - "name":"lucene-index-reset", + "name":"elastic-index-reset", "Indices":[ "IndexName1", "IndexName2" @@ -125,7 +125,7 @@ To reset all indices: { "steps":[ { - "name":"lucene-index-reset", + "name":"elastic-index-reset", "IncludeAll":true } ] @@ -141,7 +141,7 @@ Deletes and recreates the full index content. { "steps":[ { - "name":"lucene-index-rebuild", + "name":"elastic-index-rebuild", "Indices":[ "IndexName1", "IndexName2" @@ -157,7 +157,7 @@ To rebuild all indices: { "steps":[ { - "name":"lucene-index-rebuild", + "name":"elastic-index-rebuild", "IncludeAll":true } ] @@ -214,7 +214,7 @@ See: +## Recipe step + +Lucene indices can be created during recipe execution using the `ElasticIndexSettings` step. +Here is a sample step: + +```json +{ + "steps":[ + { + "name":"LuceneIndexSettings", + "Indices":[ + { + "Search":{ + "AnalyzerName":"standardanalyzer", + "IndexLatest":false, + "Culture":"", + "StoreSourceData":false, + "IndexedContentTypes":[ + "Article", + "BlogPost" + ] + } + } + ] + } + ] +} +``` + +## Lucene settings recipe step + +Here is an example for setting default search settings: + +```json +{ + "steps":[ + { + // Create the search settings. + "name":"Settings", + "LuceneSettings":{ + "SearchIndex":"search", + "DefaultSearchFields":[ + "Content.ContentItem.FullText" + ], + "AllowLuceneQueriesInSearch":false + } + } + ] +} +``` + +### Reset Lucene Index Step + +This Reset Index Step resets an Lucene index. +Restarts the indexing process from the beginning in order to update current content items. +It doesn't delete existing entries from the index. + +```json +{ + "steps":[ + { + "name":"lucene-index-reset", + "Indices":[ + "IndexName1", + "IndexName2" + ] + } + ] +} +``` + +To reset all indices: + +```json +{ + "steps":[ + { + "name":"lucene-index-reset", + "IncludeAll":true + } + ] +} +``` + +### Rebuild Lucene Index Step + +This Rebuild Index Step rebuilds an Lucene index. +Deletes and recreates the full index content. + +```json +{ + "steps":[ + { + "name":"lucene-index-rebuild", + "Indices":[ + "IndexName1", + "IndexName2" + ] + } + ] +} +``` + +To rebuild all indices: + +```json +{ + "steps":[ + { + "name":"lucene-index-rebuild", + "IncludeAll":true + } + ] +} +``` + ### Query Filters Query filters are used to retrieve records from Lucene without taking care of the boost values on them. So, it is retrieving records just like a SQL database would do. diff --git a/src/docs/requirements.txt b/src/docs/requirements.txt index 8bc6c1d45a9..f0fe0e369c0 100644 --- a/src/docs/requirements.txt +++ b/src/docs/requirements.txt @@ -1,7 +1,7 @@ mkdocs>=1.5.3 -mkdocs-material>=9.5.2 +mkdocs-material>=9.5.3 mkdocs-git-authors-plugin>=0.7.2 mkdocs-git-revision-date-localized-plugin>=1.2.2 -pymdown-extensions>=10.5 +pymdown-extensions>=10.7 mkdocs-exclude>=1.0.2 mdx_truly_sane_lists>=1.2 \ No newline at end of file diff --git a/src/docs/resources/libraries/README.md b/src/docs/resources/libraries/README.md index e945af7e673..448904e062e 100644 --- a/src/docs/resources/libraries/README.md +++ b/src/docs/resources/libraries/README.md @@ -19,7 +19,7 @@ The below table lists the different .NET libraries used in Orchard Core: | [HtmlSanitizer](https://github.com/mganss/HtmlSanitizer) | Cleans HTML to avoid XSS attacks. | 8.1.812-beta | [MIT](https://github.com/mganss/HtmlSanitizer/blob/master/LICENSE.md) | | [Image Sharp](https://github.com/SixLabors/ImageSharp.Web) | Middleware for ASP.NET-Core for image manipulation. | 3.1.0 |[Apache-2.0](https://github.com/SixLabors/ImageSharp.Web/blob/master/LICENSE) | | [Irony.Core](https://github.com/daxnet/irony) | A modified version of the Irony project with .NET Core support | 1.0.7 | [MIT](https://github.com/daxnet/irony/blob/master/LICENSE) | -| [Jint](https://github.com/sebastienros/jint) | Javascript Interpreter for .NET. | 3.0.0-beta-2057 | [MIT](https://github.com/sebastienros/jint/blob/dev/LICENSE) | +| [Jint](https://github.com/sebastienros/jint) | Javascript Interpreter for .NET. | 3.0.0-beta-2058 | [MIT](https://github.com/sebastienros/jint/blob/dev/LICENSE) | | [libphonenumber-csharp](https://github.com/twcclegg/libphonenumber-csharp) | .NET library for parsing, formatting, and validating international phone numbers | 8.13.27 | [Apache-2.0](https://github.com/twcclegg/libphonenumber-csharp/blob/main/LICENSE) | | [Lorem.NET for netstandard](https://github.com/trichards57/Lorem.Universal.NET) | A .NET library for all things random! | 4.0.80 | [MIT](https://github.com/trichards57/Lorem.Universal.NET/blob/master/license.md) | | [Lucene.Net](https://github.com/apache/lucenenet) | .NET full-text search engine. | 4.8.0-beta00016 | [Apache-2.0](https://github.com/apache/lucenenet/blob/master/LICENSE.txt) | @@ -34,8 +34,8 @@ The below table lists the different .NET libraries used in Orchard Core: | [NEST](https://github.com/elastic/elasticsearch-net) | .NET Library for Elasticsearch | 7.17.5 | [Apache-2.0](https://github.com/elastic/elasticsearch-net/blob/main/LICENSE.txt) | | [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) | Json.NET is a popular high-performance JSON framework for .NET | 13.0.3 | [MIT](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md) | | [NJsonSchema](https://github.com/RicoSuter/NJsonSchema) | JSON Schema reader, generator and validator for .NET | 10.9.0 | [MIT](https://github.com/RicoSuter/NJsonSchema/blob/master/LICENSE.md) | -| [NLog.Web.AspNetCore](https://github.com/NLog/NLog.Web/tree/master/src/NLog.Web.AspNetCore) | NLog integration for ASP.NET. | 5.3.7 | [BSD-3-Clause](https://github.com/NLog/NLog.Web/blob/master/LICENSE) | -| [Noda Time](https://github.com/nodatime/nodatime) | A better date and time API for .NET. | 3.1.9 | [Apache-2.0](https://github.com/nodatime/nodatime/blob/master/LICENSE.txt) | +| [NLog.Web.AspNetCore](https://github.com/NLog/NLog.Web/tree/master/src/NLog.Web.AspNetCore) | NLog integration for ASP.NET. | 5.3.8 | [BSD-3-Clause](https://github.com/NLog/NLog.Web/blob/master/LICENSE) | +| [Noda Time](https://github.com/nodatime/nodatime) | A better date and time API for .NET. | 3.1.10 | [Apache-2.0](https://github.com/nodatime/nodatime/blob/master/LICENSE.txt) | | [OpenIddict](https://github.com/openiddict/openiddict-core) | Flexible and versatile OAuth 2.0/OpenID Connect stack for .NET. | 5.0.1 | [Apache-2.0](https://github.com/openiddict/openiddict-core/blob/dev/LICENSE.md)) | | [PdfPig](https://github.com/UglyToad/PdfPig/) | Library to read and extract text and other content from PDF files. | 0.1.8 | [Apache-2.0](https://github.com/UglyToad/PdfPig/blob/master/LICENSE) | | [Serilog.AspNetCore](https://github.com/serilog/serilog-aspnetcore) | Serilog integration for ASP.NET Core. | 7.0.0 | [Apache-2.0](https://github.com/serilog/serilog-aspnetcore/blob/dev/LICENSE) | @@ -95,6 +95,6 @@ The below table lists the different Tests libraries: | [Cypress Orchard](https://www.npmjs.com/package/cypress-orchardcore) | A collection of cypress commands for Orchard Core. | 0.4.5 | MIT | | [Moq](https://github.com/moq/moq) | The most popular and friendly mocking framework for .NET. | 4.20.70 | [MIT](https://github.com/moq/moq/blob/main/LICENSE) | | [VS Test SDK](https://github.com/microsoft/vstest/) | Visual Studio Test Platform. | 17.8.0 | [MIT](https://github.com/microsoft/vstest/blob/master/LICENSE) | -| [xUnit](https://github.com/xunit/xunit) | Free, open source, community-focused unit testing tool for the .NET Framework. | 2.6.3 | [MIT](https://github.com/xunit/xunit/blob/main/LICENSE) | -| [xUnit Analyzers](https://github.com/xunit/xunit.analyzers) | Roslyn analyzers for xUnit.net. | 1.7.0 | [MIT](https://github.com/xunit/xunit.analyzers/blob/main/LICENSE) | -| [xUnit VS runner](https://github.com/xunit/visualstudio.xunit) | VSTest runner for xUnit.net. | 2.5.5 | [MIT](https://github.com/xunit/visualstudio.xunit/blob/main/License.txt) | +| [xUnit](https://github.com/xunit/xunit) | Free, open source, community-focused unit testing tool for the .NET Framework. | 2.6.4 | [MIT](https://github.com/xunit/xunit/blob/main/LICENSE) | +| [xUnit Analyzers](https://github.com/xunit/xunit.analyzers) | Roslyn analyzers for xUnit.net. | 1.8.0 | [MIT](https://github.com/xunit/xunit.analyzers/blob/main/LICENSE) | +| [xUnit VS runner](https://github.com/xunit/visualstudio.xunit) | VSTest runner for xUnit.net. | 2.5.6 | [MIT](https://github.com/xunit/visualstudio.xunit/blob/main/License.txt) |