Commit Graph

34 Commits

Author SHA1 Message Date
Andrew
0145dc372d fix(scrollDelegate): revert change that made all scroll* methods blur inputs
Closes #2745
2015-02-06 11:28:51 -07:00
perry
7134114bd5 feat(refresher): Allow refrsher to work with native scrolling
This update allows `<ion-refresher>` to work with native scrolling. Native scrolling can be enabled in the state deffinition, through the `$ionicConfigProvider` like `$ionicConfig.scrolling.jsScrolling(false);` or in the controller directly. It should function exactly the same as with JS scrolling enabled.

This is a merge of the wip-scrolling branch.
2015-02-05 11:41:53 -06:00
Damian Karzon
8b4b800f16 Fixed touch scrolling and the js errors on windows
Conflicts:
	js/angular/service/viewService.js
2015-02-01 08:16:56 +13:00
Adam Bradley
6f50c87ec3 feat(icons): svg loaders and ionicons v2.0.1 2015-01-15 15:35:12 -06:00
Adam Bradley
955f44110b feat(pullToRefresh): add on-pull-progress
Add the ability to get the progress of a user’s pull to refresh, while
they’re pulling down the refresher.
2015-01-05 08:17:11 -06:00
Adam Bradley
0951b97f06 fix(delegates): find active instance 2014-11-23 22:42:59 -06:00
Perry Govier
5a28bbb1bd fix(refresher): Fix refreshing icon in Android 4.3 and lower 2014-11-21 15:33:39 -06:00
Adam Bradley
417c3d4ef3 fix(scroll): prevent 'cannot read' exception 2014-11-18 22:18:09 -06:00
Adam Bradley
00aa24fc7f fix(scroll): $historyId should default to root 2014-11-18 21:07:15 -06:00
Adam Bradley
46cbaf9527 fix(scroll): find delegate by historyId
Closes #2572
2014-11-18 16:07:57 -06:00
Adam Bradley
6276506d4f feat(delegateService): create filterFn to find active 2014-11-18 08:46:46 -06:00
Adam Bradley
39951ca99a refactor(): navigation improvements, Angular 1.3
#### Refactor:

* **Navigation:** Refactored navigation for improved performance,
reduce DOM manipulations, increase transition FPS, cached views,
smoother transitions, platform specific transitions with added
configurable controls for transition animation and direction.
* **Cached Views:** Previously as a user navigated an app, each leaving
view’s element and scope would be destroyed. If the same view was
accessed again then the app would have to recreate the element. Views
can now be cached to improve performance. When a view is navigated away
from, its element is left in the DOM, and its scope is disconnected
from the cycle. When navigating to a view which is already cached, its
scope is reconnected, and the existing element which was left in the
DOM becomes the active view. This also allows for scroll position of
previous views to be maintained (without skippy jumps). Config
variables can be used to disable view caching (set to 0), or change the
maximum number of views to cache.
* **Angular v1.3:** Upgraded Ionic’s to work with Angular v1.3. In
general Ionic just works with the upgrade, but the required change was
that animations in v1.3 uses promise, whereas in v1.2 animations used
callbacks.

#### Features:

* **Platform Specific Transitions:** Transitions between views now
default to the transition style appropriate for each platform. For
example, iOS will move forward by transitioning the entering view from
right to center, and the leaving view from center to left. However,
Android will transition with the entering view going from bottom to
center, covering the previous view, which remains stationary. Platform
transitions are automatically applied by default, but config variables
and custom CSS allows these defaults to be easily overridden.
* **Override Transition Type and Direction:** As a user navigates the
app, Ionic automatically applies the appropriate transition type for
the platform, and the direction the user is navigating. However, both
can be overridden in numerous ways: config variable, view attribute,
stateProvider property, or attribute on the button/link that initiated
the transition.
* **enable-menu-with-back-views:** The `enable-menu-with-back-views`
attribute determines if the side menu is enabled when the back button
is showing. When set to `false`, any buttons/links with the
`menuToggle` directive will be hidden, and the user cannot swipe to
open the menu. When going back to the root page of the side menu (the
page without a back button visible), then any menuToggle buttons will
show again, and menus will be enabled again.
* **menuClose:** Closes a side menu which is currently opened.
Additionally, the menuClose directive will now cause transitions to not
animate between views while the menu is being closed.
* **ionNavBackButton:** The back button icon and text will
automatically update to platform config defaults, such as adjusting to
the platform back icon. To take advantage of this, the
`ionNavBackButton` directive now should be empty, such as
`<ion-nav-back-button></ion-nav-back-button>`. The back button can
still be fully customized like it could before, but without any inner
content it knows to style using platform configs.
* **navBar button primary/secondary sides:** Primary and secondary
sides are now the recommended values for the `side` attribute, such as
`<ion-nav-buttons side="primary">`. Primary buttons generally map to
the left side of the header, and secondary buttons are generally on the
right side. However, their exact locations are platform specific. For
example, in iOS the primary buttons are on the far left of the header,
and secondary buttons are on the far right, with the header title
centered between them. For Android however, both groups of buttons are
on the far right of the header, with the header title aligned left.
Recommendation is to always use `primary` and `secondary` so buttons
correctly map to the side familiar to users of a platform. However, in
cases where buttons should always be on an exact side, both `left` and
`right` sides are still available.
* **navDirection:** An attribute directive that sets the direction
which the nav view transition should animate.
* **navTransition:** An attribute directive that sets the transition
type which the nav view transition should use when it animates. Using
`none` will disable an animation.

#### Breaking Changes:

* **Animation CSS:** The CSS for view transitions have changed. This is
a breaking change only if Ionic apps had customized Ionic’s animation
CSS.
* **$ionicPlatformDefaults:** Platform config variables are no longer
in the $ionicPlatformDefaults constant, but within `$ionicConfig`.
* **$ionicViewService:** In the navigation refactoring,
$ionicViewService was split up into two factories, `$ionicViewSwitcher`
and `$ionicHistory`. The `$ionicHistory` is largely what
`$ionicViewService`, but between the two factories there is a better
separation of concerns for improved testing.
* **navClear:** The navClear directive was created to do what the new
side menu `enable-menu-with-back-views` attribute accomplishes.
Additionally, the new `navTransition` and `navDirection` directives are
more useful and granular than the navClear directive.
* **scrollView.rememberScrollPosition:** This method has been removed
since it is no longer needed with cached views.

#### Deprecated:

* **ionView.title:** The `ionView` directive used the `title`
attribute, but this can cause the tooltip to show up on desktop
browsers. The `title` attribute will still work for backwards
compatibility, but we now recommend using `view-title`, such as
`<ion-view view-title=”My Title”>`.
* **ionNavView animation attribute removed:** The animation attribute
is no longer used for nav views. Instead use `$ionicConfig`.
* **ionNavBar animation attribute removed:** The animation attribute is
no longer used for nav bars. Instead use `$ionicConfig`.
2014-11-11 14:43:10 -06:00
Eugene OZ
63d1f26e55 Prevent 'cannot read' exception
On Android (4.4.4) I'm getting "Cannot read property 'options' of null" each time, 100% reproducible.
This small check will not hurt anyone but will prevent unhandled exception error.
2014-11-04 16:07:31 +03:00
Perry Govier
8ee83777f7 fix(scroll): calling ionic scroll methods blur any selected input elements. Closes #2244 2014-10-27 16:45:01 -05:00
Perry Govier
8787760aad fix(pull to refresh): minor optimization to prevent flicker on deactivate 2014-09-25 15:47:26 -05:00
Perry Govier
e608bada6d amend(refresher): fix for if height is unknowable, and earlier commit changes lost in scrollView 2014-09-16 22:55:13 -05:00
Perry Govier
db27fb116c feat(refresher): Improve refresher animation. Allow pulling icon rotation to be disabled. 2014-09-16 16:22:02 -05:00
Adam Bradley
8883c6ccc5 fix(scroll): ensure scrollView objects exist
Check if scrollView is null when switching off of tabs view. #2181
2014-09-12 23:05:28 -05:00
Justin Basinger
f89f010cce fix(scrollview, content): Fixed multiple memory leaks in scrollview and content 2014-09-08 12:21:49 -05:00
Andrew
029f8f3353 feat($ionicScrollDelegate): expose zoomBy and zoomTo methods
Closes #1977
2014-08-20 12:19:42 -06:00
Andrew
c5966bba05 fix(scrollView): resolve memory leaks with holding element references
Addresses #1993
2014-08-18 09:01:29 -06:00
Andrew
5e025fbb01 fix(collectionRepeat): rerender when $ionicScrollDelegate resizes
Fixes #1777
2014-08-11 10:23:49 -04:00
Andrew
9a1f3d7e26 style(scrollController): fix jshint semicolon 2014-08-11 10:12:54 -04:00
Perry Govier
c336e8ede8 fix(refresher): finish animating before changing icon, hide when not in use 2014-08-07 17:54:30 -05:00
Perry Govier
4e6ba5b818 refactor(scroll): minor tweak to make unit tests happy 2014-07-24 12:27:42 -05:00
Perry Govier
3d0a46efe8 fix(scroll): anchor scroll should scroll to IDs that are multiple levels beneath the scroll view. Closes #1804 2014-07-21 14:58:29 -05:00
Andrew
365b5a6bd6 refactor(scrollController): remove console.logs 2014-07-04 19:56:28 -06:00
Andrew
9b601b5523 fix(scrollController): allow tab $historyId to remember scroll
Fixes a bug with tabs, where tabs would only remember their scroll
position when directly related to a view state.

Closes #1654
2014-06-24 09:57:53 +09:00
Max Lynch
9c77089a5e feat(scrollView): better deceleration for scroll view on iOS 2014-05-22 17:53:41 -05:00
Andrew Joslin
4a210130b4 fix(scrollView): stop memory-leak when destroying scrollView
Fixes #1096
2014-05-19 08:14:52 -06:00
Felquis Gimenes
67ea34ae1d docs($ionicModal): clearly note that .modal wrapper is required
Closes #1384.

Just to avoid mistakes/questions like this http://forum.ionicframework.com/t/ionic-modal-not-animating/4196
2014-05-14 09:01:27 -06:00
Andrew Joslin
b785955348 chore(): factor out some angular functions to variables 2014-05-07 14:54:51 -06:00
Andy Joslin
0a64075884 fix(collectionRepeat): correctly save user scroll position on back
Addresses #1157
2014-05-05 10:39:22 -06:00
Andy Joslin
14a2790749 refactor(): reorganize source files 2014-04-14 10:47:27 -06:00