mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Merge with default
--HG-- branch : 1.x
This commit is contained in:
39
src/Orchard.Specs/Bindings/Settings.cs
Normal file
39
src/Orchard.Specs/Bindings/Settings.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using Orchard.ContentManagement;
|
||||||
|
using Orchard.ContentManagement.Aspects;
|
||||||
|
using Orchard.Core.Contents;
|
||||||
|
using Orchard.Data;
|
||||||
|
using Orchard.Roles.Models;
|
||||||
|
using Orchard.Roles.Services;
|
||||||
|
using Orchard.Security;
|
||||||
|
using Orchard.Security.Permissions;
|
||||||
|
using Orchard.Specs.Hosting.Orchard.Web;
|
||||||
|
using TechTalk.SpecFlow;
|
||||||
|
using Orchard.Localization.Services;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Orchard.Specs.Bindings {
|
||||||
|
[Binding]
|
||||||
|
public class Settings : BindingBase {
|
||||||
|
|
||||||
|
[When(@"I have ""(.*)"" as the default culture")]
|
||||||
|
public void DefineDefaultCulture(string cultureName) {
|
||||||
|
|
||||||
|
var webApp = Binding<WebAppHosting>();
|
||||||
|
webApp.Host.Execute(() => {
|
||||||
|
using ( var environment = MvcApplication.CreateStandaloneEnvironment("Default") ) {
|
||||||
|
var orchardServices = environment.Resolve<IOrchardServices>();
|
||||||
|
var cultureManager = environment.Resolve<ICultureManager>();
|
||||||
|
|
||||||
|
var currentCultures = cultureManager.ListCultures();
|
||||||
|
if (!currentCultures.Contains(cultureName)) {
|
||||||
|
cultureManager.AddCulture(cultureName);
|
||||||
|
}
|
||||||
|
|
||||||
|
orchardServices.WorkContext.CurrentSite.SiteCulture = cultureName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -176,6 +176,10 @@ namespace Orchard.Specs.Bindings {
|
|||||||
WhenIGoTo(urlPath);
|
WhenIGoTo(urlPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Given(@"I have the file ""(.*)"" in ""(.*)""")]
|
||||||
|
public void GivenIHaveFile(string sourceFileName, string destination) {
|
||||||
|
Host.CopyFile(sourceFileName, destination);
|
||||||
|
}
|
||||||
|
|
||||||
[When(@"I go to ""(.*)"" on host (.*)")]
|
[When(@"I go to ""(.*)"" on host (.*)")]
|
||||||
public void WhenIGoToPathOnHost(string urlPath, string host) {
|
public void WhenIGoToPathOnHost(string urlPath, string host) {
|
||||||
|
@@ -214,6 +214,33 @@ namespace Orchard.Specs.Hosting {
|
|||||||
sourceModule.Combine("Views").DeepCopy(targetModule.Combine("Views"));
|
sourceModule.Combine("Views").DeepCopy(targetModule.Combine("Views"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CopyFile(string source, string destination) {
|
||||||
|
|
||||||
|
StackTrace st = new StackTrace(true);
|
||||||
|
Path origin = null;
|
||||||
|
foreach(var sf in st.GetFrames()) {
|
||||||
|
var sourceFile = sf.GetFileName();
|
||||||
|
if(String.IsNullOrEmpty(sourceFile)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var testOrigin = Path.Get(sourceFile).Parent.Combine(source);
|
||||||
|
if(testOrigin.Exists) {
|
||||||
|
origin = testOrigin;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(origin == null) {
|
||||||
|
throw new FileNotFoundException("File not found: " + source);
|
||||||
|
}
|
||||||
|
|
||||||
|
var target = _tempSite.Combine(destination);
|
||||||
|
|
||||||
|
Directory.CreateDirectory(target.DirectoryName);
|
||||||
|
File.Copy(origin, target);
|
||||||
|
}
|
||||||
|
|
||||||
private bool IsExtensionBinaryFile(Path path, string extensionName, ExtensionDeploymentOptions deploymentOptions) {
|
private bool IsExtensionBinaryFile(Path path, string extensionName, ExtensionDeploymentOptions deploymentOptions) {
|
||||||
bool isValidExtension = IsAssemblyFile(path);
|
bool isValidExtension = IsAssemblyFile(path);
|
||||||
if (!isValidExtension)
|
if (!isValidExtension)
|
||||||
|
@@ -127,6 +127,7 @@
|
|||||||
<Compile Include="Bindings\BindingBase.cs" />
|
<Compile Include="Bindings\BindingBase.cs" />
|
||||||
<Compile Include="Bindings\CommandLine.cs" />
|
<Compile Include="Bindings\CommandLine.cs" />
|
||||||
<Compile Include="Bindings\ContentRights.cs" />
|
<Compile Include="Bindings\ContentRights.cs" />
|
||||||
|
<Compile Include="Bindings\Settings.cs" />
|
||||||
<Compile Include="Bindings\HtmlNodeExtensions.cs" />
|
<Compile Include="Bindings\HtmlNodeExtensions.cs" />
|
||||||
<Compile Include="Bindings\OrchardSiteFactory.cs" />
|
<Compile Include="Bindings\OrchardSiteFactory.cs" />
|
||||||
<Compile Include="Bindings\UsersPermissionsAndRoles.cs" />
|
<Compile Include="Bindings\UsersPermissionsAndRoles.cs" />
|
||||||
|
@@ -3,19 +3,14 @@ using System.Globalization;
|
|||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Drivers;
|
using Orchard.ContentManagement.Drivers;
|
||||||
using Orchard.Core.Common.Models;
|
using Orchard.Core.Common.Models;
|
||||||
using Orchard.Core.Shapes.Localization;
|
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
|
|
||||||
namespace Orchard.Core.Common.DateEditor {
|
namespace Orchard.Core.Common.DateEditor {
|
||||||
public class DateEditorDriver : ContentPartDriver<CommonPart> {
|
public class DateEditorDriver : ContentPartDriver<CommonPart> {
|
||||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
|
||||||
|
|
||||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||||
|
|
||||||
public DateEditorDriver(
|
public DateEditorDriver(
|
||||||
IOrchardServices services,
|
IOrchardServices services) {
|
||||||
IDateTimeLocalization dateTimeLocalization) {
|
|
||||||
_dateTimeLocalization = dateTimeLocalization;
|
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
Services = services;
|
Services = services;
|
||||||
|
|
||||||
@@ -62,8 +57,8 @@ namespace Orchard.Core.Common.DateEditor {
|
|||||||
// date and time are formatted using the same patterns as DateTimePicker is, preventing other cultures issues
|
// date and time are formatted using the same patterns as DateTimePicker is, preventing other cultures issues
|
||||||
var createdLocal = TimeZoneInfo.ConvertTimeFromUtc(part.CreatedUtc.Value, Services.WorkContext.CurrentTimeZone);
|
var createdLocal = TimeZoneInfo.ConvertTimeFromUtc(part.CreatedUtc.Value, Services.WorkContext.CurrentTimeZone);
|
||||||
|
|
||||||
model.CreatedDate = createdLocal.ToString(_dateTimeLocalization.ShortDateFormat.Text);
|
model.CreatedDate = createdLocal.ToString("d", _cultureInfo.Value);
|
||||||
model.CreatedTime = createdLocal.ToString(_dateTimeLocalization.ShortTimeFormat.Text);
|
model.CreatedTime = createdLocal.ToString("t", _cultureInfo.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,10 +69,9 @@ namespace Orchard.Core.Common.DateEditor {
|
|||||||
DateTime createdUtc;
|
DateTime createdUtc;
|
||||||
|
|
||||||
string parseDateTime = String.Concat(model.CreatedDate, " ", model.CreatedTime);
|
string parseDateTime = String.Concat(model.CreatedDate, " ", model.CreatedTime);
|
||||||
var dateTimeFormat = _dateTimeLocalization.ShortDateFormat + " " + _dateTimeLocalization.ShortTimeFormat;
|
|
||||||
|
|
||||||
// use current culture
|
// use current culture
|
||||||
if (DateTime.TryParseExact(parseDateTime, dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out createdUtc)) {
|
if (DateTime.TryParse(parseDateTime, _cultureInfo.Value, DateTimeStyles.None, out createdUtc)) {
|
||||||
|
|
||||||
// the date time is entered locally for the configured timezone
|
// the date time is entered locally for the configured timezone
|
||||||
part.CreatedUtc = TimeZoneInfo.ConvertTimeToUtc(createdUtc, Services.WorkContext.CurrentTimeZone);
|
part.CreatedUtc = TimeZoneInfo.ConvertTimeToUtc(createdUtc, Services.WorkContext.CurrentTimeZone);
|
||||||
|
@@ -120,10 +120,16 @@ namespace Orchard.Core.Common.Drivers {
|
|||||||
private void Add(string segment) {
|
private void Add(string segment) {
|
||||||
if (string.IsNullOrEmpty(segment))
|
if (string.IsNullOrEmpty(segment))
|
||||||
return;
|
return;
|
||||||
if (string.IsNullOrEmpty(_path))
|
|
||||||
|
if (string.IsNullOrEmpty(_path)) {
|
||||||
_path = segment;
|
_path = segment;
|
||||||
else
|
}
|
||||||
|
else if (segment.StartsWith("/")) {
|
||||||
|
_path = _path + segment;
|
||||||
|
}
|
||||||
|
else {
|
||||||
_path = _path + "/" + segment;
|
_path = _path + "/" + segment;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The common module introduces content parts that are going to be used by most content types (common, body, identity).
|
Description: The common module introduces content parts that are going to be used by most content types (common, body, identity).
|
||||||
FeatureDescription: Core content parts.
|
FeatureDescription: Core content parts.
|
||||||
Dependencies: Settings
|
Dependencies: Settings
|
||||||
|
@@ -11,4 +11,10 @@ fieldset.createdutc-datetime input {
|
|||||||
padding:1px;
|
padding:1px;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
color:#666;
|
color:#666;
|
||||||
|
}
|
||||||
|
input#DateEditor_CreatedDate {
|
||||||
|
width:10em;
|
||||||
|
}
|
||||||
|
input#DateEditor_CreatedTime {
|
||||||
|
width:7em;
|
||||||
}
|
}
|
@@ -1,11 +1,7 @@
|
|||||||
@model Orchard.Core.Common.DateEditor.DateEditorViewModel
|
@model Orchard.Core.Common.DateEditor.DateEditorViewModel
|
||||||
@{
|
@{
|
||||||
var DateEditor = Model;
|
var DateEditor = Model;
|
||||||
Script.Require("jQueryUtils_TimePicker");
|
|
||||||
Script.Require("jQueryUI_DatePicker");
|
|
||||||
Style.Require("Common_DatePicker");
|
Style.Require("Common_DatePicker");
|
||||||
Style.Require("jQueryUtils_TimePicker");
|
|
||||||
Style.Require("jQueryUI_DatePicker");
|
|
||||||
}
|
}
|
||||||
<fieldset class="createdutc-datetime">
|
<fieldset class="createdutc-datetime">
|
||||||
@Html.LabelFor(m => DateEditor.CreatedDate, T("Created On"))
|
@Html.LabelFor(m => DateEditor.CreatedDate, T("Created On"))
|
||||||
@@ -18,6 +14,7 @@
|
|||||||
|
|
||||||
@* generates the localization script *@
|
@* generates the localization script *@
|
||||||
@Display(New.DatePickerLocalization())
|
@Display(New.DatePickerLocalization())
|
||||||
|
@Display(New.TimePickerLocalization())
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//<![CDATA[
|
//<![CDATA[
|
||||||
@@ -38,7 +35,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#@Html.FieldIdFor(m => DateEditor.CreatedDate)').datepicker({ showAnim: "" });
|
$('#@Html.FieldIdFor(m => DateEditor.CreatedDate)').datepicker({ showAnim: "" });
|
||||||
$('#@Html.FieldIdFor(m => DateEditor.CreatedTime)').timepickr({ showAnim: "" });
|
$('#@Html.FieldIdFor(m => DateEditor.CreatedTime)').timepicker({ stepMinute: 5});
|
||||||
})
|
})
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The containers module introduces container and containable behaviors for content items.
|
Description: The containers module introduces container and containable behaviors for content items.
|
||||||
FeatureDescription: Container and containable parts to enable parent-child relationships between content items.
|
FeatureDescription: Container and containable parts to enable parent-child relationships between content items.
|
||||||
Dependencies: Contents
|
Dependencies: Contents
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The contents module enables the creation of custom content types.
|
Description: The contents module enables the creation of custom content types.
|
||||||
Features:
|
Features:
|
||||||
Contents
|
Contents
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The dashboard module is providing the dashboard screen of the admininstration UI of the application.
|
Description: The dashboard module is providing the dashboard screen of the admininstration UI of the application.
|
||||||
FeatureDescription: Standard admin dashboard.
|
FeatureDescription: Standard admin dashboard.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The Feeds module is providing RSS feeds to content items.
|
Description: The Feeds module is providing RSS feeds to content items.
|
||||||
FeatureDescription: RSS feeds for content items.
|
FeatureDescription: RSS feeds for content items.
|
||||||
Category: Syndication
|
Category: Syndication
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The navigation module creates and manages a simple navigation menu for the front-end of the application and allows you to add content items to the admin menu.
|
Description: The navigation module creates and manages a simple navigation menu for the front-end of the application and allows you to add content items to the admin menu.
|
||||||
FeatureDescription: Menu management.
|
FeatureDescription: Menu management.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The dashboard module is providing the reports screen of the application.
|
Description: The dashboard module is providing the reports screen of the application.
|
||||||
FeatureDescription: Reports management.
|
FeatureDescription: Reports management.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The scheduling module enables background task scheduling.
|
Description: The scheduling module enables background task scheduling.
|
||||||
FeatureDescription: Scheduled background tasks.
|
FeatureDescription: Scheduled background tasks.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The settings module creates site settings that other modules can contribute to.
|
Description: The settings module creates site settings that other modules can contribute to.
|
||||||
FeatureDescription: Site settings.
|
FeatureDescription: Site settings.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -6,12 +6,14 @@ using Orchard.DisplayManagement;
|
|||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
using Orchard.Mvc.Html;
|
using Orchard.Mvc.Html;
|
||||||
using Orchard.Services;
|
using Orchard.Services;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Orchard.Core.Shapes {
|
namespace Orchard.Core.Shapes {
|
||||||
public class DateTimeShapes : IDependency {
|
public class DateTimeShapes : IDependency {
|
||||||
private readonly IClock _clock;
|
private readonly IClock _clock;
|
||||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||||
private readonly IWorkContextAccessor _workContextAccessor;
|
private readonly IWorkContextAccessor _workContextAccessor;
|
||||||
|
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||||
|
|
||||||
public DateTimeShapes(
|
public DateTimeShapes(
|
||||||
IClock clock,
|
IClock clock,
|
||||||
@@ -22,6 +24,8 @@ namespace Orchard.Core.Shapes {
|
|||||||
_dateTimeLocalization = dateTimeLocalization;
|
_dateTimeLocalization = dateTimeLocalization;
|
||||||
_workContextAccessor = workContextAccessor;
|
_workContextAccessor = workContextAccessor;
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
|
|
||||||
|
_cultureInfo = new Lazy<CultureInfo>(() => CultureInfo.GetCultureInfo(_workContextAccessor.GetContext().CurrentCulture));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
@@ -52,7 +56,7 @@ namespace Orchard.Core.Shapes {
|
|||||||
return DateTime(DateTimeUtc, _dateTimeLocalization.LongDateTimeFormat);
|
return DateTime(DateTimeUtc, _dateTimeLocalization.LongDateTimeFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MvcHtmlString(ConvertToDisplayTime(DateTimeUtc).ToString(CustomFormat.Text));
|
return new MvcHtmlString(ConvertToDisplayTime(DateTimeUtc).ToString(CustomFormat.Text, _cultureInfo.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@@ -19,11 +19,6 @@ namespace Orchard.Core.Shapes.Localization {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
int FirstDay { get; }
|
int FirstDay { get; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// True if right-to-left language, false if left-to-right
|
|
||||||
/// </summary>
|
|
||||||
bool IsRTL { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// True if the year select precedes month, false for month then year
|
/// True if the year select precedes month, false for month then year
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -88,19 +83,6 @@ namespace Orchard.Core.Shapes.Localization {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsRTL {
|
|
||||||
get {
|
|
||||||
var isRTL = false;
|
|
||||||
var t = T("isRTL: false").Text;
|
|
||||||
var parts = t.Split(':');
|
|
||||||
if (parts.Length == 2) {
|
|
||||||
Boolean.TryParse(parts[1], out isRTL);
|
|
||||||
}
|
|
||||||
|
|
||||||
return isRTL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool ShowMonthAfterYear {
|
public bool ShowMonthAfterYear {
|
||||||
get {
|
get {
|
||||||
var showMonthAfterYear = false;
|
var showMonthAfterYear = false;
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The shapes module contains core shape templates and display hooks.
|
Description: The shapes module contains core shape templates and display hooks.
|
||||||
FeatureDescription: Core shape templates and display hooks.
|
FeatureDescription: Core shape templates and display hooks.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The title module enables content items to have titles.
|
Description: The title module enables content items to have titles.
|
||||||
FeatureDescription: Title content part.
|
FeatureDescription: Title content part.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The XmlRpc module enables creation of contents from client applications such as LiveWriter.
|
Description: The XmlRpc module enables creation of contents from client applications such as LiveWriter.
|
||||||
FeatureDescription: XML-RPC opt-in implementation.
|
FeatureDescription: XML-RPC opt-in implementation.
|
||||||
Category: Content Publishing
|
Category: Content Publishing
|
||||||
|
@@ -6,7 +6,6 @@ using Orchard.ArchiveLater.ViewModels;
|
|||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Drivers;
|
using Orchard.ContentManagement.Drivers;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
using Orchard.Core.Shapes.Localization;
|
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
|
||||||
@@ -14,16 +13,18 @@ namespace Orchard.ArchiveLater.Drivers {
|
|||||||
public class ArchiveLaterPartDriver : ContentPartDriver<ArchiveLaterPart> {
|
public class ArchiveLaterPartDriver : ContentPartDriver<ArchiveLaterPart> {
|
||||||
private const string TemplateName = "Parts/ArchiveLater";
|
private const string TemplateName = "Parts/ArchiveLater";
|
||||||
private readonly IArchiveLaterService _archiveLaterService;
|
private readonly IArchiveLaterService _archiveLaterService;
|
||||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||||
|
|
||||||
public ArchiveLaterPartDriver(
|
public ArchiveLaterPartDriver(
|
||||||
IOrchardServices services,
|
IOrchardServices services,
|
||||||
IArchiveLaterService archiveLaterService,
|
IArchiveLaterService archiveLaterService) {
|
||||||
IDateTimeLocalization dateTimeLocalization) {
|
|
||||||
_archiveLaterService = archiveLaterService;
|
_archiveLaterService = archiveLaterService;
|
||||||
_dateTimeLocalization = dateTimeLocalization;
|
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
Services = services;
|
Services = services;
|
||||||
|
|
||||||
|
// initializing the culture info lazy initializer
|
||||||
|
_cultureInfo = new Lazy<CultureInfo>(() => CultureInfo.GetCultureInfo(Services.WorkContext.CurrentCulture));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
@@ -46,8 +47,8 @@ namespace Orchard.ArchiveLater.Drivers {
|
|||||||
var model = new ArchiveLaterViewModel(part) {
|
var model = new ArchiveLaterViewModel(part) {
|
||||||
ScheduledArchiveUtc = part.ScheduledArchiveUtc.Value,
|
ScheduledArchiveUtc = part.ScheduledArchiveUtc.Value,
|
||||||
ArchiveLater = part.ScheduledArchiveUtc.Value.HasValue,
|
ArchiveLater = part.ScheduledArchiveUtc.Value.HasValue,
|
||||||
ScheduledArchiveDate = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString(_dateTimeLocalization.ShortDateFormat.Text) : String.Empty,
|
ScheduledArchiveDate = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString("d", _cultureInfo.Value) : String.Empty,
|
||||||
ScheduledArchiveTime = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString(_dateTimeLocalization.ShortTimeFormat.Text) : String.Empty
|
ScheduledArchiveTime = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString("t", _cultureInfo.Value) : String.Empty
|
||||||
};
|
};
|
||||||
|
|
||||||
return ContentShape("Parts_ArchiveLater_Edit",
|
return ContentShape("Parts_ArchiveLater_Edit",
|
||||||
@@ -61,10 +62,9 @@ namespace Orchard.ArchiveLater.Drivers {
|
|||||||
if ( model.ArchiveLater ) {
|
if ( model.ArchiveLater ) {
|
||||||
DateTime scheduled;
|
DateTime scheduled;
|
||||||
var parseDateTime = String.Concat(model.ScheduledArchiveDate, " ", model.ScheduledArchiveTime);
|
var parseDateTime = String.Concat(model.ScheduledArchiveDate, " ", model.ScheduledArchiveTime);
|
||||||
var dateTimeFormat = _dateTimeLocalization.ShortDateFormat + " " + _dateTimeLocalization.ShortTimeFormat;
|
|
||||||
|
|
||||||
// use an english culture as it is the one used by jQuery.datepicker by default
|
// use an english culture as it is the one used by jQuery.datepicker by default
|
||||||
if (DateTime.TryParseExact(parseDateTime, dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out scheduled)) {
|
if (DateTime.TryParse(parseDateTime, _cultureInfo.Value, DateTimeStyles.None, out scheduled)) {
|
||||||
// the date time is entered locally for the configured timezone
|
// the date time is entered locally for the configured timezone
|
||||||
var timeZone = Services.WorkContext.CurrentTimeZone;
|
var timeZone = Services.WorkContext.CurrentTimeZone;
|
||||||
|
|
||||||
|
@@ -3,8 +3,8 @@ Path: ArchiveLater
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The ArchiveLater module introduces scheduled archiving functionality.
|
Description: The ArchiveLater module introduces scheduled archiving functionality.
|
||||||
FeatureDescription: Scheduled archiving.
|
FeatureDescription: Scheduled archiving.
|
||||||
Category: Content
|
Category: Content
|
||||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -7,10 +7,10 @@ html.dyn input.hinted {
|
|||||||
font-style:italic;
|
font-style:italic;
|
||||||
}
|
}
|
||||||
input#ArchiveLater_ScheduledArchiveDate {
|
input#ArchiveLater_ScheduledArchiveDate {
|
||||||
width:49%;
|
width:10em;
|
||||||
}
|
}
|
||||||
input#ArchiveLater_ScheduledArchiveTime {
|
input#ArchiveLater_ScheduledArchiveTime {
|
||||||
width:43%;
|
width:7em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.edit-item-sidebar fieldset.archive-later-datetime {
|
.edit-item-sidebar fieldset.archive-later-datetime {
|
||||||
|
@@ -1,11 +1,7 @@
|
|||||||
@model Orchard.ArchiveLater.ViewModels.ArchiveLaterViewModel
|
@model Orchard.ArchiveLater.ViewModels.ArchiveLaterViewModel
|
||||||
@using System.Web.Mvc.Html;
|
@using System.Web.Mvc.Html;
|
||||||
@{
|
@{
|
||||||
Style.Require("jQueryUtils_TimePicker");
|
|
||||||
Style.Require("jQueryUI_DatePicker");
|
|
||||||
Style.Require("ArchiveLater_DatePicker");
|
Style.Require("ArchiveLater_DatePicker");
|
||||||
Script.Require("jQueryUI_DatePicker");
|
|
||||||
Script.Require("jQueryUtils_TimePicker");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<fieldset class="archive-later-datetime">
|
<fieldset class="archive-later-datetime">
|
||||||
@@ -25,6 +21,7 @@
|
|||||||
|
|
||||||
@* generates the localization script *@
|
@* generates the localization script *@
|
||||||
@Display(New.DatePickerLocalization())
|
@Display(New.DatePickerLocalization())
|
||||||
|
@Display(New.TimePickerLocalization())
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//<![CDATA[
|
//<![CDATA[
|
||||||
@@ -42,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledArchiveDate")').datepicker({ showAnim: "" }).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_ArchiveLater")').attr("checked", "checked") });
|
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledArchiveDate")').datepicker({ showAnim: "" }).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_ArchiveLater")').attr("checked", "checked") });
|
||||||
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledArchiveTime")').timepickr().focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_ArchiveLater")').attr("checked", "checked") });
|
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledArchiveTime")').timepicker({ stepMinute: 5 }).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_ArchiveLater")').attr("checked", "checked") });
|
||||||
})
|
})
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
||||||
|
@@ -43,7 +43,7 @@ namespace Orchard.Blogs.Commands {
|
|||||||
public string FeedUrl { get; set; }
|
public string FeedUrl { get; set; }
|
||||||
|
|
||||||
[OrchardSwitch]
|
[OrchardSwitch]
|
||||||
public int Id { get; set; }
|
public int BlogId { get; set; }
|
||||||
|
|
||||||
[OrchardSwitch]
|
[OrchardSwitch]
|
||||||
public string Owner { get; set; }
|
public string Owner { get; set; }
|
||||||
@@ -112,7 +112,7 @@ namespace Orchard.Blogs.Commands {
|
|||||||
|
|
||||||
[CommandName("blog import")]
|
[CommandName("blog import")]
|
||||||
[CommandHelp("blog import /BlogId:<id> /FeedUrl:<feed url> /Owner:<username>\r\n\t" + "Import all items from <feed url> into the blog specified by <id>")]
|
[CommandHelp("blog import /BlogId:<id> /FeedUrl:<feed url> /Owner:<username>\r\n\t" + "Import all items from <feed url> into the blog specified by <id>")]
|
||||||
[OrchardSwitches("FeedUrl,Id,Owner")]
|
[OrchardSwitches("FeedUrl,BlogId,Owner")]
|
||||||
public void Import() {
|
public void Import() {
|
||||||
var owner = _membershipService.GetUser(Owner);
|
var owner = _membershipService.GetUser(Owner);
|
||||||
|
|
||||||
@@ -132,10 +132,10 @@ namespace Orchard.Blogs.Commands {
|
|||||||
throw new OrchardException(T("An error occured while loading the feed at {0}.", FeedUrl), ex);
|
throw new OrchardException(T("An error occured while loading the feed at {0}.", FeedUrl), ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
var blog = _blogService.Get(Id,VersionOptions.Latest);
|
var blog = _blogService.Get(BlogId, VersionOptions.Latest);
|
||||||
|
|
||||||
if ( blog == null ) {
|
if ( blog == null ) {
|
||||||
Context.Output.WriteLine(T("Blog not found with specified Id: {0}", Id));
|
Context.Output.WriteLine(T("Blog not found with specified Id: {0}", BlogId));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The Orchard Blogs module is implementing basic blogging features.
|
Description: The Orchard Blogs module is implementing basic blogging features.
|
||||||
FeatureDescription: A simple web log.
|
FeatureDescription: A simple web log.
|
||||||
Dependencies: Shapes, Common, Feeds, Navigation, Orchard.Widgets, Orchard.jQuery, Orchard.PublishLater
|
Dependencies: Shapes, Common, Feeds, Navigation, Orchard.Widgets, Orchard.jQuery, Orchard.PublishLater
|
||||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The comments system implemented by this module can be applied to arbitrary Orchard content types, such as blogs and pages. It includes comment validation and spam protection through the Akismet service.
|
Description: The comments system implemented by this module can be applied to arbitrary Orchard content types, such as blogs and pages. It includes comment validation and spam protection through the Akismet service.
|
||||||
Features:
|
Features:
|
||||||
Orchard.Comments:
|
Orchard.Comments:
|
||||||
|
@@ -30,6 +30,5 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
[assembly:SecurityRules(SecurityRuleSet.Level2)]
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: Contains designer tools to ease the Themes development process
|
Description: Contains designer tools to ease the Themes development process
|
||||||
FeatureName: Shape Tracing
|
FeatureName: Shape Tracing
|
||||||
Category: Designer
|
Category: Designer
|
||||||
|
@@ -88,7 +88,7 @@
|
|||||||
<Content Include="Views\Web.config" />
|
<Content Include="Views\Web.config" />
|
||||||
<Content Include="Scripts\Web.config" />
|
<Content Include="Scripts\Web.config" />
|
||||||
<Content Include="Styles\Web.config" />
|
<Content Include="Styles\Web.config" />
|
||||||
<Content Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Content Include="Module.txt" />
|
<Content Include="Module.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@@ -31,5 +31,5 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
@@ -3,8 +3,8 @@ Path: MediaPicker
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: Description for the module
|
Description: Description for the module
|
||||||
Dependencies: Orchard.Media, Orchard.jQuery
|
Dependencies: Orchard.Media, Orchard.jQuery
|
||||||
FeatureDescription: UI for browsing for, uploading, or selecting an image for an HTML editor.
|
FeatureDescription: UI for browsing for, uploading, or selecting an image for an HTML editor.
|
||||||
|
@@ -67,7 +67,7 @@
|
|||||||
<Content Include="Views\Web.config" />
|
<Content Include="Views\Web.config" />
|
||||||
<Content Include="Scripts\Web.config" />
|
<Content Include="Scripts\Web.config" />
|
||||||
<Content Include="Styles\Web.config" />
|
<Content Include="Styles\Web.config" />
|
||||||
<Content Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Content Include="Module.txt" />
|
<Content Include="Module.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@@ -31,6 +31,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -3,7 +3,6 @@ using System.Xml;
|
|||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Drivers;
|
using Orchard.ContentManagement.Drivers;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
using Orchard.Core.Shapes.Localization;
|
|
||||||
using Orchard.Mvc;
|
using Orchard.Mvc;
|
||||||
using Orchard.PublishLater.Models;
|
using Orchard.PublishLater.Models;
|
||||||
using Orchard.PublishLater.Services;
|
using Orchard.PublishLater.Services;
|
||||||
@@ -18,7 +17,6 @@ namespace Orchard.PublishLater.Drivers {
|
|||||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
private readonly IPublishLaterService _publishLaterService;
|
private readonly IPublishLaterService _publishLaterService;
|
||||||
private readonly IClock _clock;
|
private readonly IClock _clock;
|
||||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
|
||||||
|
|
||||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||||
|
|
||||||
@@ -26,12 +24,10 @@ namespace Orchard.PublishLater.Drivers {
|
|||||||
IOrchardServices services,
|
IOrchardServices services,
|
||||||
IHttpContextAccessor httpContextAccessor,
|
IHttpContextAccessor httpContextAccessor,
|
||||||
IPublishLaterService publishLaterService,
|
IPublishLaterService publishLaterService,
|
||||||
IClock clock,
|
IClock clock) {
|
||||||
IDateTimeLocalization dateTimeLocalization) {
|
|
||||||
_httpContextAccessor = httpContextAccessor;
|
_httpContextAccessor = httpContextAccessor;
|
||||||
_publishLaterService = publishLaterService;
|
_publishLaterService = publishLaterService;
|
||||||
_clock = clock;
|
_clock = clock;
|
||||||
_dateTimeLocalization = dateTimeLocalization;
|
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
Services = services;
|
Services = services;
|
||||||
|
|
||||||
@@ -62,8 +58,8 @@ namespace Orchard.PublishLater.Drivers {
|
|||||||
var localDate = new Lazy<DateTime>( () => TimeZoneInfo.ConvertTimeFromUtc(part.ScheduledPublishUtc.Value.Value, Services.WorkContext.CurrentTimeZone));
|
var localDate = new Lazy<DateTime>( () => TimeZoneInfo.ConvertTimeFromUtc(part.ScheduledPublishUtc.Value.Value, Services.WorkContext.CurrentTimeZone));
|
||||||
var model = new PublishLaterViewModel(part) {
|
var model = new PublishLaterViewModel(part) {
|
||||||
ScheduledPublishUtc = part.ScheduledPublishUtc.Value,
|
ScheduledPublishUtc = part.ScheduledPublishUtc.Value,
|
||||||
ScheduledPublishDate = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString(_dateTimeLocalization.ShortDateFormat.Text) : String.Empty,
|
ScheduledPublishDate = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString("d", _cultureInfo.Value) : String.Empty,
|
||||||
ScheduledPublishTime = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString(_dateTimeLocalization.ShortTimeFormat.Text) : String.Empty,
|
ScheduledPublishTime = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString("t", _cultureInfo.Value) : String.Empty,
|
||||||
};
|
};
|
||||||
|
|
||||||
return ContentShape("Parts_PublishLater_Edit",
|
return ContentShape("Parts_PublishLater_Edit",
|
||||||
@@ -80,10 +76,9 @@ namespace Orchard.PublishLater.Drivers {
|
|||||||
DateTime scheduled;
|
DateTime scheduled;
|
||||||
|
|
||||||
string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime);
|
string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime);
|
||||||
var dateTimeFormat = _dateTimeLocalization.ShortDateFormat + " " + _dateTimeLocalization.ShortTimeFormat;
|
|
||||||
|
|
||||||
// use current culture
|
// use current culture
|
||||||
if (DateTime.TryParseExact(parseDateTime, dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out scheduled)) {
|
if (DateTime.TryParse(parseDateTime, _cultureInfo.Value, DateTimeStyles.None, out scheduled)) {
|
||||||
|
|
||||||
// the date time is entered locally for the configured timezone
|
// the date time is entered locally for the configured timezone
|
||||||
var timeZone = Services.WorkContext.CurrentTimeZone;
|
var timeZone = Services.WorkContext.CurrentTimeZone;
|
||||||
|
@@ -3,8 +3,8 @@ Path: PublishLater
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The PublishLater module introduces draft creation and scheduled publishing functionality.
|
Description: The PublishLater module introduces draft creation and scheduled publishing functionality.
|
||||||
FeatureDescription: Draft creation and scheduled publishing.
|
FeatureDescription: Draft creation and scheduled publishing.
|
||||||
Category: Content
|
Category: Content
|
||||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -23,9 +23,9 @@ fieldset.publish-later-datetime input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
input#PublishLater_ScheduledPublishDate {
|
input#PublishLater_ScheduledPublishDate {
|
||||||
width:39%;
|
width:10em;
|
||||||
margin:0 0 0 12px;
|
margin:0 0 0 12px;
|
||||||
}
|
}
|
||||||
input#PublishLater_ScheduledPublishTime {
|
input#PublishLater_ScheduledPublishTime {
|
||||||
width:33%;
|
width:7em;
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,6 @@
|
|||||||
@model Orchard.PublishLater.ViewModels.PublishLaterViewModel
|
@model Orchard.PublishLater.ViewModels.PublishLaterViewModel
|
||||||
@{
|
@{
|
||||||
Script.Require("jQueryUtils_TimePicker");
|
|
||||||
Script.Require("jQueryUI_DatePicker");
|
|
||||||
Style.Require("PublishLater_DatePicker");
|
Style.Require("PublishLater_DatePicker");
|
||||||
Style.Require("jQueryUtils_TimePicker");
|
|
||||||
Style.Require("jQueryUI_DatePicker");
|
|
||||||
}
|
}
|
||||||
<fieldset class="publish-later-datetime">
|
<fieldset class="publish-later-datetime">
|
||||||
<legend>@T("Publish")</legend>
|
<legend>@T("Publish")</legend>
|
||||||
@@ -18,6 +14,7 @@
|
|||||||
|
|
||||||
@* generates the localization script *@
|
@* generates the localization script *@
|
||||||
@Display(New.DatePickerLocalization())
|
@Display(New.DatePickerLocalization())
|
||||||
|
@Display(New.TimePickerLocalization())
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//<![CDATA[
|
//<![CDATA[
|
||||||
@@ -40,7 +37,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledPublishDate")').datepicker({ showAnim: ""}).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_PublishLater")').attr("checked", "checked") });
|
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledPublishDate")').datepicker({ showAnim: ""}).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_PublishLater")').attr("checked", "checked") });
|
||||||
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledPublishTime")').timepickr().focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_PublishLater")').attr("checked", "checked") });
|
$('#@ViewData.TemplateInfo.GetFullHtmlFieldId("ScheduledPublishTime")').timepicker({ stepMinute: 5}).focus(function () { $('#@ViewData.TemplateInfo.GetFullHtmlFieldId("Command_PublishLater")').attr("checked", "checked") });
|
||||||
})
|
})
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
<li><img class="icon" src="@Href("~/Modules/Orchard.PublishLater/Content/Admin/images/online.gif")" alt="@T("Online")" title="@T("The page is currently online")" /> </li> <li>@T("Published") | </li>
|
<li><img class="icon" src="@Href("~/Modules/Orchard.PublishLater/Content/Admin/images/online.gif")" alt="@T("Online")" title="@T("The page is currently online")" /> </li> <li>@T("Published") | </li>
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
<li><img class="icon" src="@Href("~/Modules/Orchard.PublishLater/Content/Admin/images/offline.gif")" alt="@T("Offline")" title="@T("The page is currently offline")" /> <li> </li>@T("Not Published") | </li>
|
<li><img class="icon" src="@Href("~/Modules/Orchard.PublishLater/Content/Admin/images/offline.gif")" alt="@T("Offline")" title="@T("The page is currently offline")" /> </li> <li>@T("Not Published") | </li>
|
||||||
}
|
}
|
||||||
|
|
||||||
@* Does the page have a draft *@
|
@* Does the page have a draft *@
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: Provides a mecanism to generate a static version of pages for being used during application warm up.
|
Description: Provides a mecanism to generate a static version of pages for being used during application warm up.
|
||||||
FeatureDescription: Generates the static version of specific pages periodically.
|
FeatureDescription: Generates the static version of specific pages periodically.
|
||||||
Category: Hosting
|
Category: Hosting
|
||||||
|
@@ -66,7 +66,7 @@
|
|||||||
<Content Include="Views\Web.config" />
|
<Content Include="Views\Web.config" />
|
||||||
<Content Include="Scripts\Web.config" />
|
<Content Include="Scripts\Web.config" />
|
||||||
<Content Include="Styles\Web.config" />
|
<Content Include="Styles\Web.config" />
|
||||||
<Content Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Content Include="Module.txt" />
|
<Content Include="Module.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@@ -31,6 +31,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -3,8 +3,8 @@ Path: Orchard.jQuery
|
|||||||
AntiForgery: enabled
|
AntiForgery: enabled
|
||||||
Author: The Orchard Team
|
Author: The Orchard Team
|
||||||
Website: http://orchardproject.net
|
Website: http://orchardproject.net
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
OrchardVersion: 1.4.1
|
OrchardVersion: 1.4.2
|
||||||
Description: The jQuery module contains the jQuery and related script libraries.
|
Description: The jQuery module contains the jQuery and related script libraries.
|
||||||
FeatureDescription: A common location for jQuery and related script libraries.
|
FeatureDescription: A common location for jQuery and related script libraries.
|
||||||
Category: Core
|
Category: Core
|
||||||
|
@@ -47,6 +47,7 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="Scripts\jquery.ui.timepicker.min.js" />
|
||||||
<Content Include="Scripts\jquery-1.7.1.js" />
|
<Content Include="Scripts\jquery-1.7.1.js" />
|
||||||
<Content Include="Scripts\jquery-1.7.1.min.js" />
|
<Content Include="Scripts\jquery-1.7.1.min.js" />
|
||||||
<Content Include="Scripts\jquery-ui.js" />
|
<Content Include="Scripts\jquery-ui.js" />
|
||||||
@@ -114,7 +115,7 @@
|
|||||||
<Content Include="Scripts\jquery.ui.widget.js" />
|
<Content Include="Scripts\jquery.ui.widget.js" />
|
||||||
<Content Include="Scripts\jquery.ui.widget.min.js" />
|
<Content Include="Scripts\jquery.ui.widget.min.js" />
|
||||||
<Content Include="Scripts\jquery.utils.js" />
|
<Content Include="Scripts\jquery.utils.js" />
|
||||||
<Content Include="Scripts\ui.timepickr.js" />
|
<Content Include="Scripts\jquery.ui.timepicker.js" />
|
||||||
<Content Include="Styles\images\ui-bg_flat_0_aaaaaa_40x100.png" />
|
<Content Include="Styles\images\ui-bg_flat_0_aaaaaa_40x100.png" />
|
||||||
<Content Include="Styles\images\ui-bg_flat_75_ffffff_40x100.png" />
|
<Content Include="Styles\images\ui-bg_flat_75_ffffff_40x100.png" />
|
||||||
<Content Include="Styles\images\ui-bg_glass_55_fbf9ee_1x400.png" />
|
<Content Include="Styles\images\ui-bg_glass_55_fbf9ee_1x400.png" />
|
||||||
@@ -130,7 +131,7 @@
|
|||||||
<Content Include="Styles\images\ui-icons_cd0a0a_256x240.png" />
|
<Content Include="Styles\images\ui-icons_cd0a0a_256x240.png" />
|
||||||
<Content Include="Styles\jquery-ui-1.8.18.custom.css" />
|
<Content Include="Styles\jquery-ui-1.8.18.custom.css" />
|
||||||
<Content Include="Styles\ui.datepicker.css" />
|
<Content Include="Styles\ui.datepicker.css" />
|
||||||
<Content Include="Styles\ui.timepickr.css" />
|
<Content Include="Styles\ui.timepicker.css" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
|
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
|
||||||
@@ -164,7 +165,9 @@
|
|||||||
<Content Include="web.config" />
|
<Content Include="web.config" />
|
||||||
<Content Include="Views\Web.config" />
|
<Content Include="Views\Web.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup>
|
||||||
|
<Content Include="Views\TimePickerLocalization.cshtml" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -30,6 +30,7 @@ namespace Orchard.jQuery {
|
|||||||
manifest.DefineScript("jQueryUI_Slider").SetUrl("jquery.ui.slider.min.js", "jquery.ui.slider.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget", "jQueryUI_Mouse");
|
manifest.DefineScript("jQueryUI_Slider").SetUrl("jquery.ui.slider.min.js", "jquery.ui.slider.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget", "jQueryUI_Mouse");
|
||||||
manifest.DefineScript("jQueryUI_Tabs").SetUrl("jquery.ui.tabs.min.js", "jquery.ui.tabs.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget");
|
manifest.DefineScript("jQueryUI_Tabs").SetUrl("jquery.ui.tabs.min.js", "jquery.ui.tabs.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget");
|
||||||
manifest.DefineScript("jQueryUI_DatePicker").SetUrl("jquery.ui.datepicker.min.js", "jquery.ui.datepicker.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core");
|
manifest.DefineScript("jQueryUI_DatePicker").SetUrl("jquery.ui.datepicker.min.js", "jquery.ui.datepicker.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core");
|
||||||
|
manifest.DefineScript("jQueryUI_TimePicker").SetUrl("jquery.ui.timepicker.min.js", "jquery.ui.timepicker.js").SetVersion("1.0.0").SetDependencies("jQueryUI_Slider", "jQueryUI_DatePicker");
|
||||||
manifest.DefineScript("jQueryUI_Progressbar").SetUrl("jquery.ui.progressbar.min.js", "jquery.ui.progressbar.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget");
|
manifest.DefineScript("jQueryUI_Progressbar").SetUrl("jquery.ui.progressbar.min.js", "jquery.ui.progressbar.js").SetVersion("1.8.18").SetDependencies("jQueryUI_Core", "jQueryUI_Widget");
|
||||||
|
|
||||||
// Effects
|
// Effects
|
||||||
@@ -48,15 +49,11 @@ namespace Orchard.jQuery {
|
|||||||
manifest.DefineScript("jQueryEffects_Slide").SetUrl("jquery.effects.slide.min.js", "jquery.effects.slide.js").SetVersion("1.8.18").SetDependencies("jQueryEffects_Core");
|
manifest.DefineScript("jQueryEffects_Slide").SetUrl("jquery.effects.slide.min.js", "jquery.effects.slide.js").SetVersion("1.8.18").SetDependencies("jQueryEffects_Core");
|
||||||
manifest.DefineScript("jQueryEffects_Transfer").SetUrl("jquery.effects.transfer.min.js", "jquery.effects.transfer.js").SetVersion("1.8.18").SetDependencies("jQueryEffects_Core");
|
manifest.DefineScript("jQueryEffects_Transfer").SetUrl("jquery.effects.transfer.min.js", "jquery.effects.transfer.js").SetVersion("1.8.18").SetDependencies("jQueryEffects_Core");
|
||||||
|
|
||||||
|
|
||||||
// Utils
|
|
||||||
manifest.DefineScript("jQueryUtils").SetUrl("jquery.utils.js").SetDependencies("jQuery");
|
manifest.DefineScript("jQueryUtils").SetUrl("jquery.utils.js").SetDependencies("jQuery");
|
||||||
manifest.DefineScript("jQueryUtils_TimePicker").SetUrl("ui.timepickr.js").SetVersion("0.7.0a").SetDependencies("jQueryUtils", "jQueryUI_Core", "jQueryUI_Widget");
|
|
||||||
|
|
||||||
manifest.DefineStyle("jQueryUI_Orchard").SetUrl("jquery-ui-1.8.18.custom.css").SetVersion("1.8.18");
|
manifest.DefineStyle("jQueryUI_Orchard").SetUrl("jquery-ui-1.8.18.custom.css").SetVersion("1.8.18");
|
||||||
manifest.DefineStyle("jQueryUI_DatePicker").SetUrl("ui.datepicker.css").SetDependencies("jQueryUI_Orchard").SetVersion("1.7.2");
|
manifest.DefineStyle("jQueryUI_DatePicker").SetUrl("ui.datepicker.css").SetDependencies("jQueryUI_Orchard").SetVersion("1.7.2");
|
||||||
manifest.DefineStyle("jQueryUtils_TimePicker").SetUrl("ui.timepickr.css");
|
manifest.DefineStyle("jQueryUI_TimePicker").SetUrl("ui.timepicker.css").SetDependencies("jQueryUI_DatePicker").SetVersion("1.0.0");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1324
src/Orchard.Web/Modules/Orchard.jQuery/Scripts/jquery.ui.timepicker.js
vendored
Normal file
1324
src/Orchard.Web/Modules/Orchard.jQuery/Scripts/jquery.ui.timepicker.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
src/Orchard.Web/Modules/Orchard.jQuery/Scripts/jquery.ui.timepicker.min.js
vendored
Normal file
1
src/Orchard.Web/Modules/Orchard.jQuery/Scripts/jquery.ui.timepicker.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,420 +0,0 @@
|
|||||||
/*
|
|
||||||
jQuery ui.timepickr - @VERSION
|
|
||||||
http://code.google.com/p/jquery-utils/
|
|
||||||
|
|
||||||
(c) Maxime Haineault <haineault@gmail.com>
|
|
||||||
http://haineault.com
|
|
||||||
|
|
||||||
MIT License (http://www.opensource.org/licenses/mit-license.php
|
|
||||||
|
|
||||||
Note: if you want the original experimental plugin checkout the rev 224
|
|
||||||
|
|
||||||
Dependencies
|
|
||||||
------------
|
|
||||||
- jquery.utils.js
|
|
||||||
- jquery.strings.js
|
|
||||||
- jquery.ui.js
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
|
|
||||||
$.tpl('timepickr.menu', '<div class="ui-helper-reset ui-timepickr ui-widget ui-corner-all ui-widget-content" />'); //todo: (heskew) make the corner an option just like the items
|
|
||||||
$.tpl('timepickr.row', '<ol class="ui-timepickr-row ui-helper-clearfix" />');
|
|
||||||
$.tpl('timepickr.button', '<li class="{className:s}"><span class="ui-state-default">{label:s}</span></li>');
|
|
||||||
|
|
||||||
$.widget('ui.timepickr', {
|
|
||||||
options: {
|
|
||||||
convention: 12, // 24, 12
|
|
||||||
trigger: 'focus',
|
|
||||||
format12: '{h:02.d}:{m:02.d} {z}',
|
|
||||||
format24: '{h:02.d}:{m:02.d}',
|
|
||||||
hours: true,
|
|
||||||
prefix: ['AM', 'PM'],
|
|
||||||
suffix: ['AM', 'PM'],
|
|
||||||
prefixVal: false,
|
|
||||||
suffixVal: true,
|
|
||||||
rangeHour12: $.range(1, 13),
|
|
||||||
rangeHour24: [$.range(0, 12), $.range(12, 24)],
|
|
||||||
rangeMin: $.range(0, 60, 15),
|
|
||||||
rangeSec: $.range(0, 60, 15),
|
|
||||||
corners: 'all',
|
|
||||||
// plugins
|
|
||||||
core: true,
|
|
||||||
minutes: true,
|
|
||||||
seconds: false,
|
|
||||||
val: false,
|
|
||||||
updateLive: true,
|
|
||||||
resetOnBlur: true,
|
|
||||||
keyboardnav: true,
|
|
||||||
handle: false,
|
|
||||||
handleEvent: 'click'
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: {},
|
|
||||||
|
|
||||||
_create: function() {
|
|
||||||
this._dom = {
|
|
||||||
menu: $.tpl('timepickr.menu'),
|
|
||||||
row: $.tpl('timepickr.menu')
|
|
||||||
};
|
|
||||||
this._trigger('start');
|
|
||||||
this._trigger('initialized');
|
|
||||||
},
|
|
||||||
|
|
||||||
_trigger: function(type, e, ui) {
|
|
||||||
var ui = ui || this;
|
|
||||||
$.ui.plugin.call(this, type, [e, ui]);
|
|
||||||
return $.Widget.prototype._trigger.call(this, type, e, ui);
|
|
||||||
},
|
|
||||||
|
|
||||||
_createButton: function(i, format, className) {
|
|
||||||
var o = format && $.format(format, i) || i;
|
|
||||||
var cn = className && 'ui-timepickr-button ' + className || 'ui-timepickr-button';
|
|
||||||
return $.tpl('timepickr.button', { className: cn, label: o }).data('id', i)
|
|
||||||
.bind('mouseover', function() {
|
|
||||||
$(this).siblings().find('span')
|
|
||||||
.removeClass('ui-state-hover').end().end()
|
|
||||||
.find('span').addClass('ui-state-hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
_addRow: function(range, format, className, insertAfter) {
|
|
||||||
var ui = this;
|
|
||||||
var btn = false;
|
|
||||||
var row = $.tpl('timepickr.row').bind('mouseover', function() {
|
|
||||||
$(this).next().show();
|
|
||||||
});
|
|
||||||
$.each(range, function(idx, val) {
|
|
||||||
ui._createButton(val, format || false).appendTo(row);
|
|
||||||
});
|
|
||||||
if (className) {
|
|
||||||
$(row).addClass(className);
|
|
||||||
}
|
|
||||||
if (this.options.corners) {
|
|
||||||
row.find('span').addClass('ui-corner-' + this.options.corners);
|
|
||||||
}
|
|
||||||
if (insertAfter) {
|
|
||||||
row.insertAfter(insertAfter);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ui._dom.menu.append(row);
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
},
|
|
||||||
|
|
||||||
_setVal: function(val) {
|
|
||||||
val = val || this._getVal();
|
|
||||||
this.element.data('timepickr.initialValue', val);
|
|
||||||
this.element.val(this._formatVal(val));
|
|
||||||
if (this._dom.menu.is(':hidden')) {
|
|
||||||
this.element.trigger('change');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_getVal: function() {
|
|
||||||
var ols = this._dom.menu.find('ol');
|
|
||||||
function g(unit) {
|
|
||||||
var u = ols.filter('.' + unit).find('.ui-state-hover:first').text();
|
|
||||||
return u || ols.filter('.' + unit + 'li:first span').text();
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
h: g('hours'),
|
|
||||||
m: g('minutes'),
|
|
||||||
s: g('seconds'),
|
|
||||||
a: g('prefix'),
|
|
||||||
z: g('suffix'),
|
|
||||||
f: this.options['format' + this.c],
|
|
||||||
c: this.c
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
_formatVal: function(ival) {
|
|
||||||
var val = ival || this._getVal();
|
|
||||||
|
|
||||||
if (!val.h) return;
|
|
||||||
|
|
||||||
val.c = this.options.convention;
|
|
||||||
val.f = val.c === 12 && this.options.format12 || this.options.format24;
|
|
||||||
return (new Time(val)).getTime();
|
|
||||||
},
|
|
||||||
|
|
||||||
blur: function() {
|
|
||||||
return this.element.blur();
|
|
||||||
},
|
|
||||||
|
|
||||||
focus: function() {
|
|
||||||
return this.element.focus();
|
|
||||||
},
|
|
||||||
show: function() {
|
|
||||||
this._trigger('show');
|
|
||||||
var pos = this.element.position();
|
|
||||||
var width = this.element.data('width');
|
|
||||||
var elementWidth = this.element.outerWidth();
|
|
||||||
var windowWidth = $(window).width() + $(window).scrollLeft();
|
|
||||||
|
|
||||||
if (width) {
|
|
||||||
this._dom.menu.css(
|
|
||||||
'left',
|
|
||||||
pos.left + width < windowWidth
|
|
||||||
? pos.left
|
|
||||||
: windowWidth - width
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
this._dom.menu.show(); //todo: (heskew) make show effect an option
|
|
||||||
},
|
|
||||||
hide: function() {
|
|
||||||
this._trigger('hide');
|
|
||||||
this._dom.menu.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// These properties are shared accross every instances of timepickr
|
|
||||||
$.extend($.ui.timepickr, {
|
|
||||||
version: '@VERSION'
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'core', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
var menu = ui._dom.menu;
|
|
||||||
var pos = ui.element.position();
|
|
||||||
|
|
||||||
//render off screen, to be repositioned by show()
|
|
||||||
menu.insertAfter(ui.element).css('left', '-9999em');
|
|
||||||
|
|
||||||
if (!$.boxModel) { // IE alignement fix
|
|
||||||
menu.css('margin-top', ui.element.height() + 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui.element
|
|
||||||
.bind(ui.options.trigger, function() {
|
|
||||||
ui._dom.menu.find('ol:first').show();
|
|
||||||
ui.show();
|
|
||||||
ui._trigger('focus');
|
|
||||||
if (ui.options.trigger != 'focus') {
|
|
||||||
ui.element.focus();
|
|
||||||
}
|
|
||||||
ui._trigger('focus');
|
|
||||||
})
|
|
||||||
.bind('blur', function() {
|
|
||||||
ui.hide();
|
|
||||||
ui._trigger('blur');
|
|
||||||
});
|
|
||||||
|
|
||||||
menu.find('li').bind('mouseover.timepickr', function() {
|
|
||||||
ui._trigger('refresh');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
initialized: function(e, ui) {
|
|
||||||
var menuItems = ui._dom.menu.find('ol');
|
|
||||||
var pos = ui.element.position();
|
|
||||||
|
|
||||||
//load up
|
|
||||||
ui.show();
|
|
||||||
menuItems.show();
|
|
||||||
|
|
||||||
//store width(s)
|
|
||||||
ui.element.data('width', ui._dom.menu.outerWidth());
|
|
||||||
//fix the width
|
|
||||||
ui._dom.menu.width(ui._dom.menu.width());
|
|
||||||
|
|
||||||
//hide
|
|
||||||
menuItems.hide();
|
|
||||||
ui.hide();
|
|
||||||
},
|
|
||||||
refresh: function(e, ui) {
|
|
||||||
// Realign each menu layers
|
|
||||||
ui._dom.menu.find('ol').each(function() {
|
|
||||||
var p = $(this).prev('ol');
|
|
||||||
try { // .. to not fuckup IE
|
|
||||||
$(this).css('left', p.position().left + p.find('.ui-state-hover').position().left);
|
|
||||||
} catch (e) { };
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'hours', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
if (ui.options.convention === 24) {
|
|
||||||
// prefix is required in 24h mode
|
|
||||||
ui._dom.prefix = ui._addRow(ui.options.prefix, false, 'prefix');
|
|
||||||
|
|
||||||
// split-range
|
|
||||||
if ($.isArray(ui.options.rangeHour24[0])) {
|
|
||||||
var range = [];
|
|
||||||
$.merge(range, ui.options.rangeHour24[0]);
|
|
||||||
$.merge(range, ui.options.rangeHour24[1]);
|
|
||||||
ui._dom.hours = ui._addRow(range, '{0:0.2d}', 'hours');
|
|
||||||
ui._dom.hours.find('li').slice(ui.options.rangeHour24[0].length, -1).hide();
|
|
||||||
var lis = ui._dom.hours.find('li');
|
|
||||||
|
|
||||||
var show = [
|
|
||||||
function() {
|
|
||||||
lis.slice(ui.options.rangeHour24[0].length).hide().end()
|
|
||||||
.slice(0, ui.options.rangeHour24[0].length).show()
|
|
||||||
.filter(':visible:first').trigger('mouseover');
|
|
||||||
|
|
||||||
},
|
|
||||||
function() {
|
|
||||||
lis.slice(0, ui.options.rangeHour24[0].length).hide().end()
|
|
||||||
.slice(ui.options.rangeHour24[0].length).show()
|
|
||||||
.filter(':visible:first').trigger('mouseover');
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
ui._dom.prefix.find('li').bind('mouseover.timepickr', function() {
|
|
||||||
var index = ui._dom.menu.find('.prefix li').index(this);
|
|
||||||
show[index].call();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ui._dom.hours = ui._addRow(ui.options.rangeHour24, '{0:0.2d}', 'hours');
|
|
||||||
ui._dom.hours.find('li').slice(12, -1).hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ui._dom.hours = ui._addRow(ui.options.rangeHour12, '{0:0.2d}', 'hours');
|
|
||||||
// suffix is required in 12h mode
|
|
||||||
ui._dom.suffix = ui._addRow(ui.options.suffix, false, 'suffix');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'minutes', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
var p = ui._dom.hours && ui._dom.hours || false;
|
|
||||||
ui._dom.minutes = ui._addRow(ui.options.rangeMin, '{0:0.2d}', 'minutes', p);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'seconds', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
var p = ui._dom.minutes && ui._dom.minutes || false;
|
|
||||||
ui._dom.seconds = ui._addRow(ui.options.rangeSec, '{0:0.2d}', 'seconds', p);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'val', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
ui._setVal(ui.options.val);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'updateLive', {
|
|
||||||
refresh: function(e, ui) {
|
|
||||||
ui._setVal();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'resetOnBlur', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
ui.element.data('timepickr.initialValue', ui._getVal());
|
|
||||||
ui._dom.menu.find('li > span').bind('mousedown.timepickr', function() {
|
|
||||||
ui.element.data('timepickr.initialValue', ui._getVal());
|
|
||||||
});
|
|
||||||
},
|
|
||||||
blur: function(e, ui) {
|
|
||||||
ui._setVal(ui.element.data('timepickr.initialValue'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'handle', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
$(ui.options.handle).bind(ui.options.handleEvent + '.timepickr', function() {
|
|
||||||
ui.show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ui.plugin.add('timepickr', 'keyboardnav', {
|
|
||||||
start: function(e, ui) {
|
|
||||||
ui.element
|
|
||||||
.bind('keydown', function(e) {
|
|
||||||
if ($.keyIs('enter', e)) {
|
|
||||||
ui._setVal();
|
|
||||||
ui.blur();
|
|
||||||
}
|
|
||||||
else if ($.keyIs('escape', e)) {
|
|
||||||
ui.blur();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var Time = function() { // arguments: h, m, s, c, z, f || time string
|
|
||||||
if (!(this instanceof arguments.callee)) {
|
|
||||||
throw Error("Constructor called as a function");
|
|
||||||
}
|
|
||||||
// arguments as literal object
|
|
||||||
if (arguments.length == 1 && $.isObject(arguments[0])) {
|
|
||||||
this.h = arguments[0].h || 0;
|
|
||||||
this.m = arguments[0].m || 0;
|
|
||||||
this.s = arguments[0].s || 0;
|
|
||||||
this.c = arguments[0].c && ($.inArray(arguments[0].c, [12, 24]) >= 0) && arguments[0].c || 24;
|
|
||||||
this.f = arguments[0].f || ((this.c == 12) && '{h:02.d}:{m:02.d} {z:02.d}' || '{h:02.d}:{m:02.d}');
|
|
||||||
this.z = arguments[0].z || 'am';
|
|
||||||
}
|
|
||||||
// arguments as string
|
|
||||||
else if (arguments.length < 4 && $.isString(arguments[1])) {
|
|
||||||
this.c = arguments[2] && ($.inArray(arguments[0], [12, 24]) >= 0) && arguments[0] || 24;
|
|
||||||
this.f = arguments[3] || ((this.c == 12) && '{h:02.d}:{m:02.d} {z:02.d}' || '{h:02.d}:{m:02.d}');
|
|
||||||
this.z = arguments[4] || 'am';
|
|
||||||
|
|
||||||
this.h = arguments[1] || 0; // parse
|
|
||||||
this.m = arguments[1] || 0; // parse
|
|
||||||
this.s = arguments[1] || 0; // parse
|
|
||||||
}
|
|
||||||
// no arguments (now)
|
|
||||||
else if (arguments.length === 0) {
|
|
||||||
// now
|
|
||||||
}
|
|
||||||
// standards arguments
|
|
||||||
else {
|
|
||||||
this.h = arguments[0] || 0;
|
|
||||||
this.m = arguments[1] || 0;
|
|
||||||
this.s = arguments[2] || 0;
|
|
||||||
this.c = arguments[3] && ($.inArray(arguments[3], [12, 24]) >= 0) && arguments[3] || 24;
|
|
||||||
this.f = this.f || ((this.c == 12) && '{h:02.d}:{m:02.d} {z:02.d}' || '{h:02.d}:{m:02.d}');
|
|
||||||
this.z = 'am';
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
Time.prototype.get = function(p, f, u) { return u && this.h || $.format(f, this.h); };
|
|
||||||
Time.prototype.getHours = function(unformated) { return this.get('h', '{0:02.d}', unformated); };
|
|
||||||
Time.prototype.getMinutes = function(unformated) { return this.get('m', '{0:02.d}', unformated); };
|
|
||||||
Time.prototype.getSeconds = function(unformated) { return this.get('s', '{0:02.d}', unformated); };
|
|
||||||
Time.prototype.setFormat = function(format) { return this.f = format; };
|
|
||||||
Time.prototype.getObject = function() { return { h: this.h, m: this.m, s: this.s, c: this.c, f: this.f, z: this.z }; };
|
|
||||||
Time.prototype.getTime = function() { return $.format(this.f, { h: this.h, m: this.m, z: this.z }); };
|
|
||||||
Time.prototype.parse = function(str) {
|
|
||||||
// 12h formats
|
|
||||||
if (this.c === 12) {
|
|
||||||
// Supported formats: (can't find any *official* standards for 12h..)
|
|
||||||
// - [hh]:[mm]:[ss] [zz] | [hh]:[mm] [zz] | [hh] [zz]
|
|
||||||
// - [hh]:[mm]:[ss] [z.z.] | [hh]:[mm] [z.z.] | [hh] [z.z.]
|
|
||||||
this.tokens = str.split(/\s|:/);
|
|
||||||
this.h = this.tokens[0] || 0;
|
|
||||||
this.m = this.tokens[1] || 0;
|
|
||||||
this.s = this.tokens[2] || 0;
|
|
||||||
this.z = this.tokens[3] || '';
|
|
||||||
return this.getObject();
|
|
||||||
}
|
|
||||||
// 24h formats
|
|
||||||
else {
|
|
||||||
// Supported formats:
|
|
||||||
// - ISO 8601: [hh][mm][ss] | [hh][mm] | [hh]
|
|
||||||
// - ISO 8601 extended: [hh]:[mm]:[ss] | [hh]:[mm] | [hh]
|
|
||||||
this.tokens = /:/.test(str) && str.split(/:/) || str.match(/[0-9]{2}/g);
|
|
||||||
this.h = this.tokens[0] || 0;
|
|
||||||
this.m = this.tokens[1] || 0;
|
|
||||||
this.s = this.tokens[2] || 0;
|
|
||||||
this.z = this.tokens[3] || '';
|
|
||||||
return this.getObject();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
})(jQuery);
|
|
@@ -0,0 +1,7 @@
|
|||||||
|
/* css for timepicker */
|
||||||
|
.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
|
||||||
|
.ui-timepicker-div dl { text-align: left; }
|
||||||
|
.ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
|
||||||
|
.ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
|
||||||
|
.ui-timepicker-div td { font-size: 90%; }
|
||||||
|
.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
|
@@ -1,50 +0,0 @@
|
|||||||
.ui-timepickr {
|
|
||||||
display:none;
|
|
||||||
position:absolute;
|
|
||||||
padding:2px 2px 2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-timepickr-row {
|
|
||||||
padding:0;
|
|
||||||
float:right;
|
|
||||||
clear:both;
|
|
||||||
overflow:hidden;
|
|
||||||
margin:2px 0;
|
|
||||||
display:none;
|
|
||||||
position:relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-timepickr-button {
|
|
||||||
float:left;
|
|
||||||
margin:0;
|
|
||||||
padding:0;
|
|
||||||
list-style:none;
|
|
||||||
list-style-type:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-timepickr-button span {
|
|
||||||
font-size:.7em;
|
|
||||||
padding:4px 6px 4px 6px;
|
|
||||||
margin-left:2px;
|
|
||||||
text-align:center;
|
|
||||||
cursor:pointer;
|
|
||||||
display:block;
|
|
||||||
text-align:center;
|
|
||||||
|
|
||||||
|
|
||||||
/* system theme (default) */
|
|
||||||
border-width:1px;
|
|
||||||
border-style:solid;
|
|
||||||
/*border-color:ThreeDLightShadow ThreeDShadow ThreeDShadow ThreeDLightShadow;
|
|
||||||
color:ButtonText;
|
|
||||||
background:ButtonFace;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-timepickr-button span.ui-state-hover {
|
|
||||||
/*color:HighlightText;
|
|
||||||
background:Highlight;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-state-hover span {
|
|
||||||
/*background:#c30;*/
|
|
||||||
}
|
|
@@ -1,5 +1,20 @@
|
|||||||
@using Orchard.Core.Shapes.Localization
|
@using Orchard.Core.Shapes.Localization
|
||||||
|
@using System.Globalization
|
||||||
|
|
||||||
@{
|
@{
|
||||||
|
|
||||||
|
// prevent the shape from being rendered twice in a page
|
||||||
|
if (WorkContext.GetState<object>("DatePickerLocalization") != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkContext.SetState("DatePickerLocalization", new object());
|
||||||
|
|
||||||
|
Style.Require("jQueryUI_DatePicker");
|
||||||
|
Script.Require("jQueryUI_DatePicker");
|
||||||
|
|
||||||
|
var cultureInfo = CultureInfo.GetCultureInfo(WorkContext.CurrentCulture);
|
||||||
|
|
||||||
var dateTimeLocalization = WorkContext.Resolve<IDateTimeLocalization>();
|
var dateTimeLocalization = WorkContext.Resolve<IDateTimeLocalization>();
|
||||||
var monthNames = FormatJsList(dateTimeLocalization.MonthNames.Text);
|
var monthNames = FormatJsList(dateTimeLocalization.MonthNames.Text);
|
||||||
var monthNamesShort = FormatJsList(dateTimeLocalization.MonthNamesShort.Text);
|
var monthNamesShort = FormatJsList(dateTimeLocalization.MonthNamesShort.Text);
|
||||||
@@ -10,8 +25,8 @@
|
|||||||
// convert .NET format into jQuery format
|
// convert .NET format into jQuery format
|
||||||
// http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
|
// http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
|
||||||
// http://docs.jquery.com/UI/Datepicker/formatDate
|
// http://docs.jquery.com/UI/Datepicker/formatDate
|
||||||
|
|
||||||
var dateFormat = dateTimeLocalization.ShortDateFormat.Text
|
var dateFormat = cultureInfo.DateTimeFormat.ShortDatePattern
|
||||||
.Replace("yyyy", "YY")
|
.Replace("yyyy", "YY")
|
||||||
.Replace("yy", "Y")
|
.Replace("yy", "Y")
|
||||||
.Replace("Y", "y")
|
.Replace("Y", "y")
|
||||||
@@ -42,10 +57,12 @@
|
|||||||
weekHeader: '@T("Wk")', // Column header for week of the year
|
weekHeader: '@T("Wk")', // Column header for week of the year
|
||||||
dateFormat: '@dateFormat', // See format options on parseDate
|
dateFormat: '@dateFormat', // See format options on parseDate
|
||||||
firstDay: @dateTimeLocalization.FirstDay, // The first day of the week, Sun = 0, Mon = 1, ...
|
firstDay: @dateTimeLocalization.FirstDay, // The first day of the week, Sun = 0, Mon = 1, ...
|
||||||
isRTL: @(dateTimeLocalization.IsRTL ? "true" : "false"), // True if right-to-left language, false if left-to-right
|
isRTL: @(cultureInfo.TextInfo.IsRightToLeft ? "true" : "false"), // True if right-to-left language, false if left-to-right
|
||||||
showMonthAfterYear: @(dateTimeLocalization.ShowMonthAfterYear ? "true" : "false"), // True if the year select precedes month, false for month then year
|
showMonthAfterYear: @(dateTimeLocalization.ShowMonthAfterYear ? "true" : "false"), // True if the year select precedes month, false for month then year
|
||||||
yearSuffix: '@dateTimeLocalization.YearSuffix' // Additional text to append to the year in the month headers
|
yearSuffix: '@dateTimeLocalization.YearSuffix' // Additional text to append to the year in the month headers
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['']);
|
||||||
})
|
})
|
||||||
//]]>
|
//]]>
|
||||||
</script>
|
</script>
|
@@ -0,0 +1,46 @@
|
|||||||
|
@using Orchard.Core.Shapes.Localization
|
||||||
|
@using System.Globalization
|
||||||
|
|
||||||
|
@{
|
||||||
|
|
||||||
|
// prevent the shape from being rendered twice in a page
|
||||||
|
if (WorkContext.GetState<object>("TimePickerLocalization") != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkContext.SetState("TimePickerLocalization", new object());
|
||||||
|
|
||||||
|
Style.Require("jQueryUI_TimePicker");
|
||||||
|
Script.Require("jQueryUI_TimePicker");
|
||||||
|
|
||||||
|
var cultureInfo = CultureInfo.GetCultureInfo(WorkContext.CurrentCulture);
|
||||||
|
|
||||||
|
var dateTimeLocalization = WorkContext.Resolve<IDateTimeLocalization>();
|
||||||
|
|
||||||
|
var timeFormat = dateTimeLocalization.ShortTimeFormat.Text
|
||||||
|
.Replace("H", "h");
|
||||||
|
|
||||||
|
var ampm = dateTimeLocalization.ShortTimeFormat.Text.Contains("H") ? "false" : "true";
|
||||||
|
}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
$(function() {
|
||||||
|
|
||||||
|
$.timepicker.regional[''] = {
|
||||||
|
timeOnlyTitle: '@T("Choose time")',
|
||||||
|
timeText: '@T("Time")',
|
||||||
|
hourText: '@T("Hour")',
|
||||||
|
minuteText: '@T("Minute")',
|
||||||
|
currentText: '@T("Now")', // Display text for current time link
|
||||||
|
closeText: '@T("Done")', // Display text for close link
|
||||||
|
timeFormat: '@timeFormat',
|
||||||
|
amNames: ['@cultureInfo.DateTimeFormat.AMDesignator', 'AM', 'A'],
|
||||||
|
pmNames: ['@cultureInfo.DateTimeFormat.PMDesignator', 'PM', 'P'],
|
||||||
|
ampm: @ampm
|
||||||
|
};
|
||||||
|
|
||||||
|
$.timepicker.setDefaults($.timepicker.regional['']);
|
||||||
|
})
|
||||||
|
//]]>
|
||||||
|
</script>
|
@@ -31,6 +31,6 @@ using System.Security;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.4.1")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.4.1")]
|
||||||
|
|
||||||
|
@@ -34,6 +34,6 @@ using System.Security;
|
|||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
@@ -35,6 +35,6 @@ using System.Security;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.4.1")]
|
[assembly: AssemblyVersion("1.4.2")]
|
||||||
[assembly: AssemblyFileVersion("1.4.1")]
|
[assembly: AssemblyFileVersion("1.4.2")]
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user