mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Enable palette-editor remove buttons
This commit is contained in:
parent
12e302c10a
commit
521e669879
@ -87,13 +87,8 @@ RED.nodes = (function() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i=0;i<moduleList[ns.module].sets.length;i++) {
|
delete moduleList[ns.module].sets[ns.name];
|
||||||
if (moduleList[ns.module].sets[i].id === id) {
|
if (Object.keys(moduleList[ns.module].sets).length === 0) {
|
||||||
moduleList[ns.module].sets[i].splice(i,1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (moduleList[ns.module].sets.length === 0) {
|
|
||||||
delete moduleList[ns.module];
|
delete moduleList[ns.module];
|
||||||
}
|
}
|
||||||
RED.events.emit("registry:node-set-removed",ns);
|
RED.events.emit("registry:node-set-removed",ns);
|
||||||
|
@ -207,9 +207,11 @@
|
|||||||
var index = that.element.children().length-1;
|
var index = that.element.children().length-1;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
that.options.addItem(row,index,data);
|
that.options.addItem(row,index,data);
|
||||||
setTimeout(function() {
|
if (!that.options.sort) {
|
||||||
that.uiContainer.scrollTop(that.element.height());
|
setTimeout(function() {
|
||||||
},0);
|
that.uiContainer.scrollTop(that.element.height());
|
||||||
|
},0);
|
||||||
|
}
|
||||||
},0);
|
},0);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -22,7 +22,20 @@ RED.palette.editor = (function() {
|
|||||||
|
|
||||||
var eventTimers = {};
|
var eventTimers = {};
|
||||||
|
|
||||||
function changeNodeState(id,state,callback) {
|
function delayCallback(start,callback) {
|
||||||
|
var delta = Date.now() - start;
|
||||||
|
if (delta < 300) {
|
||||||
|
delta = 300;
|
||||||
|
} else {
|
||||||
|
delta = 0;
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
callback();
|
||||||
|
},delta);
|
||||||
|
}
|
||||||
|
function changeNodeState(id,state,shade,callback) {
|
||||||
|
shade.show();
|
||||||
|
var start = Date.now();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"nodes/"+id,
|
url:"nodes/"+id,
|
||||||
type: "PUT",
|
type: "PUT",
|
||||||
@ -30,6 +43,22 @@ RED.palette.editor = (function() {
|
|||||||
enabled: state
|
enabled: state
|
||||||
}),
|
}),
|
||||||
contentType: "application/json; charset=utf-8"
|
contentType: "application/json; charset=utf-8"
|
||||||
|
}).done(function(data,textStatus,xhr) {
|
||||||
|
delayCallback(start,function() {
|
||||||
|
shade.hide();
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}).fail(function(xhr,textStatus,err) {
|
||||||
|
delayCallback(start,function() {
|
||||||
|
shade.hide();
|
||||||
|
callback(xhr);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function removeNodeModule(id,callback) {
|
||||||
|
$.ajax({
|
||||||
|
url:"nodes/"+id,
|
||||||
|
type: "DELETE"
|
||||||
}).done(function(data,textStatus,xhr) {
|
}).done(function(data,textStatus,xhr) {
|
||||||
callback();
|
callback();
|
||||||
}).fail(function(xhr,textStatus,err) {
|
}).fail(function(xhr,textStatus,err) {
|
||||||
@ -208,16 +237,27 @@ RED.palette.editor = (function() {
|
|||||||
var removeButton = $('<a href="#" class="editor-button editor-button-small"></a>').html('remove').appendTo(buttonGroup);
|
var removeButton = $('<a href="#" class="editor-button editor-button-small"></a>').html('remove').appendTo(buttonGroup);
|
||||||
if (!entry.local) {
|
if (!entry.local) {
|
||||||
removeButton.hide();
|
removeButton.hide();
|
||||||
|
} else {
|
||||||
|
removeButton.click(function() {
|
||||||
|
shade.show();
|
||||||
|
removeNodeModule(entry.name, function(xhr) {
|
||||||
|
console.log(xhr);
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
var enableButton = $('<a href="#" class="editor-button editor-button-small"></a>').html('disable all').appendTo(buttonGroup);
|
var enableButton = $('<a href="#" class="editor-button editor-button-small"></a>').html('disable all').appendTo(buttonGroup);
|
||||||
|
|
||||||
var contentRow = $('<div>',{class:"palette-module-content"}).appendTo(container);
|
var contentRow = $('<div>',{class:"palette-module-content"}).appendTo(container);
|
||||||
|
var shade = $('<div>',{class:"palette-module-shade hide"}).appendTo(container);
|
||||||
|
$('<img src="red/images/spin.svg" class="palette-spinner"/>').appendTo(shade);
|
||||||
|
|
||||||
|
|
||||||
object.elements = {
|
object.elements = {
|
||||||
removeButton: removeButton,
|
removeButton: removeButton,
|
||||||
enableButton: enableButton,
|
enableButton: enableButton,
|
||||||
setCount: setCount,
|
setCount: setCount,
|
||||||
container: container,
|
container: container,
|
||||||
|
shade: shade,
|
||||||
sets: {}
|
sets: {}
|
||||||
}
|
}
|
||||||
setButton.click(function() {
|
setButton.click(function() {
|
||||||
@ -249,7 +289,8 @@ RED.palette.editor = (function() {
|
|||||||
enableButton.click(function(evt) {
|
enableButton.click(function(evt) {
|
||||||
if (object.setUseCount[setName] === 0) {
|
if (object.setUseCount[setName] === 0) {
|
||||||
var currentSet = RED.nodes.registry.getNodeSet(set.id);
|
var currentSet = RED.nodes.registry.getNodeSet(set.id);
|
||||||
changeNodeState(set.id,!currentSet.enabled,function(xhr){
|
shade.show();
|
||||||
|
changeNodeState(set.id,!currentSet.enabled,shade,function(xhr){
|
||||||
console.log(xhr)
|
console.log(xhr)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -264,7 +305,7 @@ RED.palette.editor = (function() {
|
|||||||
});
|
});
|
||||||
enableButton.click(function(evt) {
|
enableButton.click(function(evt) {
|
||||||
if (object.totalUseCount === 0) {
|
if (object.totalUseCount === 0) {
|
||||||
changeNodeState(entry.name,(container.hasClass('disabled')),function(xhr){
|
changeNodeState(entry.name,(container.hasClass('disabled')),shade,function(xhr){
|
||||||
console.log(xhr)
|
console.log(xhr)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -292,7 +333,14 @@ RED.palette.editor = (function() {
|
|||||||
refreshNodeModule(ns.module);
|
refreshNodeModule(ns.module);
|
||||||
});
|
});
|
||||||
RED.events.on('registry:node-set-removed', function(ns) {
|
RED.events.on('registry:node-set-removed', function(ns) {
|
||||||
refreshNodeModule(ns.module);
|
var module = RED.nodes.registry.getModule(ns.module);
|
||||||
|
if (!module) {
|
||||||
|
var entry = nodeEntries[ns.module];
|
||||||
|
if (entry) {
|
||||||
|
nodeList.editableList('removeItem', entry);
|
||||||
|
delete nodeEntries[ns.module];
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
RED.events.on('nodes:add', function(n) {
|
RED.events.on('nodes:add', function(n) {
|
||||||
typesInUse[n.type] = (typesInUse[n.type]||0)+1;
|
typesInUse[n.type] = (typesInUse[n.type]||0)+1;
|
||||||
|
@ -58,6 +58,15 @@
|
|||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.palette-module-shade {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
background: rgba(255,255,255,0.8);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.palette-module-meta {
|
.palette-module-meta {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: #666;
|
color: #666;
|
||||||
|
Loading…
Reference in New Issue
Block a user