Ver código fonte

make_model: support selects and value filters

master
Bing Sun 5 anos atrás
pai
commit
774136ecbb
Acessado por: sunb ID da chave GPG: F7795F8C590626AB
1 arquivos alterados com 13 adições e 9 exclusões
  1. +13
    -9
      src/util/make_model.js

+ 13
- 9
src/util/make_model.js Ver arquivo

@@ -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,


Carregando…
Cancelar
Salvar