Commit graph

94 commits

Author SHA1 Message Date
John "Elwin" Edwards
8ebcf32a4d rlgterm.js: improve registration failure messages.
Provide more user-friendly explanations when registration fails.
2012-07-11 07:37:56 -07:00
John "Elwin" Edwards
91a3111d29 RLG-Web client: replace setTitle() with message().
Remove the title line, and make setTitle() add a message instead.
Also remove setTitle() from termemu.js, because shterm.js duplicates
the code.
2012-07-10 18:39:36 -07:00
John "Elwin" Edwards
24879b8123 RLG-Web: improve game-starting messages.
Include the name of the player and game when watching or playing.
2012-07-10 16:32:49 -07:00
John "Elwin" Edwards
db242817fd RLG-Web client: distinguish playing and watching in UI.
Don't show the keyboard when watching games, and display appropriate
messages when playing or watching.
2012-07-10 13:53:38 -07:00
John "Elwin" Edwards
5af0160769 RLG-Web: add a new message framework.
Add a message() function meant for UI messages, not debugging info.
2012-07-10 08:08:54 -07:00
John "Elwin" Edwards
06614ac0aa RLG-Web: make /pstatus/* differentiate between dgl and RLG-Web games.
The /pstatus/ API now responds with "p" for games being played in
RLG-Web and "d" for games being played in dgamelaunch.
2012-07-09 12:51:12 -07:00
John "Elwin" Edwards
9c45f52722 RLG-Web: use the pty module.
Convert the RLG-Web server to use the pty.js module instead of the
ptyhelper binary.
2012-07-09 12:24:03 -07:00
John "Elwin" Edwards
b9a6a1e303 WebTTY: use the pty.js module.
Convert TermSessions to spawn with the pty.js module instead of piping
everything through ptyhelper.
2012-07-08 21:20:56 -07:00
John "Elwin" Edwards
286626df57 rlgwebd.js: Unlink control socket at startup.
Unlinking at shutdown doesn't work because at that time, the process is
chroot'ed and unprivileged.
2012-07-08 17:49:43 -07:00
John "Elwin" Edwards
d0ea0471c0 rlgwebd.js: set the width and height on Player objects.
Fixes the client not being informed of the pty size.
2012-07-08 08:40:08 -07:00
John "Elwin" Edwards
02b76e1faf rlgterm.js: fix debugging messages for registration. 2012-07-08 08:10:55 -07:00
John "Elwin" Edwards
35d07ca85d Add an information page.
Add about.html and create a link to it.
2012-07-08 08:07:09 -07:00
John "Elwin" Edwards
e3dd70ce08 Switch to node v0.8.
In node v0.8, path.exists() has been moved to the fs module.
2012-07-08 08:02:17 -07:00
John "Elwin" Edwards
cf3388a566 Added tag beta3 for changeset 3fd410c52a61 2012-06-23 19:45:25 -07:00
John "Elwin" Edwards
46c08a404b Call this beta3. 2012-06-23 19:45:06 -07:00
John "Elwin" Edwards
fcd1965cd0 Try to guess a good text size.
When starting, resize the fonts if there isn't room for the terminal,
or if there is a lot of empty space.
2012-06-23 19:13:34 -07:00
John "Elwin" Edwards
a48b02dc13 Make font resizing affect the keyboard too.
The keyboard font size now changes along with the terminal font size.
This allows the keyboard to work at page widths down at least to 600px.
2012-06-23 17:41:27 -07:00
John "Elwin" Edwards
2ab0de0799 Improvements to the keyboard.
Add a number pad to the keyboard.  Make it hidden by default for
RLG-Web.
2012-06-23 17:11:51 -07:00
John "Elwin" Edwards
9ddc3c685c Begin handling XMLHttpRequest errors.
Add an error handler to the various XMLHttpRequest objects.  Eventually
it will inform the user if the server is unreachable.
2012-06-21 23:44:51 -07:00
John "Elwin" Edwards
6baed7ccf1 Remove the refresh button.
Since the lists refresh automatically now, a button isn't needed.
2012-06-21 22:15:20 -07:00
John "Elwin" Edwards
2180af99a0 Automatically update the lists of current games and actions.
Add some window.*interval() code to getcurrent() so it will register
itself as an interval and clear this interval when the list is not
visible (i.e. playing or watching.)  It also calls getchoices() if the
user is logged in, so that will be updated as well.
2012-06-21 21:57:04 -07:00
John "Elwin" Edwards
db81f195cf Improve the layout of some buttons. 2012-06-21 16:05:59 -07:00
John "Elwin" Edwards
4478756d91 Set a default font. 2012-06-21 10:46:01 -07:00
John "Elwin" Edwards
e5a4a55876 Try to get some compatibility for keys.
I'd thought using the DOM_VK_ names was a good idea.  Symbolic names
ought to be more portable than opaque numeric constants.  Foolish me,
expecting things to be sane.
Keys now work with FF15 and Chrome 17.
2012-06-21 09:43:52 -07:00
John "Elwin" Edwards
a6ca511e4d Added tag beta2 for changeset 4728fc71bbda 2012-06-20 14:14:22 -07:00
John "Elwin" Edwards
f80abf9640 Indicate beta2. 2012-06-20 14:13:46 -07:00
John "Elwin" Edwards
b34eeb2de8 RLG-Web client: some visual improvements.
Hide the debugging messages by default.
2012-06-20 14:11:57 -07:00
John "Elwin" Edwards
2d9c8bd011 Display idle time of games in progress.
statusmsg() now includes games' idle times, and the client displays
them using getcurrent().
2012-06-20 11:37:05 -07:00
John "Elwin" Edwards
f750d9eb34 RLG-Web client: refresh the current games list.
Add a refresh button to the list of watchable games.  Also refresh it
if watching fails.
2012-06-20 09:12:26 -07:00
John "Elwin" Edwards
f711cdb591 Some status improvements.
Status messages now consistently use the game's uname, and the table
of choices puts the games in the right order.
2012-06-20 08:49:10 -07:00
John "Elwin" Edwards
4c27e44ef8 RLG-Web client: adjust polling for watching.
The ajaxterm state machine assumed data appears in response to user
actions, which is not true when watching.  It now uses different sets
of parameters for playing and watching.
2012-06-20 07:41:59 -07:00
John "Elwin" Edwards
674f570b63 rlgwebd.js: fix failure to respond.
The codepath for a watcher requesting to quit did not lead to any
response being sent.
2012-06-20 07:37:15 -07:00
John "Elwin" Edwards
0e31c3a3b7 RLG-Web client: initialize and restore the terminal when watching.
Since watchers might not get the curses initialization and ending
sequences, the terminal emulator needs to be set up for and restored
after watching.
2012-06-19 20:08:05 -07:00
John "Elwin" Edwards
5f914901d1 Make sure watchers start with completely drawn screens.
TermSessions now buffer all data since the last screen clear, so new
Watchers can start with complete screens.
2012-06-19 19:11:59 -07:00
John "Elwin" Edwards
67f187700c RLG-Web client: implement watching.
It is now possible to watch games currently being played through
RLG-Web, but not dgamelaunch.  Also, there are some deficiencies, like
getting chaos until an absolute cursor addressing happens.
2012-06-19 16:19:50 -07:00
John "Elwin" Edwards
553f07360c Move credentials into the drivers.
The session id, or whether the session is currently active on the
server, are better handled in the drivers than in termemu.js.
2012-06-19 13:40:30 -07:00
John "Elwin" Edwards
ceed48eee5 RLG-Web client: explain when there are no games to watch
If no games are available for watching, display a message saying so
instead of showing an empty table.
2012-06-18 16:53:44 -07:00
John "Elwin" Edwards
2bdd26b2f4 RLG-Web client: display a list of current games.
Incorporate information from /status to create a list of ongoing games.
Eventually these will be watchable.
2012-06-18 14:30:05 -07:00
John "Elwin" Edwards
1ffb72866a RLG-Web: make multiple watchers possible.
Split the TermSession class into the new TermSession, which handles the
PTY, and client classes, which handle HTTP sessions.  These are Player
and Watcher.  This allows multiple watchers per game, and other
improvements.
2012-06-18 13:43:51 -07:00
John "Elwin" Edwards
41b3389ec0 termemu.js: don't warn on certain control sequences.
Don't print a debug message for some control sequences that technically
are unimplemented, but would just put the terminal into the only mode
yet implemented.  CSI 4l and CSI ?7h are like this.
2012-06-15 16:23:57 -07:00
John "Elwin" Edwards
e57cafa5e0 Added tag beta1 for changeset ab82ae1ba793 2012-06-11 14:11:27 -07:00
John "Elwin" Edwards
76dd2ff70b RLG-Web: indicate beta status.
Due to the various improvements and testing, the project's status has
been promoted.
2012-06-11 14:09:54 -07:00
John "Elwin" Edwards
17159bf823 rlgterm.js: don't make nonfunctional button.
The "Game in progress" text shouldn't look like a button, because
clicking it doesn't do anything.
2012-06-11 14:04:35 -07:00
John "Elwin" Edwards
b24bf3b972 RLG-Web client: improve the forms.
Put the forms into CSS tables so they look nicer.  Also remove the
<form> elements so they won't be submitted as forms.
2012-06-11 12:00:44 -07:00
John "Elwin" Edwards
c7cb905b29 RLG-Web: delay removing TermSessions until the client is informed.
Add a TermSession.sendq flag that indicates whether a type q message
has been sent to the client.  Don't immediately destroy the TermSession
on child exit if the message hasn't been sent.

This is an ugly hack until the TermSession class is separated into an
EventEmitter to handle the PTY and a listening object that handles
communication with the client.  That will also allow other clients to
watch the game.
2012-06-11 09:15:33 -07:00
John "Elwin" Edwards
74ee771a72 RLG-Web client: visual improvements.
Switch some buttons to span.ibutton style.
2012-06-09 21:42:24 -07:00
John "Elwin" Edwards
20d72fc066 RLG-Web: make login sessions time out.
After enough inactivity, log the user out automatically.
2012-06-09 21:20:14 -07:00
John "Elwin" Edwards
aba0a4b7da rlgterm.js: make the options table functional.
Enable launching games from the options table, and replace the old
select dialog.
2012-06-09 17:00:25 -07:00
John "Elwin" Edwards
d3abfbcea9 RLG-Web: put the game options into a table.
Create a nice table of options when the player logs in.
2012-06-09 15:22:56 -07:00
John "Elwin" Edwards
2e35e55925 rlgterm.js: present game options to the player.
Use the new player-status interface to display the state of any ongoing
games when the player logs in.
2012-06-09 14:13:07 -07:00