From 811fd6e2978c0605d9c993ed2c83c8b2028aacea Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 31 Oct 2013 15:35:43 -0700 Subject: [PATCH] Shifting SearchSettingsPart --- .../Controllers/AdminController.cs | 2 +- .../Controllers/SearchController.cs | 2 +- .../Handlers/SearchSettingsPartHandler.cs | 8 +++++-- .../Modules/Orchard.Search/Migrations.cs | 24 ++----------------- .../Models/SearchSettingsPart.cs | 14 +++++------ .../Models/SearchSettingsPartRecord.cs | 17 ------------- .../Orchard.Search/Orchard.Search.csproj | 1 - .../Parts/Search.SiteSettings.cshtml | 2 +- .../Upgrade/Controllers/InfosetController.cs | 12 +++++++++- 9 files changed, 29 insertions(+), 53 deletions(-) delete mode 100644 src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPartRecord.cs diff --git a/src/Orchard.Web/Modules/Orchard.Search/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Search/Controllers/AdminController.cs index 9ff45b975..65b55c02d 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Controllers/AdminController.cs @@ -43,7 +43,7 @@ namespace Orchard.Search.Controllers { try { searchHits = _searchService.Query(searchText, pager.Page, pager.PageSize, - Services.WorkContext.CurrentSite.As().Record.FilterCulture, + Services.WorkContext.CurrentSite.As().FilterCulture, searchSettingsPart.SearchIndex, searchSettingsPart.SearchedFields, searchHit => searchHit); diff --git a/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs b/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs index 50da369b6..f4db09634 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Controllers/SearchController.cs @@ -57,7 +57,7 @@ namespace Orchard.Search.Controllers { try { searchHits = _searchService.Query(q, pager.Page, pager.PageSize, - Services.WorkContext.CurrentSite.As().Record.FilterCulture, + Services.WorkContext.CurrentSite.As().FilterCulture, searchSettingPart.SearchIndex, searchSettingPart.SearchedFields, searchHit => searchHit); diff --git a/src/Orchard.Web/Modules/Orchard.Search/Handlers/SearchSettingsPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Search/Handlers/SearchSettingsPartHandler.cs index 6671e4b80..0e8dacbe0 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Handlers/SearchSettingsPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Handlers/SearchSettingsPartHandler.cs @@ -8,10 +8,14 @@ using Orchard.ContentManagement.Handlers; namespace Orchard.Search.Handlers { [UsedImplicitly] public class SearchSettingsPartHandler : ContentHandler { - public SearchSettingsPartHandler(IRepository repository) { + public SearchSettingsPartHandler() { T = NullLocalizer.Instance; Filters.Add(new ActivatingFilter("Site")); - Filters.Add(StorageFilter.For(repository)); + + OnInitializing((context, part) => { + part.FilterCulture = false; + part.SearchedFields = new [] {"body, title"}; + }); } public Localizer T { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs index 941cc3e02..3af8b6d02 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Migrations.cs @@ -1,28 +1,13 @@ -using System.Linq; -using Orchard.ContentManagement.MetaData; -using Orchard.Data; +using Orchard.ContentManagement.MetaData; using Orchard.Data.Migration; using Orchard.Environment.Extensions; using Orchard.Indexing; -using Orchard.Search.Models; namespace Orchard.Search { public class SearchDataMigration : DataMigrationImpl { - private readonly IRepository _searchSettingsPartRecordRepository; - - public SearchDataMigration(IRepository searchSettingsPartRecordRepository) { - _searchSettingsPartRecordRepository = searchSettingsPartRecordRepository; - } public int Create() { - SchemaBuilder.CreateTable("SearchSettingsPartRecord", table => table - .ContentPartRecord() - .Column("FilterCulture") - .Column("SearchedFields", c => c.Unlimited()) - .Column("SearchIndex") - ); - ContentDefinitionManager.AlterTypeDefinition("SearchForm", cfg => cfg .WithPart("SearchFormPart") @@ -36,14 +21,9 @@ namespace Orchard.Search { public int UpdateFrom1() { SchemaBuilder.AlterTable("SearchSettingsPartRecord", table => table - .AddColumn("SearchIndex") + .AddColumn("SearchIndex", c => c.WithDefault("Search")) ); - var settings = _searchSettingsPartRecordRepository.Table.FirstOrDefault(); - if (settings != null) { - settings.SearchIndex = "Search"; - } - return 2; } } diff --git a/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPart.cs b/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPart.cs index fd07b9085..e4bd9cdd1 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPart.cs @@ -2,20 +2,20 @@ using Orchard.ContentManagement; namespace Orchard.Search.Models { - public class SearchSettingsPart : ContentPart { + public class SearchSettingsPart : ContentPart { public string[] SearchedFields { - get { return Record.SearchedFields.Split(new[] {',', ' '}, StringSplitOptions.RemoveEmptyEntries); } - set { Record.SearchedFields = String.Join(", ", value); } + get { return (Retrieve("SearchedFields") ?? "").Split(new[] {',', ' '}, StringSplitOptions.RemoveEmptyEntries); } + set { Store("SearchedFields", String.Join(", ", value)); } } public bool FilterCulture { - get { return Record.FilterCulture; } - set { Record.FilterCulture = value; } + get { return this.Retrieve(x => x.FilterCulture); } + set { this.Store(x => x.FilterCulture, value); } } public string SearchIndex { - get { return Record.SearchIndex; } - set { Record.SearchIndex = value; } + get { return this.Retrieve(x => x.SearchIndex); } + set { this.Store(x => x.SearchIndex, value); } } } } diff --git a/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPartRecord.cs b/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPartRecord.cs deleted file mode 100644 index d38a9b4c4..000000000 --- a/src/Orchard.Web/Modules/Orchard.Search/Models/SearchSettingsPartRecord.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Orchard.ContentManagement.Records; -using Orchard.Data.Conventions; - -namespace Orchard.Search.Models { - public class SearchSettingsPartRecord : ContentPartRecord { - public SearchSettingsPartRecord() { - FilterCulture = false; - SearchedFields = "body, title"; - } - - public virtual bool FilterCulture { get; set; } - - [StringLengthMax] - public virtual string SearchedFields { get; set; } - public virtual string SearchIndex { get; set; } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj index 80c9cb261..3e97d4f3f 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj +++ b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj @@ -77,7 +77,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Search/Views/EditorTemplates/Parts/Search.SiteSettings.cshtml b/src/Orchard.Web/Modules/Orchard.Search/Views/EditorTemplates/Parts/Search.SiteSettings.cshtml index fc604e037..2b365e545 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Views/EditorTemplates/Parts/Search.SiteSettings.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Search/Views/EditorTemplates/Parts/Search.SiteSettings.cshtml @@ -1,5 +1,5 @@ @using Orchard.Search.ViewModels -@model Orchard.Search.ViewModels.SearchSettingsViewModel +@model SearchSettingsViewModel @{ Script.Require("jQuery"); diff --git a/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs b/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs index 57ea87a3c..3fa21b6c5 100644 --- a/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs +++ b/src/Orchard.Web/Modules/Upgrade/Controllers/InfosetController.cs @@ -135,7 +135,17 @@ namespace Upgrade.Controllers { }); _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Messaging_MessageSettingsPartRecord"), null); - + + // SearchSettingsPartRecord + _upgradeService.ExecuteReader("SELECT * FROM " + _upgradeService.GetPrefixedTableName("Orchard_Search_SearchSettingsPartRecord"), + (reader, connection) => { + site.As().Store("SearchSettingsPart", "SearchedFields", (string)reader["SearchedFields"]); + site.As().Store("SearchSettingsPart", "FilterCulture", (bool)reader["FilterCulture"]); + site.As().Store("SearchSettingsPart", "SearchIndex", (string)reader["SearchIndex"]); + }); + + _upgradeService.ExecuteReader("DROP TABLE " + _upgradeService.GetPrefixedTableName("Orchard_Search_SearchSettingsPartRecord"), null); + _orchardServices.Notifier.Information(T("Site Settings migrated successfully")); return View();