mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Fixes and improvements with comments
This commit is contained in:
parent
eab512ef22
commit
83696abf9d
@ -131,12 +131,15 @@
|
||||
}
|
||||
}
|
||||
if (node._def.credentials) {
|
||||
const credsDefinition = node._def.credentials;
|
||||
const credsChanged = updateNodeCredentials(node, credsDefinition, this.inputClass);
|
||||
const credDefinition = node._def.credentials;
|
||||
const credChanges = updateNodeCredentials(node, credDefinition, this.inputClass);
|
||||
|
||||
if (credsChanged) {
|
||||
if (Object.keys(credChanges).length) {
|
||||
editState.changed = true;
|
||||
editState.changes.credentials = node.credentials._;
|
||||
editState.changes.credentials = {
|
||||
...(editState.changes.credentials || {}),
|
||||
...credChanges
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -165,10 +168,11 @@
|
||||
* @param node - the node containing the credentials
|
||||
* @param credDefinition - definition of the credentials
|
||||
* @param prefix - prefix of the input fields
|
||||
* @return {boolean} whether anything has changed
|
||||
* @return {object} an object containing the modified properties
|
||||
*/
|
||||
function updateNodeCredentials(node, credDefinition, prefix) {
|
||||
var changed = false;
|
||||
const changes = {};
|
||||
|
||||
if (!node.credentials) {
|
||||
node.credentials = {_:{}};
|
||||
} else if (!node.credentials._) {
|
||||
@ -181,23 +185,32 @@
|
||||
if (input.length > 0) {
|
||||
var value = input.val();
|
||||
if (credDefinition[cred].type == 'password') {
|
||||
node.credentials['has_' + cred] = (value !== "");
|
||||
|
||||
// Skip if the credential has not changed
|
||||
if ((value === '__PWRD__' && node.credentials._['has_' + cred] === true) ||
|
||||
(value === "" && node.credentials._['has_' + cred] === false)) {
|
||||
continue;
|
||||
if (value === '__PWRD__') {
|
||||
// A cred value exists - no changes
|
||||
} else if (value === '' && node.credentials['has_' + cred] === false) {
|
||||
// Empty cred value exists - no changes
|
||||
} else if (value === node.credentials[cred]) {
|
||||
// A cred value exists locally in the editor - no changes
|
||||
// Like the user sets a value, saves the config,
|
||||
// reopens the config and save the config again
|
||||
} else {
|
||||
changes[cred] = node.credentials[cred];
|
||||
node.credentials[cred] = value;
|
||||
}
|
||||
|
||||
changed = true;
|
||||
}
|
||||
node.credentials[cred] = value;
|
||||
if (value != node.credentials._[cred]) {
|
||||
changed = true;
|
||||
node.credentials['has_' + cred] = (value !== '');
|
||||
} else {
|
||||
// Since these creds are loaded by the editor,
|
||||
// values can be directly compared
|
||||
if (value !== node.credentials[cred]) {
|
||||
changes[cred] = node.credentials[cred];
|
||||
node.credentials[cred] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
|
||||
return changes;
|
||||
}
|
||||
})();
|
||||
|
Loading…
x
Reference in New Issue
Block a user