mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 11:44:58 +08:00
Updating the content list admin to order order on the query (instead of post-query) and added back the published ordering option to the front end
--HG-- branch : dev
This commit is contained in:
@@ -65,44 +65,20 @@ namespace Orchard.Core.Contents.Controllers {
|
|||||||
if (model.ContainerId != null)
|
if (model.ContainerId != null)
|
||||||
query = query.Join<CommonPartRecord>().Where(cr => cr.Container.Id == model.ContainerId);
|
query = query.Join<CommonPartRecord>().Where(cr => cr.Container.Id == model.ContainerId);
|
||||||
|
|
||||||
// Ordering
|
|
||||||
//-- want something like
|
|
||||||
//switch (model.Options.OrderBy) {
|
|
||||||
// case ContentsOrder.Modified:
|
|
||||||
// query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.ModifiedUtc);
|
|
||||||
// break;
|
|
||||||
// case ContentsOrder.Published:
|
|
||||||
// query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.PublishedUtc);
|
|
||||||
// break;
|
|
||||||
// case ContentsOrder.Created:
|
|
||||||
// query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.CreatedUtc);
|
|
||||||
// break;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//-- but resorting to
|
|
||||||
|
|
||||||
var contentItems = query.List();
|
var contentItems = query.List();
|
||||||
switch (model.Options.OrderBy) {
|
switch (model.Options.OrderBy) {
|
||||||
case ContentsOrder.Modified:
|
case ContentsOrder.Modified:
|
||||||
contentItems = contentItems.OrderByDescending(ci => ci.VersionRecord.Id);
|
query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.ModifiedUtc);
|
||||||
|
break;
|
||||||
|
case ContentsOrder.Published:
|
||||||
|
query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.PublishedUtc);
|
||||||
break;
|
break;
|
||||||
//case ContentsOrder.Published:
|
|
||||||
// would be lying w/out a published date instead of a bool but that only comes with the common aspect
|
|
||||||
// contentItems = contentItems.OrderByDescending(ci => ci.VersionRecord.Published/*Date*/);
|
|
||||||
// break;
|
|
||||||
case ContentsOrder.Created:
|
case ContentsOrder.Created:
|
||||||
contentItems = contentItems.OrderByDescending(ci => ci.Id);
|
query = query.OrderByDescending<CommonPartRecord, DateTime?>(cr => cr.CreatedUtc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-- for the moment
|
var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList();
|
||||||
//-- because I'd rather do this
|
|
||||||
|
|
||||||
//var contentItems = query.Slice(skip, pageSize);
|
|
||||||
|
|
||||||
//-- instead of this (having the ordering and skip/take after the query)
|
|
||||||
|
|
||||||
var pageOfContentItems = contentItems.Skip(pager.GetStartIndex()).Take(pager.PageSize).ToList();
|
|
||||||
|
|
||||||
model.Options.SelectedFilter = model.TypeName;
|
model.Options.SelectedFilter = model.TypeName;
|
||||||
model.Options.FilterOptions = GetCreatableTypes()
|
model.Options.FilterOptions = GetCreatableTypes()
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
<select id="orderResults" name="Options.OrderBy">
|
<select id="orderResults" name="Options.OrderBy">
|
||||||
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Created, T("recently created").ToString())
|
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Created, T("recently created").ToString())
|
||||||
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Modified, T("recently modified").ToString())
|
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Modified, T("recently modified").ToString())
|
||||||
|
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Published, T("recently published").ToString())
|
||||||
</select>
|
</select>
|
||||||
<button type="submit" name="submit.Filter" value="yes please">@T("Apply")</button>
|
<button type="submit" name="submit.Filter" value="yes please">@T("Apply")</button>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
Reference in New Issue
Block a user