forked from Botanical/BotanJS
Initial commit
This commit is contained in:
75
botanjs/src/System/Net/ClassLoader.js
Normal file
75
botanjs/src/System/Net/ClassLoader.js
Normal file
@@ -0,0 +1,75 @@
|
||||
(function(){
|
||||
var ns = __namespace( "System.Net" );
|
||||
var className = "ClassLoader";
|
||||
|
||||
/** @type {System.utils} */
|
||||
var utils = __import( "System.utils" );
|
||||
/** @type {System.utils.IKey} */
|
||||
var IKey = __import( "System.utils.IKey" );
|
||||
/** @type {Dandelion} */
|
||||
var Dand = __import( "Dandelion" );
|
||||
|
||||
var loadFile = function ( sapi, request, mode )
|
||||
{
|
||||
var head = Dand.tag( "head" )[0];
|
||||
|
||||
// Add css
|
||||
head.appendChild(
|
||||
Dand.wrapna(
|
||||
"link"
|
||||
, IKey.quickDef(
|
||||
"rel", "stylesheet"
|
||||
, "type", "text/css"
|
||||
, "href", sapi + mode + "css/" + request
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Add js
|
||||
head.appendChild(
|
||||
Dand.wrapna(
|
||||
"script"
|
||||
, IKey.quickDef(
|
||||
"type", "text/javascript"
|
||||
, "src", sapi + mode + "js/" + request
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
var Loader = function( sapi, mode )
|
||||
{
|
||||
mode = ( mode === undefined ) ? "o" : mode;
|
||||
|
||||
this.load = function( classes, handler )
|
||||
{
|
||||
if( !classes.join ) classes = [ classes ];
|
||||
|
||||
var excludes = BotanJS.getDef();
|
||||
// Excludes
|
||||
utils.objMap( excludes , function( v ) { return "-" + v; } );
|
||||
|
||||
var loadc = null;
|
||||
var onLoad = function( e )
|
||||
{
|
||||
if( classes.indexOf( e.data.name ) < 0 ) return;
|
||||
handler( e.data.name );
|
||||
};
|
||||
|
||||
var sp = mode ? { 'o': '/', 'r': '/' }[ mode ] : ',';
|
||||
|
||||
loadFile(
|
||||
sapi
|
||||
, classes.join( sp ) + sp + excludes.join( sp )
|
||||
, mode
|
||||
);
|
||||
|
||||
BotanJS.addEventListener( "NS_INIT", onLoad );
|
||||
BotanJS.addEventListener( "NS_EXPORT", onLoad );
|
||||
};
|
||||
};
|
||||
|
||||
ns[ NS_EXPORT ]( EX_CLASS, "ClassLoader", Loader );
|
||||
})();
|
||||
|
141
botanjs/src/System/Net/_this.js
Normal file
141
botanjs/src/System/Net/_this.js
Normal file
@@ -0,0 +1,141 @@
|
||||
(function(){
|
||||
var ns = __namespace( "System.Net" );
|
||||
/** @type {System.Debug} */
|
||||
var debug = __import( "System.Debug" );
|
||||
/** @type {Dandelion.IDOMObject} */
|
||||
var IDOMObject = __import( "Dandelion.IDOMObject" );
|
||||
|
||||
// Handles all http transfers
|
||||
var getData = function (uri, handler, failedHandler)
|
||||
{
|
||||
var request = new XMLHttpRequest();
|
||||
debug.Info("[Net] GET: " + uri);
|
||||
request.onreadystatechange = function()
|
||||
{
|
||||
/*
|
||||
0: request not initialized
|
||||
1: server connection established
|
||||
2: request received
|
||||
3: processing request
|
||||
4: request finished and response is ready
|
||||
*/
|
||||
if(request.readyState == 2)
|
||||
{
|
||||
debug.Info("[Net] GET R2:" + uri);
|
||||
}
|
||||
else if (request.readyState == 4)
|
||||
{
|
||||
debug.Info("[Net] GET R4:" + uri);
|
||||
if (request.status == 200)
|
||||
{
|
||||
try
|
||||
{
|
||||
handler(request.responseText);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug.Error(e);
|
||||
failedHandler(null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug.Info("[Net] Status: " + request.status.toString());
|
||||
debug.Info(request.responseText);
|
||||
failedHandler && failedHandler(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
request.open("GET", uri, true);
|
||||
request.send();
|
||||
};
|
||||
|
||||
var postFile = function (uri, data, handlers)
|
||||
{
|
||||
var request = new XMLHttpRequest()
|
||||
, generalExchange = new IDOMObject( request )
|
||||
, uploadExchange = new IDOMObject( request.upload )
|
||||
;
|
||||
|
||||
if ( uploadExchange ) {
|
||||
handlers.progress && uploadExchange.addEventListener("Progress", handlers.progress);
|
||||
handlers.failed && uploadExchange.addEventListener("Error", handlers.failed);
|
||||
}
|
||||
|
||||
generalExchange.addEventListener("ReadyStateChange", function(e) {
|
||||
if ( 4 == this.readyState ) {
|
||||
handlers.complete && handlers.complete(request.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
request.open("POST", uri, true);
|
||||
// request.setRequestHeader("Content-Type", "multipart/form-data");
|
||||
request.send(data);
|
||||
};
|
||||
|
||||
var postData = function (uri, data, handler, failedHandler)
|
||||
{
|
||||
var request = new XMLHttpRequest();
|
||||
// compile post string
|
||||
data = compilePostData(data);
|
||||
debug.Info("[Net] PostString: " + data);
|
||||
request.onreadystatechange = function()
|
||||
{
|
||||
/*
|
||||
0: request not initialized
|
||||
1: server connection established
|
||||
2: request received
|
||||
3: processing request
|
||||
4: request finished and response is ready
|
||||
*/
|
||||
if(request.readyState == 2)
|
||||
{
|
||||
debug.Info("[Net] POST R2:" + uri);
|
||||
}
|
||||
else if (request.readyState == 4)
|
||||
{
|
||||
debug.Info("[Net] POST R4:" + uri);
|
||||
if (request.status == 200)
|
||||
{
|
||||
try
|
||||
{
|
||||
var obj = JSON.parse(request.responseText);
|
||||
obj.status ? handler(obj): failedHandler(obj);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug.Error(e);
|
||||
failedHandler(null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug.Info("[Net] Status: " + request.status.toString());
|
||||
debug.Info(request.responseText);
|
||||
failedHandler(null);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
request.open( "POST", uri );
|
||||
request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
|
||||
request.send( data );
|
||||
};
|
||||
|
||||
var compilePostData = function (obj)
|
||||
{
|
||||
var postdata = "timestamp=" + new Date().getTime();
|
||||
for(var name in obj)
|
||||
{
|
||||
postdata += "&" + name + "=" + encodeURIComponent(obj[name]);
|
||||
}
|
||||
|
||||
return postdata;
|
||||
};
|
||||
|
||||
ns[ NS_EXPORT ]( EX_FUNC, "getData", getData );
|
||||
ns[ NS_EXPORT ]( EX_FUNC, "postData", postData );
|
||||
ns[ NS_EXPORT ]( EX_FUNC, "postFile", postFile );
|
||||
// ns[ NS_EXPORT ]( EX_FUNC, "compilePostData", compilePostData );
|
||||
})();
|
||||
|
Reference in New Issue
Block a user