mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-01-22 21:02:08 +08:00
Changes to tests for MVC 2 value provider changes
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4044578
This commit is contained in:
@@ -99,6 +99,7 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Roles\Controllers\AdminControllerTests.cs" />
|
||||
<Compile Include="Roles\Services\RoleServiceTests.cs" />
|
||||
<Compile Include="Values.cs" />
|
||||
<Compile Include="Users\Controllers\AdminControllerTests.cs" />
|
||||
<Compile Include="Users\Services\MembershipServiceTests.cs" />
|
||||
<Compile Include="XmlRpc\Controllers\HomeControllerTests.cs" />
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
@@ -83,7 +84,7 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
}
|
||||
}
|
||||
|
||||
class StubAuthorizer: IAuthorizer {
|
||||
class StubAuthorizer : IAuthorizer {
|
||||
#region IAuthorizer Members
|
||||
|
||||
public bool Authorize(Permission permission, LocalizedString message) {
|
||||
@@ -103,8 +104,11 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
|
||||
[Test]
|
||||
public void CreateShouldReturnViewWithErrorIfSlugIsNull() {
|
||||
var input = new FormCollection { { ReflectOn<PageCreateViewModel>.NameOf(m => m.Slug), null } };
|
||||
var result = _controller.Create(input);
|
||||
_controller.ValueProvider = Values.From(new PageCreateViewModel {
|
||||
Slug = null
|
||||
});
|
||||
|
||||
var result = _controller.CreatePOST();
|
||||
Assert.That(result, Is.TypeOf<ViewResult>());
|
||||
Assert.That(_controller.ModelState.IsValid, Is.False);
|
||||
}
|
||||
@@ -130,12 +134,12 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
|
||||
var pageDoesntExist = _pageManager.GetPublishedBySlug("slug2");
|
||||
|
||||
var input = new FormCollection {
|
||||
{ ReflectOn<PageCreateViewModel>.NameOf(m => m.Slug), "slug2" },
|
||||
{ ReflectOn<PageCreateViewModel>.NameOf(m => m.TemplateName), "threecolumn" }
|
||||
};
|
||||
|
||||
var result = _controller.Create(input);
|
||||
_controller.ValueProvider = Values.From(new PageCreateViewModel {
|
||||
Title = "title2",
|
||||
Slug = "slug2",
|
||||
TemplateName = "threecolumn",
|
||||
});
|
||||
var result = _controller.CreatePOST();
|
||||
|
||||
Assert.That(result, Is.TypeOf<RedirectToRouteResult>());
|
||||
var redirect = (RedirectToRouteResult)result;
|
||||
@@ -227,15 +231,21 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1));
|
||||
|
||||
// Build controller input
|
||||
var input = new FormCollection { { ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.PublishNow.ToString() } };
|
||||
|
||||
var options = new PageIndexOptions {
|
||||
BulkAction = PageIndexBulkAction.PublishNow
|
||||
};
|
||||
|
||||
var pageEntries = new List<PageEntry>();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
//TODO: Use "NameOf" when it supports these expressions
|
||||
input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString());
|
||||
input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString());
|
||||
pageEntries.Add(new PageEntry {
|
||||
PageId = pages[i].Id,
|
||||
IsChecked = true
|
||||
});
|
||||
}
|
||||
|
||||
// Call controller
|
||||
var result = _controller.Index(input);
|
||||
// call controller
|
||||
var result = _controller.IndexPOST(options, pageEntries);
|
||||
|
||||
// Verify result, check database state
|
||||
ClearSession();
|
||||
@@ -263,21 +273,25 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(pages[1].Published, Is.Null);
|
||||
Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1));
|
||||
|
||||
// Build controller input
|
||||
DateTime scheduledDate = _clock.FutureMoment(TimeSpan.FromMinutes(1));
|
||||
|
||||
var input = new FormCollection {
|
||||
{ ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.PublishLater.ToString() } ,
|
||||
{ ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkPublishLaterDate), string.Format("{0:d} {0:T}", scheduledDate) }
|
||||
};
|
||||
// Build controller input
|
||||
|
||||
DateTime scheduledDate = _clock.FutureMoment(TimeSpan.FromMinutes(1));
|
||||
var options = new PageIndexOptions {
|
||||
BulkAction = PageIndexBulkAction.PublishLater,
|
||||
BulkPublishLaterDate = scheduledDate,
|
||||
};
|
||||
|
||||
var pageEntries = new List<PageEntry>();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
//TODO: Use "NameOf" when it supports these expressions
|
||||
input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString());
|
||||
input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString());
|
||||
pageEntries.Add(new PageEntry {
|
||||
PageId = pages[i].Id,
|
||||
IsChecked = true
|
||||
});
|
||||
}
|
||||
|
||||
// Call controller
|
||||
var result = _controller.Index(input);
|
||||
// call controller
|
||||
var result = _controller.IndexPOST(options, pageEntries);
|
||||
|
||||
// Verify result, check database state
|
||||
ClearSession();
|
||||
@@ -307,20 +321,24 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(pages[1].Published, Is.Null);
|
||||
Assert.That(_pagesRepository.Get(revision.Page.Id).Scheduled.Count, Is.EqualTo(1));
|
||||
|
||||
// Build controller input
|
||||
var input = new FormCollection {
|
||||
{ ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.Delete.ToString() },
|
||||
{ ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkDeleteConfirmed), true.ToString() }
|
||||
};
|
||||
|
||||
// Build controller input
|
||||
|
||||
var options = new PageIndexOptions {
|
||||
BulkAction = PageIndexBulkAction.Delete,
|
||||
BulkDeleteConfirmed = true,
|
||||
};
|
||||
|
||||
var pageEntries = new List<PageEntry>();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
//TODO: Use "NameOf" when it supports these expressions
|
||||
input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString());
|
||||
input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString());
|
||||
pageEntries.Add(new PageEntry {
|
||||
PageId = pages[i].Id,
|
||||
IsChecked = true
|
||||
});
|
||||
}
|
||||
|
||||
// Call controller
|
||||
var result = _controller.Index(input);
|
||||
// call controller
|
||||
var result = _controller.IndexPOST(options, pageEntries);
|
||||
|
||||
// Verify result, check database state
|
||||
ClearSession();
|
||||
@@ -342,18 +360,20 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(pages[1].Published, Is.Not.Null);
|
||||
|
||||
// Build controller input
|
||||
var input = new FormCollection {
|
||||
{ ReflectOn<PageIndexViewModel>.NameOf(m => m.Options.BulkAction), PageIndexBulkAction.Unpublish.ToString() },
|
||||
};
|
||||
var options = new PageIndexOptions {
|
||||
BulkAction = PageIndexBulkAction.Unpublish,
|
||||
};
|
||||
|
||||
var pageEntries = new List<PageEntry>();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
//TODO: Use "NameOf" when it supports these expressions
|
||||
input.Add(string.Format("PageEntries[{0}].PageId", i), pages[i].Id.ToString());
|
||||
input.Add(string.Format("PageEntries[{0}].IsChecked", i), true.ToString());
|
||||
pageEntries.Add(new PageEntry {
|
||||
PageId = pages[i].Id,
|
||||
IsChecked = true
|
||||
});
|
||||
}
|
||||
|
||||
// Call controller
|
||||
var result = _controller.Index(input);
|
||||
// call controller
|
||||
var result = _controller.IndexPOST(options, pageEntries);
|
||||
|
||||
// Verify result, check database state
|
||||
ClearSession();
|
||||
@@ -374,11 +394,11 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
public void PublishNowShouldApplyChangesAndRedirect() {
|
||||
var pageBeforeEdit = _pageManager.GetLastRevision(_slugPageId);
|
||||
|
||||
var input = new FormCollection {
|
||||
{ ReflectOn<PageEditViewModel>.NameOf(m => m.Revision.Slug), "new-slug-value" },
|
||||
{ ReflectOn<PageEditViewModel>.NameOf(m => m.Command), PageEditCommand.PublishNow.ToString() }
|
||||
};
|
||||
var result = _controller.Edit(_slugPageId, input);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{"Revision.Slug","new-slug-value" },
|
||||
{"Command","PublishNow"},
|
||||
});
|
||||
var result = _controller.EditPOST(_slugPageId);
|
||||
|
||||
var pageNotFoundAnymore = _pageManager.GetPublishedBySlug("slug");
|
||||
var pageFromNewSlug = _pageManager.GetPublishedBySlug("new-slug-value");
|
||||
@@ -414,8 +434,10 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(revision.Contents, Has.Count.EqualTo(2));
|
||||
Assert.That(revision.Contents, Has.None.Property("ZoneName").EqualTo("content3"));
|
||||
|
||||
var input = new FormCollection { { "TemplateName", "threecolumn" } };
|
||||
var result = _controller.ChooseTemplate(revision.Id, input);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{ "TemplateName", "threecolumn" }
|
||||
});
|
||||
var result = _controller.ChooseTemplatePOST(revision.Id);
|
||||
|
||||
Assert.That(result, Is.TypeOf<RedirectToRouteResult>());
|
||||
|
||||
@@ -443,8 +465,10 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
Assert.That(revision.Contents, Has.Count.EqualTo(2));
|
||||
Assert.That(revision.Contents, Has.None.Property("ZoneName").EqualTo("content3"));
|
||||
|
||||
var input = new FormCollection { { "TemplateName", "twocolumn" } };
|
||||
var result = _controller.ChooseTemplate(revision.Id, input);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{ "TemplateName", "twocolumn" }
|
||||
});
|
||||
var result = _controller.ChooseTemplatePOST(revision.Id);
|
||||
|
||||
Assert.That(result, Is.TypeOf<RedirectToRouteResult>());
|
||||
|
||||
@@ -460,41 +484,41 @@ namespace Orchard.Tests.Packages.Pages.Controllers {
|
||||
|
||||
[Test, Ignore("This actually requires the data binder to be registered, because it's going through contoller's update model method.")]
|
||||
public void SavingDraftAfterEmptyingUnusedContentItemShouldRemoveUnusedItems() {
|
||||
var createInput = new FormCollection {
|
||||
{"Title", "One"},
|
||||
{"Slug", "Two"},
|
||||
{"TemplateName", "threecolumn"},
|
||||
};
|
||||
var createResult = (RedirectToRouteResult)_controller.Create(createInput);
|
||||
_controller.ValueProvider = Values.From(new PageCreateViewModel {
|
||||
Title = "One",
|
||||
Slug = "Two",
|
||||
TemplateName = "threecolumn",
|
||||
});
|
||||
var createResult = (RedirectToRouteResult)_controller.CreatePOST();
|
||||
ClearSession();
|
||||
var pageId = (int)createResult.RouteValues["id"];
|
||||
|
||||
var publishInput = new FormCollection {
|
||||
{"Command", "PublishNow"},
|
||||
{"Revision.Contents[content1].Content", "alpha"},
|
||||
{"Revision.Contents[content2].Content", "beta"},
|
||||
{"Revision.Contents[content3].Content", "gamma"},
|
||||
};
|
||||
_controller.Edit(pageId, publishInput);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{"Command", "PublishNow"},
|
||||
{"Revision.Contents[content1].Content", "alpha"},
|
||||
{"Revision.Contents[content2].Content", "beta"},
|
||||
{"Revision.Contents[content3].Content", "gamma"},
|
||||
});
|
||||
_controller.EditPOST(pageId);
|
||||
ClearSession();
|
||||
|
||||
var chooseTemplateInput = new FormCollection {
|
||||
{"TemplateName", "twocolumn"},
|
||||
};
|
||||
_controller.ChooseTemplate(pageId, chooseTemplateInput);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{"TemplateName", "twocolumn"},
|
||||
});
|
||||
_controller.ChooseTemplatePOST(pageId);
|
||||
ClearSession();
|
||||
|
||||
var revision = _pageManager.GetLastRevision(pageId);
|
||||
Assert.That(revision.Contents, Has.Count.EqualTo(3));
|
||||
|
||||
|
||||
var publishInput2 = new FormCollection {
|
||||
{"Command", "PublishNow"},
|
||||
{"Revision.Contents[content1].Content", "alpha"},
|
||||
{"Revision.Contents[content2].Content", "beta"},
|
||||
{"Revision.Contents[content3].Content", ""},
|
||||
};
|
||||
_controller.Edit(pageId, publishInput2);
|
||||
_controller.ValueProvider = Values.From(new Dictionary<string, string> {
|
||||
{"Command", "PublishNow"},
|
||||
{"Revision.Contents[content1].Content", "alpha"},
|
||||
{"Revision.Contents[content2].Content", "beta"},
|
||||
{"Revision.Contents[content3].Content", ""},
|
||||
});
|
||||
_controller.EditPOST(pageId);
|
||||
ClearSession();
|
||||
var revision2 = _pageManager.GetLastRevision(pageId);
|
||||
Assert.That(revision2.Contents, Has.Count.EqualTo(2));
|
||||
|
||||
@@ -80,37 +80,11 @@ namespace Orchard.Tests.Packages.Users.Controllers {
|
||||
Assert.That(model.Rows, Is.Not.Null);
|
||||
}
|
||||
|
||||
public static class Values {
|
||||
public static IValueProvider Of<T>(T obj) {
|
||||
return new ValueProvider<T>(obj);
|
||||
}
|
||||
class ValueProvider<T> : IValueProvider {
|
||||
private readonly T _obj;
|
||||
|
||||
public ValueProvider(T obj) {
|
||||
_obj = obj;
|
||||
}
|
||||
|
||||
public bool ContainsPrefix( string prefix) {
|
||||
return typeof(T).GetProperties().Any(x => x.Name.StartsWith(prefix));
|
||||
}
|
||||
|
||||
public ValueProviderResult GetValue( string key) {
|
||||
var property = typeof(T).GetProperty(key);
|
||||
if (property == null)
|
||||
return null;
|
||||
return new ValueProviderResult(
|
||||
property.GetValue(_obj, null),
|
||||
Convert.ToString(property.GetValue(_obj, null)),
|
||||
null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CreateShouldAddUserAndRedirect() {
|
||||
var controller = _container.Resolve<AdminController>();
|
||||
controller.ValueProvider = Values.Of(new {
|
||||
controller.ValueProvider = Values.From(new {
|
||||
UserName = "four",
|
||||
Password = "five",
|
||||
ConfirmPassword = "five"
|
||||
@@ -134,7 +108,7 @@ namespace Orchard.Tests.Packages.Users.Controllers {
|
||||
Assert.That(model.UserName, Is.EqualTo("two"));
|
||||
|
||||
var controller = _container.Resolve<AdminController>();
|
||||
controller.ValueProvider = Values.Of(new {
|
||||
controller.ValueProvider = Values.From(new {
|
||||
UserName = "bubba",
|
||||
Email = "hotep",
|
||||
});
|
||||
|
||||
41
src/Orchard.Tests.Packages/Values.cs
Normal file
41
src/Orchard.Tests.Packages/Values.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Orchard.Tests.Packages {
|
||||
public static class Values {
|
||||
public static IValueProvider From<T>(T obj) {
|
||||
if (obj is IDictionary<string,string>) {
|
||||
return new DictionaryValueProvider<string>(
|
||||
(IDictionary<string,string>)obj,
|
||||
CultureInfo.InvariantCulture);
|
||||
}
|
||||
return new ValueProvider<T>(obj);
|
||||
}
|
||||
|
||||
class ValueProvider<T> : IValueProvider {
|
||||
private readonly T _obj;
|
||||
|
||||
public ValueProvider(T obj) {
|
||||
_obj = obj;
|
||||
}
|
||||
|
||||
public bool ContainsPrefix(string prefix) {
|
||||
return typeof(T).GetProperties().Any(x => x.Name.StartsWith(prefix));
|
||||
}
|
||||
|
||||
public ValueProviderResult GetValue(string key) {
|
||||
var property = typeof(T).GetProperty(key);
|
||||
if (property == null)
|
||||
return null;
|
||||
return new ValueProviderResult(
|
||||
property.GetValue(_obj, null),
|
||||
Convert.ToString(property.GetValue(_obj, null)),
|
||||
null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -172,26 +172,5 @@ namespace Orchard.Tests.Models {
|
||||
return modelRecord;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EditorsShouldBeOrderedByPositionAndDefaultPositionIsSix() {
|
||||
var alpha = _manager.New("alpha");
|
||||
var templates = _manager.BuildDisplayModel(alpha, null).Displays;
|
||||
Assert.That(templates.Count(), Is.EqualTo(3));
|
||||
|
||||
var t0 = templates.First();
|
||||
var t1 = templates.Skip(1).First();
|
||||
var t2 = templates.Skip(2).First();
|
||||
|
||||
Assert.That(t0.Model, Is.TypeOf<Alpha>());
|
||||
Assert.That(t1.Model, Is.TypeOf<Flavored>());
|
||||
Assert.That(t2.Model, Is.TypeOf<Styled>());
|
||||
|
||||
Assert.That(t0.Position, Is.EqualTo("3"));
|
||||
Assert.That(t1.Position, Is.Null);
|
||||
Assert.That(t2.Position, Is.EqualTo("10"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,11 +65,11 @@ namespace Orchard.Tests.UI.Notify {
|
||||
var model = new AdminViewModel();
|
||||
|
||||
var context = BuildContext();
|
||||
context.Controller.TempData.Add("messages", "dont-destroy" + System.Environment.NewLine);
|
||||
context.Controller.TempData.Add("messages", "dont-destroy" + System.Environment.NewLine + "-" + System.Environment.NewLine);
|
||||
context.Result = new ViewResult {
|
||||
ViewData = new ViewDataDictionary<AdminViewModel>(model),
|
||||
TempData = context.Controller.TempData
|
||||
};
|
||||
ViewData = new ViewDataDictionary<AdminViewModel>(model),
|
||||
TempData = context.Controller.TempData
|
||||
};
|
||||
|
||||
filter.OnActionExecuted(context);
|
||||
filter.OnResultExecuting(new ResultExecutingContext(context, context.Result));
|
||||
|
||||
@@ -82,15 +82,15 @@ namespace Orchard.CmsPages.Controllers {
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[HttpPost, ActionName("Index")]
|
||||
[FormValueRequired("submit.BulkEdit")]
|
||||
public ActionResult Index(FormCollection input) {
|
||||
var viewModel = new PageIndexViewModel();
|
||||
UpdateModel(viewModel, input.ToValueProvider());
|
||||
public ActionResult IndexPOST(PageIndexOptions options, IList<PageEntry> pageEntries) {
|
||||
//var viewModel = new PageIndexViewModel();
|
||||
//UpdateModel(viewModel);
|
||||
|
||||
try {
|
||||
IEnumerable<PageEntry> checkedEntries = viewModel.PageEntries.Where(p => p.IsChecked);
|
||||
switch (viewModel.Options.BulkAction) {
|
||||
IEnumerable<PageEntry> checkedEntries = pageEntries.Where(p => p.IsChecked);
|
||||
switch (options.BulkAction) {
|
||||
case PageIndexBulkAction.None:
|
||||
break;
|
||||
|
||||
@@ -111,17 +111,20 @@ namespace Orchard.CmsPages.Controllers {
|
||||
if (!_authorizer.Authorize(Permissions.SchedulePages, T("Couldn't publish page")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if (viewModel.Options.BulkPublishLaterDate != null) {
|
||||
if (options.BulkPublishLaterDate != null) {
|
||||
//TODO: Transaction
|
||||
foreach (PageEntry entry in checkedEntries) {
|
||||
var page = _repository.Get(entry.PageId);
|
||||
var revision = _pageManager.AcquireDraft(page.Id);
|
||||
_pageScheduler.ClearTasks(page);
|
||||
_pageScheduler.AddPublishTask(revision, viewModel.Options.BulkPublishLaterDate.Value);
|
||||
_pageScheduler.AddPublishTask(revision, options.BulkPublishLaterDate.Value);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return View("BulkPublishLater", viewModel);
|
||||
return View("BulkPublishLater", new PageIndexViewModel {
|
||||
Options = options,
|
||||
PageEntries = pageEntries
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -139,7 +142,7 @@ namespace Orchard.CmsPages.Controllers {
|
||||
if (!_authorizer.Authorize(Permissions.DeletePages, T("Couldn't delete page")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
if (viewModel.Options.BulkDeleteConfirmed) {
|
||||
if (options.BulkDeleteConfirmed) {
|
||||
//TODO: Transaction
|
||||
foreach (PageEntry entry in checkedEntries) {
|
||||
var page = _repository.Get(entry.PageId);
|
||||
@@ -148,7 +151,10 @@ namespace Orchard.CmsPages.Controllers {
|
||||
}
|
||||
}
|
||||
else {
|
||||
return View("BulkDeleteConfirm", viewModel);
|
||||
return View("BulkDeleteConfirm", new PageIndexViewModel {
|
||||
Options = options,
|
||||
PageEntries = pageEntries
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -159,7 +165,7 @@ namespace Orchard.CmsPages.Controllers {
|
||||
catch (Exception ex) {
|
||||
ModelState.AddModelError("", ex);
|
||||
//TODO: Is this a good idea to return to the index view in case of error?
|
||||
return Index(viewModel.Options);
|
||||
return Index(options);
|
||||
}
|
||||
|
||||
return RedirectToAction("Index");
|
||||
@@ -191,12 +197,12 @@ namespace Orchard.CmsPages.Controllers {
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[AcceptVerbs(HttpVerbs.Post)]
|
||||
public ActionResult Create(FormCollection input) {
|
||||
[AcceptVerbs(HttpVerbs.Post), ActionName("Create")]
|
||||
public ActionResult CreatePOST() {
|
||||
|
||||
var viewModel = new PageCreateViewModel { Templates = _templateProvider.List() };
|
||||
try {
|
||||
UpdateModel(viewModel, input.ToValueProvider());
|
||||
UpdateModel(viewModel);
|
||||
if (!_authorizer.Authorize(Permissions.CreatePages, T("Couldn't create page")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
@@ -235,9 +241,9 @@ namespace Orchard.CmsPages.Controllers {
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[HttpPost, ActionName("Edit")]
|
||||
[FormValueRequired("submit.Save")]
|
||||
public ActionResult Edit(int id, FormCollection input) {
|
||||
public ActionResult EditPOST(int id) {
|
||||
var model = new PageEditViewModel();
|
||||
try {
|
||||
//TODO: need a transaction to surround this entire lot, really
|
||||
@@ -245,7 +251,7 @@ namespace Orchard.CmsPages.Controllers {
|
||||
model.Revision = _pageManager.AcquireDraft(id);
|
||||
model.Template = _templateProvider.Get(model.Revision.TemplateName);
|
||||
|
||||
UpdateModel(model, input.ToValueProvider());
|
||||
UpdateModel(model);
|
||||
RemoveUnusedContentItems(model.Revision, model.Template);
|
||||
|
||||
_pageScheduler.ClearTasks(model.Revision.Page);
|
||||
@@ -342,11 +348,11 @@ namespace Orchard.CmsPages.Controllers {
|
||||
return View(viewModel);
|
||||
}
|
||||
|
||||
[AcceptVerbs(HttpVerbs.Post)]
|
||||
public ActionResult ChooseTemplate(int id, FormCollection input) {
|
||||
[HttpPost, ActionName("ChooseTemplate")]
|
||||
public ActionResult ChooseTemplatePOST(int id) {
|
||||
var viewModel = new ChooseTemplateViewModel();
|
||||
try {
|
||||
UpdateModel(viewModel, input.ToValueProvider());
|
||||
UpdateModel(viewModel);
|
||||
|
||||
//todo: needs transaction
|
||||
var draft = _pageManager.AcquireDraft(id);
|
||||
|
||||
@@ -16,19 +16,16 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
}
|
||||
|
||||
public override void Apply(BuildDisplayModelContext context) {
|
||||
context.AddDisplay(new TemplateViewModel(Model, Prefix) {
|
||||
TemplateName = TemplateName,
|
||||
ZoneName = Zone,
|
||||
Position = Position
|
||||
});
|
||||
context.DisplayModel.Zones.AddDisplayPart(
|
||||
Zone + ":" + Position, Model, TemplateName, Prefix);
|
||||
}
|
||||
|
||||
public override void Apply(BuildEditorModelContext context) {
|
||||
context.AddEditor(new TemplateViewModel(Model, Prefix) {
|
||||
TemplateName = TemplateName,
|
||||
ZoneName = Zone,
|
||||
Position = Position
|
||||
});
|
||||
TemplateName = TemplateName,
|
||||
ZoneName = Zone,
|
||||
Position = Position
|
||||
});
|
||||
}
|
||||
|
||||
public PartTemplateResult Location(string zone) {
|
||||
|
||||
Reference in New Issue
Block a user