{"action":"created","issue":{"url":"https://api.github.com/repos/metapolator/metapolator/issues/344","labels_url":"https://api.github.com/repos/metapolator/metapolator/issues/344/labels{/name}","comments_url":"https://api.github.com/repos/metapolator/metapolator/issues/344/comments","events_url":"https://api.github.com/repos/metapolator/metapolator/issues/344/events","html_url":"https://github.com/metapolator/metapolator/issues/344","id":58770714,"number":344,"title":"Implement font export","user":{"login":"davelab6","id":261579,"avatar_url":"https://avatars.githubusercontent.com/u/261579?v=3","gravatar_id":"","url":"https://api.github.com/users/davelab6","html_url":"https://github.com/davelab6","followers_url":"https://api.github.com/users/davelab6/followers","following_url":"https://api.github.com/users/davelab6/following{/other_user}","gists_url":"https://api.github.com/users/davelab6/gists{/gist_id}","starred_url":"https://api.github.com/users/davelab6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davelab6/subscriptions","organizations_url":"https://api.github.com/users/davelab6/orgs","repos_url":"https://api.github.com/users/davelab6/repos","events_url":"https://api.github.com/users/davelab6/events{/privacy}","received_events_url":"https://api.github.com/users/davelab6/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/metapolator/metapolator/labels/io%20/%20export","name":"io / export","color":"009800"},{"url":"https://api.github.com/repos/metapolator/metapolator/labels/Priority%20High","name":"Priority High","color":"e11d21"},{"url":"https://api.github.com/repos/metapolator/metapolator/labels/UI","name":"UI","color":"207de5"}],"state":"open","locked":false,"assignee":{"login":"felipesanches","id":213676,"avatar_url":"https://avatars.githubusercontent.com/u/213676?v=3","gravatar_id":"","url":"https://api.github.com/users/felipesanches","html_url":"https://github.com/felipesanches","followers_url":"https://api.github.com/users/felipesanches/followers","following_url":"https://api.github.com/users/felipesanches/following{/other_user}","gists_url":"https://api.github.com/users/felipesanches/gists{/gist_id}","starred_url":"https://api.github.com/users/felipesanches/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felipesanches/subscriptions","organizations_url":"https://api.github.com/users/felipesanches/orgs","repos_url":"https://api.github.com/users/felipesanches/repos","events_url":"https://api.github.com/users/felipesanches/events{/privacy}","received_events_url":"https://api.github.com/users/felipesanches/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/metapolator/metapolator/milestones/23","html_url":"https://github.com/metapolator/metapolator/milestones/0.2.0","labels_url":"https://api.github.com/repos/metapolator/metapolator/milestones/23/labels","id":728542,"number":23,"title":"0.2.0","description":"","creator":{"login":"davelab6","id":261579,"avatar_url":"https://avatars.githubusercontent.com/u/261579?v=3","gravatar_id":"","url":"https://api.github.com/users/davelab6","html_url":"https://github.com/davelab6","followers_url":"https://api.github.com/users/davelab6/followers","following_url":"https://api.github.com/users/davelab6/following{/other_user}","gists_url":"https://api.github.com/users/davelab6/gists{/gist_id}","starred_url":"https://api.github.com/users/davelab6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davelab6/subscriptions","organizations_url":"https://api.github.com/users/davelab6/orgs","repos_url":"https://api.github.com/users/davelab6/repos","events_url":"https://api.github.com/users/davelab6/events{/privacy}","received_events_url":"https://api.github.com/users/davelab6/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":44,"state":"open","created_at":"2014-07-22T15:33:56Z","updated_at":"2015-04-23T20:07:11Z","due_on":"2015-04-27T04:00:00Z","closed_at":null},"comments":49,"created_at":"2015-02-24T17:18:03Z","updated_at":"2015-04-23T20:30:52Z","closed_at":null,"body":"https://github.com/metapolator/metapolator/wiki/working-UI-demo#font-export-panel\r\n\r\n![export before design](https://cloud.githubusercontent.com/assets/261579/6364114/daf8de2c-bc6f-11e4-99a9-6ecdaf0eb1f7.png)\r\n\r\n\r\n- [x] design new demo font export panel\r\n- [x] design export duration estimate\r\n- [x] design export progress indication\r\n\r\nHere's the images:\r\n\r\n![export designed](https://camo.githubusercontent.com/277cdbf8aa609b0b423a7033441055586791edfe/687474703a2f2f6d6d69776f726b732e6e65742f6d657461706f6c61746f722f64656d6f6578706f72742e706e67)\r\n\r\n![when exporting](https://camo.githubusercontent.com/c197ae032a0095cb407a7bc853c71db7c407993d/687474703a2f2f6d6d69776f726b732e6e65742f6d657461706f6c61746f722f64656d6f6578706f727470726f67726573732e706e67)\r\n\r\n- - - \r\n\r\n#### Engineering Development (@felipesanches)\r\n\r\n- [x] using the zip io class, make it possible to export the selected instances as a downloadable zip\r\n- [x] rework the instance zip filename to use the $instanceName.ufo.zip filename\r\n- [x] rework the directory structure inside the instance zips to be `instanceName/metainfo.plist` etc\r\n- [x] add a final 'wrapper' zip that wraps all the instances into a `metapolator-export-YYYYMMDD-HHMMSS.zip` file, and pass that to saveAs. (Clarification added later: Use this even if only 1 instance is exported.)\r\n- [ ] Then its progress bar time :) The specification of the behavior is at https://github.com/metapolator/metapolator/wiki/working-UI-demo#indicating-export-duration\r\n- [ ] create a new opentype io class to make it possible to export the selected instances as a downloadable OTF binary (using https://github.com/nodebox/opentype.js)\r\n\r\n#### Front End Development(@jeroenbreen)\r\n\r\n- [ ] _In https://github.com/metapolator/metapolator/issues/347#issuecomment-75925783 the instance list is related to export, \"the instance list needs to be synced (items, scroll) with the export column (or rather, the export column is an extension of the instances list)\", thus:_ sync the items and scrolling of the instance list panel and the export list panel - the export column could even be part of the instances list panel, and merely becomes visible when the user pans to the 3rd page\r\n- [ ] Comment out the opentype items in the Fonts menu, so they do not appear at all to users"},"comment":{"url":"https://api.github.com/repos/metapolator/metapolator/issues/comments/95711160","html_url":"https://github.com/metapolator/metapolator/issues/344#issuecomment-95711160","issue_url":"https://api.github.com/repos/metapolator/metapolator/issues/344","id":95711160,"user":{"login":"graphicore","id":393132,"avatar_url":"https://avatars.githubusercontent.com/u/393132?v=3","gravatar_id":"","url":"https://api.github.com/users/graphicore","html_url":"https://github.com/graphicore","followers_url":"https://api.github.com/users/graphicore/followers","following_url":"https://api.github.com/users/graphicore/following{/other_user}","gists_url":"https://api.github.com/users/graphicore/gists{/gist_id}","starred_url":"https://api.github.com/users/graphicore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphicore/subscriptions","organizations_url":"https://api.github.com/users/graphicore/orgs","repos_url":"https://api.github.com/users/graphicore/repos","events_url":"https://api.github.com/users/graphicore/events{/privacy}","received_events_url":"https://api.github.com/users/graphicore/received_events","type":"User","site_admin":false},"created_at":"2015-04-23T20:30:51Z","updated_at":"2015-04-23T20:30:51Z","body":"We can use generators to update the progress bar per glyph. We can also give control back to the browser for a moment there, so the interface does not freeze completely. Web Workers are not an option yet."}}