mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-09 11:34:24 +08:00
Outsource poems to a service
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@
|
||||
]
|
||||
Reference in New Issue
Block a user