Skip to content

Commit a00c8e4

Browse files
authored
Merge pull request phpvirtualbox#382 from phpvirtualbox/7.2-dev
Release 7.2-3
2 parents 9f3d8d9 + 20f718d commit a00c8e4

47 files changed

Lines changed: 1309 additions & 558 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
-------------------------------------
2+
7.2-3 2026-04-05
3+
-------------------------------------
4+
Update jQuery to 4.0.0 and jQuery-UI to 1.14.2
5+
Update jQuery plugins to the latest versions
6+
Fix deprecated jQuery usage
7+
Fix dialogs buttons not updating
8+
19
-------------------------------------
210
7.2-2 2025-11-01
311
-------------------------------------

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ Web interface for Oracle VirtualBox (https://www.virtualbox.org/)
44

55
## Roadmap
66

7-
- [ ] Ensure feature parity with VirtualBox 7.2 minus Oracle Cloud features
8-
- [x] PHP 8.4 compatibility
9-
- [x] jQuery and jQuery UI updates
10-
- [ ] Create a release process where javascript and CSS are minified and releses do not contain unnecessary build artifacts
7+
- Ensure feature parity with VirtualBox 7.2 minus Oracle Cloud features
8+
- PHP 8.4 compatibility
9+
- jQuery and jQuery UI updates
1110

1211
## Project history and credits
1312

endpoints/lib/config.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
/*
1515
* This version of phpVirtualBox
1616
*/
17-
define('PHPVBOX_VER', '7.2-1');
17+
define('PHPVBOX_VER', '7.2-3');
1818

1919
class phpVBoxConfigClass {
2020

endpoints/lib/vboxServiceWrappers.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public function __construct($connection, $handle)
235235

236236
public function __toString()
237237
{
238-
return (string)$this->NameMap[$this->_handle];
238+
return (string)$this->NameMap[$this->_handle ?? ''];
239239
}
240240
}
241241

index.html

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,11 @@
2626
<link rel="stylesheet" type="text/css" href="css/layout.css"/>
2727

2828
<!-- External or jQuery related scripts -->
29-
<script type="text/javascript" src="js/jquery-3.7.1.min.js"></script>
30-
<script type="text/javascript" src="js/jquery-ui-1.14.1.min.js"></script>
31-
<script type="text/javascript" src="js/jquery.tipped-2.1b.min.js"></script>
32-
<script type="text/javascript" src="js/jquery.scrollTo-min.js"></script>
33-
<script type="text/javascript" src="js/jquery.jec-1.3.1.js"></script>
34-
35-
<!-- Oracle RDP Control -->
36-
<script type="text/javascript" src="rdpweb/webclient.js"></script>
37-
<script type="text/javascript" src="rdpweb/swfobject.js"></script>
29+
<script type="text/javascript" src="js/jquery-4.0.0.min.js"></script>
30+
<script type="text/javascript" src="js/jquery-ui-1.14.2.min.js"></script>
31+
<script type="text/javascript" src="js/jquery.tipped-2.2b.js"></script>
32+
<script type="text/javascript" src="js/jquery.scrollTo-2.1.3.js"></script>
33+
<script type="text/javascript" src="js/jquery.jec-1.4.0.js"></script>
3834

3935
<!-- Internal / project related scripts -->
4036
<script type="text/javascript" src="endpoints/config.js"></script>
@@ -259,7 +255,7 @@
259255
/*
260256
* Resize panes when the window changes sizes
261257
*/
262-
$(window).resize(function(){
258+
$(window).on('resize', function(){
263259

264260
// Hide
265261
$('#vboxChooserResizePane').children().children().css({'display':'none'});
@@ -376,8 +372,8 @@
376372
$('#vboxLogin').find('input[name=password]').val('');
377373
$('#vboxLogin').dialog('open');
378374

379-
if(!$('#vboxLogin').find('input[name=username]').val()) $('#vboxLogin').find('input[name=username]').focus();
380-
else $('#vboxLogin').find('input[name=password]').focus();
375+
if(!$('#vboxLogin').find('input[name=username]').val()) $('#vboxLogin').find('input[name=username]').trigger('focus');
376+
else $('#vboxLogin').find('input[name=password]').trigger('focus');
381377

382378
// Display error if we tried to log in
383379
if(tried) {
@@ -412,7 +408,7 @@
412408
if($.browser.webkit) heightadd = 5;
413409
else heightadd = 0;
414410
$('#vboxLogin').dialog({'closeOnEscape':false,'width':300,'height':'auto','buttons':buttons,'modal':true,'autoOpen':false,'classes':{'ui-dialog':'vboxDialogContent'},'title':'<img src="images/vbox/OSE/about_16px.png" class="vboxDialogTitleIcon" /> phpVirtualBox :: ' + trans('Log in','UIUsers')});
415-
$('#vboxLogin').find('input[name=username]').first().focus();
411+
$('#vboxLogin').find('input[name=username]').first().trigger('focus');
416412

417413
// Trick loader into not showing root pane again
418414
loader.hideRoot = false;

js/chooser.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ var vboxChooser = {
9090
$(this).removeClass('vboxChooserDropTargetHoverRoot');
9191
});
9292

93-
$(window).resize(function(){
93+
$(window).trigger('resize', function(){
9494

9595
// Get anchor id and add / remove class
9696
var w = parseInt($(vboxChooser._anchor).innerWidth());
@@ -753,7 +753,7 @@ var vboxChooser = {
753753
});
754754

755755
// Open settings on dblclick
756-
$(tbl).dblclick(function(){
756+
$(tbl).on('dblclick', function(){
757757
if(vboxChooser._vmContextMenuObj.menuItems['settings'].enabled())
758758
vboxChooser._vmContextMenuObj.menuItems['settings'].click();
759759
});
@@ -1593,7 +1593,7 @@ var vboxChooser = {
15931593
)
15941594

15951595
);
1596-
$(el).children('div.vboxChooserGroupHeader').children('form').children('input').focus().select().blur(renameGroup);
1596+
$(el).children('div.vboxChooserGroupHeader').children('form').children('input').trigger('focus').trigger('select').on('blur', renameGroup);
15971597

15981598
},
15991599

@@ -1885,7 +1885,7 @@ var vboxChooser = {
18851885
).append(
18861886
$('<div />').addClass('vboxChooserGroupHeader').css({'display':(first ? 'none' : '')})
18871887
.attr({'title':gname})
1888-
.dblclick(function() {
1888+
.on('dblclick', function() {
18891889

18901890
// Already collapsed?
18911891
var collapsed = $(this).closest('div.vboxChooserGroup').hasClass('vboxVMGroupCollapsed');
@@ -1950,18 +1950,18 @@ var vboxChooser = {
19501950
)
19511951
.append(
19521952
$('<span />').addClass('vboxChooserGroupNameArrowLeft vboxChooserGroupNameArrowCollapse vboxArrowImage')
1953-
.mousedown(function(e){
1953+
.on('mousedown', function(e){
19541954
e.stopPropagation();
19551955
e.preventDefault();
19561956
return false;
1957-
}).mouseup(function(){
1957+
}).on('mouseup', function(){
19581958
$(this).closest('div.vboxChooserGroupHeader').trigger('dblclick');
19591959
})
19601960

19611961
).append(
19621962

19631963
$('<span />').addClass('vboxChooserGroupNameArrowLeft vboxChooserGroupShowOnlyBack vboxArrowImage')
1964-
.click(function(e) {
1964+
.on('click', function(e) {
19651965
e.stopPropagation();
19661966
e.preventDefault();
19671967
vboxChooser.showOnlyGroupElm();
@@ -1974,7 +1974,7 @@ var vboxChooser = {
19741974
"<span class='vboxChooserGroupCounts' />"
19751975
).append(
19761976
$('<span />').addClass('vboxChooserGroupShowOnly vboxArrowImage')
1977-
.click(function(e){
1977+
.on('click', function(e){
19781978
e.stopPropagation();
19791979
e.preventDefault();
19801980
vboxChooser.showOnlyGroupElm($(this).closest('div.vboxChooserGroup'));

js/dialogs.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ function vboxWizardNewVMDialog(vmgroup) {
418418
disk = $(self.form)[0].newVMDiskSelect.options[$(self.form)[0].newVMDiskSelect.selectedIndex].value;
419419
disk = vboxMedia.getMediumById(disk).location;
420420
}
421-
var name = jQuery.trim($(self.form).find('[name=newVMName]').val());
421+
var name = String($(self.form).find('[name=newVMName]').val()).trim();
422422
var ostype = $(self.form).find('[name=newVMOSType]').val();
423423
var mem = parseInt($(self.form).find('[name=wizardNewVMSizeValue]').val());
424424

@@ -451,7 +451,7 @@ function vboxWizardNewVMDialog(vmgroup) {
451451
};
452452

453453
// Name must exist
454-
if(!jQuery.trim($(self.form).find('[name=newVMName]').val())) {
454+
if(!String($(self.form).find('[name=newVMName]').val()).trim()) {
455455
$(self.form).find('[name=newVMName]').addClass('vboxRequired');
456456
return;
457457
}
@@ -485,7 +485,7 @@ function vboxWizardNewVMDialog(vmgroup) {
485485
// Recommended size
486486
var size = newVMOSTypesObj[$(self.form).find('[name=newVMOSType]').val()].recommendedHDD;
487487

488-
$.when(new vboxWizardNewHDDialog({'name':jQuery.trim($(self.form).find('[name=newVMName]').val()),'size':size,'group':vmgroup}).run())
488+
$.when(new vboxWizardNewHDDialog({'name':String($(self.form).find('[name=newVMName]').val()).trim(),'size':size,'group':vmgroup}).run())
489489
.done(function(med){
490490

491491
$(self.form).find('[name=newVMDisk]').eq(2).trigger('click').prop('checked',true);
@@ -571,7 +571,7 @@ function vboxWizardCloneVMDialog(args) {
571571
this.onFinish = function() {
572572

573573
// Get parameters
574-
var name = jQuery.trim($(self.form).find('[name=machineCloneName]').val());
574+
var name = String($(self.form).find('[name=machineCloneName]').val()).trim();
575575
var src = self.args.vm.id;
576576
var snapshot = self.args.snapshot;
577577
var allNetcards = $(self.form).find('[name=vboxCloneReinitNetwork]').prop('checked');
@@ -968,7 +968,7 @@ function vboxWizardCopyHDDialog(suggested) {
968968

969969
var fsplit = $(self.form).find('[name=newHardDiskSplit]').prop('checked') && vboxMedia.formatSupportsSplit(format);
970970

971-
var loc = jQuery.trim($(self.form).find('[name=wizardCopyHDLocation]').val());
971+
var loc = String($(self.form).find('[name=wizardCopyHDLocation]').val()).trim();
972972
if(!loc) {
973973
$(self.form).find('[name=wizardCopyHDLocation]').addClass('vboxRequired');
974974
return;
@@ -1309,7 +1309,7 @@ function vboxVMsettingsDialog(vm,pane) {
13091309

13101310
// Validate
13111311
if(!vboxSettingsGeneralValidate()) {
1312-
$('#vboxSettingsMenuList').children('li:eq(0)').first().click();
1312+
$('#vboxSettingsMenuList').children('li:eq(0)').first().trigger('click');
13131313
$('#vboxSettingsPane-General').tabs('option','active', 3);
13141314
encMediaSettings.reject();
13151315
return encMediaSettings;
@@ -1435,7 +1435,7 @@ function vboxVMsettingsDialog(vm,pane) {
14351435
// Always run this
14361436
.always(function(){
14371437
// No longer watch for changed VM settings
1438-
$('#vboxPane').unbind('vboxEvents',machineSettingsChanged);
1438+
$('#vboxPane').off('vboxEvents',machineSettingsChanged);
14391439

14401440
})
14411441

@@ -1610,7 +1610,7 @@ function vboxSettingsDialog(title,panes,data,pane,icon,langContext,presave) {
16101610
if(panes[i].disabled) continue;
16111611

16121612
// Menu item
1613-
$('<li />').html('<div><img src="images/vbox/'+panes[i].icon+'_16px.png" /></div> <div>'+trans(panes[i].label,langContext)+'</div>').data(panes[i]).click(function(){
1613+
$('<li />').html('<div><img src="images/vbox/'+panes[i].icon+'_16px.png" /></div> <div>'+trans(panes[i].label,langContext)+'</div>').data(panes[i]).on('click', function(){
16141614

16151615
$('#vboxSettingsTitle').html(trans($(this).data('label'),langContext));
16161616

@@ -1709,7 +1709,7 @@ function vboxSettingsDialog(title,panes,data,pane,icon,langContext,presave) {
17091709
}
17101710
i-=offset;
17111711
if(i >= panes.length) i = 0;
1712-
$('#vboxSettingsMenuList').children('li:eq('+i+')').first().click().each(function(){
1712+
$('#vboxSettingsMenuList').children('li:eq('+i+')').first().trigger('click').each(function(){
17131713
if(tab !== undefined) {
17141714
// Check for out of scope tab
17151715
tab = Math.min(($('#vboxSettingsPane-'+$(this).data('name')).children('ul').first().children().length-1), parseInt(tab));

js/jquery-3.7.1.min.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

js/jquery-4.0.0.min.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/jquery-ui-1.14.1.min.js

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)