From e931616011b2d5d41dd42927af30043ca6da9096 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Fri, 14 Sep 2018 17:38:14 +0200 Subject: Save combined view while deleting first message in thread --- include/message.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include') diff --git a/include/message.php b/include/message.php index 4a673b961..73471f573 100644 --- a/include/message.php +++ b/include/message.php @@ -503,6 +503,26 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation intval($messageitem_id), intval($channel_id) ); + + // If it was a first message in thread + $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", + dbesc($x[0]['parent_mid']), + intval($channel_id) + ); + if (! $z) { + // Get new first message... + $r = q("SELECT * FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + dbesc($x[0]['conv_guid']), + intval($channel_id) + ); + // ...and refer whole thread to it + q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", + dbesc($r[0]['mid']), + dbesc($x[0]['conv_guid']), + intval($channel_id) + ); + } + build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true)))); return true; } -- cgit v1.2.3 From 6360dee12560050b32adebdd4432c0ba4c59cee2 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Fri, 14 Sep 2018 17:45:42 +0200 Subject: formatting --- include/message.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/message.php b/include/message.php index 73471f573..4c59f601c 100644 --- a/include/message.php +++ b/include/message.php @@ -517,9 +517,9 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation ); // ...and refer whole thread to it q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", - dbesc($r[0]['mid']), - dbesc($x[0]['conv_guid']), - intval($channel_id) + dbesc($r[0]['mid']), + dbesc($x[0]['conv_guid']), + intval($channel_id) ); } -- cgit v1.2.3 From 85d8225cc061f8654f70e879d0afca680c734a02 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 01:01:48 +0200 Subject: less data in select --- include/message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/message.php b/include/message.php index 4c59f601c..2ac22c0ba 100644 --- a/include/message.php +++ b/include/message.php @@ -511,7 +511,7 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation ); if (! $z) { // Get new first message... - $r = q("SELECT * FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", dbesc($x[0]['conv_guid']), intval($channel_id) ); -- cgit v1.2.3 From 8d89c4bbcef4e11db6c031c8f5af1323eb055e49 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 01:20:49 +0200 Subject: Save combined view on calling first message in thread --- include/zot.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include') diff --git a/include/zot.php b/include/zot.php index e8ac2df02..f4feb1022 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2341,6 +2341,26 @@ function process_mail_delivery($sender, $arr, $deliveries) { intval($r[0]['id']), intval($channel['channel_id']) ); + + // If it was a first message in thread + $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", + dbesc($arr['mid']), + intval($channel['channel_id']) + ); + if (! $z) { + // Get new first message... + $r = q("SELECT mid, conv_guid FROM mail WHERE parent_mid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + dbesc($arr['mid']), + intval($channel['channel_id']) + ); + // ...and refer whole thread to it + q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", + dbesc($r[0]['mid']), + dbesc($r[0]['conv_guid']), + intval($channel['channel_id']) + ); + } + $DR->update('mail recalled'); $result[] = $DR->get(); logger('mail_recalled'); -- cgit v1.2.3 From 3d3f4f50fb7fb06c8e17e8ede70be4c004e39773 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 01:40:17 +0200 Subject: formatting --- include/zot.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/zot.php b/include/zot.php index f4feb1022..7eb2d6b96 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2341,7 +2341,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { intval($r[0]['id']), intval($channel['channel_id']) ); - + // If it was a first message in thread $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", dbesc($arr['mid']), -- cgit v1.2.3 From 284e5dd2e8313f3ccd148f19699f996d4f4fe0a5 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 01:45:54 +0200 Subject: unification with zot.php code for future reuse --- include/message.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/message.php b/include/message.php index 2ac22c0ba..9e8b6be8b 100644 --- a/include/message.php +++ b/include/message.php @@ -511,14 +511,14 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation ); if (! $z) { // Get new first message... - $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + $r = q("SELECT mid, conv_guid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", dbesc($x[0]['conv_guid']), intval($channel_id) ); // ...and refer whole thread to it q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", dbesc($r[0]['mid']), - dbesc($x[0]['conv_guid']), + dbesc($r[0]['conv_guid']), intval($channel_id) ); } -- cgit v1.2.3 From 724dc48fe8784b52e214c8ee65e2b9e2f19b7519 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 21:41:13 +0200 Subject: Add new file --- include/msglib.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 include/msglib.php (limited to 'include') diff --git a/include/msglib.php b/include/msglib.php new file mode 100644 index 000000000..e69de29bb -- cgit v1.2.3 From f83c2d5cd102291c9ef3372fda904fb67bcf61da Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 22:27:39 +0200 Subject: Create msglib.php --- include/msglib.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'include') diff --git a/include/msglib.php b/include/msglib.php index e69de29bb..c55839f6c 100644 --- a/include/msglib.php +++ b/include/msglib.php @@ -0,0 +1,35 @@ + Date: Sat, 15 Sep 2018 22:31:08 +0200 Subject: formatting --- include/msglib.php | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) (limited to 'include') diff --git a/include/msglib.php b/include/msglib.php index c55839f6c..2c9a9a696 100644 --- a/include/msglib.php +++ b/include/msglib.php @@ -6,30 +6,27 @@ function msg_drop($message_id, $channel_id, $conv_guid) { // Delete message $r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d", - $message_id, - $channel_id - ); + $message_id, + $channel_id + ); - // If it was a first message in thread - $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", - $message_id, - $channel_id - ); - if (! $z) { - // Get new first message... - $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", - $conv_guid, - $channel_id - ); - // ...and refer whole thread to it - q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", - dbesc($r[0]['mid']), - $conv_guid, - $channel_id - ); - return true; - } else { - return false; - } + // If it was a first message in thread + $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", + $message_id, + $channel_id + ); + if (! $z) { + // Get new first message... + $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + $conv_guid, + $channel_id + ); + // ...and refer whole thread to it + q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", + dbesc($r[0]['mid']), + $conv_guid, + $channel_id + ); + } } -- cgit v1.2.3 From 1819704620c48ac9a5e5fac6d776ed8c417ab8da Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 22:32:07 +0200 Subject: Use common msg_drop function --- include/message.php | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) (limited to 'include') diff --git a/include/message.php b/include/message.php index 9e8b6be8b..00a1ada38 100644 --- a/include/message.php +++ b/include/message.php @@ -4,6 +4,7 @@ require_once('include/crypto.php'); require_once('include/attach.php'); +require_once('include/msglib.php'); function mail_prepare_binary($item) { @@ -498,31 +499,8 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation } else { xchan_mail_query($x[0]); - $x[0]['mail_deleted'] = true; - $r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d", - intval($messageitem_id), - intval($channel_id) - ); - - // If it was a first message in thread - $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", - dbesc($x[0]['parent_mid']), - intval($channel_id) - ); - if (! $z) { - // Get new first message... - $r = q("SELECT mid, conv_guid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", - dbesc($x[0]['conv_guid']), - intval($channel_id) - ); - // ...and refer whole thread to it - q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", - dbesc($r[0]['mid']), - dbesc($r[0]['conv_guid']), - intval($channel_id) - ); - } - + $x[0]['mail_deleted'] = true; + msg_drop(intval($messageitem_id), intval($channel_id), dbesc($x[0]['conv_guid'])); build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true)))); return true; } -- cgit v1.2.3 From 034441bd13431a4a74e222311885665477e36a54 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sat, 15 Sep 2018 22:32:56 +0200 Subject: use common msg_drop function --- include/zot.php | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) (limited to 'include') diff --git a/include/zot.php b/include/zot.php index 7eb2d6b96..38435a124 100644 --- a/include/zot.php +++ b/include/zot.php @@ -12,6 +12,7 @@ require_once('include/crypto.php'); require_once('include/items.php'); require_once('include/queue_fn.php'); require_once('include/perm_upgrade.php'); +require_once('include/msglib.php'); /** @@ -2331,36 +2332,13 @@ function process_mail_delivery($sender, $arr, $deliveries) { } - $r = q("select id from mail where mid = '%s' and channel_id = %d limit 1", + $r = q("select id, conv_guid from mail where mid = '%s' and channel_id = %d limit 1", dbesc($arr['mid']), intval($channel['channel_id']) ); if($r) { if(intval($arr['mail_recalled'])) { - $x = q("delete from mail where id = %d and channel_id = %d", - intval($r[0]['id']), - intval($channel['channel_id']) - ); - - // If it was a first message in thread - $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", - dbesc($arr['mid']), - intval($channel['channel_id']) - ); - if (! $z) { - // Get new first message... - $r = q("SELECT mid, conv_guid FROM mail WHERE parent_mid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", - dbesc($arr['mid']), - intval($channel['channel_id']) - ); - // ...and refer whole thread to it - q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", - dbesc($r[0]['mid']), - dbesc($r[0]['conv_guid']), - intval($channel['channel_id']) - ); - } - + msg_drop(intval($r[0]['id']), intval($channel['channel_id']), dbesc($r[0]['conv_guid'])); $DR->update('mail recalled'); $result[] = $DR->get(); logger('mail_recalled'); -- cgit v1.2.3 From 585bdf562a31e6fb822fc0b06bdfbbe5b8ba324e Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Sun, 16 Sep 2018 00:43:45 +0200 Subject: Update msglib.php --- include/msglib.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/msglib.php b/include/msglib.php index 2c9a9a696..f196e7bee 100644 --- a/include/msglib.php +++ b/include/msglib.php @@ -10,18 +10,14 @@ function msg_drop($message_id, $channel_id, $conv_guid) { $channel_id ); - // If it was a first message in thread - $z = q("SELECT * FROM mail WHERE mid = '%s' AND channel_id = %d", - $message_id, + // Get new first message... + $r = q("SELECT mid, parent_mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", + $conv_guid, $channel_id ); - if (! $z) { - // Get new first message... - $r = q("SELECT mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", - $conv_guid, - $channel_id - ); - // ...and refer whole thread to it + // ...and if wasn't first before... + if ($r[0]['mid'] != $r[0]['parent_mid']) { + // ...refer whole thread to it q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", dbesc($r[0]['mid']), $conv_guid, -- cgit v1.2.3 From 774729b2215b9d417a6736b1dbaa5bf593df760d Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Mon, 17 Sep 2018 13:15:24 +0200 Subject: Update msglib.php --- include/msglib.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/msglib.php b/include/msglib.php index f196e7bee..f0bf523de 100644 --- a/include/msglib.php +++ b/include/msglib.php @@ -6,22 +6,22 @@ function msg_drop($message_id, $channel_id, $conv_guid) { // Delete message $r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d", - $message_id, - $channel_id + intval($message_id), + intval($channel_id) ); // Get new first message... $r = q("SELECT mid, parent_mid FROM mail WHERE conv_guid = '%s' AND channel_id = %d ORDER BY id ASC LIMIT 1", - $conv_guid, - $channel_id + dbesc($conv_guid), + intval($channel_id) ); // ...and if wasn't first before... if ($r[0]['mid'] != $r[0]['parent_mid']) { // ...refer whole thread to it q("UPDATE mail SET parent_mid = '%s', mail_isreply = abs(mail_isreply - 1) WHERE conv_guid = '%s' AND channel_id = %d", dbesc($r[0]['mid']), - $conv_guid, - $channel_id + dbesc($conv_guid), + intval($channel_id) ); } -- cgit v1.2.3 From faaffdd618748c5d32f6f04c120af0f791296f0d Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Mon, 17 Sep 2018 13:15:43 +0200 Subject: Update message.php --- include/message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/message.php b/include/message.php index 00a1ada38..936c01631 100644 --- a/include/message.php +++ b/include/message.php @@ -500,7 +500,7 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation else { xchan_mail_query($x[0]); $x[0]['mail_deleted'] = true; - msg_drop(intval($messageitem_id), intval($channel_id), dbesc($x[0]['conv_guid'])); + msg_drop($messageitem_id, $channel_id, $x[0]['conv_guid']); build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true)))); return true; } -- cgit v1.2.3 From 12b9106fc7b91564e968ab14618f9677a4e879bb Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Mon, 17 Sep 2018 13:16:04 +0200 Subject: Update zot.php --- include/zot.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/zot.php b/include/zot.php index 38435a124..7e9ee3823 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2338,7 +2338,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { ); if($r) { if(intval($arr['mail_recalled'])) { - msg_drop(intval($r[0]['id']), intval($channel['channel_id']), dbesc($r[0]['conv_guid'])); + msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']); $DR->update('mail recalled'); $result[] = $DR->get(); logger('mail_recalled'); -- cgit v1.2.3