<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -10,6 +10,7 @@ var gitref = '';
 var repolist = [];
 var distlist = [];
 var selected = {};
+var statusurl = '';
 
 function package_list(dist) {
 	selected['dist'] = dist;
@@ -46,7 +47,7 @@ function package_detail() {
 			$.post(apiurl + '/repository/' + selected['package'] + '/copy', {
 				dstdist: this.name
 			}, function(data, textStatus) {
-				$('#detail #status').append(selected['package'] + ' has been copied to ' + selected['dstdist']);
+				$('#detail #status').append(selected['package'] + ' has been copied to ' + selected['dstdist'] + '&lt;br /&gt;');
 				$('#detail #status').fadeIn('slow');
 			});
 		});
@@ -82,6 +83,11 @@ function search_gitlist() {
 	}
 
 	$('#gitlist a').click(build_detail);
+
+	// Dirty hack.
+	if(results.length == 1) {
+		$('#gitlist a').trigger('click');
+	}
 }
 
 function build_detail() {
@@ -100,7 +106,10 @@ function build_detail() {
 
 function build_options() {
 	gitref = this.name;
-	$('#detail').append('&lt;fieldset id=&quot;options&quot;&gt;&lt;legend&gt;Build options&lt;/legend&gt;&lt;label for=&quot;upload&quot;&gt;Upload to:&lt;/label&gt;&lt;select name=&quot;upload&quot;&gt;&lt;/select&gt;&lt;div id=&quot;startbutton&quot;&gt;&lt;input type=&quot;button&quot; name=&quot;start&quot; value=&quot;Start build&quot; /&gt;&lt;/div&gt;&lt;/fieldset&gt;');
+	$('#detail #options').remove();
+	$('#detail #status').remove();
+	statusurl = null;
+	$('#detail').append('&lt;fieldset id=&quot;options&quot;&gt;&lt;legend&gt;Build ' + this.innerHTML + '&lt;/legend&gt;&lt;label for=&quot;upload&quot;&gt;Upload to:&lt;/label&gt;&lt;select name=&quot;upload&quot;&gt;&lt;/select&gt;&lt;div id=&quot;startbutton&quot;&gt;&lt;input type=&quot;button&quot; name=&quot;start&quot; value=&quot;Start build&quot; /&gt;&lt;/div&gt;&lt;/fieldset&gt;');
 	for(i = 0; i &lt; distlist.length; i++) {
 		if(distlist[i] != default_dist) {
 			$('#detail [name=upload]').append('&lt;option value=&quot;' + distlist[i] + '&quot;&gt;' + distlist[i] + '&lt;/option&gt;');
@@ -115,11 +124,11 @@ function build_options() {
 function build_start() {
 	uploadto = $('#detail [name=upload]').val();
 	$('#detail #options').remove();
+	$('#detail #status').remove();
 	// We have access to the gitrepo variable here for some reason
 	// Javascript has weird scoping rules
 	//gitref = this.name;
-	$('#detail').append('&lt;fieldset id=&quot;status&quot;&gt;&lt;legend&gt;Build status&lt;/legend&gt;&lt;div id=&quot;spinner&quot; style=&quot;display: none;&quot;&gt;&lt;img src=&quot;img/spinner.gif&quot; alt=&quot;spinner&quot; /&gt;&lt;/div&gt;&lt;/fieldset&gt;');
-	$('#status').append('&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;');
+	$('#detail').append('&lt;fieldset id=&quot;status&quot;&gt;&lt;legend&gt;Build status&lt;/legend&gt;&lt;div id=&quot;spinner&quot; style=&quot;display: none;&quot;&gt;&lt;img src=&quot;img/spinner.gif&quot; alt=&quot;spinner&quot; /&gt;&lt;/div&gt;&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;&lt;/fieldset&gt;');
 
 	$.post(apiurl + '/buildbot/' + gitrepo + '.git', {
 			ref: gitref,
@@ -129,6 +138,7 @@ function build_start() {
 		function(data) {
 			buildid = data;
 			$('#spinner').show();
+			statusurl = '/buildbot/status/' + buildid;
 			setTimeout(build_status, 3000);
 		});
 }
@@ -147,11 +157,13 @@ function build_update(data, textStatus) {
 }
 
 function build_status() {
-	$.ajax({
-		type: 'GET',
-		url: apiurl + '/buildbot/status/' + buildid,
-		complete: build_update
-	});
+	if(statusurl != null) {
+		$.ajax({
+			type: 'GET',
+			url: apiurl + statusurl,
+			complete: build_update
+		});
+	}
 }
 
 $(document).ready(function() {</diff>
      <filename>html/index.html</filename>
    </modified>
    <modified>
      <diff>@@ -13,6 +13,11 @@ import uuid
 
 from config import conf
 
+try:
+    import json
+except ImportError:
+    import simplejson as json
+
 def unique(lst):
     s = {}
     [s.__setitem__(repr(p), p) for p in lst]
@@ -119,7 +124,7 @@ class RepoHandler(RequestHandler):
             'Components': 'main contrib non-free',
             'Description': 'Default package repository',
         }
-        dist.update(loads(self.request.params, self.request.body))
+        dist.update(json.loads(self.request.body))
         for field in ['Origin', 'Label', 'Suite', 'Codename']:
             if not field in dist:
                 return Response(status=400, body='Required field %s is missing.' % field)</diff>
      <filename>repoman/repository.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>96a614ba1798ef0c1a4d45c5ca193aea22fc5597</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Grosser</name>
    <email>synack@digg.com</email>
  </author>
  <url>http://github.com/synack/repoman/commit/97c1f865a69cfa9bd85324de9b1c06400f5d7df4</url>
  <id>97c1f865a69cfa9bd85324de9b1c06400f5d7df4</id>
  <committed-date>2009-10-21T18:02:39-07:00</committed-date>
  <authored-date>2009-10-21T18:02:39-07:00</authored-date>
  <message>Fix some JS bugs in the build status view</message>
  <tree>61da9a91421f90d2933e207131d55b96d81be18e</tree>
  <committer>
    <name>Jeremy Grosser</name>
    <email>synack@digg.com</email>
  </committer>
</commit>
