recent.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. SELECT 'dynamic' AS component, sqlpage.run_sql('sqlpage/theme.sql') AS properties;
  2. SET ":filter_config" = '[
  3. {"name": "expiry", "type": "hidden"},
  4. {"name": "value", "type": "hidden"},
  5. {"name": "type[]", "label": "Type",
  6. "type": "select", "dropdown": true,
  7. "multiple": true,
  8. "width": 3
  9. },
  10. {"name": "store[]", "create_new": false,
  11. "multiple": true,
  12. "width": 3
  13. },
  14. {"name": "expired", "label": "Show Expired",
  15. "type": "checkbox", "value": "true",
  16. "width": 2
  17. },
  18. {"name": "used", "label": "Show Used",
  19. "type": "checkbox", "value": "true",
  20. "width": 2
  21. }
  22. ]';
  23. SET ":validate" = 'Apply';
  24. SET ":action" = 'Apply';
  25. SET ":method" = 'get';
  26. SET ":autofill" = FALSE;
  27. SELECT 'dynamic' AS component, sqlpage.run_sql('code/form.sql') AS properties;
  28. SELECT 'list' AS component;
  29. SELECT COALESCE(type||' ','') || COALESCE(store||' ', '') || COALESCE(expiry, created) AS title
  30. , COALESCE(content->>'content'||' ', '') || COALESCE(content->>'type', '') AS description
  31. , '/code?hash='||c.hash AS link
  32. FROM code c
  33. LEFT JOIN code_detail cd
  34. ON c.hash = cd.hash
  35. WHERE (
  36. cd.expiry IS NULL OR COALESCE($expired, 'false') = 'true' OR date(cd.expiry) >= date(datetime(CURRENT_TIMESTAMP, 'localtime'))
  37. ) AND (
  38. cd.used IS NULL OR COALESCE($used||'', 'false') = 'true' OR COALESCE(cd.used||'','') = 'false'
  39. ) AND (
  40. CASE COALESCE($type, '')
  41. WHEN '' THEN TRUE
  42. ELSE $type IS NULL OR cd.type IN (SELECT value FROM json_each($type))
  43. END
  44. ) AND (
  45. CASE COALESCE($store, '')
  46. WHEN '' THEN TRUE
  47. ELSE $store IS NULL OR cd.store IN (SELECT value FROM json_each($store))
  48. END
  49. )
  50. ORDER BY expiry, created DESC, type, c.hash NULLS FIRST
  51. ;