diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec
index e502271115..f3f8f47b57 100644
--- a/build/NuSpecs/UmbracoCms.Core.nuspec
+++ b/build/NuSpecs/UmbracoCms.Core.nuspec
@@ -39,6 +39,8 @@
+
+
diff --git a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs
index 0f99b6b884..fc9e0e6166 100644
--- a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs
+++ b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs
@@ -29,6 +29,7 @@ using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing.Objects.Accessors;
using Umbraco.Web;
using Umbraco.Web.Cache;
+using Umbraco.Web.Macros;
using Umbraco.Web.PublishedCache;
using Umbraco.Web.Routing;
using Umbraco.Web.Runtime;
@@ -81,7 +82,7 @@ namespace Umbraco.Tests.Runtimes
var composerTypes = typeLoader.GetTypes() // all of them
.Where(x => !x.FullName.StartsWith("Umbraco.Tests.")) // exclude test components
- .Where(x => x != typeof(WebInitialComposer)); // exclude web runtime
+ .Where(x => x != typeof(WebInitialComposer) && x != typeof(WebFinalComposer)); // exclude web runtime
var composers = new Composers(composition, composerTypes, profilingLogger);
composers.Compose();
@@ -101,6 +102,8 @@ namespace Umbraco.Tests.Runtimes
composition.RegisterUnique();
composition.RegisterUnique(f => ExamineManager.Instance);
composition.RegisterUnique();
+ composition.RegisterUnique();
+ composition.RegisterUnique(_ => new MediaUrlProviderCollection(Enumerable.Empty()));
// initialize some components only/individually
composition.WithCollectionBuilder()
@@ -124,14 +127,15 @@ namespace Umbraco.Tests.Runtimes
if (true || runtimeState.Level == RuntimeLevel.Install)
{
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
- var file = Path.Combine(path, "Umbraco.sdf");
+ var file = databaseFactory.Configured ? Path.Combine(path, "UmbracoNPocoTests.sdf") : Path.Combine(path, "Umbraco.sdf");
if (File.Exists(file))
File.Delete(file);
// create the database file
// databaseBuilder.ConfigureEmbeddedDatabaseConnection() can do it too,
// but then it wants to write the connection string to web.config = bad
- using (var engine = new SqlCeEngine("Data Source=|DataDirectory|\\Umbraco.sdf;Flush Interval=1;"))
+ var connectionString = databaseFactory.Configured ? databaseFactory.ConnectionString : "Data Source=|DataDirectory|\\Umbraco.sdf;Flush Interval=1;";
+ using (var engine = new SqlCeEngine(connectionString))
{
engine.CreateDatabase();
}
@@ -140,7 +144,8 @@ namespace Umbraco.Tests.Runtimes
//databaseFactory.Configure(DatabaseBuilder.EmbeddedDatabaseConnectionString, Constants.DbProviderNames.SqlCe);
//databaseBuilder.CreateDatabaseSchemaAndData();
- databaseFactory.Configure(DatabaseBuilder.EmbeddedDatabaseConnectionString, Constants.DbProviderNames.SqlCe);
+ if (!databaseFactory.Configured)
+ databaseFactory.Configure(DatabaseBuilder.EmbeddedDatabaseConnectionString, Constants.DbProviderNames.SqlCe);
var scopeProvider = factory.GetInstance();
using (var scope = scopeProvider.CreateScope())
@@ -154,6 +159,8 @@ namespace Umbraco.Tests.Runtimes
// done installing
runtimeState.Level = RuntimeLevel.Run;
+ components.Initialize();
+
// instantiate to register events
// should be done by Initialize?
// should we invoke Initialize?
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js
index 9390d64cdb..0ea5006c4a 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js
@@ -66,7 +66,7 @@
(function () {
'use strict';
- function ToggleDirective(localizationService, eventsService) {
+ function ToggleDirective(localizationService, eventsService, $timeout) {
function link(scope, el, attr, ctrl) {
@@ -75,7 +75,11 @@
function onInit() {
setLabelText();
- eventsService.emit("toggleValue", { value: scope.checked });
+ // must wait until the current digest cycle is finished before we emit this event on init,
+ // otherwise other property editors might not yet be ready to receive the event
+ $timeout(function () {
+ eventsService.emit("toggleValue", { value: scope.checked });
+ }, 100);
}
function setLabelText() {
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js
index e65a3d238c..8c32d93c01 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js
@@ -286,11 +286,11 @@ Opens an overlay to show a custom YSOD.
$(document).on("keydown.overlay-" + overlayNumber, function(event) {
- if (event.which === 27) {
+ if (event.which === 27) {
numberOfOverlays = overlayHelper.getNumberOfOverlays();
- if (numberOfOverlays === overlayNumber) {
+ if (numberOfOverlays === overlayNumber && !scope.model.disableEscKey) {
scope.$apply(function () {
scope.closeOverLay();
});
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js
index a215bca645..cd1b1d8181 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js
@@ -281,6 +281,10 @@
opts.callbacks.unshift(options.onLoad);
}
+ if (opts.autoFocus === true) {
+ acee.focus();
+ }
+
// EVENTS
// unbind old change listener
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js
index 29920ebf00..a53fb75d93 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js
@@ -165,6 +165,7 @@ function valFormManager(serverValidationManager, $rootScope, $timeout, $location
"title": labels.unsavedChangesTitle,
"content": labels.unsavedChangesContent,
"disableBackdropClick": true,
+ "disableEscKey": true,
"submitButtonLabel": labels.stayButton,
"closeButtonLabel": labels.discardChangesButton,
submit: function() {
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/overlays.less b/src/Umbraco.Web.UI.Client/src/less/components/overlays.less
index f5050fad85..c8f0195ea5 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/overlays.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/overlays.less
@@ -12,6 +12,7 @@
display: flex;
flex-wrap: nowrap;
flex-direction: column;
+ height: 100%;
}
.umb-overlay .umb-overlay-header {
@@ -23,8 +24,6 @@
padding: 20px 30px 0;
}
-
-
.umb-overlay__section-header {
width: 100%;
margin-top:30px;
@@ -113,10 +112,6 @@
padding: 30px 30px 0;
}
-.umb-overlay.umb-overlay-center .umb-overlay__form {
-
-}
-
.umb-overlay.umb-overlay-center .umb-overlay-drawer {
border: none;
background: transparent;
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-cards.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-cards.less
index 3bc431e01f..7c327bfb88 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-cards.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-cards.less
@@ -63,12 +63,14 @@
.umb-user-card__goToUser {
&:hover, &:focus {
text-decoration: none;
+
.umb-user-card__name {
text-decoration: underline;
color: @ui-option-type-hover;
}
+
.umb-avatar {
- border: 1px solid @ui-option-type-hover;
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, .5);
}
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-table.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-table.less
index 0c61a5d113..31b126e77c 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-table.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-table.less
@@ -3,16 +3,21 @@
.umb-user-table-col-avatar {
flex: 0 0 32px;
padding: 15px 0;
-
+
+ > a {
+ overflow: visible;
+ }
+
.umb-checkmark {
margin-left:5px;
}
}
-
+
.umb-table-cell a {
+
&:hover, &:focus {
.umb-avatar {
- border: 1px solid @ui-option-type-hover;
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, .5);
}
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/codeeditor.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/codeeditor.controller.js
index f455e99fe7..841134fa5a 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/codeeditor.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/codeeditor.controller.js
@@ -12,11 +12,13 @@
mode: "razor",
theme: "chrome",
showPrintMargin: false,
+ autoFocus: true,
advanced: {
fontSize: "14px",
enableSnippets: false, //The Razor mode snippets are awful (Need a way to override these)
enableBasicAutocompletion: true,
- enableLiveAutocompletion: false
+ enableLiveAutocompletion: false,
+ wrap: true
},
onLoad: function(aceEditor) {
vm.aceEditor = aceEditor;