{"action":"created","issue":{"url":"https://api.github.com/repos/atlasmap/atlasmap/issues/244","repository_url":"https://api.github.com/repos/atlasmap/atlasmap","labels_url":"https://api.github.com/repos/atlasmap/atlasmap/issues/244/labels{/name}","comments_url":"https://api.github.com/repos/atlasmap/atlasmap/issues/244/comments","events_url":"https://api.github.com/repos/atlasmap/atlasmap/issues/244/events","html_url":"https://github.com/atlasmap/atlasmap/issues/244","id":290527261,"number":244,"title":"Replace combine/separate mappings with ability to group source/target fields","user":{"login":"jpav","id":437085,"avatar_url":"https://avatars0.githubusercontent.com/u/437085?v=4","gravatar_id":"","url":"https://api.github.com/users/jpav","html_url":"https://github.com/jpav","followers_url":"https://api.github.com/users/jpav/followers","following_url":"https://api.github.com/users/jpav/following{/other_user}","gists_url":"https://api.github.com/users/jpav/gists{/gist_id}","starred_url":"https://api.github.com/users/jpav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpav/subscriptions","organizations_url":"https://api.github.com/users/jpav/orgs","repos_url":"https://api.github.com/users/jpav/repos","events_url":"https://api.github.com/users/jpav/events{/privacy}","received_events_url":"https://api.github.com/users/jpav/received_events","type":"User","site_admin":false},"labels":[{"id":751293062,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/cat/discussion","name":"cat/discussion","color":"1d4367","default":false},{"id":751293037,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/cat/feature","name":"cat/feature","color":"bdd9f4","default":false},{"id":750416703,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/module/runtime","name":"module/runtime","color":"657c9a","default":false},{"id":750479554,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/module/ui","name":"module/ui","color":"dce6f0","default":false},{"id":751293072,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/module/uxd","name":"module/uxd","color":"fdc5d8","default":false},{"id":751293091,"url":"https://api.github.com/repos/atlasmap/atlasmap/labels/notif/uxd","name":"notif/uxd","color":"f382d0","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-01-22T16:25:41Z","updated_at":"2018-04-02T13:06:35Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Part of epic #248 \r\n\r\nIt has always seemed confusing to me that we've give the user the ability to combine or separate source or target fields via mappings, but all other types of transformations are accomplished via later field actions.  I would rather see a more generic ability to group fields from source or target via an action and eliminate the user's need to specify a specific type of mapping. Thus, for example, to combine source fields into a single target field, the user would still use the same DnD/selection process they do now to indicate when multiple fields are involved, but we'd simply automatically create a grouping action containing the source fields instead of creating a special combine mapping. This would simplify the details view, and a longer-term goal would be this generic grouping action could also be used later in the action chain."},"comment":{"url":"https://api.github.com/repos/atlasmap/atlasmap/issues/comments/377925233","html_url":"https://github.com/atlasmap/atlasmap/issues/244#issuecomment-377925233","issue_url":"https://api.github.com/repos/atlasmap/atlasmap/issues/244","id":377925233,"user":{"login":"pleacu","id":2981421,"avatar_url":"https://avatars2.githubusercontent.com/u/2981421?v=4","gravatar_id":"","url":"https://api.github.com/users/pleacu","html_url":"https://github.com/pleacu","followers_url":"https://api.github.com/users/pleacu/followers","following_url":"https://api.github.com/users/pleacu/following{/other_user}","gists_url":"https://api.github.com/users/pleacu/gists{/gist_id}","starred_url":"https://api.github.com/users/pleacu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pleacu/subscriptions","organizations_url":"https://api.github.com/users/pleacu/orgs","repos_url":"https://api.github.com/users/pleacu/repos","events_url":"https://api.github.com/users/pleacu/events{/privacy}","received_events_url":"https://api.github.com/users/pleacu/received_events","type":"User","site_admin":false},"created_at":"2018-04-02T13:06:35Z","updated_at":"2018-04-02T13:06:35Z","author_association":"CONTRIBUTOR","body":"See comments from #95\r\ni.e.\r\nThis is what I've got - if a user attempts multiple mappings (map mode) to the same target element then it's flagged with an error. In this example I have an existing mapping beween source element *addressLine1* and target element *fullAddress* and then attempt to map *addressLine2* to* fullAddress*:\r\n![am0](https://user-images.githubusercontent.com/2981421/38197105-9ff2efea-3654-11e8-9fef-9595b92ca971.png)\r\nIf a user attempts multiple combine-mode mappings to a single target then it's allowed. The user specifies the compound-selection by using M1 for the first element and ctrl-M1 for each subsequent element. The combine index is calculated as +1 from them previous index:\r\n![am1](https://user-images.githubusercontent.com/2981421/38197108-a57a1ea2-3654-11e8-825a-6f2046f52919.png)\r\nIf a user wishes to de-select an element then they press ctrl-M1 on a previously selected element:\r\n![am2](https://user-images.githubusercontent.com/2981421/38197113-ab1344f6-3654-11e8-8014-fb2362d389a7.png)\r\nNote that the user must be in *Combine* mode.\r\n\r\n*Q: If a user is not in combine mode and presses ctrl-M1 - should we automatically change into combine mode as a convenience or should we flag an error?*\r\n\r\n*Q: How should the index be refactored if a user removes an element in the middle from a combine? If element 3 is removed should we just leave the generated XML as specifying 1,2,4,5?*\r\n\r\nA similar (not yet prototyped) effort would occur for *Separate* mode where a single Source element would separate into multiple Target elements via ctrl-M1."}}
{"actor":{"display_login":"pleacu"}}