@@ -629,15 +629,23 @@ function idleStateChange() {
629629 updateTitleReminder ( ) ;
630630}
631631
632- function setNeedRefresh ( ) {
632+ function setRefreshModal ( status ) {
633633 $ ( '#refreshModal' ) . modal ( 'show' ) ;
634+ $ ( '#refreshModal' ) . find ( '.modal-body > div' ) . hide ( ) ;
635+ $ ( '#refreshModal' ) . find ( '.' + status ) . show ( ) ;
636+ }
637+
638+ function setNeedRefresh ( ) {
634639 needRefresh = true ;
635640 editor . setOption ( 'readOnly' , true ) ;
636641 socket . disconnect ( ) ;
637642 showStatus ( statusType . offline ) ;
638643}
639644
640- loginStateChangeEvent = setNeedRefresh ;
645+ loginStateChangeEvent = function ( ) {
646+ setRefreshModal ( 'user-state-changed' ) ;
647+ setNeedRefresh ( ) ;
648+ } ;
641649
642650//visibility
643651var wasFocus = false ;
@@ -1978,9 +1986,8 @@ socket.on('error', function (data) {
19781986} ) ;
19791987var retryOnDisconnect = false ;
19801988var retryTimer = null ;
1981- socket . on ( 'maintenance' , function ( data ) {
1982- if ( data == version )
1983- retryOnDisconnect = true ;
1989+ socket . on ( 'maintenance' , function ( ) {
1990+ retryOnDisconnect = true ;
19841991} ) ;
19851992socket . on ( 'disconnect' , function ( data ) {
19861993 showStatus ( statusType . offline ) ;
@@ -1992,7 +1999,7 @@ socket.on('disconnect', function (data) {
19921999 editor . setOption ( 'readOnly' , true ) ;
19932000 if ( retryOnDisconnect && ! retryTimer ) {
19942001 retryTimer = setInterval ( function ( ) {
1995- socket . connect ( ) ;
2002+ if ( ! needRefresh ) socket . connect ( ) ;
19962003 } , 1000 ) ;
19972004 }
19982005} ) ;
@@ -2013,8 +2020,14 @@ socket.on('connect', function (data) {
20132020 socket . id = socket . nsp + '#' + socket . id ;
20142021} ) ;
20152022socket . on ( 'version' , function ( data ) {
2016- if ( data != version )
2017- setNeedRefresh ( ) ;
2023+ if ( version != data . version ) {
2024+ if ( version < data . minimumCompatibleVersion ) {
2025+ setRefreshModal ( 'incompatible-version' ) ;
2026+ setNeedRefresh ( ) ;
2027+ } else {
2028+ setRefreshModal ( 'new-version' ) ;
2029+ }
2030+ }
20182031} ) ;
20192032function updateLastInfo ( data ) {
20202033 //console.log(data);
0 commit comments