Adding culture selector to Admin theme

This commit is contained in:
Nicholas Mayne
2014-08-10 15:02:56 +01:00
parent 587ebd11c7
commit ee34024731
4 changed files with 45 additions and 1 deletions

View File

@@ -212,7 +212,7 @@ form.link button:hover, button.link:hover {
ol.decimal {list-style:decimal inside; margin:12px 0;}
ul.disc {list-style:disc inside; margin:12px 0;}
/* Header - Branding and Login
/* Header - Branding, Login and Culture Selection
***************************************************************/
#header {
height:50px;
@@ -226,6 +226,10 @@ ul.disc {list-style:disc inside; margin:12px 0;}
height:50px;
float:left;
}
#culture-selection {
float: right;
margin: 10px 20px 0 0;
}
#header #app {
float:left;
font-size:2.4em;

View File

@@ -1,4 +1,5 @@
@model dynamic
@using Orchard.Environment.Descriptor.Models
@using Orchard.Security;
@using Orchard.DisplayManagement.Descriptors;
@using Orchard.UI.Resources;
@@ -27,6 +28,10 @@
Model.Header.Add(Display.Header());
Model.Header.Add(Display.User(CurrentUser: WorkContext.CurrentUser));
var shellDescriptor = WorkContext.Resolve<ShellDescriptor>();
if (shellDescriptor.Features.Any(x => x.Name == "Orchard.Localization.CutlureSelector")) { Model.Header.Add(Display.UICultureSelector()); }
Model.Footer.Add(Display.OrchardVersion());
if (Model.Title != null) {

View File

@@ -0,0 +1,32 @@
@using System.Globalization
@using Orchard.Localization.Services
@{
var currentCulture = WorkContext.CurrentCulture;
var supportedCultures = WorkContext.Resolve<ICultureManager>().ListCultures();
}
@if (supportedCultures.Count() > 1) {
<div id="culture-selection">
<select>
@foreach (var supportedCulure in supportedCultures) {
var cultureInfo = CultureInfo.GetCultureInfo(supportedCulure);
var url = Url.Action("SetCulture", "CutlureSelector", new { area = "Orchard.Localization", culture = supportedCulure, returnUrl = Html.ViewContext.HttpContext.Request.RawUrl });
<option @if (supportedCulure.Equals(currentCulture)) { <text> selected="selected" </text> } value="@url">
@cultureInfo.DisplayName
</option>
}
</select>
</div>
}
@using (Script.Foot()) {
<script type="text/javascript">
//<![CDATA[
(function ($) {
$("#culture-selection").change(function (e) {
window.location = $("#culture-selection > select > option:selected")[0].value;
});
})(jQuery);
//]]>
</script>
}

View File

@@ -169,6 +169,9 @@
<ItemGroup>
<Content Include="TheAdmin\Views\ErrorPage.cshtml" />
</ItemGroup>
<ItemGroup>
<Content Include="TheAdmin\Views\UICultureSelector.cshtml" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>