Starting a couple of versions ago, animations in navbar stopped working.
I took this as a chance to fix this, and ddo a refactor to make the code
more modular and testable.
Lots of manual dom manipulation was offloaded to angular directives, and
now we will not have bugs with end-user using interpolated class
attribute on their own nav-bar and overriding our own manually added
classes.
This requires us to set fullscreen="false" in our cordova apps.
Uses the resize event to determine when the keyboard has been shown,
then broadcasts an event from the activeElement: 'scrollChildIntoView',
which is caught by the nearest parent scrollView. The scrollView will
then see if that element is within the new device's height (since the
keyboard resizes the screen), and if not scroll it into view.
Additionally, when the keyboard resizes the screen we add a
`.hide-footer` class to the body, which will hide tabbars and footer
bars while the keyboard is opened.
For now, this is android only.
Closes#314.
This is just a whitespace change with a commit attached to it so that we
can have the fix appear in the changelog.
The actual changes are in c119498d1b.
Ultimate goal is to reduce DOM manipulations. It appears 'ng-scope' and
'ng-isolate-scope' classnames are not required for Angular to work. So
in an effort to reduce any DOM manipulations, we’re going to try to
excluding them from being added to elements and see what comes of it.
Scrolls to the location of element with id matching $location.hash(). If
$location.hash() is blank or the id does not exist, it will scroll to
the top.
Fixes#521. Reordering now uses webkitTransform instead of
element.style.left. Additionally, as you drag the drag-element to the
top or bottom of the scroll-area, it will scroll it up or down as
allowed.
Refactors necessary: Common code from `<content>` and `<scroll>` moved
into js/ext/angular/controllers/ionicScrollController. Then `<content>`
and `<scroll>` expose the controller, and `<list>` can require it.
`<list>` then uses the controller (if exists) to pass the scrollView and
scrollEl to ReorderDrag, and ReorderDrag uses that to scroll.
Additionally, js/ext/angular/test/controller/ionicScrollController tests
much functionality that was untested before.
`content` directive stores scroll in view page history.
The history is passed down through $viewContentLoaded event, which is
broadcasted by navView directive when it loads a page.