diff --git a/source/documents/scripts/controllers.js.coffee b/source/documents/scripts/controllers.js.coffee index c1e569f..ee142c2 100644 --- a/source/documents/scripts/controllers.js.coffee +++ b/source/documents/scripts/controllers.js.coffee @@ -1,7 +1,7 @@ angular.module("sideBySide.controllers", []) .controller "AppController", [ - '$routeParams', '$scope' - ($routeParams, $scope) -> + '$scope' + ($scope) -> $scope.$on "$routeChangeSuccess", ($currentRoute, $previousRoute) -> $scope.base = if $previousRoute.params.base \ then '/' + $previousRoute.params.base @@ -17,7 +17,7 @@ angular.module("sideBySide.controllers", []) text: 'Please be patient!' }]] - $rootScope.$on "poemsLoaded", () -> + poemsUpdated = $rootScope.$on "poemsUpdated", () -> results = poems.get() $scope.columns = results.length transformed = transformer(results) @@ -26,9 +26,7 @@ angular.module("sideBySide.controllers", []) headingKey = poems.getHeading() or "Author" $scope.headings = (version[headingKey] for version in transformed.meta) - config = if $routeParams.base \ - then $routeParams.base.replace(/\./g, '/') \ - else '' + $scope.$on '$destroy', poemsUpdated + poems.load $routeParams.base - poems.update(config + "/config.json") ] diff --git a/source/documents/scripts/services/poems.js.coffee b/source/documents/scripts/services/poems.js.coffee index 41ac5b1..c9cb8e9 100644 --- a/source/documents/scripts/services/poems.js.coffee +++ b/source/documents/scripts/services/poems.js.coffee @@ -3,9 +3,11 @@ angular.module("sideBySide").service "poems", ['$rootScope', '$q', 'fetch', ($ro loaded = false heading = undefined - @update = (config) -> + @load = (base = '') -> + config = base.replace(/\./g, '/') + "/config.json" + if loaded == true - $rootScope.$emit "poemsLoaded" + $rootScope.$emit "poemsUpdated" else fetch(config).then((result) -> $q.all(result.promises).then((results) -> @@ -17,7 +19,7 @@ angular.module("sideBySide").service "poems", ['$rootScope', '$q', 'fetch', ($ro heading = result.heading loaded = true - $rootScope.$emit "poemsLoaded" + $rootScope.$emit "poemsUpdated" ) ) @@ -29,9 +31,12 @@ angular.module("sideBySide").service "poems", ['$rootScope', '$q', 'fetch', ($ro @show = (id) -> poems[id].meta.Active = true + $rootScope.$emit "poemsUpdated" + @hide = (id) -> poems[id].meta.Active = false + $rootScope.$emit "poemsUpdated" @ ]