Simon Ser
c47af780f6
Restore user query buffer unread status
2021-08-23 12:25:43 +02:00
Simon Ser
016ca27f2d
Restore opened user query buffers
...
Closes: https://todo.sr.ht/~emersion/gamja/93
2021-08-23 12:02:36 +02:00
Simon Ser
4dd1fac002
Hide buffer focus outline
2021-08-18 08:55:23 +02:00
Simon Ser
2fb4393f24
store: remove dead code
2021-07-30 18:01:42 +02:00
Simon Ser
d18cbbafb0
composer: focus on paste
2021-07-21 19:48:09 +02:00
Simon Ser
c98ad539d5
Add message arg to /query
...
Closes: https://todo.sr.ht/~emersion/gamja/94
2021-07-21 15:21:58 +02:00
Simon Ser
51883292f9
lib/client: fix caps with equal sign in value
...
CAP=a=b wouldn't parse correctly.
2021-07-04 22:26:31 +02:00
Simon Ser
5b53fb6fe9
connect-form: improve HTML indentation
2021-07-04 21:51:42 +02:00
Simon Ser
a1d79cda4b
Drop ConnectForm key
2021-07-04 21:43:47 +02:00
Simon Ser
52ddda4e82
Unify dialog data in App.state
2021-07-04 21:41:36 +02:00
Simon Ser
af1e2e144a
Hide everything while loading config.json
2021-07-04 21:29:15 +02:00
Simon Ser
dee9e06b2f
connect-form: focus nickname input
2021-07-04 21:28:45 +02:00
Simon Ser
7b11b10955
Add /whowas command
2021-07-03 19:24:20 +02:00
Simon Ser
00eebc9859
composer: cycle through auto-completions
...
Closes: https://todo.sr.ht/~emersion/gamja/42
2021-06-30 22:20:40 +02:00
Simon Ser
08aefc9dc5
composer: add smart suffix after auto-completion
...
Append a space after a command name, so that arguments can be typed
directly. Append a colon after a nickname.
2021-06-30 21:56:45 +02:00
Simon Ser
856dd021e2
composer: auto-complete word at carret position
2021-06-30 21:50:55 +02:00
Simon Ser
b289fd10b7
Always mark own messages as read
2021-06-24 18:04:26 +02:00
Simon Ser
429450e060
Handle RPL_INVITING
2021-06-24 18:01:24 +02:00
Simon Ser
0fa6381c07
Preserve white space sequences in log lines
...
This allows e.g. the MOTD to have properly-formatted ASCII art.
2021-06-24 10:41:48 +02:00
Simon Ser
bc05fd5c11
Treat server broadcasts as highlights
2021-06-23 19:52:45 +02:00
Simon Ser
095006e961
Don't focus composer on key press if modifier is also pressed
2021-06-22 17:25:24 +02:00
Simon Ser
0d36e8a3fc
Turn dialog close button into a <button>
...
This is semantically more correct.
2021-06-22 16:02:55 +02:00
Simon Ser
1ea3180f5b
Use semantically more correct elements for error bubble
2021-06-22 15:48:42 +02:00
Simon Ser
724d7318cf
Focus buffer scrollview instead of composer
...
Instead of focusing the composer, focus the buffer scrollview when
switching to a buffer. This allows keyboard navigation to work as
expected, with arrow up/down and page up/down scrolling the buffer
instead of doing nothing.
Focus back the composer when a KeyboardEvent produces text. This
allows users to start typing a message right after switching to a
buffer.
Closes: https://todo.sr.ht/~emersion/gamja/64
2021-06-22 14:47:39 +02:00
Simon Ser
dc8f95c74d
Improve composer form indentation
2021-06-22 13:38:05 +02:00
Simon Ser
7d15525c7d
Allow resetting nick and auto-join with query params
2021-06-22 10:44:20 +02:00
Simon Ser
ca8649c506
Add web app manifest
...
We'll need this to register protocol handlers.
2021-06-22 10:42:16 +02:00
Simon Ser
c187eac3c8
lib/client: reject Client.roundtrip promise on disconnect
2021-06-21 00:18:17 +02:00
Simon Ser
f8060c9be2
Allow resetting server URL with query param
2021-06-20 13:00:40 +02:00
Simon Ser
2203553519
Use cursor pointer for buttons
...
I'm usually not a fan of changing the default browser styles for
things like the cursor image, but here it actually improves
accessibility: it's clearer for the user what can be clicked on.
Closes: https://todo.sr.ht/~emersion/gamja/81
2021-06-11 14:46:45 +02:00
Simon Ser
f875426826
Add /unvoice
2021-06-11 13:02:04 +02:00
Simon Ser
0b3f5ef88b
Add irc.forEachChannelModeUpdate helper
2021-06-11 12:54:42 +02:00
Simon Ser
37cff435a3
Move MODE state updates outof App
2021-06-11 12:44:14 +02:00
Simon Ser
ef50e62498
Add STATUSMSG indicator
...
Closes: https://todo.sr.ht/~emersion/gamja/65
2021-06-11 11:18:29 +02:00
Simon Ser
d19f127952
Move message key generation to State.addMessage
2021-06-11 10:58:09 +02:00
Simon Ser
c05dcffa7a
readme: s/bare-bones/simple/
...
We used to be bare-bones, we're a little bit more than that now.
2021-06-11 10:19:46 +02:00
Simon Ser
02ba4be438
Don't try to reconnect if the network is down
2021-06-11 09:36:11 +02:00
Simon Ser
56c18e3810
Make "Remove network" button red
2021-06-11 00:33:22 +02:00
Simon Ser
4249da4ba8
Add /quiet and /unquiet
2021-06-11 00:27:19 +02:00
Simon Ser
5507b3253b
Mark server buffer as unread after server query command
...
When a command will print its reply in the server buffer, mark it
as unread to make it more obvious where to look.
Closes: https://todo.sr.ht/~emersion/gamja/53
2021-06-10 19:33:59 +02:00
Simon Ser
61e35dd68a
Bump direct message unread priority
2021-06-10 18:57:57 +02:00
Simon Ser
e56deb35c9
Ensure config has a server object
...
Simplifies code accessing the config.
2021-06-10 18:34:34 +02:00
Simon Ser
093eecff91
readme: make it clear server.url can be a path in config.json
2021-06-10 18:28:44 +02:00
Simon Ser
77030931cb
Reset config.server.auth when using custom server URL
2021-06-10 18:28:01 +02:00
Simon Ser
4df9328be8
Move auto-join field out of advanced options if pre-filled
...
Closes: https://todo.sr.ht/~emersion/gamja/82
2021-06-10 18:21:18 +02:00
Simon Ser
8972130252
s/var/let/
2021-06-10 18:11:11 +02:00
Simon Ser
4db845a4b1
Show again connect form when last server is closed
2021-06-10 18:06:45 +02:00
Simon Ser
6039e13411
Add notification tags
...
This makes it so multiple messages from the same user will only
produce a single notification.
2021-06-10 17:11:21 +02:00
Simon Ser
63773f99ee
Add Notification workaround for Chrome on Android
...
Closes: https://todo.sr.ht/~emersion/gamja/78
2021-06-10 17:08:24 +02:00
Simon Ser
a952742d86
Make Client.roundtripChatHistory return an array of messages
2021-06-10 12:47:28 +02:00
Simon Ser
5b0bb43a24
Make Client.fetchBatch more reliable
2021-06-10 12:43:09 +02:00
Simon Ser
ba92b3f677
lib/client: fix batch cleanup
2021-06-10 12:10:08 +02:00
Simon Ser
20f20b18df
Linkify MOTD
2021-06-10 12:09:07 +02:00
Simon Ser
02800dd21b
Don't open a new buffer on NOTICE
2021-06-10 12:07:17 +02:00
Simon Ser
dd8eca1cfe
Switch to server buffer on server name click
...
Closes: https://todo.sr.ht/~emersion/gamja/68
2021-06-10 12:03:50 +02:00
Simon Ser
d2e41666ad
lib/client: set a default server prefix
...
Set the default server prefix to "*". This allows the rest of the
code to assume all messages always have a prefix.
2021-06-10 11:53:53 +02:00
Simon Ser
e28769216a
Remove callback arg from App.createBuffer
2021-06-10 10:56:18 +02:00
Simon Ser
bf76eaa669
Add State.createServer
2021-06-10 10:54:33 +02:00
Simon Ser
5fcbfa446c
Use server buffer if name is unspecified in State.getBuffer
2021-06-10 09:25:17 +02:00
Simon Ser
41354d3035
lib/client: gracefully handle null in isMyNick/isChannel
2021-06-10 08:51:59 +02:00
Simon Ser
0705f4b182
lib/client: always populate prefix for incoming messages
2021-06-10 08:49:17 +02:00
Simon Ser
52ca3bb91c
lib/linkify: add comma to punctuation in channel regex
2021-06-09 16:28:07 +02:00
Simon Ser
0c0f0ab79e
Fix /me failing in user query buffers
...
This is a regression.
2021-06-09 10:17:32 +02:00
Simon Ser
2546d31af0
Blur the composer when hiding it
...
This should make toggling the composer in a server buffer more
reliable.
2021-06-07 15:18:15 +02:00
Simon Ser
a9c1abb064
Route channel mode and invite/except list to channel buffer
2021-06-07 14:13:00 +02:00
Simon Ser
dd753aab2e
Add support for /mode without arguments
2021-06-07 14:12:49 +02:00
Simon Ser
5b7ab2652b
Improve buffer header layout on mobile
...
Put buffer title above buffer description.
2021-06-06 17:27:05 +02:00
Simon Ser
a419e660c0
Don't match punctuation suffix when linkifying channels
2021-06-06 16:00:37 +02:00
Simon Ser
403d7ec7f7
Add case-mapping support to irc.isHighlight
...
Closes: https://todo.sr.ht/~emersion/gamja/77
2021-06-06 15:52:58 +02:00
Simon Ser
b9dc17db97
Disallow selecting text in <summary role="button">
...
This supersedes the cursor rule.
2021-06-06 12:08:21 +02:00
Simon Ser
6b75985f96
Make <summary> easier to click on Firefox Mobile
...
Add role=button to mark the element as a touch target.
Closes: https://todo.sr.ht/~emersion/gamja/80
2021-06-06 12:05:57 +02:00
Simon Ser
41c113be9a
Show connect form during connection
...
This improves UX when the connection parameters (server URL,
username, password, and so on) are incorrect.
2021-06-06 11:33:00 +02:00
Simon Ser
48ae55942f
Make @media queries whitespace consistent
2021-06-06 10:53:06 +02:00
Simon Ser
efabd69476
Increase buffer/member list item height on mobile
...
Closes: https://todo.sr.ht/~emersion/gamja/62
2021-06-06 10:46:41 +02:00
Simon Ser
0dfb7623db
Add support for labeled-response
...
It's just used to avoid mixing up messages coming from the server
so far.
2021-06-04 20:38:01 +02:00
Simon Ser
34078d5da7
Add support for draft/event-playback
2021-06-04 19:45:51 +02:00
Simon Ser
651e255ddb
Use ISUPPORT CHANTYPES in Client.isChannel
2021-06-04 19:17:39 +02:00
Simon Ser
db7aa337cb
Remove App.isChannel
...
Replace all remaining usage with Client.isChannel. Client will be
able to use the ISUPPORT tokens to check if a name is a channel.
2021-06-04 19:13:59 +02:00
Simon Ser
87588abf27
Add State.addMessage
2021-06-04 19:07:14 +02:00
Simon Ser
04362644bf
Handle TOPIC in State.handleMessage
2021-06-04 18:57:02 +02:00
Simon Ser
30a345298f
Handle JOIN/PART in State.handleMessage
2021-06-04 18:53:06 +02:00
Simon Ser
2af58f8d0b
Move createBuffer to State
2021-06-04 18:37:34 +02:00
Simon Ser
2c1bb4ce6a
Introduce State.handleMessage
...
Takes an IRC message, updates the state.
Doesn't yet handle all messages, this will be a step-by-step process.
2021-06-04 18:27:21 +02:00
Simon Ser
4d988cafeb
Move some state utilities to state.js
2021-06-04 18:03:03 +02:00
Simon Ser
791b742684
Allow config.server.ping to be a String
...
Workaround for existing config files in the wild.
2021-06-04 17:50:49 +02:00
Simon Ser
6e20ad872e
Add support for STATUSMSG
...
Closes: https://todo.sr.ht/~emersion/gamja/65
2021-06-03 13:31:43 +02:00
Simon Ser
3b5b693403
Use bufName in addMessage, fix missing Client.isMyNick()
2021-06-03 13:29:32 +02:00
Simon Ser
283f8af4b1
lib/irc: rename IRC prefix utilities
2021-06-03 13:18:28 +02:00
Simon Ser
04c9f0211a
Fix undefined server variable in BufferHeader
2021-06-03 13:10:44 +02:00
Simon Ser
fe9c483570
s/network/server/
...
Closes: https://todo.sr.ht/~emersion/gamja/46
2021-06-03 11:46:50 +02:00
Simon Ser
63a71e5f5d
Add support for incoming INVITE messages
2021-06-03 11:04:32 +02:00
Simon Ser
55882776b0
Make command descriptions more consistent
2021-06-03 10:28:04 +02:00
Simon Ser
291c9e177d
Add /unban
2021-06-03 10:25:33 +02:00
Simon Ser
a2dc045683
Add getActiveChannel
...
Simplifies the command logic
2021-06-03 10:19:09 +02:00
Simon Ser
9067b5a168
Make getActiveClient throw an error if disconnected
2021-06-03 10:19:09 +02:00
Simon Ser
a4294975a2
Add support for /ban without argument
2021-06-03 10:19:09 +02:00
Simon Ser
5004f6c89c
components/help: document that / allows to start writing a command
2021-06-02 22:53:28 +02:00
Simon Ser
91208a6d47
Add support for CHATHISTORY TARGETS
...
The main motivation is to avoid missing direct messages coming from
other users.
A nice side-effect is that we no longer need to issue CHATHISTORY
queries for each channel we JOIN: instead, we can only fetch
history for targets known to have new messages available (as indicated
by CHATHISTORY TARGETS).
We use read receipts instead of delivery receipts, so that reloading
the webapp restores the exact same state (ie, unread messages are
re-fetched).
References: https://github.com/ircv3/ircv3-specifications/pull/450
2021-06-02 20:37:20 +02:00
Simon Ser
74d9dea5bb
Use RegExp match indices in linkifyChannel
2021-06-01 09:53:11 +02:00
Simon Ser
9affdb894f
Make Alt+ArrowUp and Alt+ArrowDown wrap around
2021-05-31 19:21:54 +02:00