@ -46,9 +46,8 @@ function catchup_feed(feed_id, callback) {
}
}
}
}
function get_visible _article _ids ( ) {
function parse_article _elements _for _ids ( elems ) {
try {
try {
var elems = $ ( "headlines-content" ) . getElementsByTagName ( "LI" ) ;
var ids = [ ] ;
var ids = [ ] ;
for ( var i = 0 ; i < elems . length ; i ++ ) {
for ( var i = 0 ; i < elems . length ; i ++ ) {
@ -59,6 +58,28 @@ function get_visible_article_ids() {
return ids ;
return ids ;
} catch ( e ) {
exception _error ( "parse_article_elements_for_ids" , e ) ;
}
}
function get _selected _article _ids ( ) {
try {
var elems = $$ ( '#headlines-content li.selected' ) ;
return parse _article _elements _for _ids ( elems ) ;
} catch ( e ) {
exception _error ( "get_visible_article_ids" , e ) ;
}
}
function get _visible _article _ids ( ) {
try {
var elems = $ ( "headlines-content" ) . getElementsByTagName ( "LI" ) ;
return parse _article _elements _for _ids ( elems ) ;
} catch ( e ) {
} catch ( e ) {
exception _error ( "get_visible_article_ids" , e ) ;
exception _error ( "get_visible_article_ids" , e ) ;
}
}
@ -67,9 +88,15 @@ function get_visible_article_ids() {
function catchup _visible _articles ( callback ) {
function catchup _visible _articles ( callback ) {
try {
try {
var ids = get _visible _article _ids ( ) ;
var ids = get _selected _article _ids ( ) ;
if ( 0 == ids . length ) {
ids = get _visible _article _ids ( ) ;
ntext = [ "Mark %d displayed article as read?" , "Mark %d displayed articles as read?" ] ;
} else {
ntext = [ "Mark %d selected article as read?" , "Mark %d selected articles as read?" ] ;
}
if ( confirm ( ngettext ( "Mark %d displayed article as read?" , "Mark %d displayed articles as read?" , ids . length ) . replace ( "%d" , ids . length ) ) ) {
if ( confirm ( ngettext ( ntext [ 0 ] , ntext [ 1 ] , ids . length ) . replace ( "%d" , ids . length ) ) ) {
var query = "op=rpc&method=catchupSelected" +
var query = "op=rpc&method=catchupSelected" +
"&cmode=0&ids=" + param _escape ( ids ) ;
"&cmode=0&ids=" + param _escape ( ids ) ;