From 05e08cb5d2967a12c479ab94187b1ef1bde0a094 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 28 Nov 2012 18:45:11 -0800 Subject: trace through the threaded conversation spaghetti to bring back a sane looking network page --- include/ItemObject.php | 3 +++ include/conversation.php | 27 +++++++++++++++++++++++---- js/main.js | 6 +++--- version.inc | 2 +- view/tpl/conv_item.tpl | 14 ++++---------- view/tpl/convobj.tpl | 4 ++++ 6 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 view/tpl/convobj.tpl diff --git a/include/ItemObject.php b/include/ItemObject.php index b91145906..6767acd73 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -51,6 +51,7 @@ class Item extends BaseObject { // FIXME - base this on observer permissions $this->writable = ((local_user() && $channel['channel_hash'] === $item['owner_xchan']) ? true : false); + $ssl_state = ((local_user()) ? true : false); $this->redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $this->get_data_value('cid') ; @@ -474,6 +475,8 @@ class Item extends BaseObject { private function is_writable() { $conv = $this->get_conversation(); + return true; + if($conv) { // This will allow us to comment on wall-to-wall items owned by our friends // and community forums even if somebody else wrote the post. diff --git a/include/conversation.php b/include/conversation.php index 07ecf7207..ab2d15b1e 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -660,7 +660,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr 'thread_level' => $thread_level, ); - logger('tmp_item: ' . print_r($tmp_item,true)); $arr = array('item' => $item, 'output' => $tmp_item); call_hooks('display_item', $arr); @@ -803,6 +802,10 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false); + if(! feature_enabled($profile_owner,'multi_delete')) + $page_dropping = false; + + $channel = $a->get_channel(); $observer = $a->get_observer(); @@ -950,7 +953,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { 'tags' => template_escape($tags), 'hashtags' => template_escape($hashtags), 'mentions' => template_escape($mentions), - 'txt_cats' => t('Categories:'), + 'txt_cats' => t('Categories:'), 'txt_folders' => t('Filed under:'), 'has_cats' => ((count($categories)) ? 'true' : ''), 'has_folders' => ((count($folders)) ? 'true' : ''), @@ -995,8 +998,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { { // Normal View - $page_template = get_markup_template("threaded_conversation.tpl"); - require_once('include/ConversationObject.php'); require_once('include/ItemObject.php'); @@ -1023,8 +1024,13 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { continue; } + + + $item['pagedrop'] = $page_dropping; + + if($item['id'] == $item['parent']) { $item_object = new Item($item); $conv->add_thread($item_object); @@ -1036,9 +1042,22 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG); $threads = array(); } + } } + + if($page_mode === 'traditional' || $page_mode === 'preview') { + $page_template = get_markup_template("threaded_conversation.tpl"); + } + elseif($update) { + $page_template = get_markup_template("convobj.tpl"); + } + else { + $page_template = get_markup_template("conv_frame.tpl"); + $threads = null; + } + $o = replace_macros($page_template, array( '$baseurl' => $a->get_baseurl($ssl_state), '$live_update' => $live_update_div, diff --git a/js/main.js b/js/main.js index 1cc76c744..bb7e469a6 100644 --- a/js/main.js +++ b/js/main.js @@ -302,7 +302,7 @@ function updateConvItems(mode,data) { if(mode === 'update') { prev = 'threads-begin'; - $('.thread-wrapper',data).each(function() { + $('.thread-wrapper.toplevel_item',data).each(function() { var ident = $(this).attr('id'); if($('#' + ident).length == 0 && profile_page == 1) { @@ -331,7 +331,7 @@ function updateConvItems(mode,data) { } if(mode === 'append') { next = 'threads-end'; - $('.thread-wrapper',data).each(function() { + $('.thread-wrapper.toplevel_item',data).each(function() { var ident = $(this).attr('id'); if($('#' + ident).length == 0) { @@ -359,7 +359,7 @@ function updateConvItems(mode,data) { prev = 'threads-begin'; - $('.thread-wrapper',data).each(function() { + $('.thread-wrapper.toplevel_item',data).each(function() { var ident = $(this).attr('id'); if($('#' + ident).length == 0 && profile_page == 1) { diff --git a/version.inc b/version.inc index c1d3aa69b..25a373fac 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2012-11-27.152 +2012-11-28.153 diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index a5a3c4958..1c35feaad 100644 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -98,24 +98,18 @@
$item.showlike
$item.showdislike
- {{ if $item.threaded }} - {{ if $item.comment }} -
- $item.comment -
- {{ endif }} - {{ endif }} -
+{{ if $item.toplevel }} {{ for $item.children as $item }} {{ inc $item.template }}{{ endinc }} {{ endfor }} +{{ endif }} -{{ if $item.flatten }}
$item.comment
-{{ endif }} + + {{if $item.comment_lastcollapsed}}{{endif}} diff --git a/view/tpl/convobj.tpl b/view/tpl/convobj.tpl new file mode 100644 index 000000000..a35e232e2 --- /dev/null +++ b/view/tpl/convobj.tpl @@ -0,0 +1,4 @@ +{{ for $threads as $item }} +{{ inc $item.template }}{{ endinc }} +{{ endfor }} + -- cgit v1.2.3