github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/service/templates/file_diff.html (about) 1 {{define "base"}} 2 <html> 3 <script src="/static/js/jquery.js"></script> 4 <style type="text/css"> 5 .addition{ background-color: #9f9; } 6 .deletion{ background-color: #faa; } 7 .filestat{ font-weight:bold; } 8 .rawdiff{ display:none; } 9 </style> 10 <script type="text/javascript"> 11 var patches = {{.Data.Patches}}; 12 var filename = {{.FileName}}; 13 var patchNumber = {{.PatchNumber}}; 14 15 var handlePatchNumber = function(i) { 16 var outputBlock = $('<code></code>'); 17 $('#output').append($('<pre></pre>').append(outputBlock)); 18 19 var found = false; 20 var lines = patches[i].PatchSet.Patch.split('\n'); 21 var prevClass = undefined; 22 var prevElement = undefined; 23 24 for (var j = 0; j < lines.length; ++j) { 25 var line = lines[j]; 26 27 var isNewFile = (line.indexOf('diff --git') === 0); 28 29 if (isNewFile && found) { 30 break; 31 } 32 33 if (filename && isNewFile && line.indexOf(filename) != -1) { 34 found = true; 35 } 36 37 if (line.substring(0, 3) == "+++") { 38 classname = "filestat"; 39 } else if (line.substring(0, 3) == "---") { 40 classname = "filestat"; 41 } else if (line[0] == "+") { 42 classname = "addition"; 43 } else if (line[0] == '-') { 44 classname = 'deletion'; 45 } else { 46 classname = undefined; 47 } 48 49 if (classname == prevClass && prevElement) { 50 var x = $(prevElement).text( 51 $(prevElement).text() + line + "\n"); 52 } else { 53 if (found || !filename) { 54 var newSpan = $('<span></span>').text(lines[j] + "\n"); 55 if (classname) { 56 newSpan.addClass(classname); 57 } 58 outputBlock.append(newSpan); 59 prevElement = newSpan; 60 prevClass = classname; 61 } 62 } 63 } 64 }; 65 66 $(document).ready(function() { 67 if (patchNumber || patchNumber === 0) { 68 handlePatchNumber(patchNumber); 69 } else { 70 for (var i = 0; i < patches.length; ++i) { 71 handlePatchNumber(i); 72 } 73 } 74 }); 75 </script> 76 77 <body> 78 <div id="filename">{{.FileName}}</div> 79 <div id="output"> 80 81 </div> 82 </body> 83 84 </html> 85 {{end}}