diff --git a/js/ext/angular/src/directive/ionicActionSheet.js b/js/ext/angular/src/directive/ionicActionSheet.js index f1d131ad76..f520d1cf1c 100644 --- a/js/ext/angular/src/directive/ionicActionSheet.js +++ b/js/ext/angular/src/directive/ionicActionSheet.js @@ -3,7 +3,7 @@ angular.module('ionic.ui.actionSheet', []) -.directive('actionSheet', ['$document', function($document) { +.directive('ionActionSheet', ['$document', function($document) { return { restrict: 'E', scope: true, diff --git a/js/ext/angular/src/directive/ionicBar.js b/js/ext/angular/src/directive/ionicBar.js index 01492358f6..4bea85256f 100644 --- a/js/ext/angular/src/directive/ionicBar.js +++ b/js/ext/angular/src/directive/ionicBar.js @@ -13,19 +13,19 @@ angular.module('ionic.ui.header', ['ngAnimate']) }; }]) -.directive('headerBar', ['$ionicScrollDelegate', function($ionicScrollDelegate) { +.directive('ionHeaderBar', ['$ionicScrollDelegate', function($ionicScrollDelegate) { return { restrict: 'E', replace: true, transclude: true, template: '
\
\ - \
\ -

\ +

\
\ - \
\
', @@ -66,7 +66,7 @@ angular.module('ionic.ui.header', ['ngAnimate']) }; }]) -.directive('footerBar', function() { +.directive('ionFooterBar', function() { return { restrict: 'E', replace: true, diff --git a/js/ext/angular/src/directive/ionicBindHtml.js b/js/ext/angular/src/directive/ionicBindHtml.js index d8460f71fe..32b583f438 100644 --- a/js/ext/angular/src/directive/ionicBindHtml.js +++ b/js/ext/angular/src/directive/ionicBindHtml.js @@ -1,8 +1,8 @@ angular.module('ionic.ui.bindHtml', []) -.directive('bindHtmlUnsafe', function () { +.directive('ionBindHtmlUnsafe', function () { return function (scope, element, attr) { - element.addClass('ng-binding').data('$binding', attr.bindHtmlUnsafe); - scope.$watch(attr.bindHtmlUnsafe, function(value) { + element.addClass('ng-binding').data('$binding', attr.ionBindHtmlUnsafe); + scope.$watch(attr.ionBindHtmlUnsafe, function(value) { element.html(value || ''); }); }; diff --git a/js/ext/angular/src/directive/ionicCheckbox.js b/js/ext/angular/src/directive/ionicCheckbox.js index 053c9c98c6..c9d05834f7 100644 --- a/js/ext/angular/src/directive/ionicCheckbox.js +++ b/js/ext/angular/src/directive/ionicCheckbox.js @@ -4,7 +4,7 @@ angular.module('ionic.ui.checkbox', []) -.directive('checkbox', function() { +.directive('ionCheckbox', function() { return { restrict: 'E', replace: true, diff --git a/js/ext/angular/src/directive/ionicContent.js b/js/ext/angular/src/directive/ionicContent.js index 0012e6f847..f69f187d69 100644 --- a/js/ext/angular/src/directive/ionicContent.js +++ b/js/ext/angular/src/directive/ionicContent.js @@ -7,7 +7,7 @@ angular.module('ionic.ui.content', ['ionic.ui.service', 'ionic.ui.scroll']) * Panel is a simple 100% width and height, fixed panel. It's meant for content to be * added to it, or animated around. */ -.directive('pane', function() { +.directive('ionPane', function() { return { restrict: 'E', link: function(scope, element, attr) { @@ -18,13 +18,13 @@ angular.module('ionic.ui.content', ['ionic.ui.service', 'ionic.ui.scroll']) // The content directive is a core scrollable content area // that is part of many View hierarchies -.directive('content', ['$parse', '$timeout', '$ionicScrollDelegate', '$controller', function($parse, $timeout, $ionicScrollDelegate, $controller) { +.directive('ionContent', ['$parse', '$timeout', '$ionicScrollDelegate', '$controller', function($parse, $timeout, $ionicScrollDelegate, $controller) { return { restrict: 'E', replace: true, template: '
', transclude: true, - require: '^?navView', + require: '^?ionNavView', scope: { onRefresh: '&', onRefreshOpening: '&', @@ -53,7 +53,7 @@ angular.module('ionic.ui.content', ['ionic.ui.service', 'ionic.ui.scroll']) if(attr.padding == "true") { element.find('div').addClass('padding'); } return { - //Prelink so it can compile before other directives compile. + //Prelink so it can compile before other directives compile. //Then other directives can require ionicScrollCtrl pre: prelink }; @@ -158,17 +158,17 @@ angular.module('ionic.ui.content', ['ionic.ui.service', 'ionic.ui.scroll']) }; }]) -.directive('refresher', function() { +.directive('ionRefresher', function() { return { restrict: 'E', replace: true, - require: ['^?content', '^?list'], + require: ['^?ionContent', '^?ionList'], template: '
', scope: true }; }) -.directive('scrollRefresher', function() { +.directive('ionScrollRefresher', function() { return { restrict: 'E', replace: true, @@ -177,7 +177,7 @@ angular.module('ionic.ui.content', ['ionic.ui.service', 'ionic.ui.scroll']) }; }) -.directive('infiniteScroll', function() { +.directive('ionInfiniteScroll', function() { return { restrict: 'E', replace: false, diff --git a/js/ext/angular/src/directive/ionicList.js b/js/ext/angular/src/directive/ionicList.js index f3e0cf6d3b..704ee123ed 100644 --- a/js/ext/angular/src/directive/ionicList.js +++ b/js/ext/angular/src/directive/ionicList.js @@ -3,10 +3,10 @@ angular.module('ionic.ui.list', ['ngAnimate']) -.directive('item', ['$timeout', '$parse', function($timeout, $parse) { +.directive('ionItem', ['$timeout', '$parse', function($timeout, $parse) { return { restrict: 'E', - require: '?^list', + require: '?^ionList', replace: true, transclude: true, @@ -24,14 +24,14 @@ angular.module('ionic.ui.list', ['ngAnimate']) template: '
\
\ - \ + \
\ \
\ \
\
\ - \ + \
\
', @@ -95,7 +95,7 @@ angular.module('ionic.ui.list', ['ngAnimate']) }; }]) -.directive('list', ['$timeout', function($timeout) { +.directive('ionList', ['$timeout', function($timeout) { return { restrict: 'E', replace: true, diff --git a/js/ext/angular/src/directive/ionicLoading.js b/js/ext/angular/src/directive/ionicLoading.js index 927c017acc..712af9cfb1 100644 --- a/js/ext/angular/src/directive/ionicLoading.js +++ b/js/ext/angular/src/directive/ionicLoading.js @@ -3,7 +3,7 @@ angular.module('ionic.ui.loading', []) -.directive('loading', function() { +.directive('ionLoading', function() { return { restrict: 'E', replace: true, diff --git a/js/ext/angular/src/directive/ionicRadio.js b/js/ext/angular/src/directive/ionicRadio.js index e9903f93cd..8a5fd99890 100644 --- a/js/ext/angular/src/directive/ionicRadio.js +++ b/js/ext/angular/src/directive/ionicRadio.js @@ -5,7 +5,7 @@ angular.module('ionic.ui.radio', []) // The radio button is a radio powered element with only // one possible selection in a set of options. -.directive('radio', function() { +.directive('ionRadio', function() { return { restrict: 'E', replace: true, @@ -33,7 +33,7 @@ angular.module('ionic.ui.radio', []) // The radio button is a radio powered element with only // one possible selection in a set of options. -.directive('radioButtons', function() { +.directive('ionRadioButtons', function() { return { restrict: 'E', replace: true, @@ -76,10 +76,10 @@ angular.module('ionic.ui.radio', []) }; }) -.directive('buttonRadio', function() { +.directive('ionButtonRadio', function() { return { restrict: 'CA', - require: ['?^ngModel', '?^radioButtons'], + require: ['?^ngModel', '?^ionRadioButtons'], link: function($scope, $element, $attr, ctrls) { var ngModel = ctrls[0]; var radioButtons = ctrls[1]; diff --git a/js/ext/angular/src/directive/ionicScroll.js b/js/ext/angular/src/directive/ionicScroll.js index d13ab8868f..44f856a9f3 100644 --- a/js/ext/angular/src/directive/ionicScroll.js +++ b/js/ext/angular/src/directive/ionicScroll.js @@ -3,7 +3,7 @@ angular.module('ionic.ui.scroll', []) -.directive('scroll', ['$parse', '$timeout', '$controller', function($parse, $timeout, $controller) { +.directive('ionScroll', ['$parse', '$timeout', '$controller', function($parse, $timeout, $controller) { return { restrict: 'E', replace: true, @@ -25,7 +25,7 @@ angular.module('ionic.ui.scroll', []) compile: function(element, attr, transclude) { return { - //Prelink so it can compile before other directives compile. + //Prelink so it can compile before other directives compile. //Then other directives can require ionicScrollCtrl pre: prelink }; diff --git a/js/ext/angular/src/directive/ionicSideMenu.js b/js/ext/angular/src/directive/ionicSideMenu.js index 17b79f6d22..bedcc036fb 100644 --- a/js/ext/angular/src/directive/ionicSideMenu.js +++ b/js/ext/angular/src/directive/ionicSideMenu.js @@ -20,7 +20,7 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture', 'ionic.service.vie $ionicViewService.disableRegisterByTagName('side-menus'); }]) -.directive('sideMenus', function() { +.directive('ionSideMenus', function() { return { restrict: 'ECA', controller: ['$scope', '$attrs', function($scope, $attrs) { @@ -43,10 +43,10 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture', 'ionic.service.vie }; }) -.directive('sideMenuContent', ['$timeout', '$ionicGesture', function($timeout, $ionicGesture) { +.directive('ionSideMenuContent', ['$timeout', '$ionicGesture', function($timeout, $ionicGesture) { return { restrict: 'AC', - require: '^sideMenus', + require: '^ionSideMenus', scope: true, compile: function(element, attr, transclude) { return function($scope, $element, $attr, sideMenuCtrl) { @@ -142,10 +142,10 @@ angular.module('ionic.ui.sideMenu', ['ionic.service.gesture', 'ionic.service.vie }]) -.directive('sideMenu', function() { +.directive('ionSideMenu', function() { return { restrict: 'E', - require: '^sideMenus', + require: '^ionSideMenus', replace: true, transclude: true, scope: true, diff --git a/js/ext/angular/src/directive/ionicSlideBox.js b/js/ext/angular/src/directive/ionicSlideBox.js index 5627cb52c9..9f5251a6f5 100644 --- a/js/ext/angular/src/directive/ionicSlideBox.js +++ b/js/ext/angular/src/directive/ionicSlideBox.js @@ -13,7 +13,7 @@ angular.module('ionic.ui.slideBox', []) * The internal controller for the slide box controller. */ -.directive('slideBox', ['$timeout', '$compile', '$ionicSlideBoxDelegate', function($timeout, $compile, $ionicSlideBoxDelegate) { +.directive('ionSlideBox', ['$timeout', '$compile', '$ionicSlideBoxDelegate', function($timeout, $compile, $ionicSlideBoxDelegate) { return { restrict: 'E', replace: true, @@ -93,7 +93,7 @@ angular.module('ionic.ui.slideBox', []) // If the pager should show, append it to the slide box if($scope.$eval($scope.showPager) !== false) { var childScope = $scope.$new(); - var pager = angular.element(''); + var pager = angular.element(''); $element.append(pager); $compile(pager)(childScope); } @@ -101,10 +101,10 @@ angular.module('ionic.ui.slideBox', []) }; }]) -.directive('slide', function() { +.directive('ionSlide', function() { return { restrict: 'E', - require: '^slideBox', + require: '^ionSlideBox', compile: function(element, attr) { element.addClass('slider-slide'); return function($scope, $element, $attr) {}; @@ -112,11 +112,11 @@ angular.module('ionic.ui.slideBox', []) }; }) -.directive('pager', function() { +.directive('ionPager', function() { return { restrict: 'E', replace: true, - require: '^slideBox', + require: '^ionSlideBox', template: '
', link: function($scope, $element, $attr, slideBox) { var selectPage = function(index) { diff --git a/js/ext/angular/src/directive/ionicTabBar.js b/js/ext/angular/src/directive/ionicTabBar.js index 8c16f667a9..d6552270a0 100644 --- a/js/ext/angular/src/directive/ionicTabBar.js +++ b/js/ext/angular/src/directive/ionicTabBar.js @@ -9,7 +9,7 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) .run(['$ionicViewService', function($ionicViewService) { // set that the tabs directive should not animate when transitioning - // to it. Instead, the children directives would animate + // to it. Instead, the children directives would animate $ionicViewService.disableRegisterByTagName('tabs'); }]) @@ -94,14 +94,14 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) }]) -.directive('tabs', ['$ionicViewService', function($ionicViewService) { +.directive('ionTabs', ['$ionicViewService', function($ionicViewService) { return { restrict: 'E', replace: true, scope: true, transclude: true, controller: '$ionicTabs', - template: '
', + template: '
', compile: function(element, attr, transclude, tabsCtrl) { return function link($scope, $element, $attr) { @@ -141,10 +141,10 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) }]) // Generic controller directive -.directive('tab', ['$ionicViewService', '$rootScope', '$parse', '$interpolate', function($ionicViewService, $rootScope, $parse, $interpolate) { +.directive('ionTab', ['$ionicViewService', '$rootScope', '$parse', '$interpolate', function($ionicViewService, $rootScope, $parse, $interpolate) { return { restrict: 'E', - require: '^tabs', + require: '^ionTabs', scope: true, transclude: 'element', compile: function(element, attr, transclude) { @@ -229,7 +229,7 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) // on link, check if it has a nav-view in it transclude($scope.$new(), function(clone) { - var navViewEle = clone[0].getElementsByTagName("nav-view"); + var navViewEle = clone[0].getElementsByTagName("ion-nav-view"); $scope.hasNavView = (navViewEle.length > 0); if($scope.hasNavView) { // this tab has a ui-view @@ -256,15 +256,15 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) }]) -.directive('tabControllerBar', function() { +.directive('ionTabControllerBar', function() { return { restrict: 'E', - require: '^tabs', + require: '^ionTabs', transclude: true, replace: true, scope: true, template: '
' + - '' + + '' + '
', link: function($scope, $element, $attr, tabsCtrl) { $element.addClass($scope.tabsType); @@ -273,11 +273,11 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) }; }) -.directive('tabControllerItem', ['$window', function($window) { +.directive('ionTabControllerItem', ['$window', function($window) { return { restrict: 'E', replace: true, - require: '^tabs', + require: '^ionTabs', scope: { iconTitle: '@', icon: '@', @@ -304,7 +304,7 @@ angular.module('ionic.ui.tabs', ['ionic.service.view', 'ionic.ui.bindHtml']) '' + '' + '' + - '' + + '' + '' }; }]); diff --git a/js/ext/angular/src/directive/ionicToggle.js b/js/ext/angular/src/directive/ionicToggle.js index 93f2f130cd..6c217027da 100644 --- a/js/ext/angular/src/directive/ionicToggle.js +++ b/js/ext/angular/src/directive/ionicToggle.js @@ -5,7 +5,7 @@ angular.module('ionic.ui.toggle', []) // The Toggle directive is a toggle switch that can be tapped to change // its value -.directive('toggle', function() { +.directive('ionToggle', function() { return { restrict: 'E', diff --git a/js/ext/angular/src/directive/ionicTouch.js b/js/ext/angular/src/directive/ionicTouch.js index ae428666df..6feca524f3 100644 --- a/js/ext/angular/src/directive/ionicTouch.js +++ b/js/ext/angular/src/directive/ionicTouch.js @@ -47,14 +47,14 @@ angular.module('ionic.ui.touch', []) }]) - .directive('stopEvent', function () { + .directive('ionStopEvent', function () { function stopEvent(e) { e.stopPropagation(); } return { restrict: 'A', link: function (scope, element, attr) { - element.bind(attr.stopEvent, stopEvent); + element.bind(attr.ionStopEvent, stopEvent); } }; }); diff --git a/js/ext/angular/src/directive/ionicViewState.js b/js/ext/angular/src/directive/ionicViewState.js index c6ac6050c2..f6256417a2 100644 --- a/js/ext/angular/src/directive/ionicViewState.js +++ b/js/ext/angular/src/directive/ionicViewState.js @@ -22,7 +22,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu /** * Our Nav Bar directive which updates as the controller state changes. */ -.directive('navBar', ['$ionicViewService', '$rootScope', '$animate', '$compile', +.directive('ionNavBar', ['$ionicViewService', '$rootScope', '$animate', '$compile', function( $ionicViewService, $rootScope, $animate, $compile) { return { @@ -40,23 +40,21 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu template: '', @@ -130,10 +128,10 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu }; }]) -.directive('navBarTitle', function() { +.directive('ionNavBarTitle', function() { return { restrict: 'A', - require: '^navBar', + require: '^ionNavBar', link: function($scope, $element, $attr, navBarCtrl) { $scope.headerBarView && $scope.headerBarView.align(); $element.on('$animate:close', function() { @@ -149,7 +147,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu * Fixes flickering in iOS7 and old android. * Used in title and back button */ -.directive('asyncVisible', function() { +.directive('ionAsyncVisible', function() { return function($scope, $element) { ionic.requestAnimationFrame(function() { $element[0].classList.remove('invisible'); @@ -157,7 +155,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu }; }) -.directive('view', ['$ionicViewService', '$rootScope', '$animate', +.directive('ionView', ['$ionicViewService', '$rootScope', '$animate', function( $ionicViewService, $rootScope, $animate) { return { restrict: 'EA', @@ -215,7 +213,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu }]) -.directive('navBackButton', ['$ionicViewService', '$rootScope', +.directive('ionNavBackButton', ['$ionicViewService', '$rootScope', function($ionicViewService, $rootScope) { function goBack(e) { @@ -246,7 +244,7 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu }]) -.directive('navView', ['$ionicViewService', '$state', '$compile', '$controller', '$animate', +.directive('ionNavView', ['$ionicViewService', '$state', '$compile', '$controller', '$animate', function( $ionicViewService, $state, $compile, $controller, $animate) { // IONIC's fork of Angular UI Router, v0.2.7 // the navView handles registering views in the history, which animation to use, and which diff --git a/js/ext/angular/src/directive/ionicVirtRepeat.js b/js/ext/angular/src/directive/ionicVirtRepeat.js index e98fd76891..aa9da32bcb 100644 --- a/js/ext/angular/src/directive/ionicVirtRepeat.js +++ b/js/ext/angular/src/directive/ionicVirtRepeat.js @@ -3,7 +3,7 @@ angular.module('ionic.ui.virtRepeat', []) -.directive('virtRepeat', function() { +.directive('ionVirtRepeat', function() { return { require: ['?ngModel', '^virtualList'], transclude: 'element', diff --git a/js/ext/angular/src/directive/ionicVirtualRepeat.js b/js/ext/angular/src/directive/ionicVirtualRepeat.js index 3107a6d8e4..0b0cc116fb 100644 --- a/js/ext/angular/src/directive/ionicVirtualRepeat.js +++ b/js/ext/angular/src/directive/ionicVirtualRepeat.js @@ -130,7 +130,7 @@ angular.module('ionic.ui.virtualRepeat', []) * scrolling to only render items that are showing or will be showing * if a scroll is made. */ -.directive('virtualRepeat', ['$log', function($log) { +.directive('ionVirtualRepeat', ['$log', function($log) { return { require: ['?ngModel, ^virtualList'], transclude: 'element', diff --git a/js/ext/angular/src/service/ionicActionSheet.js b/js/ext/angular/src/service/ionicActionSheet.js index f24f947e77..1989543e03 100644 --- a/js/ext/angular/src/service/ionicActionSheet.js +++ b/js/ext/angular/src/service/ionicActionSheet.js @@ -20,7 +20,7 @@ angular.module('ionic.service.actionSheet', ['ionic.service.templateLoad', 'ioni // Compile the template - var element = $compile('')(scope); + var element = $compile('')(scope); // Grab the sheet element for animation var sheetEl = angular.element(element[0].querySelector('.action-sheet-wrapper')); diff --git a/js/ext/angular/src/service/ionicLoading.js b/js/ext/angular/src/service/ionicLoading.js index 0ff52c5cf3..f96523ea5d 100644 --- a/js/ext/angular/src/service/ionicLoading.js +++ b/js/ext/angular/src/service/ionicLoading.js @@ -31,7 +31,7 @@ angular.module('ionic.service.loading', ['ionic.ui.loading']) } // Compile the template - var element = $compile('' + opts.content + '')(scope); + var element = $compile('' + opts.content + '')(scope); $document[0].body.appendChild(element[0]); diff --git a/js/ext/angular/src/service/ionicView.js b/js/ext/angular/src/service/ionicView.js index fd219fb11b..7e7f58f0bb 100644 --- a/js/ext/angular/src/service/ionicView.js +++ b/js/ext/angular/src/service/ionicView.js @@ -129,8 +129,8 @@ angular.module('ionic.service.view', ['ui.router', 'ionic.service.platform']) if(element && !this.isTagNameRegistrable(element)) { // first check to see if this element can even be registered as a view. // Certain tags are only containers for views, but are not views themselves. - // For example, the directive contains a and the is the - // view, but the directive itself should not be registered as a view. + // For example, the directive contains a and the is the + // view, but the directive itself should not be registered as a view. rsp.navAction = 'disabledByTagName'; return rsp; } @@ -456,15 +456,15 @@ angular.module('ionic.service.view', ['ui.router', 'ionic.service.platform']) disableRegisterByTagName: function(tagName) { // not every element should animate betwee transitions - // For example, the directive should not animate when it enters, - // but instead the directve would just show, and its children - // directives would do the animating, but itself is not a view + // For example, the directive should not animate when it enters, + // but instead the directve would just show, and its children + // directives would do the animating, but itself is not a view $rootScope.$viewHistory.disabledRegistrableTagNames.push(tagName.toUpperCase()); }, isTagNameRegistrable: function(element) { // check if this element has a tagName (at its root, not recursively) - // that shouldn't be animated, like or + // that shouldn't be animated, like or var x, y, disabledTags = $rootScope.$viewHistory.disabledRegistrableTagNames; for(x=0; x - +
@@ -128,7 +128,7 @@ - + - - + + -
{{$index}}
-
+ -
+ - - + type="bar-primary"> + - + - + diff --git a/js/ext/angular/test/list-fit.html b/js/ext/angular/test/list-fit.html index e33190c3e3..62b9333249 100644 --- a/js/ext/angular/test/list-fit.html +++ b/js/ext/angular/test/list-fit.html @@ -12,14 +12,14 @@ - + - + - +
    -
  • This list should *exactly* fit
  • +
  • This ion-list should *exactly* fit
  • between header and footer (no gap),
  • even with pull-to-refresh.
  • 4
  • @@ -46,11 +46,11 @@
  • 25
  • 26
-
+ - +

Footer!

-
+ - - - - - - + + + + + + {{contact.name}} - - - - + + + + diff --git a/js/ext/angular/test/nestedScroll.html b/js/ext/angular/test/nestedScroll.html index 33c7dea1cb..e45ca06e01 100644 --- a/js/ext/angular/test/nestedScroll.html +++ b/js/ext/angular/test/nestedScroll.html @@ -13,16 +13,16 @@
- - - + + +

outer

- +

inner

{{i}}

-
+

{{i}}

-
+
- - +

Tasks

- + - + - - {{item.title}} - + - -
+ + - +

Deadlines

- +

Deadlines

-
-
+ + - +

Settings

- +

Settings

-
-
+ + - +

Settings

- +

Settings

-
-
+ + -
+ @@ -12,17 +12,17 @@
- - + back-button-icon="ion-arrow-left-c"> +