Commit Graph

541 Commits

Author SHA1 Message Date
Perry Govier
c27a54b13b test(pullToRefresh): fix test broken in PR 2014-10-31 10:55:51 -05: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
Andrew
2d9f5fd439 test(ionSlidePager): add unit tests 2014-10-09 11:53:52 -06:00
Andrew
5a720699f6 amend(slideBox): always call on-slide-changed, even if no selected attr 2014-10-09 11:39:09 -06:00
Andrew
950d697a70 style(slideBox): lower the speed a little bit 2014-10-09 10:18:36 -06:00
Andrew
9a813fbbc2 test(ionSlideBox): fix test 2014-10-09 10:00:43 -06:00
Andrew
d9cc7894d5 enhance(slideBox): re-add update() method 2014-10-09 09:52:51 -06:00
Andrew
01c829c351 feat(slideBox): use selected value provided for initial section
Addresses #2288.
2014-10-09 08:39:45 -06:00
Andrew
8228106145 demo(ionSlideBox): update demo 2014-10-08 16:22:15 -06:00
Andrew
7d2945f95d refactor(slideBox): make it so elements are properly removed 2014-10-08 16:10:28 -06:00
Andrew
0d2f54e6a9 fix(slideBox): do not require scroll parent 2014-10-08 15:56:23 -06:00
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
Perry Govier
29d6dc8163 fix(sideMenu): allow expose-aside-when on the right side. Closes #2207 2014-10-03 11:27:26 -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
7cad00837d test(viewState): minor updates 2014-09-26 08:20:31 -05:00
Perry Govier
6495ff63ee test(refresher): clean up last refresher patch's test 2014-09-25 16:20:58 -05:00
Perry Govier
cedee5749a fix(sideMenu): Prevent is-enabled="false" from blocking current view interaction. Fixes #1973 2014-09-22 14:26:58 -05:00
Perry Govier
aa7e9dd7a9 fix(tabs): fix android untyled android tab 2014-09-18 18:49:42 -05:00
Casey Garland
069d1e4b5c test(modal): Add unit test for modal view 2014-09-18 13:48:22 -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
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
ea51612e60 test(titles): fix broken test 2014-09-16 10:35:15 -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
73a30e0659 test(): fix $timeout.flush 2014-09-15 00:07:12 -05:00
Adam Bradley
6f79a5e5c8 fix(exposeAsideWhen): disable with isEnabled=false
Closes #2210
2014-09-14 23:38:35 -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
ed3e9e30ce fix(splitView): disable menu toggles on exposed aside
Closes #2182
2014-09-11 22:05:47 -05:00
Justin Basinger
f89f010cce fix(scrollview, content): Fixed multiple memory leaks in scrollview and content 2014-09-08 12:21:49 -05:00
Perry Govier
69442d5a8e fix(buttons): centering icons on <a> tag buttons. Closes #2074 2014-09-05 12:33:05 -05:00
Pavel Strashkin
0bad6031ab test(navBackButton): remove redundant should word from test case description 2014-09-03 18:05:13 -07:00
Adam Bradley
caf1272186 fix(scroll): remove isContentEditable from ignoreScrollStart
If an element isContentEditable, do not ignoreScrollStart incase users
are using contenteditable elements to scroll. This may have originally
been put in because it disabled text selection, and moving the text
cursor on touch. But this doesn’t seem to be the case anymore, so it
may have been put in for platform versions we no longer support. Also
fix the data-prevent-scroll dataset attribute. Closes #2091
2014-08-29 23:35:07 -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
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
Adam Bradley
b69aa5485f feat(splitView): expose side menu on large viewport
Ability to keep a left menu exposed on larger viewports, such as a
landscape tablet. Added the `expose-aside-menu` attribute directive.
2014-08-26 15:00:42 -05:00
Max Lynch
853fad19b1 New transition styles 2014-08-24 15:08:30 -05:00
Andrew
e00e938040 test(popover): fix tests for container addition 2014-08-20 14:29:11 -06:00
Andrew
6d859f4876 fix(popup): fix alignment, backdrop not fading out 2014-08-20 14:17:19 -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
Adam Bradley
04812a2da9 style(): move listController.unit.js to correct dir 2014-08-20 11:28:15 -05:00
Adam Bradley
b31f4e8e3f refactor(sideMenu): move controller logic to $ionicSideMenus 2014-08-20 11:09:48 -05: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
Perry Govier
840c014b27 fix(item): clicks climb 5 levels looking for an item to activate, but not 6. Fixes #1921 2014-08-19 14:20:35 -05:00
Perry Govier
cc18a64bf4 fix(reorder): item click handlers dont fire when tapping on reorder icon 2014-08-19 11:32:35 -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