mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-07-15 23:37:44 +08:00
Merge branch '1.10.2' into dev
This commit is contained in:
commit
c679547a39
@ -46,7 +46,7 @@ namespace Orchard.Core.Common.Drivers {
|
|||||||
return ContentShape("Fields_Common_Text_Edit", GetDifferentiator(field, part),
|
return ContentShape("Fields_Common_Text_Edit", GetDifferentiator(field, part),
|
||||||
() => {
|
() => {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<TextFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<TextFieldSettings>();
|
||||||
var text = part.IsNew() ? settings.DefaultValue : field.Value;
|
var text = part.IsNew() && String.IsNullOrEmpty(field.Value) ? settings.DefaultValue : field.Value;
|
||||||
|
|
||||||
var viewModel = new TextFieldDriverViewModel {
|
var viewModel = new TextFieldDriverViewModel {
|
||||||
Field = field,
|
Field = field,
|
||||||
|
@ -3,14 +3,26 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using Orchard.Alias.Implementation.Map;
|
using Orchard.Alias.Implementation.Map;
|
||||||
|
using Orchard.Alias.Implementation.Updater;
|
||||||
|
|
||||||
namespace Orchard.Alias.Implementation.Holder {
|
namespace Orchard.Alias.Implementation.Holder {
|
||||||
public class AliasHolder : IAliasHolder {
|
public class AliasHolder : IAliasHolder {
|
||||||
public AliasHolder() {
|
private readonly Lazy<IAliasHolderUpdater> _aliasHolderUpdater;
|
||||||
|
private readonly ConcurrentDictionary<string, AliasMap> _aliasMaps;
|
||||||
|
|
||||||
|
public AliasHolder(Lazy<IAliasHolderUpdater> aliasHolderUpdater) {
|
||||||
|
_aliasHolderUpdater = aliasHolderUpdater;
|
||||||
_aliasMaps = new ConcurrentDictionary<string, AliasMap>(StringComparer.OrdinalIgnoreCase);
|
_aliasMaps = new ConcurrentDictionary<string, AliasMap>(StringComparer.OrdinalIgnoreCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly ConcurrentDictionary<string, AliasMap> _aliasMaps;
|
private ConcurrentDictionary<string, AliasMap> GetOrRefreshAliasMaps() {
|
||||||
|
lock (_aliasMaps) {
|
||||||
|
if (_aliasMaps.Count == 0)
|
||||||
|
_aliasHolderUpdater.Value.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _aliasMaps;
|
||||||
|
}
|
||||||
|
|
||||||
public void SetAliases(IEnumerable<AliasInfo> aliases) {
|
public void SetAliases(IEnumerable<AliasInfo> aliases) {
|
||||||
var grouped = aliases.GroupBy(alias => alias.Area ?? String.Empty, StringComparer.InvariantCultureIgnoreCase);
|
var grouped = aliases.GroupBy(alias => alias.Area ?? String.Empty, StringComparer.InvariantCultureIgnoreCase);
|
||||||
@ -25,7 +37,7 @@ namespace Orchard.Alias.Implementation.Holder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void SetAlias(AliasInfo alias) {
|
public void SetAlias(AliasInfo alias) {
|
||||||
foreach (var map in _aliasMaps.Values) {
|
foreach (var map in GetOrRefreshAliasMaps().Values) {
|
||||||
map.Remove(alias);
|
map.Remove(alias);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,11 +45,11 @@ namespace Orchard.Alias.Implementation.Holder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<AliasMap> GetMaps() {
|
public IEnumerable<AliasMap> GetMaps() {
|
||||||
return _aliasMaps.Values;
|
return GetOrRefreshAliasMaps().Values;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AliasMap GetMap(string areaName) {
|
public AliasMap GetMap(string areaName) {
|
||||||
return _aliasMaps.GetOrAdd(areaName ?? String.Empty, key => new AliasMap(key));
|
return GetOrRefreshAliasMaps().GetOrAdd(areaName ?? String.Empty, key => new AliasMap(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveAlias(AliasInfo aliasInfo) {
|
public void RemoveAlias(AliasInfo aliasInfo) {
|
||||||
|
@ -44,7 +44,6 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th scope="col">@T("Alias")</th>
|
<th scope="col">@T("Alias")</th>
|
||||||
<th scope="col">@T("Route")</th>
|
<th scope="col">@T("Route")</th>
|
||||||
<th scope="col"> </th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@foreach (var aliasEntry in Model.AliasEntries) {
|
@foreach (var aliasEntry in Model.AliasEntries) {
|
||||||
|
@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers {
|
|||||||
protected override DriverResult Editor(ContentPart part, BooleanField field, dynamic shapeHelper) {
|
protected override DriverResult Editor(ContentPart part, BooleanField field, dynamic shapeHelper) {
|
||||||
return ContentShape("Fields_Boolean_Edit", GetDifferentiator(field, part),
|
return ContentShape("Fields_Boolean_Edit", GetDifferentiator(field, part),
|
||||||
() => {
|
() => {
|
||||||
if (part.IsNew()) {
|
if (part.IsNew() && field.Value == null) {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<BooleanFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<BooleanFieldSettings>();
|
||||||
field.Value = settings.DefaultValue;
|
field.Value = settings.DefaultValue;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ namespace Orchard.Fields.Drivers {
|
|||||||
|
|
||||||
protected override DriverResult Editor(ContentPart part, DateTimeField field, dynamic shapeHelper) {
|
protected override DriverResult Editor(ContentPart part, DateTimeField field, dynamic shapeHelper) {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<DateTimeFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<DateTimeFieldSettings>();
|
||||||
var value = part.IsNew() ? settings.DefaultValue : field.DateTime;
|
var value = part.IsNew() && field.DateTime == default(DateTime) ? settings.DefaultValue : field.DateTime;
|
||||||
var options = new DateLocalizationOptions();
|
var options = new DateLocalizationOptions();
|
||||||
|
|
||||||
// Don't do any time zone conversion if field is semantically a date-only field, because that might mutate the date component.
|
// Don't do any time zone conversion if field is semantically a date-only field, because that might mutate the date component.
|
||||||
|
@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers {
|
|||||||
protected override DriverResult Editor(ContentPart part, EnumerationField field, dynamic shapeHelper) {
|
protected override DriverResult Editor(ContentPart part, EnumerationField field, dynamic shapeHelper) {
|
||||||
return ContentShape("Fields_Enumeration_Edit", GetDifferentiator(field, part),
|
return ContentShape("Fields_Enumeration_Edit", GetDifferentiator(field, part),
|
||||||
() => {
|
() => {
|
||||||
if (part.IsNew()) {
|
if (part.IsNew() && String.IsNullOrEmpty(field.Value)) {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<EnumerationFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<EnumerationFieldSettings>();
|
||||||
if (!String.IsNullOrWhiteSpace(settings.DefaultValue)) {
|
if (!String.IsNullOrWhiteSpace(settings.DefaultValue)) {
|
||||||
field.Value = settings.DefaultValue;
|
field.Value = settings.DefaultValue;
|
||||||
|
@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers {
|
|||||||
protected override DriverResult Editor(ContentPart part, InputField field, dynamic shapeHelper) {
|
protected override DriverResult Editor(ContentPart part, InputField field, dynamic shapeHelper) {
|
||||||
return ContentShape("Fields_Input_Edit", GetDifferentiator(field, part),
|
return ContentShape("Fields_Input_Edit", GetDifferentiator(field, part),
|
||||||
() => {
|
() => {
|
||||||
if (part.IsNew()) {
|
if (part.IsNew() && String.IsNullOrEmpty(field.Value)) {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<InputFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<InputFieldSettings>();
|
||||||
field.Value = settings.DefaultValue;
|
field.Value = settings.DefaultValue;
|
||||||
}
|
}
|
||||||
|
@ -39,8 +39,12 @@ namespace Orchard.Fields.Drivers {
|
|||||||
() => {
|
() => {
|
||||||
if (part.IsNew()) {
|
if (part.IsNew()) {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<LinkFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<LinkFieldSettings>();
|
||||||
field.Value = settings.DefaultValue;
|
if (String.IsNullOrEmpty(field.Value)) {
|
||||||
field.Text = settings.TextDefaultValue;
|
field.Value = settings.DefaultValue;
|
||||||
|
}
|
||||||
|
if (String.IsNullOrEmpty(field.Text)) {
|
||||||
|
field.Text = settings.TextDefaultValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: field, Prefix: GetPrefix(field, part));
|
return shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: field, Prefix: GetPrefix(field, part));
|
||||||
});
|
});
|
||||||
|
@ -44,7 +44,7 @@ namespace Orchard.Fields.Drivers {
|
|||||||
return ContentShape("Fields_Numeric_Edit", GetDifferentiator(field, part),
|
return ContentShape("Fields_Numeric_Edit", GetDifferentiator(field, part),
|
||||||
() => {
|
() => {
|
||||||
var settings = field.PartFieldDefinition.Settings.GetModel<NumericFieldSettings>();
|
var settings = field.PartFieldDefinition.Settings.GetModel<NumericFieldSettings>();
|
||||||
var value = part.IsNew() ? settings.DefaultValue : Convert.ToString(field.Value, _cultureInfo.Value);
|
var value = part.IsNew() && field.Value == null ? settings.DefaultValue : Convert.ToString(field.Value, _cultureInfo.Value);
|
||||||
|
|
||||||
var model = new NumericFieldViewModel {
|
var model = new NumericFieldViewModel {
|
||||||
Field = field,
|
Field = field,
|
||||||
|
@ -87,7 +87,7 @@ namespace Orchard.JobsQueue.Controllers {
|
|||||||
if (_jobsQueueManager.GetJobsCount() > 0) {
|
if (_jobsQueueManager.GetJobsCount() > 0) {
|
||||||
_services.Notifier.Information(T("Processing is in progress."));
|
_services.Notifier.Information(T("Processing is in progress."));
|
||||||
processQueue = true;
|
processQueue = true;
|
||||||
_jobsQueueProcessor.ProcessQueue(10, 1);
|
_jobsQueueProcessor.ProcessQueue(1, 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_services.Notifier.Information(T("Processing has been completed."));
|
_services.Notifier.Information(T("Processing has been completed."));
|
||||||
|
@ -8,7 +8,7 @@ namespace Orchard.JobsQueue.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Sweep() {
|
public void Sweep() {
|
||||||
_jobsQueueProcessor.ProcessQueue(10, uint.MaxValue);
|
_jobsQueueProcessor.ProcessQueue(1, uint.MaxValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -41,9 +41,17 @@ namespace Orchard.Packaging.Extensions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static string ExtensionId(bool isTheme, string packageId) {
|
private static string ExtensionId(bool isTheme, string packageId) {
|
||||||
return isTheme ?
|
|
||||||
packageId.Substring(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Theme).Length) :
|
if (packageId.Contains(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Theme))
|
||||||
packageId.Substring(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Module).Length);
|
|| packageId.Contains(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Module))) {
|
||||||
|
|
||||||
|
return isTheme
|
||||||
|
? packageId.Substring(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Theme).Length)
|
||||||
|
: packageId.Substring(Services.PackagingSourceManager.GetExtensionPrefix(DefaultExtensionTypes.Module).Length);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return packageId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,13 +15,19 @@ namespace Orchard.Users.Handlers {
|
|||||||
public void Creating(UserContext context) {
|
public void Creating(UserContext context) {
|
||||||
_workflowManager.TriggerEvent("UserCreating",
|
_workflowManager.TriggerEvent("UserCreating",
|
||||||
context.User,
|
context.User,
|
||||||
() => new Dictionary<string, object> {{"User", context}});
|
() => new Dictionary<string, object> {
|
||||||
|
{"User", context.User},
|
||||||
|
{"UserParameters", context.UserParameters}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Created(UserContext context) {
|
public void Created(UserContext context) {
|
||||||
_workflowManager.TriggerEvent("UserCreated",
|
_workflowManager.TriggerEvent("UserCreated",
|
||||||
context.User,
|
context.User,
|
||||||
() => new Dictionary<string, object> {{"User", context}});
|
() => new Dictionary<string, object> {
|
||||||
|
{"User", context.User},
|
||||||
|
{"UserParameters", context.UserParameters}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoggingIn(string userNameOrEmail, string password) {
|
public void LoggingIn(string userNameOrEmail, string password) {
|
||||||
@ -78,4 +84,4 @@ namespace Orchard.Users.Handlers {
|
|||||||
() => new Dictionary<string, object> {{"User", user}});
|
() => new Dictionary<string, object> {{"User", user}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user