aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <mike@macgirvin.com>2016-09-25 23:09:08 -0700
committerredmatrix <mike@macgirvin.com>2016-09-25 23:09:08 -0700
commit7e59c70a9feb0de777a673a5ca5551170787c4e1 (patch)
treeee3b7dbf1bb0b9273cb88f0291c6fa2af497d50d
parentbba7fe24e91b5899035df42afb31276a6c6f1d8b (diff)
downloadvolse-hubzilla-7e59c70a9feb0de777a673a5ca5551170787c4e1.tar.gz
volse-hubzilla-7e59c70a9feb0de777a673a5ca5551170787c4e1.tar.bz2
volse-hubzilla-7e59c70a9feb0de777a673a5ca5551170787c4e1.zip
autoscroll to target post/comment when in single-thread mode; don't interfere with other modes; replaces using a named anchor with a url fragment to reach a particular place in the conversation when content is loaded with ajax.
-rw-r--r--Zotlabs/Lib/ThreadItem.php1
-rw-r--r--view/js/main.js12
-rwxr-xr-xview/tpl/conv_item.tpl2
3 files changed, 10 insertions, 5 deletions
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index 2bab4a0ca..ef73ed793 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -403,6 +403,7 @@ class ThreadItem {
'comment' => $this->get_comment_box($indent),
'previewing' => ($conv->is_preview() ? ' preview ' : ''),
'wait' => t('Please wait'),
+ 'submid' => substr($item['mid'],0,32),
'thread_level' => $thread_level
);
diff --git a/view/js/main.js b/view/js/main.js
index 227f0b7fe..1c6798c36 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -249,7 +249,7 @@ var divmore_height = 400;
var last_filestorage_id = null;
var mediaPlaying = false;
var contentHeightDiff = 0;
-var gotoAnchor = ((document.location.hash.includes('item_')) ? document.location.hash : '');
+
$(function() {
$.ajaxSetup({cache: false});
@@ -651,9 +651,13 @@ function updateConvItems(mode,data) {
collapseHeight();
}
- if(gotoAnchor != '') {
- document.location.hash = gotoAnchor;
- gotoAnchor = '';
+ // auto-scroll to a particular comment in a thread (designated by mid) when in single-thread mode
+ if(bParam_mid && mode == 'replace') {
+ $('html, body').animate({ scrollTop: $('.item_' + bParam_mid.substring(0,32)).offset().top }, 'slow');
+ var scrolltoid = $('.collapsed-comments').attr('id').substring(19);
+ $('#collapsed-comments-' + scrolltoid).slideDown();
+ $('#hide-comments-' + scrolltoid).html(aStr.showfewer);
+ $('#hide-comments-total-' + scrolltoid).hide();
}
}
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index 5bf4bc5b6..79c22b4c1 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -4,7 +4,7 @@
</div>
<div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
{{/if}}
- <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper h-entry {{else}} u-comment h-cite {{/if}}">
+ <div id="thread-wrapper-{{$item.id}}" class="thread-wrapper{{if $item.toplevel}} {{$item.toplevel}} generic-content-wrapper h-entry {{else}} u-comment h-cite {{/if}} item_{{$item.submid}}">
<a name="item_{{$item.id}}" ></a>
<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}" id="wall-item-outside-wrapper-{{$item.id}}" >
<div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" style="clear:both;">