mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Merge with 1.4.x
This commit is contained in:
12
.hgsubstate
12
.hgsubstate
@@ -1,8 +1,8 @@
|
||||
bf20391f8fe1ba5d67cadc0643d79ad9fe892d4e src/Orchard.Web/Modules/Orchard.Autoroute
|
||||
b8e23b1daab66d46b6d2196f87aceb91aed2f582 src/Orchard.Web/Modules/Orchard.Forms
|
||||
cfc264d41c1d299c104d76c5032d8ffee3047dcd src/Orchard.Web/Modules/Orchard.Rules
|
||||
83394873b7ee11010f42756d077ea08280064337 src/Orchard.Web/Modules/Orchard.TaskLease
|
||||
0b96793c3737e50863270c24debf6d44065b73bb src/Orchard.Web/Modules/Orchard.Tokens
|
||||
e7fc05ff6137ed5459d198b2bea9a5804818b0bd src/Orchard.Web/Modules/Orchard.Forms
|
||||
681acdfadd946098a10a4a22f6904e8c482c122f src/Orchard.Web/Modules/Orchard.Rules
|
||||
419399ef2e37122a000e6cc8674148d3183d7032 src/Orchard.Web/Modules/Orchard.TaskLease
|
||||
fc63ee29cb68eaa02e3b406c42502346b85221f8 src/Orchard.Web/Modules/Orchard.Tokens
|
||||
4ed51e0e76c2aacc2de90ce9984fd00cfdfae2ce src/orchard.web/Modules/Orchard.Alias
|
||||
0e660c8cfbfb5217abfb7cf6adf6f2cf484174d6 src/orchard.web/Modules/Orchard.Projections
|
||||
0ce46c4e39390472b82459007c0e5a05c18d22d8 src/orchard.web/modules/Orchard.Fields
|
||||
f5353e9e0f678d396735df6eb6ca3c7f30a09660 src/orchard.web/Modules/Orchard.Projections
|
||||
4d125be1a6b35451214768cd8e46b6e7e2b08174 src/orchard.web/modules/Orchard.Fields
|
||||
|
@@ -312,6 +312,7 @@
|
||||
$(MSBuildProjectDirectory)\**\*.user;
|
||||
$(MSBuildProjectDirectory)\**\*.patch;
|
||||
$(MSBuildProjectDirectory)\**\*.hg*\**\*;
|
||||
$(LibFolder)\nunit\addins\**\*;
|
||||
" />
|
||||
|
||||
<Zip-Stage Include="$(StageFolder)\**\*" />
|
||||
|
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);
|
||||
}
|
||||
|
||||
[Given(@"I have the file ""(.*)"" in ""(.*)""")]
|
||||
public void GivenIHaveFile(string sourceFileName, string destination) {
|
||||
Host.CopyFile(sourceFileName, destination);
|
||||
}
|
||||
|
||||
[When(@"I go to ""(.*)"" on host (.*)")]
|
||||
public void WhenIGoToPathOnHost(string urlPath, string host) {
|
||||
|
@@ -214,6 +214,33 @@ namespace Orchard.Specs.Hosting {
|
||||
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) {
|
||||
bool isValidExtension = IsAssemblyFile(path);
|
||||
if (!isValidExtension)
|
||||
|
@@ -127,6 +127,7 @@
|
||||
<Compile Include="Bindings\BindingBase.cs" />
|
||||
<Compile Include="Bindings\CommandLine.cs" />
|
||||
<Compile Include="Bindings\ContentRights.cs" />
|
||||
<Compile Include="Bindings\Settings.cs" />
|
||||
<Compile Include="Bindings\HtmlNodeExtensions.cs" />
|
||||
<Compile Include="Bindings\OrchardSiteFactory.cs" />
|
||||
<Compile Include="Bindings\UsersPermissionsAndRoles.cs" />
|
||||
|
@@ -3,19 +3,14 @@ using System.Globalization;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Core.Shapes.Localization;
|
||||
using Orchard.Localization;
|
||||
|
||||
namespace Orchard.Core.Common.DateEditor {
|
||||
public class DateEditorDriver : ContentPartDriver<CommonPart> {
|
||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||
|
||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||
|
||||
public DateEditorDriver(
|
||||
IOrchardServices services,
|
||||
IDateTimeLocalization dateTimeLocalization) {
|
||||
_dateTimeLocalization = dateTimeLocalization;
|
||||
IOrchardServices services) {
|
||||
T = NullLocalizer.Instance;
|
||||
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
|
||||
var createdLocal = TimeZoneInfo.ConvertTimeFromUtc(part.CreatedUtc.Value, Services.WorkContext.CurrentTimeZone);
|
||||
|
||||
model.CreatedDate = createdLocal.ToString(_dateTimeLocalization.ShortDateFormat.Text);
|
||||
model.CreatedTime = createdLocal.ToString(_dateTimeLocalization.ShortTimeFormat.Text);
|
||||
model.CreatedDate = createdLocal.ToString("d", _cultureInfo.Value);
|
||||
model.CreatedTime = createdLocal.ToString("t", _cultureInfo.Value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,10 +69,9 @@ namespace Orchard.Core.Common.DateEditor {
|
||||
DateTime createdUtc;
|
||||
|
||||
string parseDateTime = String.Concat(model.CreatedDate, " ", model.CreatedTime);
|
||||
var dateTimeFormat = _dateTimeLocalization.ShortDateFormat + " " + _dateTimeLocalization.ShortTimeFormat;
|
||||
|
||||
// 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
|
||||
part.CreatedUtc = TimeZoneInfo.ConvertTimeToUtc(createdUtc, Services.WorkContext.CurrentTimeZone);
|
||||
|
@@ -120,10 +120,16 @@ namespace Orchard.Core.Common.Drivers {
|
||||
private void Add(string segment) {
|
||||
if (string.IsNullOrEmpty(segment))
|
||||
return;
|
||||
if (string.IsNullOrEmpty(_path))
|
||||
|
||||
if (string.IsNullOrEmpty(_path)) {
|
||||
_path = segment;
|
||||
else
|
||||
}
|
||||
else if (segment.StartsWith("/")) {
|
||||
_path = _path + segment;
|
||||
}
|
||||
else {
|
||||
_path = _path + "/" + segment;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The common module introduces content parts that are going to be used by most content types (common, body, identity).
|
||||
FeatureDescription: Core content parts.
|
||||
Dependencies: Settings
|
||||
|
@@ -11,4 +11,10 @@ fieldset.createdutc-datetime input {
|
||||
padding:1px;
|
||||
text-align:center;
|
||||
color:#666;
|
||||
}
|
||||
input#DateEditor_CreatedDate {
|
||||
width:10em;
|
||||
}
|
||||
input#DateEditor_CreatedTime {
|
||||
width:7em;
|
||||
}
|
@@ -1,11 +1,7 @@
|
||||
@model Orchard.Core.Common.DateEditor.DateEditorViewModel
|
||||
@{
|
||||
var DateEditor = Model;
|
||||
Script.Require("jQueryUtils_TimePicker");
|
||||
Script.Require("jQueryUI_DatePicker");
|
||||
Style.Require("Common_DatePicker");
|
||||
Style.Require("jQueryUtils_TimePicker");
|
||||
Style.Require("jQueryUI_DatePicker");
|
||||
}
|
||||
<fieldset class="createdutc-datetime">
|
||||
@Html.LabelFor(m => DateEditor.CreatedDate, T("Created On"))
|
||||
@@ -18,6 +14,7 @@
|
||||
|
||||
@* generates the localization script *@
|
||||
@Display(New.DatePickerLocalization())
|
||||
@Display(New.TimePickerLocalization())
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
@@ -38,7 +35,7 @@
|
||||
}
|
||||
});
|
||||
$('#@Html.FieldIdFor(m => DateEditor.CreatedDate)').datepicker({ showAnim: "" });
|
||||
$('#@Html.FieldIdFor(m => DateEditor.CreatedTime)').timepickr({ showAnim: "" });
|
||||
$('#@Html.FieldIdFor(m => DateEditor.CreatedTime)').timepicker({ stepMinute: 5});
|
||||
})
|
||||
//]]>
|
||||
</script>
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
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.
|
||||
Dependencies: Contents
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The contents module enables the creation of custom content types.
|
||||
Features:
|
||||
Contents
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The dashboard module is providing the dashboard screen of the admininstration UI of the application.
|
||||
FeatureDescription: Standard admin dashboard.
|
||||
Category: Core
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The Feeds module is providing RSS feeds to content items.
|
||||
FeatureDescription: RSS feeds for content items.
|
||||
Category: Syndication
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
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.
|
||||
FeatureDescription: Menu management.
|
||||
Category: Core
|
||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The dashboard module is providing the reports screen of the application.
|
||||
FeatureDescription: Reports management.
|
||||
Category: Core
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The scheduling module enables background task scheduling.
|
||||
FeatureDescription: Scheduled background tasks.
|
||||
Category: Core
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The settings module creates site settings that other modules can contribute to.
|
||||
FeatureDescription: Site settings.
|
||||
Category: Core
|
||||
|
@@ -6,12 +6,14 @@ using Orchard.DisplayManagement;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Mvc.Html;
|
||||
using Orchard.Services;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Orchard.Core.Shapes {
|
||||
public class DateTimeShapes : IDependency {
|
||||
private readonly IClock _clock;
|
||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||
private readonly IWorkContextAccessor _workContextAccessor;
|
||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||
|
||||
public DateTimeShapes(
|
||||
IClock clock,
|
||||
@@ -22,6 +24,8 @@ namespace Orchard.Core.Shapes {
|
||||
_dateTimeLocalization = dateTimeLocalization;
|
||||
_workContextAccessor = workContextAccessor;
|
||||
T = NullLocalizer.Instance;
|
||||
|
||||
_cultureInfo = new Lazy<CultureInfo>(() => CultureInfo.GetCultureInfo(_workContextAccessor.GetContext().CurrentCulture));
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
@@ -52,7 +56,7 @@ namespace Orchard.Core.Shapes {
|
||||
return DateTime(DateTimeUtc, _dateTimeLocalization.LongDateTimeFormat);
|
||||
}
|
||||
|
||||
return new MvcHtmlString(ConvertToDisplayTime(DateTimeUtc).ToString(CustomFormat.Text));
|
||||
return new MvcHtmlString(ConvertToDisplayTime(DateTimeUtc).ToString(CustomFormat.Text, _cultureInfo.Value));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -19,11 +19,6 @@ namespace Orchard.Core.Shapes.Localization {
|
||||
/// </summary>
|
||||
int FirstDay { get; }
|
||||
|
||||
/// <summary>
|
||||
/// True if right-to-left language, false if left-to-right
|
||||
/// </summary>
|
||||
bool IsRTL { get; }
|
||||
|
||||
/// <summary>
|
||||
/// True if the year select precedes month, false for month then year
|
||||
/// </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 {
|
||||
get {
|
||||
var showMonthAfterYear = false;
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The shapes module contains core shape templates and display hooks.
|
||||
FeatureDescription: Core shape templates and display hooks.
|
||||
Category: Core
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The title module enables content items to have titles.
|
||||
FeatureDescription: Title content part.
|
||||
Category: Core
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The XmlRpc module enables creation of contents from client applications such as LiveWriter.
|
||||
FeatureDescription: XML-RPC opt-in implementation.
|
||||
Category: Content Publishing
|
||||
|
@@ -6,7 +6,6 @@ using Orchard.ArchiveLater.ViewModels;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Core.Shapes.Localization;
|
||||
using Orchard.Localization;
|
||||
using System.Globalization;
|
||||
|
||||
@@ -14,16 +13,18 @@ namespace Orchard.ArchiveLater.Drivers {
|
||||
public class ArchiveLaterPartDriver : ContentPartDriver<ArchiveLaterPart> {
|
||||
private const string TemplateName = "Parts/ArchiveLater";
|
||||
private readonly IArchiveLaterService _archiveLaterService;
|
||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||
|
||||
public ArchiveLaterPartDriver(
|
||||
IOrchardServices services,
|
||||
IArchiveLaterService archiveLaterService,
|
||||
IDateTimeLocalization dateTimeLocalization) {
|
||||
IArchiveLaterService archiveLaterService) {
|
||||
_archiveLaterService = archiveLaterService;
|
||||
_dateTimeLocalization = dateTimeLocalization;
|
||||
T = NullLocalizer.Instance;
|
||||
Services = services;
|
||||
|
||||
// initializing the culture info lazy initializer
|
||||
_cultureInfo = new Lazy<CultureInfo>(() => CultureInfo.GetCultureInfo(Services.WorkContext.CurrentCulture));
|
||||
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
@@ -46,8 +47,8 @@ namespace Orchard.ArchiveLater.Drivers {
|
||||
var model = new ArchiveLaterViewModel(part) {
|
||||
ScheduledArchiveUtc = part.ScheduledArchiveUtc.Value,
|
||||
ArchiveLater = part.ScheduledArchiveUtc.Value.HasValue,
|
||||
ScheduledArchiveDate = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString(_dateTimeLocalization.ShortDateFormat.Text) : String.Empty,
|
||||
ScheduledArchiveTime = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString(_dateTimeLocalization.ShortTimeFormat.Text) : String.Empty
|
||||
ScheduledArchiveDate = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString("d", _cultureInfo.Value) : String.Empty,
|
||||
ScheduledArchiveTime = part.ScheduledArchiveUtc.Value.HasValue ? localDate.Value.ToString("t", _cultureInfo.Value) : String.Empty
|
||||
};
|
||||
|
||||
return ContentShape("Parts_ArchiveLater_Edit",
|
||||
@@ -61,10 +62,9 @@ namespace Orchard.ArchiveLater.Drivers {
|
||||
if ( model.ArchiveLater ) {
|
||||
DateTime scheduled;
|
||||
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
|
||||
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
|
||||
var timeZone = Services.WorkContext.CurrentTimeZone;
|
||||
|
||||
|
@@ -3,8 +3,8 @@ Path: ArchiveLater
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The ArchiveLater module introduces scheduled archiving functionality.
|
||||
FeatureDescription: Scheduled archiving.
|
||||
Category: Content
|
||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -7,10 +7,10 @@ html.dyn input.hinted {
|
||||
font-style:italic;
|
||||
}
|
||||
input#ArchiveLater_ScheduledArchiveDate {
|
||||
width:49%;
|
||||
width:10em;
|
||||
}
|
||||
input#ArchiveLater_ScheduledArchiveTime {
|
||||
width:43%;
|
||||
width:7em;
|
||||
}
|
||||
|
||||
.edit-item-sidebar fieldset.archive-later-datetime {
|
||||
|
@@ -1,11 +1,7 @@
|
||||
@model Orchard.ArchiveLater.ViewModels.ArchiveLaterViewModel
|
||||
@using System.Web.Mvc.Html;
|
||||
@{
|
||||
Style.Require("jQueryUtils_TimePicker");
|
||||
Style.Require("jQueryUI_DatePicker");
|
||||
Style.Require("ArchiveLater_DatePicker");
|
||||
Script.Require("jQueryUI_DatePicker");
|
||||
Script.Require("jQueryUtils_TimePicker");
|
||||
}
|
||||
|
||||
<fieldset class="archive-later-datetime">
|
||||
@@ -25,6 +21,7 @@
|
||||
|
||||
@* generates the localization script *@
|
||||
@Display(New.DatePickerLocalization())
|
||||
@Display(New.TimePickerLocalization())
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
@@ -42,7 +39,7 @@
|
||||
}
|
||||
});
|
||||
$('#@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>
|
||||
|
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml.Linq;
|
||||
using Orchard.Blogs.Models;
|
||||
using Orchard.Commands;
|
||||
@@ -39,7 +38,7 @@ namespace Orchard.Blogs.Commands {
|
||||
public string FeedUrl { get; set; }
|
||||
|
||||
[OrchardSwitch]
|
||||
public int Id { get; set; }
|
||||
public int BlogId { get; set; }
|
||||
|
||||
[OrchardSwitch]
|
||||
public string Owner { get; set; }
|
||||
@@ -100,7 +99,7 @@ namespace Orchard.Blogs.Commands {
|
||||
|
||||
[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>")]
|
||||
[OrchardSwitches("FeedUrl,Id,Owner")]
|
||||
[OrchardSwitches("FeedUrl,BlogId,Owner")]
|
||||
public void Import() {
|
||||
var owner = _membershipService.GetUser(Owner);
|
||||
|
||||
@@ -120,10 +119,10 @@ namespace Orchard.Blogs.Commands {
|
||||
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 ) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The Orchard Blogs module is implementing basic blogging features.
|
||||
FeatureDescription: A simple web log.
|
||||
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
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
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.
|
||||
Features:
|
||||
Orchard.Comments:
|
||||
|
@@ -30,6 +30,5 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly:SecurityRules(SecurityRuleSet.Level2)]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: Contains designer tools to ease the Themes development process
|
||||
FeatureName: Shape Tracing
|
||||
Category: Designer
|
||||
|
@@ -88,7 +88,7 @@
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Scripts\Web.config" />
|
||||
<Content Include="Styles\Web.config" />
|
||||
<Content Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="Module.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@@ -31,5 +31,5 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
@@ -3,8 +3,8 @@ Path: MediaPicker
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: Description for the module
|
||||
Dependencies: Orchard.Media, Orchard.jQuery
|
||||
FeatureDescription: UI for browsing for, uploading, or selecting an image for an HTML editor.
|
||||
|
@@ -18,6 +18,7 @@
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -66,7 +67,7 @@
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Scripts\Web.config" />
|
||||
<Content Include="Styles\Web.config" />
|
||||
<Content Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="Module.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@@ -31,6 +31,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -3,7 +3,6 @@ using System.Xml;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Core.Shapes.Localization;
|
||||
using Orchard.Mvc;
|
||||
using Orchard.PublishLater.Models;
|
||||
using Orchard.PublishLater.Services;
|
||||
@@ -18,7 +17,6 @@ namespace Orchard.PublishLater.Drivers {
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly IPublishLaterService _publishLaterService;
|
||||
private readonly IClock _clock;
|
||||
private readonly IDateTimeLocalization _dateTimeLocalization;
|
||||
|
||||
private readonly Lazy<CultureInfo> _cultureInfo;
|
||||
|
||||
@@ -26,12 +24,10 @@ namespace Orchard.PublishLater.Drivers {
|
||||
IOrchardServices services,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
IPublishLaterService publishLaterService,
|
||||
IClock clock,
|
||||
IDateTimeLocalization dateTimeLocalization) {
|
||||
IClock clock) {
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_publishLaterService = publishLaterService;
|
||||
_clock = clock;
|
||||
_dateTimeLocalization = dateTimeLocalization;
|
||||
T = NullLocalizer.Instance;
|
||||
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 model = new PublishLaterViewModel(part) {
|
||||
ScheduledPublishUtc = part.ScheduledPublishUtc.Value,
|
||||
ScheduledPublishDate = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString(_dateTimeLocalization.ShortDateFormat.Text) : String.Empty,
|
||||
ScheduledPublishTime = part.ScheduledPublishUtc.Value.HasValue && !part.IsPublished() ? localDate.Value.ToString(_dateTimeLocalization.ShortTimeFormat.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("t", _cultureInfo.Value) : String.Empty,
|
||||
};
|
||||
|
||||
return ContentShape("Parts_PublishLater_Edit",
|
||||
@@ -80,10 +76,9 @@ namespace Orchard.PublishLater.Drivers {
|
||||
DateTime scheduled;
|
||||
|
||||
string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime);
|
||||
var dateTimeFormat = _dateTimeLocalization.ShortDateFormat + " " + _dateTimeLocalization.ShortTimeFormat;
|
||||
|
||||
// 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
|
||||
var timeZone = Services.WorkContext.CurrentTimeZone;
|
||||
|
@@ -3,8 +3,8 @@ Path: PublishLater
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The PublishLater module introduces draft creation and scheduled publishing functionality.
|
||||
FeatureDescription: Draft creation and scheduled publishing.
|
||||
Category: Content
|
||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -23,9 +23,9 @@ fieldset.publish-later-datetime input {
|
||||
}
|
||||
|
||||
input#PublishLater_ScheduledPublishDate {
|
||||
width:39%;
|
||||
width:10em;
|
||||
margin:0 0 0 12px;
|
||||
}
|
||||
input#PublishLater_ScheduledPublishTime {
|
||||
width:33%;
|
||||
width:7em;
|
||||
}
|
||||
|
@@ -1,10 +1,6 @@
|
||||
@model Orchard.PublishLater.ViewModels.PublishLaterViewModel
|
||||
@{
|
||||
Script.Require("jQueryUtils_TimePicker");
|
||||
Script.Require("jQueryUI_DatePicker");
|
||||
Style.Require("PublishLater_DatePicker");
|
||||
Style.Require("jQueryUtils_TimePicker");
|
||||
Style.Require("jQueryUI_DatePicker");
|
||||
}
|
||||
<fieldset class="publish-later-datetime">
|
||||
<legend>@T("Publish")</legend>
|
||||
@@ -18,6 +14,7 @@
|
||||
|
||||
@* generates the localization script *@
|
||||
@Display(New.DatePickerLocalization())
|
||||
@Display(New.TimePickerLocalization())
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
@@ -40,7 +37,7 @@
|
||||
});
|
||||
|
||||
$('#@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>
|
||||
|
@@ -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>
|
||||
}
|
||||
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 *@
|
||||
|
@@ -2,8 +2,8 @@
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
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.
|
||||
Category: Hosting
|
||||
|
@@ -66,7 +66,7 @@
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Scripts\Web.config" />
|
||||
<Content Include="Styles\Web.config" />
|
||||
<Content Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="Module.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@@ -31,6 +31,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
@@ -3,8 +3,8 @@ Path: Orchard.jQuery
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.4.1
|
||||
OrchardVersion: 1.4.1
|
||||
Version: 1.4.2
|
||||
OrchardVersion: 1.4.2
|
||||
Description: The jQuery module contains the jQuery and related script libraries.
|
||||
FeatureDescription: A common location for jQuery and related script libraries.
|
||||
Category: Core
|
||||
|
@@ -47,6 +47,7 @@
|
||||
</Reference>
|
||||
</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.min.js" />
|
||||
<Content Include="Scripts\jquery-ui.js" />
|
||||
@@ -114,7 +115,7 @@
|
||||
<Content Include="Scripts\jquery.ui.widget.js" />
|
||||
<Content Include="Scripts\jquery.ui.widget.min.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_75_ffffff_40x100.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\jquery-ui-1.8.18.custom.css" />
|
||||
<Content Include="Styles\ui.datepicker.css" />
|
||||
<Content Include="Styles\ui.timepickr.css" />
|
||||
<Content Include="Styles\ui.timepicker.css" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
|
||||
@@ -164,7 +165,9 @@
|
||||
<Content Include="web.config" />
|
||||
<Content Include="Views\Web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="Views\TimePickerLocalization.cshtml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.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.
|
||||
|
@@ -30,6 +30,6 @@ using System.Security;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[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_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_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");
|
||||
|
||||
// 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_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_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_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 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 monthNames = FormatJsList(dateTimeLocalization.MonthNames.Text);
|
||||
var monthNamesShort = FormatJsList(dateTimeLocalization.MonthNamesShort.Text);
|
||||
@@ -10,8 +25,8 @@
|
||||
// convert .NET format into jQuery format
|
||||
// http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
|
||||
// http://docs.jquery.com/UI/Datepicker/formatDate
|
||||
|
||||
var dateFormat = dateTimeLocalization.ShortDateFormat.Text
|
||||
|
||||
var dateFormat = cultureInfo.DateTimeFormat.ShortDatePattern
|
||||
.Replace("yyyy", "YY")
|
||||
.Replace("yy", "Y")
|
||||
.Replace("Y", "y")
|
||||
@@ -42,10 +57,12 @@
|
||||
weekHeader: '@T("Wk")', // Column header for week of the year
|
||||
dateFormat: '@dateFormat', // See format options on parseDate
|
||||
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
|
||||
yearSuffix: '@dateTimeLocalization.YearSuffix' // Additional text to append to the year in the month headers
|
||||
};
|
||||
|
||||
$.datepicker.setDefaults($.datepicker.regional['']);
|
||||
})
|
||||
//]]>
|
||||
</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
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[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
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.4.1")]
|
||||
[assembly: AssemblyFileVersion("1.4.1")]
|
||||
[assembly: AssemblyVersion("1.4.2")]
|
||||
[assembly: AssemblyFileVersion("1.4.2")]
|
||||
|
||||
|
Reference in New Issue
Block a user