|
@@ -1,42 +1,30 @@
|
|
|
-SELECT 'table' AS component
|
|
|
|
|
-, '/conv?me='||:me||'&peer={id}' AS edit_url
|
|
|
|
|
-, TRUE AS search
|
|
|
|
|
|
|
+SELECT 'card' as component
|
|
|
|
|
+, 1 AS columns
|
|
|
;
|
|
;
|
|
|
-SELECT peer AS "Peer"
|
|
|
|
|
-, c.name AS "Name"
|
|
|
|
|
-, max(ts) AS ts
|
|
|
|
|
-, SUBSTR("Peer", 3, LENGTH("Peer")) AS _sqlpage_id
|
|
|
|
|
|
|
+SELECT COALESCE(c.name, SUBSTR(peer, 3, LENGTH(peer))) AS title
|
|
|
|
|
+, max(ts) AS footer
|
|
|
|
|
+, group_concat(msg, ' … ' ORDER BY ts ASC) AS description
|
|
|
|
|
+, '/conv?me='||:me||'&peer='||SUBSTR("Peer", 3, LENGTH("Peer")) AS link
|
|
|
FROM (
|
|
FROM (
|
|
|
- SELECT CASE WHEN "from" = '+1'||:me
|
|
|
|
|
- THEN "to" ELSE "from"
|
|
|
|
|
- END AS peer,
|
|
|
|
|
- received AS ts
|
|
|
|
|
|
|
+ SELECT "from" AS peer
|
|
|
|
|
+ , received AS ts
|
|
|
|
|
+ , CASE WHEN received = max(received)OVER(PARTITION BY "to", "from") THEN payload->>'$.payload.text' ELSE NULL END AS msg
|
|
|
FROM inbox
|
|
FROM inbox
|
|
|
|
|
+ WHERE "to" = '+1'||:me
|
|
|
UNION
|
|
UNION
|
|
|
- SELECT CASE WHEN "from" = '+1'||:me
|
|
|
|
|
- THEN "to" ELSE "from"
|
|
|
|
|
- END AS peer,
|
|
|
|
|
- sent AS ts
|
|
|
|
|
|
|
+ SELECT "to" AS peer
|
|
|
|
|
+ , sent AS ts
|
|
|
|
|
+ , CASE WHEN sent = max(sent)OVER(PARTITION BY "to", "from") THEN payload ELSE NULL END AS msg
|
|
|
FROM outbox
|
|
FROM outbox
|
|
|
|
|
+ WHERE "from" = '+1'||:me
|
|
|
|
|
+
|
|
|
|
|
+ ORDER BY ts
|
|
|
) q
|
|
) q
|
|
|
LEFT JOIN contacts c ON c.number = q.peer
|
|
LEFT JOIN contacts c ON c.number = q.peer
|
|
|
GROUP BY "Peer"
|
|
GROUP BY "Peer"
|
|
|
-ORDER BY ts DESC, "Peer"
|
|
|
|
|
|
|
+ORDER BY footer DESC, title
|
|
|
;
|
|
;
|
|
|
|
|
|
|
|
-SET ":to_options" = (SELECT json_group_array(
|
|
|
|
|
- json_object('label', SUBSTR(v, 3, LENGTH(v)), 'value', SUBSTR(v, 3, LENGTH(v)), 'selected', FALSE)
|
|
|
|
|
- )
|
|
|
|
|
- FROM (
|
|
|
|
|
- SELECT "from" AS v FROM inbox
|
|
|
|
|
- UNION
|
|
|
|
|
- SELECT "to" FROM inbox
|
|
|
|
|
- UNION
|
|
|
|
|
- SELECT "from" FROM outbox
|
|
|
|
|
- UNION
|
|
|
|
|
- SELECT "to" FROM outbox
|
|
|
|
|
- ) q
|
|
|
|
|
-);
|
|
|
|
|
--SELECT 'debug' AS component;
|
|
--SELECT 'debug' AS component;
|
|
|
--SELECT :to_options AS options;
|
|
--SELECT :to_options AS options;
|
|
|
|
|
|
|
@@ -59,8 +47,6 @@ SELECT 'to' AS name
|
|
|
, 'To' AS label
|
|
, 'To' AS label
|
|
|
, 'input' AS type
|
|
, 'input' AS type
|
|
|
, '5553214321' AS placeholder
|
|
, '5553214321' AS placeholder
|
|
|
---, 'select' AS type
|
|
|
|
|
---, :to_options AS options
|
|
|
|
|
, 3 AS width
|
|
, 3 AS width
|
|
|
;
|
|
;
|
|
|
SELECT 'Write a short message...' AS placeholder
|
|
SELECT 'Write a short message...' AS placeholder
|