c9-core/plugins/c9.ide.dialog.common/fileremove.js

58 wiersze
1.9 KiB
JavaScript

define(function(require, module, exports) {
main.consumes = ["dialog.question"];
main.provides = ["dialog.fileremove"];
return main;
function main(options, imports, register) {
var question = imports["dialog.question"].show;
/***** Initialization *****/
/***** Methods *****/
function show(files, onremove) {
if (files.confirmed === undefined)
files.confirmed = false;
if (files.confirmed)
return true;
function confirm(file) {
var name = file.label;
var type = file.isFolder ? "folder" : "file";
question(
"Confirm Remove",
"You are about to remove the " + (type || "item") + " " + name,
"Do you want continue? (This change cannot be undone)",
function(all) { // Yes
files.confirmed = true;
onremove(file);
if (all) {
files.forEach(function (file) {
onremove(file);
});
}
files.confirmed = false;
if (!all && files.length > 0)
confirm(files.shift());
},
function(all, cancel) { // No
if (!all && files.length > 0)
confirm(files.shift());
},
{ all: files.length > 0 }
);
}
confirm(files.shift());
return false;
}
register("", {
"dialog.fileremove": {
show: show
}
});
}
});