diff --git a/src/Umbraco.Web.UI.Client/src/controllers/navigation.controller.js b/src/Umbraco.Web.UI.Client/src/controllers/navigation.controller.js index fb37020a7d..6330f5a30a 100644 --- a/src/Umbraco.Web.UI.Client/src/controllers/navigation.controller.js +++ b/src/Umbraco.Web.UI.Client/src/controllers/navigation.controller.js @@ -102,6 +102,19 @@ function NavigationController($scope, $rootScope, $location, $log, $routeParams, } })); + // Listen for language updates + evts.push(eventsService.on("editors.languages.languageDeleted", function(e, args) { + languageResource.getAll().then(function(languages) { + $scope.languages = languages; + }); + })); + + evts.push(eventsService.on("editors.languages.languageCreated", function(e, args) { + languageResource.getAll().then(function(languages) { + $scope.languages = languages; + }); + })); + //This reacts to clicks passed to the body element which emits a global call to close all dialogs evts.push(eventsService.on("app.closeDialogs", function(event) { if (appState.getGlobalState("stickyNavigation")) { diff --git a/src/Umbraco.Web.UI.Client/src/views/languages/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/languages/edit.controller.js index ce6df0d351..5ec62ec177 100644 --- a/src/Umbraco.Web.UI.Client/src/views/languages/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/languages/edit.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function LanguagesEditController($scope, $timeout, $location, $routeParams, navigationService, notificationsService, localizationService, languageResource, contentEditingHelper, formHelper) { + function LanguagesEditController($scope, $timeout, $location, $routeParams, navigationService, notificationsService, localizationService, languageResource, contentEditingHelper, formHelper, eventsService) { var vm = this; @@ -81,6 +81,12 @@ vm.page.saveButtonState = "success"; notificationsService.success(localizationService.localize("speechBubbles_languageSaved")); + // emit event when language is created + if($routeParams.create) { + var args = { language: lang }; + eventsService.emit("editors.languages.languageCreated", args); + } + back(); }, function (err) { diff --git a/src/Umbraco.Web.UI.Client/src/views/languages/overview.controller.js b/src/Umbraco.Web.UI.Client/src/views/languages/overview.controller.js index bf9856ae50..de05ac7079 100644 --- a/src/Umbraco.Web.UI.Client/src/views/languages/overview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/languages/overview.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function LanguagesOverviewController($location, $timeout, navigationService, notificationsService, localizationService, languageResource) { + function LanguagesOverviewController($location, $timeout, navigationService, notificationsService, localizationService, languageResource, eventsService) { var vm = this; @@ -58,8 +58,15 @@ language.deleteButtonState = "busy"; languageResource.deleteById(language.id).then(function () { + + // emit event + var args = { language: language }; + eventsService.emit("editors.languages.languageDeleted", args); + + // remove from list var index = vm.languages.indexOf(language); vm.languages.splice(index, 1); + }, function (err) { language.deleteButtonState = "error";