77 lines
No EOL
2 KiB
JavaScript
77 lines
No EOL
2 KiB
JavaScript
'use strict';
|
|
|
|
oml.ui.sortElement = function() {
|
|
|
|
var ui = oml.user.ui,
|
|
|
|
$sortSelect = Ox.Select({
|
|
items: oml.config.sortKeys.map(function(key) {
|
|
return Ox.extend({}, key, {
|
|
title: Ox._('Sort by {0}', [Ox._(key.title)])
|
|
});
|
|
}),
|
|
style: 'squared',
|
|
value: ui.listSort[0].key,
|
|
width: 160
|
|
})
|
|
.bindEvent({
|
|
change: function(data) {
|
|
var key = data.value;
|
|
oml.UI.set({
|
|
listSort: [{key: key, operator: oml.getSortOperator(key)}]
|
|
});
|
|
}
|
|
}),
|
|
|
|
$orderButton = Ox.Button({
|
|
overlap: 'left',
|
|
style: 'squared',
|
|
title: getButtonTitle(),
|
|
tooltip: getButtonTooltip(),
|
|
type: 'image'
|
|
})
|
|
.bindEvent({
|
|
click: function() {
|
|
oml.UI.set({
|
|
listSort: [{
|
|
key: ui.listSort[0].key,
|
|
operator: ui.listSort[0].operator == '+' ? '-' : '+'
|
|
}]
|
|
});
|
|
}
|
|
}),
|
|
|
|
that = Ox.FormElementGroup({
|
|
elements: [$sortSelect, $orderButton],
|
|
float: 'right'
|
|
})
|
|
.css({
|
|
float: 'left',
|
|
margin: '4px 2px'
|
|
})
|
|
.bindEvent({
|
|
oml_listsort: function() {
|
|
that.updateElement();
|
|
}
|
|
});
|
|
|
|
function getButtonTitle() {
|
|
return ui.listSort[0].operator == '+' ? 'up' : 'down';
|
|
}
|
|
|
|
function getButtonTooltip() {
|
|
return Ox._(ui.listSort[0].operator == '+' ? 'Ascending' : 'Descending');
|
|
}
|
|
|
|
that.updateElement = function() {
|
|
$sortSelect.value(ui.listSort[0].key);
|
|
$orderButton.options({
|
|
title: getButtonTitle(),
|
|
tooltip: getButtonTooltip()
|
|
});
|
|
return that;
|
|
};
|
|
|
|
return that.updateElement();
|
|
|
|
}; |