Scroll to selected history update when coming back from the labels view.

This commit is contained in:
Paulo Reis 2018-08-14 15:27:07 +01:00
parent 663ca275cb
commit 6b31268bfa
2 changed files with 20 additions and 0 deletions

View file

@ -3,6 +3,22 @@ define [
], (App) ->
historyEntriesListController = ($scope, $element, $attrs) ->
ctrl = @
ctrl.$entryListViewportEl = null
_isEntryElVisible = ($entryEl) ->
entryElTop = $entryEl.offset().top
entryElBottom = entryElTop + $entryEl.outerHeight()
entryListViewportElTop = ctrl.$entryListViewportEl.offset().top
entryListViewportElBottom = entryListViewportElTop + ctrl.$entryListViewportEl.height()
return entryElTop >= entryListViewportElTop and entryElBottom <= entryListViewportElBottom;
_getScrollTopPosForEntry = ($entryEl) ->
halfViewportElHeight = ctrl.$entryListViewportEl.height() / 2
return $entryEl.offset().top - halfViewportElHeight
ctrl.onEntryLinked = (entry, $entryEl) ->
if entry.selectedTo and entry.selectedFrom and !_isEntryElVisible $entryEl
$scope.$applyAsync () ->
ctrl.$entryListViewportEl.scrollTop _getScrollTopPosForEntry $entryEl
ctrl.$onInit = () ->
ctrl.$entryListViewportEl = $element.find "> .history-entries"
return
App.component "historyEntriesList", {

View file

@ -26,6 +26,8 @@ define [
color : "#FFF"
else
color: "hsl(#{ hue }, 70%, 50%)"
ctrl.$onInit = () ->
ctrl.historyEntriesList.onEntryLinked ctrl.entry, $element.find "> .history-entry"
return
App.component "historyEntry", {
@ -35,6 +37,8 @@ define [
users: "<"
onSelect: "&"
onLabelDelete: "&"
require:
historyEntriesList: '^historyEntriesList'
controller: historyEntryController
templateUrl: "historyEntryTpl"
}