diff --git a/src/util/make_model.js b/src/util/make_model.js index a955db6..5015944 100644 --- a/src/util/make_model.js +++ b/src/util/make_model.js @@ -82,8 +82,14 @@ export default (options={}) => { queries: [ // transform model state to postgest queries //...ambient_queries, + ...(_configs.selects ? [{ + label: 'select', + value: _configs.selects.map(select => select.alias ? select.alias + ':' + select.label : select.label).join(',') + }] : []), + + // limit/offset offset == 0 ? undefined : {label: 'offset', value: offset}, - limit == Infinity ? undefined : {label: 'limit', value: limit} + limit == Infinity ? undefined : {label: 'limit', value: limit} ] }).then(response => { // gather begin/end/count @@ -98,7 +104,12 @@ export default (options={}) => { // fill the data cache response.forEach((data, i) => { - // _value_filters.forEach(([label, config]) => data[config.alias || label] = config.value_filter(data[config.alias || label])) + // filter values + _configs.selects + .filter(select => select.filter) + .forEach(select => data[select.alias || select.label] = select.filter(data[select.alias || select.label])) + + // save the data _cache.data[_begin + i] = data }) @@ -126,13 +137,6 @@ export const default1 = (args) => { queries: args.queries || [], order: args.order || [] } - _configs.selects.forEach((config, label, selects) => { - selects.set(label, config || {}) - }) - - // prepare the model value filters - let _value_filters = Array.from(_configs.selects).filter(([label, config]) => config.value_filter) - return { // model & model state fully_loaded: false,