Skip to content

Commit 42bdaff

Browse files
authored
Merge pull request phpvirtualbox#355 from phpvirtualbox/jquery_upgrades
Fix incompatibilities with new jQuery
2 parents 6cc300e + d8e6d1c commit 42bdaff

File tree

3 files changed

+44
-45
lines changed

3 files changed

+44
-45
lines changed

js/chooser.js

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

js/dialogs.js

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,8 +1301,9 @@ function vboxVMsettingsDialog(vm,pane) {
13011301
*/
13021302
var presaveCallback = function() {
13031303

1304-
if(!$('#vboxSettingsDialog').data('vboxEncSettingsChanged'))
1305-
return true;
1304+
if(!$('#vboxSettingsDialog').data('vboxEncSettingsChanged')) {
1305+
return true;
1306+
}
13061307

13071308
var encMediaSettings = $.Deferred();
13081309

@@ -1433,15 +1434,13 @@ function vboxVMsettingsDialog(vm,pane) {
14331434

14341435
// Always run this
14351436
.always(function(){
1436-
14371437
// No longer watch for changed VM settings
14381438
$('#vboxPane').unbind('vboxEvents',machineSettingsChanged);
14391439

14401440
})
14411441

14421442
// Run this when "Save" is clicked
14431443
.done(function() {
1444-
14451444
var loader = new vboxLoader();
14461445
var sdata = $.extend($('#vboxSettingsDialog').data('vboxMachineData'),{'clientConfig':$('#vboxPane').data('vboxConfig')});
14471446
loader.add('machineSave',function(){return;},sdata);
@@ -1645,29 +1644,37 @@ function vboxSettingsDialog(title,panes,data,pane,icon,langContext,presave) {
16451644
/* Tell dialog that data is loaded */
16461645
$('#vboxSettingsDialog').trigger('dataLoaded');
16471646

1648-
var buttons = { };
1649-
buttons[trans('OK','QIMessageBox')] = function() {
1647+
var buttons = [
1648+
{
1649+
text: trans('OK','QIMessageBox'),
1650+
click: function() {
16501651

1651-
$(this).trigger('save');
1652+
$(this).trigger('save');
1653+
1654+
// Does some settings pane need to do some presave
1655+
// work? (ask questions, run wizard, some other asynch task)
1656+
var promise = true;
1657+
if(presave) {
1658+
promise = presave();
1659+
}
1660+
var dlg = this;
1661+
$.when(promise).done(() => {
1662+
results.resolve();
1663+
}).then(() => {
1664+
$(dlg).trigger('close').empty().remove();
1665+
$(document).trigger('click');
1666+
});
1667+
}
1668+
}, {
1669+
text: trans('Cancel','QIMessageBox'),
1670+
click: function() {
1671+
results.reject();
1672+
$(this).trigger('close').empty().remove();
1673+
$(document).trigger('click');
1674+
}
1675+
}
1676+
];
16521677

1653-
// Does some settings pane need to do some presave
1654-
// work? (ask questions, run wizard, some other asynch task)
1655-
var promise = true;
1656-
if(presave) {
1657-
promise = presave();
1658-
}
1659-
var dlg = this;
1660-
$.when(promise).done(function() {
1661-
results.resolve(true);
1662-
$(dlg).trigger('close').empty().remove();
1663-
$(document).trigger('click');
1664-
});
1665-
};
1666-
buttons[trans('Cancel','QIMessageBox')] = function() {
1667-
results.reject();
1668-
$(this).trigger('close').empty().remove();
1669-
$(document).trigger('click');
1670-
};
16711678

16721679
// Init with "nothing has changed yet"
16731680
$('#vboxSettingsDialog').data('formDataChanged', false);

js/eventlistener.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ var vboxEventListener = {
127127
},
128128

129129
/**
130-
* Subscribe to a single machine's events. This should happen
130+
* Subscribe to a single machine's events.
131131
*
132132
* @param {String} vmid - ID of VM to subscribe to
133133
*/

0 commit comments

Comments
 (0)