From 30a95ed773ca8c391ad37622c7e5132d22bc36d9 Mon Sep 17 00:00:00 2001 From: yw80 Date: Fri, 17 Jul 2015 17:58:18 +0800 Subject: [PATCH 01/25] Correct CSS class name of MediaLibraryPickerField field Field CSS class name should use the technical name, rather than the display name. --- .../Views/Fields/MediaLibraryPicker.Summary.cshtml | 3 ++- .../Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml | 3 ++- .../Views/Fields/MediaLibraryPicker.cshtml | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml index c7558a982..5b4f5fd80 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml @@ -5,11 +5,12 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; string name = field.DisplayName; + string techName = field.Name; var mediaParts = field.MediaParts; } @if (mediaParts.Any()) { @name: -

+

@foreach (var contentItem in mediaParts) { @Display(BuildDisplay(contentItem, "Thumbnail")) } diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml index f899f48d9..d5d267795 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml @@ -5,12 +5,13 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; string name = field.DisplayName; + string techName = field.Name; var mediaParts = field.MediaParts; var returnUrl = ViewContext.RequestContext.HttpContext.Request.ToUrlString(); } @name: -

+

@if (mediaParts.Any()) { foreach (var contentItem in mediaParts) { diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml index e304ca454..bf6374a58 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml @@ -5,9 +5,10 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; string name = field.DisplayName; + string techName = field.Name; var contents = field.MediaParts; } -

+

@name

@foreach(var content in contents) {
From 70ea2df33413fba59cca2a20abe64246ad1672c9 Mon Sep 17 00:00:00 2001 From: jtkech Date: Mon, 20 Jul 2015 02:11:49 +0200 Subject: [PATCH 02/25] Update ContentItem.cs --- src/Orchard/ContentManagement/ContentItem.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Orchard/ContentManagement/ContentItem.cs b/src/Orchard/ContentManagement/ContentItem.cs index 3441ff3e9..30dc1c34e 100644 --- a/src/Orchard/ContentManagement/ContentItem.cs +++ b/src/Orchard/ContentManagement/ContentItem.cs @@ -52,10 +52,11 @@ namespace Orchard.ContentManagement { return true; } } - return false; + result = null; + return true; } return true; } } -} \ No newline at end of file +} From 28643ae7b885850e69f247d1a76f2f2a096cf1bf Mon Sep 17 00:00:00 2001 From: jtkech Date: Mon, 20 Jul 2015 02:23:56 +0200 Subject: [PATCH 03/25] Update ContentPart.cs --- src/Orchard/ContentManagement/ContentPart.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Orchard/ContentManagement/ContentPart.cs b/src/Orchard/ContentManagement/ContentPart.cs index 241edfa55..cdb4bbfbe 100644 --- a/src/Orchard/ContentManagement/ContentPart.cs +++ b/src/Orchard/ContentManagement/ContentPart.cs @@ -74,7 +74,8 @@ namespace Orchard.ContentManagement { return true; } } - return false; + result = null; + return true; } return true; From a0f42632e0cda20c623cb1fa94b9eb1efb8f8ae3 Mon Sep 17 00:00:00 2001 From: yw80 Date: Mon, 20 Jul 2015 15:43:23 +0800 Subject: [PATCH 04/25] Remove the blank line at the bottom of every page after the default theme rendering. Set a background color to #layout-footer In Site.css, you can clearly see the blank line at the bottom. --- src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css b/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css index 61bbfe837..4a52c7a28 100644 --- a/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css +++ b/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css @@ -66,6 +66,7 @@ header, footer, aside, nav, article { display: block; } content: "."; display: block; height: 0; + font-size: 0; clear: both; visibility: hidden; } @@ -75,6 +76,7 @@ header, footer, aside, nav, article { display: block; } content: "."; display: block; height: 0; + font-size: 0; clear: both; visibility: hidden; } From e8111cef5e159bf479c0e2e6dbfb99b37db6825c Mon Sep 17 00:00:00 2001 From: jtkech Date: Fri, 24 Jul 2015 02:54:01 +0200 Subject: [PATCH 05/25] Update DynamicContentItemTests.cs Adds an unit test for null checking on dynamic ContentItem / ContentPart properties --- .../DynamicContentItemTests.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/Orchard.Tests/ContentManagement/DynamicContentItemTests.cs b/src/Orchard.Tests/ContentManagement/DynamicContentItemTests.cs index ba90a629e..0c82d68e8 100644 --- a/src/Orchard.Tests/ContentManagement/DynamicContentItemTests.cs +++ b/src/Orchard.Tests/ContentManagement/DynamicContentItemTests.cs @@ -76,5 +76,39 @@ namespace Orchard.Tests.ContentManagement { Assert.That((object)testingPartDynamic, Is.AssignableTo>()); } + + + [Test] + public void NullCheckingCanBeDoneOnProperties() { + var contentItem = new ContentItem(); + var contentPart = new ContentPart { TypePartDefinition = new ContentTypePartDefinition(new ContentPartDefinition("FooPart"), new SettingsDictionary()) }; + var contentField = new ContentField { PartFieldDefinition = new ContentPartFieldDefinition(new ContentFieldDefinition("FooType"), "FooField", new SettingsDictionary()) }; + + dynamic item = contentItem; + dynamic part = contentPart; + + Assert.That(item.FooPart == null, Is.True); + Assert.That(item.FooPart != null, Is.False); + + contentItem.Weld(contentPart); + + Assert.That(item.FooPart == null, Is.False); + Assert.That(item.FooPart != null, Is.True); + Assert.That(item.FooPart, Is.SameAs(contentPart)); + + Assert.That(part.FooField == null, Is.True); + Assert.That(part.FooField != null, Is.False); + Assert.That(item.FooPart.FooField == null, Is.True); + Assert.That(item.FooPart.FooField != null, Is.False); + + contentPart.Weld(contentField); + + Assert.That(part.FooField == null, Is.False); + Assert.That(part.FooField != null, Is.True); + Assert.That(item.FooPart.FooField == null, Is.False); + Assert.That(item.FooPart.FooField != null, Is.True); + Assert.That(part.FooField, Is.SameAs(contentField)); + Assert.That(item.FooPart.FooField, Is.SameAs(contentField)); + } } } From 879e35dcc03d2a0cb84c865a7f8d33a88f868cfc Mon Sep 17 00:00:00 2001 From: yw80 Date: Fri, 24 Jul 2015 12:21:31 +0800 Subject: [PATCH 06/25] Correct CSS class name of MediaLibraryPickerField field Field CSS class name should use the technical name, rather than the display name. --- .../Views/Fields/MediaLibraryPicker.Summary.cshtml | 8 ++++---- .../Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml | 8 ++++---- .../Views/Fields/MediaLibraryPicker.cshtml | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml index 5b4f5fd80..3d5c29d66 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.Summary.cshtml @@ -4,13 +4,13 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; - string name = field.DisplayName; - string techName = field.Name; + string displayName = field.DisplayName; + string name = field.Name; var mediaParts = field.MediaParts; } @if (mediaParts.Any()) { -@name: -

+@displayName: +

@foreach (var contentItem in mediaParts) { @Display(BuildDisplay(contentItem, "Thumbnail")) } diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml index d5d267795..1481eaa9c 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.SummaryAdmin.cshtml @@ -4,14 +4,14 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; - string name = field.DisplayName; - string techName = field.Name; + string displayName = field.DisplayName; + string name = field.Name; var mediaParts = field.MediaParts; var returnUrl = ViewContext.RequestContext.HttpContext.Request.ToUrlString(); } -@name: -

+@displayName: +

@if (mediaParts.Any()) { foreach (var contentItem in mediaParts) { diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml index bf6374a58..b0f28d16a 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Fields/MediaLibraryPicker.cshtml @@ -4,12 +4,12 @@ @{ var field = (MediaLibraryPickerField) Model.ContentField; - string name = field.DisplayName; - string techName = field.Name; + string displayName = field.DisplayName; + string name = field.Name; var contents = field.MediaParts; } -

-

@name

+
+

@displayName

@foreach(var content in contents) {
@Display(BuildDisplay(content, "Summary")) From 8a8b0f91c63c07f40f2bc364e0c0a9bf64abf554 Mon Sep 17 00:00:00 2001 From: Sergio Navarro Date: Sat, 25 Jul 2015 08:54:31 +0200 Subject: [PATCH 07/25] Fixed #5140 Recipe from Migrations didn't work --- src/Orchard/Environment/DefaultOrchardHost.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Orchard/Environment/DefaultOrchardHost.cs b/src/Orchard/Environment/DefaultOrchardHost.cs index 2e10d25d2..977515317 100644 --- a/src/Orchard/Environment/DefaultOrchardHost.cs +++ b/src/Orchard/Environment/DefaultOrchardHost.cs @@ -143,6 +143,10 @@ namespace Orchard.Environment { catch (Exception e) { Logger.Error(e, "A tenant could not be started: " + settings.Name); } + while (_processingEngine.AreTasksPending()) { + Logger.Debug("Processing pending task after activate Shell"); + _processingEngine.ExecuteNextTask(); + } }); } // no settings, run the Setup From cc70480126a226628c95ad5bd9833bd8372c519d Mon Sep 17 00:00:00 2001 From: Thierry Fleury Date: Mon, 10 Aug 2015 15:28:19 +0200 Subject: [PATCH 08/25] Fixes 5591 : ContentType's name encoding --- src/Orchard.Web/Core/Contents/Views/Admin/Create.cshtml | 3 +-- src/Orchard.Web/Core/Contents/Views/Admin/List.cshtml | 6 +++--- .../Modules/Orchard.ContentTypes/Views/Admin/Edit.cshtml | 2 +- .../Orchard.ContentTypes/Views/Admin/EditField.cshtml | 2 +- .../Views/DisplayTemplates/EditTypeViewModel.cshtml | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Orchard.Web/Core/Contents/Views/Admin/Create.cshtml b/src/Orchard.Web/Core/Contents/Views/Admin/Create.cshtml index 68c10887c..9bb4def2a 100644 --- a/src/Orchard.Web/Core/Contents/Views/Admin/Create.cshtml +++ b/src/Orchard.Web/Core/Contents/Views/Admin/Create.cshtml @@ -4,9 +4,8 @@ @{ ContentItem contentItem = Model.ContentItem; var typeDisplayName = contentItem.TypeDefinition.DisplayName ?? contentItem.ContentType.CamelFriendly(); - var pageTitle = T("New {0}", typeDisplayName); - Layout.Title = (string)pageTitle.Text; + Layout.Title = T("New {0}", Html.Raw(typeDisplayName)).Text; } @using (Html.BeginFormAntiForgeryPost(Url.Action("Create", new { ReturnUrl = Request.QueryString["ReturnUrl"] }), FormMethod.Post, new { enctype = "multipart/form-data" })) { diff --git a/src/Orchard.Web/Core/Contents/Views/Admin/List.cshtml b/src/Orchard.Web/Core/Contents/Views/Admin/List.cshtml index e091e129f..8b4f6bc8e 100644 --- a/src/Orchard.Web/Core/Contents/Views/Admin/List.cshtml +++ b/src/Orchard.Web/Core/Contents/Views/Admin/List.cshtml @@ -4,13 +4,13 @@ var pageTitle = T("Manage Content"); var createLinkText = T("Create New Content"); if (!string.IsNullOrWhiteSpace(typeDisplayName)) { - pageTitle = T("Manage {0} Content", typeDisplayName); - createLinkText = T("Create New {0}", typeDisplayName); + pageTitle = T("Manage {0} Content", Html.Raw(typeDisplayName)); + createLinkText = T("Create New {0}", Html.Raw(typeDisplayName)); } IEnumerable cultures = Model.Options.Cultures; - Layout.Title = pageTitle; + Layout.Title = pageTitle.Text; }
diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Edit.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Edit.cshtml index 14535ea78..8de35fe22 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Edit.cshtml @@ -2,7 +2,7 @@ @{ Style.Require("ContentTypesAdmin"); Script.Require("jQuery"); - Layout.Title = T("Edit Content Type - {0}", Model.DisplayName).ToString(); + Layout.Title = T("Edit Content Type - {0}", Html.Raw(Model.DisplayName)).Text; }
diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditField.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditField.cshtml index 945ec905f..725e6b2cf 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditField.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditField.cshtml @@ -3,7 +3,7 @@ @{ Style.Require("ContentTypesAdmin"); - Layout.Title = T("Edit Field \"{0}\"", Model.Name).ToString(); + Layout.Title = T("Edit Field \"{0}\"", Html.Raw(Model.DisplayName)).ToString(); } @using (Html.BeginFormAntiForgeryPost()) { diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/DisplayTemplates/EditTypeViewModel.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/DisplayTemplates/EditTypeViewModel.cshtml index bfe7535cc..a1d0804dc 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/DisplayTemplates/EditTypeViewModel.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/DisplayTemplates/EditTypeViewModel.cshtml @@ -9,7 +9,7 @@

@Model.DisplayName

@if (!string.IsNullOrWhiteSpace(stereotype)) { - @stereotype} @if (creatable) { -

@Html.ActionLink(T("Create New {0}", Model.DisplayName).Text, "Create", new {area = "Contents", id = Model.Name})

+

@Html.ActionLink(T("Create New {0}", Html.Raw(Model.DisplayName)).Text, "Create", new {area = "Contents", id = Model.Name})

}