mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-09 11:34:24 +08:00
Add pickings and simplify poems service
This commit is contained in:
@@ -1 +1,8 @@
|
||||
div Here you can pick which versions are displayed.
|
||||
table
|
||||
tr
|
||||
th Active
|
||||
th(ng-repeat="(attribute, value) in poems[0].meta" ng-if="attribute != 'Active'" ng-bind-html="attribute")
|
||||
tr(ng-repeat="poem in poems" ng-class="{disabled: !poem.meta.Active}")
|
||||
td
|
||||
input(type="checkbox" ng-model="poem.meta.Active")
|
||||
td(ng-repeat="(attribute, value) in poem.meta" ng-if="attribute != 'Active'" ng-bind-html="value")
|
||||
|
||||
@@ -3,6 +3,7 @@ angular.module('sideBySide', ['sideBySide.controllers', 'ngRoute', 'ngSanitize']
|
||||
$routeProvider
|
||||
.when '/:base?/pick', {
|
||||
templateUrl: 'partials/pick.html'
|
||||
controller: 'PickController'
|
||||
}
|
||||
.when '/:base?', {
|
||||
templateUrl: 'partials/comparison.html'
|
||||
|
||||
@@ -1,26 +1,38 @@
|
||||
angular.module("sideBySide.controllers", [])
|
||||
.controller "AppController", [
|
||||
'$routeParams', '$scope', 'poems'
|
||||
($routeParams, $scope, poems) ->
|
||||
'$location', '$scope', 'poems'
|
||||
($location, $scope, poems) ->
|
||||
$scope.$on "$routeChangeSuccess", ($currentRoute, $previousRoute) ->
|
||||
$scope.base = if $previousRoute.params.base \
|
||||
then '/' + $previousRoute.params.base
|
||||
else ''
|
||||
|
||||
poems.load $routeParams.base
|
||||
base = $location.url().replace(/\/(.*)\/.*/, '$1')
|
||||
poems.load base
|
||||
]
|
||||
|
||||
.controller "ComparisonController", [
|
||||
'$scope', 'poems', 'transformer'
|
||||
($scope, poems, transformer) ->
|
||||
$scope.$watch () ->
|
||||
poems.active.length
|
||||
(poem for poem in poems.all when poem.meta.Active is true).length
|
||||
, () ->
|
||||
$scope.columns = poems.active.length
|
||||
transformed = transformer(poems.active)
|
||||
active = (poem for poem in poems.all when poem.meta.Active is true)
|
||||
|
||||
$scope.columns = active.length
|
||||
transformed = transformer(active)
|
||||
$scope.verses = transformed.verses
|
||||
$scope.meta = transformed.meta
|
||||
|
||||
headingKey = poems.heading or "Author"
|
||||
$scope.headings = (version[headingKey] for version in transformed.meta)
|
||||
]
|
||||
|
||||
.controller "PickController", [
|
||||
'$scope', 'poems'
|
||||
($scope, poems) ->
|
||||
$scope.$watch () ->
|
||||
(poem for poem in poems.all when poem.meta.Active is true).length
|
||||
, () ->
|
||||
$scope.poems = poems.all
|
||||
]
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
angular.module("sideBySide").service "poems", ['$q', 'fetch', ($q, fetch) ->
|
||||
all = []
|
||||
@active = [{
|
||||
meta: {}
|
||||
@all = [{
|
||||
meta: {
|
||||
Active: true
|
||||
}
|
||||
content: [{
|
||||
section: 'Loading...'
|
||||
text: 'Please be patient!'
|
||||
@@ -9,29 +10,18 @@ angular.module("sideBySide").service "poems", ['$q', 'fetch', ($q, fetch) ->
|
||||
}]
|
||||
@heading = undefined
|
||||
|
||||
updateActive = () =>
|
||||
@active = (poem for poem in all when poem.meta.Active is true)
|
||||
|
||||
@load = (base = '') =>
|
||||
config = base.replace(/\./g, '/') + "/config.json"
|
||||
|
||||
fetch(config).then (result) =>
|
||||
$q.all(result.promises).then (results) =>
|
||||
@all = []
|
||||
for poem in results
|
||||
if not poem.meta.Active?
|
||||
poem.meta.Active = true
|
||||
all.push poem
|
||||
@all.push poem
|
||||
|
||||
@heading = result.heading
|
||||
updateActive()
|
||||
|
||||
@show = (id) ->
|
||||
all[id].meta.Active = true
|
||||
updateActive()
|
||||
|
||||
@hide = (id) ->
|
||||
all[id].meta.Active = false
|
||||
updateActive()
|
||||
|
||||
@
|
||||
]
|
||||
|
||||
@@ -60,6 +60,9 @@ body
|
||||
left: 0px
|
||||
top: -6px
|
||||
|
||||
.disabled
|
||||
color: #997
|
||||
|
||||
max_columns = 6
|
||||
for columns in 1 .. max_columns
|
||||
.cols-{columns}
|
||||
|
||||
Reference in New Issue
Block a user