Outsource poems to a service

This commit is contained in:
Vit Brunner
2014-10-02 17:16:39 +02:00
parent 906f1c1af0
commit bccd8d253a
3 changed files with 36 additions and 14 deletions
+1
View File
@@ -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")
+14 -14
View File
@@ -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")
]
@@ -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
@
]