do not recreate deleted node when rm returns ENOENT

pull/314/merge
nightwing 2016-06-15 02:09:54 +04:00
rodzic 6d92bc304f
commit d07f5e1feb
2 zmienionych plików z 11 dodań i 14 usunięć

Wyświetl plik

@ -266,7 +266,7 @@ define(function(require, exports, module) {
function removeSingleNode(e) { function removeSingleNode(e) {
var node = findNode(e.path); var node = findNode(e.path);
if (!node) return; //Node doesn't exist if (!node) return; // Node doesn't exist
deleteNode(node); deleteNode(node);
emit("remove", { emit("remove", {
@ -274,8 +274,9 @@ define(function(require, exports, module) {
node: node node: node
}); });
// todo
e.undo = function(){ e.undo = function(){
if (this.error && this.error.code == "ENOENT")
return;
createNode(node.path, null, node); createNode(node.path, null, node);
emit("add", { emit("add", {
path: node.path, path: node.path,
@ -668,6 +669,11 @@ define(function(require, exports, module) {
}); });
return; return;
} }
if (orphans[node.path] == node) {
delete orphans[node.path];
if (parent.map[node.label] != node)
return;
}
silent || model._signal("remove", node); silent || model._signal("remove", node);
var wasOpen = startUpdate(parent); var wasOpen = startUpdate(parent);
delete parent.map[node.label]; delete parent.map[node.label];

Wyświetl plik

@ -25,7 +25,8 @@ require(["lib/architect/architect", "lib/chai/chai", "/vfs-root"],
"plugins/c9.core/util", "plugins/c9.core/util",
{ {
packagePath: "plugins/c9.core/settings", packagePath: "plugins/c9.core/settings",
settings: "default" settings: "default",
testing: true
}, },
"plugins/c9.core/api.js", "plugins/c9.core/api.js",
{ {
@ -53,16 +54,6 @@ require(["lib/architect/architect", "lib/chai/chai", "/vfs-root"],
"plugins/c9.ide.dialog.common/fileremove", "plugins/c9.ide.dialog.common/fileremove",
"plugins/c9.ide.dialog.common/question", "plugins/c9.ide.dialog.common/question",
//Mock Plugins
{
consumes: ["apf", "ui", "Plugin"],
provides: [
"commands", "panels", "tabManager", "layout", "watcher",
"preferences", "clipboard", "Panel", "auth.bootstrap", "info",
"proc", "focusManager", "dialog.error", "error_handler"
],
setup: expect.html.mocked
},
{ {
consumes: ["tree", "fs", "fs.cache", "tabManager", "ui", consumes: ["tree", "fs", "fs.cache", "tabManager", "ui",
"dialog.question", "dialog.alert"], "dialog.question", "dialog.alert"],
@ -85,7 +76,7 @@ require(["lib/architect/architect", "lib/chai/chai", "/vfs-root"],
function getDomNode(treeNode) { function getDomNode(treeNode) {
var r = tree.tree.renderer; var r = tree.tree.renderer;
r.$renderChanges(r.$loop.changes); r.$renderChanges(r.$loop.changes);
var i = r.provider.getIndexForNode(treeNode) var i = r.provider.getIndexForNode(treeNode);
return r.$cellLayer.getDomNodeAtIndex(i); return r.$cellLayer.getDomNodeAtIndex(i);
} }