|
@@ -1,43 +1,7 @@
|
|
|
define [
|
|
define [
|
|
|
"base"
|
|
"base"
|
|
|
], (App) ->
|
|
], (App) ->
|
|
|
- fakeNgModel = (initValue) ->
|
|
|
|
|
- $setViewValue: (value) ->
|
|
|
|
|
- @$viewValue = value
|
|
|
|
|
- return
|
|
|
|
|
- $viewValue: initValue
|
|
|
|
|
-
|
|
|
|
|
App.directive "updateScrollBottomOn", ->
|
|
App.directive "updateScrollBottomOn", ->
|
|
|
- # return {
|
|
|
|
|
- # priority: 1
|
|
|
|
|
- # require: ["?ngModel"]
|
|
|
|
|
- # restrict: "A"
|
|
|
|
|
- # link: (scope, $el, attrs, ctrls) ->
|
|
|
|
|
- # scrollToBottom = ->
|
|
|
|
|
- # el.scrollTop = el.scrollHeight
|
|
|
|
|
- # return
|
|
|
|
|
- #
|
|
|
|
|
- # shouldActivateAutoScroll = ->
|
|
|
|
|
- # # + 1 catches off by one errors in chrome
|
|
|
|
|
- # el.scrollTop + el.clientHeight + 1 >= el.scrollHeight
|
|
|
|
|
- #
|
|
|
|
|
- #
|
|
|
|
|
- # el = $el[0]
|
|
|
|
|
- # ngModel = ctrls[0] or fakeNgModel(true)
|
|
|
|
|
- #
|
|
|
|
|
- # scope.$watch ->
|
|
|
|
|
- # console.log "SCOPE CHANGED", ngModel.$viewValue
|
|
|
|
|
- # if ngModel.$viewValue
|
|
|
|
|
- # scrollToBottom()
|
|
|
|
|
- #
|
|
|
|
|
- # $el.bind "scroll", ->
|
|
|
|
|
- # activate = shouldActivateAutoScroll()
|
|
|
|
|
- # scope.$apply ngModel.$setViewValue.bind(ngModel, activate) if activate isnt ngModel.$viewValue
|
|
|
|
|
- #
|
|
|
|
|
- # return
|
|
|
|
|
- # }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
return {
|
|
return {
|
|
|
restrict: "A"
|
|
restrict: "A"
|
|
|
link: (scope, element, attrs, ctrls) ->
|
|
link: (scope, element, attrs, ctrls) ->
|
|
@@ -63,11 +27,9 @@ define [
|
|
|
scrollBottom = 0
|
|
scrollBottom = 0
|
|
|
element.on "scroll", (e) ->
|
|
element.on "scroll", (e) ->
|
|
|
scrollBottom = element[0].scrollHeight - element[0].scrollTop - element[0].clientHeight
|
|
scrollBottom = element[0].scrollHeight - element[0].scrollTop - element[0].clientHeight
|
|
|
- console.log "SCROLL BOTTOM CHANGED", scrollBottom
|
|
|
|
|
|
|
|
|
|
scope.$on attrs.updateScrollBottomOn, () ->
|
|
scope.$on attrs.updateScrollBottomOn, () ->
|
|
|
setTimeout () ->
|
|
setTimeout () ->
|
|
|
- console.log "RESTORING SCROLL BOTTOM", scrollBottom
|
|
|
|
|
element.scrollTop(element[0].scrollHeight - element[0].clientHeight - scrollBottom)
|
|
element.scrollTop(element[0].scrollHeight - element[0].clientHeight - scrollBottom)
|
|
|
, 0
|
|
, 0
|
|
|
}
|
|
}
|