mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-26 20:16:15 +08:00
Content picker localization culture dropdown (#7388)
This commit is contained in:
committed by
Sébastien Ros
parent
f697fbb06a
commit
4584da9214
@@ -12,6 +12,7 @@ using Orchard.Core.Contents.Settings;
|
|||||||
using Orchard.Core.Contents.ViewModels;
|
using Orchard.Core.Contents.ViewModels;
|
||||||
using Orchard.DisplayManagement;
|
using Orchard.DisplayManagement;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
|
using Orchard.Localization.Services;
|
||||||
using Orchard.Mvc;
|
using Orchard.Mvc;
|
||||||
using Orchard.Settings;
|
using Orchard.Settings;
|
||||||
using Orchard.Themes;
|
using Orchard.Themes;
|
||||||
@@ -22,16 +23,22 @@ namespace Orchard.ContentPicker.Controllers {
|
|||||||
private readonly ISiteService _siteService;
|
private readonly ISiteService _siteService;
|
||||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||||
private readonly INavigationManager _navigationManager;
|
private readonly INavigationManager _navigationManager;
|
||||||
|
private readonly ICultureManager _cultureManager;
|
||||||
|
private readonly ICultureFilter _cultureFilter;
|
||||||
|
|
||||||
public AdminController(
|
public AdminController(
|
||||||
IOrchardServices orchardServices,
|
IOrchardServices orchardServices,
|
||||||
ISiteService siteService,
|
ISiteService siteService,
|
||||||
IContentDefinitionManager contentDefinitionManager,
|
IContentDefinitionManager contentDefinitionManager,
|
||||||
INavigationManager navigationManager) {
|
INavigationManager navigationManager,
|
||||||
|
ICultureManager cultureManager,
|
||||||
|
ICultureFilter cultureFilter) {
|
||||||
_siteService = siteService;
|
_siteService = siteService;
|
||||||
_contentDefinitionManager = contentDefinitionManager;
|
_contentDefinitionManager = contentDefinitionManager;
|
||||||
_navigationManager = navigationManager;
|
_navigationManager = navigationManager;
|
||||||
Services = orchardServices;
|
Services = orchardServices;
|
||||||
|
_cultureManager = cultureManager;
|
||||||
|
_cultureFilter = cultureFilter;
|
||||||
|
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
@@ -123,10 +130,16 @@ namespace Orchard.ContentPicker.Controllers {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!String.IsNullOrWhiteSpace(model.Options.SelectedCulture)) {
|
||||||
|
query = _cultureFilter.FilterCulture(query, model.Options.SelectedCulture);
|
||||||
|
}
|
||||||
|
|
||||||
model.Options.FilterOptions = contentTypes
|
model.Options.FilterOptions = contentTypes
|
||||||
.Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName))
|
.Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName))
|
||||||
.ToList().OrderBy(kvp => kvp.Value);
|
.ToList().OrderBy(kvp => kvp.Value);
|
||||||
|
|
||||||
|
model.Options.Cultures = _cultureManager.ListCultures();
|
||||||
|
|
||||||
var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count());
|
var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count());
|
||||||
var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList();
|
var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList();
|
||||||
var list = Services.New.List();
|
var list = Services.New.List();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@using Orchard.Core.Contents.ViewModels;
|
@using Orchard.Core.Contents.ViewModels;
|
||||||
@{
|
@{
|
||||||
Script.Require("SelectableContentTab");
|
Script.Require("SelectableContentTab");
|
||||||
|
|
||||||
var typeDisplayName = Model.TypeDisplayName;
|
var typeDisplayName = Model.TypeDisplayName;
|
||||||
var pageTitle = T("Recent Content");
|
var pageTitle = T("Recent Content");
|
||||||
|
|
||||||
@@ -9,8 +9,10 @@
|
|||||||
pageTitle = T("Manage {0} Content", typeDisplayName);
|
pageTitle = T("Manage {0} Content", typeDisplayName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerable<string> cultures = Model.Options.Cultures;
|
||||||
|
|
||||||
Layout.Title = pageTitle;
|
Layout.Title = pageTitle;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="manage">
|
<div class="manage">
|
||||||
@@ -25,6 +27,17 @@
|
|||||||
@Html.SelectOption((string)Model.Options.SelectedFilter, (string)filterOption.Key, (string)filterOption.Value)
|
@Html.SelectOption((string)Model.Options.SelectedFilter, (string)filterOption.Key, (string)filterOption.Value)
|
||||||
}
|
}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@if (cultures.Count() > 1) {
|
||||||
|
<label for="filterCultures" class="bulk-culture">@T("Culture")</label>
|
||||||
|
<select id="filterCultures" name="Options.SelectedCulture">
|
||||||
|
@Html.SelectOption((string)Model.Options.SelectedCulture, "", T("any (show all)").ToString())
|
||||||
|
@foreach (string culture in cultures) {
|
||||||
|
@Html.SelectOption((string)Model.Options.SelectedCulture, culture, System.Globalization.CultureInfo.GetCultureInfo(culture).DisplayName)
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
}
|
||||||
|
|
||||||
<label for="orderResults" class="bulk-order">@T("Ordered by")</label>
|
<label for="orderResults" class="bulk-order">@T("Ordered by")</label>
|
||||||
<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())
|
||||||
|
|||||||
Reference in New Issue
Block a user