{"action":"created","issue":{"url":"https://api.github.com/repos/neos/neos-development-collection/issues/164","labels_url":"https://api.github.com/repos/neos/neos-development-collection/issues/164/labels{/name}","comments_url":"https://api.github.com/repos/neos/neos-development-collection/issues/164/comments","events_url":"https://api.github.com/repos/neos/neos-development-collection/issues/164/events","html_url":"https://github.com/neos/neos-development-collection/pull/164","id":114551464,"number":164,"title":"[FEATURE] Allow property editors to listen to changes","user":{"login":"kitsunet","id":324408,"avatar_url":"https://avatars.githubusercontent.com/u/324408?v=3","gravatar_id":"","url":"https://api.github.com/users/kitsunet","html_url":"https://github.com/kitsunet","followers_url":"https://api.github.com/users/kitsunet/followers","following_url":"https://api.github.com/users/kitsunet/following{/other_user}","gists_url":"https://api.github.com/users/kitsunet/gists{/gist_id}","starred_url":"https://api.github.com/users/kitsunet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kitsunet/subscriptions","organizations_url":"https://api.github.com/users/kitsunet/orgs","repos_url":"https://api.github.com/users/kitsunet/repos","events_url":"https://api.github.com/users/kitsunet/events{/privacy}","received_events_url":"https://api.github.com/users/kitsunet/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/neos/neos-development-collection/labels/K:%20Feature","name":"K: Feature","color":"0052cc"},{"url":"https://api.github.com/repos/neos/neos-development-collection/labels/P:%20Neos","name":"P: Neos","color":"009800"},{"url":"https://api.github.com/repos/neos/neos-development-collection/labels/T:%20JS","name":"T: JS","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":26,"created_at":"2015-11-02T08:53:06Z","updated_at":"2015-11-19T13:34:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/neos/neos-development-collection/pulls/164","html_url":"https://github.com/neos/neos-development-collection/pull/164","diff_url":"https://github.com/neos/neos-development-collection/pull/164.diff","patch_url":"https://github.com/neos/neos-development-collection/pull/164.patch"},"body":"This feature allows configuring listeners to other properties\r\nfor editors. The listener will be triggered on any change of the\r\nobserved property even without applying the change. To keep the\r\nusage flexible you can define a handler that will be triggered\r\non change.\r\n\r\nExample configuration:\r\n\r\n    subpageLayout:\r\n      type: string\r\n      ui:\r\n        inspector:\r\n          editorListeners:\r\n            activeWithNonEmptyValue:\r\n              property: 'layout'\r\n              handler: 'TYPO3.NeosDemoTypo3Org/Handlers/LayoutHandler'\r\n\r\nThe handler would be an Ember.Object or more specifically the handler\r\nshould be loadable via require and return an object with a create()\r\nmethod that in turn returns an object with a handle method with the\r\nfollowing signature:\r\n\r\n    handle: function(listeningEditor, newValue, property, listenerName)\r\n\r\nThe ``listeningEditor`` is the Ember editor object for which the\r\nlistener is defined, ``newValue`` is the new value of the property which\r\nwas listened to, ``property`` is the name of this observed property and\r\nfinally ``listenerName`` is the (user defined) name of the listener from\r\nthe configuration.\r\n\r\nThis configuration makes not too much sense but you can easily see the\r\nflexibility and possible usages of this.\r\nChanges to editors to integrate nicely with this feature will\r\ncome in additional PRs."},"comment":{"url":"https://api.github.com/repos/neos/neos-development-collection/issues/comments/158058095","html_url":"https://github.com/neos/neos-development-collection/pull/164#issuecomment-158058095","issue_url":"https://api.github.com/repos/neos/neos-development-collection/issues/164","id":158058095,"user":{"login":"aertmann","id":903567,"avatar_url":"https://avatars.githubusercontent.com/u/903567?v=3","gravatar_id":"","url":"https://api.github.com/users/aertmann","html_url":"https://github.com/aertmann","followers_url":"https://api.github.com/users/aertmann/followers","following_url":"https://api.github.com/users/aertmann/following{/other_user}","gists_url":"https://api.github.com/users/aertmann/gists{/gist_id}","starred_url":"https://api.github.com/users/aertmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aertmann/subscriptions","organizations_url":"https://api.github.com/users/aertmann/orgs","repos_url":"https://api.github.com/users/aertmann/repos","events_url":"https://api.github.com/users/aertmann/events{/privacy}","received_events_url":"https://api.github.com/users/aertmann/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T13:34:35Z","updated_at":"2015-11-19T13:34:35Z","body":":+1: by reading"}}