Browse Source

added methods for disable all buttons and disable except one for buttons collections

pull/479/head
Arthur Almeida 9 years ago
parent
commit
158868038b
  1. 34
      src/panels/model/Buttons.js
  2. 18
      test/specs/panels/model/PanelModels.js

34
src/panels/model/Buttons.js

@ -38,5 +38,39 @@ module.exports = Backbone.Collection.extend({
}
});
},
/**
* Disables all buttons
* @param {String} ctx Context string
*
* @return void
* */
disableAllButtons(ctx) {
var context = ctx || '';
this.forEach((model, index) => {
if( model.get('context') == context ){
model.set('disable', true);
if(model.get('buttons').length)
model.get('buttons').disableAllButtons(context);
}
});
},
/**
* Disables all buttons, except one passed
* @param {Object} except Model to ignore
* @param {Boolean} r Recursive flag
*
* @return void
* */
disableAllButtonsExceptOne(except, r) {
this.forEach((model, index) => {
if(model !== except){
model.set('disable', true);
if(r && model.get('buttons').length)
model.get('buttons').disableAllButtonsExceptOne(except,r);
}
});
},
});

18
test/specs/panels/model/PanelModels.js

@ -73,6 +73,24 @@ module.exports = {
obj.deactivateAllExceptOne(btn);
expect(obj.at(0).get('active')).toEqual(true);
});
it('Disable all buttons', () => {
obj.add({ disable: false });
obj.disableAllButtons();
expect(obj.at(0).get('disable')).toEqual(true);
});
it('Disables buttons with context', () => {
obj.add({ disable: false, context: 'someContext' });
obj.disableAllButtons('someContext');
expect(obj.at(0).get('disable')).toEqual(true);
});
it('Disables except one', () => {
var btn = obj.add({ disable: false });
obj.disableAllButtonsExceptOne(btn);
expect(obj.at(0).get('disable')).toEqual(false);
});
});

Loading…
Cancel
Save