summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStian Viskjer <stian@viskjer.net>2020-02-23 01:30:32 +0100
committerStian Viskjer <stian@viskjer.net>2020-02-23 01:30:32 +0100
commit407bc55e11737c540f53656f6f22f476584504ee (patch)
tree2b0b1d8d4999bcd80658ed7bd839ff28ed4fae71
parent3889ccb6d25015063c01aacc941d518e9f4f0a71 (diff)
downloadphpvirtualbox-407bc55e11737c540f53656f6f22f476584504ee.zip
phpvirtualbox-407bc55e11737c540f53656f6f22f476584504ee.tar.gz
phpvirtualbox-407bc55e11737c540f53656f6f22f476584504ee.tar.bz2
Fix shared folders in 6.1
-rw-r--r--css/layout.css2
-rw-r--r--endpoints/lib/vboxconnector.php20
-rw-r--r--panes/settingsSharedFolders.html27
3 files changed, 31 insertions, 18 deletions
diff --git a/css/layout.css b/css/layout.css
index 3b01465..b028204 100644
--- a/css/layout.css
+++ b/css/layout.css
@@ -377,7 +377,7 @@ div.vboxVMMDialog div.ui-dialog-buttonpane {
#vboxVirtualMediaManager table.vboxVMMList span { display: inline-block; }
#vboxVirtualMediaManager div.vboxVMMMediumInfo { font-size: 0.9em; }
#vboxVirtualMediaManager .vboxVMMMediumInfo input { padding: 0px; margin: 0px; background: transparent; color: #000000; }
-#vboxVirtualMediaManager .vboxVMMMediumInfo table { padding;0px; border: 1px solid #000; border-spacing:0px; margin-top: 12px; width: 100%; background: #fafafa; }
+#vboxVirtualMediaManager .vboxVMMMediumInfo table { padding: 0px; border: 1px solid #000; border-spacing:0px; margin-top: 12px; width: 100%; background: #fafafa; }
#vboxVirtualMediaManager .vboxVMMMediumInfo th { padding:2px; padding-left: 18px; text-align: right; width: auto; white-space: nowrap; }
#vboxVirtualMediaManager .vboxVMMMediumInfo td { padding:0px; padding-left: 10px; text-align: left; width: 100%; }
#vboxVirtualMediaManager .vboxVMMSortImgFaded img {
diff --git a/endpoints/lib/vboxconnector.php b/endpoints/lib/vboxconnector.php
index 672cff9..93d0232 100644
--- a/endpoints/lib/vboxconnector.php
+++ b/endpoints/lib/vboxconnector.php
@@ -1682,10 +1682,10 @@ class vboxconnector {
if($sf['type'] == 'machine' && $psf[$sf['name']]) {
/* Remove if it doesn't match */
- if($sf['hostPath'] != $psf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$psf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$psf[$sf['name']]->writable) {
+ if($sf['hostPath'] != $psf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$psf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$psf[$sf['name']]->writable || $sf['autoMountPoint'] != $psf[$sf['name']]->autoMountPoint) {
$m->removeSharedFolder($sf['name']);
- $m->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
+ $m->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
}
unset($psf[$sf['name']]);
@@ -1694,10 +1694,10 @@ class vboxconnector {
} else if($sf['type'] != 'machine' && $tsf[$sf['name']]) {
/* Remove if it doesn't match */
- if($sf['hostPath'] != $tsf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$tsf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$tsf[$sf['name']]->writable) {
+ if($sf['hostPath'] != $tsf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$tsf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$tsf[$sf['name']]->writable || $sf['autoMountPoint'] != $psf[$sf['name']]->autoMountPoint) {
$this->session->console->removeSharedFolder($sf['name']);
- $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
+ $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
}
@@ -1706,8 +1706,8 @@ class vboxconnector {
} else {
// Does not exist or was removed. Add it.
- if($sf['type'] != 'machine') $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
- else $this->session->machine->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
+ if($sf['type'] != 'machine') $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
+ else $this->session->machine->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
}
}
@@ -2231,17 +2231,17 @@ class vboxconnector {
$sharedEx = array();
$sharedNew = array();
foreach($this->_machineGetSharedFolders($m) as $s) {
- $sharedEx[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable']);
+ $sharedEx[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable'],'autoMountPoint'=>$s['autoMountPoint']);
}
foreach($args['sharedFolders'] as $s) {
- $sharedNew[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable']);
+ $sharedNew[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable'],'autoMountPoint'=>$s['autoMountPoint']);
}
// Compare
if(count($sharedEx) != count($sharedNew) || (@serialize($sharedEx) != @serialize($sharedNew))) {
foreach($sharedEx as $s) { $m->removeSharedFolder($s['name']);}
try {
foreach($sharedNew as $s) {
- $m->createSharedFolder($s['name'],$s['hostPath'],(bool)$s['writable'],(bool)$s['autoMount']);
+ $m->createSharedFolder($s['name'],$s['hostPath'],(bool)$s['writable'],(bool)$s['autoMount'],$s['autoMountPoint']);
}
} catch (Exception $e) { $this->errors[] = $e; }
}
@@ -4370,6 +4370,7 @@ class vboxconnector {
'accessible' => $sf->accessible,
'writable' => $sf->writable,
'autoMount' => $sf->autoMount,
+ 'autoMountPoint' => $sf->autoMountPoint,
'lastAccessError' => $sf->lastAccessError,
'type' => 'machine'
);
@@ -4452,6 +4453,7 @@ class vboxconnector {
'accessible' => $sf->accessible,
'writable' => $sf->writable,
'autoMount' => $sf->autoMount,
+ 'autoMountPoint' => $sf->autoMountPoint,
'lastAccessError' => $sf->lastAccessError,
'type' => 'transient'
);
diff --git a/panes/settingsSharedFolders.html b/panes/settingsSharedFolders.html
index f1b2362..84d2922 100644
--- a/panes/settingsSharedFolders.html
+++ b/panes/settingsSharedFolders.html
@@ -23,8 +23,9 @@
<tr id='vboxSettingsSharedFoldersHeading'>
<th><span class='translate'>Name</span></th>
<th style='width: 100%; white-space: nowrap;'><span class='translate'>Path</span></th>
- <th><span class='translate'>Auto-Mount</span></th>
<th><span class='translate'>Access</span></th>
+ <th><span class='translate'>Auto Mount</span></th>
+ <th><span class='translate'>At</span></th>
</tr>
</thead>
</table>
@@ -57,13 +58,14 @@ var sButtons = new Array(
$('#vboxSettingsSFPath').val('');
$('#vboxSettingsSFName').val('');
$('#vboxSettingsSFAM').prop('checked',false);
+ $('#vboxSettingsSFAMPoint').val('');
$('#vboxSettingsSFRO').prop('checked',false);
$('#vboxSettingsSFPerm').prop('checked',false);
var buttons = { };
buttons[trans('OK','QIMessageBox')] = function() {
if($('#vboxSettingsSFName').val() && $('#vboxSettingsSFPath').val()) {
- var f = {'name':$('#vboxSettingsSFName').val(),'hostPath':$('#vboxSettingsSFPath').val(),'autoMount':($('#vboxSettingsSFAM').prop('checked')),'writable':!($('#vboxSettingsSFRO').prop('checked'))};
+ var f = {'name':$('#vboxSettingsSFName').val(),'hostPath':$('#vboxSettingsSFPath').val(),'autoMountPoint':$('#vboxSettingsSFAMPoint').val(),'autoMount':($('#vboxSettingsSFAM').prop('checked')),'writable':!($('#vboxSettingsSFRO').prop('checked'))};
if($('#vboxSettingsSFPerm').length) {
f['type'] = ($('#vboxSettingsSFPerm').prop('checked') ? 'machine' : '');
} else {
@@ -93,6 +95,7 @@ var sButtons = new Array(
$('#vboxSettingsSFPath').val(($(def).data('hostPath')||''));
$('#vboxSettingsSFName').val(($(def).data('name')||''));
$('#vboxSettingsSFAM').prop('checked',($(def).data('autoMount') ? true : false));
+ $('#vboxSettingsSFAMPoint').val(($(def).data('autoMountPoint')||''));
$('#vboxSettingsSFRO').prop('checked',($(def).data('writable') ? false : true));
$('#vboxSettingsSFPerm').prop('checked',($(def).data('type') == 'machine' ? true : false));
@@ -104,6 +107,7 @@ var sButtons = new Array(
'hostPath' : $('#vboxSettingsSFPath').val(),
'name' : $('#vboxSettingsSFName').val(),
'autoMount' : ($('#vboxSettingsSFAM').prop('checked')),
+ 'autoMountPoint' : $('#vboxSettingsSFAMPoint').val(),
'writable' : !($('#vboxSettingsSFRO').prop('checked')),
'type' : ((!$('#vboxSettingsSFPerm').length || $('#vboxSettingsSFPerm').prop('checked')) ? 'machine' : '')
}).trigger('refresh');
@@ -149,6 +153,7 @@ function vboxSettingsAddSharedFolder(f, noColor) {
// bind refresh
$(this).children('td.vboxSettingsSFNameCell').children('span').first().html($('<div/>').text($(this).data('name')).html());
$(this).children('td.vboxSettingsSFPathCell').html($('<div/>').text($(this).data('hostPath')).html());
+ $(this).children('td.vboxSettingsSFAMPointCell').html($('<div/>').text($(this).data('autoMountPoint')).html());
$(this).children('td.vboxSettingsSFAMCell').html($(this).data('autoMount') ? trans('Yes','UIMachineSettingsSF') : '');
$(this).children('td.vboxSettingsSFROCell').html($(this).data('writable') ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF'));
@@ -172,11 +177,14 @@ function vboxSettingsAddSharedFolder(f, noColor) {
// Path
$('<td />').attr({'class':'vboxSettingsSFPathCell vboxHoverMid'}).html($('<div/>').text(f.hostPath).html()).appendTo(tr);
- // auto-mount?
+ // Read only?
+ $('<td />').attr({'class':'vboxSettingsSFROCell vboxHoverMid'}).html(f.writable ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF')).appendTo(tr);
+
+ // auto-mount?
$('<td />').attr({'class':'vboxSettingsSFAMCell vboxHoverMid'}).html(f.autoMount ? trans('Yes','UIMachineSettingsSF') : '').appendTo(tr);
- // Read only?
- $('<td />').attr({'class':'vboxSettingsSFROCell vboxHoverLast'}).html(f.writable ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF')).appendTo(tr);
+ // Mount point
+ $('<td />').attr({'class':'vboxSettingsSFAMPointCell vboxHoverLast'}).html($('<div/>').text(f.autoMountPoint).html()).appendTo(tr);
$(tr).children().click(function(){
@@ -241,7 +249,7 @@ function vboxSettingsAddSharedFolder(f, noColor) {
}).appendTo(td);
$(td).append($('<span />').html($('<div/>').text(trans(' Machine Folders','UIMachineSettingsSF')).html())).appendTo(tr);
- $(tb).append($(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}))).appendTo(sfh);
+ $(tb).append($(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMPointCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}))).appendTo(sfh);
/*
*
@@ -272,7 +280,7 @@ function vboxSettingsAddSharedFolder(f, noColor) {
}
})).append($('<span />').html($('<div/>').text(trans(' Transient Folders','UIMachineSettingsSF')).html())).appendTo(tr);
- $(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}));
+ $(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMPointCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}));
$(tb).append(tr).appendTo(sfh);
// add each transient folder
@@ -330,6 +338,9 @@ function vboxSettingsSFEditDialog() {
// Auto mount
$('<tr />').append($('<th />')).append($('<td />').html('<label><input type="checkbox" class="vboxCheckbox" id="vboxSettingsSFAM" /> ' + trans('Auto-mount','UIMachineSettingsSFDetails')+'</label>')).appendTo(tbl);
+
+ // Mount point
+ $('<tr />').append($('<th />').html(trans('Mount point:','UIMachineSettingsSFDetails'))).append($('<td />').html('<input type="text" class="vboxText" id="vboxSettingsSFAMPoint" style="width: 100%" />')).appendTo(tbl);
// Add "Make Permanent"?
if(vboxVMStates.isRunning($('#vboxSettingsDialog').data('vboxMachineData')) || vboxVMStates.isSaved($('#vboxSettingsDialog').data('vboxMachineData')) || vboxVMStates.isPaused($('#vboxSettingsDialog').data('vboxMachineData'))) {
@@ -353,7 +364,7 @@ $('#vboxSettingsDialog').on('save',function(){
$('#vboxSettingsSharedFoldersList').find('tr').each(function(){
// Skip headers and such
if($(this).data('name')) {
- folders[folders.length] = {'name':$(this).data('name'),'hostPath':$(this).data('hostPath'),'autoMount':($(this).data('autoMount') ? true : false),'writable':($(this).data('writable') ? true : false),'type':$(this).data('type')};
+ folders[folders.length] = {'name':$(this).data('name'),'hostPath':$(this).data('hostPath'),'autoMountPoint':$(this).data('autoMountPoint'),'autoMount':($(this).data('autoMount') ? true : false),'writable':($(this).data('writable') ? true : false),'type':$(this).data('type')};
}
});
$('#vboxSettingsDialog').data('vboxMachineData').sharedFolders = folders;