summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Moore <imoore76@yahoo.com>2015-12-07 08:47:17 -0500
committerIan Moore <imoore76@yahoo.com>2015-12-07 08:47:17 -0500
commite3a53018b9fb292654a30fe8a4115ed685231614 (patch)
treee1f08f80d94d0440d9df8502d9da332576ac9b00
parent94e17f57f3f16628f140cdd5fd5ca00806ca208f (diff)
downloadphpvirtualbox-e3a53018b9fb292654a30fe8a4115ed685231614.zip
phpvirtualbox-e3a53018b9fb292654a30fe8a4115ed685231614.tar.gz
phpvirtualbox-e3a53018b9fb292654a30fe8a4115ed685231614.tar.bz2
See CHANGELOG
-rw-r--r--CHANGELOG.txt12
-rw-r--r--endpoints/jqueryFileTree.php17
-rw-r--r--endpoints/lib/utils.php36
-rw-r--r--endpoints/lib/vboxconnector.php1
-rw-r--r--js/jquery.projectPlugins.js3
-rw-r--r--js/phpvirtualbox.js22
-rw-r--r--panes/tabVMDetails.html26
7 files changed, 72 insertions, 45 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 2257ff2..8ab6766 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,6 +1,18 @@
-------------------------------------
5.0-4
-------------------------------------
+Fixed bug in file / folder browser when $browserRestrictFolders is
+set.
+https://sourceforge.net/p/phpvirtualbox/bugs/50/
+
+Fixed bug in host network interface sorting.
+https://sourceforge.net/p/phpvirtualbox/bugs/36/
+
+Fixed bug where phpVirtualBox installations on the same server may
+share session cookies in certain PHP configurations.
+
+Fixed bug where noPreview=true; was ignored in settings.
+https://sourceforge.net/p/phpvirtualbox/bugs/38/
-------------------------------------
5.0-3 2015-09-09
diff --git a/endpoints/jqueryFileTree.php b/endpoints/jqueryFileTree.php
index 016a29d..7c88428 100644
--- a/endpoints/jqueryFileTree.php
+++ b/endpoints/jqueryFileTree.php
@@ -172,17 +172,24 @@ if($request['dir'] == DSEP && count($allowed_folders)) {
*/
if((strtoupper($request['dir']) != strtoupper($f)) && strpos(strtoupper($request['dir']),strtoupper($f)) === 0) {
-
// List entries in this folder
- $path = explode(DSEP,substr($request['dir'],strlen($f)));
+ $path = explode(DSEP, substr($request['dir'],strlen($f)));
- // Folder entry
- array_push($returnData, getdir($f, $request['dirsOnly'], $path));
+ if($path[0] == '') {
+ array_shift($path);
+ }
- } else {
+ $folder_entry = folder_entry($f, true);
+
+ $folder_entry['children'] = getdir($f, $request['dirsOnly'], $path);
+ $folder_entry['expanded'] = true;
+ array_push($returnData, $folder_entry);
+
+ } else {
array_push($returnData, folder_entry($f,true));
}
+
}
/* Just get full path */
diff --git a/endpoints/lib/utils.php b/endpoints/lib/utils.php
index e324c55..703bdb8 100644
--- a/endpoints/lib/utils.php
+++ b/endpoints/lib/utils.php
@@ -1,13 +1,13 @@
<?php
/**
* Common PHP utilities.
- *
+ *
* @author Ian Moore (imoore76 at yahoo dot com)
* @copyright Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
* @version $Id: utils.php 592 2015-04-12 19:53:44Z imoore76 $
* @see phpVBoxConfigClass
* @package phpVirtualBox
- *
+ *
*/
require_once(dirname(__FILE__).'/config.php');
@@ -19,15 +19,15 @@ require_once(dirname(__FILE__).'/config.php');
* @uses $_SESSION
*/
function session_init($keepopen = false) {
-
+
$settings = new phpVBoxConfigClass();
-
+
// Sessions provided by auth module?
if(@$settings->auth->capabilities['sessionStart']) {
call_user_func(array($settings->auth, $settings->auth->capabilities['sessionStart']), $keepopen);
return;
}
-
+
// No session support? No login...
if(@$settings->noAuth || !function_exists('session_start')) {
global $_SESSION;
@@ -37,29 +37,29 @@ function session_init($keepopen = false) {
return;
}
- // start session
- session_start();
-
- // Session is auto-started by PHP?
+ // Session not is auto-started by PHP
if(!ini_get('session.auto_start')) {
-
+
ini_set('session.use_trans_sid', 0);
ini_set('session.use_only_cookies', 1);
-
+
// Session path
if(isset($settings->sessionSavePath)) {
session_save_path($settings->sessionSavePath);
}
-
- session_name((isset($settings->session_name) ? $settings->session_name : md5('phpvbx'.$_SERVER['DOCUMENT_ROOT'].$_SERVER['HTTP_USER_AGENT'])));
+
+ if(isset($settings->session_name)) {
+ $session_name = $settings->session_name;
+ } else {
+ $session_name = md5($_SERVER['DOCUMENT_ROOT'].$_SERVER['HTTP_USER_AGENT'].dirname(__FILE__));
+ }
+ session_name($session_name);
session_start();
}
-
-
+
if(!$keepopen)
session_write_close();
-
-
+
}
@@ -69,7 +69,7 @@ function session_init($keepopen = false) {
* @return array
*/
function clean_request() {
-
+
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$json = json_decode(file_get_contents('php://input'), true);
if(!is_array($json))
diff --git a/endpoints/lib/vboxconnector.php b/endpoints/lib/vboxconnector.php
index c1d6cd7..d33825c 100644
--- a/endpoints/lib/vboxconnector.php
+++ b/endpoints/lib/vboxconnector.php
@@ -4234,6 +4234,7 @@ class vboxconnector {
'audioDriver' => (string)$m->audioAdapter->audioDriver,
),
'RTCUseUTC' => $m->RTCUseUTC,
+ 'EffectiveParavirtProvider' => (string)$m->getEffectiveParavirtProvider(),
'HWVirtExProperties' => array(
'Enabled' => $m->getHWVirtExProperty('Enabled'),
'NestedPaging' => $m->getHWVirtExProperty('NestedPaging'),
diff --git a/js/jquery.projectPlugins.js b/js/jquery.projectPlugins.js
index 702d14f..fa8bd85 100644
--- a/js/jquery.projectPlugins.js
+++ b/js/jquery.projectPlugins.js
@@ -550,8 +550,7 @@ if(jQuery) (function($){
data.sort(function(a,b){
if(a.type == b.type)
return strnatcasecmp(a.path, b.path);
-
- return a.type == 'folder' ? 1 : -1
+ return a.type == 'folder' ? -1 : 1
});
var elms = [];
diff --git a/js/phpvirtualbox.js b/js/phpvirtualbox.js
index f6f818a..19fd02e 100644
--- a/js/phpvirtualbox.js
+++ b/js/phpvirtualbox.js
@@ -1,7 +1,6 @@
/**
* @fileOverview Common classes and objects used
* @author Ian Moore (imoore76 at yahoo dot com)
- * @version $Id: phpvirtualbox.js 599 2015-07-27 10:40:37Z imoore76 $
* @copyright Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
*/
@@ -166,7 +165,9 @@ var vboxHostDetailsSections = {
var netRows = [];
- d['networkInterfaces'].sort(strnatcasecmp);
+ d['networkInterfaces'].sort(function(a,b){
+ return strnatcasecmp(a.name, b.name);
+ });
for(var i = 0; i < d['networkInterfaces'].length; i++) {
@@ -338,7 +339,9 @@ var vboxVMDetailsSections = {
if(d['HWVirtExProperties'].Enabled) acList[acList.length] = trans('VT-x/AMD-V');
if(d['HWVirtExProperties'].NestedPaging) acList[acList.length] = trans('Nested Paging');
if(d['CpuProperties']['PAE']) acList[acList.length] = trans('PAE/NX');
-
+ if(d['EffectiveParavirtProvider'] != 'None')
+ acList[acList.length] = trans(d['EffectiveParavirtProvider'] + ' Paravirtualization');
+
if($('#vboxPane').data('vboxConfig').enableAdvancedConfig) {
if(d['HWVirtExProperties'].LargePages) acList[acList.length] = trans('Large Pages');
if(d['HWVirtExProperties'].UnrestrictedExecution) acList[acList.length] = trans('VT-x unrestricted execution');
@@ -3139,8 +3142,8 @@ function vboxWizard() {
function vboxToolbar(options) {
var self = this;
- this.buttons = options.buttons ? options.buttons : [];
- this.size = options.size ? options.size : 22;
+ this.buttons = options.buttons || [];
+ this.size = options.size || 22;
this.addHeight = 24;
this.lastItem = null;
this.buttonStyle = options.buttonStyle;
@@ -3394,10 +3397,11 @@ function vboxToolbar(options) {
*/
function vboxToolbarSingle(options) {
+ var self = this;
this.parentClass = vboxToolbarSmall;
- options.buttons = [options.button]
- renderTo = options.renderTo
- options.renderTo = undefined
+ options.buttons = [options.button];
+ renderTo = options.renderTo;
+ options.renderTo = undefined;
this.parentClass(options);
this._buttonElement = this.buttonElement; /* copy orig */
@@ -3743,7 +3747,7 @@ function vboxButtonMediaMenu(type,callback,mediumPath) {
* @return {Object} jQuery object containing button element
*/
this.getButtonElm = function () {
- return this._buttonElement;
+ return self._buttonElement;
};
/**
diff --git a/panes/tabVMDetails.html b/panes/tabVMDetails.html
index 17876e6..23df5c6 100644
--- a/panes/tabVMDetails.html
+++ b/panes/tabVMDetails.html
@@ -530,20 +530,24 @@ function __vboxDisplayDetailsData(data, multiSelect, targetDiv, skipTable) {
// Multi-select details table sections
////////////////////////////////////////
if(!skipTable) {
-
+
var tbl = $('<table />').attr({'id':'vboxDetailsGeneralTable-'+data.id,'class':'vboxInvisible vboxVMDetailsBox-vm-'+data.id,'style':'width: 100%;'}).append(
- $('<tr />').attr({'style':'vertical-align: top'}).append(
-
- $('<td />').css({'width':'100%'})
- .append(__vboxCreateDetailsSection(data,'general'))
- .append(__vboxCreateDetailsSection(data,'system'))
+ $('<tr />').attr({'style':'vertical-align: top'})
- ).append(
-
- $('<td />')
- .append(__vboxCreateDetailsSection(data,'preview'))
- )
+ .append(
+
+ $('<td />').css({'width':'100%'})
+ .append(__vboxCreateDetailsSection(data,'general'))
+ .append(__vboxCreateDetailsSection(data,'system'))
+
+ ).append(
+
+ vboxVMDetailsSections['preview'].condition() ?
+ $('<td />')
+ .append(__vboxCreateDetailsSection(data,'preview')) :
+ null
+ )
).data({'vmid':data.id});