mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 13:00:13 +02:00
add date picker operators to smart playlist
This commit is contained in:
@@ -19,9 +19,18 @@ export const parseQueryBuilderChildren = (groups: QueryBuilderGroup[], data: any
|
||||
for (const rule of group.rules) {
|
||||
if (rule.field && rule.operator) {
|
||||
const [table, field] = rule.field.split('.');
|
||||
const operator = rule.operator;
|
||||
let operator = rule.operator;
|
||||
const value = field !== 'releaseDate' ? rule.value : new Date(rule.value);
|
||||
|
||||
// Transform date picker operators back to original operators
|
||||
if (operator === 'beforeDate') {
|
||||
operator = 'before';
|
||||
} else if (operator === 'afterDate') {
|
||||
operator = 'after';
|
||||
} else if (operator === 'inTheRangeDate') {
|
||||
operator = 'inTheRange';
|
||||
}
|
||||
|
||||
switch (table) {
|
||||
default:
|
||||
query[rootType].push({
|
||||
@@ -56,7 +65,7 @@ export const convertQueryGroupToNDQuery = (filter: QueryBuilderGroup) => {
|
||||
for (const rule of filter.rules) {
|
||||
if (rule.field && rule.operator) {
|
||||
const [field] = rule.field.split('.');
|
||||
const operator = rule.operator;
|
||||
let operator = rule.operator;
|
||||
let value = rule.value;
|
||||
|
||||
const booleanFields = NDSongQueryFields.filter(
|
||||
@@ -68,6 +77,14 @@ export const convertQueryGroupToNDQuery = (filter: QueryBuilderGroup) => {
|
||||
value = value === 'true';
|
||||
}
|
||||
|
||||
if (operator === 'beforeDate') {
|
||||
operator = 'before';
|
||||
} else if (operator === 'afterDate') {
|
||||
operator = 'after';
|
||||
} else if (operator === 'inTheRangeDate') {
|
||||
operator = 'inTheRange';
|
||||
}
|
||||
|
||||
switch (field) {
|
||||
default:
|
||||
rootQuery[rootQueryType].push({
|
||||
@@ -103,7 +120,7 @@ export const convertNDQueryToQueryGroup = (query: Record<string, any>) => {
|
||||
const group = convertNDQueryToQueryGroup(rule);
|
||||
rootGroup.group.push(group);
|
||||
} else {
|
||||
const operator = Object.keys(rule)[0];
|
||||
let operator = Object.keys(rule)[0];
|
||||
const field = Object.keys(rule[operator])[0];
|
||||
let value = rule[operator][field];
|
||||
|
||||
@@ -116,6 +133,20 @@ export const convertNDQueryToQueryGroup = (query: Record<string, any>) => {
|
||||
value = value.toString();
|
||||
}
|
||||
|
||||
const dateFields = NDSongQueryFields.filter(
|
||||
(queryField) => queryField.type === 'date' || queryField.type === 'dateRange',
|
||||
).map((field) => field.value);
|
||||
|
||||
if (dateFields.includes(field)) {
|
||||
if (operator === 'before') {
|
||||
operator = 'beforeDate';
|
||||
} else if (operator === 'after') {
|
||||
operator = 'afterDate';
|
||||
} else if (operator === 'inTheRange') {
|
||||
operator = 'inTheRangeDate';
|
||||
}
|
||||
}
|
||||
|
||||
rootGroup.rules.push({
|
||||
field,
|
||||
operator,
|
||||
|
||||
Reference in New Issue
Block a user