Emit a single event if the language has been created or been saved - send through a new property in args to determine if it was new or not

Then event listener updates the tree languages dropdown only when a new language has been added or deleted OR when an existing language has been saved/updated to be set as the new default language (as this now at top of list)
This commit is contained in:
Warren Buckley
2018-10-24 14:08:15 +01:00
parent 5b84702c2f
commit e2557697bc
2 changed files with 21 additions and 12 deletions

View File

@@ -194,7 +194,7 @@ function NavigationController($scope, $rootScope, $location, $log, $q, $routePar
$rootScope.emptySection = false;
}
}
}));
//Listen for section state changes
@@ -222,10 +222,21 @@ function NavigationController($scope, $rootScope, $location, $log, $q, $routePar
});
}));
evts.push(eventsService.on("editors.languages.languageCreated", function (e, args) {
loadLanguages().then(function (languages) {
$scope.languages = languages;
});
//Emitted when a language is created or an existing one saved/edited
evts.push(eventsService.on("editors.languages.languageSaved", function (e, args) {
console.log('lang event listen args', args);
if(args.isNew){
//A new language has been created - reload languages for tree
loadLanguages().then(function (languages) {
$scope.languages = languages;
});
}
else if(args.language.isDefault){
//A language was saved and was set to be the new default (refresh the tree, so its at the top)
loadLanguages().then(function (languages) {
$scope.languages = languages;
});
}
}));
//This reacts to clicks passed to the body element which emits a global call to close all dialogs

View File

@@ -113,11 +113,9 @@
notificationsService.success(value);
});
// emit event when language is created
if($routeParams.create) {
var args = { language: lang };
eventsService.emit("editors.languages.languageCreated", args);
}
// emit event when language is created or updated/saved
var args = { language: lang, isNew: $routeParams.create ? true : false };
eventsService.emit("editors.languages.languageSaved", args);
back();
@@ -129,7 +127,7 @@
});
}
}
function back() {
@@ -145,7 +143,7 @@
}
function toggleDefault() {
// it shouldn't be possible to uncheck the default language
if(vm.initIsDefault) {
return;