Guest
Public paste!

graphview

By: a guest | Dec 2nd, 2008 | Syntax: JavaScript | Size: 3.13 KB | Hits: 188 | Expires: Never
Copy text to clipboard
  1. #header#
  2. <title>#repo|escape#: pushlog</title>
  3. <link rel="alternate" type="application/atom+xml"
  4.    href="{url}pushlog" title="Atom feed for #repo|escape# pushlog"/>
  5. <style type="text/css">
  6. #localize {
  7.   font-size: x-small;
  8. }
  9. </style>
  10. <script type="text/javascript">// <![CDATA
  11. function localizeDates()
  12. {
  13.   var dates = document.getElementsByClassName("date");
  14.   for (var i=0; i<dates.length; i++) {
  15.     dates[i].textContent = new Date(dates[i].textContent).toLocaleString();
  16.   }
  17.   document.getElementById("localize").style.display = 'none';
  18.   return false;
  19. }
  20.  
  21. function setup()
  22. {
  23.   if ('getElementsByClassName' in document) {
  24.     var l = document.getElementById("localize");
  25.     l.style.display = "";
  26.     l.onclick = localizeDates;
  27.   }
  28. }
  29. // ]]>
  30. </script>
  31. </head>
  32. <body onload="setup()">
  33.  
  34. <div class="page_header">
  35. <a href="http://developer.mozilla.org/en/docs/Mercurial" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">#repo|escape#</a> - pushlog
  36. </div>
  37.  
  38. <form action="{url}pushloghtml">
  39. <div class="search">
  40. From:
  41. <input type="text" name="startdate"  value="#startdate#"/>
  42. To:
  43. <input type="text" name="enddate"  value="#enddate#"/>
  44. <input type="submit" vaslue="Search"/>
  45. </div>
  46. </form>
  47. <div class="page_nav">
  48. <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
  49. pushlog |
  50. <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
  51. <a href="{url}file/tip{sessionvars%urlparameter}">files</a>
  52. <br/>
  53. Page #changenav%navpushentry#<br/>
  54. </div>
  55.  
  56. <div id="wrapper">
  57. <ul id="nodebgs"></ul>
  58. <canvas id="graph" width="224" height="{canvasheight}"></canvas>
  59. <ul id="graphnodes"></ul>
  60. </div>
  61.  
  62. <script type="text/javascript" src="{staticurl}graph.js"></script>
  63. <script type="text/javascript">
  64.  
  65. var data = {jsdata|json};
  66. var graph = new Graph();
  67. graph.scale({bg_height});
  68.  
  69. graph.edge = function(x0, y0, x1, y1, color) {
  70.        
  71.         this.setColor(color, 0.0, 0.65);
  72.         this.ctx.beginPath();
  73.         this.ctx.moveTo(x0, y0);
  74.         this.ctx.lineTo(x1, y1);
  75.         this.ctx.stroke();
  76.        
  77. }
  78.  
  79. var revlink = '<li style="_STYLE"><span class="desc">';
  80. revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
  81. revlink += '</span><span class="tag">_TAGS</span>';
  82. revlink += '<span class="info">_DATE ago, by _USER</span></li>';
  83.  
  84. graph.vertex = function(x, y, color, parity, cur) {
  85.        
  86.         this.ctx.beginPath();
  87.         color = this.setColor(color, 0.25, 0.75);
  88.         this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
  89.         this.ctx.fill();
  90.        
  91.         var bg = '<li class="bg parity' + parity + '"></li>';
  92.         var left = (this.columns + 1) * this.bg_height;
  93.         var nstyle = 'padding-left: ' + left + 'px;';
  94.         var item = revlink.replace(/_STYLE/, nstyle);
  95.         item = item.replace(/_PARITY/, 'parity' + parity);
  96.         item = item.replace(/_NODEID/, cur[0]);
  97.         item = item.replace(/_NODEID/, cur[0]);
  98.         item = item.replace(/_DESC/, cur[3]);
  99.         item = item.replace(/_USER/, cur[4]);
  100.         item = item.replace(/_DATE/, cur[5]);
  101.         item = item.replace(/_TAGS/, cur[7].join('&nbsp; '));
  102.        
  103.         return [bg, item];
  104.        
  105. }
  106.  
  107. graph.render(data);
  108. </script>
  109.  
  110. <div class="page_nav">
  111. Page #changenav%navpushentry#
  112. </div>
  113.  
  114. #footer#