diff options
-rw-r--r-- | Zotlabs/Module/Like.php | 120 | ||||
-rw-r--r-- | view/js/main.js | 1 |
2 files changed, 51 insertions, 70 deletions
diff --git a/Zotlabs/Module/Like.php b/Zotlabs/Module/Like.php index cfb8a9bf3..6b7efb98b 100644 --- a/Zotlabs/Module/Like.php +++ b/Zotlabs/Module/Like.php @@ -9,11 +9,8 @@ require_once('include/bbcode.php'); require_once('include/items.php'); require_once('include/conversation.php'); - class Like extends \Zotlabs\Web\Controller { - - private function reaction_to_activity($reaction) { $acts = [ @@ -42,7 +39,43 @@ class Like extends \Zotlabs\Web\Controller { } + private function like_response($arr) { + + if($arr['conv_mode'] === 'channel') + profile_load($arr['owner_xchan']['xchan_name']); + + $item_normal = item_normal(); + + $activities = q("SELECT item.*, item.id AS item_id FROM item + WHERE uid = %d $item_normal + AND thr_parent = '%s' + AND verb IN ('%s', '%s', '%s', '%s', '%s')", + intval($arr['item']['uid']), + dbesc($arr['item']['mid']), + dbesc(ACTIVITY_LIKE), + dbesc(ACTIVITY_DISLIKE), + dbesc(ACTIVITY_ATTEND), + dbesc(ACTIVITY_ATTENDNO), + dbesc(ACTIVITY_ATTENDMAYBE) + ); + + xchan_query($activities,true); + + $convitems[] = $arr['item']; + $convitems = array_merge($convitems, $activities); + + $convitems = fetch_post_tags($convitems,true); + + $ret = [ + 'success' => 1, + 'orig_id' => $arr['orig_item_id'], //this is required for pubstream items where $item_id != $item['id'] + 'id' => $arr['item']['id'], + 'html' => conversation($convitems, $arr['conv_mode'], true, 'r_preview'), + ]; + return $ret; + + } public function get() { @@ -368,39 +401,13 @@ class Like extends \Zotlabs\Web\Controller { return; if(! $multi_undo) { - - if($mode === 'channel') - profile_load($thread_owner['xchan_name']); - - $item_normal = item_normal(); - - $activities = q("SELECT item.*, item.id AS item_id FROM item - WHERE uid = %d $item_normal - AND thr_parent = '%s' - AND verb IN ('%s', '%s', '%s', '%s', '%s')", - intval($owner_uid), - dbesc($item['mid']), - dbesc(ACTIVITY_LIKE), - dbesc(ACTIVITY_DISLIKE), - dbesc(ACTIVITY_ATTEND), - dbesc(ACTIVITY_ATTENDNO), - dbesc(ACTIVITY_ATTENDMAYBE) - ); - - xchan_query($activities,true); - $convitems[] = $item; - $convitems = array_merge($convitems, $activities); - - $json = [ - 'success' => 1, - 'orig_id' => $item_id, - 'id' => $item['id'], - 'html' => conversation($convitems,$mode,true,'r_preview'), - ]; - - echo json_encode($json); - - killme(); + $ret = self::like_response([ + 'item' => $item, + 'orig_item_id' => $item_id, + 'owner_xchan' => $thread_owner, + 'conv_mode' => $mode + ]); + json_return_and_die($ret); } @@ -541,35 +548,6 @@ class Like extends \Zotlabs\Web\Controller { $post = item_store($arr); $post_id = $post['item_id']; - if($mode === 'channel') - profile_load($thread_owner['xchan_name']); - - $item_normal = item_normal(); - - $activities = q("SELECT item.*, item.id AS item_id FROM item - WHERE uid = %d $item_normal - AND thr_parent = '%s' - AND verb IN ('%s', '%s', '%s', '%s', '%s')", - intval($owner_uid), - dbesc($item['mid']), - dbesc(ACTIVITY_LIKE), - dbesc(ACTIVITY_DISLIKE), - dbesc(ACTIVITY_ATTEND), - dbesc(ACTIVITY_ATTENDNO), - dbesc(ACTIVITY_ATTENDMAYBE) - ); - - xchan_query($activities,true); - $convitems[] = $item; - $convitems = array_merge($convitems, $activities); - - $json = [ - 'success' => 1, - 'orig_id' => $item_id, //this is required for pubstream where $item_id != $item['id'] - 'id' => $item['id'], - 'html' => conversation($convitems,$mode,true,'r_preview'), - ]; - // save the conversation from expiration if(local_channel() && array_key_exists('item',$post) && (intval($post['item']['id']) != intval($post['item']['parent']))) @@ -613,10 +591,14 @@ class Like extends \Zotlabs\Web\Controller { return $o; } - echo json_encode($json); - killme(); + $ret = self::like_response([ + 'item' => $item, + 'orig_item_id' => $item_id, + 'owner_xchan' => $thread_owner, + 'conv_mode' => $mode + ]); + json_return_and_die($ret); + } - - } diff --git a/view/js/main.js b/view/js/main.js index 35b03e03b..d39e22b1a 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -1153,7 +1153,6 @@ function dolike(ident, verb) { conv_mode = ''; $.get('like/' + ident.toString() + '?verb=' + verb + '&conv_mode=' + conv_mode, function (data) { - data = JSON.parse(data); if(data.success) { // this is a bit tricky since the top level thread wrapper wraps the whole thread if($('#thread-wrapper-' + data.orig_id).hasClass('toplevel_item')) { |