From 77fd99f804fa18f9873bd0a293a587e0b9fd5932 Mon Sep 17 00:00:00 2001 From: Dave Reed Date: Fri, 15 Oct 2010 15:37:47 -0700 Subject: [PATCH 01/15] Removing 2 warnings --HG-- branch : dev --- src/Orchard/ContentManagement/Handlers/ContentItemTemplates.cs | 2 +- src/Orchard/InvokeExtensions.cs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Orchard/ContentManagement/Handlers/ContentItemTemplates.cs b/src/Orchard/ContentManagement/Handlers/ContentItemTemplates.cs index f01bbc48d..00669600b 100644 --- a/src/Orchard/ContentManagement/Handlers/ContentItemTemplates.cs +++ b/src/Orchard/ContentManagement/Handlers/ContentItemTemplates.cs @@ -6,7 +6,7 @@ namespace Orchard.ContentManagement.Handlers { public class ContentItemTemplates : TemplateFilterBase where TContent : class, IContent { private readonly string _templateName; // todo: (heskew) use _prefix? - private readonly string _prefix; + //private readonly string _prefix; private readonly string[] _displayTypes; private Action _updater; diff --git a/src/Orchard/InvokeExtensions.cs b/src/Orchard/InvokeExtensions.cs index 1819ba086..395d92f04 100644 --- a/src/Orchard/InvokeExtensions.cs +++ b/src/Orchard/InvokeExtensions.cs @@ -42,7 +42,6 @@ namespace Orchard { ex is StackOverflowException || ex is AccessViolationException || ex is AppDomainUnloadedException || - ex is ExecutionEngineException || ex is ThreadAbortException || ex is SecurityException || ex is SEHException; From cf06414fc76c48497918694206eb073e0a87ac15 Mon Sep 17 00:00:00 2001 From: Jonathan Wall Date: Fri, 15 Oct 2010 15:41:55 -0700 Subject: [PATCH 02/15] Updated CSS for asides. --HG-- branch : dev --- src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css b/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css index bd44928bd..07ddc30c2 100644 --- a/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css +++ b/src/Orchard.Web/Themes/TheThemeMachine/Styles/Site.css @@ -259,13 +259,13 @@ nav ul ***************************************************************/ /* Has Aside */ -.has-aside #layout-content +.has-aside-two #layout-content { width: 600px; float: left; } -.has-aside .aside-second +.has-aside-two .aside-second { width: 360px; float: right; @@ -276,6 +276,11 @@ nav ul float: right; } +.has-aside-one .aside-first { + width: 360px; + float: left; +} + .has-asides #layout-content { width: 600px; @@ -412,7 +417,6 @@ button:focus, .button:focus { } ul.comments, form.comment { - margin:1.2em 0 1.2em 1.8em; list-style: none; } From dd01e518697c56b36926d1d706b40d86f0ec35a6 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 15 Oct 2010 15:48:29 -0700 Subject: [PATCH 03/15] Correcting Part editing - http://orchardqa.codeplex.com/workitem/102 --HG-- branch : dev --- .../Orchard.ContentTypes.csproj | 4 + .../ViewModels/EditFieldViewModel.cs | 16 ++++ .../ViewModels/EditPartFieldViewModel.cs | 30 +++++++ .../ViewModels/EditPartViewModel.cs | 34 ++++++++ .../ViewModels/EditTypePartViewModel.cs | 26 ++++++ .../ViewModels/EditTypeViewModel.cs | 85 ------------------- .../Views/Admin/EditPart.cshtml | 18 +++- .../EditorTemplates/TypePartField.cshtml | 2 +- 8 files changed, 126 insertions(+), 89 deletions(-) create mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditFieldViewModel.cs create mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartFieldViewModel.cs create mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartViewModel.cs create mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypePartViewModel.cs diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj index 6180ebec2..0dfae91f7 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj @@ -80,6 +80,10 @@ + + + + diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditFieldViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditFieldViewModel.cs new file mode 100644 index 000000000..5b0f7bcbf --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditFieldViewModel.cs @@ -0,0 +1,16 @@ +using Orchard.ContentManagement.MetaData.Models; + +namespace Orchard.ContentTypes.ViewModels { + + public class EditFieldViewModel { + public EditFieldViewModel() { } + + public EditFieldViewModel(ContentFieldDefinition contentFieldDefinition) { + Name = contentFieldDefinition.Name; + _Definition = contentFieldDefinition; + } + + public string Name { get; set; } + public ContentFieldDefinition _Definition { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartFieldViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartFieldViewModel.cs new file mode 100644 index 000000000..982c7e603 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartFieldViewModel.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.ContentManagement.ViewModels; + +namespace Orchard.ContentTypes.ViewModels { + public class EditPartFieldViewModel { + + public EditPartFieldViewModel() { + Settings = new SettingsDictionary(); + } + + public EditPartFieldViewModel(int index, ContentPartFieldDefinition field) { + Index = index; + Name = field.Name; + FieldDefinition = new EditFieldViewModel(field.FieldDefinition); + Settings = field.Settings; + _Definition = field; + } + + public int Index { get; set; } + public string Prefix { get { return "Fields[" + Index + "]"; } } + public EditPartViewModel Part { get; set; } + + public string Name { get; set; } + public IEnumerable Templates { get; set; } + public EditFieldViewModel FieldDefinition { get; set; } + public SettingsDictionary Settings { get; set; } + public ContentPartFieldDefinition _Definition { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartViewModel.cs new file mode 100644 index 000000000..624f791e4 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditPartViewModel.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using System.Linq; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.ContentManagement.ViewModels; +using Orchard.Utility.Extensions; +using Orchard.ContentTypes.Extensions; + +namespace Orchard.ContentTypes.ViewModels { + public class EditPartViewModel { + public EditPartViewModel() { + Fields = new List(); + Settings = new SettingsDictionary(); + } + + public EditPartViewModel(ContentPartDefinition contentPartDefinition) { + Name = contentPartDefinition.Name; + Fields = contentPartDefinition.Fields.Select((f, i) => new EditPartFieldViewModel(i, f) { Part = this }).ToList(); + Settings = contentPartDefinition.Settings; + _Definition = contentPartDefinition; + } + + public string Prefix { get { return "PartDefinition"; } } + public string Name { get; set; } + private string _displayName; + public string DisplayName { + get { return !string.IsNullOrWhiteSpace(_displayName) ? _displayName : Name.TrimEnd("Part").CamelFriendly(); } + set { _displayName = value; } + } + public IEnumerable Templates { get; set; } + public IEnumerable Fields { get; set; } + public SettingsDictionary Settings { get; set; } + public ContentPartDefinition _Definition { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypePartViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypePartViewModel.cs new file mode 100644 index 000000000..4a735195a --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypePartViewModel.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.ContentManagement.ViewModels; + +namespace Orchard.ContentTypes.ViewModels { + public class EditTypePartViewModel { + public EditTypePartViewModel() { + Settings = new SettingsDictionary(); + } + + public EditTypePartViewModel(int index, ContentTypePartDefinition part) { + Index = index; + PartDefinition = new EditPartViewModel(part.PartDefinition); + Settings = part.Settings; + _Definition = part; + } + + public int Index { get; set; } + public string Prefix { get { return "Parts[" + Index + "]"; } } + public EditPartViewModel PartDefinition { get; set; } + public SettingsDictionary Settings { get; set; } + public EditTypeViewModel Type { get; set; } + public IEnumerable Templates { get; set; } + public ContentTypePartDefinition _Definition { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs index 7404c5f46..4c6634530 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Linq; using Orchard.ContentManagement.MetaData.Models; using Orchard.ContentManagement.ViewModels; -using Orchard.ContentTypes.Extensions; -using Orchard.Utility.Extensions; namespace Orchard.ContentTypes.ViewModels { public class EditTypeViewModel { @@ -46,87 +44,4 @@ namespace Orchard.ContentTypes.ViewModels { } } - public class EditTypePartViewModel { - public EditTypePartViewModel() { - Settings = new SettingsDictionary(); - } - - public EditTypePartViewModel(int index, ContentTypePartDefinition part) { - Index = index; - PartDefinition = new EditPartViewModel(part.PartDefinition); - Settings = part.Settings; - _Definition = part; - } - - public int Index { get; set; } - public string Prefix { get { return "Parts[" + Index + "]"; } } - public EditPartViewModel PartDefinition { get; set; } - public SettingsDictionary Settings { get; set; } - public EditTypeViewModel Type { get; set; } - public IEnumerable Templates { get; set; } - public ContentTypePartDefinition _Definition { get; private set; } - } - - public class EditPartViewModel { - public EditPartViewModel() { - Fields = new List(); - Settings = new SettingsDictionary(); - } - - public EditPartViewModel(ContentPartDefinition contentPartDefinition) { - Name = contentPartDefinition.Name; - Fields = contentPartDefinition.Fields.Select((f, i) => new EditPartFieldViewModel(i, f) { Part = this }).ToList(); - Settings = contentPartDefinition.Settings; - _Definition = contentPartDefinition; - } - - public string Prefix { get { return "PartDefinition"; } } - public string Name { get; set; } - private string _displayName; - public string DisplayName { - get { return !string.IsNullOrWhiteSpace(_displayName) ? _displayName : Name.TrimEnd("Part").CamelFriendly(); } - set { _displayName = value; } - } - public IEnumerable Templates { get; set; } - public IEnumerable Fields { get; set; } - public SettingsDictionary Settings { get; set; } - public ContentPartDefinition _Definition { get; private set; } - } - - public class EditPartFieldViewModel { - - public EditPartFieldViewModel() { - Settings = new SettingsDictionary(); - } - - public EditPartFieldViewModel(int index, ContentPartFieldDefinition field) { - Index = index; - Name = field.Name; - FieldDefinition = new EditFieldViewModel(field.FieldDefinition); - Settings = field.Settings; - _Definition = field; - } - - public int Index { get; set; } - public string Prefix { get { return "Fields[" + Index + "]"; } } - public EditPartViewModel Part { get; set; } - - public string Name { get; set; } - public IEnumerable Templates { get; set; } - public EditFieldViewModel FieldDefinition { get; set; } - public SettingsDictionary Settings { get; set; } - public ContentPartFieldDefinition _Definition { get; private set; } - } - - public class EditFieldViewModel { - public EditFieldViewModel() { } - - public EditFieldViewModel(ContentFieldDefinition contentFieldDefinition) { - Name = contentFieldDefinition.Name; - _Definition = contentFieldDefinition; - } - - public string Name { get; set; } - public ContentFieldDefinition _Definition { get; private set; } - } } diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditPart.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditPart.cshtml index 5cf769f41..6efdbf882 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditPart.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/EditPart.cshtml @@ -1,4 +1,5 @@ @model Orchard.ContentTypes.ViewModels.EditPartViewModel +@{ Style.Require("ContentTypesAdmin"); }

@Html.TitleForPage(T("Edit Part").ToString())

@@ -6,19 +7,30 @@ @Html.ValidationSummary()
- @* has unintended consequences (renamging the part) - changing the name creates a new part of that name *@ + @* has unintended consequences (renaming the part) - changing the name creates a new part of that name *@ @Html.TextBoxFor(m => m.Name, new {@class = "textMedium", disabled = "disabled"}) @Html.HiddenFor(m => m.Name)
- @DisplayChildren(Model.Templates) + @{ Html.RenderTemplates(Model.Templates); }

@T("Fields")

@Html.ActionLink(T("Add").Text, "AddFieldTo", new { area = "Orchard.ContentTypes", id = Model.Name }, new { @class = "button" })
- @DisplayChildren(Model.Fields) + @Html.EditorFor(m => m.Fields, "Fields", "")
} + +@using(Script.Foot()){ + +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/TypePartField.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/TypePartField.cshtml index 4d9f1db2d..3daec4aea 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/TypePartField.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/TypePartField.cshtml @@ -1,7 +1,7 @@ @model Orchard.ContentTypes.ViewModels.EditPartFieldViewModel

@Model.Name (@Model.FieldDefinition.Name)

@if (Model.Templates.Any()) { -
@Html.RenderTemplates(Model.Templates); +
@{Html.RenderTemplates(Model.Templates);}
} @Html.HiddenFor(m => m.Name)@Html.HiddenFor(m => m.FieldDefinition.Name)@Html.HiddenFor(m => m.Index)
\ No newline at end of file From e8f6150f44397fa7b069a7d72401322237ab0df6 Mon Sep 17 00:00:00 2001 From: Suha Can Date: Fri, 15 Oct 2010 15:55:47 -0700 Subject: [PATCH 04/15] - Migrating Roles to the new shape API. --HG-- branch : dev --- .../Drivers/UserRolesPartDriver.cs | 45 +++++++++---------- .../Orchard.Roles/Orchard.Roles.csproj | 4 ++ .../Modules/Orchard.Roles/Placement.info | 3 ++ 3 files changed, 28 insertions(+), 24 deletions(-) create mode 100644 src/Orchard.Web/Modules/Orchard.Roles/Placement.info diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs index 1b5109d90..cedc19a43 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs @@ -18,6 +18,7 @@ namespace Orchard.Roles.Drivers { private readonly INotifier _notifier; private readonly IAuthenticationService _authenticationService; private readonly IAuthorizationService _authorizationService; + private const string TemplateName = "Parts/Roles.UserRoles"; public UserRolesPartDriver( IRepository userRolesRepository, @@ -46,20 +47,19 @@ namespace Orchard.Roles.Drivers { if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRolesPart)) return null; - var roles = - _roleService.GetRoles().Select( - x => new UserRoleEntry { - RoleId = x.Id, - Name = x.Name, - Granted = userRolesPart.Roles.Contains(x.Name) - }); - - var model = new UserRolesViewModel { - User = userRolesPart.As(), - UserRoles = userRolesPart, - Roles = roles.ToList(), - }; - return ContentPartTemplate(model, "Parts/Roles.UserRoles"); + return ContentShape("Parts_Roles_UserRoles_Edit", + () => { + var roles =_roleService.GetRoles().Select(x => new UserRoleEntry { + RoleId = x.Id, + Name = x.Name, + Granted = userRolesPart.Roles.Contains(x.Name)}); + var model = new UserRolesViewModel { + User = userRolesPart.As(), + UserRoles = userRolesPart, + Roles = roles.ToList(), + }; + return shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix); + }); } protected override DriverResult Editor(UserRolesPart userRolesPart, IUpdateModel updater, dynamic shapeHelper) { @@ -67,29 +67,26 @@ namespace Orchard.Roles.Drivers { if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRolesPart)) return null; - var model = new UserRolesViewModel { - User = userRolesPart.As(), - UserRoles = userRolesPart, - }; - + var model = BuildEditorViewModel(userRolesPart); if (updater.TryUpdateModel(model, Prefix, null, null)) { - var currentUserRoleRecords = _userRolesRepository.Fetch(x => x.UserId == model.User.Id); var currentRoleRecords = currentUserRoleRecords.Select(x => x.Role); var targetRoleRecords = model.Roles.Where(x => x.Granted).Select(x => _roleService.GetRole(x.RoleId)); - foreach (var addingRole in targetRoleRecords.Where(x => !currentRoleRecords.Contains(x))) { _notifier.Warning(T("Adding role {0} to user {1}", addingRole.Name, userRolesPart.As().UserName)); _userRolesRepository.Create(new UserRolesPartRecord { UserId = model.User.Id, Role = addingRole }); } - foreach (var removingRole in currentUserRoleRecords.Where(x => !targetRoleRecords.Contains(x.Role))) { _notifier.Warning(T("Removing role {0} from user {1}", removingRole.Role.Name, userRolesPart.As().UserName)); _userRolesRepository.Delete(removingRole); } - } - return ContentPartTemplate(model, "Parts/Roles.UserRoles"); + return ContentShape("Parts_Roles_UserRoles_Edit", + () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix)); + } + + private static UserRolesViewModel BuildEditorViewModel(UserRolesPart userRolesPart) { + return new UserRolesViewModel { User = userRolesPart.As(), UserRoles = userRolesPart }; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj index 5276d0806..aeea6b32c 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj +++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj @@ -39,6 +39,7 @@ AllRules.ruleset + @@ -108,6 +109,9 @@ Orchard.Core + + +