Commit Graph

177 Commits

Author SHA1 Message Date
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
Andy Joslin
b630214fdf refactor(ionTabBar): remove tab.shown and tab.hidden events
Instead, use `on-select` and `on-deselect` attribute callbacks.

Alternatively, listen for $scope.$on('$destroy') in a controller inside
your tab.
2014-03-17 14:41:51 -06:00
Andy Joslin
cdcbea3860 refactor(ionNavButtons): remove elements from bar on scope destroy 2014-03-17 12:18:08 -06:00
Andy Joslin
6662f6effd docs: simplify apis where possible 2014-03-17 11:56:21 -06:00
Andy Joslin
5a0efecef6 feat($ionicScrollDelegate): rememberScrollPosition, scrollToRememberedPosition
/**
 * @ngdoc method
 * @name $ionicScrollDelegate#rememberScrollPosition
 * @description
 *
 * When this scroll area is destroyed, its last scroll position will be
 * saved using the given id.
 *
 * @param {string} id The identifier for this saved scroll position.
 */

/**
 * @ngdoc method
 * @name $ionicScrollDelegate#scrollToRememberedPosition
 * @description
 *
 * If a scroll position was remembered using the given id, loads the
 * remembered scroll position and scrolls there.
 *
 * @param {string} id The identifier for this saved scroll position.
 * @param {boolean=} shouldAnimate Whether to animate the scroll.
 */
2014-03-17 08:39:23 -06:00
Andy Joslin
aa30faf863 fix(ionTab): stop browser-tooltip from appearing due to title attr
Closes #804
2014-03-15 18:57:10 -06:00
Andy Joslin
215b1c1ea0 feat(ionicNavBar): add getTitle() and getPreviousTitle() methods 2014-03-15 13:41:02 -06:00