The webapp is a web server that displays a shiny interface.
security
- Listen only to localhost. done
- Instruct the user's web browser to open an url that contains a secret token. This guards against other users on the same system. done (I would like to avoid passwords or other authentication methods, it's your local system.)
- Don't pass the url with secret token directly to the web browser,
as that exposes it to
ps
. Instead, write a html file only the user can read, that redirects to the webapp. done - Alternative for Linux at least would be to write a small program using GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding needing authentication.
interface
- list of files uploading and downloading done
- button to open file browser on repo (
xdg-open $DIR
) done - progress bars for each file (see progressbars)
- drag and drop to reorder
- cancel and pause
- keep it usable w/o javascript, and accessible to blind, etc
other features
- there could be a UI to export a file, which would make it be served up over http by the web app
- Display any relevant warning messages. One is the
inotify max_user_watches
exceeded message. - possibly add a desktop file to the top of the repository that can be used
to open the webapp (rather than using the menus). Would be complicated
some by the path to git-annex sometimes needing to be hardcoded and varying
across systems, so it would need to be a symlink to
.git/annex/desktop
which would be per-system.
first start done
- make git repo done
- generate a nice description like "joey@hostname Desktop/annex" done
- record repository that was made, and use it next time run done
- write a pid file, to prevent more than one first-start process running at once done
How will you implement that? Running "sensible-browser URL" would be the obvious way, but the secret URL would show up in a well timed ps listing. (And depending on the browser, ps may show the URL the entire time it's running.)
So, Yesod's scaffolded site actually does use bootstrap, but I didn't use the scaffolded site so don't have it. I am not quite to the point of doing any theming of the webapp, but I do have this nice example of how to put in bootstrap right here..
By the way, if anyone would like to play with the html templates for the webapp, the main html template is
templates/default-layout.hamlet
. Uses a slightly weird template markup, but plain html will also work. And there's also thestatic/
directory; every file in there will be compiled directly into the git-annex binary, and is available athttp://localhost:port/static/$file
in the webapp. See the favicon link indefault-layout.hamlet
of how to construct a type-safe link to a static file:href=@{StaticR favicon_ico}
. That's all you really need to theme the webapp, without doing any real programming!