kopia lustrzana https://github.com/c9/core
102 wiersze
2.8 KiB
JavaScript
102 wiersze
2.8 KiB
JavaScript
![]() |
define(function(require, exports, module) {
|
||
|
var assert = require("c9/assert");
|
||
|
|
||
|
main.consumes = ["Plugin", "api"];
|
||
|
main.provides = ["info"];
|
||
|
return main;
|
||
|
|
||
|
function main(options, imports, register) {
|
||
|
var Plugin = imports.Plugin;
|
||
|
var api = imports.api;
|
||
|
assert(options.user && options.project,
|
||
|
"Both options.user and options.project need to be set for 'info' to work");
|
||
|
|
||
|
/***** Initialization *****/
|
||
|
|
||
|
var plugin = new Plugin("Ajax.org", main.consumes);
|
||
|
// var emit = plugin.getEmitter();
|
||
|
|
||
|
var user = options.user;
|
||
|
var project = options.project;
|
||
|
|
||
|
var loaded = false;
|
||
|
function load(){
|
||
|
if (loaded) return false;
|
||
|
loaded = true;
|
||
|
}
|
||
|
|
||
|
/***** Methods *****/
|
||
|
|
||
|
function getUser(callback, noCache) {
|
||
|
if (noCache) {
|
||
|
return api.user.get("", function(err, data){
|
||
|
if (err) return callback(err);
|
||
|
user = data;
|
||
|
callback(err, data);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return callback ? callback(null, user) : user;
|
||
|
}
|
||
|
|
||
|
function getWorkspace(callback, noCache) {
|
||
|
if (noCache) {
|
||
|
return api.project.get("", function(err, data){
|
||
|
if (err) return callback(err);
|
||
|
project = data;
|
||
|
callback(err, data);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return callback ? callback(null, project) : project;
|
||
|
}
|
||
|
|
||
|
/***** Lifecycle *****/
|
||
|
|
||
|
plugin.on("load", function(){
|
||
|
load();
|
||
|
});
|
||
|
plugin.on("enable", function(){
|
||
|
|
||
|
});
|
||
|
plugin.on("disable", function(){
|
||
|
|
||
|
});
|
||
|
plugin.on("unload", function(){
|
||
|
loaded = false;
|
||
|
});
|
||
|
|
||
|
/***** Register and define API *****/
|
||
|
|
||
|
/**
|
||
|
* Provides information about the loggedin user and workspace
|
||
|
**/
|
||
|
plugin.freezePublicAPI({
|
||
|
/**
|
||
|
* Returns the logged in user.
|
||
|
* @return {Object} The currently user
|
||
|
*/
|
||
|
getUser: getUser,
|
||
|
|
||
|
/**
|
||
|
* Return the active workspace.
|
||
|
* @return {Object} The currently active workspace
|
||
|
*/
|
||
|
getWorkspace: getWorkspace,
|
||
|
|
||
|
_events: [
|
||
|
/**
|
||
|
* @event afterfilesave Fires after a file is saved
|
||
|
* @param {Object} e
|
||
|
* @param node {XMLNode} description
|
||
|
* @param oldpath {String} description
|
||
|
*/
|
||
|
"afterfilesave"
|
||
|
]
|
||
|
});
|
||
|
|
||
|
register(null, {
|
||
|
info: plugin
|
||
|
});
|
||
|
}
|
||
|
});
|