c9-core/plugins/c9.ide.scm/dialog.localchanges.js

69 wiersze
2.3 KiB
JavaScript

define(function(require, module, exports) {
main.consumes = ["Dialog", "util"];
main.provides = ["dialog.localchanges"];
return main;
function main(options, imports, register) {
var Dialog = imports.Dialog;
var util = imports.util;
/***** Initialization *****/
var plugin = new Dialog("Ajax.org", main.consumes, {
name: "dialog.localchanges",
title: "Local changes detected",
heading: "There are local changes that have not yet been committed.",
body: "Would you like to stash them for later use, discard them or cancel?",
allowClose: true,
modal: false,
width: 475,
elements: [
{ type: "filler" },
{ type: "button", id: "stash", caption: "Stash", color: "green" },
{ type: "button", id: "discard", caption: "Discard", color: "red" },
{ type: "button", id: "cancel", caption: "Cancel", "default": true },
]
});
/***** Methods *****/
function show(changes, onstash, ondiscard, oncancel, options) {
options = options || {};
return plugin.queue(function() {
if (changes) {
plugin.body = "These files have been changes\n"
+ util.escapeXml(changes)
+ "Would you like to stash them for later use, discard them or cancel?";
}
plugin.update([
{ id: "cancel", onclick: function() {
plugin.hide();
oncancel();
} },
{ id: "discard", onclick: function() {
plugin.hide();
ondiscard();
} },
{ id: "stash", onclick: function() {
plugin.hide();
onstash();
} }
]);
});
}
/***** Register *****/
plugin.freezePublicAPI({
/**
*
*/
show: show
});
register("", {
"dialog.localchanges": plugin,
});
}
});