1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Add delete SSH Key dialog

This commit is contained in:
Hideki Nakamura 2017-12-18 00:53:03 +09:00
parent 2a9d0a5e7d
commit 53e012f296
2 changed files with 52 additions and 16 deletions

View File

@ -53,15 +53,55 @@ RED.projects.userSettings = (function() {
var sshkeyListOptions = { var sshkeyListOptions = {
height: "300px", height: "300px",
deleteAction: function(entry, header) { deleteAction: function(entry, header) {
sendSSHKeyManagementAPI("DELETE_KEY", entry.name, function(data) { var spinner = utils.addSpinnerOverlay(header).addClass('projects-dialog-spinner-contain');
var notification = RED.notify("Are you sure you want to delete the SSH Keys '"+entry.name+"'? This cannot be undone.", {
type: 'warning',
modal: true,
fixed: true,
buttons: [
{
text: RED._("common.label.cancel"),
click: function() {
spinner.remove();
notification.close();
}
},
{
text: "Delete SSH Keys",
click: function() {
notification.close();
sendSSHKeyManagementAPI("DELETE_KEY", entry.name, null, function(data) {
spinner.remove();
hideSSHKeyGenerateForm(); hideSSHKeyGenerateForm();
utils.refreshSSHKeyList(sshkeysList); utils.refreshSSHKeyList(sshkeysList);
}, function(err) {
spinner.remove();
console.log('Delete error! error:', err);
notification = RED.notify("Failed to delete the SSH Keys '"+entry.name+"'.", {
type: "error",
modal: true,
fixed: false
});
});
}
}
]
}); });
}, },
selectAction: function(entry, header) { selectAction: function(entry, header) {
sendSSHKeyManagementAPI("GET_KEY_DETAIL", entry.name, function(data) { var spinner = utils.addSpinnerOverlay(header).addClass('projects-dialog-spinner-contain');
sendSSHKeyManagementAPI("GET_KEY_DETAIL", entry.name, null, function(data) {
spinner.remove();
setDialogContext(entry.name, data.publickey); setDialogContext(entry.name, data.publickey);
dialog.dialog("open"); dialog.dialog("open");
}, function(err) {
console.log('Get SSH Key detail error! error:', err);
spinner.remove();
notification = RED.notify("Failed to get the SSH Key detail '"+entry.name+"'.", {
type: "error",
modal: true,
fixed: false
});
}); });
} }
}; };
@ -135,6 +175,7 @@ RED.projects.userSettings = (function() {
password: sshkeyPassphraseInput.val(), password: sshkeyPassphraseInput.val(),
size: 4096 size: 4096
}, },
gitconfigContainer,
function() { function() {
hideSSHKeyGenerateForm(); hideSSHKeyGenerateForm();
utils.refreshSSHKeyList(sshkeysList); utils.refreshSSHKeyList(sshkeysList);
@ -154,7 +195,7 @@ RED.projects.userSettings = (function() {
}); });
} }
function sendSSHKeyManagementAPI(type, param, successCallback, failCallback) { function sendSSHKeyManagementAPI(type, param, overlay, successCallback, failCallback) {
var url; var url;
var method; var method;
var payload; var payload;
@ -180,10 +221,13 @@ RED.projects.userSettings = (function() {
console.error('Unexpected type....'); console.error('Unexpected type....');
return; return;
} }
var spinner = utils.addSpinnerOverlay(gitconfigContainer); // var spinner = utils.addSpinnerOverlay(gitconfigContainer);
var spinner = overlay ? utils.addSpinnerOverlay(overlay) : null;
var done = function(err) { var done = function(err) {
if ( spinner ) {
spinner.remove(); spinner.remove();
}
if (err) { if (err) {
console.log(err); console.log(err);
return; return;

View File

@ -728,8 +728,6 @@ RED.projects = (function() {
return container; return container;
} }
// var selectedSSHKey = null;
// var sshkeyList = null;
$.fn.isVisible = function() { $.fn.isVisible = function() {
return $.expr.filters.visible(this[0]); return $.expr.filters.visible(this[0]);
} }
@ -774,7 +772,6 @@ RED.projects = (function() {
}); });
$.getJSON("settings/user/keys", function(data) { $.getJSON("settings/user/keys", function(data) {
data.keys.forEach(function(key) { data.keys.forEach(function(key) {
console.log('key:', key);
if ( sshkeyList ) { if ( sshkeyList ) {
sshkeyList.editableList('addItem',key); sshkeyList.editableList('addItem',key);
} }
@ -788,7 +785,6 @@ RED.projects = (function() {
$.data(container[0], 'selected', null); $.data(container[0], 'selected', null);
$.data(container[0], 'sshkeys', sshkeyList); $.data(container[0], 'sshkeys', sshkeyList);
} }
console.log('container.sshkeys:', container.data('sshkeys'));
return container; return container;
} }
function getSelectedSSHKey(container) { function getSelectedSSHKey(container) {
@ -801,16 +797,12 @@ RED.projects = (function() {
} }
} }
function refreshSSHKeyList(container) { function refreshSSHKeyList(container) {
console.log('refreshSSHKeyList');
var sshkeyList = $.data(container[0], 'sshkeys'); var sshkeyList = $.data(container[0], 'sshkeys');
console.log(' ---> container:', container);
console.log(' ---> container.sshkeyList:', sshkeyList);
if ( container && sshkeyList ) { if ( container && sshkeyList ) {
sshkeyList.empty(); sshkeyList.empty();
$.getJSON("settings/user/keys", function(data) { $.getJSON("settings/user/keys", function(data) {
var keyList = $.data(container[0], 'sshkeys'); var keyList = $.data(container[0], 'sshkeys');
data.keys.forEach(function(key) { data.keys.forEach(function(key) {
console.log('key:', key);
if ( keyList ) { if ( keyList ) {
keyList.editableList('addItem',key); keyList.editableList('addItem',key);
} }