Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display Plugin commit hashes in the About Modal #4423

Merged
merged 2 commits into from
Aug 17, 2018

Conversation

AparnaKarve
Copy link
Contributor

@AparnaKarve AparnaKarve commented Aug 7, 2018

@AparnaKarve
Copy link
Contributor Author

@miq-bot add_label ux/review

@AparnaKarve
Copy link
Contributor Author

@epwinchell Can you check the css part for the scrollbar?
Thanks.

@AparnaKarve
Copy link
Contributor Author

/cc @Fryguy @priley86 @AllenBW

@miq-bot
Copy link
Member

miq-bot commented Aug 7, 2018

Checked commits AparnaKarve/manageiq-ui-classic@68d530f~...646e0fd with ruby 2.3.3, rubocop 0.52.1, haml-lint 0.20.0, and yamllint 1.10.0
2 files checked, 1 offense detected

**

  • 💣 💥 🔥 🚒 - Linter/Haml - Linter::Haml STDERR:
warning: parser/current is loading parser/ruby23, which recognizes
warning: 2.3.6-compliant syntax, but you are running 2.3.3.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.

@epwinchell
Copy link
Contributor

epwinchell commented Aug 7, 2018

@epwinchell Can you check the css part for the scrollbar?

@terezanovotna Any issues with presenting hashes via a scrollbar in the modal?

@AparnaKarve
Copy link
Contributor Author

@epwinchell @terezanovotna Just to give you an idea, without the scrollbar, it would look like this -

screen shot 2018-08-07 at 11 59 06 am

Copy link
Member

@AllenBW AllenBW left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is neat 😻

@terezanovotna
Copy link

Hi @AparnaKarve
In this case the scrollbar is not going to be very usable as you can scroll only on two lines.

I agree it makes sense to hide the Pluggins and show them on click. How about using this Expand-Collapse pattern?. (search for Expand-Collapse Section > Launch demo modal) "Advanced Options" would be replaced with "Plugins".
And the rest (such as blue background) is exactly as you had it.

screen shot 2018-08-08 at 09 48 24
screen shot 2018-08-08 at 09 48 31

def vmdb_plugins_sha
Vmdb::Plugins.versions
end

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both methods shrunk into one:

def vmdb_plugins
  Vmdb::Plugin.versions.collect do |engine, sha|
    "#{engine.gsub(/ManageIQ::|::Engine/, '')} #{sha}"
  end
end

- vmdb_plugins_sha.each do |engine, sha|
%div
= "#{plugin_name(engine)} #{sha}"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... and then in view:

- vmdb_plugins.each do |plugin|
  %div
    = plugin

@mzazrivec
Copy link
Contributor

I'm also wondering, what the information value in a string like Providers::Amazon master@deadbeef is. Could we perhaps decorate those models with pretty looking strings like Amazon Provider Plugin for example?

@martinpovolny
Copy link
Member

@mzazrivec : well that's what the RFE asked for. The commit hashes will come in handy when dealing with issues in the production.

@mzazrivec
Copy link
Contributor

The commit hashes will come in handy when dealing with issues in the production.

I'm not questioning the commit hashes, but the Providers::Amazon part.

@AparnaKarve
Copy link
Contributor Author

How about using this Expand-Collapse pattern?. (search for Expand-Collapse Section > Launch demo modal) "Advanced Options" would be replaced with "Plugins".

@terezanovotna The Expand-Collapse styling does not quite address the problem, since it looks like we would still need the scrollbar.

screen shot 2018-08-09 at 2 53 22 pm

screen shot 2018-08-09 at 2 53 29 pm

The main challenge here is we are trying to fit a really long list of items inside a modal and not a form.

@AparnaKarve
Copy link
Contributor Author

@terezanovotna @epwinchell So we have 2 options -

  • Use the expand/collapse stying with a scrollbar
    (Note that even with a scrollbar, the Modal height is expected to expand/contract a little bit with the expand/collapse action)

or

  • Do not use expand/collapse, just go with the scrollbar
    (I prefer this option)

@terezanovotna
Copy link

@AparnaKarve still not a big fan of the scrollbar - it scrolls over two lines and therefore is not usable.

I like the look of the collapse/expand! I think it's ok that the modal gets bigger when expanded. If that becomes a super long list, the user has to scroll down, but that's a normal behavior. I vote for this option one.

@AparnaKarve
Copy link
Contributor Author

@terezanovotna

it scrolls over two lines and therefore is not usable.

Please clarify what you mean by it's not usable, because I can scroll up and down the list with no issues.


I like the look of the collapse/expand! I think it's ok that the modal gets bigger when expanded. If that becomes a super long list, the user has to scroll down, but that's a normal behavior. I vote for this option one.

If this were a form, I would have completely agreed with you -- but in the context of the Modal, this just does not apply... and especially the About modal (the modal that represents the CloudForms product)

Current issues with expand/collapse -

  • When the expand action in the Modal expands the height that much, it's a bit startling at first. Also it looks just ridiculous (precisely why I took the trouble of researching the scrollbar approach)
  • To view the lower-most items in the list you have to scroll the entire browser window - not a good UX

A picture is worth a thousand words and a video is worth a thousand pictures, so here's a video -
https://drive.google.com/open?id=1tUNrdXRrSKf6hjED6l8DsterAvsU3iig

@Fryguy
Copy link
Member

Fryguy commented Aug 10, 2018

@terezanovotna @AparnaKarve I think you're both right and wonder if a compromise approach is better

I agree with @terezanovotna that the twisty is nicer. One thing I love about the twisty is that in the future if we need to show other information (like, say, a long list of licenses or something), we can just put that in a second twisty, so it lets us conserve the vertical real estate for other details. However, as you can see, we already have a gazillion plugins so it blows out the vertical size anyway once you twist it open. So, on that side, I agree with @AparnaKarve that a scrollbar allows you to constrain the vertical size, but 2 rows is just too few.

So, how about use the twisty to expand/collapse, but inside the expanded section have a scrolling section that's, say, 10 or 15 items high?

@Fryguy
Copy link
Member

Fryguy commented Aug 10, 2018

I'm also wondering, what the information value in a string like Providers::Amazon master@deadbeef is. Could we perhaps decorate those models with pretty looking strings like Amazon Provider Plugin for example?

The original code showed

ManageIQ::Providers::Amazon::Engine master@deadbeef

but a) the ::Engine part is useless b) in downstream CloudForms, the ManageIQ:: prefix is inaccurate and c) it was too wide anyway. So, I asked @AparnaKarve to just remove those for now, hence you are left with Providers::Amazon

I like the idea of having a pretty string, but where would that live? A .description or .title method on the Engine class? Perhaps in the dictionary or i18n? Even so, should that maybe be a separate PR?

@Fryguy
Copy link
Member

Fryguy commented Aug 10, 2018

One minor thing...I don't really like how the version is right up against the plugin name. It's hard to visually separate the two things...perhaps an inline table might work better (doesn't need a header, I just put one for this example below)

Plugin Version
Api master@fa6ab657
AutomationEngine master@53f77ff3
Content master@7a0d04d0

@AparnaKarve
Copy link
Contributor Author

I like the idea of having a pretty string, but where would that live? A .description or .title method on the Engine class? Perhaps in the dictionary or i18n? Even so, should that maybe be a separate PR?

@Fryguy Agreed - just to keep things simple here, I think we should handle pretty strings separately.

For now, I am just going to continue iterating on some of your suggestions above.
Thanks for your review -- really appreciated!!

@terezanovotna
Copy link

@Fryguy Well done on compromise! If we apply scroll over 10-15 lines, I am good with that solution!

@AparnaKarve Could we apply a scroll that looks more PF? Here is an example I found, different context, but shows the look of a scroll bar.

@AparnaKarve
Copy link
Contributor Author

@terezanovotna Based on @Fryguy 's suggestions above, the plugin info is now being displayed in a table. I think the modal is looking much more presentable with the table.
Note that I could not accommodate 10-15 rows because of not enough vertical real estate space, hence I am scrolling over 6 items now.

Video: https://drive.google.com/open?id=1-hkc3RhFUsdSJ2CE7EFRKa3ZBBfRnQpf

Let me know what you think.
Thanks.

@terezanovotna
Copy link

terezanovotna commented Aug 15, 2018

From the usability standpoint, LGTM!

From the visual perspective, we are introducing a new look (the visual appearance of this table is not PF pattern). Can we at least hide the white border of the table? and still have the scrollbar on the side? Right now, it's not pretty. But it's your call if we want pretty UI or not.

PatternFly table view

PatternFly goal is to achieve a consistent look and feel across Red Hat product portfolio, so we can have user friendly products. We all can contribute to this design system library and then we apply these patterns in our products. My aim is to find a balance between technical feasibility and usability, so we can deliver user friendly product to our end audience. PF are basically design rules we apply to the product, and I only provide suggestions.

@terezanovotna
Copy link

@miq-bot remove_label ux/review
@miq-bot add_label ux/approved

@martinpovolny
Copy link
Member

With all respect I don't like where this is going.

I am not an UX expert. Also I don't care much as this feature is really well hidden in the product and only people looking for the version will see it and will find what they need there.

But I'd like not to erode the process here. We have developers here and we have designers. There's a process that includes the UX review and has some rules. Mergers formally signed a paper requiring them to respect that process.

My feeling from this discussion is that @terezanovotna is backing off and ux/approving something that she really does not like (and I can see why) under a pressure and out of fear that there might be unpleasant feelings and a conflict.

I would like to get this back to the factual level. So I have only two questions here and those are for @terezanovotna :

  1. Is the design that you see in the video, the one with the table and cell borders, in line with PF design?
  2. Or is it something that we already have in the product in other places so that we lower our demands?

If the answer is "Yes" to any of the 2, then I am ok with this. If the answer is "No" to both of them, then this should not be ux/approved.

@terezanovotna
Copy link

  1. no
  2. idk - It may or may not be somewhere, but I am not familiar with it.

@Fryguy
Copy link
Member

Fryguy commented Aug 16, 2018

@martinpovolny So you don't think developers should question UX when they think something is wrong...particularly on something that is "new"? Put another way, we discussed, compromised, and gave the final rubber stamp to UX. I'm not sure I understand your objection. We can take off-PR if you want 😄

@martinpovolny
Copy link
Member

martinpovolny commented Aug 17, 2018

@martinpovolny So you don't think developers should question UX when they think something is wrong.

No.

I think that the UX people should not back off in situations when they are pretty sure that what they are saying is correct just to avoid a potential conflict.

And not only is that not good for the project, but it also does not match the UI/UX review rules that we signed.

I am basically asking @terezanovotna to carry on doing what she is doing and what worked in other PRs.

I'll accept your suggestion: If you want to dig deeper into this, we should talk f2f.

@AparnaKarve
Copy link
Contributor Author

My feeling from this discussion is that @terezanovotna is backing off and ux/approving something that she really does not like (and I can see why) under a pressure and out of fear that there might be unpleasant feelings and a conflict.

On the contrary, I think @terezanovotna has given her most candid opinion -- I like how she has handled the situation.
I can completely relate to the quandary that she is in. PatternFly does not have an existing style for what is being implemented in the modal, so it is indeed hard to "ux-review" this -- which brings me to my next point ...
Like @Fryguy said, this is "new". It is fairly common (and normal) to stumble upon new needs or new requirements in the PatternFly library all the time. In fact, that is how we keep the library growing - think of it like a new interesting use case for the PF library.

Also bear in mind that the nice, clean PF tables that we all love to look at, have a fresh white background and plenty of real estate space.
Whereas, here in this modal situation, we are disadvantaged in terms of
(a) Space
(b) Bright blue patterned background

I'm no designer either, so the way I'm designing this is by taking input from people while taking into account the Space and Color constraints.

I have tried various permutations and combinations that I could possibly think of (border, no border etc) and I sincerely feel that the look-and-feel that we have right now in the video is by far the best.

Can we at least hide the white border of the table?

The border, IMO, adds character to the table and is also more eye-friendly especially during scrolling.

Ok, enough said...
For me this is the conclusion of the PR -- I see no ROI in any further discussion on this.
I can possibly apply a few more tweaks if anyone wants minor changes or even close the PR.

I really like this feature considering how much back-and-forth we have done in the past with QE when v2v was in it's prime testing phase, and I wish we had this sooner.
Thanks @Fryguy for the backend work on this!
(We can always do Vmdb::Plugins.versions from rails console if this does not work out ;) )

@Rohoover
Copy link

I like the implementation you guys have done on the modal. The additional chevron that hides the plugins is a nice touch for users not interested in the information. As to table or not to table, we are arguing over a visual preference that has no standard currently dictated by PF. PF has tables both with lines or no lines so that is not a good indicator on which is more "correct".

Since the modal has it's own distinct visual identity, I don't think the standard table would be appropriate here. For historical knowledge, when I designed the About Modal 1.5 years ago we had a conversation about how we handle products that have very large "about" sections but there hasn't been any movement there.

We can also check-in with other products to see how this was handled if anyone is interested. It would take a few days to compile that info.

@mzazrivec
Copy link
Contributor

The border, IMO, adds character to the table and is also more eye-friendly especially during scrolling.

I find the border, the vertical & horizontal table lines irritating. I understand Jason's table suggestion more like: the plugin name & plugin version should be nicely aligned to make the whole dialog more readable. Not that it necessarily has to be an actual table with lines and borders.

Above, you said yourself that in the modal dialog we're limited by space constraints, so I'd rather for us not to add any more visual noise than it's necessary.

Besides, in the modal part that renders basic application info (version & stuff) we don't use any borders and lines either. Lines & borders in the plugin part would just add visual inconsistency (IMO).

@epwinchell
Copy link
Contributor

epwinchell commented Aug 17, 2018

Not that it necessarily has to be an actual table with lines and borders.

I think if the table is replaced with the same unstyled list that @AparnaKarve showed in the original screenshot, but with a couple pixels of padding between engine and sha, we'll be all set - clean & simple.

@dclarizio
Copy link

Merging, I think the best suggestions have been implemented and the current version is quite usable. @epwinchell can follow up with style tweaks.

@dclarizio dclarizio merged commit 62012b5 into ManageIQ:master Aug 17, 2018
@dclarizio dclarizio added this to the Sprint 93 Ending Aug 27, 2018 milestone Aug 17, 2018
@AparnaKarve AparnaKarve deleted the plugin_shas_in_about_modal branch August 17, 2018 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants