summaryrefslogtreecommitdiff
path: root/lib/dojo/html.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
committerAndrew Dolgov <[email protected]>2010-11-15 10:39:52 +0300
commit2f01fe57a8d37767827d6db42850aef86a767c53 (patch)
tree516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dojo/html.js
parent951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff)
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dojo/html.js')
-rw-r--r--lib/dojo/html.js145
1 files changed, 145 insertions, 0 deletions
diff --git a/lib/dojo/html.js b/lib/dojo/html.js
new file mode 100644
index 000000000..7c15e5812
--- /dev/null
+++ b/lib/dojo/html.js
@@ -0,0 +1,145 @@
+/*
+ Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojo.html"]){
+dojo._hasResource["dojo.html"]=true;
+dojo.provide("dojo.html");
+dojo.require("dojo.parser");
+(function(){
+var _1=0,d=dojo;
+dojo.html._secureForInnerHtml=function(_2){
+return _2.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");
+};
+dojo.html._emptyNode=dojo.empty;
+dojo.html._setNodeContent=function(_3,_4){
+d.empty(_3);
+if(_4){
+if(typeof _4=="string"){
+_4=d._toDom(_4,_3.ownerDocument);
+}
+if(!_4.nodeType&&d.isArrayLike(_4)){
+for(var _5=_4.length,i=0;i<_4.length;i=_5==_4.length?i+1:0){
+d.place(_4[i],_3,"last");
+}
+}else{
+d.place(_4,_3,"last");
+}
+}
+return _3;
+};
+dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(_6,_7){
+dojo.mixin(this,_6||{});
+_7=this.node=dojo.byId(this.node||_7);
+if(!this.id){
+this.id=["Setter",(_7)?_7.id||_7.tagName:"",_1++].join("_");
+}
+},set:function(_8,_9){
+if(undefined!==_8){
+this.content=_8;
+}
+if(_9){
+this._mixin(_9);
+}
+this.onBegin();
+this.setContent();
+this.onEnd();
+return this.node;
+},setContent:function(){
+var _a=this.node;
+if(!_a){
+throw new Error(this.declaredClass+": setContent given no node");
+}
+try{
+_a=dojo.html._setNodeContent(_a,this.content);
+}
+catch(e){
+var _b=this.onContentError(e);
+try{
+_a.innerHTML=_b;
+}
+catch(e){
+console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);
+}
+}
+this.node=_a;
+},empty:function(){
+if(this.parseResults&&this.parseResults.length){
+dojo.forEach(this.parseResults,function(w){
+if(w.destroy){
+w.destroy();
+}
+});
+delete this.parseResults;
+}
+dojo.html._emptyNode(this.node);
+},onBegin:function(){
+var _c=this.content;
+if(dojo.isString(_c)){
+if(this.cleanContent){
+_c=dojo.html._secureForInnerHtml(_c);
+}
+if(this.extractContent){
+var _d=_c.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
+if(_d){
+_c=_d[1];
+}
+}
+}
+this.empty();
+this.content=_c;
+return this.node;
+},onEnd:function(){
+if(this.parseContent){
+this._parse();
+}
+return this.node;
+},tearDown:function(){
+delete this.parseResults;
+delete this.node;
+delete this.content;
+},onContentError:function(_e){
+return "Error occured setting content: "+_e;
+},_mixin:function(_f){
+var _10={},key;
+for(key in _f){
+if(key in _10){
+continue;
+}
+this[key]=_f[key];
+}
+},_parse:function(){
+var _11=this.node;
+try{
+this.parseResults=dojo.parser.parse({rootNode:_11,dir:this.dir,lang:this.lang});
+}
+catch(e){
+this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);
+}
+},_onError:function(_12,err,_13){
+var _14=this["on"+_12+"Error"].call(this,err);
+if(_13){
+console.error(_13,err);
+}else{
+if(_14){
+dojo.html._setNodeContent(this.node,_14,true);
+}
+}
+}});
+dojo.html.set=function(_15,_16,_17){
+if(undefined==_16){
+console.warn("dojo.html.set: no cont argument provided, using empty string");
+_16="";
+}
+if(!_17){
+return dojo.html._setNodeContent(_15,_16,true);
+}else{
+var op=new dojo.html._ContentSetter(dojo.mixin(_17,{content:_16,node:_15}));
+return op.set();
+}
+};
+})();
+}