atlasmap-attic / atlasmap-ui

An Angular2 module for designing Atlasmap mapping definitions
Apache License 2.0
9 stars 8 forks source link

Constants/Properties should be able to be added directly from Mapping Details pane #123

Open igarashitm opened 7 years ago

igarashitm commented 7 years ago

Maybe having a combo box in Mapping Details > Sources > Source, and if Constants/Properties are selected, it actually would create a new entry if not exists, or like that. I'd leave it to UX experts for the actual design... screenshot from 2017-11-07 13-14-03

Point is that the Constants/Properties are not really coming from Source object, therefore user don't expect it to be in the bottom of the Sources pane on far left.

jpav commented 7 years ago

I believe the properties can actually represent source information such as info from a message header. Also, the user would need a single place to define the properties even if they are used via a dropdown in the details panel. Also, another problem with not representing constants/properties as source objects is that the existence of mappings that don't involve the actual source model would be harder to see without somewhere to draw a line to. Maybe we could just add additional indicators to distinguish the constants/properties from actual source objects, like different heading color/texture, spacing, or borders.

igarashitm commented 7 years ago

To clarify a thing, this ticket never has meant to remove existing Properties/Constants section in the Sources pane at left, but suggesting an addition in the Mapping Details. Therefore, this expects the existing Properties/Constants section to be updated accordingly, as well as drawing a line between source and target.

jpav commented 7 years ago

Okay, maybe I misunderstood. I was addressing the "therefore user don't expect it to be in the bottom of the Sources pane on far left." part of the description. Regarding the auto-creation, that seems like a good idea at least for constants. Not sure if it would make sense for properties, but maybe.

igarashitm commented 6 years ago

@dongniwang any idea from the UX perspective? A dozen or two of fields are enough to hide the Constants and Properties section in the Sources pane at left, so it's not really easy to find. Then when user try to add Constant/Properties kind of thing, they click the Target field first, and look for where can they add a Constant/Properties in the Mapping Details pane.

dongniwang commented 6 years ago

@igarashitm I'll bring it up next Monday when I meet with SJ and Amy. Thanks!

amysueg commented 6 years ago

@igarashitm and @jpav - The UX team talked through this today and @seanforyou23 mocked up what we agreed on as a short-term approach.

Two things: 1) To make sure that the user sees that there are Properties and Constants in addition to actual source fields, place these two sections at the top of the Sources panel, keeping them closed by default until the user opens them. That way, the source items still occupy the majority of the "Source" panel.

2) Section header styling should use Patternfly table header styling. Replace the current dark gray gradient background to a lighter gray using the same colors as table headers in Patternfly, change the text color correspondingly. @seanforyou23 and @sjcox-rh can comment more on the actual code values for the correct styling. @dongniwang was also involved in the discussion today and may have comments as well.

We think that longer term we could explore other options for separating Properties and Constants - which are not actually "sources", but which are items that can participate in mappings. But we'll leave that for another day and see what kind of user feedback we get on the designs.

amysueg commented 6 years ago

oh a screen shot for you:

propsconstantsdesign
igarashitm commented 6 years ago

Thanks @amysueg ! please note that the property value is not always determined at design time, it could be something retrieved from somewhere at runtime, so we can't show it at design time. Right now atlasmap-ui always populate a static property value though, it is supposed to be changed to allow populating only a property name (#30).

// For me fixed property value at design time doesn't make sense, it's same as constants