diff options
-rw-r--r-- | Zotlabs/Daemon/Cron.php | 2 | ||||
-rw-r--r-- | Zotlabs/Update/_1220.php | 8 | ||||
-rw-r--r-- | include/message.php | 8 | ||||
-rw-r--r-- | include/msglib.php | 28 | ||||
-rw-r--r-- | include/zot.php | 8 | ||||
-rw-r--r-- | view/js/mod_photos.js | 3 |
6 files changed, 41 insertions, 16 deletions
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php index d1c516f96..25e49b817 100644 --- a/Zotlabs/Daemon/Cron.php +++ b/Zotlabs/Daemon/Cron.php @@ -60,7 +60,7 @@ class Cron { drop_item($rr['id'],false,(($rr['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL)); if($rr['item_wall']) { // The notifier isn't normally invoked unless item_drop is interactive. - Zotlabs\Daemon\Master::Summon( [ 'Notifier', 'drop', $rr['id'] ] ); + Master::Summon( [ 'Notifier', 'drop', $rr['id'] ] ); } } } diff --git a/Zotlabs/Update/_1220.php b/Zotlabs/Update/_1220.php index adcb8c9c6..6ce09c16b 100644 --- a/Zotlabs/Update/_1220.php +++ b/Zotlabs/Update/_1220.php @@ -26,14 +26,14 @@ class _1220 { if(ACTIVE_DBTYPE == DBTYPE_MYSQL) { $r = q("CREATE TABLE IF NOT EXISTS listeners ( id int(11) NOT NULL AUTO_INCREMENT, - target_id varchar(191) CHARACTER SET utf8mb4 NOT NULL DEFAULT '', - portable_id varchar(191) CHARACTER SET utf8mb4 NOT NULL DEFAULT '', - ltype int(11) NOT NULL DEFAULT '0', + target_id varchar(191) NOT NULL DEFAULT '', + portable_id varchar(191) NOT NULL DEFAULT '', + ltype int(11) NOT NULL DEFAULT 0, PRIMARY KEY (id), KEY target_id (target_id), KEY portable_id (portable_id), KEY ltype (ltype) -) ENGINE=InnoDB DEFAULT CHARSET=utf8"); +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); } diff --git a/include/message.php b/include/message.php index 4a673b961..936c01631 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,11 +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) - ); + $x[0]['mail_deleted'] = true; + msg_drop($messageitem_id, $channel_id, $x[0]['conv_guid']); build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true)))); return true; } diff --git a/include/msglib.php b/include/msglib.php new file mode 100644 index 000000000..f0bf523de --- /dev/null +++ b/include/msglib.php @@ -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) + ); + } + +} diff --git a/include/zot.php b/include/zot.php index b29e86dfa..e31d650d2 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,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']), 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']) - ); + msg_drop($r[0]['id'], $channel['channel_id'], $r[0]['conv_guid']); $DR->update('mail recalled'); $result[] = $DR->get(); logger('mail_recalled'); diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js index bf926c692..af675e31c 100644 --- a/view/js/mod_photos.js +++ b/view/js/mod_photos.js @@ -11,7 +11,8 @@ $(document).ready(function() { $("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'a', false, function(data) { $("#photo-edit-newtag").val('@' + data.name); }); - + + $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl?f=&n=1"); $('textarea').bbco_autocomplete('bbcode'); showHideBodyTextarea(); |