Commit Graph

183 Commits

Author SHA1 Message Date
Andy Joslin
e75e20dc9d refactor: $animate - add $animateClassToggler to stop race conditions
Addresses #1100.

Fixes race conditions where $animate.{removeClass,hideClass} are
called simultaneously, in addition fixes any blinking that coulld be
caused by showing an element just attached to the dom.
2014-04-10 10:35:36 -06:00
Andy Joslin
1809ce2cac style(ionRefresher): pulling-text, refreshing-text default to ' '
Fixes #1052.
2014-04-09 15:17:21 -06:00
Andy Joslin
08da6f753c fix(ionInfiniteScroll): remove listener on $destroy 2014-04-09 08:34:05 -06:00
Andy Joslin
d58fff72de fix(ionInfiniteScroll): work properly if past horizontal boundaries
Fixes #1073

ion-infinite-scroll will now fire a scroll event if the user scrolls
past the left boundaries (if they exist) or the top boundaries (if they
exists).  This means infinite scroll works for vertical, horizontal, or
vertical plus horizontal scrolling situations.
2014-04-09 07:51:14 -06:00
Andy Joslin
98e7e3df46 refactor($ionicLoading,$ionicPopup): factor out common code, add tests
Also fixes $ionicLoading flickering on ios7 in beta.1.
2014-04-08 13:35:02 -06:00
Andy Joslin
92c65f367b refactor(ionList): make sure attributes sync with delegate 2014-04-08 10:27:37 -06:00
Andy Joslin
757f181931 fix(ionTab): make sure all tab-nav attributes are re-interpolated on change
Fixes #955.

Closes #1071.
2014-04-07 11:12:32 -06:00
Andy Joslin
c4a3d4ccbf test(navClear): remove ddescribe 2014-04-07 10:31:38 -06:00
Andy Joslin
4dffc5f6c6 fix(navClear): only set viewOptions if click leads to state change
Closes #1043
2014-04-07 10:21:00 -06:00
Andy Joslin
986dbac893 refactor(ionList): more expressive, declarative (breaking change)
Closes #1024.

BREAKING CHANGE: ion-list syntax has changed in favor of simplicity &
flexibility.

Relevant documentation:
[ionList](http://ionicframework.com/docs/api/directive/ionList),
[ionItem](http://ionicframework.com/docs/api/directive/ionItem),
[ionOptionButton](http://ionicframework.com/docs/api/directive/ionOptionButton),
[ionReorderButton](http://ionicframework.com/docs/api/directive/ionReorderButton),
[ionDeleteButton](http://ionicframework.com/docs/api/directive/ionDeleteButton),
[$ionicListDelegate](http://ionicframework.com/docs/api/service/$ionicListDelegate).

To migrate, change your code from this:

```html
<ion-list option-buttons="[{text:'hello',type:'button-positive',onTap:tap()}]"
          on-delete="onDelete(el)"
          delete-icon="ion-minus-circled"
          can-delete="true"
          show-delete="shouldShowDelete"
          on-reorder="onReorder(el, startIndex, toIndex)"
          reorder-icon="ion-navicon"
          can-reorder="true"
          show-reorder="shouldShowReorder">
  <ion-item ng-repeat="item in items">
    {{item}}
  </ion-item>
</ion-list>
```

To this:

```html
<ion-list show-delete="shouldShowDelete"
          show-reorder="shouldShowReorder">
  <ion-item ng-repeat="item in items">
    {{item}}
    <ion-delete-button class="ion-minus-circled"
                       ng-click="onDelete(item)">
    </ion-delete-button>
    <ion-reorder-button class="ion-navicon"
                       ng-click="onReorder(item, $fromIndex, $toIndex)">
    </ion-reorder-button>
    <ion-option-button class="button-positive" ng-click="tap()">
      Hello
    </ion-option-button>
  </ion-item>
</ion-list>
```
2014-04-04 10:12:16 -06:00
Andy Joslin
4f47bf24f0 fix(navClear): be sure it runs before ngClick
Closes #1047
2014-04-04 09:32:16 -06:00
Andy Joslin
972579383a feat(ionNavBar): make back button animated
Closes #1030
2014-04-02 19:35:09 -06:00
Adam Bradley
8eb6257be6 remove ddescribe 2014-04-01 11:07:15 -05:00
Andy Joslin
ee2b76864a fix(ionicTabBar): detect if matches state in all cases
Addresses #894.
2014-04-01 08:26:54 -06:00
Andy Joslin
0db5e85266 test(ionCheckbox): update test for new template 2014-03-31 23:04:58 -06:00
Adam Bradley
2fbdebcdea fix(range): Fix range being able to slide when in a side menu, closes #318 2014-03-31 13:53:49 -05:00
Keith D. Moore
d2e54a823a feat(ionCheckbox): allow ng-disabled attribute
Closes #939.
2014-03-28 07:41:41 -06:00
Andy Joslin
d53eab8197 fix(ionView): do not set navbar title if no title attr set
Fixes #915

BREAKING CHANGE: Before, if you did not have a `title` attribute set on your
ion-view, it would transition into that view and erase the navbar's current
title.

Now, if your ion-view does not have a `title` attribute set, the new
view will be transitioned in, but there will be no title change.

If you wish to have a blank title on your new view, you must now
explicitly set your `ion-view`'s title attribute to an empty string.

To migrate your code, change from this:

```html
<ion-view></ion-view>
```

To this:

```html
<ion-view title=""></ion-view>
```
2014-03-27 10:51:26 -06:00
Andy Joslin
8a940148ff test(ionContent): reword to be clearer 2014-03-27 08:17:38 -06:00
Andy Joslin
a5eb48b956 fix(ionContent): do not let child scopes inherit has-* classes
Fixes #924
2014-03-27 08:16:02 -06:00
Andy Joslin
41b73abf40 fix(ionNavBar): adjust has-header if ionNavBar is hidden
Fixes #927.
2014-03-27 06:49:18 -06:00
Andy Joslin
75290a3ea0 test(ionRefresher): fix unit test 2014-03-27 05:57:57 -06:00
Andy Joslin
1c8a94736b test(menuToggle): add unit tests 2014-03-26 20:28:09 -06:00
Jay Proulx
73da93d4a4 feat(ionContent): don't wrap in a .scroll element if scroll="false"
Fixes #841. Closes #897.
2014-03-26 19:18:09 -06:00
Andy Joslin
c7baba5f9a style(ionRefresher): make pulling text display:block
Addresses #909
2014-03-26 08:11:01 -06:00
Andy Joslin
885f32a42d test(ionicView): remove ddescribe 2014-03-25 12:18:25 -06:00
Andy Joslin
4d1b13b5ad refact(ionView): do not call setTitle with initialTitle 2014-03-25 12:16:52 -06:00
Andy Joslin
3b0af6c339 test(ionNavBar): add test for $destroy() -> $hasHeader = false 2014-03-25 07:46:25 -06:00
Andy Joslin
17416d7a07 test(ionContent): add tests for has-* classNames 2014-03-25 07:45:20 -06:00
Andy Joslin
5da74bb736 sliderView: deprecate prev, add previous 2014-03-24 21:05:32 -06:00
Andy Joslin
c6dec3c472 refactor(delegates): s/getByHandle/$getByHandle for clarity 2014-03-24 20:51:14 -06:00
Andy Joslin
5567b08c4b delegates: add tabbar, update docs 2014-03-24 20:35:55 -06:00
Andy Joslin
ffeaab5adc ionSlideBox: add $ionicSlideBoxDelegate with new features 2014-03-24 19:40:10 -06:00
Andy Joslin
c276545180 ionSideMenu: add $ionicSideMenuDelegate with new features 2014-03-24 16:48:59 -06:00
Andy Joslin
c1d2571d5e scroll: add $ionicScrollDelegate with new pattern
Addresses #877
2014-03-24 15:58:22 -06:00
Andy Joslin
dd2c0c776b refact(ionicBar): make tapScrollToTop work on navBar too
Closes #750
2014-03-24 07:57:52 -06:00
Adam Bradley
f8c6660632 fix tab-item-active test 2014-03-24 08:40:28 -05:00
Andy Joslin
ae57c1617d test(ionContent): fix test compiling wrong directive 2014-03-21 11:34:35 -05:00
Andy Joslin
4dd952a54d refact(ionScroll): add $onScroll binding
Closes #865
2014-03-21 10:08:09 -05:00
Andy Joslin
f594f653d5 refactor(controllers): only assign to parent scope when needed 2014-03-21 10:08:09 -05:00
Andy Joslin
38acea337a refactor(controllers): assign to parent scope if possible 2014-03-21 10:08:09 -05:00
Andy Joslin
f083eaf7f7 refactor(ionNavButtons): compile in the correct context 2014-03-21 09:15:51 -05:00
Andy Joslin
6d403efb48 refactor(ionHeaderBar): make sure tapScrollToTop works even on rootScope 2014-03-21 09:15:51 -05:00
Adam Bradley
fe44a7d98b rename .item-drag to .item-reorder, further standardize item editing 2014-03-20 16:02:50 -05:00
Adam Bradley
07c824db8d fix(item): Restructure item editing css for added reusability and organization 2014-03-20 14:18:12 -05:00
Andy Joslin
e94d400648 feat(content): automatically add/remove has-* classes to content
Also, do manual transclusion on items that would be 'deep' directives -
to fix a problem with transcluding & requiring parent elements.

Closes #619
2014-03-19 16:32:24 -06:00
Andy Joslin
dbe4e3901d feat(ionic): remove all delegates
BREAKING CHANGE: $ionicScrollDelegate, $ionicSlideBoxDelegate, and
$ionicSideMenuDelegate have been removed.

  - $ionicScrollDelegate has been changed to $ionicScrollController.
    Documentation:
    [ionContent](
    http://ajoslin.github.io/docs/nightly/api/directive/ionContent),
    [ionScroll](
    http://ajoslin.github.io/docs/nightly/api/directive/ionScroll)

    Change your code from this:

    ```html
    <ion-content ng-controller="MyCtrl">
      <button ng-click="scrollBottom()">Scroll to bottom!</button>
    </ion-content>
    ```
    ```js
    function MyCtrl($scope, $ionicScrollDelegate) {
      $scope.scrollBottom = function() {
        $ionicScrollDelegate.scrollBottom();
      };
    }
    ```

    To this:

    ```html
    <!-- optional attr controller-bind, see docs -->
    <ion-content ng-controller="MyCtrl">
      <button ng-click="scrollBottom()">Scroll to bottom!</button>
    </ion-content>
    ```
    ```js
    function MyCtrl($scope) {
      $scope.scrollBottom = function() {
        $scope.$ionicScrollController.scrollBottom();
      };
    }
    ```

  - $ionicSideMenuDelegate has been changed to
    $ionicSideMenusController. Documentation:
    [ionSideMenus](http://ajoslin.github.io/docs/nightly/api/directive/ionSideMenus)

    Change your code from this:

    ```html
    <ion-side-menus>
      <ion-side-menu side="left">Side Menu Left</ion-side-menu>
      <ion-pane ion-side-menu-content ng-controller="MyCtrl">
        <button ng-click="toggleLeftMenu()">
          Toggle Left Menu!
        </button>
      </ion-pane>
    </ion-side-menus>
    ```
    ```js
    function MyCtrl($scope, $ionicSideMenuDelegate) {
      $scope.toggleLeftMenu = function() {
        $ionicSideMenuDelegate.toggleLeft();
      };
    }
    ```

    To this:

    ```html
    <!-- optional attr controller-bind, see documentation -->
    <ion-side-menus>
      <ion-side-menu side="left">Side Menu Left</ion-side-menu>
      <ion-pane ion-side-menu-content ng-controller="MyCtrl">
        <button ng-click="toggleLeftMenu()">
          Toggle Left Menu!
        </button>
      </ion-pane>
    </ion-side-menus>
    ```
    ```js
    function MyCtrl($scope) {
      $scope.toggleLeftMenu = function() {
        $scope.$ionicSideMenuController.toggleLeft();
      };
    }
    ```

  - $ionicSlideBoxDelegate has been removed and upgraded to
    $ionicSlideBoxController. It had only one method that
    was unneeded.  [Documentation](
    http://ajoslin.github.io/docs/nightly/api/directive/ionSlideBox)
2014-03-19 11:51:07 -06:00
Andy Joslin
532d473e35 feat(ion-content): watch padding attribute 2014-03-18 15:03:42 -06:00
Andy Joslin
83f4776f53 chore: remove animation & type attributes, standard controller names 2014-03-18 14:54:21 -06:00
Andy Joslin
5117d5673a refactor(ionContent): remove has-* classes
BREAKING CHANGE: ion-content's has-header/footer/tabs attributes
no longer work.

Use the classes 'has-header', 'has-subheader', 'has-footer', and
'has-tabs' to modify the positioning of the ion-content relative
to surrounding elements.

Before: `<ion-content has-header="true">`

After: `<ion-content class="has-header">`
2014-03-18 14:49:12 -06:00