mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-25 02:44:56 +08:00
Merge branch '1.10.x' into dev
# Conflicts: # src/Gulpfile.js # src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Output/AzureOutputCacheStorageProvider.cs
This commit is contained in:
@@ -22,10 +22,7 @@ Our mission is to empower our users and foster a dedicated and diverse community
|
||||
|
||||
## Project Status
|
||||
|
||||
Orchard is currently in version **[1.10.1](https://github.com/OrchardCMS/Orchard/releases/tag/1.10.1)** and **[1.9.3](https://github.com/OrchardCMS/Orchard/releases/tag/1.9.3)**:
|
||||
|
||||
- *1.10.1* is the latest minor version that contains bugfixes and the more impactful changes and new features added in the latest major version (*1.10*). **If you're new to Orchard, you should use this version.**
|
||||
- *1.9.3* contains further bugfixes in addition to *1.9.2* and these versions are based on the feature set of Orchard *1.9*.
|
||||
Orchard is currently in version **[1.10.1](https://github.com/OrchardCMS/Orchard/releases/tag/1.10.1)**: It contains bugfixes and the more impactful changes and new features added in the latest major version (*1.10*).
|
||||
|
||||
We invite participation by the developer community in shaping the project’s direction, so that we can publicly validate our designs and development approach.
|
||||
All our releases are available on our [Releases](https://github.com/OrchardCMS/Orchard/releases) page, and it's easy to [Install Orchard using the Web Platform Installer](http://docs.orchardproject.net/Documentation/Installing-Orchard) as well. We encourage interested developers to check out the source code on the Orchard GitHub site and get involved with the project.
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||
<log4net xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
|
||||
<root>
|
||||
<priority value="ERROR" xdt:Transform="SetAttributes(value)" />
|
||||
<appender-ref ref="debug-file" xdt:Locator="Match(ref)" xdt:Transform="Remove" />
|
||||
</root>
|
||||
|
||||
<logger name="Orchard" xdt:Locator="Match(name)" xdt:Transform="Remove" />
|
||||
<appender name="debugger" xdt:Locator="Match(name)" xdt:Transform="Remove" />
|
||||
<appender name="debug-file" xdt:Locator="Match(name)" xdt:Transform="Remove" />
|
||||
|
||||
<appender>
|
||||
<immediateFlush value="false" xdt:Transform="SetAttributes(value)" />
|
||||
</appender>
|
||||
|
||||
</log4net>
|
||||
@@ -1,8 +1,12 @@
|
||||
@using Orchard.Utility.Extensions;
|
||||
@{
|
||||
var contentTypeClassName = ((string)Model.ContentItem.ContentType).HtmlClassify();
|
||||
Model.Classes.Add(contentTypeClassName);
|
||||
Model.Classes.Add("content-item");
|
||||
|
||||
var tag = Tag(Model, "article");
|
||||
}
|
||||
<article class="content-item @contentTypeClassName">
|
||||
@tag.StartElement
|
||||
<header>
|
||||
@Display(Model.Header)
|
||||
@if (Model.Meta != null) {
|
||||
@@ -17,4 +21,4 @@
|
||||
@Display(Model.Footer)
|
||||
</footer>
|
||||
}
|
||||
</article>
|
||||
@tag.EndElement
|
||||
|
||||
@@ -168,7 +168,7 @@ namespace Lucene.Services {
|
||||
writer.DeleteDocuments(query);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.Error(ex, "An unexpected error occured while removing the documents [{0}] from the index [{1}].", String.Join(", ", documentIds), indexName);
|
||||
Logger.Error(ex, "An unexpected error occurred while removing the documents [{0}] from the index [{1}].", String.Join(", ", documentIds), indexName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,8 +172,8 @@ namespace Orchard.Alias.Controllers {
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Services.TransactionManager.Cancel();
|
||||
Services.Notifier.Error(T("An error occured while creating the alias {0}: {1}. Please check the values are correct.", aliasPath, ex.Message));
|
||||
Logger.Error(ex, T("An error occured while creating the alias {0}", aliasPath).Text);
|
||||
Services.Notifier.Error(T("An error occurred while creating the alias {0}: {1}. Please check the values are correct.", aliasPath, ex.Message));
|
||||
Logger.Error(ex, T("An error occurred while creating the alias {0}", aliasPath).Text);
|
||||
|
||||
ViewBag.Path = aliasPath;
|
||||
ViewBag.Route = routePath;
|
||||
@@ -236,8 +236,8 @@ namespace Orchard.Alias.Controllers {
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Services.TransactionManager.Cancel();
|
||||
Services.Notifier.Error(T("An error occured while editing the alias '{0}': {1}. Please check the values are correct.", aliasPath, ex.Message));
|
||||
Logger.Error(ex, T("An error occured while creating the alias '{0}'", aliasPath).Text);
|
||||
Services.Notifier.Error(T("An error occurred while editing the alias '{0}': {1}. Please check the values are correct.", aliasPath, ex.Message));
|
||||
Logger.Error(ex, T("An error occurred while creating the alias '{0}'", aliasPath).Text);
|
||||
|
||||
ViewBag.Path = aliasPath;
|
||||
ViewBag.Route = routePath;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Orchard.AntiSpam.Services {
|
||||
return SpamStatus.Ham;
|
||||
}
|
||||
catch(Exception e) {
|
||||
Logger.Error(e, "An error occured while checking for spam");
|
||||
Logger.Error(e, "An error occurred while checking for spam");
|
||||
return SpamStatus.Spam;
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ namespace Orchard.AntiSpam.Services {
|
||||
var result = ExecuteValidateRequest(context, "submit-spam");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Logger.Error(e, "An error occured while reporting spam");
|
||||
Logger.Error(e, "An error occurred while reporting spam");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace Orchard.AntiSpam.Services {
|
||||
var result = ExecuteValidateRequest(context, "submit-ham");
|
||||
}
|
||||
catch (Exception e) {
|
||||
Logger.Error(e, "An error occured while reporting ham");
|
||||
Logger.Error(e, "An error occurred while reporting ham");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace Orchard.Azure.Services.FileSystems {
|
||||
private static string ConvertToRelativeUriPath(string path) {
|
||||
var newPath = path.Replace(@"\", "/");
|
||||
|
||||
if (newPath.StartsWith("/") || newPath.StartsWith("http://") || newPath.StartsWith("https://")) {
|
||||
if (newPath.StartsWith("/", StringComparison.OrdinalIgnoreCase) || newPath.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || newPath.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) {
|
||||
throw new ArgumentException("Path must be relative");
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace Orchard.Azure.Services.FileSystems {
|
||||
return path2;
|
||||
}
|
||||
|
||||
if (path2.StartsWith("http://") || path2.StartsWith("https://")) {
|
||||
if (path2.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || path2.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) {
|
||||
return path2;
|
||||
}
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ namespace Orchard.Blogs.Commands {
|
||||
Context.Output.WriteLine(T("Found {0} items", doc.Descendants("item").Count()));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
throw new OrchardException(T("An error occured while loading the feed at {0}.", FeedUrl), ex);
|
||||
throw new OrchardException(T("An error occurred while loading the feed at {0}.", FeedUrl), ex);
|
||||
}
|
||||
|
||||
var blog = _blogService.Get(BlogId, VersionOptions.Latest);
|
||||
|
||||
@@ -517,7 +517,7 @@ namespace Orchard.CodeGeneration.Commands {
|
||||
File.SetLastWriteTime(solutionPath, DateTime.Now);
|
||||
}
|
||||
catch {
|
||||
output.WriteLine(T("An unexpected error occured while trying to refresh the Visual Studio solution. Please reload it."));
|
||||
output.WriteLine(T("An unexpected error occurred while trying to refresh the Visual Studio solution. Please reload it."));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ namespace Orchard.Comments.Services {
|
||||
_messageService.Send("Email", parameters);
|
||||
}
|
||||
catch(Exception e) {
|
||||
Logger.Error(e, "An unexpected error occured while sending a notification email");
|
||||
Logger.Error(e, "An unexpected error occurred while sending a notification email");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,8 +83,8 @@ namespace Orchard.Indexing.Controllers {
|
||||
Services.Notifier.Success(T("Index named {0} created successfully", id));
|
||||
}
|
||||
catch(Exception e) {
|
||||
Services.Notifier.Error(T("An error occured while creating the index: {0}", id));
|
||||
Logger.Error("An error occured while creatign the index " + id, e);
|
||||
Services.Notifier.Error(T("An error occurred while creating the index: {0}", id));
|
||||
Logger.Error("An error occurred while creatign the index " + id, e);
|
||||
return View("Create", id);
|
||||
}
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ namespace Orchard.Indexing.Services {
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.Warning(ex, "An error occured while adding a document to the index");
|
||||
Logger.Warning(ex, "An error occurred while adding a document to the index");
|
||||
}
|
||||
|
||||
// removing documents from the index
|
||||
@@ -299,7 +299,7 @@ namespace Orchard.Indexing.Services {
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.Warning(ex, "An error occured while removing a document from the index");
|
||||
Logger.Warning(ex, "An error occurred while removing a document from the index");
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace Orchard.Layouts.Helpers {
|
||||
|
||||
public static OrchardTagBuilder AddCommonElementAttributes(this OrchardTagBuilder tagBuilder, dynamic shape) {
|
||||
var attributes = GetCommonElementAttributes(shape);
|
||||
tagBuilder.MergeAttributes(shape.Attributes);
|
||||
tagBuilder.MergeAttributes(attributes);
|
||||
return tagBuilder;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace Orchard.MediaProcessing.Shapes {
|
||||
Output.Write(_imageProfileManager.Value.GetImageProfileUrl(Path, Profile, CustomFilter, ContentItem));
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.Error(ex, "An error occured while rendering shape {0} for image {1}", Profile, Path);
|
||||
Logger.Error(ex, "An error occurred while rendering shape {0} for image {1}", Profile, Path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace Orchard.MessageBus.Brokers.SqlServer {
|
||||
}
|
||||
}
|
||||
catch(Exception e) {
|
||||
Logger.Error(e, "An error occured while creating a Worker.");
|
||||
Logger.Error(e, "An error occurred while creating a Worker.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace Orchard.MessageBus.Brokers.SqlServer {
|
||||
|
||||
}
|
||||
catch (Exception e) {
|
||||
Logger.Error(e, "An unexpected error occured while monitoring sql dependencies.");
|
||||
Logger.Error(e, "An unexpected error occurred while monitoring sql dependencies.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Orchard.Migrations.Commands {
|
||||
}
|
||||
}
|
||||
catch ( Exception ex ) {
|
||||
throw new OrchardException(T("An error occured while upgrading the database."), ex);
|
||||
throw new OrchardException(T("An error occurred while upgrading the database."), ex);
|
||||
}
|
||||
|
||||
Context.Output.WriteLine(T("Database upgraded"));
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace Orchard.Migrations.Commands {
|
||||
_schemaCommandGenerator.UpdateDatabase();
|
||||
}
|
||||
catch ( Exception ex ) {
|
||||
throw new OrchardException(T("An error occured while updating the database."), ex);
|
||||
throw new OrchardException(T("An error occurred while updating the database."), ex);
|
||||
}
|
||||
|
||||
Context.Output.WriteLine(T("Database updated"));
|
||||
@@ -54,7 +54,7 @@ namespace Orchard.Migrations.Commands {
|
||||
}
|
||||
}
|
||||
catch ( Exception ex ) {
|
||||
throw new OrchardException(T("An error occured while creating the tables."), ex);
|
||||
throw new OrchardException(T("An error occurred while creating the tables."), ex);
|
||||
}
|
||||
|
||||
Context.Output.WriteLine(T("Tables created"));
|
||||
|
||||
@@ -232,7 +232,7 @@ namespace Orchard.Modules.Controllers {
|
||||
Services.Notifier.Success(T("The feature {0} was updated successfully", id));
|
||||
}
|
||||
catch (Exception exception) {
|
||||
Services.Notifier.Error(T("An error occured while updating the feature {0}: {1}", id, exception.Message));
|
||||
Services.Notifier.Error(T("An error occurred while updating the feature {0}: {1}", id, exception.Message));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -226,6 +226,12 @@ namespace Orchard.OutputCache.Filters {
|
||||
// To prevent access to the original lifetime scope a new work context scope should be created here and dependencies
|
||||
// should be resolved from it.
|
||||
|
||||
// Recheck the response status code incase it was modified before the callback.
|
||||
if (response.StatusCode != 200) {
|
||||
Logger.Debug("Response for item '{0}' will not be cached because status code was set to {1} during rendering.", _cacheKey, response.StatusCode);
|
||||
return;
|
||||
}
|
||||
|
||||
using (var scope = _workContextAccessor.CreateWorkContextScope()) {
|
||||
var cacheItem = new CacheItem() {
|
||||
CachedOnUtc = _now,
|
||||
@@ -613,7 +619,7 @@ namespace Orchard.OutputCache.Filters {
|
||||
return cacheItem;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Logger.Error(e, "An unexpected error occured while reading a cache entry");
|
||||
Logger.Error(e, "An unexpected error occurred while reading a cache entry");
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -69,6 +69,8 @@ namespace Orchard.Projections.FilterEditors.Forms {
|
||||
case StringOperator.Contains:
|
||||
return x => x.Like(property, Convert.ToString(value), HqlMatchMode.Anywhere);
|
||||
case StringOperator.ContainsAny:
|
||||
if (string.IsNullOrEmpty((string)value))
|
||||
return x => x.Eq("Id", "0");
|
||||
var values1 = Convert.ToString(value).Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var predicates1 = values1.Skip(1).Select<string, Action<IHqlExpressionFactory>>(x => y => y.Like(property, x, HqlMatchMode.Anywhere)).ToArray();
|
||||
return x => x.Disjunction(y => y.Like(property, values1[0], HqlMatchMode.Anywhere), predicates1);
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace Orchard.Redis.MessageBus {
|
||||
|
||||
}
|
||||
catch (Exception e) {
|
||||
Logger.Error(e, "An error occured while subscribing to " + channel);
|
||||
Logger.Error(e, "An error occurred while subscribing to " + channel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace Orchard.Setup.Services {
|
||||
|
||||
using (var environment = bootstrapLifetimeScope.CreateWorkContextScope()) {
|
||||
|
||||
// Check if the database is already created (in case an exception occured in the second phase).
|
||||
// Check if the database is already created (in case an exception occurred in the second phase).
|
||||
var schemaBuilder = new SchemaBuilder(environment.Resolve<IDataMigrationInterpreter>());
|
||||
var installationPresent = true;
|
||||
try {
|
||||
|
||||
@@ -249,8 +249,8 @@ namespace Orchard.Themes.Controllers {
|
||||
Services.Notifier.Success(T("The theme {0} was updated successfully", themeId));
|
||||
Logger.Information("The theme {0} was updated successfully.", themeId);
|
||||
} catch (Exception exception) {
|
||||
Logger.Error(T("An error occured while updating the theme {0}: {1}", themeId, exception.Message).Text);
|
||||
Services.Notifier.Error(T("An error occured while updating the theme {0}: {1}", themeId, exception.Message));
|
||||
Logger.Error(T("An error occurred while updating the theme {0}: {1}", themeId, exception.Message).Text);
|
||||
Services.Notifier.Error(T("An error occurred while updating the theme {0}: {1}", themeId, exception.Message));
|
||||
}
|
||||
|
||||
return RedirectToAction("Index");
|
||||
|
||||
@@ -67,6 +67,8 @@ namespace Orchard.Users.Activities {
|
||||
yield break;
|
||||
}
|
||||
|
||||
userName = userName.Trim();
|
||||
|
||||
var user = _membershipService.CreateUser(
|
||||
new CreateUserParams(
|
||||
userName,
|
||||
|
||||
@@ -6,3 +6,6 @@
|
||||
@Display(Model.Sidebar)
|
||||
</div>
|
||||
</div>
|
||||
@if (!String.IsNullOrWhiteSpace(Request.QueryString["returnUrl"])) {
|
||||
@Html.Hidden("returnUrl", Request.QueryString["returnUrl"])
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace Orchard.Warmup.Services {
|
||||
return null;
|
||||
}
|
||||
catch(Exception e) {
|
||||
Logger.Error(e, "An error occured while downloading url: {0}", url);
|
||||
Logger.Error(e, "An error occurred while downloading url: {0}", url);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Orchard.Widgets.Layouts.Providers {
|
||||
? _contentManager.Value.Get(widgetId.Value, versionOptions)
|
||||
: _contentManager.Value.New(contentTypeName);
|
||||
|
||||
var widgetShape = widget != null ? _contentManager.Value.BuildDisplay(widget) : default(dynamic);
|
||||
var widgetShape = widget != null ? _contentManager.Value.BuildDisplay(widget, context.DisplayType) : default(dynamic);
|
||||
context.ElementShape.Widget = widget;
|
||||
context.ElementShape.WidgetShape = widgetShape;
|
||||
}
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
<fieldset>
|
||||
@Html.LabelFor(layer => layer.LayerRule, T("Layer Rule"))
|
||||
@Html.TextAreaFor(layer => layer.LayerRule, new { spellcheck = "false" })
|
||||
<span class="hint">@T("An expression that evaluates to true when the widgets in this layer must be displayed. See <a href=\"http://docs.orchardproject.net/Documentation/Managing-widgets#AddingaLayer\">http://docs.orchardproject.net/Documentation/Managing-widgets#AddingaLayer</a> for more information.")</span>
|
||||
<span class="hint">@T("An expression that evaluates to true when the widgets in this layer must be displayed. See <a href=\"http://docs.orchardproject.net/en/latest/Documentation/Managing-widgets/#adding-a-layer\">http://docs.orchardproject.net/en/latest/Documentation/Managing-widgets/#adding-a-layer</a> for more information.")</span>
|
||||
</fieldset>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
}
|
||||
<div class="layout-placeholder">
|
||||
@if (widget != null) {
|
||||
@String.Format("{0} - {1}", Html.ItemDisplayText(widget), widget.TypeDefinition.DisplayName)
|
||||
@T("{0} - {1}", Html.ItemDisplayText(widget), widget.TypeDefinition.DisplayName)
|
||||
}
|
||||
else {
|
||||
@T("Widget Not Found");
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
top: 0;
|
||||
position: fixed;
|
||||
background-color: white;
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
#stickyContainer.container-layout {
|
||||
width: 100%;
|
||||
}
|
||||
#stickyContainer.sticky-container-layout {
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
@@ -2,11 +2,9 @@
|
||||
top: 0;
|
||||
position: fixed;
|
||||
background-color: white;
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
#stickyContainer.container-layout {
|
||||
width: 100%;
|
||||
}
|
||||
#stickyContainer.sticky-container-layout {
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
#stickyContainer.sticky-top{top:0;position:fixed;background-color:#fff;}#stickyContainer.container-layout{width:100%;}#stickyContainer.sticky-container-layout{border-top:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;}
|
||||
#stickyContainer.sticky-top{top:0;position:fixed;background-color:#fff;border-top:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;}#stickyContainer.container-layout{width:100%;}
|
||||
@@ -34,28 +34,47 @@ tinyMCE.init({
|
||||
$(document).bind("localization.ui.directionalitychanged", function(event, directionality) {
|
||||
editor.getBody().dir = directionality;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// If the editable area is taller than the window, make the menu and the toolbox sticky-positioned within the editor
|
||||
// If the focused editable area is taller than the window, make the menu and the toolbox sticky-positioned within the editor
|
||||
// to help the user avoid excessive vertical scrolling.
|
||||
// There is a built-in fixed_toolbar_container option in the TinyMCE, but we can't use it, because it is only
|
||||
// available if the selector is a DIV with inline mode.
|
||||
|
||||
$(window).load(function () {
|
||||
editor.on('focus', function () {
|
||||
var $contentArea = $(this.contentAreaContainer.parentElement);
|
||||
stickyToolbar($contentArea);
|
||||
});
|
||||
|
||||
editor.on('blur', function () {
|
||||
var $contentArea = $(this.contentAreaContainer.parentElement);
|
||||
var isAdded = false;
|
||||
$contentArea.prepend($contentArea.find("div.mce-toolbar-grp"));
|
||||
$contentArea.prepend($contentArea.find("div.mce-menubar"));
|
||||
$("#stickyContainer").remove();
|
||||
$("#stickyPlaceholder").remove();
|
||||
});
|
||||
|
||||
function stickyToolbar($contentArea) {
|
||||
var $container = $("<div/>", { id: "stickyContainer", class: "container-layout" });
|
||||
$(".mce-stack-layout:first").prepend($container);
|
||||
$container.append($(".mce-menubar"));
|
||||
$container.append($(".mce-toolbar-grp"));
|
||||
|
||||
var containerPosition = $container.get(0).getBoundingClientRect();
|
||||
var $placeholder = $("<div/>");
|
||||
$contentArea.prepend($container);
|
||||
$container.append($contentArea.find("div.mce-menubar"));
|
||||
$container.append($contentArea.find("div.mce-toolbar-grp"));
|
||||
|
||||
var $containerPosition = $container.offset();
|
||||
var $placeholder = $("<div/>", { id: "stickyPlaceholder" });
|
||||
var isAdded = false;
|
||||
|
||||
if ($(window).scrollTop() >= $containerPosition.top && !isAdded) {
|
||||
$container.addClass("sticky-top");
|
||||
$placeholder.insertBefore($container);
|
||||
$container.width($placeholder.width());
|
||||
$placeholder.height($container.height());
|
||||
}
|
||||
|
||||
$(window).scroll(function (event) {
|
||||
var $statusbarPosition = $(".mce-statusbar").offset();
|
||||
if ($(window).scrollTop() >= containerPosition.top && !isAdded) {
|
||||
var $statusbarPosition = $contentArea.find("div.mce-statusbar").offset();
|
||||
if ($(window).scrollTop() >= $containerPosition.top && !isAdded) {
|
||||
$container.addClass("sticky-top");
|
||||
$placeholder.insertBefore($container);
|
||||
$container.width($placeholder.width());
|
||||
@@ -64,12 +83,10 @@ $(window).load(function () {
|
||||
$container.width($placeholder.width());
|
||||
$placeholder.height($container.height());
|
||||
});
|
||||
$container.addClass("sticky-container-layout");
|
||||
isAdded = true;
|
||||
} else if ($(window).scrollTop() < containerPosition.top && isAdded) {
|
||||
} else if ($(window).scrollTop() < $containerPosition.top && isAdded) {
|
||||
$container.removeClass("sticky-top");
|
||||
$placeholder.remove();
|
||||
$container.removeClass("sticky-container-layout");
|
||||
$(window).on("resize", function () {
|
||||
$container.width("100%");
|
||||
});
|
||||
@@ -81,4 +98,11 @@ $(window).load(function () {
|
||||
$container.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,13 +7,11 @@
|
||||
top: 0;
|
||||
position: fixed;
|
||||
background-color: white;
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
#stickyContainer.container-layout {
|
||||
width: 100%;
|
||||
}
|
||||
#stickyContainer.sticky-container-layout {
|
||||
border-top: 1px solid #9e9e9e;
|
||||
border-bottom: 1px solid #9e9e9e;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yY2hhcmQtdGlueW1jZS5jc3MiLCJvcmNoYXJkLXRpbnltY2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNMQTtFQUNFLE9BQUE7RUFDQSxnQkFBQTtFQUNBLHdCQUFBO0NEQ0Q7QUNDRDtFQUNFLFlBQUE7Q0RDRDtBQ0NEO0VBQ0UsOEJBQUE7RUFDQSxpQ0FBQTtDRENEIiwiZmlsZSI6Im9yY2hhcmQtdGlueW1jZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjc3RpY2t5Q29udGFpbmVyLnN0aWNreS10b3Age1xuICB0b3A6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jc3RpY2t5Q29udGFpbmVyLmNvbnRhaW5lci1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbiNzdGlja3lDb250YWluZXIuc3RpY2t5LWNvbnRhaW5lci1sYXlvdXQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzllOWU5ZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XG59XG4iLCLvu78jc3RpY2t5Q29udGFpbmVyLnN0aWNreS10b3Age1xyXG4gIHRvcDogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuI3N0aWNreUNvbnRhaW5lci5jb250YWluZXItbGF5b3V0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4jc3RpY2t5Q29udGFpbmVyLnN0aWNreS1jb250YWluZXItbGF5b3V0IHtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzllOWU5ZTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzllOWU5ZTtcclxufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
|
||||
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yY2hhcmQtdGlueW1jZS5jc3MiLCJvcmNoYXJkLXRpbnltY2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNMQTtFQUNFLE9BQUE7RUFDQSxnQkFBQTtFQUNBLHdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxpQ0FBQTtDRENEO0FDQ0Q7RUFDRSxZQUFBO0NEQ0QiLCJmaWxlIjoib3JjaGFyZC10aW55bWNlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNzdGlja3lDb250YWluZXIuc3RpY2t5LXRvcCB7XG4gIHRvcDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5ZTllOWU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWU5ZTllO1xufVxuI3N0aWNreUNvbnRhaW5lci5jb250YWluZXItbGF5b3V0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4iLCLvu78jc3RpY2t5Q29udGFpbmVyLnN0aWNreS10b3Age1xyXG4gIHRvcDogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5ZTllOWU7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XHJcbn1cclxuI3N0aWNreUNvbnRhaW5lci5jb250YWluZXItbGF5b3V0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
|
||||
|
||||
@@ -1 +1 @@
|
||||
#stickyContainer.sticky-top{top:0;position:fixed;background-color:#fff}#stickyContainer.container-layout{width:100%}#stickyContainer.sticky-container-layout{border-top:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e}
|
||||
#stickyContainer.sticky-top{top:0;position:fixed;background-color:#fff;border-top:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e}#stickyContainer.container-layout{width:100%}
|
||||
@@ -76,7 +76,7 @@ namespace Orchard.Data.Migration.Schema {
|
||||
if (ex.IsFatal()) {
|
||||
throw;
|
||||
}
|
||||
throw new OrchardException(T("An unexpected error occured while executing the SQL statement: {0}", sql), ex); // Add the sql to the nested exception information
|
||||
throw new OrchardException(T("An unexpected error occurred while executing the SQL statement: {0}", sql), ex); // Add the sql to the nested exception information
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace Orchard.Environment {
|
||||
throw;
|
||||
}
|
||||
|
||||
Logger.Error(ex, "An unexpected error occured while terminating the Shell");
|
||||
Logger.Error(ex, "An unexpected error occurred while terminating the Shell");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Orchard.Exceptions.Filters {
|
||||
}
|
||||
|
||||
public void OnActionExecuted(ActionExecutedContext filterContext) {
|
||||
// for exceptions which occured during the action execution
|
||||
// for exceptions which occurred during the action execution
|
||||
|
||||
// don't provide custom errors if the action has some custom code to handle exceptions
|
||||
if (!filterContext.ActionDescriptor.GetCustomAttributes(typeof(HandleErrorAttribute), false).Any()) {
|
||||
@@ -92,7 +92,7 @@ namespace Orchard.Exceptions.Filters {
|
||||
}
|
||||
|
||||
public void OnResultExecuted(ResultExecutedContext filterContext) {
|
||||
// for exceptions which occured during the action execution
|
||||
// for exceptions which occurred during the action execution
|
||||
|
||||
// don't provide custom errors if the action has some custom code to handle exceptions
|
||||
if (!filterContext.ExceptionHandled && filterContext.Exception != null) {
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Orchard.FileSystems.LockFile {
|
||||
return true;
|
||||
}
|
||||
catch {
|
||||
// an error occured while reading/creating the lock file
|
||||
// an error occurred while reading/creating the lock file
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
@@ -46,7 +46,7 @@ namespace Orchard.FileSystems.LockFile {
|
||||
return IsLockedImpl(path);
|
||||
}
|
||||
catch {
|
||||
// an error occured while reading the file
|
||||
// an error occurred while reading the file
|
||||
return true;
|
||||
}
|
||||
finally {
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Orchard.Messaging.Services {
|
||||
if (ex.IsFatal()) {
|
||||
throw;
|
||||
}
|
||||
Logger.Error(ex, "An error occured while sending the message {0}", type);
|
||||
Logger.Error(ex, "An error occurred while sending the message {0}", type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace Orchard.Messaging.Services {
|
||||
if (ex.IsFatal()) {
|
||||
throw;
|
||||
}
|
||||
Logger.Error(ex, "An error occured while sending the message {0}", type);
|
||||
Logger.Error(ex, "An error occurred while sending the message {0}", type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user