{"action":"opened","issue":{"url":"https://api.github.com/repos/tracespace/viewer/issues/7","repository_url":"https://api.github.com/repos/tracespace/viewer","labels_url":"https://api.github.com/repos/tracespace/viewer/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/tracespace/viewer/issues/7/comments","events_url":"https://api.github.com/repos/tracespace/viewer/issues/7/events","html_url":"https://github.com/tracespace/viewer/issues/7","id":167528269,"number":7,"title":"Should be able to save boards locally","user":{"login":"mcous","id":2963448,"avatar_url":"https://avatars.githubusercontent.com/u/2963448?v=3","gravatar_id":"","url":"https://api.github.com/users/mcous","html_url":"https://github.com/mcous","followers_url":"https://api.github.com/users/mcous/followers","following_url":"https://api.github.com/users/mcous/following{/other_user}","gists_url":"https://api.github.com/users/mcous/gists{/gist_id}","starred_url":"https://api.github.com/users/mcous/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcous/subscriptions","organizations_url":"https://api.github.com/users/mcous/orgs","repos_url":"https://api.github.com/users/mcous/repos","events_url":"https://api.github.com/users/mcous/events{/privacy}","received_events_url":"https://api.github.com/users/mcous/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tracespace/viewer/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-07-26T06:09:39Z","updated_at":"2016-07-26T06:09:39Z","closed_at":null,"body":"Right now, the current functionality is to give you a blank slate every time. Instead, the user should be able to save different groups of layers in different boards that are then stored locally. Upon returning to the  page, the user should see be able to open saved boards.\r\n\r\nWill probably need [localForage](https://github.com/localForage/localForage) at the very least, and maybe [pseudo worker](https://github.com/nolanlawson/pseudo-worker) for Safari.\r\n\r\nBuilding it will look something like\r\n\r\n- [ ] 0. Add localForage to the converter worker (and change the name of the worker)\r\n- [ ] 1. Store every layer and display them all when opening the app, call them \"unsaved\"\r\n  * Will need to store gerber file as well as state model\r\n- [ ] 2. Add mechanism to remove all \"unsaved\" layers from storage (and state)\r\n- [ ] 3. Create concept of \"boards\" in the state, allow layers to be \"saved\" to boards, store the boards\r\n- [ ] 4. Build board drawer component with controls to create, delete, and open saved boards\r\n- [ ] 5. Build more controls that I haven't thought of yet\r\n- [ ] 6. Loop back and figure out what to do about Safari, where local storage mechanisms won't work in a web worker\r\n  * Option 1: put the entire worker in a pseudo worker and hope Safari is good enough to handle it\r\n  * Option 2: Have worker detect support and trigger app to load localForage in the main thread, where the worker can pass it stuff to store\r\n  * Could go either way. Option 1 would make conversion more disruptive. Option 2 would impose so overhead (with entire Gerber files being passed between threads)"}}
{"actor":{"display_login":"mcous"}}