emit and listen for events when languages are created/deleted

This commit is contained in:
Mads Rasmussen
2018-04-10 15:36:06 +02:00
parent b869e095e6
commit d9e433b3ea
3 changed files with 28 additions and 2 deletions

View File

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

View File

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

View File

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