Compare commits

...

28 Commits

Author SHA1 Message Date
Sipke Schoorstra
b8acabd3e0 Wrapped owin middleware config
This wraps owin middle ware configuration within a work context scope.

Fixes #6991
2016-09-28 16:15:51 +02:00
Sipke Schoorstra
8218535d27 Added CodeRush for Roslyn settings folder to .gitignore. 2016-09-28 16:10:46 +02:00
Matthew Harris
a7c4dfbf7c [Fixes #7153] Typo .buton:active in several css files (#7154)
* [Fixes #7153] Typo .buton:active in several css files

[Fixes #7153] Typo .buton:active in several css files

* [Fixes #7153] Typo .buton:active in several css files

[Fixes #7153] Typo .buton:active in several css files

* [Fixes #7153] Typo .buton:active in several css files

[Fixes #7153] Typo .buton:active in several css files

* [Fixes #7153] Typo .buton:active in several css files

[Fixes #7153] Typo .buton:active in several css files
2016-09-24 22:30:55 +02:00
Sipke Schoorstra
bc74aec232 Fixed ContentFieldHarvester when NULL Content
The content field harvester throws an error when the LayoutEditor is rendered without having a content item as the context (BluePrints, for example). The previous code would fall back to simply enumerating all fields of all parts to make available all content fields as elements. However, the content field elements can't render these fields without having a proper content item as context, so it would fail with an exception.

There are scenarios where one might still want to be able to add content field elements on the canvas even when there is no current content item (to create template layouts for example). But to support this, we need to figure out what we want to render if we can;t actually render the content field at design time. Perhaps a simplified representation would suffice in this scenario. To be discussed. Removing the broken feature for now.
2016-09-24 11:45:19 +02:00
Matthew Harris
84a95e3cb9 [Fixes #7125] tokenized css class left behind (#7127) 2016-09-22 13:03:46 -07:00
Matthew Harris
50224d5ebe [Fixes #7129] Boolean.cshtml doesn't have * required support in view (#7133) 2016-09-22 12:48:21 -07:00
Matthew Harris
357f1aa166 Fix incorrect title on edit page
Fixes #7142
2016-09-22 12:18:21 -07:00
Matthew Harris
27d5c6658a Labels hidden when datetime field added (#7146)
Fixes #7144
2016-09-22 12:13:26 -07:00
Daniel Stenson
8ec6e8a724 Preserve returnUrl value in Content-User.Edit.cshtml
Fixes #7141 #3447
2016-09-22 12:07:23 -07:00
Matthew Harris
e3c0c97b66 [Fixes #7121] Fix incorrect documentation url 2016-09-15 12:07:53 -07:00
Matthew Harris
be31746c4e [Fixes #7119] Path Comparison Case Sensitivity 2016-09-15 12:07:09 -07:00
Matthew Harris
0cac0ac601 [Fixes #7104] - Widget Element Title Encoding Fix 2016-09-02 09:21:21 -07:00
Mohammad Dameer
01fa02bd90 [Fixes #6812] Add shape attributes to "CreateElementTagBuilder" 2016-08-25 12:49:13 -07:00
jtkech
94ddb257e1 Pass the right display type to the widget element. (#7074) 2016-08-25 12:47:21 -07:00
judgestone
1c1e9e4c97 Allowing adding classes through ShapeTableBuilder.Describe
Small change to Content.Summary.cshtml to allow module developers to add classes to Content.Summary.cshtml via ShapeTableBuilder.Describe.

Fixes #7089
2016-08-19 09:39:00 -07:00
adrian booth
84288aeff6 fix typo of occured for logging messages and notification (#7083) 2016-08-15 14:25:41 +02:00
Pablo Sanchez
0deab6bd0d Sanitize username in activity 2016-08-04 12:58:41 -07:00
Lombiq
4c1254e128 Fixing that the debug log was created even in Release mode 2016-08-01 00:30:40 +02:00
Pablo Sanchez
dcc63228e5 [Fixes #7003] Fixing NRE 2016-07-21 12:31:40 -07:00
Carl Woodhouse
35c379191e [Fixes #7034] Don't cache pages when status code is changed in the view
* Fixed the output caching of non 200 responses when errors are thrown in views

* Added debug message to output cache when the response isn't cached due to a non 200 status code.
2016-07-21 12:17:33 -07:00
Lombiq
dbbeb175a6 Readme: Simplifying the "Project Status" section 2016-07-12 21:42:17 +02:00
Lombiq
a5b1aa5d2a Fixing that with multiple TinyMCE editors on a page multiple toolbars also appeared, see #7022 2016-07-12 18:08:02 +02:00
Daniel Stolt
e04b12d177 Removed incorrect comments in Gulpfile.js. 2016-07-03 12:52:48 +02:00
Lombiq
74011e659b README: updating 1.10.1 release description 2016-06-29 22:57:47 +02:00
Lombiq
7aa6371ec1 README: updating released versions, adding links to releases, fixing Azure deploy link 2016-06-29 22:44:07 +02:00
Lombiq
c004545eeb Updating README from the dev branch 2016-06-29 22:36:08 +02:00
Lombiq
31f07a44e4 The TinyMce toolbar is now always visible in the editor, even if scrolled down, fixes #5769 2016-06-28 23:48:50 +02:00
Lombiq
13f3473868 Some grammar fixes (I hope) in NavigationAliasProvider 2016-06-28 17:03:04 +02:00
69 changed files with 289 additions and 115 deletions

3
.gitignore vendored
View File

@@ -68,6 +68,9 @@ ipch/
_ReSharper*/
*.[Rr]e[Ss]harper
# CodeRush is a .NET coding add-in
.cr*/
# TeamCity is a build add-in
_TeamCity*

View File

@@ -6,7 +6,7 @@ Orchard is a free, open source, community-focused Content Management System buil
You can try it for free on [DotNest.com](https://dotnest.com) or on Microsoft Azure by clicking on this button.
[![Deploy to Azure](https://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/OutercurveFoundation.OrchardCMS.1.0.4)
[![Deploy to Azure](https://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/OutercurveFoundation.OrchardCMS)
## About The Orchard Project
@@ -22,8 +22,10 @@ Our mission is to empower our users and foster a dedicated and diverse community
## Project Status
Orchard is currently in version 1.9.2. We invite participation by the developer community in shaping the projects direction, so that we can publicly validate our designs and development approach.
Our 1.9.2 release is available from our Downloads page, and is easy to [Install Orchard using the Web Platform Installer](http://docs.orchardproject.net/Documentation/Installing-Orchard). We encourage interested developers to check out the source code on the Orchard Github site and get involved with the project.
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 projects 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.
* [Download the latest release](https://github.com/OrchardCMS/Orchard/releases)
* [Feature roadmap](http://docs.orchardproject.net/Documentation/feature-roadmap)
@@ -51,4 +53,4 @@ There are many ways you can [contribute to Orchard](http://orchardproject.net/co
## The Future Of Orchard CMS: Orchard 2
As the underlying frameworks (.NET, ASP.NET and ASP.NET MVC) are constantly evolving, Orchard of course keeps track of the changes and improvements of these: Orchard 2 is the next generation of Orchard releases that is based on [ASP.NET vNext](http://www.asp.net/vnext). Just like the current Orchard project, it's fully [open-source and is publicly available on GitHub](https://github.com/OrchardCMS/Orchard2). Orchard 2 (as a framework) is being built from scratch: it's still in development and does not share any of its code base (at least directly) with the current versions of Orchard.
As the underlying frameworks (.NET, ASP.NET and ASP.NET MVC) are constantly evolving, Orchard of course keeps track of the changes and improvements of these: Orchard 2 is the next generation of Orchard releases that is based on [ASP.NET Core](http://www.asp.net/core). Just like the current Orchard project, it's fully [open-source and is publicly available on GitHub](https://github.com/OrchardCMS/Orchard2). Orchard 2 (as a framework) is being built from scratch: it's still in development and does not share any of its code base (at least directly) with the current versions of Orchard.

View File

@@ -140,11 +140,10 @@ function buildCssPipeline(assetGroup, doConcat, doRebuild) {
.pipe(gulpif(generateSourceMaps, sourcemaps.init()))
.pipe(gulpif("*.less", less()))
.pipe(gulpif("*.scss", sass({
precision: 10
precision: 10
})))
.pipe(gulpif(doConcat, concat(assetGroup.outputFileName)))
.pipe(autoprefixer({ browsers: ["last 2 versions"] }))
// TODO: Start using below whenever gulp-header supports sourcemaps.
.pipe(header(
"/*\n" +
"** NOTE: This file is generated by Gulp and should not be edited directly!\n" +
@@ -183,8 +182,7 @@ function buildJsPipeline(assetGroup, doConcat, doRebuild) {
noEmitOnError: true,
sortOutput: true,
}).js))
.pipe(gulpif(doConcat, concat(assetGroup.outputFileName)))
// TODO: Start using below whenever gulp-header supports sourcemaps.
.pipe(gulpif(doConcat, concat(assetGroup.outputFileName)))
.pipe(header(
"/*\n" +
"** NOTE: This file is generated by Gulp and should not be edited directly!\n" +
@@ -193,9 +191,9 @@ function buildJsPipeline(assetGroup, doConcat, doRebuild) {
"*/\n\n"))
.pipe(gulpif(generateSourceMaps, sourcemaps.write()))
.pipe(gulp.dest(assetGroup.outputDir))
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest(assetGroup.outputDir));
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest(assetGroup.outputDir));
}

View File

@@ -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>

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -41,14 +41,14 @@ namespace Orchard.Alias.Navigation {
var urlLevel = endsWithSlash ? requestUrl.Count(l => l == '/') - 1 : requestUrl.Count(l => l == '/');
var menuLevel = menuPosition.Count(l => l == '.');
// Checking menu item if it's the leaf element or it's an intermediate element
// Checking the menu item whether it's the leaf element or it's an intermediate element
// or it's an unneccessary element according to the url.
RouteValueDictionary contentRoute;
if (menuLevel == urlLevel) {
contentRoute = request.RequestContext.RouteData.Values;
}
else {
// If menuLevel doesn't equal with urlLevel it can mean that this menu item is
// If menuLevel doesn't equal to urlLevel it can mean that this menu item is
// an intermediate element (the difference is a positive value) or this menu
// item is lower in the navigation hierarchy according to the url (negative
// value). If the value is negative, removing the menu item, if the value

View File

@@ -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");
}
}

View File

@@ -141,7 +141,7 @@ namespace Orchard.Azure.Services.Caching.Output {
return Retry(function, times--);
}
catch (Exception e) {
Logger.Error(e, "An unexpected error occured while releasing a DataCacheFactory.");
Logger.Error(e, "An unexpected error occurred while releasing a DataCacheFactory.");
return default(T);
}
}

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -1,7 +1,4 @@
@using Orchard.Mvc.Html;
@{
Layout.Title = T("New Blog");
}
<div class="edit-item">
<div class="edit-item-primary">
@if (Model.Content != null) {
@@ -22,4 +19,4 @@
</div>
}
</div>
</div>
</div>

View File

@@ -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."));
}
}
}

View File

@@ -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");
}
}

View File

@@ -32,7 +32,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] { "text", "large", "tokenized" },
Classes: new[] { "text", "large" },
Description: T("The value of this checkbox.")));
return form;

View File

@@ -31,7 +31,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] { "text", "medium", "tokenized" },
Classes: new[] { "text", "medium" },
Description: T("The value of this email field.")));
return form;

View File

@@ -27,7 +27,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] { "text", "medium", "tokenized" },
Classes: new[] { "text", "medium" },
Description: T("The value of this hidden field.")));
return form;

View File

@@ -30,7 +30,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] { "text", "large", "tokenized" },
Classes: new[] { "text", "large" },
Description: T("The value of this text area.")),
_Rows: shape.Textbox(
Id: "Rows",

View File

@@ -31,7 +31,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] { "text", "medium", "tokenized" },
Classes: new[] { "text", "medium" },
Description: T("The value of this text field.")));
return form;

View File

@@ -31,7 +31,7 @@ namespace Orchard.DynamicForms.Drivers {
Id: "Value",
Name: "Value",
Title: "Value",
Classes: new[] {"text", "medium", "tokenized"},
Classes: new[] { "text", "medium" },
Description: T("The value of this URL field.")));
return form;

View File

@@ -9,7 +9,7 @@
</fieldset>
<fieldset>
<div class="editor-field" data-controllerid="@Html.FieldIdFor(m => m.Optional)">
<label class="forpicker" for="@Html.FieldIdFor(m => m.NotSetLabel)">@T("Neutral option text")</label>
<label for="@Html.FieldIdFor(m => m.NotSetLabel)">@T("Neutral option text")</label>
@Html.TextBoxFor(m => m.NotSetLabel, new { @class = "text" })
@Html.ValidationMessageFor(m => m.NotSetLabel)
<span class="hint">@T("The text displayed when the field is not selected.")</span>
@@ -17,14 +17,14 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.OnLabel)">@T("On Label")</label>
<label for="@Html.FieldIdFor(m => m.OnLabel)">@T("On Label")</label>
@Html.TextBoxFor(m => m.OnLabel, new { @class = "text"})
@Html.ValidationMessageFor(m => m.OnLabel)
<span class="hint">@T("The text displayed when the field is selected.")</span>
</div>
</fieldset>
<fieldset>
<label class="forpicker" for="@Html.FieldIdFor(m => m.OffLabel)">@T("Off Label")</label>
<label for="@Html.FieldIdFor(m => m.OffLabel)">@T("Off Label")</label>
<div class="editor-field">
@Html.TextBoxFor(m => m.OffLabel, new { @class = "text" })
@Html.ValidationMessageFor(m => m.OffLabel)
@@ -32,7 +32,7 @@
</div>
</fieldset>
<fieldset>
<label class="forpicker" for="@Html.FieldIdFor(m => m.SelectionMode)">@T("Selection mode")</label>
<label for="@Html.FieldIdFor(m => m.SelectionMode)">@T("Selection mode")</label>
<select id="@Html.FieldIdFor(m => m.SelectionMode)" name="@Html.FieldNameFor(m => m.SelectionMode)">
@Html.SelectOption(SelectionMode.Checkbox, Model.SelectionMode == SelectionMode.Checkbox, T("Checkbox").ToString())
@Html.SelectOption(SelectionMode.Radiobutton, Model.SelectionMode == SelectionMode.Radiobutton, T("Radio buttons").ToString())
@@ -41,7 +41,7 @@
<span class="hint">@T("When Checkbox is selected, the label for 'on' will be used.")</span>
</fieldset>
<fieldset>
<label class="forpicker" for="@Html.FieldIdFor(m => m.DefaultValue)">@T("Default value")</label>
<label for="@Html.FieldIdFor(m => m.DefaultValue)">@T("Default value")</label>
<select id="@Html.FieldIdFor(m => m.DefaultValue)" name="@Html.FieldNameFor(m => m.DefaultValue)">
@Html.SelectOption((object)String.Empty, !Model.DefaultValue.HasValue, T("Neutral").ToString())
@Html.SelectOption((object)true, Model.DefaultValue.HasValue && Model.DefaultValue == true, T("True").ToString())

View File

@@ -7,14 +7,14 @@
</div>
</fieldset>
<fieldset>
<label class="forpicker" for="@Html.FieldIdFor(m => m.Options)">@T("Options")</label>
<label for="@Html.FieldIdFor(m => m.Options)">@T("Options")</label>
<div class="editor-field">
@Html.TextAreaFor(m => m.Options, new { @class = "text medium", rows = "5" })
@Html.ValidationMessageFor(m => m.Options)
<span class="hint">@T("Enter an option per line.")</span>
</div>
<label class="forpicker" for="@Html.FieldIdFor(m => m.ListMode)">@T("List mode")</label>
<label for="@Html.FieldIdFor(m => m.ListMode)">@T("List mode")</label>
<select id="@Html.FieldIdFor(m => m.ListMode)" name="@Html.FieldNameFor(m => m.ListMode)">
@Html.SelectOption(ListMode.Dropdown, Model.ListMode == ListMode.Dropdown, T("Dropdown list").ToString())
@Html.SelectOption(ListMode.Radiobutton, Model.ListMode == ListMode.Radiobutton, T("Radio button list").ToString())

View File

@@ -2,7 +2,7 @@
<fieldset>
<div>
<label class="forpicker" for="@Html.FieldIdFor(m => m.Type)">@T("Input type")</label>
<label for="@Html.FieldIdFor(m => m.Type)">@T("Input type")</label>
<select id="@Html.FieldIdFor(m => m.Type)" name="@Html.FieldNameFor(m => m.Type)">
@Html.SelectOption(Orchard.Fields.Settings.InputType.Text, Model.Type == Orchard.Fields.Settings.InputType.Text, T("Text").ToString(), new { id = Html.FieldIdFor(m => m.Type) + "-text" })
@Html.SelectOption(Orchard.Fields.Settings.InputType.Url, Model.Type == Orchard.Fields.Settings.InputType.Url, T("Url").ToString())
@@ -12,7 +12,7 @@
<span class="hint">@T("Defines what format should be applied to the text.")</span>
</div>
<div class="editor-field" data-controllerid="@(Html.FieldIdFor(m => m.Type) + "-text")">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Pattern)">@T("Pattern")</label>
<label for="@Html.FieldIdFor(m => m.Pattern)">@T("Pattern")</label>
@Html.TextBoxFor(m => m.Pattern, new { @class = "text medium" })
@Html.ValidationMessageFor(m => m.Pattern)
<span class="hint">@T("Declaring what pattern should be used for validating a fields value, in the form of a regular expression. (optional)")</span>
@@ -20,7 +20,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Title)">@T("Title")</label>
<label for="@Html.FieldIdFor(m => m.Title)">@T("Title")</label>
@Html.TextBoxFor(m => m.Title, new { @class = "text"})
@Html.ValidationMessageFor(m => m.Title)
<span class="hint">@T("The title attribute of the field. (optional)")</span>
@@ -46,7 +46,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Placeholder)">@T("Watermark")</label>
<label for="@Html.FieldIdFor(m => m.Placeholder)">@T("Watermark")</label>
@Html.TextBoxFor(m => m.Placeholder, new { @class = "text" })
@Html.ValidationMessageFor(m => m.Placeholder)
<span class="hint">@T("A hint to display when the input is empty. (optional)")</span>
@@ -54,7 +54,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.EditorCssClass)">@T("Editor css class")</label>
<label for="@Html.FieldIdFor(m => m.EditorCssClass)">@T("Editor css class")</label>
@Html.TextBoxFor(m => m.EditorCssClass, new { @class = "text" })
@Html.ValidationMessageFor(m => m.EditorCssClass)
<span class="hint">@T("The css class to use for the editor. (optional)")</span>
@@ -62,7 +62,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.MaxLength)">@T("Maximum length")</label>
<label for="@Html.FieldIdFor(m => m.MaxLength)">@T("Maximum length")</label>
@Html.TextBoxFor(m => m.MaxLength, new { @class = "text small" })
@Html.ValidationMessageFor(m => m.MaxLength)
<span class="hint">@T("The maximum number of chars allowed. (optional)")</span>

View File

@@ -3,7 +3,7 @@
<fieldset>
<div>
<label class="forpicker" for="@Html.FieldIdFor(m => m.TargetMode)">@T("Target")</label>
<label for="@Html.FieldIdFor(m => m.TargetMode)">@T("Target")</label>
<select id="@Html.FieldIdFor(m => m.TargetMode)" name="@Html.FieldNameFor(m => m.TargetMode)">
@Html.SelectOption(TargetMode.None, Model.TargetMode == TargetMode.None, T("No target").ToString())
@Html.SelectOption(TargetMode.NewWindow, Model.TargetMode == TargetMode.NewWindow, T("Open link in new window").ToString())
@@ -21,7 +21,7 @@
</fieldset>
<fieldset>
<div>
<label class="forpicker" for="@Html.FieldIdFor(m => m.LinkTextMode)">@T("Link text")</label>
<label for="@Html.FieldIdFor(m => m.LinkTextMode)">@T("Link text")</label>
<select id="@Html.FieldIdFor(m => m.LinkTextMode)" name="@Html.FieldNameFor(m => m.LinkTextMode)">
@Html.SelectOption(LinkTextMode.Optional, Model.LinkTextMode == LinkTextMode.Optional, T("Optional").ToString())
@Html.SelectOption(LinkTextMode.Required, Model.LinkTextMode == LinkTextMode.Required, T("Required").ToString())

View File

@@ -9,7 +9,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Scale)">@T("Scale")</label>
<label for="@Html.FieldIdFor(m => m.Scale)">@T("Scale")</label>
@Html.TextBoxFor(m => m.Scale, new { @class = "text small" })
@Html.ValidationMessageFor(m => m.Scale)
<span class="hint">@T("The number of digits to the right of the decimal. Put 0 for integers.")</span>
@@ -17,7 +17,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Minimum)">@T("Minimum")</label>
<label for="@Html.FieldIdFor(m => m.Minimum)">@T("Minimum")</label>
@Html.TextBoxFor(m => m.Minimum, new { @class = "text small" })
@Html.ValidationMessageFor(m => m.Minimum)
<span class="hint">@T("The minimum value allowed. (optional)")</span>
@@ -25,7 +25,7 @@
</fieldset>
<fieldset>
<div class="editor-field">
<label class="forpicker" for="@Html.FieldIdFor(m => m.Maximum)">@T("Maximum")</label>
<label for="@Html.FieldIdFor(m => m.Maximum)">@T("Maximum")</label>
@Html.TextBoxFor(m => m.Maximum, new { @class = "text small" })
@Html.ValidationMessageFor(m => m.Maximum)
<span class="hint">@T("The maximum value allowed. (optional)")</span>

View File

@@ -5,7 +5,7 @@
var settings = Model.PartFieldDefinition.Settings.GetModel<BooleanFieldSettings>();
}
<fieldset>
<label for="@Html.FieldIdFor(m => m.Value)">@Model.DisplayName</label>
<label for="@Html.FieldIdFor(m => m.Value)" @if (!settings.Optional) { <text> class="required" </text> }>@Model.DisplayName</label>
@switch (settings.SelectionMode) {
case SelectionMode.Checkbox:
<input type="checkbox" id="@(Html.FieldIdFor(m => m.Value))" value="true" name="@Html.FieldNameFor(m => m.Value)" @if(Model.Value.HasValue && Model.Value.Value) { <text>checked="checked"</text> } /><input name="@Html.FieldNameFor(m => m.Value)" type="hidden" value="false" />

View File

@@ -1,4 +1,4 @@
/* Reset
/* Reset
***************************************************************/
html, body, div, span, applet, object, iframe,
@@ -335,7 +335,7 @@ button:hover, .button:hover, a.button:hover {
background: -moz-linear-gradient(top, rgba(110, 127, 69, 1.0), rgba(106, 123, 66, 1.0));
}
button:active, .buton:active, a.button:active {
button:active, .button:active, a.button:active {
text-decoration:none;
background:#6a7b42;
border:1px solid #487328;

View File

@@ -83,8 +83,8 @@ namespace Orchard.Indexing.Controllers {
Services.Notifier.Information(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);
}

View File

@@ -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;

View File

@@ -14,9 +14,10 @@ namespace Orchard.Layouts.Helpers {
public static OrchardTagBuilder CreateElementTagBuilder(dynamic shape, string tag = "div") {
return AddCommonElementAttributes(new OrchardTagBuilder(tag), shape);
}
public static OrchardTagBuilder AddCommonElementAttributes(this OrchardTagBuilder tagBuilder, dynamic shape) {
var attributes = GetCommonElementAttributes(shape);
tagBuilder.MergeAttributes(shape.Attributes);
tagBuilder.MergeAttributes(attributes);
return tagBuilder;
}
@@ -46,7 +47,7 @@ namespace Orchard.Layouts.Helpers {
classes.Add(cssClass);
}
if(classes.Any())
if (classes.Any())
attributes["class"] = String.Join(" ", classes);
return attributes;

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
@@ -52,20 +52,18 @@ namespace Orchard.Layouts.Providers {
}
private IEnumerable<Tuple<ContentPartDefinition, ContentPartFieldDefinition>> GetContentFieldTuples(HarvestElementsContext context) {
var contentTypeDefinition = context.Content != null
? _contentDefinitionManager.Value.GetTypeDefinition(context.Content.ContentItem.ContentType)
: default(ContentTypeDefinition);
var parts = contentTypeDefinition != null
? contentTypeDefinition.Parts.Select(x => x.PartDefinition)
: _contentDefinitionManager.Value.ListPartDefinitions();
// If there is no content item provided as context, there are no fields made available.
if (context.Content == null)
return Enumerable.Empty<Tuple<ContentPartDefinition, ContentPartFieldDefinition>>();
var contentTypeDefinition = _contentDefinitionManager.Value.GetTypeDefinition(context.Content.ContentItem.ContentType);
var parts = contentTypeDefinition.Parts.Select(x => x.PartDefinition);
var fields = parts.SelectMany(part => part.Fields.Select(field => Tuple.Create(part, field)));
// TODO: Each module should be able to tell which fields are supported as droppable elements.
var blackList = new string[0];
return fields.Where(t => blackList.All(x => t.Item2.FieldDefinition.Name != x));
return fields.Where(t => blackList.All(x => t.Item2.FieldDefinition.Name != x)).ToList();
}
private void Displaying(ElementDisplayingContext context) {
@@ -88,4 +86,4 @@ namespace Orchard.Layouts.Providers {
context.ElementShape.ContentField = contentFieldShape;
}
}
}
}

View File

@@ -755,7 +755,7 @@ button:hover, .button:hover, a.button:hover {
background: -moz-linear-gradient(top, rgba(110, 127, 69, 1.0), rgba(106, 123, 66, 1.0));
}
button:active, .buton:active, a.button:active {
button:active, .button:active, a.button:active {
text-decoration:none;
background:#6a7b42;
border:1px solid #487328;

View File

@@ -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);
}
}

View File

@@ -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.");
}
}

View File

@@ -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.");
}
}

View File

@@ -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"));

View File

@@ -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"));

View File

@@ -232,7 +232,7 @@ namespace Orchard.Modules.Controllers {
Services.Notifier.Information(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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -63,7 +63,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);
}
}

View File

@@ -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 {

View File

@@ -249,8 +249,8 @@ namespace Orchard.Themes.Controllers {
Services.Notifier.Information(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");

View File

@@ -67,6 +67,8 @@ namespace Orchard.Users.Activities {
yield break;
}
userName = userName.Trim();
var user = _membershipService.CreateUser(
new CreateUserParams(
userName,

View File

@@ -5,4 +5,7 @@
<div class="secondary">
@Display(Model.Sidebar)
</div>
</div>
</div>
@if (!String.IsNullOrWhiteSpace(Request.QueryString["returnUrl"])) {
@Html.Hidden("returnUrl", Request.QueryString["returnUrl"])
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -4,9 +4,9 @@
}
<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");
}
</div>
</div>

View File

@@ -0,0 +1,8 @@
[
{
"inputs": [
"Assets/Less/orchard-tinymce.less"
],
"output": "Styles/orchard-tinymce.css"
}
]

View File

@@ -0,0 +1,10 @@
#stickyContainer.sticky-top {
top: 0;
position: fixed;
background-color: white;
border-top: 1px solid #9e9e9e;
border-bottom: 1px solid #9e9e9e;
}
#stickyContainer.container-layout {
width: 100%;
}

View File

@@ -0,0 +1,10 @@
#stickyContainer.sticky-top {
top: 0;
position: fixed;
background-color: white;
border-top: 1px solid #9e9e9e;
border-bottom: 1px solid #9e9e9e;
}
#stickyContainer.container-layout {
width: 100%;
}

View File

@@ -0,0 +1 @@
#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%;}

View File

@@ -6,6 +6,7 @@ namespace TinyMce {
var manifest = builder.Add();
manifest.DefineScript("TinyMce").SetUrl("tinymce.min.js").SetVersion("4.1.6").SetDependencies("jQuery");
manifest.DefineScript("OrchardTinyMce").SetUrl("orchard-tinymce.js").SetDependencies("TinyMce");
manifest.DefineStyle("OrchardTinyMce").SetUrl("orchard-tinymce.css");
}
}
}

View File

@@ -34,5 +34,75 @@ tinyMCE.init({
$(document).bind("localization.ui.directionalitychanged", function(event, directionality) {
editor.getBody().dir = directionality;
});
// 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.
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" });
$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 = $contentArea.find("div.mce-statusbar").offset();
if ($(window).scrollTop() >= $containerPosition.top && !isAdded) {
$container.addClass("sticky-top");
$placeholder.insertBefore($container);
$container.width($placeholder.width());
$placeholder.height($container.height());
$(window).on("resize", function () {
$container.width($placeholder.width());
$placeholder.height($container.height());
});
isAdded = true;
} else if ($(window).scrollTop() < $containerPosition.top && isAdded) {
$container.removeClass("sticky-top");
$placeholder.remove();
$(window).on("resize", function () {
$container.width("100%");
});
isAdded = false;
}
if ($(window).scrollTop() >= ($statusbarPosition.top - $container.height())) {
$container.hide();
} else if ($(window).scrollTop() < ($statusbarPosition.top - $container.height()) && isAdded) {
$container.show();
}
});
}
}
});
});

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
<handlers accessPolicy="Script,Read">
<!-- For any request to a file exists on disk, return it via native http module. AccessPolicy="Script" above is to allow for a managed 404 page. -->
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />
</handlers>
</system.webServer>
</configuration>

View File

@@ -0,0 +1,17 @@
/*
** NOTE: This file is generated by Gulp and should not be edited directly!
** Any changes made directly to this file will be overwritten next time its asset group is processed by Gulp.
*/
#stickyContainer.sticky-top {
top: 0;
position: fixed;
background-color: white;
border-top: 1px solid #9e9e9e;
border-bottom: 1px solid #9e9e9e;
}
#stickyContainer.container-layout {
width: 100%;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yY2hhcmQtdGlueW1jZS5jc3MiLCJvcmNoYXJkLXRpbnltY2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNMQTtFQUNFLE9BQUE7RUFDQSxnQkFBQTtFQUNBLHdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxpQ0FBQTtDRENEO0FDQ0Q7RUFDRSxZQUFBO0NEQ0QiLCJmaWxlIjoib3JjaGFyZC10aW55bWNlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNzdGlja3lDb250YWluZXIuc3RpY2t5LXRvcCB7XG4gIHRvcDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5ZTllOWU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWU5ZTllO1xufVxuI3N0aWNreUNvbnRhaW5lci5jb250YWluZXItbGF5b3V0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4iLCLvu78jc3RpY2t5Q29udGFpbmVyLnN0aWNreS10b3Age1xyXG4gIHRvcDogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5ZTllOWU7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5ZTllOWU7XHJcbn1cclxuI3N0aWNreUNvbnRhaW5lci5jb250YWluZXItbGF5b3V0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */

View File

@@ -0,0 +1 @@
#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%}

View File

@@ -88,6 +88,12 @@
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\Less\orchard-tinymce.css">
<DependentUpon>orchard-tinymce.less</DependentUpon>
</Content>
<Content Include="Assets\Less\orchard-tinymce.min.css">
<DependentUpon>orchard-tinymce.css</DependentUpon>
</Content>
<Content Include="Module.txt" />
<Content Include="Scripts\langs\ar.js" />
<Content Include="Scripts\langs\ar_SA.js" />
@@ -258,6 +264,7 @@
<Compile Include="Services\TinyMceShapeDisplayEvent.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Styles\orchard-tinymce.css" />
<Content Include="Views\Body-Html.Editor.cshtml" />
</ItemGroup>
<ItemGroup>
@@ -305,6 +312,15 @@
<ItemGroup>
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Styles\Web.config">
<SubType>Designer</SubType>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="Assets.json" />
<Content Include="Assets\Less\orchard-tinymce.less" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

View File

@@ -18,6 +18,7 @@
Script.Require("OrchardTinyMce");
Script.Require("jQueryColorBox");
Style.Require("jQueryColorBox");
Style.Require("OrchardTinyMce");
}
@Html.TextArea("Text", (string)Model.Text, 25, 80,

View File

@@ -239,7 +239,7 @@ button:hover, .button:hover, a.button:hover {
background: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(110, 127, 69, 1.0)), to(rgba(106, 123, 66, 1.0)));
background: -moz-linear-gradient(top, rgba(110, 127, 69, 1.0), rgba(106, 123, 66, 1.0));
}
button:active, .buton:active, a.button:active {
button:active, .button:active, a.button:active {
text-decoration:none;
background:#6a7b42;
border:1px solid #487328;
@@ -336,4 +336,4 @@ span.message {
}
.debug.message:before {
content:"DEBUG » ";
}
}

View File

@@ -775,7 +775,7 @@ button:hover, .button:hover, a.button:hover {
background: -moz-linear-gradient(top, rgba(110, 127, 69, 1.0), rgba(106, 123, 66, 1.0));
}
button:active, .buton:active, a.button:active {
button:active, .button:active, a.button:active {
text-decoration:none;
background:#6a7b42;
border:1px solid #487328;

View File

@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5}"
EndProject

View File

@@ -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
}
}

View File

@@ -55,12 +55,14 @@ namespace Orchard.Environment {
var appBuilder = new AppBuilder();
appBuilder.Properties["host.AppName"] = _shellSettings.Name;
var orderedMiddlewares = _owinMiddlewareProviders
.SelectMany(p => p.GetOwinMiddlewares())
.OrderBy(obj => obj.Priority, new FlatPositionComparer());
using (var scope = _workContextAccessor.CreateWorkContextScope()) {
var orderedMiddlewares = _owinMiddlewareProviders
.SelectMany(p => p.GetOwinMiddlewares())
.OrderBy(obj => obj.Priority, new FlatPositionComparer());
foreach (var middleware in orderedMiddlewares) {
middleware.Configure(appBuilder);
foreach (var middleware in orderedMiddlewares) {
middleware.Configure(appBuilder);
}
}
// Register the Orchard middleware after all others.
@@ -104,7 +106,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");
}
}
}

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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);
}
}