aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php2
-rw-r--r--include/message.php31
-rw-r--r--install/update.php7
-rw-r--r--mod/mail.php5
-rw-r--r--version.inc2
5 files changed, 39 insertions, 8 deletions
diff --git a/boot.php b/boot.php
index 3afb7704b..b66606ca7 100755
--- a/boot.php
+++ b/boot.php
@@ -50,7 +50,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1156 );
+define ( 'DB_UPDATE_VERSION', 1157 );
/**
* @brief Constant with a HTML line break.
diff --git a/include/message.php b/include/message.php
index 4b0236db8..87975ef6a 100644
--- a/include/message.php
+++ b/include/message.php
@@ -49,6 +49,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
// look for any existing conversation structure
+ $conv_guid = '';
if(strlen($replyto)) {
$r = q("select convid from mail where channel_id = %d and ( mid = '%s' or parent_mid = '%s' ) limit 1",
@@ -56,8 +57,9 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
dbesc($replyto),
dbesc($replyto)
);
- if($r)
+ if($r) {
$convid = $r[0]['convid'];
+ }
}
if(! $convid) {
@@ -89,12 +91,15 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
dbesc($handles)
);
+
$r = q("select * from conv where guid = '%s' and uid = %d limit 1",
dbesc($conv_guid),
intval(local_channel())
);
- if($r)
+ if($r) {
$convid = $r[0]['id'];
+ $retconv = $r[0];
+ }
}
if(! $convid) {
@@ -102,6 +107,16 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
return $ret;
}
+ if(! $conv_guid) {
+ $r = q("select * from conv where id = %d and uid = %d limit 1",
+ intval($convid),
+ intval(local_channel())
+ );
+ if($r) {
+ $conv_guid = $r[0]['guid'];
+ $retconv = $r[0];
+ }
+ }
// generate a unique message_id
@@ -197,8 +212,11 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
dbesc($mid),
intval($channel['channel_id'])
);
- if($r)
+ if($r) {
$post_id = $r[0]['id'];
+ $retmail = $r;
+ $retmail['conv_guid'] = $conv_guid;
+ }
else {
$ret['message'] = t('Stored post could not be verified.');
return $ret;
@@ -242,6 +260,10 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
$ret['success'] = true;
$ret['message_item'] = intval($post_id);
+ if($retconv)
+ $ret['conv'] = $retconv;
+ if($retmail)
+ $ret['mail'] = $retmail;
return $ret;
}
@@ -369,11 +391,12 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation
if($drop_conversation) {
// find the parent_id
- $p = q("SELECT parent_mid FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
+ $p = q("SELECT parent_mid, convid FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
intval($messageitem_id),
intval($channel_id)
);
if($p) {
+
$r = q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
dbesc($p[0]['parent_mid']),
intval($channel_id)
diff --git a/install/update.php b/install/update.php
index ace5239b5..e120f91d2 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1156 );
+define( 'UPDATE_VERSION' , 1157 );
/**
*
@@ -1885,3 +1885,8 @@ function update_r1155() {
return UPDATE_FAILED;
}
+
+function update_r1156() {
+ return UPDATE_SUCCESS;
+}
+
diff --git a/mod/mail.php b/mod/mail.php
index 23d1f5224..2fbd96fdb 100644
--- a/mod/mail.php
+++ b/mod/mail.php
@@ -97,7 +97,10 @@ function mail_post(&$a) {
$ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
- if(! $ret['success']) {
+ if($ret['success']) {
+ build_sync_packet(0,array('conv' => array($ret['conv']),'mail' => array(encode_mail($ret['mail'],true))));
+ }
+ else {
notice($ret['message']);
}
diff --git a/version.inc b/version.inc
index b94d740a1..f103ff89c 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2015-10-14.1185
+2015-10-15.1186