Allow open ended ranges for segments

This commit is contained in:
Andris Reinman 2016-05-13 20:33:06 +03:00
parent d933f07eac
commit b626ea9c5e
2 changed files with 22 additions and 12 deletions

View file

@ -548,10 +548,14 @@ module.exports.getQuery = (id, callback) => {
break; break;
case 'number': case 'number':
if (rule.value.range) { if (rule.value.range) {
query.push('`' + rule.columnType.column + '` >= ?'); if (rule.value.start) {
query.push('`' + rule.columnType.column + '` < ?'); query.push('`' + rule.columnType.column + '` >= ?');
values.push(rule.value.start); values.push(rule.value.start);
values.push(rule.value.end); }
if (rule.value.end) {
query.push('`' + rule.columnType.column + '` < ?');
values.push(rule.value.end);
}
} else { } else {
query.push('`' + rule.columnType.column + '` = ?'); query.push('`' + rule.columnType.column + '` = ?');
values.push(rule.value.value); values.push(rule.value.value);
@ -559,10 +563,12 @@ module.exports.getQuery = (id, callback) => {
break; break;
case 'birthday': case 'birthday':
if (rule.value.range) { if (rule.value.range) {
let start = rule.value.start || '01-01';
let end = rule.value.end || '12-31';
query.push('`' + rule.columnType.column + '` >= ?'); query.push('`' + rule.columnType.column + '` >= ?');
values.push(getDate('2000-' + start));
query.push('`' + rule.columnType.column + '` < ?'); query.push('`' + rule.columnType.column + '` < ?');
values.push(getDate('2000-' + rule.value.start)); values.push(getDate('2000-' + end, true));
values.push(getDate('2000-' + rule.value.end, true));
} else { } else {
query.push('`' + rule.columnType.column + '` >= ?'); query.push('`' + rule.columnType.column + '` >= ?');
query.push('`' + rule.columnType.column + '` < ?'); query.push('`' + rule.columnType.column + '` < ?');
@ -572,10 +578,14 @@ module.exports.getQuery = (id, callback) => {
break; break;
case 'date': case 'date':
if (rule.value.range) { if (rule.value.range) {
query.push('`' + rule.columnType.column + '` >= ?'); if (rule.value.start) {
query.push('`' + rule.columnType.column + '` < ?'); query.push('`' + rule.columnType.column + '` >= ?');
values.push(getDate(rule.value.start)); values.push(getDate(rule.value.start));
values.push(getDate(rule.value.end, true)); }
if (rule.value.end) {
query.push('`' + rule.columnType.column + '` < ?');
values.push(getDate(rule.value.end, true));
}
} else { } else {
query.push('`' + rule.columnType.column + '` >= ?'); query.push('`' + rule.columnType.column + '` >= ?');
query.push('`' + rule.columnType.column + '` < ?'); query.push('`' + rule.columnType.column + '` < ?');

View file

@ -135,7 +135,7 @@
<label for="value" class="col-sm-2 control-label">Value</label> <label for="value" class="col-sm-2 control-label">Value</label>
<div class="col-sm-10 radio"> <div class="col-sm-10 radio">
<label> <label>
<input type="radio" name="range" value="" {{#unless isRange}} checked {{/unless}}> Use exact match <input type="radio" name="range" value="" {{#unless value.range}} checked {{/unless}}> Use exact match
</label> </label>
</div> </div>
</div> </div>
@ -150,7 +150,7 @@
<div class="form-group"> <div class="form-group">
<div class="col-sm-offset-2 col-sm-10 radio"> <div class="col-sm-offset-2 col-sm-10 radio">
<label> <label>
<input type="radio" name="range" value="yes" {{#if isRange}} checked {{/if}}> Use range match <input type="radio" name="range" value="yes" {{#if value.range}} checked {{/if}}> Use range match
</label> </label>
</div> </div>
</div> </div>