You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@whimsical.apache.org by Sam Ruby <ru...@intertwingly.net> on 2017/11/25 19:35:50 UTC

board agenda tool now has a 'go offline button'

[bcc: board@ for announcement only, please direct bug reports, feature 
requests, and other discussion to dev@whimsical or the whimsy JIRA]

This is only for Firefox and Chrome users at this point (and those that 
know how to enable experimental features in Edge and Safari).

To use go to the 'Queue' page for this month's agenda, and click 'go 
offline'.  A number of buttons will become disabled, but Directors will 
still be able to toggle approvals, toggle flagging, and add comments. 
Even without a network connection.

Changes will be stored in an indexDB database in your browser, and will 
persist across tabs, windows, and even entire browser sessions.

In fact, even with a disabled network, you can close and re-open agenda 
pages, open agenda pages in new tabs or windows, and even press refresh. 
  Changes made in one tab will show up in other tabs or windows.

Once you have a network connection again, go back to the queue page and 
click 'Go online'.  At this point, your pending changes will be synced 
with the server but not committed to svn.  You can continue to make 
changes (and even go offline and back online again).  Once complete, 
commit the changes as you normally would.

- Sam Ruby

(*) For those interested in the technical details, this function makes 
use of a feature named Service Workers (a.k.a. Progressive Web Apps).

https://caniuse.com/#feat=serviceworkers

There is nothing to install.  Browsers that don't support this feature 
will continue to behave as they did before.  Users using browsers which 
support this feature won't see any difference the first time they load 
an board agenda page.

The magic begins after the first page is loaded.  The service worker 
will be installed and then will proceed to fetch and cache a number of 
pages from the server.  This is all in prep for the next time a board 
agenda page is opened in a new window, at which point the service worker 
will intercept the request and provide a cached response.  Once loaded, 
the page will fetch current data from the server update the page based 
on that response.  And will keep the page up to date as updates are 
received from the server.

The comment dialog and approval buttons have been updated to store the 
pending changes locally when offline.