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

53 wiersze
1.7 KiB
JavaScript

define(function(require, exports, module) {
"use strict";
main.consumes = ["Plugin", "ui", "metrics", "dialog.error"];
main.provides = ["dialog.info"];
return main;
function main(options, imports, register) {
var Plugin = imports.Plugin;
var plugin = new Plugin("Ajax.org", main.consumes);
var error = imports["dialog.error"];
function show(message, timeout) {
var visible = error.visible;
if (visible && visible.indexOf("infolabel") === -1) {
return -1; // already showing error instead
}
var options = typeof message === "string"
? { message: message }
: message;
options.className = "infolabel";
options.noError = true;
return error.show(options, timeout);
}
/**
* Show error messages to the user
*
* This plugin provides a way to display error messages to the user.
*
* @singleton
**/
plugin.freezePublicAPI({
/**
* Displays an info message in the main info reporting UI.
* @param {String} message The message to display.
* @param {Number} [timeout] A custom timeout for this error to hide, or -1 for no hiding.
* @returns a cookie for use with hide()
*/
show: show,
/**
* Hides the main error reporting UI.
*
* @param [cookie] A cookie indicating the popup to hide
*/
hide: error.hide.bind(error),
});
register(null, { "dialog.info": plugin });
}
});