diff options
| author | Fabien Meghazi <fme@openerp.com> | 2012-10-24 15:48:59 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2012-10-24 15:48:59 +0200 |
| commit | b79406cb896e6f6003cb7ca6adc71f3f2da82d80 (patch) | |
| tree | 33a733321b42d623c9bf3b30fc6d2fa17359b95a /addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js | |
| parent | 81e7d9ba3defa0dbaed1e244710fce29827bc1d6 (diff) | |
[WIP] Updated dhtmlx calendar
bzr revid: fme@openerp.com-20121024134859-pru7zenpiz0la8mq
Diffstat (limited to 'addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js')
| -rw-r--r-- | addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js index d8c34cffda4..e9ce35528c0 100644 --- a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js +++ b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_pdf.js @@ -1,14 +1,17 @@ /* This software is allowed to use under GPL or you need to obtain Commercial or Enterise License
-to use it in not GPL project. Please contact sales@dhtmlx.com for details +to use it in non-GPL project. Please contact sales@dhtmlx.com for details */ -scheduler.toPDF=function(x,f,m,n){function g(c){return c.replace(html_regexp,"")}function j(c){c=parseFloat(c);return isNaN(c)?"auto":100*c/(o+1)}function t(c){c=parseFloat(c);return isNaN(c)?"auto":100*c/k}function q(c){var a="";if(scheduler.matrix&&scheduler.matrix[scheduler._mode])c=c[0].childNodes;for(var b=0;b<c.length;b++)a+="\n<column><![CDATA["+g(c[b].innerHTML)+"]]\></column>";o=c[0].offsetWidth;return a}function y(c,a){for(var b=parseInt(c.style.left),d=0;d<scheduler._cols.length;d++)if(b-= -scheduler._cols[d],b<0)return d;return a}function z(c,a){for(var b=parseInt(c.style.top),d=0;d<scheduler._colsS.heights.length;d++)if(scheduler._colsS.heights[d]>b)return d;return a}function w(c){for(var a="",b=c.firstChild.rows,d=0;d<b.length;d++){for(var e=[],h=0;h<b[d].cells.length;h++)e.push(b[d].cells[h].firstChild.innerHTML);a+="\n<row height='"+c.firstChild.rows[d].cells[0].offsetHeight+"'><![CDATA["+g(e.join("|"))+"]]\></row>";k=c.firstChild.rows[0].cells[0].offsetHeight}return a}function A(c){var a= -"<data profile='"+c+"'";m&&(a+=" header='"+m+"'");n&&(a+=" footer='"+n+"'");a+=">";a+="<scale mode='"+scheduler._mode+"' today='"+scheduler._els.dhx_cal_date[0].innerHTML+"'>";if(scheduler._mode=="agenda"){var b=scheduler._els.dhx_cal_header[0].childNodes[0].childNodes;a+="<column>"+g(b[0].innerHTML)+"</column><column>"+g(b[1].innerHTML)+"</column>"}else if(scheduler._mode=="year")for(var b=scheduler._els.dhx_cal_data[0].childNodes,d=0;d<b.length;d++)a+="<month label='"+g(b[d].childNodes[0].innerHTML)+ -"'>",a+=q(b[d].childNodes[1].childNodes),a+=w(b[d].childNodes[2]),a+="</month>";else{a+="<x>";b=scheduler._els.dhx_cal_header[0].childNodes;a+=q(b);a+="</x>";var e=scheduler._els.dhx_cal_data[0];if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){a+="<y>";for(d=0;d<e.firstChild.rows.length;d++)a+="<row><![CDATA["+e.firstChild.rows[d].cells[0].innerHTML+"]]\></row>";a+="</y>";k=e.firstChild.rows[0].cells[0].offsetHeight}else if(e.firstChild.tagName=="TABLE")a+=w(e);else{for(e=e.childNodes[e.childNodes.length- -1];e.className.indexOf("dhx_scale_holder")==-1;)e=e.previousSibling;e=e.childNodes;a+="<y>";for(d=0;d<e.length;d++)a+="\n<row><![CDATA["+g(e[d].innerHTML)+"]]\></row>";a+="</y>";k=e[0].offsetHeight}}a+="</scale>";return a}function r(c,a){return(window.getComputedStyle?window.getComputedStyle(c,null)[a]:c.currentStyle?c.currentStyle[a]:null)||""}function B(){var c="",a=scheduler._rendered;if(scheduler._mode=="agenda")for(var b=0;b<a.length;b++)c+="<event><head>"+g(a[b].childNodes[0].innerHTML)+"</head><body>"+ -g(a[b].childNodes[2].innerHTML)+"</body></event>";else if(scheduler._mode=="year"){a=scheduler.get_visible_events();for(b=0;b<a.length;b++){var d=a[b].start_date;if(d.valueOf()<scheduler._min_date.valueOf())d=scheduler._min_date;for(;d<a[b].end_date;){var e=d.getMonth()+12*(d.getFullYear()-scheduler._min_date.getFullYear())-scheduler.week_starts._month,h=scheduler.week_starts[e]+d.getDate()-1;c+="<event day='"+h%7+"' week='"+Math.floor(h/7)+"' month='"+e+"'></event>";d=scheduler.date.add(d,1,"day"); -if(d.valueOf()>=scheduler._max_date.valueOf())break}}}else for(b=0;b<a.length;b++){var f=j(a[b].style.left),i=j(a[b].style.width),l=t(a[b].style.top),m=t(a[b].style.height),n=a[b].className.split(" ")[0].replace("dhx_cal_",""),o=scheduler.getEvent(a[b].getAttribute("event_id")),h=o._sday,s=o._sweek;if(scheduler._mode!="month"){if(scheduler.matrix&&scheduler.matrix[scheduler._mode])h=0,s=a[b].parentNode.parentNode.parentNode.rowIndex,i+=j(10);else{i+=j(i*20/100);f-=j(20-f*20/100);if(a[b].parentNode== -scheduler._els.dhx_cal_data[0])continue;f+=j(a[b].parentNode.style.left);f-=j(51)}if(scheduler._mode=="timeline"){var q=k;k=180;l=t(a[b].style.top);k=q}}else m=parseInt(a[b].offsetHeight),l=parseInt(a[b].style.top)-22,h=y(a[b],h),s=z(a[b],s);c+="\n<event week='"+s+"' day='"+h+"' type='"+n+"' x='"+f+"' y='"+l+"' width='"+i+"' height='"+m+"'>";if(n=="event"){c+="<header><![CDATA["+g(a[b].childNodes[1].innerHTML)+"]]\></header>";var u=p?r(a[b].childNodes[2],"color"):"",v=p?r(a[b].childNodes[2],"backgroundColor"): -"";c+="<body backgroundColor='"+v+"' color='"+u+"'><![CDATA["+g(a[b].childNodes[2].innerHTML)+"]]\></body>"}else u=p?r(a[b],"color"):"",v=p?r(a[b],"backgroundColor"):"",c+="<body backgroundColor='"+v+"' color='"+u+"'><![CDATA["+g(a[b].innerHTML)+"]]\></body>";c+="</event>"}return c}function C(){var c="</data>";return c}var o=0,k=0,p=!1;f=="fullcolor"&&(p=!0,f="color");f=f||"color";html_regexp=RegExp("<[^>]*>","g");var l=(new Date).valueOf(),i=document.createElement("div");i.style.display="none";document.body.appendChild(i); -i.innerHTML='<form id="'+l+'" method="post" target="_blank" action="'+x+'" accept-charset="utf-8" enctype="application/x-www-form-urlencoded"><input type="hidden" name="mycoolxmlbody"/> </form>';document.getElementById(l).firstChild.value=A(f).replace("\u2013","-")+B()+C();document.getElementById(l).submit();i.parentNode.removeChild(i);grid=null}; +scheduler.toPDF=function(A,k,t,u){function g(d){return d.replace(newline_regexp,"\n").replace(html_regexp,"")}function m(d){d=parseFloat(d);return isNaN(d)?"auto":100*d/(q+1)}function x(d){d=parseFloat(d);return isNaN(d)?"auto":100*d/n}function v(d){var a="";if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){if(scheduler.matrix[scheduler._mode].second_scale)var b=d[1].childNodes;d=d[0].childNodes}for(var c=0;c<d.length;c++)a+="\n<column><![CDATA["+g(d[c].innerHTML)+"]]\></column>";q=d[0].offsetWidth; +if(b)for(var f=0,e=d[0].offsetWidth,h=1,c=0;c<b.length;c++)a+="\n<column second_scale='"+h+"'><![CDATA["+g(b[c].innerHTML)+"]]\></column>",f+=b[c].offsetWidth,f>=e&&(e+=d[h]?d[h].offsetWidth:0,h++),q=b[0].offsetWidth;return a}function B(d,a){for(var b=parseInt(d.style.left,10),c=0;c<scheduler._cols.length;c++)if(b-=scheduler._cols[c],b<0)return c;return a}function C(d,a){for(var b=parseInt(d.style.top,10),c=0;c<scheduler._colsS.heights.length;c++)if(scheduler._colsS.heights[c]>b)return c;return a} +function z(d){for(var a="",b=d.firstChild.rows,c=0;c<b.length;c++){for(var f=[],e=0;e<b[c].cells.length;e++)f.push(b[c].cells[e].firstChild.innerHTML);a+="\n<row height='"+d.firstChild.rows[c].cells[0].offsetHeight+"'><![CDATA["+g(f.join("|"))+"]]\></row>";n=d.firstChild.rows[0].cells[0].offsetHeight}return a}function D(d){var a="<data profile='"+d+"'";t&&(a+=" header='"+t+"'");u&&(a+=" footer='"+u+"'");a+=">";var b=scheduler._mode;scheduler.matrix&&scheduler.matrix[scheduler._mode]&&(b=scheduler.matrix[scheduler._mode].render== +"cell"?"matrix":"timeline");a+="<scale mode='"+b+"' today='"+scheduler._els.dhx_cal_date[0].innerHTML+"'>";if(scheduler._mode=="week_agenda")for(var c=scheduler._els.dhx_cal_data[0].getElementsByTagName("DIV"),f=0;f<c.length;f++)c[f].className=="dhx_wa_scale_bar"&&(a+="<column>"+g(c[f].innerHTML)+"</column>");else if(scheduler._mode=="agenda"||scheduler._mode=="map")c=scheduler._els.dhx_cal_header[0].childNodes[0].childNodes,a+="<column>"+g(c[0].innerHTML)+"</column><column>"+g(c[1].innerHTML)+"</column>"; +else if(scheduler._mode=="year"){c=scheduler._els.dhx_cal_data[0].childNodes;for(f=0;f<c.length;f++)a+="<month label='"+g(c[f].childNodes[0].innerHTML)+"'>",a+=v(c[f].childNodes[1].childNodes),a+=z(c[f].childNodes[2]),a+="</month>"}else{a+="<x>";c=scheduler._els.dhx_cal_header[0].childNodes;a+=v(c);a+="</x>";var e=scheduler._els.dhx_cal_data[0];if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){a+="<y>";for(f=0;f<e.firstChild.rows.length;f++){var h=e.firstChild.rows[f];a+="<row><![CDATA["+g(h.cells[0].innerHTML)+ +"]]\></row>"}a+="</y>";n=e.firstChild.rows[0].cells[0].offsetHeight}else if(e.firstChild.tagName=="TABLE")a+=z(e);else{for(e=e.childNodes[e.childNodes.length-1];e.className.indexOf("dhx_scale_holder")==-1;)e=e.previousSibling;e=e.childNodes;a+="<y>";for(f=0;f<e.length;f++)a+="\n<row><![CDATA["+g(e[f].innerHTML)+"]]\></row>";a+="</y>";n=e[0].offsetHeight}}a+="</scale>";return a}function l(d,a){return(window.getComputedStyle?window.getComputedStyle(d,null)[a]:d.currentStyle?d.currentStyle[a]:null)|| +""}function E(){var d="",a=scheduler._rendered;if(scheduler._mode=="agenda"||scheduler._mode=="map")for(var b=0;b<a.length;b++)d+="<event><head>"+g(a[b].childNodes[0].innerHTML)+"</head><body>"+g(a[b].childNodes[2].innerHTML)+"</body></event>";else if(scheduler._mode=="week_agenda")for(b=0;b<a.length;b++)d+="<event day='"+a[b].parentNode.getAttribute("day")+"'><body>"+g(a[b].innerHTML)+"</body></event>";else if(scheduler._mode=="year"){a=scheduler.get_visible_events();for(b=0;b<a.length;b++){var c= +a[b].start_date;if(c.valueOf()<scheduler._min_date.valueOf())c=scheduler._min_date;for(;c<a[b].end_date;){var f=c.getMonth()+12*(c.getFullYear()-scheduler._min_date.getFullYear())-scheduler.week_starts._month,e=scheduler.week_starts[f]+c.getDate()-1,h=j?l(scheduler._get_year_cell(c),"color"):"",o=j?l(scheduler._get_year_cell(c),"backgroundColor"):"";d+="<event day='"+e%7+"' week='"+Math.floor(e/7)+"' month='"+f+"' backgroundColor='"+o+"' color='"+h+"'></event>";c=scheduler.date.add(c,1,"day");if(c.valueOf()>= +scheduler._max_date.valueOf())break}}}else{var k=scheduler.matrix&&scheduler.matrix[scheduler._mode];if(k&&k.render=="cell"){a=scheduler._els.dhx_cal_data[0].getElementsByTagName("TD");for(b=0;b<a.length;b++)h=j?l(a[b],"color"):"",o=j?l(a[b],"backgroundColor"):"",d+="\n<event><body backgroundColor='"+o+"' color='"+h+"'><![CDATA["+g(a[b].innerHTML)+"]]\></body></event>"}else for(b=0;b<a.length;b++){var i=m(a[b].style.left),r=m(a[b].style.width);if(!isNaN(r*1)){var s=x(a[b].style.top),q=x(a[b].style.height), +p=a[b].className.split(" ")[0].replace("dhx_cal_","");if(p!=="dhx_tooltip_line"){var y=scheduler.getEvent(a[b].getAttribute("event_id")),e=y._sday,w=y._sweek,t=y._length||0;if(scheduler._mode!="month"){if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){var e=0,u=a[b].parentNode.parentNode.parentNode,w=u.rowIndex;r+=m(10)}else{scheduler.xy.menu_width&&(r+=m(r*20/100),i-=m(15-i*20/100));if(a[b].parentNode==scheduler._els.dhx_cal_data[0])continue;i+=m(a[b].parentNode.style.left);i-=m(51)}if(scheduler.matrix&& +scheduler.matrix[scheduler._mode]){var v=n;n=a[b].parentNode.offsetHeight;s=x(a[b].style.top);s-=s*0.2;n=v}}else q=parseInt(a[b].offsetHeight,10),s=parseInt(a[b].style.top,10)-22,e=B(a[b],e),w=C(a[b],w);d+="\n<event week='"+w+"' day='"+e+"' type='"+p+"' x='"+i+"' y='"+s+"' width='"+r+"' height='"+q+"' len='"+t+"'>";p=="event"?(d+="<header><![CDATA["+g(a[b].childNodes[1].innerHTML)+"]]\></header>",h=j?l(a[b].childNodes[2],"color"):"",o=j?l(a[b].childNodes[2],"backgroundColor"):"",d+="<body backgroundColor='"+ +o+"' color='"+h+"'><![CDATA["+g(a[b].childNodes[2].innerHTML)+"]]\></body>"):(h=j?l(a[b],"color"):"",o=j?l(a[b],"backgroundColor"):"",d+="<body backgroundColor='"+o+"' color='"+h+"'><![CDATA["+g(a[b].innerHTML)+"]]\></body>");d+="</event>"}}}}return d}function F(){var d="</data>";return d}var q=0,n=0,j=!1;k=="fullcolor"&&(j=!0,k="color");k=k||"color";html_regexp=RegExp("<[^>]*>","g");newline_regexp=RegExp("<br[^>]*>","g");var p=(new Date).valueOf(),i=document.createElement("div");i.style.display= +"none";document.body.appendChild(i);i.innerHTML='<form id="'+p+'" method="post" target="_blank" action="'+A+'" accept-charset="utf-8" enctype="application/x-www-form-urlencoded"><input type="hidden" name="mycoolxmlbody"/> </form>';document.getElementById(p).firstChild.value=encodeURIComponent(D(k).replace("\u2013","-")+E()+F());document.getElementById(p).submit();i.parentNode.removeChild(i);grid=null}; |
