Share Pastebin
Guest
Public paste!

sid

By: a guest | Dec 3rd, 2008 | Syntax: None | Size: 8.35 KB | Hits: 137 | 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. html {
  10.   overflow: scroll; overflow-x: auto;
  11. }
  12. </style>
  13. <script type="text/javascript" src="{staticurl}jquery-1.2.6.min.js"></script>
  14. <script type="text/javascript">// <![CDATA
  15. function localizeDates()
  16. {
  17.   var dates = document.getElementsByClassName("date");
  18.   for (var i=0; i<dates.length; i++) {
  19.     dates[i].textContent = new Date(dates[i].textContent).toLocaleString();
  20.   }
  21.   document.getElementById("localize").style.display = 'none';
  22.   return false;
  23. }
  24.  
  25.  
  26. var start;
  27. function setup()
  28. {
  29.   if ('getElementsByClassName' in document) {
  30.     var l = document.getElementById("localize");
  31.     l.style.display = "";
  32.     l.onclick = localizeDates;
  33.    
  34.     start = 0;
  35.     getMaxEntries();
  36.    
  37.     var docHeight = document.body.clientHeight;
  38.     while(docHeight <= window.innerHeight) {
  39.       if(start > 0) {
  40.         renderMorePushLogResults();
  41.         docHeight += 500;
  42.       }
  43.     }
  44.   }
  45. }
  46. // ]]>
  47.  
  48.  
  49.  
  50. function getMaxEntries() {
  51.   var entries = new XMLHttpRequest();
  52.   var max = 0;
  53.   entries.open('GET', '/json-pushes?startID=0&endID=5', true);
  54.   entries.onreadystatechange = function() {
  55.   if(entries.readyState == 4)  {
  56.     if(entries.status != 404) {
  57.       var entryData = new Function("return " + entries.responseText) ();
  58.       max = entryData[1].max;
  59.      
  60.       start = max - 20;
  61.     }
  62.   }
  63.   else
  64.     return 0;
  65.  }
  66.  entries.send(null);
  67. }
  68.  
  69. function renderMorePushLogResults() {
  70.   var end = start;
  71.   start = start - 20
  72.   var pushCheckins = new XMLHttpRequest();
  73.   pushCheckins.open('GET', '/json-pushes?startID=' + start + '&endID=' + end, true);
  74.   pushCheckins.onreadystatechange = function() {
  75.     if(pushCheckins.readyState == 4)  {
  76.       if(pushCheckins.status != 404) {
  77.         var loader = document.getElementById("loader");
  78.         loader.innerHTML = '<img src="{url}static/ajax-loader.gif" align="right" />';
  79.         var pushData = new Function("return " + pushCheckins.responseText) ();
  80.         var counter = 0;
  81.         for(var i = end; i > start; i--) {
  82.           var trScroll = document.createElement("tr");
  83.           if(counter == 0) {
  84.             trScroll.className = "parity0";
  85.             counter = 1;
  86.           } else {
  87.               counter = 0;
  88.               trScroll.className = "parity1";
  89.           }      
  90.           var tdScrollUser = document.createElement("td");
  91.           tdScrollUser.width = "184px";
  92.           tdScrollUser.innerHTML += pushData[i].user + '<br />' + pushData[i].formattedDate;
  93.           //Create changset link
  94.           var tdScrollChangeset = document.createElement("td");
  95.           tdScrollChangeset.innerHTML +=
  96.             '<a href=\"/rev/' +
  97.             pushData[i].individualChangeset.substring(0, 12) +
  98.             '\">' +
  99.             pushData[i].individualChangeset.substring(0, 12) +
  100.             '</a>';
  101.           //Create buglink
  102.           var bugInDesc = (pushData[i].desc).toLowerCase().indexOf("bug");
  103.           if(bugInDesc != -1) {
  104.             var bugLinkName = (pushData[i].desc).substring(bugInDesc, bugInDesc + 10);
  105.             var bugNumber = bugLinkName.substring(4, 10);
  106.             var bugLink =
  107.               (pushData[i].desc).substring(0, bugInDesc) +
  108.               '<a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=' +
  109.               bugNumber +
  110.               '\">' +
  111.               bugLinkName +
  112.               '</a>' +
  113.               (pushData[i].desc).substring(bugInDesc + 10, (pushData[i].desc).length);
  114.           } else { //No bug provided
  115.               var bugLink = pushData[i].desc;
  116.           }
  117.           var tdScrollAuthorDesc = document.createElement("td");
  118.           tdScrollAuthorDesc.innerHTML += '<strong>' + pushData[i].author + ' &mdash ' + bugLink + '</strong>';
  119.           trScroll.appendChild(tdScrollUser);
  120.           trScroll.appendChild(tdScrollChangeset);
  121.           trScroll.appendChild(tdScrollAuthorDesc);
  122.           loader.innerHTML = "";
  123.           document.getElementById("titlePush").appendChild(trScroll);
  124.  
  125.           //Check whether it is a merge changeset or not
  126.           if(pushData[i].MergeData != []) {
  127.             for(var j = 0; j < pushData[i].mergeData.length; j++) {
  128.               if(pushData[i].mergeData[j] != "") {
  129.                 var mergeStr = pushData[i].mergeData[j];
  130.                 for(var k = 0; k < pushData[i].mergeData[j].length; k++) {
  131.                   var actualMergeStr = mergeStr[k].split('|-|');
  132.                   var mergeC = actualMergeStr[0];
  133.                   var mergeUser = actualMergeStr[1];
  134.                   var mergeDesc = actualMergeStr[2];
  135.                   if(mergeDesc != pushData[i].desc) {
  136.                     var trScrollMerge = document.createElement("tr");
  137.                     trScrollMerge.style.backgroundColor = trScroll.style.backgroundColor;
  138.                     var tdScroll_MergeUser = document.createElement("td");
  139.                     tdScroll_MergeUser.width = "184px";
  140.                    
  141.                     //Create changset link
  142.                     var tdScroll_MergeC = document.createElement("td");
  143.                     tdScroll_MergeC.innerHTML +=
  144.                       '<a href=\"/rev/' +
  145.                       mergeC.substring(0, 12) +
  146.                       '\">' +
  147.                       mergeC.substring(0, 12) +
  148.                       '</a>';    
  149.                     //Create buglink
  150.                     var merge_bugInDesc = mergeDesc.toLowerCase().indexOf("bug");
  151.                     if(merge_bugInDesc != -1) {
  152.                       var merge_bugLinkName = mergeDesc.substring(merge_bugInDesc, merge_bugInDesc + 10);
  153.                       var merge_bugNumber = merge_bugLinkName.substring(4, 10);
  154.                       var merge_bugLink =
  155.                         mergeDesc.substring(0, merge_bugInDesc) +
  156.                         '<a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=' +
  157.                         merge_bugNumber +
  158.                         '\">' +
  159.                         merge_bugLinkName +
  160.                         '</a>' +
  161.                         mergeDesc.substring(merge_bugInDesc + 10, mergeDesc.length);
  162.                     } else { //No bug provided
  163.                         var merge_bugLink = mergeDesc;
  164.                     }
  165.                     var tdScroll_MergeAuthorDesc = document.createElement("td");
  166.                     tdScroll_MergeAuthorDesc.innerHTML += '<strong>' + mergeUser + ' &mdash ' + merge_bugLink + '</strong>';
  167.                     trScrollMerge.appendChild(tdScroll_MergeUser);
  168.                     trScrollMerge.appendChild(tdScroll_MergeC);
  169.                     trScrollMerge.appendChild(tdScroll_MergeAuthorDesc);
  170.                     document.getElementById("titlePush").appendChild(trScrollMerge);
  171.                   }
  172.                 }
  173.               }
  174.             }
  175.           }
  176.         }    
  177.       }
  178.     }
  179.   }
  180.   pushCheckins.send(null);
  181. }
  182.  
  183. $(window).scroll(function() {
  184.   if(start > 0) {
  185.     if($(window).scrollTop() == $(document).height() - $(window).height()) {
  186.       renderMorePushLogResults();
  187.     }
  188.   }
  189. });
  190.  
  191. </script>
  192. </head>
  193. <body onload="setup()">
  194.  
  195. <div class="page_header">
  196. <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
  197. </div>
  198.  
  199. <form action="{url}pushloghtml">
  200. <div class="search">
  201. From:
  202. <input type="text" name="startdate"  value="#startdate#"/>
  203. To:
  204. <input type="text" name="enddate"  value="#enddate#"/>
  205. <input type="submit" value="Search"/>
  206. </div>
  207. </form>
  208. <div class="page_nav">
  209. <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
  210. pushlog |
  211. <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
  212. <a href="{url}file/tip{sessionvars%urlparameter}">files</a>#archives%archiveentry#
  213. <br/>
  214. Page #changenav%navpushentry#<br/>
  215. </div>
  216.  
  217. <div class="title">#query%pushquery#</div>
  218. <table id="titlePush" cellspacing="0">
  219. <tr><th>User<br/>Push date <a href="#" id="localize" style="display:none">[To Local]</a></th><th>Changeset</th><th>Patch author &mdash; Commit message</th></tr>
  220. #entries%pushlogentry#
  221. </table>
  222. <div id="loader"></div>
  223. <div class="page_nav">
  224. Page #changenav%navpushentry#
  225. </div>
  226.  
  227. #footer#