2011-04-23 16:45:50 +00:00
|
|
|
// vim: et:ts=4:sw=4:sts=4:ft=js
|
2011-05-16 10:49:48 +00:00
|
|
|
|
|
|
|
/*@
|
|
|
|
Ox.FormElementGroup <f:Ox.Element> FormElementGroup Element
|
|
|
|
() -> <f> FormElementGroup Element
|
|
|
|
(options) -> <f> FormElementGroup Element
|
|
|
|
(options, self) -> <f> FormElementGroup Element
|
|
|
|
options <o> Options object
|
|
|
|
id <s> element id
|
|
|
|
elements <a|[]> elements in group
|
|
|
|
float <s|left> alignment
|
|
|
|
separators <a|[]> separators (not implemented)
|
|
|
|
width <n|0> group width
|
|
|
|
self <o> Shared private variable
|
|
|
|
@*/
|
|
|
|
|
2011-04-22 22:03:10 +00:00
|
|
|
Ox.FormElementGroup = function(options, self) {
|
|
|
|
|
2011-06-19 17:48:32 +00:00
|
|
|
self = self || {};
|
|
|
|
var that = Ox.Element({}, self)
|
2011-04-22 22:03:10 +00:00
|
|
|
.defaults({
|
|
|
|
id: '',
|
|
|
|
elements: [],
|
|
|
|
float: 'left',
|
|
|
|
separators: [],
|
|
|
|
width: 0
|
|
|
|
})
|
|
|
|
.options(options || {})
|
|
|
|
.addClass('OxInputGroup');
|
|
|
|
|
|
|
|
(
|
|
|
|
self.options.float == 'left' ?
|
|
|
|
self.options.elements : self.options.elements.reverse()
|
|
|
|
).forEach(function($element, i) {
|
|
|
|
$element.css({
|
|
|
|
float: self.options.float // fixme: make this a class
|
|
|
|
})
|
|
|
|
.bindEvent({
|
|
|
|
validate: function(event, data) {
|
|
|
|
that.triggerEvent({
|
|
|
|
validate: data
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.appendTo(that);
|
|
|
|
});
|
|
|
|
|
|
|
|
/*
|
|
|
|
if (self.options.width) {
|
|
|
|
setWidths();
|
|
|
|
} else {
|
|
|
|
self.options.width = getWidth();
|
|
|
|
}
|
|
|
|
that.css({
|
|
|
|
width: self.options.width + 'px'
|
|
|
|
});
|
|
|
|
*/
|
|
|
|
|
|
|
|
function getWidth() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function setWidth() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2011-04-29 12:40:51 +00:00
|
|
|
self.setOption = function(key, value) {
|
2011-04-22 22:03:10 +00:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
that.replaceElement = function(pos, element) {
|
|
|
|
Ox.print('Ox.FormElementGroup replaceElement', pos, element)
|
|
|
|
self.options.elements[pos].replaceWith(element.$element);
|
|
|
|
self.options.elements[pos] = element;
|
|
|
|
};
|
|
|
|
|
|
|
|
that.value = function() {
|
|
|
|
return $.map(self.options.elements, function(element) {
|
|
|
|
var ret = null;
|
|
|
|
['checked', 'selected', 'value'].forEach(function(v) {
|
|
|
|
element[v] && (ret = element[v]());
|
|
|
|
});
|
|
|
|
return ret;
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
return that;
|
|
|
|
|
|
|
|
};
|