1
0
Fork 0
forked from 0x2620/oxjs

some more work on map/listmap

This commit is contained in:
rolux 2011-05-22 19:12:21 +02:00
commit 4d9a8537ef
9 changed files with 140 additions and 77 deletions

View file

@ -10,11 +10,13 @@ Ox.TextList <f:Ox.Element> TextList Object
Fixme: There's probably more...
addable <b>
editable <b>
format <f>
id <s>
removable <b>
operator <s> default sort operator
sort <f> function that maps values to sort values
title <s>
unique <b> If true, this column acts as unique id
visible <b>
width <n>
columnsMovable <b|false>
@ -274,10 +276,18 @@ Ox.TextList = function(options, self) {
textAlign: v.align
})
.html(v.title)
.bindEvent({
.appendTo(that.$head.$content.$element);
// if sort operator is set, bind click event
if (v.operator) {
that.$titles[i].bindEvent({
anyclick: function(event, e) {
clickColumn(v.id);
},
}
});
}
// if columns are movable, bind drag events
if (self.options.columnsMovable) {
that.$titles[i].bindEvent({
dragstart: function(event, e) {
dragstartColumn(v.id, e);
},
@ -288,7 +298,7 @@ Ox.TextList = function(options, self) {
dragendColumn(v.id, e);
}
})
.appendTo(that.$head.$content.$element);
}
$order = $('<div>')
.addClass('OxOrder')
.html(Ox.UI.symbols['triangle_' + (
@ -301,6 +311,7 @@ Ox.TextList = function(options, self) {
$resize = new Ox.Element()
.addClass('OxResize')
.appendTo(that.$head.$content.$element);
// if columns are resizable, bind click and drag events
if (self.options.columnsResizable) {
$resize.addClass('OxResizable')
.bindEvent({
@ -325,8 +336,6 @@ Ox.TextList = function(options, self) {
that.$head.$content.css({
width: (Ox.sum(self.columnWidths) + 2) + 'px'
});
//Ox.print('s.sC', self.selectedColumn)
//Ox.print('s.cO', self.columnOffsets)
if (getColumnPositionById(self.options.columns[self.selectedColumn].id) > -1) { // fixme: save in var
toggleSelected(self.options.columns[self.selectedColumn].id);
that.$titles[getColumnPositionById(self.options.columns[self.selectedColumn].id)].css({
@ -721,11 +730,15 @@ Ox.TextList = function(options, self) {
toggleSelected(self.options.columns[self.selectedColumn].id);
}
}
that.$body.sortList(
self.options.sort[0].key,
self.options.sort[0].operator,
self.options.columns[self.selectedColumn].sort
);
// fixme: strangely, sorting the list blocks toggling the selection,
// so we use a timeout for now
setTimeout(function() {
that.$body.sortList(
self.options.sort[0].key,
self.options.sort[0].operator,
self.options.columns[self.selectedColumn].sort
);
}, 10);
return that;
};