[12:10]  * gmb lunches
[12:32] <bac> hi danilos
[12:32] <danilos> bac, hi
[12:32] <bac> danilos: you'd already left, but i read your comments about me stepping on the shared branch.  i'm unsure how that happened as i just merged and pushed, definitely no --overwrite.
[12:35] <danilos> bac, oh, interesting, something weird is going on then, because both gmb and myself have committed stuff to the branch yesterday morning; no big deal, especially if you are doing the right thing
[12:36] <danilos> bac, (we committed and I couldn't see it in the log after your commits, so I assumed this was what has happened; didn't want to blame you for anything, just wanted to stress that we should not --overwrite stuff :)
[12:36] <bac> danilos: yeah, i agree.
[12:37] <danilos> bac, it's quite likely that I got confused and nothing happened
[12:37] <bac> we need to work together smartly but i assumed bzr was DTRT
[12:37] <bac> ok, i'll carry on then and hope we don't get into trouble
[12:37] <danilos> bac, yeah, perhaps it did, which is why it hasn't complained :)
[12:38] <bac> excellent
[12:47] <danilos> bac, btw, do you know if accordion widget was supposed to generate form data itself and pass it over to the handler, or not?
[12:50] <bac> danilos: i'm not sure.  we hooked it up through the overlay submit callback.
[12:51] <gary_poster> benji, delete functionality works on my branch.  I need to get kids to school then will figure out how I want to get it landed.  I also added code that does not show edit buttons if the subscriber is a team for which you are not an admin.  That probably should be visually improved.
[12:52] <gary_poster> I'll try to land that separately.
[13:05] <danilos> bac, ok, it does work, not sure why it hasn't initially shown the data
[13:27]  * gmb gets ready to mumble
[13:28]  * gary_poster appreciates reminder
[13:28] <gary_poster> bac benji danilos gmb mumble/kanban in 2
[13:28] <danilos> ack
[13:29] <gary_poster> mm, I will have to let someone into the house; I might be a minute late
[14:25] <gary_poster> hey danilos, I'm confused about something and I'm hoping you can help. :-)  In bugsubscriptionfilter.delete, I've changed the code as we discussed.  Now, if there are no more filters, I call delete on the parent structural subscription.  As before, if there *are* more filters, I just call Store.of(self).remove(self) .
[14:26] <gary_poster> The structural subscription delete says
[14:26] <gary_poster> self.bug_filters.remove()
[14:26] <gary_poster> I assumed that this would be equivalent to calling remove(filter) for each filter
[14:26] <gary_poster> However, the test seems to indicate that this is not the case
[14:27] <gary_poster> because Store.of(self.subscription) is None but
[14:27] <gary_poster> Store.of(bug_subscription_filter) is the store
[14:27] <gary_poster> Do I misunderstand the semantics of self.bug_filters.remove() ?
[14:28] <gary_poster> Should that code iterate over the filters and call remove for each one?
[14:28] <gary_poster> I guess I could step though self.bug_filters.remove() :-P
[14:28] <gary_poster> I'll do that next
[14:28] <gary_poster> until you provide illuminaton :-)
[14:31] <gary_poster> ah-ha
[14:32] <gary_poster> .remove() does it in SQL
[14:32] <gary_poster> so the associated Python objects are not updated
[14:32] <gary_poster> that looks suspiciously like the cause
[14:36] <gary_poster> IStore(bug_subscription_filter).find(BugSubscriptionFilter, BugSubscriptionFilter.id==bug_subscription_filter.id).one()
[14:36] <gary_poster> returns None
[14:36] <gary_poster> which seems like the proof I am after.
[14:36] <gary_poster> I'll change the test to do that.
[14:38] <danilos> gary_poster, no, you should be able to delete SS to get all SSs deleted, but you should use the API, not Store.of(..).remove(self)
[14:38] <gary_poster> danilos, this is within the API :-)
[14:38] <gary_poster> unless I misunderstand you?
[14:39] <danilos> gary_poster, the only thing is that removing final BSF doesn't really remove it
[14:39] <gary_poster> it does after my change, danilos
[14:39] <danilos> gary_poster, ah, right, then it should be fine :)
[14:39] <gary_poster> danilos, one sec, will get a pastebin to make sure we are on the same page
[14:41] <gary_poster> danilos, lines 77ff of http://pastebin.ubuntu.com/580589/
[14:44] <gary_poster> benji, I have tests of the serverside changes I made.  I do not have tests of the JS.  Go ahead and land on ~yellow, for you or someone to establish tests for it as a later punchlist item?
[14:44] <benji> gary_poster: sounds good to me
[14:44] <gary_poster> ok benji
[14:46] <gmb> leonardr just described muting as "an anti-subscription." I think we shall use that word henceforth.
[14:46] <gary_poster> heh
[14:48] <danilos> gary_poster, right, looks good
[14:48] <gary_poster> cool, danilos, thank you for looking
[14:49] <danilos> gary_poster, I believe individual filters are referenced with "ON DELETE CASCADE" in SQL, which is why you don't have to manually remove all the BSFImportance, BSFStatus and similar rows
[14:49] <danilos> gary_poster, actually, I am wrong, these are removed with the setter
[14:49] <gary_poster> ok cool
[14:50] <gary_poster> I'll leave as is then
[14:58] <gary_poster> To Whom It May Concern, such as benji: ~yellow's branch is updated now.
[14:59] <gary_poster> bac, benji, I'm an hour early (because I decided to postpone landing on devel till later).  Who has a good high priority punchlist item for me?  I have about 3 hours to work on it left today.
[14:59]  * bac looks
[15:00]  * bac does!
[15:00] <benji> gary_poster: I have "refresh the subscription listing when a subscription is edited", which would be "...when a subscription is deleted" for your case
[15:00] <gary_poster> benji, btw, do you have the initial flickering of the accordion down as a punchlist item?
[15:00] <bac> gary_poster: could you look at the REQUIRED punch down and take the first item -- selectively disable the team selector if the user administers no teams -or- do whatever is smart
[15:01] <benji> gary_poster: nope, I figured bac would have it, but the fix should be easy either way
[15:01] <bac> gary_poster: or go with benji's since it is work you've done anyway
[15:02] <gary_poster> bac I'll look at yours
[15:02] <bac> added initial accordion flicker to my REQ card
[15:02] <bac> gary_poster: do you want to decompose that card and create a new one for the subtask?
[15:03] <gary_poster> bac prolly so.  on call, then will fiddle with stuff and ask you questions as I have them
[15:04] <bac> ok
[15:08] <gary_poster> bac, you have all four cards in Feature Work 3: Coding in progress right now?
[15:08] <gary_poster> sorry, 2
[15:09] <bac> gary_poster: i think three of them are "done" but i'm not sure how to transition them
[15:10] <bac> the work is all a big blob now
[15:10] <gary_poster> bac, I was just wondering about that myself.  I decided moving them to Archive:Done was reasonably apt
[15:10] <gary_poster> (via right click)
[15:10] <bac> skipping review, etc
[15:10] <gary_poster> yeah
[15:10] <bac> ok
[15:11] <bac> done
[15:11] <bac> the board looks more sane now
[15:11] <gary_poster> cool.  I'll add a microcard now, yeah
[15:12] <gary_poster> bac, I don't understand the diff between
[15:12] <gary_poster> * Selectively enable team drop down.
[15:12] <gary_poster> * Handle case for no adminstered teams.
[15:12] <gary_poster> which makes me suspect I don't understand something important
[15:12] <gary_poster> could you explain?
[15:12] <bac> combine them please
[15:12] <gary_poster> oh ok
[15:13] <gary_poster> because if you have no administered teams, the drop down should not be there...and anything else changes, or is that it?
[15:13] <bac> gary_poster: oh, i remember -- at one point i thought i saw an exception from the view when a person had no teams.  i could not reproduce it, though.
[15:14] <bac> that would've been the 'handle case' task
[15:14] <gary_poster> ah ok.  combine for now then
[15:14] <bac> yes.  you may want to double check that nothing weird happens with anon and no-priv users
[15:15] <gary_poster> ack.  do you want me to push to yellow with the change before I start working on it, or is the kanban card sufficient for your workflow?
[15:32] <bac> gary_poster: i just saw you question about pushing and i don't understand it
[15:33] <gary_poster> bac, I just meant pushing the change to TODO.  I didn't think it was necessary so I have not yet done it.  I do have another question you might be able to help me with faster than I can help myself though
[15:33] <bac> gary_poster: nah, overkill
[15:33] <gary_poster> cool
[15:33] <gary_poster> Do you call setup_overlay every time someone clicks an add link, or is the html reused?
[15:34] <gary_poster> I know I can figure that out eventually, but I'm getting a bit lost in twisty paths
[15:37] <gary_poster> bac, does this mean that we do not support internet explorer at all?
[15:37] <gary_poster>     if (Y.UA.ie) {
[15:37] <gary_poster>         return;
[15:37] <gary_poster>     }
[15:37] <gary_poster> line 803 of structural-subscription.js
[15:37] <bac> gary_poster: i think it does.  it is all over our JS
[15:38] <gary_poster> wow
[15:38] <gary_poster> you mean LP, not just this project, right bac?
[15:38] <bac> yes, all over LP javascript
[15:38] <gary_poster> wow
[15:38] <bac> of course, most of LP has <noscript> backup
[15:38] <gary_poster> right
[15:39] <bac> we may get bludgeoned by OEM as their customers are IE6 folks
[15:39] <bac> might be worth making a note
[15:39] <gary_poster> ow!  IE6 is dramatically worse than later ones, AIUI :-/
[15:40] <gary_poster> bac, may I have a quick call so I can flail more quickly as I try to understand what is going on for my task?
[15:40] <bac> sure
[16:01] <gary_poster> bac, I added all tasks to kanban board individually.  I also added the low priority ones with an corresponding marker.  1) May I delete the "Address remaining REQUIRED tasks" card?  2) Did I understand correctly that the Cancel button styling is in progress?
[16:02] <bac> no, it is not in progress
[16:02] <gary_poster> cool, moved it back
[16:02] <bac> 1) yes
[16:02] <gary_poster> cool thanks
[16:26] <gmb> I wonder if we could make the malone.advanced-subscriptions.enabled flag turn off when it encounters an IE user agent.
[16:39] <gary_poster> gmb, do you know how serious the IE problems are?  Do we really need to turn off *all* IE, or just IE 6 and lower?  This kinda shocks and worries me 'cause of OEM people.  I know that YUI supports IE pretty well...
[16:40] <gmb> gary_poster: I don't know how serious the problems are with IE>6. sinzui would be the person to ask, I think.
[16:40] <gary_poster> ok thanks gmb
[16:53] <gary_poster> bac, I'd like to support IE >= 7 for this feature, particularly since we are not offering an alternative.  sinzui and deryck are +1 on that as a goal for the site generally, for later
[17:17] <gary_poster> bac, I'm logged in as no-priv.  no-priv does not get the subscribe link, unless I'm doing something wrong.  Is that intentional, or should I verify that I'm not doing something stupid?
[17:22] <gary_poster> OIC
[17:22] <gary_poster> that's what you said
[17:23] <gary_poster> global actions portlet is not there
[17:32] <gary_poster> benji, I suspect that, when editing, if you change a subscription from yours to a teams (or even if you change the team) things will go awry.  I'm in favor of making it impossible to change the recipient when you are editing.  What do you think?
[17:33] <bac> gary_poster: what are the issues with supporting IE?
[17:34] <benji> gary_poster: sounds reasonable, if slightly unfortunate (say you accidentally subscribed the wrong team to a complex filter and have to rebuild the whole thing), but it makes sense for a possible follow-on enhancement
[17:34] <bac> gary_poster: IIRC the OEM people are on IE6
[17:35] <gary_poster> bac, apparently YUI did not support it well awhile ago.  Noone knows if recent YUI upgrades have been sufficient to make it OK.  Noone cares enough.  Also, stats, from sinzui: "6% is ie...4% being ie8, 1% ie7, the remaining is 6 and 9"
[17:35] <gary_poster> It's darn hard to get excited about < 1% :-/
[17:36] <gary_poster> (IE6)
[17:36] <gary_poster> I think, even with OEM, we would need a declaration from jml/flacoste to pursue IE6.  IE8 is more definsable.
[17:36] <gary_poster> ugh
[17:37] <gary_poster> defensible
[17:38] <gary_poster> benji, could you add that editing recipient thing as a punch list item wherever you are doing such things?
[17:38]  * gary_poster leaving in 2
[17:38] <benji> gary_poster: the task being disabling editing the recipient or the task being enabling editing the recipient?
[17:40] <gary_poster> benji, AFAI am concerned, you can specify either.  the goal is to have it be sane, however it works out.  I'd lean towards disabling myself, but if it is easy enough to make editing work, great.
[17:40]  * gary_poster has to run
[17:40] <gary_poster> back in awhile
[17:40] <benji> gotcha
[17:40] <gary_poster> bac, my job is done
[17:41] <bac> gary_poster: great
[18:19] <danilos> gary_poster, hi
[18:23] <danilos> I guess he's off, ok, email it is then
[18:39] <danilos> anyway, emailed
[18:39] <danilos> cheers all, enjoy the rest of the week
[19:10] <gary_poster> (I'm back, fwiw)
[19:16] <gary_poster> bac, in order to have *something* to see when there is not a global actions portlet, I stuffed it in the involvement portlet for now.  I used that for debugging, and until we have a better solution, I propose that we keep it.  You alright with that? ("var portlet = Y.one('#global-actions') || Y.one('#involvement');")
[19:22] <gary_poster> Done.
[19:22] <gary_poster> And pushed to ~yellow.
[19:23] <gary_poster> benji, should I look at save changes now, per the email from danilo that I forwarded you?
[19:24] <benji> gary_poster: sounds good
[19:24] <gary_poster> k
[19:55] <bac> gary_poster: yeah, that is fine.  i think long term we just need to make the global-actions appear for all logged in users
[19:56] <gary_poster> cool
[19:56] <gary_poster> where long term is over the next few days ;-)
[20:20] <bac> ep
[20:20] <bac> yep
[20:20] <bac> benji, gary_poster: do you see anything wrong with this:
[20:20] <gary_poster> on call with flacoste
[20:20] <bac> var checkboxes = Y.all('input[name="importances"]');
[20:21] <bac> benji: i'm trying to get all of the checkboxes for a group named "importances".  can't figure out why this is broken.
[20:23] <bac> benji: also, you may have a problem with your make_edit_handler in that it uses get_input_by_value.  both 'importances' and 'statuses' have an entry with the value of 'Unknown'
[20:25] <benji> bac: good catch, writing a TODO for myself
[20:26] <benji> still thinking about the other question
[20:26] <bac> benji: you can fix it by making the node more restrictive
[20:28] <benji> bac: Y.all('input[name="importances"]') looks like it should work to me
[20:28] <benji> I'm not sure why it isn't
[20:28] <bac> thanks for looking at it
[20:32] <benji> bac: I just did a down and dirty test of that Y.all call and it worked (returned 7 input elements)
[20:33] <bac> benji: yeah, i'm suspecting i need to 'wait' to see if the items are created yet
[21:06] <bac> odd, the selection works inside the main js module but not in the test.  in the test the importances and statuses are not in the DOM
[21:32] <bac> benji: my selector was correct.  i'd failed to populate LP.cache...
[21:40] <bac> gary_poster, benji: i've got a NodeList from a selector (as above).  how does one iterate over a NodeList?
[21:40] <bac> for (i in list) doesn't work, as the NodeList is an object and the actual list is in the _nodes property
[21:42] <benji> bac: I think it has a .each
[21:42] <bac> benji: yeah, that's for applying a fcn to each item, i think
[21:42] <bac> i want to loop over them and check the status of each thing.
[21:42] <bac> i think i found the answer in timeline.js -- you have to use item(i)
[21:45] <benji> cool. I think you can also construct a list from the NodeList.
[21:46]  * gary_poster didn't know
[21:47] <benji> oh, you can also use the older for construct: for(var i=0; i++; i<l.length)
[21:47] <benji> also, I'm pretty sure NodeLists let you do square bracket lookups so you don't hae to use item(i)
[21:54] <bac> benji, gary_poster: here is what i got to work: http://paste.ubuntu.com/580796/
[21:55] <gary_poster> good to know, though what I will remember is "nodelists are weird"
[21:57] <bac> benji: list.length does  not exist.  you must use list.size(). likewise list[i] must be written as list.item(i)
[21:57] <bac> truly a pita
[22:00] <gary_poster> :-/
[22:17] <bac> gary_poster: finished the select all/none and pushed
[22:17] <gary_poster> awesome, bac!  I had the save nominally done
[22:18] <gary_poster> but it wasn't updating
[22:18] <gary_poster> the display
[22:18] <gary_poster> so changing things for that before I merge
[22:18] <bac> which is that?
[22:18] <gary_poster> this is for benji
[22:18] <gary_poster> his save button wasn't hooked up
[22:18] <gary_poster> for the overlay
[22:19] <bac> oh, ok
[22:19] <bac> gary_poster: thanks for making all of those cards
[22:20] <gary_poster> np bac.  have agreat evening
[22:20] <benji> sounds like good progress gary_poster; wish I had some of that to report
[22:21] <gary_poster> benji, do you know how to use merge from http://developer.yahoo.com/yui/3/api/YUI.html ?
[22:21] <gary_poster> I thought I did
[22:21] <bac> gary_poster: the OPTIONAL card is still in the backlog.  i'll delete it unless you meant to leave it
[22:21] <gary_poster> bac, +1 on deleting, thanks.  I didn't see it
[22:22] <benji> gary_poster: I think like so: new_obj = YUI.merge(obj1, obj2, obj3)
[22:23] <gary_poster> benji, it is off of the object
[22:23] <gary_poster> (and it is not on YUI, experientially in firebug console)
[22:24] <benji> gary_poster: I don't know about that one; what kind of object is it?
[22:24] <gary_poster> the root JS object (kind of like Python).  but it looks like it is just available in the namespace as a function!
[22:25] <gary_poster> yeah
[22:25] <gary_poster> merge({foo:4, bar:5}, {bar:7,bing:8})
[22:25] <gary_poster> == { foo=4, bar=7, bing=8}
[22:26] <gary_poster> cool
[22:26] <gary_poster> well, I'll have to do more later.  time to go make dinner :-)
[22:26] <gary_poster> night all
[22:27] <benji> gary_poster: I'm not aware that such a thing exists.
[22:27] <benji> l8r
[22:31] <benji> gary_poster: I think that merge is coming from mochikit.