updating filter
This commit is contained in:
parent
25b5bd1ace
commit
2ce322fe97
1 changed files with 58 additions and 13 deletions
|
@ -37,8 +37,8 @@ Ox.Filter = function(options, self) {
|
|||
{id: '!', title: 'is not'},
|
||||
{id: '<', title: 'is before'},
|
||||
{id: '>', title: 'is after'},
|
||||
{id: '>&<', title: 'is between'},
|
||||
{id: '<|>', title: 'is not between'}
|
||||
{id: '-', title: 'is between'},
|
||||
{id: '!-', title: 'is not between'}
|
||||
],
|
||||
list: [
|
||||
{id: '', title: 'is'},
|
||||
|
@ -49,16 +49,18 @@ Ox.Filter = function(options, self) {
|
|||
{id: '!', title: 'is not'},
|
||||
{id: '<', title: 'is less than'},
|
||||
{id: '>', title: 'is greater than'},
|
||||
{id: '>&<', title: 'is between'},
|
||||
{id: '<|>', title: 'is not between'}
|
||||
{id: '-', title: 'is between'},
|
||||
{id: '!-', title: 'is not between'}
|
||||
],
|
||||
string: [
|
||||
{id: '=', title: 'is'},
|
||||
{id: '!=', title: 'is not'},
|
||||
{id: '^', title: 'begins with'},
|
||||
{id: '$', title: 'ends with'},
|
||||
{id: '', title: 'contains'},
|
||||
{id: '!', title: 'does not contain'}
|
||||
{id: '!', title: 'does not contain'},
|
||||
{id: '^', title: 'starts with'},
|
||||
{id: '!^', title: 'does not start with'},
|
||||
{id: '$', title: 'ends with'},
|
||||
{id: '!$', title: 'does not end with'}
|
||||
],
|
||||
text: [
|
||||
{id: '', title: 'contains'},
|
||||
|
@ -222,7 +224,16 @@ Ox.Filter = function(options, self) {
|
|||
|
||||
function addGroup(pos) {
|
||||
self.$form.addItem(pos + 1, constructGroup(pos));
|
||||
self.options.query.conditions.splice(pos + 1, 0, 'foobar');
|
||||
self.options.query.conditions.splice(pos + 1, 0, {
|
||||
conditions: [
|
||||
{
|
||||
key: '?',
|
||||
value: '?',
|
||||
operator: '?'
|
||||
}
|
||||
],
|
||||
operator: '?'
|
||||
});
|
||||
addCondition(pos + 1, true);
|
||||
}
|
||||
|
||||
|
@ -246,7 +257,13 @@ Ox.Filter = function(options, self) {
|
|||
}
|
||||
|
||||
function changeConditionOperator(pos, operator) {
|
||||
var oldOperator = self.options.query.conditions[pos].operator;
|
||||
self.options.query.conditions[pos].operator = operator;
|
||||
if (oldOperator.indexOf('-') == -1 && operator.indexOf('-') > -1) {
|
||||
self.$conditions[pos].replaceElement(2, constructInput(true));
|
||||
} else if (oldOperator.indexOf('-') > -1 && operator.indexOf('-') == -1) {
|
||||
self.$conditions[pos].replaceElement(2, constructInput());
|
||||
}
|
||||
}
|
||||
|
||||
function changeOperator(event, data) {
|
||||
|
@ -262,7 +279,7 @@ Ox.Filter = function(options, self) {
|
|||
title: 'remove',
|
||||
type: 'image'
|
||||
})
|
||||
.css({margin: '0 4px 0 ' + (isGroup ? '262px' : '8px')})
|
||||
.css({margin: '0 4px 0 ' + (isGroup ? '264px' : '8px')})
|
||||
.bind({
|
||||
click: function() {
|
||||
removeCondition($(this).parent().data('position'));
|
||||
|
@ -317,9 +334,7 @@ Ox.Filter = function(options, self) {
|
|||
}
|
||||
}),
|
||||
constructConditionOperator(pos),
|
||||
Ox.Input({
|
||||
width: 256
|
||||
})
|
||||
constructInput()
|
||||
], constructButtons(false, isInGroup))
|
||||
})
|
||||
.css({marginLeft: isInGroup ? '24px' : 0})
|
||||
|
@ -336,7 +351,7 @@ Ox.Filter = function(options, self) {
|
|||
)], function(operator) {
|
||||
return {
|
||||
checked: operator.id == selected, // fixme: should be "selected", not "checked"
|
||||
id: operator.operator,
|
||||
id: operator.id,
|
||||
title: operator.title
|
||||
};
|
||||
}),
|
||||
|
@ -391,6 +406,36 @@ Ox.Filter = function(options, self) {
|
|||
});
|
||||
}
|
||||
|
||||
function constructInput(isBetween) {
|
||||
var $input
|
||||
if (!isBetween) {
|
||||
$input = Ox.Input({
|
||||
width: 256
|
||||
});
|
||||
} else {
|
||||
$input = Ox.InputGroup({
|
||||
inputs: [
|
||||
Ox.Input({
|
||||
id: 'start',
|
||||
width: 112
|
||||
}),
|
||||
Ox.DateInput({
|
||||
id: 'end',
|
||||
width: {
|
||||
day: 27,
|
||||
month: 27,
|
||||
year: 42
|
||||
}
|
||||
})
|
||||
],
|
||||
separators: [
|
||||
{title: 'and', width: 32}
|
||||
]
|
||||
});
|
||||
}
|
||||
return $input;
|
||||
}
|
||||
|
||||
function getConditionType(type) {
|
||||
type = Ox.isArray(type) ? type[0] : type;
|
||||
if (['float', 'integer', 'year'].indexOf(type) > -1) {
|
||||
|
|
Loading…
Reference in a new issue