Closed
Bug 576544
Opened 16 years ago
Closed 15 years ago
Provide UI for user/unstarred filters in tbpl and make them non-destructive
Categories
(Tree Management Graveyard :: TBPL, enhancement)
Tree Management Graveyard
TBPL
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: dholbert, Assigned: mounir)
References
Details
Attachments
(3 files, 2 obsolete files)
|
4.27 KB,
patch
|
Details | Diff | Splinter Review | |
|
7.60 KB,
patch
|
Swatinem
:
review-
|
Details | Diff | Splinter Review |
|
9.79 KB,
patch
|
Swatinem
:
review+
|
Details | Diff | Splinter Review |
Often, a developer who's watching TBPL actually only wants to follow (or look up) a single push's 'row'. This is particularly the case on TryServer, where consecutive pushes have absolutely nothing to do with one another & just get in the way.
It would be *awesome* if tbpl offered a view to show only one 'row' at a time -- e.g. http://tests.themasta.com/tinderboxpushlog/?tree=MozillaTry&rev=f20253b116ff would just show the push that includes that changeset.
This could hopefully speed up load time at least a little bit, and it would de-clutter the interface a lot, for the use cases where it'd be appropriate.
| Reporter | ||
Comment 1•15 years ago
|
||
Note that if this bug were fixed, it would help tremendously for describing filing future TBPL bugs.
That is to say: If I notice an issue on TBPL for a particular pushlog-line and want to file a bug on it, it's difficult to give steps to reproduce. ("find the pushlog line for cset XXX on day MM/DD") However, if I could provide a link directly to that tbpl pushlog-line, it would be much easier for others to test & debug the issue.
Comment 2•15 years ago
|
||
This is not easy to fix given our current way of retrieving the data (by "not easy" I mean "impossible"!). We will have support for a real server-based solution in the future, which would make this easy to fix.
Comment 3•15 years ago
|
||
I'm not sure how it'd be impossible. At the very least you could do this:
Load and display all the data as normal (probably for a longer timerange than normal).
Put an attribute on the <li> for each push, say changest="<cset>"
Add a stylesheet that says:
li:not([changeset="<wantedcset>"]) {
display: none;
}
Hacky and inefficient yes, but it'd do the job.
Comment 4•15 years ago
|
||
Currently we can't load any tindebrox json except for the cached one reliably more than 50% of the time. To demonstrate, try clicking the green "bottom" arrow on m-c's tbpl (or better yet, on try).
Updated•15 years ago
|
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
Comment 6•15 years ago
|
||
Bug 598556 is sort of the back-end support for this. We need to expose this somehow in the UI.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Comment 7•15 years ago
|
||
Also, with bug 566870 in place, I believe non-destructive filtering (as in keeping all the data in the dom, just hidden, similar to what comment 3 said) is a better approach than removing the pushes before they reach Data.js.
| Assignee | ||
Comment 8•15 years ago
|
||
I agree that CSS filtering might be nicer even more considering the approach in bug 566870 doesn't work anymore (it has been broken a few commits after).
Comment 9•15 years ago
|
||
We already have "push-$changeset" as id for the pushes, adding the author as data attribute is trivial. I would also prefer to just jQuery .hide() the nodes instead of generating css rules on the fly. Should be really trivial, I just have no good idea for a nice UI.
Comment 10•15 years ago
|
||
(In reply to comment #8)
> I agree that CSS filtering might be nicer even more considering the approach in
> bug 566870 doesn't work anymore (it has been broken a few commits after).
My bad, fixed by http://hg.mozilla.org/users/mstange_themasta.com/tinderboxpushlog/rev/58f485db128d
(In reply to comment #9)
> have no good idea for a nice UI.
How about a search field (labeled "Filter") between the Legend/Tree Info/Etc. block and the N Jobs are failing bock? Or even just a regular input field (with the button labeled "Filter"), since I assume you'd have to do a submit, rather than it live-filtering the results on paste/typing. You'd have to arrange the field and the loading indicator to share that space, but that should be possible.
| Assignee | ||
Comment 12•15 years ago
|
||
(In reply to comment #11)
> (In reply to comment #9)
> > have no good idea for a nice UI.
>
> How about a search field (labeled "Filter") between the Legend/Tree Info/Etc.
> block and the N Jobs are failing bock? Or even just a regular input field
> (with the button labeled "Filter"), since I assume you'd have to do a submit,
> rather than it live-filtering the results on paste/typing. You'd have to
> arrange the field and the loading indicator to share that space, but that
> should be possible.
Why not a drop down menu like "Tree Info" and "Legend" named "Filters" which would have two input fields: one for revision and one for pusher email. We could update the list on "onchange" or "submit" events for example.
This would keep consistency with the current UI and let us add new filtering parameters.
Comment 13•15 years ago
|
||
(In reply to comment #12)
> (In reply to comment #11)
> > How about a search field (labeled "Filter") between the Legend/Tree Info/Etc.
> > block and the N Jobs are failing bock? Or even just a regular input field
> > (with the button labeled "Filter"), since I assume you'd have to do a submit,
> > rather than it live-filtering the results on paste/typing. You'd have to
> > arrange the field and the loading indicator to share that space, but that
> > should be possible.
>
> Why not a drop down menu like "Tree Info" and "Legend" named "Filters" which
> would have two input fields: one for revision and one for pusher email. We
> could update the list on "onchange" or "submit" events for example.
>
> This would keep consistency with the current UI and let us add new filtering
> parameters.
That seems like the way forward. We don’t want to reload the the whole page anymore, thats what I mean by non-destructive.
| Assignee | ||
Comment 14•15 years ago
|
||
It would be nice ta have an UI for bug 619280 in the meantime.
Depends on: 619280
Summary: Provide UI for rev/user filters in tbpl and make them non-destructive → Provide UI for rev/user/unstarred filters in tbpl and make them non-destructive
| Assignee | ||
Comment 15•15 years ago
|
||
That's one step in the direction of fixing this bug: add the UI to filter unstarred builds. I will look at how to do that for revision and commiter filtering.
Assignee: nobody → mounir.lamouri
Attachment #504153 -
Flags: review?(arpad.borsos)
Comment 16•15 years ago
|
||
Comment on attachment 504153 [details] [diff] [review]
Part 1 - UI to filter unstarred failures
It’s fine as is, but I would prefer jQuery over dom methods.
Also we would need an accessor for data._pushes as to not access a private member.
As a side note: is "for each" spidermonkey specific?
Attachment #504153 -
Flags: review?(arpad.borsos) → review+
| Assignee | ||
Comment 17•15 years ago
|
||
This is adding the getPushes() in Data object and don't use for each (which is indeed not compatible with all browsers).
I'm still not using jQuery given that I don't know the syntax and I don't think using DOM API is harmful...
Attachment #504153 -
Attachment is obsolete: true
| Assignee | ||
Comment 18•15 years ago
|
||
| Assignee | ||
Comment 19•15 years ago
|
||
Attachment #504160 -
Flags: review?(arpad.borsos)
| Assignee | ||
Comment 20•15 years ago
|
||
BTW, this patch removes the filtering from Data because this wasn't really useful.
| Assignee | ||
Comment 21•15 years ago
|
||
Like part 2, the previous way to filter by revision (from Controller) is removed given that it was not preventing data load.
I think an interesting follow up would be to not show push when filtered.
Attachment #504167 -
Flags: review?(arpad.borsos)
| Assignee | ||
Updated•15 years ago
|
Status: REOPENED → ASSIGNED
Comment 22•15 years ago
|
||
Comment on attachment 504155 [details] [diff] [review]
Part 1 - UI to filter unstarred failures
>+ <div class="dropdown"><h2>Filters</h2>
>+ <ul id="filters">
>+ <li><label>Only unstarred<input type='checkbox' id='onlyUnstarred'></label></li>
>+ </ul></div>
Just a small style nit, sorry for overlooking it at first: keep the quoting consistent, as in double quotes.
>+ var pushes = self._controller.valuesFromObject(self._data.getPushes());
>+ for (var i=0; i<pushes.length; ++i) {
>+ self.handleUpdatedPush(pushes[i]);
>+ }
Another style nit: spaces around = and <
Comment 23•15 years ago
|
||
Comment on attachment 504160 [details] [diff] [review]
Part 2 - Field to filter by pusher email address
> _buildHTMLForPushResults: function UserInterface__buildHTMLForPushResults(push) {
> var self = this;
> return Controller.keysFromObject(Config.OSNames).map(function buildHTMLForPushResultsOnOS(os) {
>+ if (self._shouldPushBeFiltered(push))
>+ return '';
This function only generates the html for the push "results", meaning the right part where the jobs are shown, it does not touch the left part, the patch view at all.
It means you would still see all the pushes, but the results only for the filtered one.
Attachment #504160 -
Flags: review?(arpad.borsos) → review-
Comment 24•15 years ago
|
||
Comment on attachment 504167 [details] [diff] [review]
Part 3 - Field to filter by revision id
> _getInitialPushRangeParams: function Controller__getInitialPushRangeParams(params) {
>- if ("rev" in params)
>- return {
>- range: { rev: params.rev },
>- trackTip: false,
>- };
>-
> if ("fromchange" in params && "tochange" in params)
> return {
> range: { fromchange: params.fromchange, tochange: params.tochange },
> trackTip: false,
> };
This actually removes a very useful feature: linking to a single push and making sure that pushlog loads that single push no matter when it was. As I think about it, I’m not sure a UI for this particular filter would be very useful?
Also I forgot to mention the style nits identified in patch 1 are also there for patches 2 and 3.
Attachment #504167 -
Flags: review?(arpad.borsos) → review-
| Assignee | ||
Comment 25•15 years ago
|
||
This one should be better.
Attachment #504160 -
Attachment is obsolete: true
Attachment #504186 -
Flags: review?(arpad.borsos)
| Assignee | ||
Comment 26•15 years ago
|
||
(In reply to comment #24)
> Comment on attachment 504167 [details] [diff] [review]
> Part 3 - Field to filter by revision id
>
> > _getInitialPushRangeParams: function Controller__getInitialPushRangeParams(params) {
> >- if ("rev" in params)
> >- return {
> >- range: { rev: params.rev },
> >- trackTip: false,
> >- };
> >-
> > if ("fromchange" in params && "tochange" in params)
> > return {
> > range: { fromchange: params.fromchange, tochange: params.tochange },
> > trackTip: false,
> > };
>
> This actually removes a very useful feature: linking to a single push and
> making sure that pushlog loads that single push no matter when it was. As I
> think about it, I’m not sure a UI for this particular filter would be very
> useful?
Interesting. I didn't know this feature (which doesn't seem to be in tbpl.mozilla.org yet). Maybe we could have no UI for rev or something destructive (by reloading the page)?
Updated•15 years ago
|
Attachment #504186 -
Flags: review?(arpad.borsos) → review+
Comment 27•15 years ago
|
||
Well the "UI" for rev is that the date of a push is a link to the rev=… url.
And yes, the live version was reset to an older version because the newer features actually make things worse. It loads 10 pushes from pushlog and tries to load appropiate tinderbox data for it, which can be A LOT when the 10 pushes are spaced farther apart.
| Assignee | ||
Comment 28•15 years ago
|
||
| Assignee | ||
Comment 29•15 years ago
|
||
Maybe we could have a specific UI for rev, fromchange/tochange and startdate/enddate? These three things seem to behave the same way, do they?
Comment 30•15 years ago
|
||
(In reply to comment #29)
> Maybe we could have a specific UI for rev, fromchange/tochange and
> startdate/enddate? These three things seem to behave the same way, do they?
They behave the same in the sense that they directly map to pushlog calls. Only after pushlog is loaded, we load tinderbox data based on the timestamps of the pushes.
The reason I think a UI for these is not useful is because these options are only relevant for the initial load. So they are not "filters" in that sense, they can’t be made non-destructive.
| Assignee | ||
Comment 32•15 years ago
|
||
Marking this resolved. We can open a new bug if we want a UI for rev/range/date filtering.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago → 15 years ago
Resolution: --- → FIXED
| Assignee | ||
Updated•15 years ago
|
Summary: Provide UI for rev/user/unstarred filters in tbpl and make them non-destructive → Provide UI for user/unstarred filters in tbpl and make them non-destructive
Updated•11 years ago
|
Product: Webtools → Tree Management
Updated•11 years ago
|
Product: Tree Management → Tree Management Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•