1 var SVGNS='http://www.w3.org/2000/svg',XLINKNS='http://www.w3.org/1999/xlink';
3 function textrotate_make_svg(el)
5 var string=el.firstChild.nodeValue;
7 // Add absolute-positioned string (to measure length)
8 var abs=document.createElement('div');
9 abs.appendChild(document.createTextNode(string));
10 abs.style.position='absolute';
11 el.parentNode.insertBefore(abs,el);
12 var textWidth=abs.offsetWidth,textHeight=abs.offsetHeight;
13 el.parentNode.removeChild(abs);
16 var svg=document.createElementNS(SVGNS,'svg');
17 svg.setAttribute('version','1.1');
18 var width=(textHeight*9)/8;
19 svg.setAttribute('width',width);
20 svg.setAttribute('height',textWidth+20);
23 var text=document.createElementNS(SVGNS,'text');
24 svg.appendChild(text);
25 text.setAttribute('x',textWidth);
26 text.setAttribute('y',-textHeight/4);
27 text.setAttribute('text-anchor','end');
28 text.setAttribute('transform','rotate(90)');
29 text.appendChild(document.createTextNode(string));
31 // Is there an icon near the text?
32 var icon=el.parentNode.firstChild;
33 if(icon.nodeName.toLowerCase()=='img') {
34 el.parentNode.removeChild(icon);
35 var image=document.createElementNS(SVGNS,'image');
36 var iconx=el.offsetHeight/4;
37 if(iconx>width-16) iconx=width-16;
38 image.setAttribute('x',iconx);
39 image.setAttribute('y',textWidth+4);
40 image.setAttribute('width',16);
41 image.setAttribute('height',16);
42 image.setAttributeNS(XLINKNS,'href',icon.src);
43 svg.appendChild(image);
46 // Replace original content with this new SVG
47 el.parentNode.insertBefore(svg,el);
48 el.parentNode.removeChild(el);
51 function textrotate_init() {
52 var elements=YAHOO.util.Dom.getElementsByClassName('completion-activityname', 'span');
53 for(var i=0;i<elements.length;i++)
56 el.parentNode.parentNode.parentNode.style.verticalAlign='bottom';
57 textrotate_make_svg(el);
60 elements=YAHOO.util.Dom.getElementsByClassName('completion-expected', 'div');
61 for(var i=0;i<elements.length;i++)
64 el.style.display='inline';
65 var parent=el.parentNode;
66 parent.removeChild(el);
67 parent.insertBefore(el,parent.firstChild);
68 textrotate_make_svg(el.firstChild);
71 elements=YAHOO.util.Dom.getElementsByClassName('rotateheaders', 'table');
72 for(var i=0;i<elements.length;i++)
74 var table=elements[i];
75 var headercells = YAHOO.util.Dom.getElementsByClassName('header', 'th', table);
76 for(var j=0;j<headercells.length;j++)
78 var el=headercells[j];
79 textrotate_make_svg(el.firstChild);
84 YAHOO.util.Event.onDOMReady(textrotate_init);