Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Replaced $(x) with gebi(x), as per ML discussion. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
dfce20e487f3c86f598a9d4ca6e02231 |
User & Date: | stephan 2012-07-20 15:06:50.018 |
Context
2012-07-20
| ||
15:19 | /json/dir now requires Read ("o"), instead of Hyperlink ("h") permission, analog to checkin [ded8615f95]. ... (check-in: 625ed004 user: stephan tags: trunk) | |
15:06 | Replaced $(x) with gebi(x), as per ML discussion. ... (check-in: dfce20e4 user: stephan tags: trunk) | |
14:54 | Change the "dir" webpage to require read permission. ... (check-in: ded8615f user: drh tags: trunk) | |
Changes
Changes to src/info.c.
︙ | ︙ | |||
1386 1387 1388 1389 1390 1391 1392 | else cgi_append_content("\n", 1); z += i; if( z[0]=='\n' ) z++; } if( n<iEnd ) cgi_printf("</div>"); @ </pre> if( iStart ){ | | | 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 | else cgi_append_content("\n", 1); z += i; if( z[0]=='\n' ) z++; } if( n<iEnd ) cgi_printf("</div>"); @ </pre> if( iStart ){ @ <script>gebi('topln').scrollIntoView(true);</script> } } /* ** WEBPAGE: artifact ** URL: /artifact/ARTIFACTID |
︙ | ︙ | |||
2002 2003 2004 2005 2006 2007 2008 | @ </td></tr> @ <tr><td align="right" valign="top"><b>Tags:</b></td> @ <td valign="top"> @ <input type="checkbox" id="newtag" name="newtag"%s(zNewTagFlag) /> @ Add the following new tag name to this check-in: @ <input type="text" style="width:15;" name="tagname" value="%h(zNewTag)" | | | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 | @ </td></tr> @ <tr><td align="right" valign="top"><b>Tags:</b></td> @ <td valign="top"> @ <input type="checkbox" id="newtag" name="newtag"%s(zNewTagFlag) /> @ Add the following new tag name to this check-in: @ <input type="text" style="width:15;" name="tagname" value="%h(zNewTag)" @ onkeyup="gebi('newtag').checked=!!this.value" /> db_prepare(&q, "SELECT tag.tagid, tagname FROM tagxref, tag" " WHERE tagxref.rid=%d AND tagtype>0 AND tagxref.tagid=tag.tagid" " ORDER BY CASE WHEN tagname GLOB 'sym-*' THEN substr(tagname,5)" " ELSE tagname END /*sort*/", rid ); |
︙ | ︙ | |||
2034 2035 2036 2037 2038 2039 2040 | @ </td></tr> @ <tr><td align="right" valign="top"><b>Branching:</b></td> @ <td valign="top"> @ <input id="newbr" type="checkbox" name="newbr"%s(zNewBrFlag) /> @ Make this check-in the start of a new branch named: @ <input type="text" style="width:15;" name="brname" value="%h(zNewBranch)" | | | 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 | @ </td></tr> @ <tr><td align="right" valign="top"><b>Branching:</b></td> @ <td valign="top"> @ <input id="newbr" type="checkbox" name="newbr"%s(zNewBrFlag) /> @ Make this check-in the start of a new branch named: @ <input type="text" style="width:15;" name="brname" value="%h(zNewBranch)" @ onkeyup="gebi('newbr').checked=!!this.value" /> @ </td></tr> if( is_a_leaf(rid) && !db_exists("SELECT 1 FROM tagxref " " WHERE tagid=%d AND rid=%d AND tagtype>0", TAG_CLOSED, rid) ){ |
︙ | ︙ |
Changes to src/login.c.
︙ | ︙ | |||
592 593 594 595 596 597 598 | @ <tr> @ <td></td> @ <td><input type="submit" name="in" value="Login" @ onClick="chngAction(this.form)" /></td> @ </tr> @ </table> @ <script type="text/JavaScript"> | | | 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | @ <tr> @ <td></td> @ <td><input type="submit" name="in" value="Login" @ onClick="chngAction(this.form)" /></td> @ </tr> @ </table> @ <script type="text/JavaScript"> @ gebi('u').focus() @ function chngAction(form){ if( g.sslNotAvailable==0 && memcmp(g.zBaseURL,"https:",6)!=0 && db_get_boolean("https-login",0) ){ char *zSSL = mprintf("https:%s", &g.zBaseURL[5]); @ if( form.u.value!="anonymous" ){ |
︙ | ︙ | |||
633 634 635 636 637 638 639 | @ Visitors may enter <b>anonymous</b> as the user-ID with @ the 8-character hexadecimal password shown below:</p> @ <div class="captcha"><table class="captcha"><tr><td><pre> @ %s(zCaptcha) @ </pre></td></tr></table> if( bAutoCaptcha ) { @ <input type="button" value="Fill out captcha" | | | 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 | @ Visitors may enter <b>anonymous</b> as the user-ID with @ the 8-character hexadecimal password shown below:</p> @ <div class="captcha"><table class="captcha"><tr><td><pre> @ %s(zCaptcha) @ </pre></td></tr></table> if( bAutoCaptcha ) { @ <input type="button" value="Fill out captcha" @ onclick="gebi('u').value='anonymous'; gebi('p').value='%s(zDecoded)';" /> } @ </div> free(zCaptcha); } if( g.zLogin ){ @ <hr /> @ <p>To log off the system (and delete your login cookie) |
︙ | ︙ |
Changes to src/style.c.
︙ | ︙ | |||
122 123 124 125 126 127 128 | ** Generate javascript that will set the href= attribute on all anchors. */ void style_resolve_href(void){ int i; if( !g.perm.Hyperlink || !g.javascriptHyperlink || nHref==0 ) return; @ <script type="text/JavaScript"> @ /* <![CDATA[ */ | | | 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | ** Generate javascript that will set the href= attribute on all anchors. */ void style_resolve_href(void){ int i; if( !g.perm.Hyperlink || !g.javascriptHyperlink || nHref==0 ) return; @ <script type="text/JavaScript"> @ /* <![CDATA[ */ @ function u(i,h){gebi(i).href=h;} for(i=0; i<nHref; i++){ @ u(%d(i+1),"%s(aHref[i])"); } @ /* ]]> */ @ </script> } |
︙ | ︙ | |||
200 201 202 203 204 205 206 | if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1); Th_Unstore("title"); /* Avoid collisions with ticket field names */ cgi_destination(CGI_BODY); g.cgiOutput = 1; headerHasBeenGenerated = 1; sideboxUsed = 0; | | | > > > > > > > > > | > > > | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 | if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1); Th_Unstore("title"); /* Avoid collisions with ticket field names */ cgi_destination(CGI_BODY); g.cgiOutput = 1; headerHasBeenGenerated = 1; sideboxUsed = 0; /* Make the gebi(x) function available as an almost-alias for ** document.getElementById(x) (except that it throws if the element is not found). ** ** Maintenance note: this function must of course be available ** before it is called. It "should" go in the HEAD so that client ** HEAD code can make use of it, but because the client can replace ** the HEAD, and some fossil pages rely on gebi(), we put it here. */ @ <script> @ function gebi(x){ @ if(/^#/.test(x)) x = x.substr(1); @ var e = document.getElementById(x); @ if(!e) throw new Error("Expecting element with ID "+x); @ else return e;} @ </script> } /* ** Append ad unit text if appropriate. */ static void style_ad_unit(void){ const char *zAd; |
︙ | ︙ |
Changes to src/timeline.c.
︙ | ︙ | |||
565 566 567 568 569 570 571 | } } if( cSep=='[' ) cgi_printf("["); cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); } cgi_printf("var nrail = %d\n", pGraph->mxRail+1); graph_free(pGraph); | | | | | 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 | } } if( cSep=='[' ) cgi_printf("["); cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); } cgi_printf("var nrail = %d\n", pGraph->mxRail+1); graph_free(pGraph); @ var canvasDiv = gebi("canvas"); #if 0 @ var realCanvas = null; #endif @ function drawBox(color,x0,y0,x1,y1){ @ var n = document.createElement("div"); @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } @ var w = x1-x0+1; @ var h = y1-y0+1; @ n.style.position = "absolute"; @ n.style.overflow = "hidden"; @ n.style.left = x0+"px"; @ n.style.top = y0+"px"; @ n.style.width = w+"px"; @ n.style.height = h+"px"; @ n.style.backgroundColor = color; @ canvasDiv.appendChild(n); @ } @ function absoluteY(id){ @ var obj = gebi(id); @ if( !obj ) return; @ var top = 0; @ if( obj.offsetParent ){ @ do{ @ top += obj.offsetTop; @ }while( obj = obj.offsetParent ); @ } @ return top; @ } @ function absoluteX(id){ @ var obj = gebi(id); @ if( !obj ) return; @ var left = 0; @ if( obj.offsetParent ){ @ do{ @ left += obj.offsetLeft; @ }while( obj = obj.offsetParent ); @ } |
︙ | ︙ | |||
685 686 687 688 689 690 691 | @ drawThinArrow(y0,mx,p.x+6); @ }else{ @ drawThinArrow(y0,mx,p.x-5); @ } @ } @ } @ function renderGraph(){ | | | | 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 | @ drawThinArrow(y0,mx,p.x+6); @ }else{ @ drawThinArrow(y0,mx,p.x-5); @ } @ } @ } @ function renderGraph(){ @ var canvasDiv = gebi("canvas"); @ while( canvasDiv.hasChildNodes() ){ @ canvasDiv.removeChild(canvasDiv.firstChild); @ } @ var canvasY = absoluteY("timelineTable"); @ var left = absoluteX("m"+rowinfo[0].id) - absoluteX("canvas") + 15; @ var width = nrail*20; @ for(var i in rowinfo){ @ rowinfo[i].y = absoluteY("m"+rowinfo[i].id) + 10 - canvasY; @ rowinfo[i].x = left + rowinfo[i].r*20; @ } @ var btm = absoluteY("grbtm") + 10 - canvasY; #if 0 @ if( btm<32768 ){ @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ @ 'style="position:absolute;left:'+(left-5)+'px;"' + @ ' width="'+width+'" height="'+btm+'"><'+'/canvas>'; @ realCanvas = gebi('timeline-canvas'); @ }else{ @ realCanvas = 0; @ } @ var context; @ if( realCanvas && realCanvas.getContext @ && (context = realCanvas.getContext('2d'))) { @ drawBox = function(color,x0,y0,x1,y1) { |
︙ | ︙ |