Commit Graph

152 Commits

Author SHA1 Message Date
Andrew
7ef9ad74cf fix(slidebox): refactor for performance and stability
Closes #2336. Closes #2317. Closes #2290. Closes #2228. Closes #2067.
Closes #1890. Closes #1865. Closes #1850. Closes #1755. Closes #1688.
Closes #1578. Closes #1501. Closes #1353. Closes #1342. Closes #782.
Closes #416. Closes #2288.

BREAKING CHANGE: The slideBox's API has undergone many changes.

- **`<ion-slide-box>`** attributes have changed (see
  [documentation](http://ionicframework.com/docs/api/directive/ionSlideBox)):

  * `active-slide` has changed to `selected`. Change your code from
  this:

    ```html
    <ion-slide-box active-slide="activeSlideIndex"></ion-slide-box>
    ```

    To this:

    ```html
    <ion-slide-box selected="activeSlideIndex"></ion-slide-box>
    ```

  * `does-continue` has changed to `loop`.  Change your code from this:

    ```html
    <ion-slide-box does-continue="shouldLoop"></ion-slide-box>
    ```

    To this:

    ```html
    <ion-slide-box loop="shouldLoop"></ion-slide-box>
    ```

  * `auto-play` and `slide-interval` have been merged into `auto-play`.
  Change your code from this:

    ```html
    <!-- autoPlay is on -->
    <ion-slide-box auto-play="true" slide-interval="1000">
    </ion-slide-box>
    <!-- autoPlay is off -->
    <ion-slide-box auto-play="false" slide-interval="1000">
    </ion-slide-box>
    ```

    To this:

    ```html
    <!-- autoPlay is on -->
    <ion-slide-box auto-play="1000"></ion-slide-box>
    <!-- autoPlay is off -->
    <ion-slide-box auto-play="false"></ion-slide-box>
    ```

  * `show-pager` and `pager-click` have been removed. Use
  a child `<ion-slide-pager>` element. See the [`ion-slide-pager`
  documentation](http://ionicframework.com/docs/api/directive/ionSlidePager).
  Change your code from this:

  ```html
  <!-- pager using default click action -->
  <ion-slide-box show-pager="true">
  </ion-slide-box>
  <!-- pager with custom click action -->
  <ion-slide-box show-pager="true" pager-click="doSomething(index)">
  </ion-slide-box>
  ```

  To this:

  ```html
  <ion-slide-box>
    <!-- pager using default click action -->
    <ion-slide-pager></ion-slide-pager>
  </ion-slide-box>
  <ion-slide-box>
    <!-- pager with custom click action -->
    <ion-slide-pager ng-click="doSomething(index)"></ion-slide-pager>
  </ion-slide-box>
  ```

- **`$ionicSlideBoxDelegate`** methods have changed (see
  [documentation](http://ionicframework.com/docs/api/service/$ionicSlideBoxDelegate)):

  - `update()` has been removed. slideBox updates on its own now.

  - `stop()` has been removed. See `autoPlay()` below.

  - `start()` hass been removed. See `autoPlay()` below.

  - `slide(newIndex[, speed])` has been renamed to `select(newIndex[,
    speed]);

  - `currentIndex()` has been renamed to `selected()`.

  - `slidesCount()` has been renamed to `count()`.

  - New method `$ionicSlideBoxDelegate.autoPlay()`. Change your code
    from this:

    ```js
    // stop auto sliding
    $ionicSlideBoxDelegate.stop();
    // later... start auto sliding
    $ionicSlideBoxDelegate.start();
    ```

    To this:

    ```js
    var autoPlaySpeed = 3000; //wait 3000 seconds between changing slide
    // stop auto sliding
    $ionicSlideBoxDelegate.autoPlay(false);
    // later... start auto sliding
    $ionicSlideBoxDelegate.autoPlay(autoPlaySpeed);
    ```

  - `previous()` now returns the index of the previous slide and does
    not select. Change your code from this:

    ```js
    // select previous slide
    $ionicSlideBoxDelegate.previous();
    ```

    To this:

    ```js
    // select previous slide
    $ionicSlideBoxDelegate.select( $ionicSlideBoxDelegate.previous() );
    ```
  - `next()` now returns the index of the next slide and does
    not select. Change your code from this:

    ```js
    // select next slide
    $ionicSlideBoxDelegate.next();
    ```

    To this:

    ```js
    // select next slide
    $ionicSlideBoxDelegate.select( $ionicSlideBoxDelegate.next() );
    ```
2014-10-08 11:09:15 -06:00
Perry Govier
34934f636e fix(loading): prevent loading service from disabling all future back button behavior. Fixes #2214 2014-10-07 14:19:20 -05:00
Mathias Muller
9dcdf52300 #2234: Declare local variable
IE11 needs local variable to be declared
2014-10-06 09:59:35 +02:00
Perry Govier
1224902e57 fix(popover): reposition popover on window resize. Closes #2189 2014-10-02 14:04:27 -05:00
Perry Govier
5658a4df0c fix(popup): prevent back to back popups from dismissing background. Fixes #2071 2014-09-26 16:43:27 -05:00
Perry Govier
cffe631866 fix(loading): subsequent calls use config defaults and not last call's options. Fixes #2066, #2088 2014-09-26 15:26:01 -05:00
Adam Bradley
f0af085841 refactor(clickBlock): ensure click block fallback cancels 2014-09-26 08:15:21 -05:00
Adam Bradley
fd30330d14 Merge pull request #2272 from moroshko/patch-5
docs(popup): remove unnecessary comma in popup docs
2014-09-25 07:55:26 -05:00
Adam Bradley
9b1882c156 Merge pull request #2271 from moroshko/patch-4
docs(popup): typo fix in popup docs
2014-09-25 07:54:54 -05:00
Misha Moroshko
4dc13b94dc Remove unnecessary comma in popup docs 2014-09-23 13:33:46 +10:00
Misha Moroshko
82e74f6d7a Typo fix in popup docs 2014-09-23 13:26:18 +10:00
Misha Moroshko
66b7d8c602 Fix typo in popover docs 2014-09-23 13:09:27 +10:00
ruioliveiras
eba588337c docs(modal): note angular template syntax regarding inline templates 2014-09-18 11:21:47 -05:00
Perry Govier
767ce6a3b4 fix(loading): prevent spinners in loading view from causing reflows when hidden. Closes #2013 2014-09-17 13:37:51 -05:00
Adam Bradley
046ad53b20 feat(cordovaEvents): $ionicPlatform.on method
Create $ionicPlatform.on(type, callback) to make it easier to add
Cordova event listeners. Closes #2219
2014-09-16 08:55:00 -05:00
Adam Bradley
68de8ed910 fix(history): tabs lose history after switching tabs
It was possible that when switching between tabs, and creating a
navigation history in one of the tabs, then switching tabs again, it
could clear out the individual tab stacks under certain scenarios.
Closes #1978
2014-09-16 00:13:29 -05:00
Adam Bradley
20d567f81c fix(click): remove native click prevent 400ms later
When an actionsheet/popup is open, everything under it has
`pointer-events:none`. However, once they are removed then the click
prevent was removed immediately too, but the click that comes in 300ms
later was still firing whatever would have been underneath the
actionsheet/popup. Instead, wait 400ms before removing the click
prevent, which would block the native click. Closes #2204
2014-09-15 00:00:59 -05:00
Adam Bradley
74de015c22 fix(keyboard): android scroll stuck
When a state change happens, ensure the keyboard is hidden. When a
keyboard is hidden, ensure all pending timers our cleared. When
resetting scrollView, ensure it’s only doing it when it has to.
For testing: #1670 #2192
2014-09-14 23:18:57 -05:00
Adam Bradley
0420e6eb2d refactor(popover): popover-top as the default 2014-09-14 21:08:21 -05:00
Perry Govier
18775ae169 chore(collection repeat): commenting out noisy console log 2014-09-12 11:19:47 -05:00
Perry Govier
cb9b81d57e fix(templateCache): make sure $state is passed config options before checking what they are 2014-09-11 15:25:49 -05:00
Perry Govier
6a4f381fdd Merge pull request #1917 from schmoofer/master
fix(modal): eliminate flicker when using fade-in/out animation style
2014-09-04 18:47:33 -05:00
Adam Bradley
df57858521 fix(menuContent): gestures do not stop_browser_behavior
The gestures which were being added to side menu content were also
adding the `disable-user-behavior` class, which disabled
contenteditable elements. Now passing in the gesture option
stop_browser_behavior=false, along with adding the options param to the
gestures service. Fixes #421
2014-08-29 22:25:55 -05:00
Adam Bradley
98629d4243 fix(classList): error on svg elements
Fixes #1795
2014-08-28 15:17:44 -05:00
Adam Bradley
eb8e46e62d Merge pull request #2051 from spautz/minification-fix-issue-2050
fix($ionicTemplateCache): explicitly list dependency for minification
2014-08-28 12:14:43 -05:00
Adam Bradley
e9f0fcf556 refactor(clickBlock): add click-block div to body
Instead of using pointer-events: none to disable unwanted clicks which
can cause flickering, we’re now using a click-block div that covers the
view during transitions. Similar concept to pointer-events: none
applied to the body tag, but in tests its showing to be more effective
to not cause any flickers.
2014-08-27 12:56:12 -05:00
Adam Bradley
2c3f1c9f02 feat($ionicBody): service to simplify body ele interaction
Many services/directives have to interact with the body element, and
each one has to write the same long code. The $ionicBody service
provides some useful methods to clean up and reduce redundant code.
2014-08-26 22:23:07 -05:00
Max Lynch
853fad19b1 New transition styles 2014-08-24 15:08:30 -05:00
Steven Pautz
a2377cfbb7 Fix: Explicitly list dependency so that minification works. Fixes #2050 2014-08-21 14:05:11 -04:00
Andrew
6d859f4876 fix(popup): fix alignment, backdrop not fading out 2014-08-20 14:17:19 -06:00
Andrew
029f8f3353 feat($ionicScrollDelegate): expose zoomBy and zoomTo methods
Closes #1977
2014-08-20 12:19:42 -06:00
Andrew
5d06c4aef8 feat(popover): support popping from bottom or top of screen
Closes #1986
2014-08-20 12:09:08 -06:00
Perry Govier
25ee658e8b amend(loading): simpler/more clean fix for #1914 2014-08-20 13:04:48 -05:00
Andrew
120f99ee79 fix(collectionRepeat): always render data correctly with before/after isblings
Closes #2025
2014-08-20 11:22:05 -06:00
Andrew
beecc6274e amend(collectionRepeat): don't render an extra item at the end
Closes #2027
2014-08-20 11:07:11 -06:00
Andrew
4595fd3cc4 refactor($ionicTabsDelegate): for .select() take away second argument
Closes #1682
2014-08-20 10:03:45 -06:00
Perry Govier
65aece2aad fix(loading): potential race condition with showing and hiding loading in same watch cycle 2014-08-19 15:07:10 -05:00
Andrew
c5966bba05 fix(scrollView): resolve memory leaks with holding element references
Addresses #1993
2014-08-18 09:01:29 -06:00
Jim Cummins
1601c07291 (fix): resolve typo in usage
(fix): resolve typo in usage
Fixes typo.
No breaking changes
2014-08-15 16:40:44 -05:00
Perry Govier
359ca33024 docs(templateCache): reformat to conform to ngDoc 2014-08-15 15:48:33 -05:00
Perry Govier
e6af369aff amend(templateCache): JS lint cleanup 2014-08-15 15:15:32 -05:00
Perry Govier
944a92b08d feat(templateCache): automatically cache template files to prevent flicker on page navigation and improve performance
State templates are cached automatically, but you can optionally cache other templates.
```js
$ionicTemplateCahce('myNgIncludeTemplate.html');
```

Optionally disable all preemptive caching with the `$ionicConfigProvider` or individual states by setting `prefetchTemplate`
in the $state definition
```js
$ionicTemplateCahce('myNgIncludeTemplate.html');
```js
  angular.module('myApp', ['ionic'])
  .config(function($stateProvider, $ionicConfigProvider) {

    // disable preemptive template caching globally
    $ionicConfigProvider.prefetchTemplates(false);

    // disable individual states
    $stateProvider
      .state('tabs', {
        url: "/tab",
        abstract: true,
        prefetchTemplate: false,
        templateUrl: "tabs-templates/tabs.html"
      })
      .state('tabs.home', {
        url: "/home",
        views: {
          'home-tab': {
            prefetchTemplate: false,
            templateUrl: "tabs-templates/home.html",
            controller: 'HomeTabCtrl'
          }
        }
      });
  });
```
2014-08-15 15:10:19 -05:00
Andrew
834e2bb173 amend($ionicConfigProvider): fix typo, add unit tests 2014-08-15 13:11:44 -06:00
Andrew
2643cffc19 feat($ionicConfigProvider): add $ionicConfigProvider 2014-08-13 11:44:45 -06:00
Andrew
8c6d5f2c96 fix(collectionRepeat): simplify item reusing process to fix rare reuse error
Closes #1777.
2014-08-13 10:30:44 -06:00
Perry Govier
044fac4d77 fix(popup): only override prompt input if template includes HTML 2014-08-08 15:00:19 -05:00
Andrew
d3ed66e0cd fix(actionSheet): run $apply when closing actionSheet with back button 2014-08-06 14:34:33 -06:00
Andrew
7ddb57e60b feat(collectionRepeat): other children of ion-content element fit in
Closes #1920. Closes #1866. Closes #1380.
2014-08-06 10:32:40 -06:00
Adam Bradley
49a295638d refactor(popup): do not default to focus on first input
Instead of finding a popup element’s first input and focusing on it by
default, only look for the first input with the `autofocus` attribute
added.
2014-08-05 13:58:00 -05:00
Andrew
d4b9ed44fa chore(): remove ionic animation, add collide dependency 2014-08-05 11:56:46 -06:00