diff --git a/source/documents/_scripts.html.jade b/source/documents/_scripts.html.jade
index edc5fba..c4542af 100644
--- a/source/documents/_scripts.html.jade
+++ b/source/documents/_scripts.html.jade
@@ -6,6 +6,7 @@ script(src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-sanitize.
script(src="//cdnjs.cloudflare.com/ajax/libs/marked/0.3.2/marked.js")
script(src="scripts/app.js")
script(src="scripts/services/fetch.js")
+script(src="scripts/services/poems.js")
script(src="scripts/services/reader/_factory.js")
script(src="scripts/services/reader/markdown.js")
script(src="scripts/services/reader/json.js")
diff --git a/source/documents/scripts/controllers.js.coffee b/source/documents/scripts/controllers.js.coffee
index 5ad4931..48268cd 100644
--- a/source/documents/scripts/controllers.js.coffee
+++ b/source/documents/scripts/controllers.js.coffee
@@ -9,29 +9,29 @@ angular.module("sideBySide.controllers", [])
]
.controller "ComparisonController", [
- '$routeParams', '$q', '$scope', 'fetch', 'transformer'
- ($routeParams, $q, $scope, fetch, transformer) ->
+ '$routeParams', '$rootScope', '$scope', 'poems', 'transformer'
+ ($routeParams, $rootScope, $scope, poems, transformer) ->
$scope.columns = 1
$scope.verses = [[{
section: 'Loading...'
text: 'Please be patient!'
}]]
- update = (config) ->
- fetch(config).then((result) ->
- $q.all(result.promises).then((results) ->
- $scope.columns = results.length
- transformed = transformer(results)
- $scope.verses = transformed.verses
- $scope.meta = transformed.meta
- headingKey = result.heading or "Author"
- $scope.headings = (version[headingKey] for version in transformed.meta)
- )
- )
+ $rootScope.$on "poemsLoaded", () ->
+ update()
+
+ update = () ->
+ results = poems.get()
+ $scope.columns = results.length
+ transformed = transformer(results)
+ $scope.verses = transformed.verses
+ $scope.meta = transformed.meta
+ headingKey = poems.getHeading() or "Author"
+ $scope.headings = (version[headingKey] for version in transformed.meta)
config = if $routeParams.base \
then $routeParams.base.replace(/\./g, '/') \
else ''
- update(config + "/config.json")
+ poems.update(config + "/config.json")
]
diff --git a/source/documents/scripts/services/poems.js.coffee b/source/documents/scripts/services/poems.js.coffee
new file mode 100644
index 0000000..43fd3b7
--- /dev/null
+++ b/source/documents/scripts/services/poems.js.coffee
@@ -0,0 +1,21 @@
+angular.module("sideBySide").service "poems", ['$rootScope', '$q', 'fetch', ($rootScope, $q, fetch) ->
+ poems = []
+ heading = undefined
+
+ @update = (config) ->
+ fetch(config).then((result) ->
+ $q.all(result.promises).then((results) ->
+ poems = results
+ heading = result.heading
+ $rootScope.$emit "poemsLoaded"
+ )
+ )
+
+ @get = () ->
+ poems
+
+ @getHeading = () ->
+ heading
+
+ @
+]