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.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();

View File

@@ -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())