Page 1 of 1

moveToPost('prev') does not work across duplicate article id

Posted: 11 Mar 2012, 20:47
by gmargo
If the preferences are set to "Allow duplicate posts", then when reading a category or virtual feed, there may occur adjacent identical article ids. The keystroke logic handling the 'previous article' request does not back up the list correctly.

The following patch fixes this. It also eliminates unnecessary calls to get{First,Last}VisibleHeadlineId().

Code: Select all

diff --git a/js/viewfeed.js b/js/viewfeed.js
index 880abc6..7ab7f80 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -493,13 +493,23 @@ function moveToPost(mode) {
       }
 
       if (active_post_id == false) {
-         next_id = getFirstVisibleHeadlineId();
-         prev_id = getLastVisibleHeadlineId();
+         next_id = rows[0];
+         prev_id = rows[rows.length-1];
       } else {
          for (var i = 0; i < rows.length; i++) {
             if (rows[i] == active_post_id) {
-               prev_id = rows[i-1];
-               next_id = rows[i+1];
+               // Account for adjacent identical article ids.
+
+               if (i > 0)
+                  prev_id = rows[i-1];
+
+               for (var j = i+1; j < rows.length; j++) {
+                  if (rows[j] != active_post_id) {
+                     next_id = rows[j];
+                     break;
+                  }
+               }
+               break;
             }
          }
       }

Re: moveToPost('prev') does not work across duplicate articl

Posted: 12 Mar 2012, 13:54
by fox
Thanks for the patch. One thing though, in the future please don't inline patches in the post, because tab information is lost and I have to apply everything by hand.

Re: moveToPost('prev') does not work across duplicate articl

Posted: 12 Mar 2012, 17:29
by gmargo
fox wrote:please don't inline patches in the post, because tab information is lost


I did not know that; I will attach patches instead. Thanks.