Most of the JQuery AJAX calls have been replaced with native fetch(...) calls
The skeleton system works now (will load deleted files) -- although the backend is broken right now (the API call is returning void, and jsexpr->string doesn't like that)
Some of the Marmoset code is cleaner (still kind of sketchy)
I'm not sure what we want to do with the skeleton system. We currently cache the entries, although we still invoke the CGI scripts a good few dozen times on first load as all the calls race against each other. It might be nicer to just drop the local caching and rely on the browser to do the right thing -- in particular, students will no longer need to refresh to fetch new skeletons.
This PR cleans up some of the frontend code:
I'm not sure what we want to do with the skeleton system. We currently cache the entries, although we still invoke the CGI scripts a good few dozen times on first load as all the calls race against each other. It might be nicer to just drop the local caching and rely on the browser to do the right thing -- in particular, students will no longer need to refresh to fetch new skeletons.