{"action":"created","issue":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8838","repository_url":"https://api.github.com/repos/code-dot-org/code-dot-org","labels_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8838/labels{/name}","comments_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8838/comments","events_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8838/events","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8838","id":159267967,"number":8838,"title":"Callout enhancements [test ui]","user":{"login":"cpirich","id":5429146,"avatar_url":"https://avatars.githubusercontent.com/u/5429146?v=3","gravatar_id":"","url":"https://api.github.com/users/cpirich","html_url":"https://github.com/cpirich","followers_url":"https://api.github.com/users/cpirich/followers","following_url":"https://api.github.com/users/cpirich/following{/other_user}","gists_url":"https://api.github.com/users/cpirich/gists{/gist_id}","starred_url":"https://api.github.com/users/cpirich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cpirich/subscriptions","organizations_url":"https://api.github.com/users/cpirich/orgs","repos_url":"https://api.github.com/users/cpirich/repos","events_url":"https://api.github.com/users/cpirich/events{/privacy}","received_events_url":"https://api.github.com/users/cpirich/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-06-08T20:50:49Z","updated_at":"2016-06-09T17:41:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/pulls/8838","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8838","diff_url":"https://github.com/code-dot-org/code-dot-org/pull/8838.diff","patch_url":"https://github.com/code-dot-org/code-dot-org/pull/8838.patch"},"body":"* Added a new `codeStudio` object under the `qtip_config` object for callouts, where we can store custom state for each callout.\r\n* Added new properties `canReappear` and `dropletPaletteCategory` under that `codeStudio` object and updated the level builder editor to make it easy to edit these. Extended the `jsonEditor` to handle boolean properties as checkboxes.\r\n* App code can now detect that a callout is about to appear and make changes (e.g. toggling UI state or scrolling an item into view) prior to the callout appearing. A `prepareforcallout` event is fired with the aforementioned `codeStudio` object as a parameter after the event object.\r\n* Handled the `prepareforcallout` event for callouts that specify the `dropletPaletteCategory`. The droplet palette will change to the proper group and the specific block will scroll into view.\r\n* Fire new `droplet_change` events from the apps world so that the callout code in code-studio can make appropriate changes related to callouts. The additional parameter on this type of event can be `togglepalette`, `scrollpalette`, or `selectpalette`. This is analogous to how `block_space_metrics_set` events are handled that are fired by blockly core.\r\n* Changed how \"seen\" callouts are tracked. The dashboard will send \"already seen\" callouts if the `canReappear` property is set, but they will contain a `seen` property that is set to `true`\r\n * Modified `showOrHideCalloutsByTargetVisibility` so it can be used for callouts attached to the droplet palette in addition to tracking blocks within the blockly workspace. This is now a function that generates two different functions: `showHideWorkspaceCallouts()` and `showHidePaletteCallouts()`. That function has been extended to notice when the callout selector is no longer part of the document, in which case it destroys the callout.\r\n* Added code to handle `#triggercallout=<event name>` in the page URL. If it is there on page load, the event name is fired with `hashinit` as the parameter, which causes the callout with the designated event name to appear immediately (using the existing callout `on` property). If a navigation to this relative URL occurs on the same page (e.g. a link from within instructions markdown), the event is fired with `hashchange` as the parameter, causing the callout to appear and the browser history is altered so this doesn't count as a navigation.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/comments/224971206","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8838#issuecomment-224971206","issue_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8838","id":224971206,"user":{"login":"cpirich","id":5429146,"avatar_url":"https://avatars.githubusercontent.com/u/5429146?v=3","gravatar_id":"","url":"https://api.github.com/users/cpirich","html_url":"https://github.com/cpirich","followers_url":"https://api.github.com/users/cpirich/followers","following_url":"https://api.github.com/users/cpirich/following{/other_user}","gists_url":"https://api.github.com/users/cpirich/gists{/gist_id}","starred_url":"https://api.github.com/users/cpirich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cpirich/subscriptions","organizations_url":"https://api.github.com/users/cpirich/orgs","repos_url":"https://api.github.com/users/cpirich/repos","events_url":"https://api.github.com/users/cpirich/events{/privacy}","received_events_url":"https://api.github.com/users/cpirich/received_events","type":"User","site_admin":false},"created_at":"2016-06-09T17:41:49Z","updated_at":"2016-06-09T17:41:49Z","body":"@breville "}}
{"actor":{"display_login":"cpirich"}}