Content picker localization culture dropdown (#7388)

This commit is contained in:
Matteo Piovanelli
2016-11-17 21:49:35 +01:00
committed by Sébastien Ros
parent f697fbb06a
commit 4584da9214
2 changed files with 29 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ using Orchard.Core.Contents.Settings;
using Orchard.Core.Contents.ViewModels;
using Orchard.DisplayManagement;
using Orchard.Localization;
using Orchard.Localization.Services;
using Orchard.Mvc;
using Orchard.Settings;
using Orchard.Themes;
@@ -22,16 +23,22 @@ namespace Orchard.ContentPicker.Controllers {
private readonly ISiteService _siteService;
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly INavigationManager _navigationManager;
private readonly ICultureManager _cultureManager;
private readonly ICultureFilter _cultureFilter;
public AdminController(
IOrchardServices orchardServices,
ISiteService siteService,
IContentDefinitionManager contentDefinitionManager,
INavigationManager navigationManager) {
INavigationManager navigationManager,
ICultureManager cultureManager,
ICultureFilter cultureFilter) {
_siteService = siteService;
_contentDefinitionManager = contentDefinitionManager;
_navigationManager = navigationManager;
Services = orchardServices;
_cultureManager = cultureManager;
_cultureFilter = cultureFilter;
T = NullLocalizer.Instance;
}
@@ -123,10 +130,16 @@ namespace Orchard.ContentPicker.Controllers {
break;
}
if (!String.IsNullOrWhiteSpace(model.Options.SelectedCulture)) {
query = _cultureFilter.FilterCulture(query, model.Options.SelectedCulture);
}
model.Options.FilterOptions = contentTypes
.Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName))
.ToList().OrderBy(kvp => kvp.Value);
model.Options.Cultures = _cultureManager.ListCultures();
var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count());
var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList();
var list = Services.New.List();

View File

@@ -9,6 +9,8 @@
pageTitle = T("Manage {0} Content", typeDisplayName);
}
IEnumerable<string> cultures = Model.Options.Cultures;
Layout.Title = pageTitle;
}
@@ -25,6 +27,17 @@
@Html.SelectOption((string)Model.Options.SelectedFilter, (string)filterOption.Key, (string)filterOption.Value)
}
</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>
<select id="orderResults" name="Options.OrderBy">
@Html.SelectOption((ContentsOrder)Model.Options.OrderBy, ContentsOrder.Created, T("recently created").ToString())