mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-09 11:34:24 +08:00
Better components interaction
This commit is contained in:
@@ -1,32 +1,26 @@
|
||||
angular.module("sideBySide.controllers", [])
|
||||
.controller "AppController", [
|
||||
'$scope'
|
||||
($scope) ->
|
||||
'$routeParams', '$scope', 'poems'
|
||||
($routeParams, $scope, poems) ->
|
||||
$scope.$on "$routeChangeSuccess", ($currentRoute, $previousRoute) ->
|
||||
$scope.base = if $previousRoute.params.base \
|
||||
then '/' + $previousRoute.params.base
|
||||
else ''
|
||||
|
||||
poems.load $routeParams.base
|
||||
]
|
||||
|
||||
.controller "ComparisonController", [
|
||||
'$routeParams', '$rootScope', '$scope', 'poems', 'transformer'
|
||||
($routeParams, $rootScope, $scope, poems, transformer) ->
|
||||
$scope.columns = 1
|
||||
$scope.verses = [[{
|
||||
section: 'Loading...'
|
||||
text: 'Please be patient!'
|
||||
}]]
|
||||
|
||||
poemsUpdated = $rootScope.$on "poemsUpdated", () ->
|
||||
results = poems.get()
|
||||
$scope.columns = results.length
|
||||
transformed = transformer(results)
|
||||
'$scope', 'poems', 'transformer'
|
||||
($scope, poems, transformer) ->
|
||||
$scope.$watchCollection () ->
|
||||
poems.active.length
|
||||
, () ->
|
||||
$scope.columns = poems.active.length
|
||||
transformed = transformer(poems.active)
|
||||
$scope.verses = transformed.verses
|
||||
$scope.meta = transformed.meta
|
||||
headingKey = poems.getHeading() or "Author"
|
||||
|
||||
headingKey = poems.heading or "Author"
|
||||
$scope.headings = (version[headingKey] for version in transformed.meta)
|
||||
|
||||
$scope.$on '$destroy', poemsUpdated
|
||||
poems.load $routeParams.base
|
||||
|
||||
]
|
||||
|
||||
@@ -1,42 +1,37 @@
|
||||
angular.module("sideBySide").service "poems", ['$rootScope', '$q', 'fetch', ($rootScope, $q, fetch) ->
|
||||
poems = []
|
||||
loaded = false
|
||||
heading = undefined
|
||||
angular.module("sideBySide").service "poems", ['$q', 'fetch', ($q, fetch) ->
|
||||
all = []
|
||||
@active = [{
|
||||
meta: {}
|
||||
content: [{
|
||||
section: 'Loading...'
|
||||
text: 'Please be patient!'
|
||||
}]
|
||||
}]
|
||||
@heading = undefined
|
||||
|
||||
@load = (base = '') ->
|
||||
updateActive = () =>
|
||||
@active = (poem for poem in all when poem.meta.Active is true)
|
||||
|
||||
@load = (base = '') =>
|
||||
config = base.replace(/\./g, '/') + "/config.json"
|
||||
|
||||
if loaded == true
|
||||
$rootScope.$emit "poemsUpdated"
|
||||
else
|
||||
fetch(config).then((result) ->
|
||||
$q.all(result.promises).then((results) ->
|
||||
for poem in results
|
||||
if not poem.meta.Active?
|
||||
poem.meta.Active = true
|
||||
poems.push poem
|
||||
fetch(config).then (result) =>
|
||||
$q.all(result.promises).then (results) =>
|
||||
for poem in results
|
||||
if not poem.meta.Active?
|
||||
poem.meta.Active = true
|
||||
all.push poem
|
||||
|
||||
heading = result.heading
|
||||
loaded = true
|
||||
|
||||
$rootScope.$emit "poemsUpdated"
|
||||
)
|
||||
)
|
||||
|
||||
@get = () ->
|
||||
poem for poem in poems when poem.meta.Active is true
|
||||
|
||||
@getHeading = () ->
|
||||
heading
|
||||
@heading = result.heading
|
||||
updateActive()
|
||||
|
||||
@show = (id) ->
|
||||
poems[id].meta.Active = true
|
||||
$rootScope.$emit "poemsUpdated"
|
||||
|
||||
all[id].meta.Active = true
|
||||
updateActive()
|
||||
|
||||
@hide = (id) ->
|
||||
poems[id].meta.Active = false
|
||||
$rootScope.$emit "poemsUpdated"
|
||||
all[id].meta.Active = false
|
||||
updateActive()
|
||||
|
||||
@
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user