diff --git a/configs/client-default.js b/configs/client-default.js
index b3379962..d6d31ec4 100644
--- a/configs/client-default.js
+++ b/configs/client-default.js
@@ -261,6 +261,7 @@ module.exports = function(options) {
"plugins/c9.ide.dialog.common/fileremove",
"plugins/c9.ide.dialog.common/info",
"plugins/c9.ide.dialog.common/question",
+ "plugins/c9.ide.dialog.common/upsell",
{
packagePath: "plugins/c9.ide.dialog.common/error",
staticPrefix: staticPrefix + "/plugins/c9.ide.layout.classic"
diff --git a/plugins/c9.ide.dialog.common/upsell.js b/plugins/c9.ide.dialog.common/upsell.js
new file mode 100644
index 00000000..0200a9ba
--- /dev/null
+++ b/plugins/c9.ide.dialog.common/upsell.js
@@ -0,0 +1,85 @@
+define(function(require, module, exports) {
+ main.consumes = ["Dialog", "util"];
+ main.provides = ["dialog.upsell"];
+ 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.upsell",
+ allowClose: true,
+ modal: true,
+ elements: [
+ { type: "filler" },
+ { type: "button", id: "no", caption: "Cancel", hotkey: "ESC", skin: "c9-simple-btn", margin: "7 10 0 0" },
+ { type: "button", id: "yes", caption: "Go Premium!", color: "green", "default": true, hotkey: "Y" }
+ ]
+ });
+
+ /***** Methods *****/
+
+ function show(onYes, onNo, title, header, msg, options) {
+ if (!options)
+ options = {isHTML: true};
+
+ return plugin.queue(function(){
+ var all = options.all;
+ var cancel = options.cancel;
+ var showDontAsk = options.showDontAsk;
+ var metadata = options.metadata;
+
+ title = title || "This is a Premium feature";
+ header = header || "Get Premium Support Now!";
+ msg = msg || 'Help is just a few clicks away. Check out our amazing premium plans.'
+
+ plugin.title = title;
+ plugin.heading = options && options.isHTML ? header : util.escapeXml(header);
+ plugin.body = options && options.isHTML ? msg : util.escapeXml(msg).replace(/\n/g, "
");
+
+ plugin.getElement("yes").setCaption(options.yes || "Go Premium!");
+ plugin.getElement("no").setCaption(options.no || "Cancel");
+
+ plugin.allowClose = cancel;
+
+ var gotYesNo = false;
+ plugin.once("hide", function(){
+ !gotYesNo && cancel && onNo(false, true, metadata);
+ });
+
+ plugin.update([
+ { id: "yes", onclick: function(){
+ gotYesNo = true;
+ plugin.hide();
+ onYes(false, metadata);
+ }},
+ { id: "no", onclick: function(){
+ gotYesNo = true;
+ plugin.hide();
+ onNo(false, false, metadata);
+ }}
+ ]);
+ }, options.queue === false);
+ }
+
+ /***** Register *****/
+
+ /**
+ *
+ */
+ plugin.freezePublicAPI({
+
+ /**
+ *
+ */
+ show: show
+ });
+
+ register("", {
+ "dialog.upsell": plugin
+ });
+ }
+});
\ No newline at end of file