add qemu SSHKey Edit for CloudInit

displays all ssh keys in a big textarea, and lets you load one
from a file

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2018-03-15 16:21:34 +01:00 committed by Wolfgang Bumiller
parent 593b4f6151
commit 8a1e3f6c6b
2 changed files with 93 additions and 0 deletions

View File

@ -129,6 +129,7 @@ JSSRC= \
qemu/CreateWizard.js \
qemu/USBEdit.js \
qemu/AgentIPView.js \
qemu/SSHKey.js \
qemu/IPConfigEdit.js \
lxc/Summary.js \
lxc/Network.js \

View File

@ -0,0 +1,92 @@
Ext.define('PVE.qemu.SSHKeyInputPanel', {
extend: 'Proxmox.panel.InputPanel',
xtype: 'pveQemuSSHKeyInputPanel',
insideWizard: false,
onGetValues: function(values) {
var me = this;
if (values.sshkeys) {
values.sshkeys.trim();
}
if (!values.sshkeys.length) {
values = {};
values['delete'] = 'sshkeys';
return values;
} else {
values.sshkeys = encodeURIComponent(values.sshkeys);
}
return values;
},
items: [
{
xtype: 'textarea',
itemId: 'sshkeys',
name: 'sshkeys',
height: 250
},
{
xtype: 'filebutton',
itemId: 'filebutton',
name: 'file',
text: gettext('Load SSH Key File'),
fieldLabel: 'test',
listeners: {
change: function(btn, e, value) {
var me = this.up('inputpanel');
e = e.event;
Ext.Array.each(e.target.files, function(file) {
PVE.Utils.loadSSHKeyFromFile(file, function(res) {
var keysField = me.down('#sshkeys');
var old = keysField.getValue();
keysField.setValue(old + res);
});
});
btn.reset();
}
}
}
],
initComponent: function() {
var me = this;
me.callParent();
if (!window.FileReader) {
me.down('#filebutton').setVisible(false);
}
}
});
Ext.define('PVE.qemu.SSHKeyEdit', {
extend: 'Proxmox.window.Edit',
width: 800,
initComponent : function() {
var me = this;
var ipanel = Ext.create('PVE.qemu.SSHKeyInputPanel');
Ext.apply(me, {
subject: gettext('SSH Keys'),
items: [ ipanel ]
});
me.callParent();
if (!me.create) {
me.load({
success: function(response, options) {
var data = response.result.data;
if (data.sshkeys) {
data.sshkeys = decodeURIComponent(data.sshkeys);
ipanel.setValues(data);
}
}
});
}
}
});