diff --git a/public/index.html b/public/index.html index 30ee93aa8..59740b39f 100644 --- a/public/index.html +++ b/public/index.html @@ -314,6 +314,7 @@ + diff --git a/public/red/nodes.js b/public/red/nodes.js index 9593a158c..9d56153e8 100644 --- a/public/red/nodes.js +++ b/public/red/nodes.js @@ -39,7 +39,7 @@ RED.nodes = function() { function addNode(n) { if (n._def.category == "config") { configNodes[n.id] = n; - RED.configTab.refresh(); + RED.sidebar.config.refresh(); } else { n.dirty = true; nodes.push(n); @@ -58,7 +58,7 @@ RED.nodes = function() { } } if (updatedConfigNode) { - RED.configTab.refresh(); + RED.sidebar.config.refresh(); } } } diff --git a/public/red/ui/editor.js b/public/red/ui/editor.js index 73ce15f8c..e39af3f00 100644 --- a/public/red/ui/editor.js +++ b/public/red/ui/editor.js @@ -274,8 +274,9 @@ RED.editor = function() { } $( this ).dialog('option','height','auto'); $( this ).dialog('option','width','500'); + RED.sidebar.info.refresh(editing_node); + RED.sidebar.config.refresh(); editing_node = null; - RED.configTab.refresh(); } }); @@ -474,7 +475,7 @@ RED.editor = function() { if (RED.view.state() != RED.state.EDITING) { RED.keyboard.enable(); } - RED.configTab.refresh(); + RED.sidebar.config.refresh(); } }); diff --git a/public/red/ui/sidebar.js b/public/red/ui/sidebar.js index 2f6f9ce5d..400877080 100644 --- a/public/red/ui/sidebar.js +++ b/public/red/ui/sidebar.js @@ -34,18 +34,9 @@ RED.sidebar = function() { //$('#sidebar').tabs("refresh"); } - var content = document.createElement("div"); - content.id = "tab-info"; - content.style.paddingTop = "4px"; - content.style.paddingLeft = "4px"; - content.style.paddingRight = "4px"; - - addTab("info",content); - $('#btn-sidebar').click(function() {toggleSidebar();}); RED.keyboard.add(/* SPACE */ 32,{ctrl:true},function(){toggleSidebar();d3.event.preventDefault();}); - var sidebarSeparator = {}; $("#sidebar-separator").draggable({ axis: "x", diff --git a/public/red/ui/tab-config.js b/public/red/ui/tab-config.js index 9bd298e86..af1f676d2 100644 --- a/public/red/ui/tab-config.js +++ b/public/red/ui/tab-config.js @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ -RED.configTab = function() { +RED.sidebar.config = function() { var content = document.createElement("div"); content.id = "tab-config"; diff --git a/public/red/ui/tab-info.js b/public/red/ui/tab-info.js new file mode 100644 index 000000000..1fdb18d76 --- /dev/null +++ b/public/red/ui/tab-info.js @@ -0,0 +1,69 @@ +/** + * Copyright 2013 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ +RED.sidebar.info = function() { + + var content = document.createElement("div"); + content.id = "tab-info"; + content.style.paddingTop = "4px"; + content.style.paddingLeft = "4px"; + content.style.paddingRight = "4px"; + + RED.sidebar.addTab("info",content); + + function refresh(node) { + var table = ''; + + table += ""; + table += ""; + table += ''; + for (var n in node._def.defaults) { + var val = node[n]||""; + var type = typeof val; + if (type === "string") { + if (val.length > 30) { + val = val.substring(0,30)+" ..."; + } + } else if (type === "number") { + val = val.toString(); + } else if ($.isArray(val)) { + val = "[
"; + for (var i=0;i/g,">"); + val += " "+i+": "+vv+"
"; + } + if (node[n].length > 10) { + val += " ... "+node[n].length+" items
"; + } + val += "]"; + } else { + val = JSON.stringify(val,jsonFilter," "); + val = val.replace(/&/g,"&").replace(//g,">"); + } + + table += "
"; + } + table += "
Type "+node.type+"
ID "+node.id+"
 Properties
 "+n+""+val+"

"; + table += '
'+($("script[data-help-name|='"+node.type+"']").html()||"")+"
"; + $("#tab-info").html(table); + } + + return { + refresh:refresh, + clear: function() { + $("#tab-info").html(""); + } + } +}(); diff --git a/public/red/ui/view.js b/public/red/ui/view.js index bc37c1acf..e0c4506de 100644 --- a/public/red/ui/view.js +++ b/public/red/ui/view.js @@ -475,9 +475,9 @@ RED.view = function() { } if (moving_set.length == 1) { - buildInfo(moving_set[0].n); + RED.sidebar.info.refresh(moving_set[0].n); } else { - $("#tab-info").html(""); + RED.sidebar.info.clear(); } } @@ -538,43 +538,6 @@ RED.view = function() { return value; } - function buildInfo(node) { - var table = ''; - - table += ""; - table += ""; - table += ''; - for (var n in node._def.defaults) { - var val = node[n]||""; - var type = typeof val; - if (type === "string") { - if (val.length > 30) { - val = val.substring(0,30)+" ..."; - } - } else if (type === "number") { - val = val.toString(); - } else if ($.isArray(val)) { - val = "[
"; - for (var i=0;i/g,">"); - val += " "+i+": "+vv+"
"; - } - if (node[n].length > 10) { - val += " ... "+node[n].length+" items
"; - } - val += "]"; - } else { - val = JSON.stringify(val,jsonFilter," "); - val = val.replace(/&/g,"&").replace(//g,">"); - } - - table += "
"; - } - table += "
Type "+node.type+"
ID "+node.id+"
 Properties
 "+n+""+val+"

"; - table += '
'+($("script[data-help-name|='"+node.type+"']").html()||"")+"
"; - $("#tab-info").html(table); - } - function calculateTextWidth(str) { var sp = document.createElement("span"); sp.className = "node_label";