Add RED.actions.getLabel to retrieve action i18n label

This commit is contained in:
Nick O'Leary 2022-06-16 13:48:36 +01:00
parent 22879f8c23
commit ea46947054
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
1 changed files with 31 additions and 22 deletions

View File

@ -21,28 +21,12 @@ RED.actions = (function() {
function getAction(name) { function getAction(name) {
return actions[name].handler; return actions[name].handler;
} }
function invokeAction() { function getActionLabel(name) {
var args = Array.prototype.slice.call(arguments); let def = actions[name]
var name = args.shift(); if (!def) {
if (actions.hasOwnProperty(name)) { return ''
var handler = actions[name].handler;
handler.apply(null, args);
}
}
function listActions() {
var result = [];
var missing = [];
Object.keys(actions).forEach(function(action) {
var def = actions[action];
var shortcut = RED.keyboard.getShortcut(action);
var isUser = false;
if (shortcut) {
isUser = shortcut.user;
} else {
isUser = !!RED.keyboard.getUserShortcut(action);
} }
if (!def.label) { if (!def.label) {
var name = action;
var options = def.options; var options = def.options;
var key = options ? options.label : undefined; var key = options ? options.label : undefined;
if (!key) { if (!key) {
@ -58,12 +42,36 @@ RED.actions = (function() {
return " "+arguments[4].toUpperCase(); return " "+arguments[4].toUpperCase();
} }
}); });
missing.push(key);
} }
def.label = label; def.label = label;
} }
//console.log("; missing:", missing); return def.label
}
function invokeAction() {
var args = Array.prototype.slice.call(arguments);
var name = args.shift();
if (actions.hasOwnProperty(name)) {
var handler = actions[name].handler;
handler.apply(null, args);
}
}
function listActions() {
var result = [];
Object.keys(actions).forEach(function(action) {
var def = actions[action];
var shortcut = RED.keyboard.getShortcut(action);
var isUser = false;
if (shortcut) {
isUser = shortcut.user;
} else {
isUser = !!RED.keyboard.getUserShortcut(action);
}
if (!def.label) {
def.label = getActionLabel(action)
}
result.push({ result.push({
id:action, id:action,
scope:shortcut?shortcut.scope:undefined, scope:shortcut?shortcut.scope:undefined,
@ -79,6 +87,7 @@ RED.actions = (function() {
add: addAction, add: addAction,
remove: removeAction, remove: removeAction,
get: getAction, get: getAction,
getLabel: getActionLabel,
invoke: invokeAction, invoke: invokeAction,
list: listActions list: listActions
} }