diff --git a/src/Umbraco.Web.UI.Client/src/common/services/formhelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/formhelper.service.js
index e3261b7372..4b5521b8db 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/formhelper.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/formhelper.service.js
@@ -7,7 +7,7 @@
* A utility class used to streamline how forms are developed, to ensure that validation is check and displayed consistently and to ensure that the correct events
* fire when they need to.
*/
-function formHelper(angularHelper, serverValidationManager, $timeout, notificationsService, dialogService) {
+function formHelper(angularHelper, serverValidationManager, $timeout, notificationsService, dialogService, localizationService) {
return {
/**
@@ -157,7 +157,7 @@ function formHelper(angularHelper, serverValidationManager, $timeout, notificati
*
* @param {object} err The error object returned from the http promise
*/
- handleServerValidation: function(modelState) {
+ handleServerValidation: function (modelState) {
for (var e in modelState) {
//This is where things get interesting....
@@ -204,6 +204,7 @@ function formHelper(angularHelper, serverValidationManager, $timeout, notificati
//add to notifications
notificationsService.error("Validation", modelState[e][0]);
+
}
}
};
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-sub-views.html b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-sub-views.html
index fefe12e233..c53d74176f 100644
--- a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-sub-views.html
+++ b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-sub-views.html
@@ -1,5 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
index 37d2b1b3d7..59981bd3b3 100644
--- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
@@ -9,7 +9,7 @@
(function () {
"use strict";
- function DocumentTypesEditController($scope, $routeParams, modelsResource, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q) {
+ function DocumentTypesEditController($scope, $routeParams, modelsResource, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q, localizationService) {
var vm = this;
@@ -219,6 +219,13 @@
if (err) {
editorState.set($scope.content);
}
+ else {
+ localizationService.localize("speechBubbles_validationFailedHeader").then(function (headerValue) {
+ localizationService.localize("speechBubbles_validationFailedMessage").then(function(msgValue) {
+ notificationsService.error(headerValue, msgValue);
+ });
+ });
+ }
vm.page.saveButtonState = "error";
diff --git a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
index 56d3110965..14bfbbc580 100644
--- a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
@@ -9,7 +9,7 @@
(function () {
"use strict";
- function MediaTypesEditController($scope, $routeParams, mediaTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q) {
+ function MediaTypesEditController($scope, $routeParams, mediaTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q, localizationService) {
var vm = this;
@@ -151,6 +151,13 @@
if (err) {
editorState.set($scope.content);
}
+ else {
+ localizationService.localize("speechBubbles_validationFailedHeader").then(function (headerValue) {
+ localizationService.localize("speechBubbles_validationFailedMessage").then(function (msgValue) {
+ notificationsService.error(headerValue, msgValue);
+ });
+ });
+ }
vm.page.saveButtonState = "error";
diff --git a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
index 5b02063b54..bf830c8915 100644
--- a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
@@ -9,7 +9,7 @@
(function () {
"use strict";
- function MemberTypesEditController($scope, $rootScope, $routeParams, $log, $filter, memberTypeResource, dataTypeResource, editorState, iconHelper, formHelper, navigationService, contentEditingHelper, notificationsService, $q) {
+ function MemberTypesEditController($scope, $rootScope, $routeParams, $log, $filter, memberTypeResource, dataTypeResource, editorState, iconHelper, formHelper, navigationService, contentEditingHelper, notificationsService, $q, localizationService) {
var vm = this;
@@ -102,6 +102,13 @@
if (err) {
editorState.set($scope.content);
}
+ else {
+ localizationService.localize("speechBubbles_validationFailedHeader").then(function (headerValue) {
+ localizationService.localize("speechBubbles_validationFailedMessage").then(function (msgValue) {
+ notificationsService.error(headerValue, msgValue);
+ });
+ });
+ }
vm.page.saveButtonState = "error";
diff --git a/src/Umbraco.Web.UI.Client/test/unit/app/content/edit-content-controller.spec.js b/src/Umbraco.Web.UI.Client/test/unit/app/content/edit-content-controller.spec.js
index 0fc5a4cedd..0d9b8a29e2 100644
--- a/src/Umbraco.Web.UI.Client/test/unit/app/content/edit-content-controller.spec.js
+++ b/src/Umbraco.Web.UI.Client/test/unit/app/content/edit-content-controller.spec.js
@@ -5,7 +5,7 @@ describe('edit content controller tests', function () {
beforeEach(module('umbraco'));
//inject the contentMocks service
- beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, contentMocks, entityMocks, mocksUtils) {
+ beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, contentMocks, entityMocks, mocksUtils, localizationMocks) {
//for these tests we don't want any authorization to occur
mocksUtils.disableAuth();
@@ -17,6 +17,7 @@ describe('edit content controller tests', function () {
//see /mocks/content.mocks.js for how its setup
contentMocks.register();
entityMocks.register();
+ localizationMocks.register();
//this controller requires an angular form controller applied to it
scope.contentForm = angularHelper.getNullForm("contentForm");
diff --git a/src/Umbraco.Web.UI.Client/test/unit/app/media/edit-media-controller.spec.js b/src/Umbraco.Web.UI.Client/test/unit/app/media/edit-media-controller.spec.js
index 0d2b1a7bd9..35179c5646 100644
--- a/src/Umbraco.Web.UI.Client/test/unit/app/media/edit-media-controller.spec.js
+++ b/src/Umbraco.Web.UI.Client/test/unit/app/media/edit-media-controller.spec.js
@@ -5,7 +5,7 @@ describe('edit media controller tests', function () {
beforeEach(module('umbraco'));
//inject the contentMocks service
- beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, mediaMocks, entityMocks, mocksUtils) {
+ beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, mediaMocks, entityMocks, mocksUtils, localizationMocks) {
//for these tests we don't want any authorization to occur
mocksUtils.disableAuth();
@@ -16,6 +16,7 @@ describe('edit media controller tests', function () {
//see /mocks/content.mocks.js for how its setup
mediaMocks.register();
entityMocks.register();
+ localizationMocks.register();
//this controller requires an angular form controller applied to it
scope.contentForm = angularHelper.getNullForm("contentForm");
diff --git a/src/Umbraco.Web.UI.Client/test/unit/app/propertyeditors/content-picker-controller.spec.js b/src/Umbraco.Web.UI.Client/test/unit/app/propertyeditors/content-picker-controller.spec.js
index 3444f39407..e6d1312109 100644
--- a/src/Umbraco.Web.UI.Client/test/unit/app/propertyeditors/content-picker-controller.spec.js
+++ b/src/Umbraco.Web.UI.Client/test/unit/app/propertyeditors/content-picker-controller.spec.js
@@ -5,7 +5,7 @@ describe('Content picker controller tests', function () {
beforeEach(module('umbraco'));
//inject the contentMocks service
- beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, entityMocks, mocksUtils) {
+ beforeEach(inject(function ($rootScope, $controller, angularHelper, $httpBackend, entityMocks, mocksUtils, localizationMocks) {
//for these tests we don't want any authorization to occur
mocksUtils.disableAuth();
@@ -28,6 +28,7 @@ describe('Content picker controller tests', function () {
//have the contentMocks register its expect urls on the httpbackend
//see /mocks/content.mocks.js for how its setup
entityMocks.register();
+ localizationMocks.register();
controller = $controller('Umbraco.PropertyEditors.ContentPickerController', {
$scope: scope,
diff --git a/src/Umbraco.Web.UI.Client/test/unit/common/services/content-editing-helper.spec.js b/src/Umbraco.Web.UI.Client/test/unit/common/services/content-editing-helper.spec.js
index 73772ae2a9..ad336cf544 100644
--- a/src/Umbraco.Web.UI.Client/test/unit/common/services/content-editing-helper.spec.js
+++ b/src/Umbraco.Web.UI.Client/test/unit/common/services/content-editing-helper.spec.js
@@ -8,7 +8,9 @@ describe('contentEditingHelper tests', function () {
//Only for 1.2: beforeEach(module('ngRoute'));
- beforeEach(inject(function ($injector) {
+ beforeEach(inject(function ($injector, localizationMocks) {
+ localizationMocks.register();
+
contentEditingHelper = $injector.get('contentEditingHelper');
$routeParams = $injector.get('$routeParams');
serverValidationManager = $injector.get('serverValidationManager');
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
index b1a2821ca5..2a96b3e173 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
@@ -785,6 +785,8 @@ To manage your website, simply open the Umbraco back office and start adding con
Do not close this window during sorting]]>
+ Validation
+ Validation errors must be fixed before the item can be saved
Failed
Insufficient user permissions, could not complete the operation
Cancelled
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
index f8c956e14d..3fcb54e939 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
@@ -785,6 +785,8 @@ To manage your website, simply open the Umbraco back office and start adding con
Do not close this window during sorting]]>
+ Validation
+ Validation errors must be fixed before the item can be saved
Failed
Insufficient user permissions, could not complete the operation
Cancelled