Fossil SCM
Replaced $(x) with gebi(x), as per ML discussion.
Commit
dfce20e487f3c86f598a9d4ca6e02231c8a0c503
Parent
ded8615f9526663…
4 files changed
+3
-3
+2
-2
+16
-4
+5
-5
+3
-3
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1388,11 +1388,11 @@ | ||
| 1388 | 1388 | if( z[0]=='\n' ) z++; |
| 1389 | 1389 | } |
| 1390 | 1390 | if( n<iEnd ) cgi_printf("</div>"); |
| 1391 | 1391 | @ </pre> |
| 1392 | 1392 | if( iStart ){ |
| 1393 | - @ <script>$('topln').scrollIntoView(true);</script> | |
| 1393 | + @ <script>gebi('topln').scrollIntoView(true);</script> | |
| 1394 | 1394 | } |
| 1395 | 1395 | } |
| 1396 | 1396 | |
| 1397 | 1397 | |
| 1398 | 1398 | /* |
| @@ -2004,11 +2004,11 @@ | ||
| 2004 | 2004 | @ <tr><td align="right" valign="top"><b>Tags:</b></td> |
| 2005 | 2005 | @ <td valign="top"> |
| 2006 | 2006 | @ <input type="checkbox" id="newtag" name="newtag"%s(zNewTagFlag) /> |
| 2007 | 2007 | @ Add the following new tag name to this check-in: |
| 2008 | 2008 | @ <input type="text" style="width:15;" name="tagname" value="%h(zNewTag)" |
| 2009 | - @ onkeyup="$('newtag').checked=!!this.value" /> | |
| 2009 | + @ onkeyup="gebi('newtag').checked=!!this.value" /> | |
| 2010 | 2010 | db_prepare(&q, |
| 2011 | 2011 | "SELECT tag.tagid, tagname FROM tagxref, tag" |
| 2012 | 2012 | " WHERE tagxref.rid=%d AND tagtype>0 AND tagxref.tagid=tag.tagid" |
| 2013 | 2013 | " ORDER BY CASE WHEN tagname GLOB 'sym-*' THEN substr(tagname,5)" |
| 2014 | 2014 | " ELSE tagname END /*sort*/", |
| @@ -2036,11 +2036,11 @@ | ||
| 2036 | 2036 | @ <tr><td align="right" valign="top"><b>Branching:</b></td> |
| 2037 | 2037 | @ <td valign="top"> |
| 2038 | 2038 | @ <input id="newbr" type="checkbox" name="newbr"%s(zNewBrFlag) /> |
| 2039 | 2039 | @ Make this check-in the start of a new branch named: |
| 2040 | 2040 | @ <input type="text" style="width:15;" name="brname" value="%h(zNewBranch)" |
| 2041 | - @ onkeyup="$('newbr').checked=!!this.value" /> | |
| 2041 | + @ onkeyup="gebi('newbr').checked=!!this.value" /> | |
| 2042 | 2042 | @ </td></tr> |
| 2043 | 2043 | |
| 2044 | 2044 | if( is_a_leaf(rid) |
| 2045 | 2045 | && !db_exists("SELECT 1 FROM tagxref " |
| 2046 | 2046 | " WHERE tagid=%d AND rid=%d AND tagtype>0", |
| 2047 | 2047 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1388,11 +1388,11 @@ | |
| 1388 | if( z[0]=='\n' ) z++; |
| 1389 | } |
| 1390 | if( n<iEnd ) cgi_printf("</div>"); |
| 1391 | @ </pre> |
| 1392 | if( iStart ){ |
| 1393 | @ <script>$('topln').scrollIntoView(true);</script> |
| 1394 | } |
| 1395 | } |
| 1396 | |
| 1397 | |
| 1398 | /* |
| @@ -2004,11 +2004,11 @@ | |
| 2004 | @ <tr><td align="right" valign="top"><b>Tags:</b></td> |
| 2005 | @ <td valign="top"> |
| 2006 | @ <input type="checkbox" id="newtag" name="newtag"%s(zNewTagFlag) /> |
| 2007 | @ Add the following new tag name to this check-in: |
| 2008 | @ <input type="text" style="width:15;" name="tagname" value="%h(zNewTag)" |
| 2009 | @ onkeyup="$('newtag').checked=!!this.value" /> |
| 2010 | db_prepare(&q, |
| 2011 | "SELECT tag.tagid, tagname FROM tagxref, tag" |
| 2012 | " WHERE tagxref.rid=%d AND tagtype>0 AND tagxref.tagid=tag.tagid" |
| 2013 | " ORDER BY CASE WHEN tagname GLOB 'sym-*' THEN substr(tagname,5)" |
| 2014 | " ELSE tagname END /*sort*/", |
| @@ -2036,11 +2036,11 @@ | |
| 2036 | @ <tr><td align="right" valign="top"><b>Branching:</b></td> |
| 2037 | @ <td valign="top"> |
| 2038 | @ <input id="newbr" type="checkbox" name="newbr"%s(zNewBrFlag) /> |
| 2039 | @ Make this check-in the start of a new branch named: |
| 2040 | @ <input type="text" style="width:15;" name="brname" value="%h(zNewBranch)" |
| 2041 | @ onkeyup="$('newbr').checked=!!this.value" /> |
| 2042 | @ </td></tr> |
| 2043 | |
| 2044 | if( is_a_leaf(rid) |
| 2045 | && !db_exists("SELECT 1 FROM tagxref " |
| 2046 | " WHERE tagid=%d AND rid=%d AND tagtype>0", |
| 2047 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1388,11 +1388,11 @@ | |
| 1388 | if( z[0]=='\n' ) z++; |
| 1389 | } |
| 1390 | if( n<iEnd ) cgi_printf("</div>"); |
| 1391 | @ </pre> |
| 1392 | if( iStart ){ |
| 1393 | @ <script>gebi('topln').scrollIntoView(true);</script> |
| 1394 | } |
| 1395 | } |
| 1396 | |
| 1397 | |
| 1398 | /* |
| @@ -2004,11 +2004,11 @@ | |
| 2004 | @ <tr><td align="right" valign="top"><b>Tags:</b></td> |
| 2005 | @ <td valign="top"> |
| 2006 | @ <input type="checkbox" id="newtag" name="newtag"%s(zNewTagFlag) /> |
| 2007 | @ Add the following new tag name to this check-in: |
| 2008 | @ <input type="text" style="width:15;" name="tagname" value="%h(zNewTag)" |
| 2009 | @ onkeyup="gebi('newtag').checked=!!this.value" /> |
| 2010 | db_prepare(&q, |
| 2011 | "SELECT tag.tagid, tagname FROM tagxref, tag" |
| 2012 | " WHERE tagxref.rid=%d AND tagtype>0 AND tagxref.tagid=tag.tagid" |
| 2013 | " ORDER BY CASE WHEN tagname GLOB 'sym-*' THEN substr(tagname,5)" |
| 2014 | " ELSE tagname END /*sort*/", |
| @@ -2036,11 +2036,11 @@ | |
| 2036 | @ <tr><td align="right" valign="top"><b>Branching:</b></td> |
| 2037 | @ <td valign="top"> |
| 2038 | @ <input id="newbr" type="checkbox" name="newbr"%s(zNewBrFlag) /> |
| 2039 | @ Make this check-in the start of a new branch named: |
| 2040 | @ <input type="text" style="width:15;" name="brname" value="%h(zNewBranch)" |
| 2041 | @ onkeyup="gebi('newbr').checked=!!this.value" /> |
| 2042 | @ </td></tr> |
| 2043 | |
| 2044 | if( is_a_leaf(rid) |
| 2045 | && !db_exists("SELECT 1 FROM tagxref " |
| 2046 | " WHERE tagid=%d AND rid=%d AND tagtype>0", |
| 2047 |
+2
-2
| --- src/login.c | ||
| +++ src/login.c | ||
| @@ -594,11 +594,11 @@ | ||
| 594 | 594 | @ <td><input type="submit" name="in" value="Login" |
| 595 | 595 | @ onClick="chngAction(this.form)" /></td> |
| 596 | 596 | @ </tr> |
| 597 | 597 | @ </table> |
| 598 | 598 | @ <script type="text/JavaScript"> |
| 599 | - @ $('u').focus() | |
| 599 | + @ gebi('u').focus() | |
| 600 | 600 | @ function chngAction(form){ |
| 601 | 601 | if( g.sslNotAvailable==0 |
| 602 | 602 | && memcmp(g.zBaseURL,"https:",6)!=0 |
| 603 | 603 | && db_get_boolean("https-login",0) |
| 604 | 604 | ){ |
| @@ -635,11 +635,11 @@ | ||
| 635 | 635 | @ <div class="captcha"><table class="captcha"><tr><td><pre> |
| 636 | 636 | @ %s(zCaptcha) |
| 637 | 637 | @ </pre></td></tr></table> |
| 638 | 638 | if( bAutoCaptcha ) { |
| 639 | 639 | @ <input type="button" value="Fill out captcha" |
| 640 | - @ onclick="$('u').value='anonymous'; $('p').value='%s(zDecoded)';" /> | |
| 640 | + @ onclick="gebi('u').value='anonymous'; gebi('p').value='%s(zDecoded)';" /> | |
| 641 | 641 | } |
| 642 | 642 | @ </div> |
| 643 | 643 | free(zCaptcha); |
| 644 | 644 | } |
| 645 | 645 | if( g.zLogin ){ |
| 646 | 646 |
| --- src/login.c | |
| +++ src/login.c | |
| @@ -594,11 +594,11 @@ | |
| 594 | @ <td><input type="submit" name="in" value="Login" |
| 595 | @ onClick="chngAction(this.form)" /></td> |
| 596 | @ </tr> |
| 597 | @ </table> |
| 598 | @ <script type="text/JavaScript"> |
| 599 | @ $('u').focus() |
| 600 | @ function chngAction(form){ |
| 601 | if( g.sslNotAvailable==0 |
| 602 | && memcmp(g.zBaseURL,"https:",6)!=0 |
| 603 | && db_get_boolean("https-login",0) |
| 604 | ){ |
| @@ -635,11 +635,11 @@ | |
| 635 | @ <div class="captcha"><table class="captcha"><tr><td><pre> |
| 636 | @ %s(zCaptcha) |
| 637 | @ </pre></td></tr></table> |
| 638 | if( bAutoCaptcha ) { |
| 639 | @ <input type="button" value="Fill out captcha" |
| 640 | @ onclick="$('u').value='anonymous'; $('p').value='%s(zDecoded)';" /> |
| 641 | } |
| 642 | @ </div> |
| 643 | free(zCaptcha); |
| 644 | } |
| 645 | if( g.zLogin ){ |
| 646 |
| --- src/login.c | |
| +++ src/login.c | |
| @@ -594,11 +594,11 @@ | |
| 594 | @ <td><input type="submit" name="in" value="Login" |
| 595 | @ onClick="chngAction(this.form)" /></td> |
| 596 | @ </tr> |
| 597 | @ </table> |
| 598 | @ <script type="text/JavaScript"> |
| 599 | @ gebi('u').focus() |
| 600 | @ function chngAction(form){ |
| 601 | if( g.sslNotAvailable==0 |
| 602 | && memcmp(g.zBaseURL,"https:",6)!=0 |
| 603 | && db_get_boolean("https-login",0) |
| 604 | ){ |
| @@ -635,11 +635,11 @@ | |
| 635 | @ <div class="captcha"><table class="captcha"><tr><td><pre> |
| 636 | @ %s(zCaptcha) |
| 637 | @ </pre></td></tr></table> |
| 638 | if( bAutoCaptcha ) { |
| 639 | @ <input type="button" value="Fill out captcha" |
| 640 | @ onclick="gebi('u').value='anonymous'; gebi('p').value='%s(zDecoded)';" /> |
| 641 | } |
| 642 | @ </div> |
| 643 | free(zCaptcha); |
| 644 | } |
| 645 | if( g.zLogin ){ |
| 646 |
+16
-4
| --- src/style.c | ||
| +++ src/style.c | ||
| @@ -124,11 +124,11 @@ | ||
| 124 | 124 | void style_resolve_href(void){ |
| 125 | 125 | int i; |
| 126 | 126 | if( !g.perm.Hyperlink || !g.javascriptHyperlink || nHref==0 ) return; |
| 127 | 127 | @ <script type="text/JavaScript"> |
| 128 | 128 | @ /* <![CDATA[ */ |
| 129 | - @ function u(i,h){$(i).href=h;} | |
| 129 | + @ function u(i,h){gebi(i).href=h;} | |
| 130 | 130 | for(i=0; i<nHref; i++){ |
| 131 | 131 | @ u(%d(i+1),"%s(aHref[i])"); |
| 132 | 132 | } |
| 133 | 133 | @ /* ]]> */ |
| 134 | 134 | @ </script> |
| @@ -202,13 +202,25 @@ | ||
| 202 | 202 | cgi_destination(CGI_BODY); |
| 203 | 203 | g.cgiOutput = 1; |
| 204 | 204 | headerHasBeenGenerated = 1; |
| 205 | 205 | sideboxUsed = 0; |
| 206 | 206 | |
| 207 | - /* Make the $(x) function available as an alias for | |
| 208 | - ** document.getElementById(x), since it seems like everybody does this */ | |
| 209 | - @ <script>function $(x){return document.getElementById(x);}</script> | |
| 207 | + /* Make the gebi(x) function available as an almost-alias for | |
| 208 | + ** document.getElementById(x) (except that it throws if the element is not found). | |
| 209 | + ** | |
| 210 | + ** Maintenance note: this function must of course be available | |
| 211 | + ** before it is called. It "should" go in the HEAD so that client | |
| 212 | + ** HEAD code can make use of it, but because the client can replace | |
| 213 | + ** the HEAD, and some fossil pages rely on gebi(), we put it here. | |
| 214 | + */ | |
| 215 | + @ <script> | |
| 216 | + @ function gebi(x){ | |
| 217 | + @ if(/^#/.test(x)) x = x.substr(1); | |
| 218 | + @ var e = document.getElementById(x); | |
| 219 | + @ if(!e) throw new Error("Expecting element with ID "+x); | |
| 220 | + @ else return e;} | |
| 221 | + @ </script> | |
| 210 | 222 | } |
| 211 | 223 | |
| 212 | 224 | /* |
| 213 | 225 | ** Append ad unit text if appropriate. |
| 214 | 226 | */ |
| 215 | 227 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -124,11 +124,11 @@ | |
| 124 | void style_resolve_href(void){ |
| 125 | int i; |
| 126 | if( !g.perm.Hyperlink || !g.javascriptHyperlink || nHref==0 ) return; |
| 127 | @ <script type="text/JavaScript"> |
| 128 | @ /* <![CDATA[ */ |
| 129 | @ function u(i,h){$(i).href=h;} |
| 130 | for(i=0; i<nHref; i++){ |
| 131 | @ u(%d(i+1),"%s(aHref[i])"); |
| 132 | } |
| 133 | @ /* ]]> */ |
| 134 | @ </script> |
| @@ -202,13 +202,25 @@ | |
| 202 | cgi_destination(CGI_BODY); |
| 203 | g.cgiOutput = 1; |
| 204 | headerHasBeenGenerated = 1; |
| 205 | sideboxUsed = 0; |
| 206 | |
| 207 | /* Make the $(x) function available as an alias for |
| 208 | ** document.getElementById(x), since it seems like everybody does this */ |
| 209 | @ <script>function $(x){return document.getElementById(x);}</script> |
| 210 | } |
| 211 | |
| 212 | /* |
| 213 | ** Append ad unit text if appropriate. |
| 214 | */ |
| 215 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -124,11 +124,11 @@ | |
| 124 | void style_resolve_href(void){ |
| 125 | int i; |
| 126 | if( !g.perm.Hyperlink || !g.javascriptHyperlink || nHref==0 ) return; |
| 127 | @ <script type="text/JavaScript"> |
| 128 | @ /* <![CDATA[ */ |
| 129 | @ function u(i,h){gebi(i).href=h;} |
| 130 | for(i=0; i<nHref; i++){ |
| 131 | @ u(%d(i+1),"%s(aHref[i])"); |
| 132 | } |
| 133 | @ /* ]]> */ |
| 134 | @ </script> |
| @@ -202,13 +202,25 @@ | |
| 202 | cgi_destination(CGI_BODY); |
| 203 | g.cgiOutput = 1; |
| 204 | headerHasBeenGenerated = 1; |
| 205 | sideboxUsed = 0; |
| 206 | |
| 207 | /* Make the gebi(x) function available as an almost-alias for |
| 208 | ** document.getElementById(x) (except that it throws if the element is not found). |
| 209 | ** |
| 210 | ** Maintenance note: this function must of course be available |
| 211 | ** before it is called. It "should" go in the HEAD so that client |
| 212 | ** HEAD code can make use of it, but because the client can replace |
| 213 | ** the HEAD, and some fossil pages rely on gebi(), we put it here. |
| 214 | */ |
| 215 | @ <script> |
| 216 | @ function gebi(x){ |
| 217 | @ if(/^#/.test(x)) x = x.substr(1); |
| 218 | @ var e = document.getElementById(x); |
| 219 | @ if(!e) throw new Error("Expecting element with ID "+x); |
| 220 | @ else return e;} |
| 221 | @ </script> |
| 222 | } |
| 223 | |
| 224 | /* |
| 225 | ** Append ad unit text if appropriate. |
| 226 | */ |
| 227 |
+5
-5
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -567,11 +567,11 @@ | ||
| 567 | 567 | if( cSep=='[' ) cgi_printf("["); |
| 568 | 568 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 569 | 569 | } |
| 570 | 570 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 571 | 571 | graph_free(pGraph); |
| 572 | - @ var canvasDiv = $("canvas"); | |
| 572 | + @ var canvasDiv = gebi("canvas"); | |
| 573 | 573 | #if 0 |
| 574 | 574 | @ var realCanvas = null; |
| 575 | 575 | #endif |
| 576 | 576 | @ function drawBox(color,x0,y0,x1,y1){ |
| 577 | 577 | @ var n = document.createElement("div"); |
| @@ -587,11 +587,11 @@ | ||
| 587 | 587 | @ n.style.height = h+"px"; |
| 588 | 588 | @ n.style.backgroundColor = color; |
| 589 | 589 | @ canvasDiv.appendChild(n); |
| 590 | 590 | @ } |
| 591 | 591 | @ function absoluteY(id){ |
| 592 | - @ var obj = $(id); | |
| 592 | + @ var obj = gebi(id); | |
| 593 | 593 | @ if( !obj ) return; |
| 594 | 594 | @ var top = 0; |
| 595 | 595 | @ if( obj.offsetParent ){ |
| 596 | 596 | @ do{ |
| 597 | 597 | @ top += obj.offsetTop; |
| @@ -598,11 +598,11 @@ | ||
| 598 | 598 | @ }while( obj = obj.offsetParent ); |
| 599 | 599 | @ } |
| 600 | 600 | @ return top; |
| 601 | 601 | @ } |
| 602 | 602 | @ function absoluteX(id){ |
| 603 | - @ var obj = $(id); | |
| 603 | + @ var obj = gebi(id); | |
| 604 | 604 | @ if( !obj ) return; |
| 605 | 605 | @ var left = 0; |
| 606 | 606 | @ if( obj.offsetParent ){ |
| 607 | 607 | @ do{ |
| 608 | 608 | @ left += obj.offsetLeft; |
| @@ -687,11 +687,11 @@ | ||
| 687 | 687 | @ drawThinArrow(y0,mx,p.x-5); |
| 688 | 688 | @ } |
| 689 | 689 | @ } |
| 690 | 690 | @ } |
| 691 | 691 | @ function renderGraph(){ |
| 692 | - @ var canvasDiv = $("canvas"); | |
| 692 | + @ var canvasDiv = gebi("canvas"); | |
| 693 | 693 | @ while( canvasDiv.hasChildNodes() ){ |
| 694 | 694 | @ canvasDiv.removeChild(canvasDiv.firstChild); |
| 695 | 695 | @ } |
| 696 | 696 | @ var canvasY = absoluteY("timelineTable"); |
| 697 | 697 | @ var left = absoluteX("m"+rowinfo[0].id) - absoluteX("canvas") + 15; |
| @@ -704,11 +704,11 @@ | ||
| 704 | 704 | #if 0 |
| 705 | 705 | @ if( btm<32768 ){ |
| 706 | 706 | @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ |
| 707 | 707 | @ 'style="position:absolute;left:'+(left-5)+'px;"' + |
| 708 | 708 | @ ' width="'+width+'" height="'+btm+'"><'+'/canvas>'; |
| 709 | - @ realCanvas = $('timeline-canvas'); | |
| 709 | + @ realCanvas = gebi('timeline-canvas'); | |
| 710 | 710 | @ }else{ |
| 711 | 711 | @ realCanvas = 0; |
| 712 | 712 | @ } |
| 713 | 713 | @ var context; |
| 714 | 714 | @ if( realCanvas && realCanvas.getContext |
| 715 | 715 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -567,11 +567,11 @@ | |
| 567 | if( cSep=='[' ) cgi_printf("["); |
| 568 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 569 | } |
| 570 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 571 | graph_free(pGraph); |
| 572 | @ var canvasDiv = $("canvas"); |
| 573 | #if 0 |
| 574 | @ var realCanvas = null; |
| 575 | #endif |
| 576 | @ function drawBox(color,x0,y0,x1,y1){ |
| 577 | @ var n = document.createElement("div"); |
| @@ -587,11 +587,11 @@ | |
| 587 | @ n.style.height = h+"px"; |
| 588 | @ n.style.backgroundColor = color; |
| 589 | @ canvasDiv.appendChild(n); |
| 590 | @ } |
| 591 | @ function absoluteY(id){ |
| 592 | @ var obj = $(id); |
| 593 | @ if( !obj ) return; |
| 594 | @ var top = 0; |
| 595 | @ if( obj.offsetParent ){ |
| 596 | @ do{ |
| 597 | @ top += obj.offsetTop; |
| @@ -598,11 +598,11 @@ | |
| 598 | @ }while( obj = obj.offsetParent ); |
| 599 | @ } |
| 600 | @ return top; |
| 601 | @ } |
| 602 | @ function absoluteX(id){ |
| 603 | @ var obj = $(id); |
| 604 | @ if( !obj ) return; |
| 605 | @ var left = 0; |
| 606 | @ if( obj.offsetParent ){ |
| 607 | @ do{ |
| 608 | @ left += obj.offsetLeft; |
| @@ -687,11 +687,11 @@ | |
| 687 | @ drawThinArrow(y0,mx,p.x-5); |
| 688 | @ } |
| 689 | @ } |
| 690 | @ } |
| 691 | @ function renderGraph(){ |
| 692 | @ var canvasDiv = $("canvas"); |
| 693 | @ while( canvasDiv.hasChildNodes() ){ |
| 694 | @ canvasDiv.removeChild(canvasDiv.firstChild); |
| 695 | @ } |
| 696 | @ var canvasY = absoluteY("timelineTable"); |
| 697 | @ var left = absoluteX("m"+rowinfo[0].id) - absoluteX("canvas") + 15; |
| @@ -704,11 +704,11 @@ | |
| 704 | #if 0 |
| 705 | @ if( btm<32768 ){ |
| 706 | @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ |
| 707 | @ 'style="position:absolute;left:'+(left-5)+'px;"' + |
| 708 | @ ' width="'+width+'" height="'+btm+'"><'+'/canvas>'; |
| 709 | @ realCanvas = $('timeline-canvas'); |
| 710 | @ }else{ |
| 711 | @ realCanvas = 0; |
| 712 | @ } |
| 713 | @ var context; |
| 714 | @ if( realCanvas && realCanvas.getContext |
| 715 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -567,11 +567,11 @@ | |
| 567 | if( cSep=='[' ) cgi_printf("["); |
| 568 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 569 | } |
| 570 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 571 | graph_free(pGraph); |
| 572 | @ var canvasDiv = gebi("canvas"); |
| 573 | #if 0 |
| 574 | @ var realCanvas = null; |
| 575 | #endif |
| 576 | @ function drawBox(color,x0,y0,x1,y1){ |
| 577 | @ var n = document.createElement("div"); |
| @@ -587,11 +587,11 @@ | |
| 587 | @ n.style.height = h+"px"; |
| 588 | @ n.style.backgroundColor = color; |
| 589 | @ canvasDiv.appendChild(n); |
| 590 | @ } |
| 591 | @ function absoluteY(id){ |
| 592 | @ var obj = gebi(id); |
| 593 | @ if( !obj ) return; |
| 594 | @ var top = 0; |
| 595 | @ if( obj.offsetParent ){ |
| 596 | @ do{ |
| 597 | @ top += obj.offsetTop; |
| @@ -598,11 +598,11 @@ | |
| 598 | @ }while( obj = obj.offsetParent ); |
| 599 | @ } |
| 600 | @ return top; |
| 601 | @ } |
| 602 | @ function absoluteX(id){ |
| 603 | @ var obj = gebi(id); |
| 604 | @ if( !obj ) return; |
| 605 | @ var left = 0; |
| 606 | @ if( obj.offsetParent ){ |
| 607 | @ do{ |
| 608 | @ left += obj.offsetLeft; |
| @@ -687,11 +687,11 @@ | |
| 687 | @ drawThinArrow(y0,mx,p.x-5); |
| 688 | @ } |
| 689 | @ } |
| 690 | @ } |
| 691 | @ function renderGraph(){ |
| 692 | @ var canvasDiv = gebi("canvas"); |
| 693 | @ while( canvasDiv.hasChildNodes() ){ |
| 694 | @ canvasDiv.removeChild(canvasDiv.firstChild); |
| 695 | @ } |
| 696 | @ var canvasY = absoluteY("timelineTable"); |
| 697 | @ var left = absoluteX("m"+rowinfo[0].id) - absoluteX("canvas") + 15; |
| @@ -704,11 +704,11 @@ | |
| 704 | #if 0 |
| 705 | @ if( btm<32768 ){ |
| 706 | @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ |
| 707 | @ 'style="position:absolute;left:'+(left-5)+'px;"' + |
| 708 | @ ' width="'+width+'" height="'+btm+'"><'+'/canvas>'; |
| 709 | @ realCanvas = gebi('timeline-canvas'); |
| 710 | @ }else{ |
| 711 | @ realCanvas = 0; |
| 712 | @ } |
| 713 | @ var context; |
| 714 | @ if( realCanvas && realCanvas.getContext |
| 715 |