1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- SET filter_options = (
- SELECT json_agg(json_build_object('name', k, 'options', o))
- FROM (
- SELECT o.k, json_agg(
- json_build_object('label', v, 'value', v, 'selected', c == 1)
- ORDER BY v)
- FROM (
- SELECT 'store' AS k, DISTINCT store AS v, count(DISTINCT store) AS c FROM code_detail
- UNION
- SELECT 'value' AS k, DISTINCT value AS v, count(DISTINCT value) AS c FROM code_detail
- ) AS o
- WHERE v IS NOT NULL
- GROUP BY o.k
- ) q(k, o)
- );
- SET :expiry = (SELECT expiry FROM code_detail WHERE hash = $hash);
- SET :value = (SELECT value FROM code_detail WHERE hash = $hash);
- SET :store = (SELECT store FROM code_detail WHERE hash = $hash);
- SET :used = (SELECT used FROM code_detail WHERE hash = $hash);
- SELECT 'form' AS component
- , '/code.sql' AS action
- , 'Update' AS validate
- , $tabler_color AS validate_color
- , 'post' AS method
- ;
- SELECT j.name
- , j.label
- , COALESCE(c.type, j.type) AS type
- , j.dropdown AS dropdown
- , j.multiple
- , COALESCE(c.width, j.width) AS width
- , o.j
- , COALESCE(j.value, v.value) AS value
- , CASE j.type
- WHEN 'checkbox' THEN v.value::bool
- ELSE NULL
- END AS checked
- , j.formaction
- FROM json_populate_recordset(null::sqlpage_filter_type, sqlpage.read_file_as_text('code/json/filters.json')::json) j
- LEFT JOIN json_populate_recordset(null::sqlpage_filter_type, $filter_config::json) c
- USING (name)
- LEFT JOIN json_array_elements($filter_options::json) o(j)
- ON (o.j
- LEFT JOIN json_each_text(sqlpage.variables()::json) v(key, value)
- ON v.key = j.name
- ;
- INSERT INTO code_detal(hash, type, value, expiry, used)
- VALUES ($hash, $type, $value, $expiry, $used)
- ON CONFLICT DO
- UPDATE SET
- type = excluded.type,
- value = excluded.value,
- expiry = excluded.expiry,
- used = excluded.used
- ;
|