32 characters are often not enough to distinguish gnu-social mids - use the entire mid. in /display if we are not dealing with posts (eg likes) provide the thr_parent mid as bParam_mid so we can still adress the right post in javascript

This commit is contained in:
Mario Vavti 2017-09-05 23:18:02 +02:00
parent c8000fca1f
commit 68a91ec3ea
3 changed files with 6 additions and 5 deletions

View File

@ -413,7 +413,7 @@ class ThreadItem {
'previewing' => ($conv->is_preview() ? true : false ), 'previewing' => ($conv->is_preview() ? true : false ),
'preview_lbl' => t('This is an unsaved preview'), 'preview_lbl' => t('This is an unsaved preview'),
'wait' => t('Please wait'), 'wait' => t('Please wait'),
'submid' => str_replace(['+','='], ['',''], base64_encode(substr($item['mid'],0,32))), 'submid' => str_replace(['+','='], ['',''], base64_encode($item['mid'])),
'thread_level' => $thread_level 'thread_level' => $thread_level
); );

View File

@ -89,7 +89,7 @@ class Display extends \Zotlabs\Web\Controller {
if($decoded) if($decoded)
$item_hash = $decoded; $item_hash = $decoded;
$r = q("select id, uid, mid, parent_mid, item_type, item_deleted from item where mid like '%s' limit 1", $r = q("select id, uid, mid, parent_mid, thr_parent, verb, item_type, item_deleted from item where mid like '%s' limit 1",
dbesc($item_hash . '%') dbesc($item_hash . '%')
); );
@ -165,7 +165,8 @@ class Display extends \Zotlabs\Web\Controller {
'$dend' => '', '$dend' => '',
'$dbegin' => '', '$dbegin' => '',
'$verb' => '', '$verb' => '',
'$mid' => $item_hash //if the target item is not a post (eg a like) want to address its thread parent
'$mid' => (($target_item['verb'] == ACTIVITY_POST) ? $item_hash : $target_item['thr_parent'])
)); ));
head_add_link([ head_add_link([

View File

@ -698,9 +698,9 @@ function updateConvItems(mode,data) {
// auto-scroll to a particular comment in a thread (designated by mid) when in single-thread mode // auto-scroll to a particular comment in a thread (designated by mid) when in single-thread mode
// use the same method to generate the submid as we use in ThreadItem, // use the same method to generate the submid as we use in ThreadItem,
// substr(0,32) + base64_encode + replace(['+','='],['','']); // base64_encode + replace(['+','='],['','']);
var submid = bParam_mid; var submid = bParam_mid;
var submid_encoded = ((submid.length) ? submid.substring(0,32) : 'abcdefg'); var submid_encoded = ((submid.length) ? submid : 'abcdefg');
submid_encoded = window.btoa(submid_encoded); submid_encoded = window.btoa(submid_encoded);
submid_encoded = submid_encoded.replace(/[\+\=]/g,''); submid_encoded = submid_encoded.replace(/[\+\=]/g,'');
if($('.item_' + submid_encoded).length && !$('.item_' + submid_encoded).hasClass('toplevel_item') && mode == 'replace') { if($('.item_' + submid_encoded).length && !$('.item_' + submid_encoded).hasClass('toplevel_item') && mode == 'replace') {