silverstripe-framework/javascript/ToggleCompositeField.js
Normann Lou 54a79cf9f3 FEATURE: make a ToggleCompositeField able to save back a boolean value if its name is a boolean field of the related object.
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@79604 467b73ca-7a2a-4603-9d3b-597d59a354a9
2009-06-19 01:38:34 +00:00

37 lines
1.0 KiB
JavaScript
Executable File

var ToggleCompositeField = Class.create();
ToggleCompositeField.prototype = {
initialize: function() {
var rules = {};
rules['#' + this.id + ' .trigger'] = {
onclick: function(e) {
this.toggle();
this.resetHiddenValue();
Event.stop(e); return false;
}.bind(this)
};
Behaviour.register(rules);
// close content by default
if(Element.hasClassName(this, 'startClosed')) {
Element.toggle($$('#' + this.id + ' .contentMore')[0]);
}
Element.toggle($$('#' + this.id + ' .triggerClosed')[0]);
},
toggle: function() {
Element.toggle($$('#' + this.id + ' .contentMore')[0]);
Element.toggle($$('#' + this.id + ' .triggerClosed')[0]);
Element.toggle($$('#' + this.id + ' .triggerOpened')[0]);
},
resetHiddenValue: function() {
var hiddenValue = $$('#' + this.id + ' input.hidden.hiddenValue')[0];
console.log(hiddenValue.value);
if(hiddenValue.value == 1){
hiddenValue.value = 0;
}else if(hiddenValue.value == 0){
hiddenValue.value = 1;
}
}
}
ToggleCompositeField.applyTo('div.toggleCompositeField');