From 13d9233c7e06ce1cdcf2795800149d511714a031 Mon Sep 17 00:00:00 2001 From: Nicholas Mayne Date: Wed, 19 Jun 2013 00:54:11 +0100 Subject: [PATCH] #19793: 2 parts: 1. Making IsInternal a update to make sure everyone has it. 2. Changing the view model to be like the Terms one. Seems Record is null and that throws an exception Work Item: 19793 --HG-- branch : 1.x --- .../Controllers/AdminController.cs | 7 ++++-- .../Modules/Orchard.Taxonomies/Migrations.cs | 18 ++++++++++++++- .../ViewModels/TaxonomyAdminIndexViewModel.cs | 7 ++++-- .../Views/Admin/Index.cshtml | 22 +++++++++---------- 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/AdminController.cs index 38320cae9..e878ce0ab 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/AdminController.cs @@ -55,7 +55,7 @@ namespace Orchard.Taxonomies.Controllers { return new HttpUnauthorizedResult(); foreach (var entry in checkedEntries) { - _taxonomyService.DeleteTaxonomy(entry.Taxonomy); + _taxonomyService.DeleteTaxonomy(_taxonomyService.GetTaxonomy(entry.Id)); } break; @@ -187,7 +187,10 @@ namespace Orchard.Taxonomies.Controllers { private static TaxonomyEntry CreateTaxonomyEntry(TaxonomyPart taxonomy) { return new TaxonomyEntry { - Taxonomy = taxonomy, + Id = taxonomy.Id, + Name = taxonomy.Name, + IsInternal = taxonomy.IsInternal, + ContentItem = taxonomy.ContentItem, IsChecked = false, }; } diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs index f0219fd20..407de3f74 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs @@ -59,7 +59,17 @@ namespace Orchard.Taxonomies { .WithSetting("Stereotype", "Widget") ); - return 1; + ContentDefinitionManager.AlterTypeDefinition("TaxonomyNavigationMenuItem", + cfg => cfg + .WithPart("TaxonomyNavigationPart") + .WithPart("MenuPart") + .WithPart("CommonPart") + .DisplayedAs("Taxonomy Link") + .WithSetting("Description", "Injects menu items from a Taxonomy") + .WithSetting("Stereotype", "MenuItem") + ); + + return 3; } public int UpdateFrom1() { @@ -75,5 +85,11 @@ namespace Orchard.Taxonomies { return 2; } + + public int UpdateFrom2() { + SchemaBuilder.AlterTable("TaxonomyPartRecord", table => table.AddColumn("IsInternal")); + + return 3; + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/ViewModels/TaxonomyAdminIndexViewModel.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/ViewModels/TaxonomyAdminIndexViewModel.cs index 544fa0375..a7d064570 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/ViewModels/TaxonomyAdminIndexViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/ViewModels/TaxonomyAdminIndexViewModel.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Orchard.Taxonomies.Models; +using Orchard.ContentManagement; namespace Orchard.Taxonomies.ViewModels { public class TaxonomyAdminIndexViewModel { @@ -8,7 +8,10 @@ namespace Orchard.Taxonomies.ViewModels { } public class TaxonomyEntry { - public TaxonomyPart Taxonomy { get; set; } + public int Id { get; set; } + public bool IsInternal { get; set; } + public string Name { get; set; } + public ContentItem ContentItem { get; set; } public bool IsChecked { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.Taxonomies/Views/Admin/Index.cshtml index 7d86aa4aa..39c29bd1f 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Views/Admin/Index.cshtml @@ -31,27 +31,27 @@ @foreach (var taxonomyEntry in Model.Taxonomies) { ti = taxonomyIndex; - + - - @if (!taxonomyEntry.Taxonomy.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { + + @if (!taxonomyEntry.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { } - @if (!taxonomyEntry.Taxonomy.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { - @Html.ActionLink(taxonomyEntry.Taxonomy.Name, "Index", "TermAdmin", new { taxonomyId = taxonomyEntry.Taxonomy.Id }, new object { }) + @if (!taxonomyEntry.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { + @Html.ActionLink(taxonomyEntry.Name, "Index", "TermAdmin", new { taxonomyId = taxonomyEntry.Id }, new object { }) } else { - @Html.ItemDisplayText(taxonomyEntry.Taxonomy) + @Html.ItemDisplayText(taxonomyEntry.ContentItem) } - @if (!taxonomyEntry.Taxonomy.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { - @Html.ItemEditLink(T("Edit").Text, taxonomyEntry.Taxonomy) | - @Html.ActionLink(T("Terms").Text, "Index", "TermAdmin", new { taxonomyId = taxonomyEntry.Taxonomy.Id }, new object { }) | - @Html.ActionLink(T("Delete").Text, "Delete", new { id = taxonomyEntry.Taxonomy.Id }, new object { }) | - @Html.ActionLink(T("Import").Text, "Import", new { id = taxonomyEntry.Taxonomy.Id }, new object { }) + @if (!taxonomyEntry.IsInternal || Authorizer.Authorize(Orchard.Security.StandardPermissions.SiteOwner)) { + @Html.ItemEditLink(T("Edit").Text, taxonomyEntry.ContentItem) | + @Html.ActionLink(T("Terms").Text, "Index", "TermAdmin", new { taxonomyId = taxonomyEntry.Id }, new object { }) | + @Html.ActionLink(T("Delete").Text, "Delete", new { id = taxonomyEntry.Id }, new object { }) | + @Html.ActionLink(T("Import").Text, "Import", new { id = taxonomyEntry.Id }, new object { }) }