refactor(ionicSideMenuController): make toggleLeft based on percent

This commit is contained in:
Andy Joslin
2014-03-19 08:46:36 -06:00
parent 3d917c83f5
commit 295fde8a68
2 changed files with 36 additions and 15 deletions

View File

@@ -50,26 +50,26 @@
},
isOpenLeft: function() {
return this._leftShowing;
return this.getOpenAmount() > 0;
},
isOpenRight: function() {
return this._rightShowing;
return this.getOpenAmount() < 0;
},
/**
* Toggle the left menu to open 100%
*/
toggleLeft: function(shouldOpen) {
var openAmount = this.getOpenAmount();
if (arguments.length === 0) {
shouldOpen = !this._leftShowing;
shouldOpen = openAmount <= 0;
}
this.content.enableAnimation();
var openAmount = this.getOpenAmount();
if(shouldOpen) {
this.openPercentage(100);
} else {
if(!shouldOpen) {
this.openPercentage(0);
} else {
this.openPercentage(100);
}
},
@@ -77,15 +77,15 @@
* Toggle the right menu to open 100%
*/
toggleRight: function(shouldOpen) {
var openAmount = this.getOpenAmount();
if (arguments.length === 0) {
shouldOpen = !this._rightShowing;
shouldOpen = openAmount >= 0;
}
this.content.enableAnimation();
var openAmount = this.getOpenAmount();
if(shouldOpen) {
this.openPercentage(-100);
} else {
if(!shouldOpen) {
this.openPercentage(0);
} else {
this.openPercentage(-100);
}
},

View File

@@ -82,24 +82,45 @@ describe('SideMenuController', function() {
});
// Open
it('Should toggle left and right', function() {
it('Should toggle left', function() {
ctrl.toggleLeft();
expect(ctrl.getOpenPercentage()).toEqual(100);
ctrl.toggleLeft();
expect(ctrl.getOpenPercentage()).toEqual(0);
ctrl.toggleLeft();
expect(ctrl.getOpenPercentage()).toEqual(100);
ctrl.toggleLeft();
expect(ctrl.getOpenPercentage()).toEqual(0);
});
it('should toggle right', function() {
ctrl.toggleRight();
expect(ctrl.getOpenPercentage()).toEqual(-100);
ctrl.toggleRight();
expect(ctrl.getOpenPercentage()).toEqual(0);
ctrl.toggleRight();
expect(ctrl.getOpenPercentage()).toEqual(-100);
ctrl.toggleRight();
expect(ctrl.getOpenPercentage()).toEqual(0);
});
it('should isOpenLeft', function() {
expect(ctrl.isOpenLeft()).toEqual(false);
ctrl.toggleLeft();
expect(ctrl.getOpenPercentage()).toEqual(100);
expect(ctrl.isOpenLeft()).toEqual(true);
ctrl.toggleLeft();
expect(ctrl.isOpenLeft()).toEqual(false);
ctrl.toggleLeft();
expect(ctrl.isOpenLeft()).toEqual(true);
});
it('should isOpenRight', function() {
expect(ctrl.isOpenRight()).toEqual(false);
ctrl.toggleRight();
expect(ctrl.getOpenPercentage()).toEqual(-100);
expect(ctrl.isOpenRight()).toEqual(true);
ctrl.toggleRight();
expect(ctrl.isOpenRight()).toEqual(false);
ctrl.toggleRight();
expect(ctrl.isOpenRight()).toEqual(true);
});