@ -45,9 +45,11 @@ var context;
} ( ) ) ;
//</Global context>
function badAjax ( ) {
function badAjax ( reload ) {
openNotification ( context . i18n . notif _request _failed , 'bad' ) ;
location . reload ( ) ;
if ( reload ) {
setTimeout ( function ( ) { location . reload ( ) ; } , 2000 ) ;
}
return true ;
}
@ -168,19 +170,19 @@ function send_mark_read_queue(queue, asRead, callback) {
req . open ( 'POST' , '.?c=entry&a=read' + ( asRead ? '' : '&is_read=0' ) , true ) ;
req . responseType = 'json' ;
req . onerror = function ( e ) {
openNotification ( context . i18n . notif _request _failed , 'bad' ) ;
for ( let i = queue . length - 1 ; i >= 0 ; i -- ) {
delete pending _entries [ 'flux_' + queue [ i ] ] ;
}
if ( this . status == 403 ) {
badAjax ( ) ;
}
badAjax ( this . status == 403 ) ;
} ;
req . onload = function ( e ) {
if ( this . status != 200 ) {
return req . onerror ( e ) ;
}
const json = xmlHttpRequestJson ( this ) ;
if ( ! json ) {
return req . onerror ( e ) ;
}
for ( let i = queue . length - 1 ; i >= 0 ; i -- ) {
const div = document . getElementById ( 'flux_' + queue [ i ] ) ,
myIcons = context . icons ;
@ -238,10 +240,11 @@ function send_mark_queue_tick(callback) {
mark _read _queue = [ ] ;
send _mark _read _queue ( queue , true , callback ) ;
}
var delayedFunction = send _mark _queue _tick ;
function delayedClick ( a ) {
if ( a ) {
send _mark _queue _tick ( function ( ) { a . click ( ) ; } ) ;
delayedFunction ( function ( ) { a . click ( ) ; } ) ;
}
}
@ -288,17 +291,17 @@ function mark_favorite(div) {
req . open ( 'POST' , url , true ) ;
req . responseType = 'json' ;
req . onerror = function ( e ) {
openNotification ( context . i18n . notif _request _failed , 'bad' ) ;
delete pending _entries [ div . id ] ;
if ( this . status == 403 ) {
badAjax ( ) ;
}
badAjax ( this . status == 403 ) ;
} ;
req . onload = function ( e ) {
if ( this . status != 200 ) {
return req . onerror ( e ) ;
}
const json = xmlHttpRequestJson ( this ) ;
if ( ! json ) {
return req . onerror ( e ) ;
}
let inc = 0 ;
if ( div . classList . contains ( 'favorite' ) ) {
div . classList . remove ( 'favorite' ) ;
@ -945,9 +948,7 @@ function init_stream(stream) {
req . responseType = 'json' ;
req . onerror = function ( e ) {
checkboxTag . checked = ! isChecked ;
if ( this . status == 403 ) {
badAjax ( ) ;
}
badAjax ( this . status == 403 ) ;
} ;
req . onload = function ( e ) {
if ( this . status != 200 ) {
@ -1014,6 +1015,9 @@ function loadDynamicTags(div) {
return req . onerror ( e ) ;
}
const json = xmlHttpRequestJson ( this ) ;
if ( ! json ) {
return req . onerror ( e ) ;
}
let html = '<li class="item"><label><input class="checkboxTag" name="t_0" type="checkbox" /> <input type="text" name="newTag" /></label></li>' ;
if ( json && json . length ) {
for ( let i = 0 ; i < json . length ; i ++ ) {
@ -1039,7 +1043,7 @@ function updateFeed(feeds, feeds_count) {
req . open ( 'POST' , feed . url , true ) ;
req . onloadend = function ( e ) {
if ( this . status != 200 ) {
return badAjax ( ) ;
return badAjax ( false ) ;
}
feed _processed ++ ;
const div = document . getElementById ( 'actualizeProgress' ) ;
@ -1050,7 +1054,7 @@ function updateFeed(feeds, feeds_count) {
const req2 = new XMLHttpRequest ( ) ;
req2 . open ( 'POST' , './?c=feed&a=actualize&id=-1&ajax=1' , true ) ;
req2 . onloadend = function ( e ) {
location . reload ( ) ;
delayedFunction ( function ( ) { location . reload ( ) ; } ) ;
} ;
req2 . setRequestHeader ( 'Content-Type' , 'application/json' ) ;
req2 . send ( JSON . stringify ( {
@ -1082,9 +1086,12 @@ function init_actualize() {
req . responseType = 'json' ;
req . onload = function ( e ) {
if ( this . status != 200 ) {
return badAjax ( ) ;
return badAjax ( false ) ;
}
const json = xmlHttpRequestJson ( this ) ;
if ( ! json ) {
return badAjax ( false ) ;
}
if ( auto && json . feeds . length < 1 ) {
auto = false ;
context . ajax _loading = false ;
@ -1192,10 +1199,12 @@ function notifs_html5_show(nb) {
} ) ;
notification . onclick = function ( ) {
location . reload ( ) ;
window . focus ( ) ;
notification . close ( ) ;
} ;
delayedFunction ( function ( ) {
location . reload ( ) ;
window . focus ( ) ;
notification . close ( ) ;
} ) ;
} ;
if ( context . html5 _notif _timeout !== 0 ) {
setTimeout ( function ( ) {
@ -1219,6 +1228,9 @@ function refreshUnreads() {
req . responseType = 'json' ;
req . onload = function ( e ) {
const json = xmlHttpRequestJson ( this ) ;
if ( ! json ) {
return badAjax ( false ) ;
}
const isAll = document . querySelector ( '.category.all.active' ) ;
let new _articles = false ;
@ -1413,6 +1425,12 @@ function init_normal() {
init _shortcuts ( ) ;
init _actualize ( ) ;
faviconNbUnread ( ) ;
window . onbeforeunload = function ( e ) {
if ( mark _read _queue && mark _read _queue . length > 0 ) {
return false ;
}
} ;
}
function init _beforeDOM ( ) {