summaryrefslogtreecommitdiffstats
path: root/panes/wizardExportApplianceAdvanced.html
diff options
context:
space:
mode:
Diffstat (limited to 'panes/wizardExportApplianceAdvanced.html')
-rw-r--r--panes/wizardExportApplianceAdvanced.html640
1 files changed, 320 insertions, 320 deletions
diff --git a/panes/wizardExportApplianceAdvanced.html b/panes/wizardExportApplianceAdvanced.html
index 5eec268..4a19f3e 100644
--- a/panes/wizardExportApplianceAdvanced.html
+++ b/panes/wizardExportApplianceAdvanced.html
@@ -1,320 +1,320 @@
-<!--
-
- Advanced export appliance wizard panes. Logic in vboxWizard() class
- Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
-
- $Id: wizardExportApplianceAdvanced.html 595 2015-04-17 09:50:36Z imoore76 $
-
- -->
-<!-- Step 1 -->
-<div id='wizardExportApplianceStep1' style='display: none;'>
-
- <table class='vboxInvisible' style='border: 0px solid transparent; border-spacing: 4px; height: 100%;'>
- <tr style='vertical-align: top'>
- <td style='width: 50%'>
-
- <span class='translate vboxTableLabel'>Virtual machines to export</span>
- <hr style='width: 100%; margin: 0px; margin-bottom: 6px; display: block' class='vboxSeparatorLine'/>
-
- <div id='vboxExportAppVMListContainer' style='overflow:auto;padding:0px;margin:0px;' class='vboxBordered'>
- <ul style='width: 100%;margin:0px;' id='vboxExportAppVMList' class='vboxList'>
- <li><img src='images/spinner.gif' /></li>
- </ul>
- </div>
- </td>
- <td>
- <span class='translate vboxTableLabel'>Appliance settings</span>
- <hr style='width: 100%; margin: 0px; margin-bottom: 6px; display: block' class='vboxSeparatorLine'/>
-
- <div class='vboxBordered' id='vboxExportPropsContainer' style='overflow: auto' style='width: 100%'>
- <table class='vboxHorizontal' style='width: 100%; font-size: 0.9em'>
- <tbody id='vboxExportProps'>
- </tbody>
- </table>
- </div>
-
- </td>
- </tr>
-
- <tr style='vertical-align: top; height: 1%;'>
- <td colspan='2'>
-
- <table style='width: 100%;' class='vboxOptions'>
- <tr>
- <th width='1%'><span class='translate'>File:</span></th>
- <td class='vboxFileFolderInput'>
- <input type='text' class='vboxText' name='wizardExportApplianceLocation' />
- <input type="button" class="vboxImgButton" style="background-image: url(images/vbox/select_file_16px.png)" onClick="wizardExportApplianceBrowseLocation()" />
- </td>
- </tr>
- <tr>
- <th width='1%'><span class='translate'>Format:</span></th>
- <td>
- <select name='wizardExportApplianceFormat'>
- <option value="ovf-0.9">OVF 0.9</option>
- <option value="ovf-1.0" selected>OVF 1.0</option>
- <option value="ovf-2.0">OVF 2.0</option>
- </select>
- </td>
- </tr>
- <tr>
- <td colspan='2'>
- <label><input type='checkbox' class='vboxCheckbox' name='wizardExportApplianceManifest'/>
- <span class='translate'>Write Manifest file</span></label>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-</div>
-
-
-<script type='text/javascript'>
-
-//Add format options
-$(document.forms['frmwizardExportAppliance'].wizardExportApplianceFormat).find('option').html(function(i,h){return trans(h,'UIWizardExportApp');});
-
-
-// Load list of exportable machines
-var l = new vboxLoader();
-l.add('vboxGetExportableMachines',function(d){$('#wizardExportApplianceStep1').data('vms',d.responseData);});
-l.onLoad = function() {
- var vms = $('#wizardExportApplianceStep1').data('vms');
- var vmlist = $('#vboxExportAppVMList');
- $(vmlist).children().remove();
- vms.sort(function(a,b){return strnatcasecmp(a.name,b.name);});
- for(var i in vms) {
- var li = $('<li />').data({'vm':vms[i]});
- if(vboxVMStates.isPaused(vms[i]) || vboxVMStates.isRunning(vms[i])) {
- $(li).addClass('vboxDisabled disabled');
- } else {
-
- /* Exportable appliance clicked */
- $(li).click(function(){
-
- $(this).toggleClass('vboxListItemSelected');
-
- vboxWizardExportApplianceUpdateList();
- vboxWizardExportApplianceOVFName();
-
-
- }).addClass('vboxListItem');
-
- if(vboxChooser.isVMSelected(vms[i].id))
- $(li).addClass('vboxListItemSelected');
-
- }
- $(li).html("<img style='width: 16px; height: 16px;' src='images/vbox/" + vboxGuestOSTypeIcon(vms[i].OSTypeId) + "' /> " + vms[i].name);
- $(vmlist).append(li);
- }
- vboxColorRows(vmlist);
- vboxWizardExportApplianceUpdateList();
- vboxWizardExportApplianceOVFName();
-
-};
-l.run();
-
-// Resize panes function
-function wizardExportApplianceStepResizeList() {
-
- $('#wizardExportApplianceStep1').hide();
- $('#vboxExportAppVMListContainer').hide();
- $('#vboxExportPropsContainer').hide();
-
- $('#wizardExportApplianceStep1').css({'height':($('#wizardExportApplianceStep1').parent().height()-8)+'px'}).show();
- $('#vboxExportAppVMListContainer').css({'height':($('#vboxExportAppVMListContainer').parent().height()-16)+'px'}).show();
- $('#vboxExportPropsContainer').css({'height':$('#vboxExportAppVMListContainer').css('height'),
- 'width':$('#vboxExportAppVMListContainer').parent().width()}).show();
-
-}
-
-// Resize panes when wizard is resized
-$('#wizardExportApplianceDialog').on('dialogresizestop',wizardExportApplianceStepResizeList);
-//Resize panes after this div is shown
-$('#wizardExportApplianceStep1').on('show', wizardExportApplianceStepResizeList);
-
-
-/*
- *
- * VM Properties to edit / export
- *
- */
-var vboxApplianceProps = {
- 'name' : {'label':'Name','icon':'name'},
- 'product' : {'label':'Product','icon':'description'},
- 'product-url' : {'label':'Product-URL','icon':'description'},
- 'vendor' : {'label':'Vendor','icon':'description'},
- 'vendor-url' : {'label':'Vendor-URL','icon':'description'},
- 'version' : {'label':'Version','icon':'description'},
- 'description' : {'label':'Description','icon':'description','textarea':true},
- 'license' : {'label':'License','icon':'description','textarea':true}
-};
-
-/* Browse for export location */
-function wizardExportApplianceBrowseLocation() {
-
- var dsepRegEx = $('#vboxPane').data('vboxConfig').DSEP;
- if(dsepRegEx == '\\') dsepRegEx += '\\';
-
- // Get current location
- var loc = document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation.value;
- if(loc.indexOf($('#vboxPane').data('vboxConfig').DSEP) > -1) {
- var r = new RegExp(dsepRegEx+'([^'+dsepRegEx+']*)?$');
- loc = loc.replace(r,'');
- } else {
- // no path set
- loc = vboxDirname($('#vboxPane').data('vboxConfig').version.settingsFilePath) + $('#vboxPane').data('vboxConfig').DSEP;
- }
- vboxFileBrowser(loc,function(f){
- if(!f) return;
- // get file name
- var r = new RegExp('.*'+dsepRegEx);
- file = $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val().replace(r,'');
- document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation.value = f+($('#vboxPane').data('vboxConfig').DSEP)+file;
- },true,trans('Select a file to export into','UIWizardExportAppPage3'));
-
-}
-
-/* Determine default OVF name */
-function vboxWizardExportApplianceOVFName() {
-
- // Keep track of where we were
- var vmSel = $('#vboxExportAppVMList').children('li.vboxListItemSelected');
-
- /* When going to step3, make sure vms are selected */
- if(!vmSel.length) {
- $('#vboxExportAppVMListContainer').addClass('vboxRequired');
- return;
- }
- $('#vboxExportAppVMListContainer').removeClass('vboxRequired');
-
-
- if(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val()) && $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).data('userChanged'))
- return;
-
- $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).data('userChanged', false);
-
- var name = '';
- if(vmSel.length > 1) {
- name = 'Appliance';
- } else {
- name = jQuery.trim($(vmSel[0]).text());
- }
-
- // If there is already a folder chosen, don't change it
- if(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val())) {
- name = vboxDirname(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val())) + $('#vboxPane').data('vboxConfig').DSEP + name + '.ova';
- } else {
- name = vboxDirname($('#vboxPane').data('vboxConfig').version.settingsFilePath) + $('#vboxPane').data('vboxConfig').DSEP + name + '.ova';
- }
-
- $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val(name);
-
-};
-
-function vboxWizardExportApplianceUpdateList() {
-
- var vms = $('#vboxExportAppVMList').children('li');
-
- var tbl = $('#vboxExportProps');
-
- for(var i = 0; i < vms.length; i++) {
-
- var vmid = $(vms[i]).data('vm').id;
-
- // Selected ?
- if($(vms[i]).hasClass('vboxListItemSelected')) {
- if($('#vboxAppliance-'+vmid).attr('id')) continue;
- } else {
- $(tbl).children('tr.vboxAppliance-'+vmid).remove();
- continue;
- }
-
- // VM header row
- var trparent = $('<tr />').attr({'id':'vboxAppliance-'+vmid}).addClass('vboxAppliance-'+vmid + ' vboxTableParent');
- var td = $('<td />').attr({'colspan':'2','class':'vboxApplianceHeader'}).append(
- $('<div />').css({'font-weight':'bold','padding-left':'6px'}).append(
- $('<input />').attr({'type':'button','class':'vboxImgButton','style':'background-image: url(images/downArrow.png); margin:0px;margin-right:4px;padding:0px;vspace:0px;hspace:0px;width: 12px; height: 12px;'}).click(function(){
-
- if(!$(this).data('toggleClicked')) {
-
- $(this).data('toggleClicked', true);
-
- $(this).css({'background-image':'url(images/rightArrow.png)'});
- var tr = $(this).closest('tr');
- $(tr).siblings('tr.vboxChildOf'+$(tr).data('vboxOrder')).hide();
- } else {
-
- $(this).data('toggleClicked', false);
-
- $(this).css({'background-image':'url(images/downArrow.png)'});
- var tr = $(this).closest('tr');
- $(tr).siblings('tr.vboxChildOf'+$(tr).data('vboxOrder')).show();
- }
- })
- ).append(
- //trans('Virtual System X').replace('%s',(i+1))
- $('<div />').text($(vms[i]).data('vm').name).html()
- )
- ).disableSelection();
- $(trparent).append(td).data({'vm':$(vms[i]).data('vm'),'vboxOrder':i}).appendTo(tbl);
-
- // VM properties
- for(var p in vboxApplianceProps) {
-
- var tr = $('<tr />').attr({'class':'vboxAppliance-'+vmid+' vboxChildOf' + i}).data({'vmprop':p});
-
- $('<td />').css({'padding-left':'18px','white-space':'nowrap','width':'1%'}).html('<img src="images/vbox/'+vboxApplianceProps[p].icon+'_16px.png" /> ' + trans(vboxApplianceProps[p].label,'UIApplianceEditorWidget')).appendTo(tr);
-
- $('<td />').attr({'class':'vboxHideOverflow vboxAppProp'+p}).css({'width':'100%','padding-left':'10px','padding-right':'2px'}).html('<div>'+$('<div />').text(($(trparent).data('vm')[p]||'')).html()+'</div>').dblclick((vboxApplianceProps[p].textarea ? vboxExportAppliancePropEditArea : vboxExportAppliancePropEdit )).appendTo(tr);
-
- $(tbl).append(tr);
- }
- }
- vboxColorRows(tbl,false,'vboxTableParent');
-
-
-};
-
-
-/* Edit property that has a text area */
-function vboxExportAppliancePropEditArea(evt,elm) {
- vboxExportAppliancePropEditDialog(evt.target, $('<span />').html($(evt.target).html()).text());
-}
-
-/* Edit property dialog */
-function vboxExportAppliancePropEditDialog(elm, defaults) {
-
- var d = $('<div />').css({'display':'none'});
- var frm = $('<form />').attr({'onSubmit':'return false;'}).css({'margin':'0px','border':'0px','padding':'0px','width':'100%','height':'100%'});
- $('<textarea />').attr({'id':'vboxExportAppliancePropTextarea'}).css({'height':'99%','width':'99%'}).val(defaults).appendTo(frm);
- $(d).append(frm);
-
- var buttons = {};
- buttons[trans('OK','QIMessageBox')] = function(){
- var d = vboxDivOverflowHidden(elm);
- $(d).html($('<div />').text($('#vboxExportAppliancePropTextarea').val()).html());
- $(elm).html('').append(d);
- $(this).empty().remove();
- };
- buttons[trans('Cancel','QIMessageBox')] = function(){
- $(this).empty().remove();
- };
- $(d).dialog({'height':300,'width':300,'closeOnEscape':false,'modal':true,'resizable':true,'dialogClass':'vboxDialogContent','draggable':true,'buttons':buttons,'title':$(elm).parent().siblings().first().html()});
-
-}
-/* Edit property that has a text box */
-function vboxExportAppliancePropEdit(evt,elm) {
- var input = $('<input />').attr({'type':'text','class':'vboxText'}).css({'width':($(this).innerWidth()-12)+'px','margin':'0px'}).val($('<div />').html($(this).children().first().html()).text()).blur(function(){
- var v = $(this).val();
- var p = $(this).parent();
- var d = vboxDivOverflowHidden(p);
- $(this).remove();
- $(d).html($('<div />').text(v).html());
- $(p).html('').append(d);
- }).keydown(function(e){if(e.keyCode == 13) $(this).trigger('blur');});
- $(this).html('').append(input).children().first().focus();
-}
-
-</script>
+<!--
+
+ Advanced export appliance wizard panes. Logic in vboxWizard() class
+ Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
+
+ $Id: wizardExportApplianceAdvanced.html 595 2015-04-17 09:50:36Z imoore76 $
+
+ -->
+<!-- Step 1 -->
+<div id='wizardExportApplianceStep1' style='display: none;'>
+
+ <table class='vboxInvisible' style='border: 0px solid transparent; border-spacing: 4px; height: 100%;'>
+ <tr style='vertical-align: top'>
+ <td style='width: 50%'>
+
+ <span class='translate vboxTableLabel'>Virtual machines to export</span>
+ <hr style='width: 100%; margin: 0px; margin-bottom: 6px; display: block' class='vboxSeparatorLine'/>
+
+ <div id='vboxExportAppVMListContainer' style='overflow:auto;padding:0px;margin:0px;' class='vboxBordered'>
+ <ul style='width: 100%;margin:0px;' id='vboxExportAppVMList' class='vboxList'>
+ <li><img src='images/spinner.gif' /></li>
+ </ul>
+ </div>
+ </td>
+ <td>
+ <span class='translate vboxTableLabel'>Appliance settings</span>
+ <hr style='width: 100%; margin: 0px; margin-bottom: 6px; display: block' class='vboxSeparatorLine'/>
+
+ <div class='vboxBordered' id='vboxExportPropsContainer' style='overflow: auto' style='width: 100%'>
+ <table class='vboxHorizontal' style='width: 100%; font-size: 0.9em'>
+ <tbody id='vboxExportProps'>
+ </tbody>
+ </table>
+ </div>
+
+ </td>
+ </tr>
+
+ <tr style='vertical-align: top; height: 1%;'>
+ <td colspan='2'>
+
+ <table style='width: 100%;' class='vboxOptions'>
+ <tr>
+ <th width='1%'><span class='translate'>File:</span></th>
+ <td class='vboxFileFolderInput'>
+ <input type='text' class='vboxText' name='wizardExportApplianceLocation' />
+ <input type="button" class="vboxImgButton" style="background-image: url(images/vbox/select_file_16px.png)" onClick="wizardExportApplianceBrowseLocation()" />
+ </td>
+ </tr>
+ <tr>
+ <th width='1%'><span class='translate'>Format:</span></th>
+ <td>
+ <select name='wizardExportApplianceFormat'>
+ <option value="ovf-0.9">OVF 0.9</option>
+ <option value="ovf-1.0" selected>OVF 1.0</option>
+ <option value="ovf-2.0">OVF 2.0</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td colspan='2'>
+ <label><input type='checkbox' class='vboxCheckbox' name='wizardExportApplianceManifest'/>
+ <span class='translate'>Write Manifest file</span></label>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</div>
+
+
+<script type='text/javascript'>
+
+//Add format options
+$(document.forms['frmwizardExportAppliance'].wizardExportApplianceFormat).find('option').html(function(i,h){return trans(h,'UIWizardExportApp');});
+
+
+// Load list of exportable machines
+var l = new vboxLoader();
+l.add('vboxGetExportableMachines',function(d){$('#wizardExportApplianceStep1').data('vms',d.responseData);});
+l.onLoad = function() {
+ var vms = $('#wizardExportApplianceStep1').data('vms');
+ var vmlist = $('#vboxExportAppVMList');
+ $(vmlist).children().remove();
+ vms.sort(function(a,b){return strnatcasecmp(a.name,b.name);});
+ for(var i in vms) {
+ var li = $('<li />').data({'vm':vms[i]});
+ if(vboxVMStates.isPaused(vms[i]) || vboxVMStates.isRunning(vms[i])) {
+ $(li).addClass('vboxDisabled disabled');
+ } else {
+
+ /* Exportable appliance clicked */
+ $(li).click(function(){
+
+ $(this).toggleClass('vboxListItemSelected');
+
+ vboxWizardExportApplianceUpdateList();
+ vboxWizardExportApplianceOVFName();
+
+
+ }).addClass('vboxListItem');
+
+ if(vboxChooser.isVMSelected(vms[i].id))
+ $(li).addClass('vboxListItemSelected');
+
+ }
+ $(li).html("<img style='width: 16px; height: 16px;' src='images/vbox/" + vboxGuestOSTypeIcon(vms[i].OSTypeId) + "' /> " + vms[i].name);
+ $(vmlist).append(li);
+ }
+ vboxColorRows(vmlist);
+ vboxWizardExportApplianceUpdateList();
+ vboxWizardExportApplianceOVFName();
+
+};
+l.run();
+
+// Resize panes function
+function wizardExportApplianceStepResizeList() {
+
+ $('#wizardExportApplianceStep1').hide();
+ $('#vboxExportAppVMListContainer').hide();
+ $('#vboxExportPropsContainer').hide();
+
+ $('#wizardExportApplianceStep1').css({'height':($('#wizardExportApplianceStep1').parent().height()-8)+'px'}).show();
+ $('#vboxExportAppVMListContainer').css({'height':($('#vboxExportAppVMListContainer').parent().height()-16)+'px'}).show();
+ $('#vboxExportPropsContainer').css({'height':$('#vboxExportAppVMListContainer').css('height'),
+ 'width':$('#vboxExportAppVMListContainer').parent().width()}).show();
+
+}
+
+// Resize panes when wizard is resized
+$('#wizardExportApplianceDialog').on('dialogresizestop',wizardExportApplianceStepResizeList);
+//Resize panes after this div is shown
+$('#wizardExportApplianceStep1').on('show', wizardExportApplianceStepResizeList);
+
+
+/*
+ *
+ * VM Properties to edit / export
+ *
+ */
+var vboxApplianceProps = {
+ 'name' : {'label':'Name','icon':'name'},
+ 'product' : {'label':'Product','icon':'description'},
+ 'product-url' : {'label':'Product-URL','icon':'description'},
+ 'vendor' : {'label':'Vendor','icon':'description'},
+ 'vendor-url' : {'label':'Vendor-URL','icon':'description'},
+ 'version' : {'label':'Version','icon':'description'},
+ 'description' : {'label':'Description','icon':'description','textarea':true},
+ 'license' : {'label':'License','icon':'description','textarea':true}
+};
+
+/* Browse for export location */
+function wizardExportApplianceBrowseLocation() {
+
+ var dsepRegEx = $('#vboxPane').data('vboxConfig').DSEP;
+ if(dsepRegEx == '\\') dsepRegEx += '\\';
+
+ // Get current location
+ var loc = document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation.value;
+ if(loc.indexOf($('#vboxPane').data('vboxConfig').DSEP) > -1) {
+ var r = new RegExp(dsepRegEx+'([^'+dsepRegEx+']*)?$');
+ loc = loc.replace(r,'');
+ } else {
+ // no path set
+ loc = vboxDirname($('#vboxPane').data('vboxConfig').version.settingsFilePath) + $('#vboxPane').data('vboxConfig').DSEP;
+ }
+ vboxFileBrowser(loc,function(f){
+ if(!f) return;
+ // get file name
+ var r = new RegExp('.*'+dsepRegEx);
+ file = $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val().replace(r,'');
+ document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation.value = f+($('#vboxPane').data('vboxConfig').DSEP)+file;
+ },true,trans('Select a file to export into','UIWizardExportAppPage3'));
+
+}
+
+/* Determine default OVF name */
+function vboxWizardExportApplianceOVFName() {
+
+ // Keep track of where we were
+ var vmSel = $('#vboxExportAppVMList').children('li.vboxListItemSelected');
+
+ /* When going to step3, make sure vms are selected */
+ if(!vmSel.length) {
+ $('#vboxExportAppVMListContainer').addClass('vboxRequired');
+ return;
+ }
+ $('#vboxExportAppVMListContainer').removeClass('vboxRequired');
+
+
+ if(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val()) && $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).data('userChanged'))
+ return;
+
+ $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).data('userChanged', false);
+
+ var name = '';
+ if(vmSel.length > 1) {
+ name = 'Appliance';
+ } else {
+ name = jQuery.trim($(vmSel[0]).text());
+ }
+
+ // If there is already a folder chosen, don't change it
+ if(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val())) {
+ name = vboxDirname(jQuery.trim($(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val())) + $('#vboxPane').data('vboxConfig').DSEP + name + '.ova';
+ } else {
+ name = vboxDirname($('#vboxPane').data('vboxConfig').version.settingsFilePath) + $('#vboxPane').data('vboxConfig').DSEP + name + '.ova';
+ }
+
+ $(document.forms['frmwizardExportAppliance'].elements.wizardExportApplianceLocation).val(name);
+
+};
+
+function vboxWizardExportApplianceUpdateList() {
+
+ var vms = $('#vboxExportAppVMList').children('li');
+
+ var tbl = $('#vboxExportProps');
+
+ for(var i = 0; i < vms.length; i++) {
+
+ var vmid = $(vms[i]).data('vm').id;
+
+ // Selected ?
+ if($(vms[i]).hasClass('vboxListItemSelected')) {
+ if($('#vboxAppliance-'+vmid).attr('id')) continue;
+ } else {
+ $(tbl).children('tr.vboxAppliance-'+vmid).remove();
+ continue;
+ }
+
+ // VM header row
+ var trparent = $('<tr />').attr({'id':'vboxAppliance-'+vmid}).addClass('vboxAppliance-'+vmid + ' vboxTableParent');
+ var td = $('<td />').attr({'colspan':'2','class':'vboxApplianceHeader'}).append(
+ $('<div />').css({'font-weight':'bold','padding-left':'6px'}).append(
+ $('<input />').attr({'type':'button','class':'vboxImgButton','style':'background-image: url(images/downArrow.png); margin:0px;margin-right:4px;padding:0px;vspace:0px;hspace:0px;width: 12px; height: 12px;'}).click(function(){
+
+ if(!$(this).data('toggleClicked')) {
+
+ $(this).data('toggleClicked', true);
+
+ $(this).css({'background-image':'url(images/rightArrow.png)'});
+ var tr = $(this).closest('tr');
+ $(tr).siblings('tr.vboxChildOf'+$(tr).data('vboxOrder')).hide();
+ } else {
+
+ $(this).data('toggleClicked', false);
+
+ $(this).css({'background-image':'url(images/downArrow.png)'});
+ var tr = $(this).closest('tr');
+ $(tr).siblings('tr.vboxChildOf'+$(tr).data('vboxOrder')).show();
+ }
+ })
+ ).append(
+ //trans('Virtual System X').replace('%s',(i+1))
+ $('<div />').text($(vms[i]).data('vm').name).html()
+ )
+ ).disableSelection();
+ $(trparent).append(td).data({'vm':$(vms[i]).data('vm'),'vboxOrder':i}).appendTo(tbl);
+
+ // VM properties
+ for(var p in vboxApplianceProps) {
+
+ var tr = $('<tr />').attr({'class':'vboxAppliance-'+vmid+' vboxChildOf' + i}).data({'vmprop':p});
+
+ $('<td />').css({'padding-left':'18px','white-space':'nowrap','width':'1%'}).html('<img src="images/vbox/'+vboxApplianceProps[p].icon+'_16px.png" /> ' + trans(vboxApplianceProps[p].label,'UIApplianceEditorWidget')).appendTo(tr);
+
+ $('<td />').attr({'class':'vboxHideOverflow vboxAppProp'+p}).css({'width':'100%','padding-left':'10px','padding-right':'2px'}).html('<div>'+$('<div />').text(($(trparent).data('vm')[p]||'')).html()+'</div>').dblclick((vboxApplianceProps[p].textarea ? vboxExportAppliancePropEditArea : vboxExportAppliancePropEdit )).appendTo(tr);
+
+ $(tbl).append(tr);
+ }
+ }
+ vboxColorRows(tbl,false,'vboxTableParent');
+
+
+};
+
+
+/* Edit property that has a text area */
+function vboxExportAppliancePropEditArea(evt,elm) {
+ vboxExportAppliancePropEditDialog(evt.target, $('<span />').html($(evt.target).html()).text());
+}
+
+/* Edit property dialog */
+function vboxExportAppliancePropEditDialog(elm, defaults) {
+
+ var d = $('<div />').css({'display':'none'});
+ var frm = $('<form />').attr({'onSubmit':'return false;'}).css({'margin':'0px','border':'0px','padding':'0px','width':'100%','height':'100%'});
+ $('<textarea />').attr({'id':'vboxExportAppliancePropTextarea'}).css({'height':'99%','width':'99%'}).val(defaults).appendTo(frm);
+ $(d).append(frm);
+
+ var buttons = {};
+ buttons[trans('OK','QIMessageBox')] = function(){
+ var d = vboxDivOverflowHidden(elm);
+ $(d).html($('<div />').text($('#vboxExportAppliancePropTextarea').val()).html());
+ $(elm).html('').append(d);
+ $(this).empty().remove();
+ };
+ buttons[trans('Cancel','QIMessageBox')] = function(){
+ $(this).empty().remove();
+ };
+ $(d).dialog({'height':300,'width':300,'closeOnEscape':false,'modal':true,'resizable':true,'dialogClass':'vboxDialogContent','draggable':true,'buttons':buttons,'title':$(elm).parent().siblings().first().html()});
+
+}
+/* Edit property that has a text box */
+function vboxExportAppliancePropEdit(evt,elm) {
+ var input = $('<input />').attr({'type':'text','class':'vboxText'}).css({'width':($(this).innerWidth()-12)+'px','margin':'0px'}).val($('<div />').html($(this).children().first().html()).text()).blur(function(){
+ var v = $(this).val();
+ var p = $(this).parent();
+ var d = vboxDivOverflowHidden(p);
+ $(this).remove();
+ $(d).html($('<div />').text(v).html());
+ $(p).html('').append(d);
+ }).keydown(function(e){if(e.keyCode == 13) $(this).trigger('blur');});
+ $(this).html('').append(input).children().first().focus();
+}
+
+</script>