mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Merge branch 'master' into dev
This commit is contained in:
@@ -524,8 +524,8 @@
|
||||
"title": "パレットの管理",
|
||||
"palette": "パレット",
|
||||
"times": {
|
||||
"seconds": "秒前",
|
||||
"minutes": "分前",
|
||||
"seconds": "数秒前",
|
||||
"minutes": "数分前",
|
||||
"minutesV": "__count__ 分前",
|
||||
"hoursV": "__count__ 時間前",
|
||||
"hoursV_plural": "__count__ 時間前",
|
||||
|
@@ -1424,6 +1424,8 @@ RED.nodes = (function() {
|
||||
nid = getID();
|
||||
workspace_map[n.id] = nid;
|
||||
n.id = nid;
|
||||
} else {
|
||||
workspace_map[n.id] = n.id;
|
||||
}
|
||||
addWorkspace(n);
|
||||
RED.workspaces.add(n);
|
||||
@@ -1523,7 +1525,7 @@ RED.nodes = (function() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (n.z && !workspaces[n.z] && !subflow_map[n.z]) {
|
||||
if (n.z && !workspace_map[n.z] && !subflow_map[n.z]) {
|
||||
n.z = activeWorkspace;
|
||||
}
|
||||
}
|
||||
@@ -1621,7 +1623,7 @@ RED.nodes = (function() {
|
||||
node.id = getID();
|
||||
} else {
|
||||
node.id = n.id;
|
||||
if (node.z == null || (!workspaces[node.z] && !subflow_map[node.z])) {
|
||||
if (node.z == null || (!workspace_map[node.z] && !subflow_map[node.z])) {
|
||||
if (createMissingWorkspace) {
|
||||
if (missingWorkspace === null) {
|
||||
missingWorkspace = RED.workspaces.add(null,true);
|
||||
|
@@ -1186,22 +1186,6 @@ RED.clipboard = (function() {
|
||||
}
|
||||
}
|
||||
|
||||
function getNodeLabelText(n) {
|
||||
var label = n.name || n.type+": "+n.id;
|
||||
if (n._def.label) {
|
||||
try {
|
||||
label = (typeof n._def.label === "function" ? n._def.label.call(n) : n._def.label)||"";
|
||||
} catch(err) {
|
||||
console.log("Definition error: "+n.type+".label",err);
|
||||
}
|
||||
}
|
||||
var newlineIndex = label.indexOf("\\n");
|
||||
if (newlineIndex > -1) {
|
||||
label = label.substring(0,newlineIndex)+"...";
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
||||
function getFlowLabel(n) {
|
||||
n = JSON.parse(JSON.stringify(n));
|
||||
n._def = RED.nodes.getType(n.type) || {};
|
||||
@@ -1227,16 +1211,8 @@ RED.clipboard = (function() {
|
||||
if (n._def) {
|
||||
n._ = n._def._;
|
||||
}
|
||||
var div = $('<div>',{class:"red-ui-info-outline-item"});
|
||||
RED.utils.createNodeIcon(n).appendTo(div);
|
||||
var contentDiv = $('<div>',{class:"red-ui-search-result-description"}).appendTo(div);
|
||||
var labelText = getNodeLabelText(n);
|
||||
var label = $('<div>',{class:"red-ui-search-result-node-label red-ui-info-outline-item-label"}).appendTo(contentDiv);
|
||||
if (labelText) {
|
||||
label.text(labelText)
|
||||
} else {
|
||||
label.html(n.type)
|
||||
}
|
||||
var div = $('<div>',{class:"red-ui-node-list-item"});
|
||||
RED.utils.createNodeIcon(n,true).appendTo(div);
|
||||
return div;
|
||||
}
|
||||
|
||||
|
@@ -71,7 +71,7 @@
|
||||
var buttons = this.options.buttons || [];
|
||||
|
||||
if (this.options.addButton !== false) {
|
||||
var addLabel, addTittle;
|
||||
var addLabel, addTitle;
|
||||
if (typeof this.options.addButton === 'string') {
|
||||
addLabel = this.options.addButton
|
||||
} else {
|
||||
@@ -102,7 +102,7 @@
|
||||
button.click(evt);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (button.title) {
|
||||
element.attr("title", button.title);
|
||||
}
|
||||
@@ -113,7 +113,7 @@
|
||||
element.append($("<span></span>").text(" " + button.label));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (this.element.css("position") === "absolute") {
|
||||
["top","left","bottom","right"].forEach(function(s) {
|
||||
var v = that.element.css(s);
|
||||
|
@@ -312,7 +312,7 @@
|
||||
}
|
||||
if (child.depth !== parent.depth+1) {
|
||||
child.depth = parent.depth+1;
|
||||
var labelPaddingWidth = ((child.gutter?child.gutter.width()+2:0)+(child.depth*20));
|
||||
var labelPaddingWidth = ((child.gutter ? child.gutter[0].offsetWidth + 2 : 0) + (child.depth * 20));
|
||||
child.treeList.labelPadding.width(labelPaddingWidth+'px');
|
||||
if (child.element) {
|
||||
$(child.element).css({
|
||||
@@ -348,6 +348,18 @@
|
||||
that._selected.delete(item);
|
||||
delete item.treeList;
|
||||
delete that._items[item.id];
|
||||
if(item.depth === 0) {
|
||||
for(var key in that._items) {
|
||||
if (that._items.hasOwnProperty(key)) {
|
||||
var child = that._items[key];
|
||||
if(child.parent && child.parent.id === item.id) {
|
||||
delete that._items[key].treeList;
|
||||
delete that._items[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
that._data = that._data.filter(function(data) { return data.id !== item.id})
|
||||
}
|
||||
}
|
||||
item.treeList.insertChildAt = function(newItem,position,select) {
|
||||
newItem.parent = item;
|
||||
@@ -480,7 +492,10 @@
|
||||
if (item.treeList.container) {
|
||||
$(item.element).remove();
|
||||
$(element).appendTo(item.treeList.label);
|
||||
var labelPaddingWidth = (item.gutter?item.gutter.width()+2:0)+(item.depth*20);
|
||||
// using the JQuery Object, the gutter width will
|
||||
// be wrong when the element is reattached the second time
|
||||
var labelPaddingWidth = (item.gutter ? item.gutter[0].offsetWidth + 2 : 0) + (item.depth * 20);
|
||||
|
||||
$(element).css({
|
||||
width: "calc(100% - "+(labelPaddingWidth+20+(item.icon?20:0))+"px)"
|
||||
})
|
||||
@@ -516,7 +531,7 @@
|
||||
}).appendTo(label)
|
||||
|
||||
}
|
||||
var labelPaddingWidth = (item.gutter?item.gutter.width()+2:0)+(depth*20);
|
||||
var labelPaddingWidth = (item.gutter ? item.gutter[0].offsetWidth + 2 : 0) + (depth * 20)
|
||||
item.treeList.labelPadding = $('<span>').css({
|
||||
display: "inline-block",
|
||||
width: labelPaddingWidth+'px'
|
||||
|
@@ -15,7 +15,7 @@
|
||||
**/
|
||||
(function($) {
|
||||
var contextParse = function(v,defaultStore) {
|
||||
var parts = RED.utils.parseContextKey(v, defaultStore);
|
||||
var parts = RED.utils.parseContextKey(v, defaultStore&&defaultStore.value);
|
||||
return {
|
||||
option: parts.store,
|
||||
value: parts.key
|
||||
@@ -279,6 +279,14 @@
|
||||
var contextStores = RED.settings.context.stores;
|
||||
var contextOptions = contextStores.map(function(store) {
|
||||
return {value:store,label: store, icon:'<i class="red-ui-typedInput-icon fa fa-database"></i>'}
|
||||
}).sort(function(A,B) {
|
||||
if (A.value === RED.settings.context.default) {
|
||||
return -1;
|
||||
} else if (B.value === RED.settings.context.default) {
|
||||
return 1;
|
||||
} else {
|
||||
return A.value.localeCompare(B.value);
|
||||
}
|
||||
})
|
||||
if (contextOptions.length < 2) {
|
||||
allOptions.flow.options = [];
|
||||
@@ -389,6 +397,11 @@
|
||||
evt.stopPropagation();
|
||||
}).on('focus', function() {
|
||||
that.uiSelect.addClass('red-ui-typedInput-focus');
|
||||
}).on('blur', function() {
|
||||
var opt = that.typeMap[that.propertyType];
|
||||
if (opt.hasValue === false) {
|
||||
that.uiSelect.removeClass('red-ui-typedInput-focus');
|
||||
}
|
||||
})
|
||||
|
||||
// explicitly set optionSelectTrigger display to inline-block otherwise jQ sets it to 'inline'
|
||||
@@ -438,7 +451,11 @@
|
||||
});
|
||||
|
||||
this._showMenu(this.optionMenu,this.optionSelectTrigger);
|
||||
var selectedOption = this.optionMenu.find("[value='"+this.optionValue+"']");
|
||||
var targetValue = this.optionValue;
|
||||
if (this.optionValue === null || this.optionValue === undefined) {
|
||||
targetValue = this.value();
|
||||
}
|
||||
var selectedOption = this.optionMenu.find("[value='"+targetValue+"']");
|
||||
if (selectedOption.length === 0) {
|
||||
selectedOption = this.optionMenu.children(":first");
|
||||
}
|
||||
@@ -669,6 +686,11 @@
|
||||
that.typeMap[result.value] = result;
|
||||
return result;
|
||||
});
|
||||
if (this.typeList.length < 2) {
|
||||
this.selectTrigger.attr("tabindex", -1)
|
||||
} else {
|
||||
this.selectTrigger.attr("tabindex", 0)
|
||||
}
|
||||
this.selectTrigger.toggleClass("disabled", this.typeList.length === 1);
|
||||
this.selectTrigger.find(".fa-caret-down").toggle(this.typeList.length > 1)
|
||||
if (this.menu) {
|
||||
@@ -768,6 +790,11 @@
|
||||
if (opt.hasValue === false || (opt.showLabel !== false && !opt.icon)) {
|
||||
this.selectLabel.text(opt.label);
|
||||
}
|
||||
if (opt.label) {
|
||||
this.selectTrigger.attr("title",opt.label);
|
||||
} else {
|
||||
this.selectTrigger.attr("title","");
|
||||
}
|
||||
if (opt.hasValue === false) {
|
||||
this.selectTrigger.addClass("red-ui-typedInput-full-width");
|
||||
} else {
|
||||
@@ -1004,16 +1031,17 @@
|
||||
this.uiSelect.hide();
|
||||
},
|
||||
disable: function(val) {
|
||||
if(val === true) {
|
||||
if(val === undefined || !!val ) {
|
||||
this.uiSelect.attr("disabled", "disabled");
|
||||
} else if (val === false) {
|
||||
this.uiSelect.attr("disabled", null); //remove attr
|
||||
} else {
|
||||
this.uiSelect.attr("disabled", val); //user value
|
||||
this.uiSelect.attr("disabled", null); //remove attr
|
||||
}
|
||||
},
|
||||
enable: function() {
|
||||
this.uiSelect.attr("disabled", null); //remove attr
|
||||
},
|
||||
disabled: function() {
|
||||
return this.uiSelect.attr("disabled");
|
||||
return this.uiSelect.attr("disabled") === "disabled";
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
@@ -119,7 +119,7 @@ RED.keyboard = (function() {
|
||||
} else {
|
||||
mergedKeymap[action] = [{
|
||||
scope: themeKeymap[action].scope || "*",
|
||||
key: [themeKeymap[action].key],
|
||||
key: themeKeymap[action].key,
|
||||
user: false
|
||||
}]
|
||||
if (mergedKeymap[action][0].scope === "workspace") {
|
||||
|
@@ -331,7 +331,7 @@ RED.palette.editor = (function() {
|
||||
nodeEntry.versionSpan.html(moduleInfo.version+' <i class="fa fa-long-arrow-right"></i> '+moduleInfo.pending_version).appendTo(nodeEntry.metaRow)
|
||||
nodeEntry.updateButton.text(RED._('palette.editor.updated')).addClass('disabled').css('display', 'inline-block');
|
||||
} else if (loadedIndex.hasOwnProperty(module)) {
|
||||
if (semVerCompare(loadedIndex[module].version,moduleInfo.version) === 1) {
|
||||
if (semVerCompare(loadedIndex[module].version,moduleInfo.version) > 0) {
|
||||
nodeEntry.updateButton.show();
|
||||
nodeEntry.updateButton.text(RED._('palette.editor.update',{version:loadedIndex[module].version}));
|
||||
} else {
|
||||
|
@@ -928,11 +928,11 @@ RED.projects.settings = (function() {
|
||||
|
||||
saveDisabled = isFlowInvalid || credFileLabelText.text()==="";
|
||||
|
||||
if (credentialSecretExistingInput.is(":visible")) {
|
||||
if (credentialSecretExistingRow.is(":visible")) {
|
||||
credentialSecretExistingInput.toggleClass("input-error", credentialSecretExistingInput.val() === "");
|
||||
saveDisabled = saveDisabled || credentialSecretExistingInput.val() === "";
|
||||
}
|
||||
if (credentialSecretNewInput.is(":visible")) {
|
||||
if (credentialSecretNewRow.is(":visible")) {
|
||||
credentialSecretNewInput.toggleClass("input-error", credentialSecretNewInput.val() === "");
|
||||
saveDisabled = saveDisabled || credentialSecretNewInput.val() === "";
|
||||
}
|
||||
@@ -1130,7 +1130,7 @@ RED.projects.settings = (function() {
|
||||
}
|
||||
if (credentialSecretResetButton.hasClass('selected') || credentialSecretEditButton.hasClass('selected')) {
|
||||
payload.credentialSecret = credentialSecretNewInput.val();
|
||||
if (credentialSecretExistingInput.is(":visible")) {
|
||||
if (credentialSecretExistingRow.is(":visible")) {
|
||||
payload.currentCredentialSecret = credentialSecretExistingInput.val();
|
||||
}
|
||||
}
|
||||
|
@@ -230,9 +230,8 @@ RED.sidebar.help = (function() {
|
||||
}
|
||||
|
||||
function getNodeLabel(n) {
|
||||
var div = $('<div>',{class:"red-ui-info-outline-item"});
|
||||
var div = $('<div>',{class:"red-ui-node-list-item"});
|
||||
RED.utils.createNodeIcon(n).appendTo(div);
|
||||
var contentDiv = $('<div>',{class:"red-ui-search-result-description"}).appendTo(div);
|
||||
var label = n.name;
|
||||
if (!label && n._def.paletteLabel) {
|
||||
try {
|
||||
@@ -241,7 +240,7 @@ RED.sidebar.help = (function() {
|
||||
}
|
||||
}
|
||||
label = label || n.type;
|
||||
$('<div>',{class:"red-ui-search-result-node-label red-ui-info-outline-item-label"}).text(label).appendTo(contentDiv);
|
||||
$('<div>',{class:"red-ui-node-label"}).text(n.name||n.type).appendTo(div);
|
||||
return div;
|
||||
}
|
||||
|
||||
|
@@ -73,36 +73,11 @@ RED.sidebar.info.outliner = (function() {
|
||||
return item;
|
||||
}
|
||||
|
||||
function getNodeLabelText(n) {
|
||||
var label = n.name || n.type+": "+n.id;
|
||||
if (n._def.label) {
|
||||
try {
|
||||
label = (typeof n._def.label === "function" ? n._def.label.call(n) : n._def.label)||"";
|
||||
} catch(err) {
|
||||
console.log("Definition error: "+n.type+".label",err);
|
||||
}
|
||||
}
|
||||
var newlineIndex = label.indexOf("\\n");
|
||||
if (newlineIndex > -1) {
|
||||
label = label.substring(0,newlineIndex)+"...";
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
||||
function getNodeLabel(n) {
|
||||
var div = $('<div>',{class:"red-ui-info-outline-item"});
|
||||
RED.utils.createNodeIcon(n).appendTo(div);
|
||||
var contentDiv = $('<div>',{class:"red-ui-search-result-description"}).appendTo(div);
|
||||
var labelText = getNodeLabelText(n);
|
||||
var label = $('<div>',{class:"red-ui-search-result-node-label red-ui-info-outline-item-label"}).appendTo(contentDiv);
|
||||
if (labelText) {
|
||||
label.text(labelText)
|
||||
} else {
|
||||
label.html(" ")
|
||||
}
|
||||
|
||||
var div = $('<div>',{class:"red-ui-node-list-item red-ui-info-outline-item"});
|
||||
RED.utils.createNodeIcon(n, true).appendTo(div);
|
||||
div.find(".red-ui-node-label").addClass("red-ui-info-outline-item-label")
|
||||
addControls(n, div);
|
||||
|
||||
return div;
|
||||
}
|
||||
|
||||
@@ -430,7 +405,7 @@ RED.sidebar.info.outliner = (function() {
|
||||
var existingObject = objects[n.id];
|
||||
var parent = n.g||n.z||"__global__";
|
||||
|
||||
var nodeLabelText = getNodeLabelText(n);
|
||||
var nodeLabelText = RED.utils.getNodeLabel(n,n.name || (n.type+": "+n.id));
|
||||
if (nodeLabelText) {
|
||||
existingObject.element.find(".red-ui-info-outline-item-label").text(nodeLabelText);
|
||||
} else {
|
||||
|
@@ -1125,9 +1125,9 @@ RED.utils = (function() {
|
||||
imageIconElement.css("backgroundImage", "url("+iconUrl+")");
|
||||
}
|
||||
|
||||
function createNodeIcon(node) {
|
||||
function createNodeIcon(node, includeLabel) {
|
||||
var def = node._def;
|
||||
var nodeDiv = $('<div>',{class:"red-ui-search-result-node"})
|
||||
var nodeDiv = $('<div>',{class:"red-ui-node-icon"})
|
||||
if (node.type === "_selection_") {
|
||||
nodeDiv.addClass("red-ui-palette-icon-selection");
|
||||
} else if (node.type === "group") {
|
||||
@@ -1147,8 +1147,20 @@ RED.utils = (function() {
|
||||
}
|
||||
|
||||
var icon_url = RED.utils.getNodeIcon(def,node);
|
||||
var iconContainer = $('<div/>',{class:"red-ui-palette-icon-container"}).appendTo(nodeDiv);
|
||||
RED.utils.createIconElement(icon_url, iconContainer, true);
|
||||
RED.utils.createIconElement(icon_url, nodeDiv, true);
|
||||
|
||||
if (includeLabel) {
|
||||
var container = $('<span>');
|
||||
nodeDiv.appendTo(container);
|
||||
var labelText = RED.utils.getNodeLabel(node,node.name || (node.type+": "+node.id));
|
||||
var label = $('<div>',{class:"red-ui-node-label"}).appendTo(container);
|
||||
if (labelText) {
|
||||
label.text(labelText)
|
||||
} else {
|
||||
label.html(" ")
|
||||
}
|
||||
return container;
|
||||
}
|
||||
return nodeDiv;
|
||||
}
|
||||
|
||||
|
@@ -1751,7 +1751,6 @@ RED.view = (function() {
|
||||
}
|
||||
}
|
||||
if (mouse_mode == RED.state.IMPORT_DRAGGING) {
|
||||
RED.keyboard.remove("escape");
|
||||
updateActiveNodes();
|
||||
RED.nodes.dirty(true);
|
||||
}
|
||||
@@ -1786,6 +1785,9 @@ RED.view = (function() {
|
||||
}
|
||||
|
||||
function selectNone() {
|
||||
if (mouse_mode === RED.state.MOVING || mouse_mode === RED.state.MOVING_ACTIVE) {
|
||||
return;
|
||||
}
|
||||
if (mouse_mode === RED.state.IMPORT_DRAGGING) {
|
||||
clearSelection();
|
||||
RED.history.pop();
|
||||
|
@@ -134,7 +134,7 @@
|
||||
&:not(.red-ui-palette-node-config):not(.red-ui-palette-node-small):first-child {
|
||||
margin-top: 15px;
|
||||
}
|
||||
&:not(.red-ui-palette-node-config):not(.red-ui-palette-node-small):first-child {
|
||||
&:not(.red-ui-palette-node-config):not(.red-ui-palette-node-small):last-child {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
@@ -229,3 +229,47 @@
|
||||
left: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////
|
||||
|
||||
.red-ui-node-list-item {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
border: none;
|
||||
}
|
||||
.red-ui-node-icon {
|
||||
display: inline-block;
|
||||
float:left;
|
||||
width: 24px;
|
||||
height: 20px;
|
||||
margin-top: 1px;
|
||||
// width: 30px;
|
||||
// height: 25px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid $node-border;
|
||||
background-position: 5% 50%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
position: relative;
|
||||
background-color: $node-icon-background-color;
|
||||
text-align: center;
|
||||
|
||||
.red-ui-palette-icon {
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
.red-ui-palette-icon-fa {
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.red-ui-node-label {
|
||||
margin-left: 32px;
|
||||
line-height: 23px;
|
||||
white-space: nowrap;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
|
@@ -326,13 +326,17 @@ div.red-ui-info-table {
|
||||
border-bottom: 1px solid $secondary-border-color;
|
||||
}
|
||||
}
|
||||
.red-ui-info-outline,.red-ui-sidebar-help-toc, #red-ui-clipboard-dialog-import-conflicts-list, #red-ui-clipboard-dialog-export-tab-clipboard-preview {
|
||||
.red-ui-info-outline,
|
||||
// TODO: remove these classes for 2.0. Keeping in 1.x for backwards compatibility
|
||||
// of theme generators.
|
||||
.red-ui-sidebar-help-toc, #red-ui-clipboard-dialog-import-conflicts-list, #red-ui-clipboard-dialog-export-tab-clipboard-preview
|
||||
{
|
||||
.red-ui-info-outline-item {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
border: none;
|
||||
.red-ui-palette-icon-fa {
|
||||
&:not(.red-ui-node-list-item) .red-ui-palette-icon-fa {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
left: 0px;
|
||||
|
@@ -24,7 +24,7 @@
|
||||
margin: 0;
|
||||
vertical-align: middle;
|
||||
box-sizing: border-box;
|
||||
overflow:visible;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
&[disabled] {
|
||||
input, button {
|
||||
@@ -33,7 +33,7 @@
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.red-ui-typedInput-input-wrap {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user