1//Breadcrumb version 1.3 2//Author:Daniele Baldi 3 4ZtVWeb.BreadcrumbCtrl=function(form,id,name,x,y,w,h,label,font,font_size,font_weight,font_color,root_label,root_link,node_link,target,img_separator,max_items,class_Css,receiver_name,anchor,output_server,fields,data){ 5 this.name=name; 6 this.id=id; 7 this.form=form; 8 this.label=label; 9 this.font=font; 10 this.font_weight=font_weight; 11 this.font_size=font_size; 12 this.font_color=font_color; 13 this.root_label=root_label; 14 this.root_link=root_link; 15 this.node_link=node_link; 16 this.target=target; 17 this.img_separator=img_separator; 18 this.max_items=max_items; 19 this.class_Css=class_Css; 20 this.receiver_name=receiver_name; 21 this.Ctrl = document.getElementById(this.id); // Riferimento al controllo 22 this.setCtrlPos(this.Ctrl,x,y,w,h,anchor,this.form.width,this.form.height); 23 this.addToForm(this.form,this); 24 //Setto gli stile del breadcrumb 25 if(!Empty(this.class_Css))this.Ctrl.className=this.class_Css; 26 if(!Empty(this.font)) this.Ctrl.style.fontFamily=this.font; 27 if(!Empty(this.font_size)) this.Ctrl.style.fontSize=font_size; 28 if(!Empty(this.font_color)) this.Ctrl.style.color=this.font_color; 29 if(!Empty(this.font_weight)) this.Ctrl.style.fontWeight=this.font_weight; 30 31 //Nodi da visualizzare 32 this.viewNodes; 33 34 //Nodi in formato json 35 this.jsonNodes=null; 36 37 38 this.FillData=function(JSONObj){ 39 if(typeof(JSONObj)!="undefined"){ 40 //N.B. Ad oggi รจ gestito l'array json dei soli dati non quello dei fields. 41 this.viewNodes=JSONObj.Data; 42 if(!Empty(this.viewNodes)) 43 this.view(); 44 } 45 } 46 47 this.formatJSON=function(pNode){ 48 var json=""; 49 for(var j=0;j<pNode.length;j++){ 50 if(typeof(pNode[j])!="undefined"){ 51 json+='"'+pNode[j]+'"'; 52 if(j!=2) 53 json+=','; 54 } 55 } 56 json="["+json+"]"; 57 this.jsonNodes.push(json); 58 } 59 60 this.view=function(level){ 61 var src=""; 62 var separator=""; 63 var label=""; 64 var link=""; 65 if(this.viewNodes){ 66 if(typeof(level)=='undefined') 67 level=this.viewNodes.length; 68 if(!Empty(this.img_separator)){ 69 separator="<img src='"+this.img_separator+"' hspace=3>"; 70 } 71 else{ 72 separator=" > " 73 } 74 if(!Empty(this.label)){ 75 var className=""; 76 var fontStyle=""; 77 if(!Empty(class_Css)) 78 className = " class='" + class_Css + "'"; 79 var fontsize=Empty(this.font_size)?'':this.font_size; 80 fontStyle = "font-family:" + this.font + ";font-size:" + fontsize+ ";color:" + this.font_color + ";font-weight:" + this.font_weight + ";"; 81 src+="<span id=labelBreadcrumb" + className + " style='" + fontStyle + "'>"+this.label+" </span>"; 82 } 83 if(!Empty(this.root_label)){ 84 var node=(!Empty(this.root_link)&&level!=0)?("<a onclick='"+this.form.formid+"."+this.name+".view("+(0)+")' href='"+this.root_link+"' target='"+this.target+"'>"+this.root_label+"</a>"):"<span>"+this.root_label+"</span>"; 85 src+=node+(level!=0?separator:''); 86 } 87 var start= level-this.max_items; 88 if(start<=0||this.max_items==0) 89 start=0; 90 else 91 src+="..."+separator; 92 //Creo vettore che mantiene il percorso in formato json 93 this.jsonNodes=new Array(); 94 for(var i=start;i<level;i++){ 95 this.formatJSON(this.viewNodes[i]); 96 label=this.viewNodes[i][1]; 97 link=iif(!Empty(this.viewNodes[i][2]&&typeof(this.viewNodes[i][2])!="undefined"),this.viewNodes[i][2],(this.node_link.indexOf("?")>0?this.node_link+"&start_uid="+encodeURI(this.viewNodes[i][0])+"&caption="+this.viewNodes[i][1]+"&bc_JSONPath="+encodeURI(this.jsonNodes):this.node_link+"?start_uid="+encodeURI(this.viewNodes[i][0])+"&caption="+this.viewNodes[i][1]+"&bc_JSONPath="+encodeURI(this.jsonNodes))); 98 src+=(!Empty(this.node_link)&&i!=level-1)?("<a onclick='"+this.form.formid+"."+this.name+".view("+(i+1)+")' href='"+link+"' target='"+this.target+"'>"+label+"</a>"):"<span>"+label+"</span>"; 99 if(i!=level-1) 100 src+=separator; 101 } 102 } 103 this.Ctrl.innerHTML=src; 104 } 105 106 //Inizializzazione con i dati mandati dal server 107 if(typeof(output_server)!="undefined"){ 108 this.FillData({Fields: fields, Data: data}); 109 } 110 111} 112ZtVWeb.BreadcrumbCtrl.prototype=new ZtVWeb.StdControl;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.