@@ -501,8 +501,7 @@ var vboxChooser = {
501501 if ( ! vmUpdate ) return ;
502502
503503 // New VM
504- if ( newVM ) {
505-
504+ if ( newVM === true ) {
506505 // New VM.. add it to groups..
507506 if ( ! vmUpdate . groups || vmUpdate . groups . length == 0 )
508507 vmUpdate . groups = [ '/' ] ;
@@ -516,16 +515,14 @@ var vboxChooser = {
516515
517516 // Existing VM. Replace existing elements
518517 } else {
519-
520518 $ ( '#' + vboxChooser . _anchorid ) . find ( 'table.vboxChooserItem-' + vboxChooser . _anchorid + '-' + vmUpdate . id ) . each ( function ( i , elm ) {
521-
519+
522520 var newHTML = vboxChooser . vmHTML ( vmUpdate ) ;
523521 if ( $ ( elm ) . hasClass ( 'vboxListItemSelected' ) ) {
524522 $ ( newHTML ) . addClass ( 'vboxListItemSelected' ) . removeClass ( 'vboxHover' ) ;
525523 }
526- $ ( elm ) . children ( ) . replaceWith ( newHTML . children ( ) ) ;
524+ $ ( elm ) . empty ( ) . append ( newHTML . children ( ) ) ;
527525 } ) ;
528-
529526 }
530527
531528 } ,
@@ -2183,14 +2180,13 @@ $(document).ready(function(){
21832180 // Event list queue
21842181 } ) . on ( 'vboxEvents' , function ( e , eventList ) {
21852182
2186- var redrawVMs = [ ] ;
2183+ const redrawVMs = new Set ( ) ;
21872184 var sortGroups = [ ] ;
21882185 var groupsChanged = false ;
21892186 var selectedChanged = false ;
21902187 var resizeElements = false ;
21912188
21922189 for ( var i = 0 ; i < eventList . length ; i ++ ) {
2193-
21942190 switch ( eventList [ i ] . eventType ) {
21952191
21962192 ////////////////////////////////
@@ -2212,7 +2208,7 @@ $(document).ready(function(){
22122208 break ;
22132209 }
22142210
2215- redrawVMs [ redrawVMs . length ] = vmid ;
2211+ redrawVMs . add ( vmid ) ;
22162212
22172213 // Make sure VM has root group at least
22182214 if ( data . groups . length == 0 ) data . groups = [ '/' ] ;
@@ -2272,7 +2268,7 @@ $(document).ready(function(){
22722268 case 'OnSnapshotTaken' :
22732269 case 'OnSnapshotRestored' :
22742270 case 'OnSnapshotChanged' :
2275- redrawVMs [ redrawVMs . length ] = eventList [ i ] . machineId ;
2271+ redrawVMs . add ( eventList [ i ] . machineId ) ;
22762272 break ;
22772273
22782274 /////////////////////////////////////
@@ -2370,7 +2366,7 @@ $(document).ready(function(){
23702366
23712367 // redraw when custom icon changes
23722368 case 'phpvb/icon' :
2373- redrawVMs [ redrawVMs . length ] = eventList [ i ] . machineId ;
2369+ redrawVMs . add ( eventList [ i ] . machineId ) ;
23742370 break ;
23752371 }
23762372 }
@@ -2383,7 +2379,7 @@ $(document).ready(function(){
23832379 ///////////////////////////////////////
23842380 case 'OnSessionStateChanged' :
23852381 case 'OnMachineStateChanged' :
2386- redrawVMs [ redrawVMs . length ] = eventList [ i ] . machineId ;
2382+ redrawVMs . add ( eventList [ i ] . machineId ) ;
23872383 break ;
23882384
23892385 } // </ switch eventType >>
@@ -2393,17 +2389,13 @@ $(document).ready(function(){
23932389
23942390 // Now redraw each VM
23952391 ///////////////////////////
2396- var redrawn = { } ;
23972392 var updateMenus = false ;
2398- for ( var i = 0 ; i < redrawVMs . length ; i ++ ) {
2399-
2400- if ( redrawn [ redrawVMs [ i ] ] ) continue ;
2401- redrawn [ redrawVMs [ i ] ] = true ;
2393+ for ( const vmId of redrawVMs ) {
24022394
2403- vboxChooser . updateVMElement ( vboxVMDataMediator . getVMData ( redrawVMs [ i ] ) ) ;
2395+ vboxChooser . updateVMElement ( vboxVMDataMediator . getVMData ( vmId ) ) ;
24042396
24052397 // Update menus if the VM is selected
2406- updateMenus = ( updateMenus || vboxChooser . isVMSelected ( redrawVMs [ i ] ) ) ;
2398+ updateMenus = ( updateMenus || vboxChooser . isVMSelected ( vmId ) ) ;
24072399
24082400 }
24092401
0 commit comments