[wp-trac] [WordPress Trac] #11232: UI improvements for 2.9 bulk plugin/theme updater (esp. success/fail msgs)

WordPress Trac wp-trac at lists.automattic.com
Sun Nov 22 23:11:54 UTC 2009


#11232: UI improvements for 2.9 bulk plugin/theme updater (esp. success/fail msgs)
--------------------------+-------------------------------------------------
 Reporter:  jeremyclarke  |       Owner:  ryan      
     Type:  defect (bug)  |      Status:  new       
 Priority:  normal        |   Milestone:  Unassigned
Component:  UI            |     Version:            
 Severity:  normal        |    Keywords:            
--------------------------+-------------------------------------------------
 I just tried the bulk plugin upgrades in WP 2.9 rare. It worked well but
 the experience of seeing so many copies of the upgrade message made me
 think that it could be much more effective visually at communicating the
 results without too much extra work.

 Here's how it looks now:

 [[Image(http://simianuprising.com/wp-content/uploads/2009/11/wp-bulk-
 updater-ui-ticket-0.png)]]

 == Problem ==
 While this is informative it is obviously super-spartan in design while
 also taking up a ton of space on the screen. When it was just one
 plugin/theme at a time I was willing to ignore the simplicity, but with 11
 in a row it gets pretty intolerable that it not only fails to communicate
 the relevance of the messages its outputting, but also forces me to scroll
 a ton to see all the output.

 I felt like I had to read through all 11 sets of messages because the
 success message had no special style. It looked just like all the others,
 so if there was a failure message I had to assume it would also look like
 the rest. Needless to say reading all that is a terrible user experience
 and WP could do a lot better. The output reads like a log of information
 that should be hidden by default, and maybe it should be.

 == Solution ==

 === EASY: Add .updated and .error to {{{<p>}}} tags ===
 The simplest fix would be to add a css class to the success/fail messages
 so that they stick out. The obvious choice and one that would involve no
 new styling is to use the existing {{{.updated}}} and {{{.error}}} classes
 from the {{{/wp-admin/css/global.css}}} file. I tried them on my list and
 it works fine on the {{{<p>}}} tags the messages are wrapped in. The
 .updated ones look yellow, so after seeing one you could scan down the
 page to see that all messages are yellow.

 === Make Success/Fail messages bigger ===
 The final messages should be much bigger than the rest of the text for
 each plugin, and the other messages should probably not have so much
 margin on them. As it is each line is its own {{{<p>}}} and as such has
 1em of margin on top and bottom. If they were instead seperated by {{{<br
 />}}} tags they would be just as readable (they currently have {{{line-
 height:140;}}} anyway) and I can't think of a "semantic" reason why this
 log output should be considered paragraphs that outweighs the need to
 conserve space.

 === Use the actual plugin's name ===
 The success/fail message should state the name of the plugin, as in
 "Contact Form 7 Successfully Upgraded" instead of "Plugin Upgraded
 Successfully".

 When you are reading a list with many plugins it would help greatly to
 differentiate the messages. The current system feels very vague: nowhere
 in the message is the title of each plugin mentioned. If the actual plugin
 name would be complex/resource-intensive to determine then the filename of
 the core plugin file (i.e. {{{contact-form-7.php}}}) should be shown
 instead, most people would be able to figure out which plugin it was based
 on the filename.

 === Link back to Core Upgrade screen at end of list ===
 This may already be planned, but at the end of the list, after the
 "Disabling Maintenance mode." message (which should also be removed, not
 really useful to users) there should be a link back to the {{{/wp-admin
 /update-core.php}}} file. As it is its very unclear what to do after
 upgrading your plugins, and giving the user a direct link to the next step
 just makes sense.

 === Hide log output entirely with JQuery and only show upon request ===

 I think this is the real killer solution. All messages but the final
 success/failure one should go in a div that is hidden by jquery by
 default, but can be shown by clicking a 'more info' link next to the
 success/failure message.

 For most people this would mean a string of messages informing them that
 each of their plugins was successfully upgraded. Easy to look at and look
 through to make sure there was no problems. If there is a problem they can
 find out what it is easily or actual error messages can be displayed by
 default.

 I think this might be how it should always have been. The current system
 feels a bit by-developers, for-developers. Normal people just want to know
 that it was upgraded or if there were problems.

 == Implementation ==

 I looked through the {{{/wp-admin/includes/class-wp-upgrader.php}}} file
 to see how this was accomplished but haven't actually written a patch yet.
 It seems like the messages themeselves are being generated by the
 {{{show_message()}}} function from {{{/wp-admin/includes/misc.php}}}. That
 function doesn't have options for adding classes to the {{{<p>}}} tags it
 produces nor does it allow for other formats. Maybe we could modify that
 function to do more? Add in {{{$before}}}, {{{$after}}}, {{{$css_class}}}
 and {{{$format}}} parameters? I think they would be useful in a lot of
 situations where you're showing messages.

 Otherwise I think it's reasonable to use a seperate display system for
 these upgrader messages that accounts for the importance of
 differentiating between log messages and success/fail messages.

 If someone would be willing to commit a patch if it was done a certain way
 please say so and I'll try to make a patch that satisfies your demands.
 IMHO there's a good chance that ryan or whoever did most of the work on
 the upgrader could hammer out these changes in no time though ;)

 === Screenshots ===

 === .updated and bigger font for success msg ===
 Here's how it looks with just the addition of {{{.updated}}} to the
 success messages along with an increase in the font size of {{{.updated}}}
 and switching to {{{<br />}}} or removing the padding from the rest of the
 output. The font size increase would involve wrapping the whole upgrader
 output in a class or id like {{{#updater-output}}}, which IMHO is a very
 sensible choice that would match the rest of {{{wp-admin}}}. The CSS to
 increase the font size would then be
 {{{
 #updater-output .updated {font-size: 16px;}
 }}}

 [[Image(http://simianuprising.com/wp-content/uploads/2009/11/wp-bulk-
 updater-ui-ticket-1.png)]]


 === hide output with jquery, use plugin names and add button at bottom ===

 This one is uglier but shows what I mean about hiding most of the log
 output and using the actual plugin names. Note how many more messages can
 fit on one screen and consider how useful the hidden messages are to 99%
 of users. Compared to the current design this one can show 8 plugins worth
 of messages instead of 3(!)

 [[Image(http://simianuprising.com/wp-content/uploads/2009/11/wp-bulk-
 updater-ui-ticket-2.png)]]

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/11232>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list