[05:16] <wgrant> StevenK: https://code.launchpad.net/~wgrant/launchpad/bm-buildercache/+merge/185968
[05:17] <StevenK> wgrant: http://pastebin.ubuntu.com/6117968/
[05:20] <wgrant> StevenK: headerspan still confuses me, not least because person !== null surely makes more sense.
[05:21] <wgrant> headerspan seems to look completely different depending on whether it's a draft or not.
[05:21] <wgrant> Perhaps construct it independently in those two cases.
[05:22] <wgrant> But otherwise it's looking much more sane.
[05:25] <StevenK> wgrant: http://pastebin.ubuntu.com/6117982/
[05:26] <wgrant> +    var headerspan = null;
[05:27] <wgrant> Also consider headerspan = Y.Node.create('<span>Comment by <a></a> on <span></span></span>')
[05:28] <wgrant> Roughly as readable as a template, without the overhead of using an actual template engine.
[05:28] <StevenK> wgrant: Then we don't need the extra span
[05:29] <StevenK> wgrant: I wasn't sure how JS was about if (...) {\n var blah; } else { var blah; }
[05:30] <StevenK> Oh, we do need the span, so we can use .set(), right
[05:30] <wgrant> StevenK: They should both end up in function scope.
[05:31] <wgrant> I don't think ECMAScript has block scope.
[05:32] <StevenK>       81: 'headerspan' is already defined.
[05:32] <StevenK>       84: 'headerspan' used out of scope.
[05:32] <StevenK>       87: 'headerspan' used out of scope.
[05:32] <StevenK> From that lovely thing, make lint
[05:32] <wgrant> Bah
[05:32] <wgrant> OK, var headerspan;
[05:32] <wgrant> But uninitialised > null;
[05:33] <wgrant> So
[05:33] <wgrant> Now this code is in a form that I can vaguely understand what it does!
[05:33] <StevenK> wgrant: http://pastebin.ubuntu.com/6117991/
[05:36] <wgrant> StevenK: Why do you insert before the next row, rather than after the matching row?
[05:38] <StevenK> wgrant: To handle multiple comments on one row
[05:38] <StevenK> So they're shown in order
[05:38] <wgrant> Would it make more sense to have a comment container row that then just has a sequence of comment divs for that line within it?
[05:39] <StevenK> Hmmm, do I really want to rewrite this again? :-)
[05:39] <wgrant> Won't the IDs conflict if there are multiple comments on a single line?
[05:39] <StevenK> No, we only set ids for draft comments now
[05:39] <wgrant> Ah
[05:40] <StevenK> Because they are only rows we are going to want to find again
[05:40] <StevenK> Published comments are displayed, but are static
[05:44]  * StevenK sighs
[05:45] <StevenK> if (draft [05:49] <StevenK> wgrant: r=me
[05:54] <wgrant> Thanks
[11:26] <RoelV> is there a way to upload files quickly to launchpad bug reports without using http? ftp maybe?
[11:27] <cjwatson> HTTP is a better file transfer protocol than FTP anyway ...
[11:27] <RoelV> yes but launchpad easily fails on it
[11:27] <RoelV> very easily sometimes
[11:27] <RoelV> and there is no recovery eother
[11:27] <cjwatson> You'd probably do better to quote an OOPS ID or something
[11:28] <cjwatson> It's possible to attach files using the API; it's still over HTTPS, but a somewhat different path from the web UI
[11:28] <RoelV> cjwatson, how does it work exactly? command line driven?
[11:29] <cjwatson> https://help.launchpad.net/API/launchpadlib
[11:29] <cjwatson> However, like I say, if you're hitting an OOPS you should quote it before wasting time on different methods
[12:17] <RoelV> cjwatson, ok thanks. Next OOPS I get I'll try and come back
[15:16] <cjwatson> Ursinha: How's bug 1201485 going?  Just wanted to make sure that we'd have it in time for use before release
[15:16] <_mup_> Bug #1201485: Need to import translations for the unity daily builds <langpack-o-matic:Triaged> <Launchpad itself:In Progress by ursinha> <Ubuntu Translations:Triaged> <https://launchpad.net/bugs/1201485>
[15:31] <Ursinha> cjwatson, I'm writing the final tests, should put it for review today
[15:31] <cjwatson> Brilliant :-)
[15:31] <Ursinha> :)
[15:32] <cjwatson> seb128 will be your friend