Drew DeVault
64900fbe80
Implement togglable sidebars for narrow viewports
...
Closed: https://l.sr.ht/96AD.jpg
Open: https://l.sr.ht/gr_9.jpg
2021-05-27 19:00:11 +02:00
Drew DeVault
d612c91016
Implement optional opportunistic pings
2021-05-27 18:31:04 +02:00
Drew DeVault
a0c85c3372
Handle incoming MODE messages in appropriate buffer
2021-05-27 18:01:58 +02:00
Simon Ser
f36bba897e
Fix cross-network mixups when handling QUIT and NICK
...
Only mutate buffers if they belong to our connection.
2021-05-27 15:19:28 +02:00
Simon Ser
b2cdab86aa
Add case-mapping support for channel members
...
Make a buffer's members an irc.CaseMapMap.
2021-05-27 15:17:18 +02:00
Simon Ser
d880b23d32
Add hint to run /help in unknown command error message
2021-05-27 12:55:28 +02:00
Simon Ser
45c12fb684
Add nick URL param
...
Closes: https://todo.sr.ht/~emersion/gamja/40
2021-05-27 12:32:22 +02:00
Simon Ser
071c2626d5
Open error bubbles for IRC numeric errors
2021-05-27 11:34:23 +02:00
Simon Ser
b8c4bb3112
Improve command error reporting
...
state.error is expected to be a String, not an Error.
2021-05-27 11:26:42 +02:00
Drew DeVault
d34bff9ed6
Implement /kick and KICK handling in buffers
2021-05-27 10:58:57 +02:00
Simon Ser
08678ba57e
Always parse autojoin channels from URL params
...
Even if connection parameters were previously saved to local storage.
2021-05-27 10:36:03 +02:00
Simon Ser
ac5bbafdc3
Fix config.json relative path
...
The path should be relative to index.html, not the JS file.
2021-05-26 23:17:23 +02:00
Simon Ser
17cd38f0b9
Read auto-join channels from browser URL hash
...
This is easier to type than trying to escape the # in ?channels=#XXX.
2021-05-26 22:57:49 +02:00
Simon Ser
695b02caaa
Introduce store helper
...
Responsible for serializing/deserializing data to be saved in
localStorage. Add a prefix to all localStorage entries to avoid
conflicts with other webapps. Stop guarding against localStorage
not existing, browsers can just implement a dumb interface to
disable it.
2021-05-26 18:43:11 +02:00
Simon Ser
12a38ace90
Add support for IRCv3 setname
2021-05-25 20:22:21 +02:00
Simon Ser
92535fae24
Ignore BOUNCER NETWORK messages if we're already bound to a network
2021-05-25 17:11:06 +02:00
Simon Ser
1b21f5f076
Display bouncer network status
2021-05-25 17:01:57 +02:00
Simon Ser
6524dc5dd2
Add support for the soju.im/bouncer-networks-notify cap
2021-05-25 17:01:20 +02:00
Simon Ser
94fba920cd
Fix close() for bouncer networks
2021-05-25 17:01:18 +02:00
Simon Ser
11642e1ab4
Add UI to edit/delete a network
2021-05-25 16:59:59 +02:00
Simon Ser
f84334c31e
Add UI to add a new bouncer network
2021-05-25 16:59:57 +02:00
Simon Ser
b429243573
Add support for the soju.im/bouncer-networks extension
2021-05-25 16:58:50 +02:00
Simon Ser
982a945932
Fix TypeError in handleBufferScrollTop
...
Fixes the following:
TypeError: client is undefined
2021-05-25 14:28:48 +02:00
Simon Ser
ed92c3c61a
Clear local storage when clicking "Disconnect"
2021-05-25 12:57:40 +02:00
Simon Ser
07c10b3b1f
Only switch to autojoin channel once
2021-05-25 12:40:33 +02:00
Simon Ser
d261886199
Add support for config file
...
Closes: https://todo.sr.ht/~emersion/gamja/20
2021-05-25 12:33:22 +02:00
Simon Ser
f122e44e9b
Use ISUPPORT CHATHISTORY to discover max page size
2021-05-11 16:10:50 +02:00
Simon Ser
305ffb569c
Parse ISUPPORT tokens in client
2021-05-11 16:03:16 +02:00
Simon Ser
e242d5222e
Fix TypeError in App.render()
...
Fixes the following error:
Uncaught (in promise) TypeError: activeBuffer is undefined
2021-05-10 15:09:49 +02:00
Simon Ser
727331c859
Remove client from map on disconnect
2021-03-10 11:01:04 +01:00
Simon Ser
4991518ed5
Display error popup on FAIL
2021-03-09 21:48:04 +01:00
Simon Ser
97e75805fa
Add some space between error message and close button
2021-03-09 21:47:39 +01:00
Simon Ser
88c0e5ae94
Break long tag attributes on multiple lines
...
Makes that stuff more readable.
2021-03-09 18:11:59 +01:00
Simon Ser
4257463b46
Rename Connect/Join to ConnectForm/JoinForm
2021-03-09 13:25:31 +01:00
Simon Ser
c83a74cc50
Cleanup compareBuffers
2021-03-09 12:04:12 +01:00
Simon Ser
56e705b6de
Only switch buffer on connect if there's no active buffer
2021-03-09 09:38:55 +01:00
Simon Ser
bf30038b41
Fix whitespace issues
2021-03-09 09:17:01 +01:00
Simon Ser
7139e4511b
Remove unused DEFAULT_NETWORK constant
2021-03-08 17:34:00 +01:00
Simon Ser
78f22fce4e
Add help section for commands
2021-03-08 17:25:00 +01:00
Simon Ser
17a2d48b2e
Add help dialog with keybindings reference
2021-03-08 17:05:48 +01:00
Simon Ser
30157383e8
Add dialog for join form
2021-03-08 16:23:16 +01:00
Simon Ser
996d7d06d4
Extract error message popup
2021-03-08 15:05:43 +01:00
Simon Ser
194168c062
Display server messages in server buffer
...
References: https://todo.sr.ht/~emersion/gamja/21
2021-03-08 14:27:05 +01:00
Simon Ser
3ece5f1ca5
Fix buffer not removed in close()
2021-03-03 09:59:40 +01:00
Simon Ser
72977b30b4
Log errors to console on command failure
2021-03-03 09:56:23 +01:00
Simon Ser
80e0175d36
Make all resource paths relative
...
Closes: https://todo.sr.ht/~emersion/gamja/17
2021-03-02 22:46:48 +01:00
Simon Ser
525df515bc
Fix messages in current buffer not marked as read
2021-03-02 21:29:13 +01:00
Simon Ser
a83d3f7425
Improve scroll position save/restore mechanism
2021-03-02 20:48:49 +01:00
Simon Ser
6c40561f61
Move join button to buffer header
2021-03-02 16:14:55 +01:00
Simon Ser
4d540d55ac
Fix undefined CHATHISTORY_PAGE_SIZE
2021-01-23 12:19:40 +01:00
Simon Ser
bfc0960200
Use buffer ID in BufferItem.onBufferClick
2021-01-22 21:43:58 +01:00
Simon Ser
0e078932c0
Harmonise client connection params
2021-01-22 21:00:39 +01:00
Simon Ser
430373dd13
Move chat history operations into Client
2021-01-22 18:51:38 +01:00
Simon Ser
4e1f06b960
Move auto-reconnect logic into Client
2021-01-22 18:44:06 +01:00
Simon Ser
41cd2153cf
Keep track of client status in Client
2021-01-22 18:29:22 +01:00
Simon Ser
2f70256037
Multiple clients per app
2021-01-22 17:36:53 +01:00
Simon Ser
95daea0ef7
Use buffer IDs in endOfHistory
2021-01-22 15:49:22 +01:00
Simon Ser
df2b46175a
Fix composer not hidden in server buffer
2021-01-22 12:05:45 +01:00
Simon Ser
e6592d7d8b
Print current connection status
2021-01-22 11:53:17 +01:00
Simon Ser
51523f4014
Extract network name from ISUPPORT
2021-01-22 11:43:47 +01:00
Simon Ser
b3f8b0c97d
Add support for RPL_ISUPPORT
2021-01-22 11:34:04 +01:00
Simon Ser
4acacc1f22
Nuke DEFAULT_NETWORK
2021-01-22 10:49:08 +01:00
Simon Ser
6cb2dd59de
Remove network from map when closing
2021-01-22 10:41:28 +01:00
Simon Ser
3975467764
Drop state.activeNetwork
...
Just grab it from state.activeBuffer's network.
2021-01-22 10:38:07 +01:00
Simon Ser
d2ff88d946
Sort buffers by network
2021-01-22 10:37:58 +01:00
Simon Ser
002b91a599
Take buffer ID in close
2021-01-22 10:26:53 +01:00
Simon Ser
ffed801b0e
Take a buffer ID in switchBuffer
2021-01-21 22:15:33 +01:00
Simon Ser
dd35f1df95
Take a buffer ID in getBuffer
2021-01-21 22:02:53 +01:00
Simon Ser
50ea6e121e
Introduce buffer IDs
2021-01-21 20:41:44 +01:00
Simon Ser
abc2fbcfb1
Add network to buffer state
2021-01-21 19:27:04 +01:00
Simon Ser
5a1e6ba813
Introduce state.networks
2021-01-21 19:01:50 +01:00
Simon Ser
f35f316577
Add disconnect/reconnect commands
2021-01-12 10:35:38 +01:00
Simon Ser
4b165054a4
Reconnect when loosing connection
2021-01-11 18:12:28 +01:00
Simon Ser
57ca2c44ad
Add unread message separator
...
Closes: https://todo.sr.ht/~emersion/gamja/4
2020-09-03 11:51:52 +02:00
Simon Ser
0b03f9d767
Ignore RPL_TOPICWHOTIME
...
We don't need this piece of information yet, and we don't want to
clutter the server buffer with channel messages.
2020-09-03 11:36:08 +02:00
Simon Ser
bce216b7fb
Parse all CTCP messages
...
We display them nicely, however we never reply to them.
2020-08-13 16:04:39 +02:00
Simon Ser
028382aab3
Strip ANSI sequences from notifications text
2020-08-13 15:38:12 +02:00
Simon Ser
8fa91f7c4a
Don't send CHATHISTORY command if server doesn't support it
2020-08-13 12:18:52 +02:00
Simon Ser
9cc44fbe98
Display messages with a highlight differently
2020-08-13 12:02:05 +02:00
Simon Ser
917b348992
lib/irc: make isHighlight operate on messages
...
Makes it easier to re-use elsewhere.
2020-08-13 11:44:41 +02:00
Simon Ser
c6c3c66fc4
Clear error when submitting connect form
2020-08-10 14:57:54 +02:00
bbworld1
16582a6592
Add error reporting on connect and main page
2020-08-08 10:34:45 +02:00
Simon Ser
b37dfb77fe
Fix inverted channel list sorting
2020-08-04 13:47:27 +02:00
Simon Ser
0157dd4cc6
Handle RPL_NOTOPIC
2020-08-03 18:59:54 +02:00
Simon Ser
6c93bd13d1
Sort buffers when inserting, not when rendering
...
This allows all state.buffers users to iterate over the list in the
correct order.
2020-08-03 15:43:20 +02:00
Simon Ser
ee8b40aae4
Fix wrong variable name App.close
2020-08-03 15:29:21 +02:00
Simon Ser
2951c7810f
Add keybinding infrastructure
2020-07-23 10:06:12 +02:00
Simon Ser
36df984b09
Fetch all unread messages on reconnect
2020-07-15 18:21:09 +02:00
Simon Ser
a44ee8d170
Avoid sending multiple CHATHISTORY commands in parallel
2020-07-13 17:40:52 +02:00
Simon Ser
897e0977e2
Autocomplete commands
2020-07-13 17:28:49 +02:00
Simon Ser
476c135379
Extract commands to separate file
2020-07-13 17:22:24 +02:00
Simon Ser
343455091c
Show offline user status
...
When the WHO reply is empty, it means user isn't connected to IRC.
2020-07-13 12:55:39 +02:00
Simon Ser
c9b07efc9c
Implement chathistory support
2020-07-10 14:37:38 +02:00
Simon Ser
5cb38a9830
Implement /topic command
2020-07-09 17:36:28 +02:00
Simon Ser
44b1f28cb6
Handle QUIT messages
2020-07-08 18:39:24 +02:00
Simon Ser
c309d3cff6
Allow paths in server URL query param
2020-07-01 12:25:57 +02:00
Simon Ser
db13f34a40
Reply to PING
2020-07-01 12:12:56 +02:00
Simon Ser
2eb1ed3dd2
Fix RPL_NAMREPLY handling with multiple nicks
2020-06-30 10:27:24 +02:00
Simon Ser
20be67503b
Add basic autocompletion
2020-06-29 12:36:17 +02:00
Simon Ser
2f284f183a
Open notification on new highlight
2020-06-29 11:50:42 +02:00