Commit graph

223 commits

Author SHA1 Message Date
Joey Hess
088e89b422 adjust wording, which was a bit incorrect due to new and planned features
xmpp sync in particular
2012-10-31 16:28:40 -04:00
Joey Hess
796ebaf6f8 add a link to vixie's personal colo list 2012-10-31 16:24:21 -04:00
Joey Hess
4b55761a79 improve layout 2012-10-31 16:23:02 -04:00
Joey Hess
a4c6b30e2c avoid using Blaze directly
New 0.5 changes the api, rather gratuitously, so run away. I can juse use
Hamlet here.
2012-10-31 13:27:56 -04:00
Joey Hess
96c7a5ce32 fix intro display when there is 1 remote 2012-10-30 18:21:13 -04:00
Joey Hess
b72d04988f add an icon for The Cloud
I am befuddled that Twitter Bootstrap has no built-in Icon for The Cloud,
and also that Chromium's depiction of CLOUD (U+2601) has an uncanny
resemblance to PILE OF POO (U+1F4A9) when rendered small, and looks like a
looming Frankenstorm when rendered large, and not a sweet, sunny, nothing
can go wrong The Cloud.
<http://www.fileformat.info/info/unicode/char/2601/browsertest.htm>

So, I must resort to irony in my choice of icons.
2012-10-27 11:24:35 -04:00
Joey Hess
6803667f00 store xmpp creds from form 2012-10-26 17:13:30 -04:00
Joey Hess
07494cbb4b XMPP configuration form
Currently relies on SRV being set, or the JID's hostname being the server
hostname and the port being default. Future work: Allow manual
configuration of user name, hostname, and port.
2012-10-26 14:17:09 -04:00
Joey Hess
4aaa8665e1 add template for xmpp, not used yet 2012-10-25 16:50:41 -04:00
Joey Hess
5265ca4423 add link 2012-10-17 16:30:32 -04:00
Joey Hess
59170c4187 hyperlink to repository edit form from transfer display 2012-10-17 14:45:58 -04:00
Joey Hess
362e18e3fd allow renaming git remotes in the edit form 2012-10-14 17:18:01 -04:00
Joey Hess
d9e65ff4be format 2012-10-14 15:22:33 -04:00
Joey Hess
a7642b3b6e add syncing enabled/disabled to repo list with icon, and toggle link
The toggle link doesn't work yet.

Also lots of refactoring and type improvements
2012-10-12 01:09:28 -04:00
Joey Hess
0b266f970f set/unset annex-sync, rather than annex-ignore
This reserves annex.ignore for repos that should not be visible at all;
repos with syncing disabled are now skipped by the assistant, but are
displayed in the list and can be configured.
2012-10-11 19:22:29 -04:00
Joey Hess
f31d292ab1 after setting up a new repo, go to a special version of the configuration page 2012-10-11 17:35:08 -04:00
Joey Hess
5b9900133c allow disabling syncing to a repo on its edit form
This is not quite right yet, since it disables it so hard it doesn't show
up in the repo list anymore!
2012-10-11 17:14:42 -04:00
Joey Hess
4ef6dac5c2 webapp: Improve wording of intro display. Closes: #689848 2012-10-11 15:04:38 -04:00
Joey Hess
f06587ba23 basic repository edit form
Only shows description so far.
2012-10-09 15:11:48 -04:00
Joey Hess
b6a3f03f82 add "configure" link to each repository in the webapp's repo list 2012-10-09 14:43:53 -04:00
Joey Hess
1087fac544 add a alert at the top of the main part of the webapp, above the transfers display
Based on feedback that it was too sparse to be clear what it's doing.
2012-09-28 13:30:29 -04:00
Joey Hess
8b61bac418 put version on about page 2012-09-27 18:09:05 -04:00
Joey Hess
a02d6b36d8 Add OSX standalone app license bundle, and arrange for the About page
to link to it.
2012-09-27 16:47:52 -04:00
Joey Hess
53c970429f stub in NAS 2012-09-27 13:00:16 -04:00
Joey Hess
8bc70a85c6 add tooltips 2012-09-27 12:55:00 -04:00
Joey Hess
c2c577f34f allow enabling existing S3 repos 2012-09-26 15:24:23 -04:00
Joey Hess
17708dd173 add a configurator for S3 2012-09-26 14:44:07 -04:00
Joey Hess
6cea492cf2 fix link 2012-09-18 21:28:41 -04:00
Joey Hess
18bae020ed make other repositories list list all autostarted repos
And add a form to add another, unrelated repository
2012-09-18 17:50:07 -04:00
Joey Hess
811f81f481 italicise unconfigured repos 2012-09-13 17:31:36 -04:00
Joey Hess
74906ed13f UI for enabling special remotes
Now other repositories can configure special remotes, and when their
configuration has propigated out, they'll appear in the webapp's list of
repositories, with a link to enable them.

Added support for enabling rsync special remotes, and directory special
remotes that are on removable drives. However, encrypted directory special
remotes are not supported yet. The removable drive configuator doesn't
support them yet anyway.
2012-09-13 16:50:02 -04:00
Joey Hess
4227050bbe add note about LANs 2012-09-11 15:31:38 -04:00
Joey Hess
c20d6f4189 responding to pair requests *almost* works 2012-09-10 17:53:51 -04:00
Joey Hess
690b424cad unify bootstrap icon names in a data type 2012-09-09 15:09:22 -04:00
Joey Hess
f75ac910c4 display icon for alerts with no header too 2012-09-09 14:59:46 -04:00
Joey Hess
c066faf4b9 wording 2012-09-09 01:05:23 -04:00
Joey Hess
1e41c0d85e update pair request alert when button is pressed 2012-09-09 01:02:44 -04:00
Joey Hess
f62cc48482 reorg templates 2012-09-08 23:32:08 -04:00
Joey Hess
6e60b08060 moved the PairStage inside the Verifiable data 2012-09-08 21:06:10 -04:00
Joey Hess
e59b0a1c88 first pass at alert buttons
They work fine. But I had to go to a lot of trouble to get Yesod to render
routes in a pure function. It may instead make more sense to have each
alert have an assocated IO action, and a single route that runs the IO
action of a given alert id. I just wish I'd realized that before the past
several hours of struggling with something Yesod really doesn't want to
allow.
2012-09-08 19:57:15 -04:00
Joey Hess
0f0c7f8d70 added pair listener thread 2012-09-08 15:07:44 -04:00
Joey Hess
3dd4b4058f implement pair request broadcasts
Pair requests are sent on all network interfaces, and contain the best
available hostname to use to contact the host on that interface.

Added a pairing in progress page.

Revert "reduce some boilerplate using ghc extensions", because it caused
overlapping instances for Text.
2012-09-08 13:04:19 -04:00
Joey Hess
0c01348b65 pairing passphrase entry form, validation, etc
Actually 3 forms in one, this handles the initial passphrase entry, and the
confirmation, and also varys wording if the same user or a different user
is confirming.
2012-09-08 02:02:39 -04:00
Joey Hess
46fd6b54c7 rsync.net configurator tested and 100% working 2012-09-04 15:27:06 -04:00
Joey Hess
b584d96c13 rsync.net configurator display
Doesn't set up the repo yet.
2012-09-03 00:39:55 -04:00
Joey Hess
6a45ca4658 reorg page, split out each cloud provider into a separate column 2012-09-03 00:13:19 -04:00
Joey Hess
b6a91d7a4d defer setting up ssh public key until after confirmation 2012-09-02 20:43:32 -04:00
Joey Hess
014974a7da allow making encrypted rsync special remotes
wow, that was easy!
2012-09-02 17:32:24 -04:00
Joey Hess
94d75d88ab layout 2012-09-02 15:37:18 -04:00
Joey Hess
97ce4d24cb adding ssh remote working
Rsync remote still needs work
2012-09-02 15:27:00 -04:00
Joey Hess
78f9e954a0 show modal while cloning to removable drive 2012-09-02 15:04:29 -04:00
Joey Hess
837cd79e4f add ssh confirmation page
also broke out webapp types into a separate module
2012-09-02 00:49:25 -04:00
Joey Hess
32ab049f9c ssh connection testing and key setup 2012-09-01 20:37:35 -04:00
Joey Hess
10a48da988 typography 2012-08-31 19:39:44 -04:00
Joey Hess
54a492db5f UI for adding a ssh or rsync remote 2012-08-31 18:59:57 -04:00
Joey Hess
86fb1305dc split out local repo configurators 2012-08-31 15:17:12 -04:00
Joey Hess
9219f0baee display "paused" when transfer is paused
This makes the buttons in the UI a little clearer. I'd prefer to enable the
barberpole animation for running transfers, but that is jerky looking due
to the way the dashboard is updated.
2012-08-29 18:34:50 -04:00
Joey Hess
37eed5d8d0 fix button display for paused transfer 2012-08-10 18:50:21 -04:00
Joey Hess
09449792fa factor out onclick javascript 2012-08-08 17:07:38 -04:00
Joey Hess
94fcd0cf59 add routes to pause/start/cancel transfers
This commit includes a paydown on technical debt incurred two years ago,
when I didn't know that it was bad to make custom Read and Show instances
for types. As the routes need Read and Show for Transfer, which includes a
Key, and deriving my own Read instance of key was not practical,
I had to finally clean that up.

So the compact Key read and show functions are now file2key and key2file,
and Read and Show are now derived instances.

Changed all code that used the old instances, compiler checked.
(There were a few places, particularly in Command.Unused, and the test
suite where the Show instance continue to be used for legitimate
comparisons; ie show key_x == show key_y (though really in a bloom filter))
2012-08-08 16:20:24 -04:00
Joey Hess
96950a3b40 add pause/start and cancel buttons to transfer display 2012-08-08 14:14:19 -04:00
Joey Hess
77cd327170 fix display of icon in block alert heading 2012-08-06 17:15:27 -04:00
Joey Hess
94e92a1b58 make alerts change tense when they finish 2012-08-06 15:00:46 -04:00
Joey Hess
aab3a01a71 merge two repository screens into one 2012-08-05 19:55:06 -04:00
Joey Hess
46feae36b6 remove links from unimplemented options 2012-08-05 19:21:28 -04:00
Joey Hess
a3f76fe696 wording
De-emphasize "clone", because it's not that simple. The removable drive may
already have an annex with content; if so it'll get synced in.
2012-08-05 15:57:30 -04:00
Joey Hess
ccedd06023 make button primary 2012-08-05 14:49:38 -04:00
Joey Hess
e125ce74b8 work toward adding new repos on removable drives
This actually does add a new repo, but it doesn't yet set up
remotes, or sync to it.
2012-08-04 18:17:16 -04:00
Joey Hess
e0c3958d9a improved config 2012-08-03 20:40:34 -04:00
Joey Hess
1bd2be549f add extra sidebar widget
html is slightly broken
2012-08-03 20:10:32 -04:00
Joey Hess
bbea7757ab update 2012-08-03 17:22:35 -04:00
Joey Hess
b1a5a4f985 moving toward configuring new repos in the webapp 2012-08-03 14:36:16 -04:00
Joey Hess
02556b5acd remove duplicate nojs refresher 2012-08-03 10:06:34 -04:00
Joey Hess
1f89712e6b add a navbar button that opens the repo in the desktop's native file browser
This should work on linux (xdg-open) and OSX (open). If the program
is not in $PATH, it falls back to opening a browser window/tab with file:///

The only tricky bit is the javascript code, that handles clicking on the
link. This is to avoid unnecessary page refreshes. Until I added the
return false at the end, the <a>'s normal click event also fired, so two
file browsers opened. I have not checked portability extensively.
2012-08-03 10:02:56 -04:00
Joey Hess
7cc5fdbd7b layout 2012-08-02 09:08:58 -04:00
Joey Hess
ffeb060002 don't use hamlet for htmlshim
This allows me to not build-depend on blaze-markup, which was causing
me some trouble when tring to build with cabal on debian. Seems debian
ships Text.Blaze.Renderer.String in two packages.
2012-08-01 21:28:37 -04:00
Joey Hess
bab80bf24a full input validation for repository path
Expands ~ , checks for every crazy input problem I can think of
2012-07-31 20:56:10 -04:00
Joey Hess
c950e8fba0 move out to template 2012-07-31 18:33:19 -04:00
Joey Hess
4b5ffe8f9b implemented the addrepository form
shiny!
2012-07-31 17:57:08 -04:00
Joey Hess
c70496dc7f improve first run screen 2012-07-31 16:13:09 -04:00
Joey Hess
0d3686972d form 2012-07-31 12:33:52 -04:00
Joey Hess
04794eafc0 webapp now starts up when run not in a git repo 2012-07-31 12:17:31 -04:00
Joey Hess
e9d9d9d5ea add icons 2012-07-31 03:10:16 -04:00
Joey Hess
02b345249b stub 2012-07-31 02:35:07 -04:00
Joey Hess
c77411053b remove clickability on brand 2012-07-31 02:33:51 -04:00
Joey Hess
2c8bbdf307 made navbar work
also added an About page and a stub Config page.
2012-07-31 02:30:26 -04:00
Joey Hess
5fed026bcd reorg templates 2012-07-31 01:24:49 -04:00
Joey Hess
6e40aed948 fix noscript mode to not allocate notification ids on each refresh
Now the javascript does an ajax call at the start to request the url
to use to poll, and the notification id is generated then, once we know
javascript is working.
2012-07-30 22:24:19 -04:00
Joey Hess
2821f9f976 cleanup 2012-07-30 20:35:30 -04:00
Joey Hess
d3413ee5a9 further refactoring my js 2012-07-30 20:33:23 -04:00
Joey Hess
9648acc7a4 got this JS working 2012-07-30 20:22:10 -04:00
Joey Hess
502bc5d5f8 rewrote longpolling, trying to avoid duplication
does not work though. stupid JS
2012-07-30 18:01:41 -04:00
Joey Hess
d1358cc96f fix html 2012-07-30 16:54:38 -04:00
Joey Hess
453b185c85 bring back retry on connection fail 2012-07-30 16:24:55 -04:00
Joey Hess
afacc413e1 bring back connection failure counter
Otherwise, navigating between pages can, I guess, cause connection failures
that take down the webapp.
2012-07-30 16:14:27 -04:00
Joey Hess
2400c6faa3 insert modal dialog html from javascript
This avoids it being visible all the time in noscript
2012-07-30 16:11:16 -04:00
Joey Hess
703f24b83e remove href
Avoids a reload of the page when closing an alert.
2012-07-30 15:39:24 -04:00
Joey Hess
f4484949ef consistent wording 2012-07-30 14:53:36 -04:00
Joey Hess
78b3dada5b better connection close handling
Depending on how the webapp was started up and whether the user clicked on
any links in it, window.close() may be disallowed by browser security
policy. Also if that fails, display a modal dialog that nicely blackens out
the webapp.

TODO: avoid Escape closing it. Bootstrap's docs are unclear about how to do
that.
2012-07-30 14:50:32 -04:00
Joey Hess
a994130843 implement server-side alert closing
Rather than using bootstrap's client-side closing.
Now closed alerts stay closed.
2012-07-30 14:08:22 -04:00
Joey Hess
1f671ee40c spruce up display of the repo list 2012-07-30 13:31:19 -04:00
Joey Hess
895b068e35 tweak intro 2012-07-29 22:11:01 -04:00
Joey Hess
675ad9fe22 tweak 2012-07-29 21:58:01 -04:00
Joey Hess
326617ad2f add intro 2012-07-29 21:54:23 -04:00
Joey Hess
d62b157194 better ordering of alerts 2012-07-29 19:05:51 -04:00
Joey Hess
2dc5697a0a add 2012-07-29 12:39:10 -04:00
Joey Hess
c2f3e66d8c show alerts in the sidebar
This has a bug -- it seems long polling can only wait on one page at a
time. Need to re-unify the notifiers.
2012-07-29 11:31:06 -04:00
Joey Hess
62dac85880 update the sidebar by long polling
Needs to use a different NotificationBroadcaster, and not replace the
whole sidebar div, but instead add in new content. However, it's 3:30 am.
2012-07-29 03:23:17 -04:00
Joey Hess
e96107caf3 move noscript UI to bottom navbar 2012-07-29 01:10:13 -04:00
Joey Hess
38ade1af70 better noscript UI 2012-07-29 00:55:22 -04:00
Joey Hess
376f8443c1 add a separate page for noscript browsers
This may be customised differently than the main page later on, but
for now the important thing is that this constantly refreshed page does not
allocate a new NotificationHandle each time it's loaded.
2012-07-29 00:08:14 -04:00
Joey Hess
a498be7f98 renamed /status to /transfers
Also fixed a bug; the ident for the div was regnerated each time
/status was called. This only was the same as the original ident due to
luck.
2012-07-28 23:55:41 -04:00
Joey Hess
c0ca6f44ac template reorg 2012-07-27 20:47:48 -04:00
Joey Hess
ecd63e2981 template cleanup
use julius's nice #id and .class things
2012-07-27 20:25:28 -04:00
Joey Hess
7717501fee add alert close buttons 2012-07-27 16:28:00 -04:00
Joey Hess
0f6292920a webapp now displays the real running and queued transfers
yowza!!!
2012-07-27 11:47:34 -04:00
Joey Hess
7e3c1e008d webapp now uses twitter bootstrap
mocked up the main screen, and am actually pretty happy with it!
2012-07-27 04:48:50 -04:00
Joey Hess
2ba02d260b add README 2012-07-27 00:40:18 -04:00
Joey Hess
f1c7c475f6 automatically close the webapp window after 3 errors
It's unlikely an error would occur unless the server is stopped. But
retrying a few times seems like a good idea anyway.
2012-07-27 00:17:04 -04:00
Joey Hess
f5ef46d01e cleaned up refreshing code into a widget
Very happy to have a reusable autoUpdate widget that can make any Yesod
widget automatically refresh!

Also added support for non-javascript browsers, falling back to meta
refresh.

Also, the home page is now rendered with the webapp status on it, before
any refreshing is done.
2012-07-26 21:03:46 -04:00
Joey Hess
9fd03c65f9 webapp now does long polling
The webapp is now a constantly updating clock! I accomplished this amazing
feat using "long polling", with some jquery and a little custom java
script.

There are more modern techniques, but this one works everywhere.
2012-07-26 17:56:24 -04:00
Joey Hess
9d6b59d0e2 use the secret token for authentication, and add to all dynamic urls 2012-07-26 04:50:09 -04:00
Joey Hess
3ac2cf09e5 added a custom defaultLayout, static site, and favicon
Broke hamlet out into standalone files.

I don't like the favicon display; it should be served from /favicon.ico,
but I could only get the static site to serve /static/favicon.ico, so
I had to use a <link rel=icon> to pull it in. I looked at
Yesod.Default.Handlers.getFaviconR, but it doesn't seem to embed
the favicon into the binary?
2012-07-26 02:45:01 -04:00