MDL-32640 fix E_STRCIT issue when editing somebody post of other user
[moodle.git] / report / progress / textrotate.js
blob41dbfbef3ac5c2f2343ef8252611a21a99a3c3c4
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);
15   // Create SVG
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);
22   // Add text
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);
44   }
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++)
54   {
55     var el=elements[i];
56     el.parentNode.parentNode.parentNode.style.verticalAlign='bottom';
57     textrotate_make_svg(el);
58   }
60   elements=YAHOO.util.Dom.getElementsByClassName('completion-expected', 'div');
61   for(var i=0;i<elements.length;i++)
62   {
63     var el=elements[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);
69   }
71   elements=YAHOO.util.Dom.getElementsByClassName('rotateheaders', 'table');
72   for(var i=0;i<elements.length;i++)
73   {
74     var table=elements[i];
75     var headercells = YAHOO.util.Dom.getElementsByClassName('header', 'th', table);
76     for(var j=0;j<headercells.length;j++)
77     {
78       var el=headercells[j];
79       textrotate_make_svg(el.firstChild);
80     }
81   }
84 YAHOO.util.Event.onDOMReady(textrotate_init);