Skip to content

Commit 407bc55

Browse files
committed
Fix shared folders in 6.1
1 parent 3889ccb commit 407bc55

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

css/layout.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ div.vboxVMMDialog div.ui-dialog-buttonpane {
377377
#vboxVirtualMediaManager table.vboxVMMList span { display: inline-block; }
378378
#vboxVirtualMediaManager div.vboxVMMMediumInfo { font-size: 0.9em; }
379379
#vboxVirtualMediaManager .vboxVMMMediumInfo input { padding: 0px; margin: 0px; background: transparent; color: #000000; }
380-
#vboxVirtualMediaManager .vboxVMMMediumInfo table { padding;0px; border: 1px solid #000; border-spacing:0px; margin-top: 12px; width: 100%; background: #fafafa; }
380+
#vboxVirtualMediaManager .vboxVMMMediumInfo table { padding: 0px; border: 1px solid #000; border-spacing:0px; margin-top: 12px; width: 100%; background: #fafafa; }
381381
#vboxVirtualMediaManager .vboxVMMMediumInfo th { padding:2px; padding-left: 18px; text-align: right; width: auto; white-space: nowrap; }
382382
#vboxVirtualMediaManager .vboxVMMMediumInfo td { padding:0px; padding-left: 10px; text-align: left; width: 100%; }
383383
#vboxVirtualMediaManager .vboxVMMSortImgFaded img {

endpoints/lib/vboxconnector.php

+11-9
Original file line numberDiff line numberDiff line change
@@ -1682,10 +1682,10 @@ private function _machineSaveRunning($args, $state) {
16821682
if($sf['type'] == 'machine' && $psf[$sf['name']]) {
16831683

16841684
/* Remove if it doesn't match */
1685-
if($sf['hostPath'] != $psf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$psf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$psf[$sf['name']]->writable) {
1685+
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) {
16861686

16871687
$m->removeSharedFolder($sf['name']);
1688-
$m->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
1688+
$m->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
16891689
}
16901690

16911691
unset($psf[$sf['name']]);
@@ -1694,10 +1694,10 @@ private function _machineSaveRunning($args, $state) {
16941694
} else if($sf['type'] != 'machine' && $tsf[$sf['name']]) {
16951695

16961696
/* Remove if it doesn't match */
1697-
if($sf['hostPath'] != $tsf[$sf['name']]->hostPath || (bool)$sf['autoMount'] != (bool)$tsf[$sf['name']]->autoMount || (bool)$sf['writable'] != (bool)$tsf[$sf['name']]->writable) {
1697+
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) {
16981698

16991699
$this->session->console->removeSharedFolder($sf['name']);
1700-
$this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
1700+
$this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
17011701

17021702
}
17031703

@@ -1706,8 +1706,8 @@ private function _machineSaveRunning($args, $state) {
17061706
} else {
17071707

17081708
// Does not exist or was removed. Add it.
1709-
if($sf['type'] != 'machine') $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
1710-
else $this->session->machine->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount']);
1709+
if($sf['type'] != 'machine') $this->session->console->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
1710+
else $this->session->machine->createSharedFolder($sf['name'],$sf['hostPath'],(bool)$sf['writable'],(bool)$sf['autoMount'],$sf['autoMountPoint']);
17111711
}
17121712

17131713
}
@@ -2231,17 +2231,17 @@ public function remote_machineSave($args) {
22312231
$sharedEx = array();
22322232
$sharedNew = array();
22332233
foreach($this->_machineGetSharedFolders($m) as $s) {
2234-
$sharedEx[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable']);
2234+
$sharedEx[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable'],'autoMountPoint'=>$s['autoMountPoint']);
22352235
}
22362236
foreach($args['sharedFolders'] as $s) {
2237-
$sharedNew[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable']);
2237+
$sharedNew[$s['name']] = array('name'=>$s['name'],'hostPath'=>$s['hostPath'],'autoMount'=>(bool)$s['autoMount'],'writable'=>(bool)$s['writable'],'autoMountPoint'=>$s['autoMountPoint']);
22382238
}
22392239
// Compare
22402240
if(count($sharedEx) != count($sharedNew) || (@serialize($sharedEx) != @serialize($sharedNew))) {
22412241
foreach($sharedEx as $s) { $m->removeSharedFolder($s['name']);}
22422242
try {
22432243
foreach($sharedNew as $s) {
2244-
$m->createSharedFolder($s['name'],$s['hostPath'],(bool)$s['writable'],(bool)$s['autoMount']);
2244+
$m->createSharedFolder($s['name'],$s['hostPath'],(bool)$s['writable'],(bool)$s['autoMount'],$s['autoMountPoint']);
22452245
}
22462246
} catch (Exception $e) { $this->errors[] = $e; }
22472247
}
@@ -4370,6 +4370,7 @@ private function _machineGetSharedFolders(&$m) {
43704370
'accessible' => $sf->accessible,
43714371
'writable' => $sf->writable,
43724372
'autoMount' => $sf->autoMount,
4373+
'autoMountPoint' => $sf->autoMountPoint,
43734374
'lastAccessError' => $sf->lastAccessError,
43744375
'type' => 'machine'
43754376
);
@@ -4452,6 +4453,7 @@ public function remote_consoleGetSharedFolders($args) {
44524453
'accessible' => $sf->accessible,
44534454
'writable' => $sf->writable,
44544455
'autoMount' => $sf->autoMount,
4456+
'autoMountPoint' => $sf->autoMountPoint,
44554457
'lastAccessError' => $sf->lastAccessError,
44564458
'type' => 'transient'
44574459
);

panes/settingsSharedFolders.html

+19-8
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@
2323
<tr id='vboxSettingsSharedFoldersHeading'>
2424
<th><span class='translate'>Name</span></th>
2525
<th style='width: 100%; white-space: nowrap;'><span class='translate'>Path</span></th>
26-
<th><span class='translate'>Auto-Mount</span></th>
2726
<th><span class='translate'>Access</span></th>
27+
<th><span class='translate'>Auto Mount</span></th>
28+
<th><span class='translate'>At</span></th>
2829
</tr>
2930
</thead>
3031
</table>
@@ -57,13 +58,14 @@
5758
$('#vboxSettingsSFPath').val('');
5859
$('#vboxSettingsSFName').val('');
5960
$('#vboxSettingsSFAM').prop('checked',false);
61+
$('#vboxSettingsSFAMPoint').val('');
6062
$('#vboxSettingsSFRO').prop('checked',false);
6163
$('#vboxSettingsSFPerm').prop('checked',false);
6264

6365
var buttons = { };
6466
buttons[trans('OK','QIMessageBox')] = function() {
6567
if($('#vboxSettingsSFName').val() && $('#vboxSettingsSFPath').val()) {
66-
var f = {'name':$('#vboxSettingsSFName').val(),'hostPath':$('#vboxSettingsSFPath').val(),'autoMount':($('#vboxSettingsSFAM').prop('checked')),'writable':!($('#vboxSettingsSFRO').prop('checked'))};
68+
var f = {'name':$('#vboxSettingsSFName').val(),'hostPath':$('#vboxSettingsSFPath').val(),'autoMountPoint':$('#vboxSettingsSFAMPoint').val(),'autoMount':($('#vboxSettingsSFAM').prop('checked')),'writable':!($('#vboxSettingsSFRO').prop('checked'))};
6769
if($('#vboxSettingsSFPerm').length) {
6870
f['type'] = ($('#vboxSettingsSFPerm').prop('checked') ? 'machine' : '');
6971
} else {
@@ -93,6 +95,7 @@
9395
$('#vboxSettingsSFPath').val(($(def).data('hostPath')||''));
9496
$('#vboxSettingsSFName').val(($(def).data('name')||''));
9597
$('#vboxSettingsSFAM').prop('checked',($(def).data('autoMount') ? true : false));
98+
$('#vboxSettingsSFAMPoint').val(($(def).data('autoMountPoint')||''));
9699
$('#vboxSettingsSFRO').prop('checked',($(def).data('writable') ? false : true));
97100
$('#vboxSettingsSFPerm').prop('checked',($(def).data('type') == 'machine' ? true : false));
98101

@@ -104,6 +107,7 @@
104107
'hostPath' : $('#vboxSettingsSFPath').val(),
105108
'name' : $('#vboxSettingsSFName').val(),
106109
'autoMount' : ($('#vboxSettingsSFAM').prop('checked')),
110+
'autoMountPoint' : $('#vboxSettingsSFAMPoint').val(),
107111
'writable' : !($('#vboxSettingsSFRO').prop('checked')),
108112
'type' : ((!$('#vboxSettingsSFPerm').length || $('#vboxSettingsSFPerm').prop('checked')) ? 'machine' : '')
109113
}).trigger('refresh');
@@ -149,6 +153,7 @@
149153
// bind refresh
150154
$(this).children('td.vboxSettingsSFNameCell').children('span').first().html($('<div/>').text($(this).data('name')).html());
151155
$(this).children('td.vboxSettingsSFPathCell').html($('<div/>').text($(this).data('hostPath')).html());
156+
$(this).children('td.vboxSettingsSFAMPointCell').html($('<div/>').text($(this).data('autoMountPoint')).html());
152157
$(this).children('td.vboxSettingsSFAMCell').html($(this).data('autoMount') ? trans('Yes','UIMachineSettingsSF') : '');
153158
$(this).children('td.vboxSettingsSFROCell').html($(this).data('writable') ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF'));
154159

@@ -172,11 +177,14 @@
172177
// Path
173178
$('<td />').attr({'class':'vboxSettingsSFPathCell vboxHoverMid'}).html($('<div/>').text(f.hostPath).html()).appendTo(tr);
174179

175-
// auto-mount?
180+
// Read only?
181+
$('<td />').attr({'class':'vboxSettingsSFROCell vboxHoverMid'}).html(f.writable ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF')).appendTo(tr);
182+
183+
// auto-mount?
176184
$('<td />').attr({'class':'vboxSettingsSFAMCell vboxHoverMid'}).html(f.autoMount ? trans('Yes','UIMachineSettingsSF') : '').appendTo(tr);
177185

178-
// Read only?
179-
$('<td />').attr({'class':'vboxSettingsSFROCell vboxHoverLast'}).html(f.writable ? trans('Full','UIMachineSettingsSF') : trans('Read-only','UIMachineSettingsSF')).appendTo(tr);
186+
// Mount point
187+
$('<td />').attr({'class':'vboxSettingsSFAMPointCell vboxHoverLast'}).html($('<div/>').text(f.autoMountPoint).html()).appendTo(tr);
180188

181189

182190
$(tr).children().click(function(){
@@ -241,7 +249,7 @@
241249

242250
}).appendTo(td);
243251
$(td).append($('<span />').html($('<div/>').text(trans(' Machine Folders','UIMachineSettingsSF')).html())).appendTo(tr);
244-
$(tb).append($(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}))).appendTo(sfh);
252+
$(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);
245253

246254
/*
247255
*
@@ -272,7 +280,7 @@
272280
}
273281
})).append($('<span />').html($('<div/>').text(trans(' Transient Folders','UIMachineSettingsSF')).html())).appendTo(tr);
274282

275-
$(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}));
283+
$(tr).append($('<td />').attr({'class':'vboxSettingsSFPathCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMPointCell'})).append($('<td />').attr({'class':'vboxSettingsSFAMCell'})).append($('<td />').attr({'class':'vboxSettingsSFROCell'}));
276284
$(tb).append(tr).appendTo(sfh);
277285

278286
// add each transient folder
@@ -330,6 +338,9 @@
330338

331339
// Auto mount
332340
$('<tr />').append($('<th />')).append($('<td />').html('<label><input type="checkbox" class="vboxCheckbox" id="vboxSettingsSFAM" /> ' + trans('Auto-mount','UIMachineSettingsSFDetails')+'</label>')).appendTo(tbl);
341+
342+
// Mount point
343+
$('<tr />').append($('<th />').html(trans('Mount point:','UIMachineSettingsSFDetails'))).append($('<td />').html('<input type="text" class="vboxText" id="vboxSettingsSFAMPoint" style="width: 100%" />')).appendTo(tbl);
333344

334345
// Add "Make Permanent"?
335346
if(vboxVMStates.isRunning($('#vboxSettingsDialog').data('vboxMachineData')) || vboxVMStates.isSaved($('#vboxSettingsDialog').data('vboxMachineData')) || vboxVMStates.isPaused($('#vboxSettingsDialog').data('vboxMachineData'))) {
@@ -353,7 +364,7 @@
353364
$('#vboxSettingsSharedFoldersList').find('tr').each(function(){
354365
// Skip headers and such
355366
if($(this).data('name')) {
356-
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')};
367+
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')};
357368
}
358369
});
359370
$('#vboxSettingsDialog').data('vboxMachineData').sharedFolders = folders;

0 commit comments

Comments
 (0)