With the drupal.org upgrade tagged issues (http://drupal.org/project/issues-term/346) list growing big, and us intending to grow it even bigger fast (for example to be able to hand out smaller tasks), I'd like to request and volunteer to theme the project issue links (which are in the form #353425: Allow other sites to use drupal.org user identities for login (in D7 infrastructure, without shared secrets) and currently expand to #353425: Allow other sites to use drupal.org user identities for login (in D7 infrastructure, without shared secrets)) to also include the name of the assigned developer and the status of the issue in the expansion.

The reason we'd need this / it would be highly useful to us, because we could create a "master plan" page, which would be able to list these issues in a hierarchic, prioritized, annotated fashion on a page (a node), while always being able to see the up to date status and responsible people.

I think it would have usefulness to users, and would also help "popularize" this flexible feature. Dww notes at http://drupal.org/node/304808 that many people just don't use this feature, because they did not realize it exists. If it would expand to a more useful/rich set of information, people would easily realize that it was not typed in as-is.

Comments

gábor hojtsy’s picture

A possible way to extend this expansion could be:

#353425: Set up OpenID server exposing drupal.org users as OpenIDs Assigned to: olav patch (code needs review)

The data I just made up to demonstrate. The actual markup I used is not what I suggest. The CSS would go to the drupal.org theme of course and we'd only need classes. We would reuse standard project status colors, which are already defined in the CSS.

Let me know if I can go ahead and code a patch for the theme. I'd like to get this deployed pretty soon, so we can use it right away for project planning and high level overviews for people on the drupal.org upgrade/redesign. Otherwise many of us find it hard to have an overview of the whole project, stuff to do, etc. Currently I also discourage people to tag with the "drupal.org redesign" tag, since the tag is the only way we collect these issues, and we have no way to highlight more important priorities, etc.

gábor hojtsy’s picture

Quoting Dries via chat: "sounds like a good idea".

aclight’s picture

I like the idea behind this, but I'm worried that it won't work as you think it will.

Since nodes on d.o use the page cache, and the page cache is cleared only every 24 hours, I don't think that changes to the status of an issue would necessairly show up in other nodes that referred to that particular issue using the project issue link filter. Maybe we've somehow fixed this in project* or elsewhere and I don't recall, but I was one of the reviewers for the patch and I do remember us deciding at the time that having data that was stale up to 24 hours was an acceptable problem given the potential utility of the link filter.

But that aside, the proposed changes make references to issues quite long. I wonder if it might look ok to change the background color of the link to yellow, green, red, etc. instead of having the status spelled out next to it. We're all probably familiar enough with the colors for that to be enough. In addition, if there was any question you can always mouse over the link and the status will be spelled out. If we did this then we'd only have the additional width of the assigned to box, which isn't so wide.

I'm just not sure if having a red or green background on the blue links would make the links too hard to read. If that was a problem maybe we could just use a colored border around the link, and not fill the background with a different color. Or a dashed underline or something like that.

killes@www.drop.org’s picture

I don't know for whose ok you are waiting here? I think it's a good idea.

damien tournoud’s picture

Since nodes on d.o use the page cache, and the page cache is cleared only every 24 hours, I don't think that changes to the status of an issue would necessairly show up in other nodes that referred to that particular issue using the project issue link filter. Maybe we've somehow fixed this in project* or elsewhere and I don't recall, but I was one of the reviewers for the patch and I do remember us deciding at the time that having data that was stale up to 24 hours was an acceptable problem given the potential utility of the link filter.

The page cache might not be a real issue, as most of us are logged anyway. Would the filter cache (not the page cache) could be an issue?

killes@www.drop.org’s picture

Yeah, I think Adam confused the page cache (which is cleared every few minutes) with the filter cache.

gábor hojtsy’s picture

@aclight: issue list tables like http://drupal.org/project/issues-term/346 are using colored backgrounds with these links, and I think the colors were picked to work well with the link color. I am fine with the links having backgrounds. Here is a modified version then:

#353425: Set up OpenID server exposing drupal.org users as OpenIDs Assigned to: olav

@Damien/killes: the filter cache would be somewhat of an issue, but we will keep editing this layout, add notes, annotation, reorder stuff, etc anyway. It is already a problem for the status updates, although it only handles closed and non-closed differences as far as styling goes, and only displays the status in the hover title. We could also add a new story-like node type, and add a very simple cronjob to clear the filter cache for them more often, but I think adding a note on top of such pages, that the status info is updated each day, or when the node is edited should be fine.

My point of view is that a lack of overview for this redesign/upgrade is more of a problem then having an overview which is sometimes a bit stale.

damien tournoud’s picture

@aclight: issue list tables like http://drupal.org/project/issues-term/346 are using colored backgrounds with these links, and I think the colors were picked to work well with the link color. I am fine with the links having backgrounds.

Could we tweak the colors a little bit more so that critical issues stand out a little bit more?

My point of view is that a lack of overview for this redesign/upgrade is more of a problem then having an overview which is sometimes a bit stale.

I agree 100%. Go for it :)

gábor hojtsy’s picture

@Damien: the idea is that the ordering and hierarchy of the issues in regular HTML lists on the "masterplan" page(s) will define relative priority as judged according to our goals. Eg. implementing a social network might be a low priority issue in the redesign, but there might be high priority issues inside doing the social network, so we are not working only with one "priority" definition. This will be easily reflected in the visual layout of the nested HTML lists on the "masterplan" page(s). I think this gets us to easily comprehensible plan overviews quickly.

Also, using the usual issue colors help us identify their status the same way across the different listings. If we'd use different coloring, that would quickly get confusing IMHO.

damien tournoud’s picture

@Gabor: I understand the idea of building a prioritized page listing. And now that I think about it, we only color by status, not by priority. Please scratch what I said in the first part of #8.

aclight’s picture

@all: Yes, thanks for pointing out that I meant the filter cache, not the page cache. And Gabor's point that editing the node with the listing of issues will clear the filter cache for that node is well taken. That of course is the driving point behind this issue.

But part of my point was that if we make the theming of links created with the project issue link filter more descriptive (in the sense that we're now making the status of the issue much more obvious and displaying the person the issue is assigned to), we risk that on other nodes/comments that use the pi link filter but which are not updated as regularly, the fact that the filter cache isn't frequently refreshed will be even more obvious.

I'm not sure if the improvement in the display of links created by this filter outweighs the problem of making it more obvious that the status information of these links may be stale. Don't get me wrong, I'd love to have links themed like this, but wonder if the potential increased confusion would be worth it.

For the sprint, we could do as Gabor suggested and create a new node type, and only apply this new theming of project issue links to that node type. That would give us the better display of issues for the sprint, but prevent the obvious display of stale data elsewhere on d.o.

Alternately we could try this out for a few months on all node types and see whether there are a lot of support requests or complaints of stale data, and if not then just continue with it.

I'm not sure if there is an approach to the underlying problem that will allow for the theming of the links to not be stale but not be a huge performance drain on the infrastructure. If there was a way around this problem perhaps the D6 version of this link filter could be modified and then d.o will get that benefit once it's running D6.

gábor hojtsy’s picture

Status: Active » Needs review
StatusFileSize
new3.4 KB

I vote for trying this out for some time and then choose what we do about it. We can always convert the existing "masterplan" nodes to a different type, since those will be of a story-like type anyway. Attaching the patch I cook up for trying out. Any code review problems you might find? If not, I'd go ahead and commit.

gábor hojtsy’s picture

StatusFileSize
new3.47 KB

Actually, since project_issue already does a strike-through styling for some closed issue states, we should organize the classes better. The status referencing class should be outside, so both the link and the assigned username is striked through properly. We still need a status independent wrapper class to be able to do the padding and other generic styling for all the status options in one selector.

This is small and simple so I hope to get in fast :) Then I can move to the actual task of inputing the (partial) masterplan data which we made up over the weekend at Cologne :)

damien tournoud’s picture

The user_load() is a bit overkill:

if (!empty($node->project_issue['assigned']) && ($account = user_load(array('uid' => )))) {

Could be easily replaced by:

$account = db_fetch_object(db_query("SELECT * FROM {users} WHERE uid = %d", $node->project_issue['assigned']))
gábor hojtsy’s picture

StatusFileSize
new3.5 KB

Ok then, the "fetch object" and the "SELECT *" are overkill too :) Let's do a specific select and a db_result() then.

dww’s picture

Title: Drupal.org should theme project issue links with "Assigned" and spelled out "status" information. » Drupal.org should theme project issue links with "Assigned" and use the background color of the current "status"

A) Good idea, I'm all for it.

B) Today is the last day I've got family visiting for a long weekend, so I'm not going to be available to help much. :(

C) No time to test this, but the only problem I see on visual review is this comment isn't exactly accurate anymore:

// If the issue is assigned to a user, try to load that user and display the name here.

So, if you fix that, and you've tested all this and it works, this is RTBC to my eyes.

Thanks!
-Derek

p.s. When I'm back at it tomorrow (or perhaps late tonight), I was about to commit this patch: #359757: Add extra class (priority-x) to issue rows which would enable sites to, for example, use bold on the issue listing rows of critical issues. Since bluebeach already themes all links in bold, this wouldn't really help us much here, but I wanted to mention it so folks are aware.

moshe weitzman’s picture

I also think some stale information is no big deal. If folks do think it is a big deal, we could add an input format which does no caching and form_alter these issues so they are authored in that format. Just a thought ...

damien tournoud’s picture

Ok, let's try this, then.

dries’s picture

Looks great to me! There is a lot of information on one screen (it is quite wide) but it all seems very useful information to have. :-)

gábor hojtsy’s picture

Status: Needs review » Fixed
StatusFileSize
new3.52 KB

With some more testing, committed this attached patch (fixes the node namespace difference issue between 5 and 6 project_issue), so we can finally close #360936: Drupal.org should theme project issue links with "Assigned" and use the background color of the current "status". It looks good in my testing.

catch’s picture

Category: task » bug
Status: Fixed » Active

This has broken status CSS in the issue queue.

.project-issue tr.state-13 {b87ea00d...a79de.css (line 1)
background-color:#FFE7DD;
}

Is overwritten by:

body, .form-text, .form-password, textarea, th, td {b87ea00d...a79de.css (line 1)
background:#FFFFFF none repeat scroll 0 0;
color:#003150;
}

So all rows are white apart from the active column.

gábor hojtsy’s picture

Ok, looks like adding new items there played down their ranking in the CSS importancy tree. Interesting. Trying to come up with good fixes for it.

gábor hojtsy’s picture

Category: bug » task
Status: Active » Fixed
StatusFileSize
new485 bytes

This sets the default background to transparent instead on these tables. There is a similar construct after it which sets it to transparent with !important if the list is inside node bodies. That would override our per-status styles just as well, so a non-!important construct was required here.

I've tested this locally and it worked fine. Drupal.org needs some time to refresh the CSS cache so it might not work right away I update from SVN on drupal.org.

gábor hojtsy’s picture

Verified that it works at http://drupal.org/project/issues-term/346 for example.

aclight’s picture

Category: task » bug
Status: Fixed » Active

Now the zebra striping of the issue metadata tables seems to be broken. Before the row background alternated between gray and white, now all rows have a white background.

pasqualle’s picture

I think it might be related that the releases on the project pages (example: http://drupal.org/project/views) all have white background now, where recommended should have green, supported should have yellow and dev should have red.

gábor hojtsy’s picture

Status: Active » Fixed

Ok, the real culprit was "obviously" not in this patch. It appeared with this patch, because Niel did not rerun CSS aggregation generation (by visiting and resubmitting the theme admin page for example) after he committed #254155: OS theme vs d.org theme. I've rolled *that* back (and also rolled back patch #23 from here), rerun the CSS cache geneartion and now it works fine.

pasqualle’s picture

Status: Fixed » Active

the "won't fix" status is displayed as "Issue status: won't fix" in the tooltip. Tooltip does not work with html markup and special characters. I am not absolutely sure, but as I remember it was correct before this change.

example for a link with wrong tooltip: #262090: redirect by url alias

aclight’s picture

Yep. That's because in the theme function implemented by the project issue module, we have this:

$attributes = array('title' => project_issue_state($node->sid));

whereas the patch in #20 does this:

$attributes = array('title' => t('Issue status: @status', array('@status' => project_issue_state($node->sid))));

The call to check_plain converts the apostrophe into an HTML entity, but because the text of the title attribute of links is not parsed into HTML, the entity code remains. In the research we did when writing this function originally, we couldn't find any evidence that any browsers parse the text of a link title attribute, thus we couldn't think of how including the text without any kind of escaping/filtering could be a problem.

gábor hojtsy’s picture

Status: Active » Fixed
StatusFileSize
new774 bytes

The reason this is a problem is that l() reuses http://api.drupal.org/api/function/drupal_attributes/5 which check_plain()'s the value, so the whole value is double escaped. Committed this fix with a comment on why we don't need the escaping right there.

nancydru’s picture

While I am largely in favor of this - especially for core - it is causing some heartburn for contribs. #367423: Make "assigned to" on issue links opt-in (by appending '@')

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Project: Drupal.org infrastructure » Bluecheese
Component: Drupal.org theme » Miscellaneous