Merge branch 'patch-3' into 'dev'
Save combined view while deleting or recalling first message in thread See merge request hubzilla/core!1273
This commit is contained in:
commit
c4c1b1f5a2
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
require_once('include/crypto.php');
|
require_once('include/crypto.php');
|
||||||
require_once('include/attach.php');
|
require_once('include/attach.php');
|
||||||
|
require_once('include/msglib.php');
|
||||||
|
|
||||||
|
|
||||||
function mail_prepare_binary($item) {
|
function mail_prepare_binary($item) {
|
||||||
@ -498,11 +499,8 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
xchan_mail_query($x[0]);
|
xchan_mail_query($x[0]);
|
||||||
$x[0]['mail_deleted'] = true;
|
$x[0]['mail_deleted'] = true;
|
||||||
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
|
msg_drop($messageitem_id, $channel_id, $x[0]['conv_guid']);
|
||||||
intval($messageitem_id),
|
|
||||||
intval($channel_id)
|
|
||||||
);
|
|
||||||
build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
|
build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
28
include/msglib.php
Normal file
28
include/msglib.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/* Common private message processing functions */
|
||||||
|
|
||||||
|
function msg_drop($message_id, $channel_id, $conv_guid) {
|
||||||
|
|
||||||
|
// Delete message
|
||||||
|
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
|
||||||
|
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",
|
||||||
|
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']),
|
||||||
|
dbesc($conv_guid),
|
||||||
|
intval($channel_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,7 @@ require_once('include/crypto.php');
|
|||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
require_once('include/queue_fn.php');
|
require_once('include/queue_fn.php');
|
||||||
require_once('include/perm_upgrade.php');
|
require_once('include/perm_upgrade.php');
|
||||||
|
require_once('include/msglib.php');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2331,16 +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']),
|
dbesc($arr['mid']),
|
||||||
intval($channel['channel_id'])
|
intval($channel['channel_id'])
|
||||||
);
|
);
|
||||||
if($r) {
|
if($r) {
|
||||||
if(intval($arr['mail_recalled'])) {
|
if(intval($arr['mail_recalled'])) {
|
||||||
$x = q("delete from mail where id = %d and channel_id = %d",
|
msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']);
|
||||||
intval($r[0]['id']),
|
|
||||||
intval($channel['channel_id'])
|
|
||||||
);
|
|
||||||
$DR->update('mail recalled');
|
$DR->update('mail recalled');
|
||||||
$result[] = $DR->get();
|
$result[] = $DR->get();
|
||||||
logger('mail_recalled');
|
logger('mail_recalled');
|
||||||
|
Reference in New Issue
Block a user