mirror of
https://github.com/wassname/side-by-side.git
synced 2026-08-21 11:21:53 +08:00
61 lines
1.6 KiB
CoffeeScript
61 lines
1.6 KiB
CoffeeScript
angular.module("sideBySide").controller "ComparisonController",
|
|
['$document', '$rootScope', '$scope', '$timeout', 'filter', 'load', 'poems', 'route', 'transformer'
|
|
($document, $rootScope, $scope, $timeout, filter, load, poems, route, transformer) ->
|
|
min = 1
|
|
max = 5
|
|
|
|
scroll = ->
|
|
setTimeout ->
|
|
if 'section' of route.params
|
|
section = 'section-' + route.params['section']
|
|
element = document.getElementById section
|
|
$document.scrollTo(element, 10, 200) if element
|
|
, 1
|
|
|
|
$rootScope.$on 'duScrollspy:becameActive', ($event, $element) ->
|
|
if not $scope.meta[0].Loading
|
|
route.update 'section', $element.prop('id').replace('section-', '')
|
|
$rootScope.$apply()
|
|
|
|
$scope.$watchCollection ->
|
|
poems.getActive()
|
|
, ->
|
|
active = poems.getActive()
|
|
|
|
$scope.columns = active.length
|
|
transformed = transformer active
|
|
$scope.verses = transformed.verses
|
|
$scope.meta = transformed.meta
|
|
|
|
headingKey = poems.config.heading or "Author"
|
|
$scope.headings = (version[headingKey] for version in transformed.meta)
|
|
|
|
$scope.metaKeys = poems.config.metaKeys or poems.getMetaKeys()
|
|
$scope.all = poems.all
|
|
scroll()
|
|
|
|
if not $scope.meta[0].Loading
|
|
route.update 'display', filter.getFilter()
|
|
|
|
$scope.switchActive = (poem) ->
|
|
length = poems.getActive().length
|
|
active = poem.meta.Active
|
|
|
|
if (length <= min and active)
|
|
$scope.tooFew = true
|
|
$timeout((-> $scope.tooFew = false), 1000)
|
|
else if (length >= max and not active)
|
|
$scope.tooMany = true
|
|
$timeout((-> $scope.tooMany = false), 2500)
|
|
else
|
|
poem.meta.Active = ! active
|
|
|
|
$scope.tooFew = false
|
|
$scope.tooMany = false
|
|
|
|
load(
|
|
route.getBaseDir()
|
|
route.params.display
|
|
)
|
|
]
|