@ -242,64 +242,88 @@ define(["dojo/_base/declare"], function (declare) {
renderHeadline : function ( headlines , hl ) {
let row = null ;
let row _class = "" ;
if ( hl . marked ) row _class += " marked" ;
if ( hl . published ) row _class += " published" ;
if ( App . isCombinedMode ( ) ) {
row = ` <div class="cdm expanded ${ hl . score _class } " id="RROW- ${ hl . id } " data-article-id=" ${ hl . id } " data-orig-feed-id=" ${ hl . feed _id } "
onmouseover = "Article.mouseIn(${hl.id})" onmouseout = "Article.mouseOut(${hl.id})" >
< div class = "header" >
< div class = "left" >
< input dojoType = "dijit.form.CheckBox" type = "checkbox" onclick = "Headlines.onRowChecked(this)" class = 'rchk' >
< i class = "marked-pic marked-8797658 material-icons" onclick = "Headlines.toggleMark(8797658)" > star < / i >
< i class = "pub-pic pub-8797658 material-icons" onclick = "Headlines.togglePub(8797658)" > rss _feed < / i >
< / d i v >
< span onclick = "return Headlines.click(event, ${hl.id});" data - article - id = "${hl.id}" class = "titleWrap hlMenuAttach" >
< a class = "title" title = "${hl.title}" target = "_blank" rel = "noopener noreferrer" href = "${hl.link}" >
$ { hl . title } < / a >
< span class = "author" > — $ { hl . author } < / s p a n >
< span class = "HLLCTR-${hl.id}" > < / s p a n >
< / s p a n >
< div class = "feed" >
< a href = "#" style = "background-color: rgba(${hl.favicon_avg_color_rgba} ,0.3)"
onclick = "Feeds.open({feed:${hl.feed_id}})" > $ { hl . feed _title } < / a >
< / d i v >
< span class = "updated" title = "${hl.imported}" > $ { hl . updated } < / s p a n >
< div class = "right" >
< i class = "material-icons icon-score" title = "${hl.score}" data - score = "${hl.score}" onclick = "Article.setScore(${hl.id}, this)" > $ { hl . score _icon } < / i >
< span style = "cursor : pointer" title = "Tiny Tiny RSS '"" onclick = "Feeds.open({feed:3205})" > < img class = "icon" src = "feed-icons/3205.ico" alt = "" > < / s p a n > < / d i v > < / d i v > < d i v c l a s s = " c o n t e n t " o n c l i c k = " r e t u r n H e a d l i n e s . c l i c k ( e v e n t , 8 7 9 7 6 5 8 , t r u e ) ; " > < d i v i d = " P O S T N O T E - 8 7 9 7 6 5 8 " > < / d i v > < d i v c l a s s = " c o n t e n t - i n n e r " l a n g = " e n " > < p > S o r r y f o r h i j a c k i n g t h i s h t r e a d , b u t I h a v e a s i m i l a r i s s u e . < / p >
< p > I have a feed category with about 120 unread articles . I toggle headline grouping , but I am not sure if this matters or not . < / p >
< p > I click on the category on the left pane , and start clicking “ ctrl + down ” to scroll to read the articles . < br >
At some point ( I tried to figure it out , but can say exactly after how many articles I read ) the page won ’ t scroll down with “ ctrl + down ” , so I have to scroll with down key alone . < / p >
< p > TT - rss says it ’ s refreshing the content ( or something similar ) , but was it does , is marking as read a bunch of articles , that were supposed to be shown between the last one I actually read , and the first unread it shows , which should not really be the first unread . < / p >
< p > Last time it happened , I had around 120 unread articles , I could scroll via ctrl + down untill 80 were unread , I scroled manually , and it jumped to 50 unread . The right pane is also refreshed , so I can not scroll up to go through the ones marked as unread . < / p >
< p > I hope it is somewhat related to this thread , otherwise let me know and I can open a new one . < / p >
< p > Please let me know if what I wrote is clear . < / p >
< p > By the way I am running f6e287df110b2046643551aaae70917c61b061c9 on shared hosting , PHP 7 and Mysql . < / p > < / d i v > < d i v c l a s s = " i n t e r m e d i a t e " > < / d i v > < d i v c l a s s = " f o o t e r " o n c l i c k = " e v e n t . s t o p P r o p a g a t i o n ( ) " > < d i v c l a s s = " l e f t " > < i c l a s s = " m a t e r i a l - i c o n s " > l a b e l _ o u t l i n e < / i >
< span id = "ATSTR-8797658" > no tags < / s p a n >
< a title = "Edit tags for this article" href = "#" onclick = "Article.editTags(8797658)" > ( + ) < / a > < / d i v > < d i v c l a s s = " r i g h t " > < i s t y l e = " c u r s o r : p o i n t e r " c l a s s = " m a t e r i a l - i c o n s " o n c l i c k = " P l u g i n s . P s q l _ T r g m . s h o w R e l a t e d ( 8 7 9 7 6 5 8 ) " t i t l e = " S h o w r e l a t e d a r t i c l e s " > b o o k m a r k _ o u t l i n e < / i > < i c l a s s = " m a t e r i a l - i c o n s " s t y l e = " c u r s o r : p o i n t e r " o n c l i c k = " P l u g i n s . M a i l . s e n d ( 8 7 9 7 6 5 8 ) " t i t l e = " F o r w a r d b y e m a i l " > m a i l < / i > < i c l a s s = " m a t e r i a l - i c o n s " o n c l i c k = " P l u g i n s . N o t e . e d i t ( 8 7 9 7 6 5 8 ) " s t y l e = " c u r s o r : p o i n t e r " t i t l e = " E d i t a r t i c l e n o t e " > n o t e < / i > < i i d = " S H A R E - I M G - 6 0 2 3 0 8 6 " c l a s s = " m a t e r i a l - i c o n s i c o n - s h a r e " s t y l e = " c u r s o r : p o i n t e r " o n c l i c k = " P l u g i n s . S h a r e . s h a r e A r t i c l e ( 6 0 2 3 0 8 6 ) " t i t l e = " S h a r e b y U R L " > l i n k < / i > < / d i v > < / d i v > < / d i v > < / d i v > ` ;
row _class += App . getInitParam ( "cdm_expanded" ) ? " expanded" : " expandable" ;
row = ` <div class="cdm ${ row _class } ${ hl . score _class } " id="RROW- ${ hl . id } " data-article-id=" ${ hl . id } " data-orig-feed-id=" ${ hl . feed _id } "
data - content = "${hl.content}" onmouseover = "Article.mouseIn(${hl.id})" onmouseout = "Article.mouseOut(${hl.id})" >
< div class = "header" >
< div class = "left" >
< input dojoType = "dijit.form.CheckBox" type = "checkbox" onclick = "Headlines.onRowChecked(this)" class = 'rchk' >
< i class = "marked-pic marked-${hl.id} material-icons" onclick = "Headlines.toggleMark(${hl.id})" > star < / i >
< i class = "pub-pic pub-${hl.id} material-icons" onclick = "Headlines.togglePub(${hl.id})" > rss _feed < / i >
< / d i v >
< span onclick = "return Headlines.click(event, ${hl.id});" data - article - id = "${hl.id}" class = "titleWrap hlMenuAttach" >
< a class = "title" title = "${hl.title}" target = "_blank" rel = "noopener noreferrer" href = "${hl.link}" >
$ { hl . title } < / a >
< span class = "author" > $ { hl . author } < / s p a n >
< span class = "HLLCTR-${hl.id}" > $ { hl . labels } < / s p a n >
$ { hl . cdm _excerpt ? hl . cdm _excerpt : "" }
< / s p a n >
< div class = "feed" >
< a href = "#" style = "background-color: rgba(${hl.favicon_avg_color_rgba})"
onclick = "Feeds.open({feed:${hl.feed_id}})" > $ { hl . feed _title } < / a >
< / d i v >
< span class = "updated" title = "${hl.imported}" > $ { hl . updated } < / s p a n >
< div class = "right" >
< i class = "material-icons icon-score" title = "${hl.score}" data - score = "${hl.score}"
onclick = "Article.setScore(${hl.id}, this)" > $ { hl . score _pic } < / i >
< span style = "cursor : pointer" title = "${hl.feed_title}" onclick = "Feeds.open({feed:${hl.feed_id}})" >
$ { hl . feed _icon } < / s p a n >
< / d i v >
< / d i v >
< div class = "content" onclick = "return Headlines.click(event, ${hl.id}, true);" >
< div id = "POSTNOTE-${hl.id}" > $ { hl . note } < / d i v >
< div class = "content-inner" lang = "${hl.lang ? hl.lang : 'en'}" > < / d i v >
< div class = "intermediate" >
$ { hl . enclosures }
< / d i v >
< div class = "footer" onclick = "event.stopPropagation()" >
< div class = "left" >
$ { hl . buttons _left }
< i class = "material-icons" > label _outline < / i >
< span id = "ATSTR-${hl.id}" > $ { hl . tags _str } < / s p a n >
< a title = "Edit tags for this article" href = "#"
onclick = "Article.editTags(${hl.id})" > ( + ) < / a >
< / d i v >
< div class = "right" > $ { hl . buttons } < / d i v >
< / d i v >
< / d i v >
< / d i v > ` ;
} else {
row = ` <div class="hl ${ hl . score _class } " data-orig-feed-id=" ${ hl . feed _id } " data-article-id=" ${ hl . id } " id="RROW- ${ hl . id } "
row = ` <div class="hl ${ row_class } ${ hl. score _class } " data-orig-feed-id=" ${ hl . feed _id } " data-article-id=" ${ hl . id } " id="RROW- ${ hl . id } "
onmouseover = "Article.mouseIn(${hl.id})" onmouseout = "Article.mouseOut(${hl.id})" >
< div class = "left" >
< input dojoType = "dijit.form.CheckBox" type = "checkbox" onclick = "Headlines.onRowChecked(this)" class = 'rchk' >
< i class = "marked-pic marked-8804827 material-icons" onclick = "Headlines.toggleMark(${hl.id})" > star < / i >
< i class = "marked-pic marked- ${hl.id} material-icons" onclick = "Headlines.toggleMark(${hl.id})" > star < / i >
< i class = "pub-pic pub-${hl.id} material-icons" onclick = "Headlines.togglePub(${hl.id})" > rss _feed < / i >
< / d i v >
< div onclick = "return Headlines.click(event, ${hl.id})" class = "title" >
< span data - article - id = "${hl.id}" class = "hl-content hlMenuAttach" >
< a class = "title" href = "${hl.link}" > $ { hl . title }
< span class = "preview" > $ { hl . content _preview } < / s p a n >
< / a >
< a class = "title" href = "${hl.link}" > $ { hl . title } < span class = "preview" > $ { hl . content _preview } < / s p a n > < / a >
<!-- < span class = "author" > $ { hl . author } < / s p a n > - - >
< span class = "HLLCTR-${hl.id}" > $ { hl . labels } < / sp an >
< / s p a n >
< / d i v >
< span class = "feed" >
< a style = "background : rgba(${hl.favicon_avg_color_rgba}, 0.3)" href = "#" onclick = "Feeds.open({feed:${hl.feed_id}})" > $ { hl . feed _title } < / a >
< a style = "background : rgba(${hl.favicon_avg_color_rgba} )" href = "#" onclick = "Feeds.open({feed:${hl.feed_id}})" > $ { hl . feed _title } < / a >
< / s p a n >
< div title = "${hl.imported}" >
< span class = "updated" > $ { hl . updated } < / s p a n >
@ -356,8 +380,7 @@ At some point ( I tried to figure it out, but can say exactly after how many art
$ ( "headlines-frame" ) . addClassName ( App . isCombinedMode ( ) ? "cdm" : "normal" ) ;
const headlines _count = reply [ 'headlines-info' ] [ 'count' ] ;
//Feeds.infscroll_disabled = parseInt(headlines_count) != 30;
Feeds . infscroll _disabled = true ; // TEMPORARY
Feeds . infscroll _disabled = parseInt ( headlines _count ) != 30 ;
console . log ( 'received' , headlines _count , 'headlines, infscroll disabled=' , Feeds . infscroll _disabled ) ;
@ -371,10 +394,14 @@ At some point ( I tried to figure it out, but can say exactly after how many art
reply [ 'headlines' ] [ 'toolbar' ] ,
{ parseContent : true } ) ;
$ ( "headlines-frame" ) . innerHTML = '' ;
if ( typeof reply [ 'headlines' ] [ 'content' ] == 'string' ) {
$ ( "headlines-frame" ) . innerHTML = reply [ 'headlines' ] [ 'content' ] ;
} else {
$ ( "headlines-frame" ) . innerHTML = '' ;
for ( let i = 0 ; i < reply [ 'headlines' ] [ 'content' ] . length ; i ++ ) {
this . renderHeadline ( reply [ 'headlines' ] , reply [ 'headlines' ] [ 'content' ] [ i ] ) ;
for ( let i = 0 ; i < reply [ 'headlines' ] [ 'content' ] . length ; i ++ ) {
this . renderHeadline ( reply [ 'headlines' ] , reply [ 'headlines' ] [ 'content' ] [ i ] ) ;
}
}
/ * l e t t m p = d o c u m e n t . c r e a t e E l e m e n t ( " d i v " ) ;
@ -421,7 +448,7 @@ At some point ( I tried to figure it out, but can say exactly after how many art
if ( hsp )
c . domNode . removeChild ( hsp ) ;
let tmp = document . createElement ( "div" ) ;
/ * l e t t m p = d o c u m e n t . c r e a t e E l e m e n t ( " d i v " ) ;
tmp . innerHTML = reply [ 'headlines' ] [ 'content' ] ;
dojo . parser . parse ( tmp ) ;
@ -433,6 +460,14 @@ At some point ( I tried to figure it out, but can say exactly after how many art
this . loaded _article _ids . push ( row . id ) ;
}
} * /
if ( typeof reply [ 'headlines' ] [ 'content' ] == 'string' ) {
$ ( "headlines-frame" ) . innerHTML = reply [ 'headlines' ] [ 'content' ] ;
} else {
for ( let i = 0 ; i < reply [ 'headlines' ] [ 'content' ] . length ; i ++ ) {
this . renderHeadline ( reply [ 'headlines' ] , reply [ 'headlines' ] [ 'content' ] [ i ] ) ;
}
}
if ( ! hsp ) {