hostenv_dashboard.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:5k
源码类别:
OA系统
开发平台:
Java
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified BSD license. For more information on Dojo licensing, see:
- http://dojotoolkit.org/community/licensing.shtml
- */
- dojo.render.name = dojo.hostenv.name_ = "dashboard";
- dojo.hostenv.println = function (message) {
- return alert(message);
- };
- dojo.hostenv.getXmlhttpObject = function (kwArgs) {
- if (widget.system && kwArgs) {
- if ((kwArgs.contentType && kwArgs.contentType.indexOf("text/") != 0) || (kwArgs.headers && kwArgs.headers["content-type"] && kwArgs.headers["content-type"].indexOf("text/") != 0)) {
- var curl = new dojo.hostenv.CurlRequest;
- curl._save = true;
- return curl;
- } else {
- if (kwArgs.method && kwArgs.method.toUpperCase() == "HEAD") {
- return new dojo.hostenv.CurlRequest;
- } else {
- if (kwArgs.headers && kwArgs.header.referer) {
- return new dojo.hostenv.CurlRequest;
- }
- }
- }
- }
- return new XMLHttpRequest;
- };
- dojo.hostenv.CurlRequest = function () {
- this.onreadystatechange = null;
- this.readyState = 0;
- this.responseText = "";
- this.responseXML = null;
- this.status = 0;
- this.statusText = "";
- this._method = "";
- this._url = "";
- this._async = true;
- this._referrer = "";
- this._headers = [];
- this._save = false;
- this._responseHeader = "";
- this._responseHeaders = {};
- this._fileName = "";
- this._username = "";
- this._password = "";
- };
- dojo.hostenv.CurlRequest.prototype.open = function (method, url, async, username, password) {
- this._method = method;
- this._url = url;
- if (async) {
- this._async = async;
- }
- if (username) {
- this._username = username;
- }
- if (password) {
- this._password = password;
- }
- };
- dojo.hostenv.CurlRequest.prototype.setRequestHeader = function (label, value) {
- switch (label) {
- case "Referer":
- this._referrer = value;
- break;
- case "content-type":
- break;
- default:
- this._headers.push(label + "=" + value);
- break;
- }
- };
- dojo.hostenv.CurlRequest.prototype.getAllResponseHeaders = function () {
- return this._responseHeader;
- };
- dojo.hostenv.CurlRequest.prototype.getResponseHeader = function (headerLabel) {
- return this._responseHeaders[headerLabel];
- };
- dojo.hostenv.CurlRequest.prototype.send = function (content) {
- this.readyState = 1;
- if (this.onreadystatechange) {
- this.onreadystatechange.call(this);
- }
- var query = {sS:""};
- if (this._referrer) {
- query.e = this._referrer;
- }
- if (this._headers.length) {
- query.H = this._headers.join("&");
- }
- if (this._username) {
- if (this._password) {
- query.u = this._username + ":" + this._password;
- } else {
- query.u = this._username;
- }
- }
- if (content) {
- query.d = this.content;
- if (this._method != "POST") {
- query.G = "";
- }
- }
- if (this._method == "HEAD") {
- query.I = "";
- } else {
- if (this._save) {
- query.I = "";
- } else {
- query.i = "";
- }
- }
- var system = widget.system(dojo.hostenv.CurlRequest._formatCall(query, this._url), null);
- this.readyState = 2;
- if (this.onreadystatechange) {
- this.onreadystatechange.call(this);
- }
- if (system.errorString) {
- this.responseText = system.errorString;
- this.status = 0;
- } else {
- if (this._save) {
- this._responseHeader = system.outputString;
- } else {
- var split = system.outputString.replace(/r/g, "").split("nn", 2);
- this._responseHeader = split[0];
- this.responseText = split[1];
- }
- split = this._responseHeader.split("n");
- this.statusText = split.shift();
- this.status = this.statusText.split(" ")[1];
- for (var i = 0, header; header = split[i]; i++) {
- var header_split = header.split(": ", 2);
- this._responseHeaders[header_split[0]] = header_split[1];
- }
- if (this._save) {
- widget.system("/bin/mkdir cache", null);
- this._fileName = this._url.split("/").pop().replace(/W/g, "");
- this._fileName += "." + this._responseHeaders["Content-Type"].replace(/[rn]/g, "").split("/").pop();
- delete query.I;
- query.o = "cache/" + this._fileName;
- system = widget.system(dojo.hostenv.CurlRequest._formatCall(query, this._url), null);
- if (!system.errorString) {
- this.responseText = "cache/" + this._fileName;
- }
- } else {
- if (this._method == "HEAD") {
- this.responseText = this._responseHeader;
- }
- }
- }
- this.readyState = 4;
- if (this.onreadystatechange) {
- this.onreadystatechange.call(this);
- }
- };
- dojo.hostenv.CurlRequest._formatCall = function (query, url) {
- var call = ["/usr/bin/curl"];
- for (var key in query) {
- if (query[key] != "") {
- call.push("-" + key + " '" + query[key].replace(/'/g, "'") + "'");
- } else {
- call.push("-" + key);
- }
- }
- call.push("'" + url.replace(/'/g, "'") + "'");
- return call.join(" ");
- };
- dojo.hostenv.exit = function () {
- if (widget.system) {
- widget.system("/bin/rm -rf cache/*", null);
- }
- };