mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
[help-sidebar] Refresh help on node selection
This commit is contained in:
parent
f25e4ea520
commit
4af1cf1d1f
@ -593,7 +593,8 @@
|
||||
"search": "Search help",
|
||||
"nodeHelp": "Node Help",
|
||||
"showHelp": "Show help",
|
||||
"showTopics": "Show topics"
|
||||
"showTopics": "Show topics",
|
||||
"noHelp": "No help topic selected"
|
||||
},
|
||||
"config": {
|
||||
"name": "Configuration nodes",
|
||||
|
@ -37,15 +37,9 @@ RED.sidebar.help = (function() {
|
||||
content.className = "red-ui-sidebar-info"
|
||||
|
||||
toolbar = $("<div>", {class:"red-ui-sidebar-header red-ui-info-toolbar"}).appendTo(content);
|
||||
|
||||
$('<span class="button-group"><a id="red-ui-sidebar-help-show-toc" class="red-ui-sidebar-header-button selected" href="#"><i class="fa fa-angle-right"></i> <i class="fa fa-list-alt"></i></a></span>').appendTo(toolbar)
|
||||
|
||||
|
||||
$('<span class="button-group"><a id="red-ui-sidebar-help-show-toc" class="red-ui-button red-ui-button-small selected" href="#"><i class="fa fa-list-ul"></i></a></span>').appendTo(toolbar)
|
||||
var showTOCButton = toolbar.find('#red-ui-sidebar-help-show-toc')
|
||||
|
||||
RED.popover.tooltip(showTOCButton,RED._("sidebar.help.showTopics"));
|
||||
|
||||
|
||||
showTOCButton.on("click",function(e) {
|
||||
e.preventDefault();
|
||||
if ($(this).hasClass('selected')) {
|
||||
@ -55,15 +49,7 @@ RED.sidebar.help = (function() {
|
||||
}
|
||||
});
|
||||
|
||||
// var searchInput = $('<input type="text">').appendTo(toolbar).searchBox({
|
||||
// delay: 300,
|
||||
// change: function() {}
|
||||
// });
|
||||
|
||||
|
||||
var stackContainer = $("<div>",{class:"red-ui-sidebar-help-stack"}).appendTo(content);
|
||||
// var container = $("<div>", {class:"red-ui-info-outline"}).css({'height': '100%'});
|
||||
|
||||
|
||||
tocPanel = $("<div>", {class: "red-ui-sidebar-help-toc"}).appendTo(stackContainer);
|
||||
var helpPanel = $("<div>").css({
|
||||
@ -75,8 +61,6 @@ RED.sidebar.help = (function() {
|
||||
})
|
||||
panels.ratio(0.5);
|
||||
|
||||
// var searchDiv = $("<div>",{class: "red-ui-help-search"}).appendTo(tocPanel);
|
||||
|
||||
helpSearch = $('<input type="text" data-i18n="[placeholder]sidebar.help.search">').appendTo(toolbar).searchBox({
|
||||
delay: 100,
|
||||
change: function() {
|
||||
@ -105,6 +89,8 @@ RED.sidebar.help = (function() {
|
||||
"padding":"6px",
|
||||
}).appendTo(helpPanel)
|
||||
|
||||
$('<span class="red-ui-help-info-none">'+RED._("sidebar.help.noHelp")+'</span>').appendTo(helpSection);
|
||||
|
||||
treeList = $("<div>").css({width: "100%"}).appendTo(tocPanel).treeList({data: []})
|
||||
treeList.on('treelistselect', function(e,item) {
|
||||
if (item.nodeType) {
|
||||
@ -228,6 +214,9 @@ RED.sidebar.help = (function() {
|
||||
})
|
||||
})
|
||||
if (nodeTypes.length > 0) {
|
||||
nodeTypes.sort(function(A,B) {
|
||||
return A.nodeType.localeCompare(B.nodeType)
|
||||
})
|
||||
helpData[0].children.push({
|
||||
id: moduleName,
|
||||
icon: "fa fa-cube",
|
||||
@ -288,44 +277,6 @@ RED.sidebar.help = (function() {
|
||||
});
|
||||
return el;
|
||||
}
|
||||
function refresh(node) {
|
||||
if (node === undefined) {
|
||||
refreshSelection();
|
||||
return;
|
||||
}
|
||||
var subflowNode;
|
||||
helpSection.empty();
|
||||
if (node === null || Array.isArray(node)) {
|
||||
return;
|
||||
} else {
|
||||
// A single 'thing' selected.
|
||||
|
||||
// Check to see if this is a subflow or subflow instance
|
||||
var m = /^subflow(:(.+))?$/.exec(node.type);
|
||||
if (m) {
|
||||
if (m[2]) {
|
||||
subflowNode = RED.nodes.subflow(m[2]);
|
||||
} else {
|
||||
subflowNode = node;
|
||||
}
|
||||
}
|
||||
var helpText = "";
|
||||
if (node.type === "tab" || node.type === "subflow") {
|
||||
} else {
|
||||
if (subflowNode && node.type !== "subflow") {
|
||||
// Selected a subflow instance node.
|
||||
// - The subflow template info goes into help
|
||||
helpText = (RED.utils.renderMarkdown(subflowNode.info||"")||('<span class="red-ui-help-info-none">'+RED._("sidebar.info.none")+'</span>'));
|
||||
setInfoText(node.type, helpText, helpSection);
|
||||
} else {
|
||||
helpSearch.searchBox("value",node.type);
|
||||
// helpText = $("script[data-help-name='"+node.type+"']").html()||('<span class="red-ui-help-info-none">'+RED._("sidebar.info.none")+'</span>');
|
||||
}
|
||||
}
|
||||
|
||||
// $(".red-ui-sidebar-info-stack").scrollTop(0);
|
||||
}
|
||||
}
|
||||
|
||||
function setInfoText(title, infoText,target) {
|
||||
if (title) {
|
||||
@ -354,41 +305,24 @@ RED.sidebar.help = (function() {
|
||||
show();
|
||||
}
|
||||
|
||||
// function refreshSelection(selection) {
|
||||
// if (selection === undefined) {
|
||||
// selection = RED.view.selection();
|
||||
// }
|
||||
// if (selection.nodes) {
|
||||
// if (selection.nodes.length == 1) {
|
||||
// var node = selection.nodes[0];
|
||||
// if (node.type === "subflow" && node.direction) {
|
||||
// refresh(RED.nodes.subflow(node.z));
|
||||
// } else {
|
||||
// refresh(node);
|
||||
// }
|
||||
// } else {
|
||||
// refresh(selection.nodes);
|
||||
// }
|
||||
// } else if (selection.flows || selection.subflows) {
|
||||
// refresh(selection.flows);
|
||||
// } else {
|
||||
// var activeWS = RED.workspaces.active();
|
||||
//
|
||||
// var flow = RED.nodes.workspace(activeWS) || RED.nodes.subflow(activeWS);
|
||||
// if (flow) {
|
||||
// refresh(flow);
|
||||
// } else {
|
||||
// var workspace = RED.nodes.workspace(RED.workspaces.active());
|
||||
// if (workspace && workspace.info) {
|
||||
// refresh(workspace);
|
||||
// } else {
|
||||
// refresh(null)
|
||||
// // clear();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// RED.events.on("view:selection-changed",refreshSelection);
|
||||
function refreshSelection(selection) {
|
||||
if (selection === undefined) {
|
||||
selection = RED.view.selection();
|
||||
}
|
||||
if (selection.nodes) {
|
||||
if (selection.nodes.length == 1) {
|
||||
var node = selection.nodes[0];
|
||||
if (node.type === "subflow" && node.direction) {
|
||||
// ignore subflow virtual ports
|
||||
} else if (node.type !== 'group'){
|
||||
showHelp(node.type);
|
||||
}
|
||||
} else {
|
||||
refresh(selection.nodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
RED.events.on("view:selection-changed",refreshSelection);
|
||||
|
||||
return {
|
||||
init: init,
|
||||
|
Loading…
Reference in New Issue
Block a user