Commit graph

757 commits

Author SHA1 Message Date
realies
bb1e3ee917 Focus a channel by joining it, refactor user commands #1189 2017-09-02 19:28:36 +03:00
Pavel Djundik
94d40256d9 Always create condensed wrapper 2017-09-02 18:31:47 +03:00
Pavel Djundik
e2db8b23a4
Add IntersectionObserver polyfill 2017-09-01 19:38:15 -04:00
Pavel Djundik
838eca8fe5
Fix scrolling issue 2017-09-01 19:33:55 -04:00
Pavel Djundik
629592d641
Implement infinite scroll using IntersectionObserver 2017-09-01 19:33:54 -04:00
Pavel Djundik
72a534f42b
Correctly calculate scroll when loading more history 2017-09-01 19:33:54 -04:00
Jérémie Astori
220af0e180 Merge pull request #1449 from dgw/cycle-command
Add /cycle command (a.k.a. /rejoin)
2017-08-31 23:45:54 -04:00
dgw
bed6053cec Add /cycle command (a.k.a. /rejoin)
Closes #1436
2017-08-31 06:43:32 -05:00
Pavel Djundik
d814abd1cf Implement condensed messages option entirely with CSS
Fixes #1432
2017-08-30 15:43:31 +03:00
Pavel Djundik
53ebee195c Escape channel names in slugify helper correctly
Fixes #1172.
2017-08-29 12:38:29 +03:00
Pavel Djundik
99400421ef Completely refactor how date markers are inserted 2017-08-27 11:38:23 +03:00
Al McKinlay
099d9219fd Merge pull request #1457 from thelounge/xpaw/requestIdleCallback
Process chat messages in requestIdleCallback if available
2017-08-26 20:57:15 +01:00
Al McKinlay
19f3cbd10e Merge pull request #1453 from thelounge/xpaw/tabcomplete-module
Move all auto completion code to a separate file
2017-08-26 19:33:56 +01:00
Pavel Djundik
c55c338c72 Merge pull request #1446 from thelounge/parse-emoji
Parse emoji to make them bigger
2017-08-26 20:34:40 +03:00
PolarizedIons
e00b28d201 Fix general spelling errors 2017-08-25 18:02:28 +02:00
Pavel Djundik
f56c748015 Process chat messages in equestIdleCallback if available 2017-08-25 15:30:47 +03:00
Pavel Djundik
1e2d35f206 Move all auto completion code to a separate file 2017-08-24 17:44:40 +03:00
Mac Carrithers
f8663ed28b Parse emoji to make them bigger 2017-08-24 11:54:28 +03:00
Yash Srivastav
0e332ec19d
Merge redundant functions into one 2017-08-24 05:48:22 +05:30
Yash Srivastav
fa021da7cf
Add fuzzy searching for autocompleting colors 2017-08-24 05:38:21 +05:30
Yash Srivastav
1c8aa7a88f
Extend fuzzy search in autocomplete to all strategies
Fixes #1086
Just building upon the work already done in #1334
2017-08-24 05:38:16 +05:30
Pavel Djundik
1bf2be1b51 Do not unintentionally send incorrect messages from history 2017-08-23 14:17:53 +03:00
Pavel Djundik
fcd9782eb7 Merge pull request #1124 from thelounge/xpaw/push-notifications
Implement push notifications
2017-08-22 23:16:41 +03:00
Jérémie Astori
3b79a3df90 Merge pull request #1358 from starquake/highlight-wordboundary
Take into account wordboundaries for custom highlighting
2017-08-22 09:35:55 -04:00
Max Leiter
64ea29f46d Only match emoji autocomplete after two characters 2017-08-22 11:04:38 +03:00
Pavel Djundik
0ac3ba28e1 Web Push Notifications 2017-08-22 10:54:18 +03:00
Pavel Djundik
0c0d45ff4f Cleanup condensed appendMessage 2017-08-19 21:47:23 +03:00
Jan Visser
43cc2792c9 Take into account wordboundaries for custom highlighting 2017-08-18 14:26:41 +02:00
Alistair McKinlay
bc2a37913f Fix issue with falsey user options getting overridden by truthy defaults 2017-08-16 09:01:09 +01:00
Pavel Djundik
e4ee3fbb3c Do not throw an exception when URI parsing fails 2017-08-14 15:25:34 +03:00
Pavel Djundik
28e32dc558 Merge pull request #759 from thelounge/yamanickill/condense-joins
Initial part/join condensing
2017-08-14 11:18:51 +03:00
Jérémie Astori
43a8604b32
Add some human-friendliness to the condensed status messages 2017-08-13 16:16:48 -04:00
Jérémie Astori
853e646670
Move condense caret to the right, animate transition, add hover state (with transition), reuse thumbnail toggle style 2017-08-13 16:16:38 -04:00
Jérémie Astori
b508783101
Improve UI of expanded/condensed status message selection in client settings 2017-08-13 16:14:38 -04:00
Pavel Djundik
3190fd00bf Refactor authentication flow 2017-08-13 21:37:12 +03:00
Alistair McKinlay
499dfdfe92
Condense Joins 2017-08-13 14:30:30 -04:00
Pavel Djundik
e5ce2f2688 Remove 10 second interval to trim buffer
Fixes #96
2017-08-13 12:23:51 +03:00
Pavel Djundik
6b00cdeba9 Change history button text while loading 2017-08-09 14:18:37 +03:00
Pavel Djundik
c14f7da1b2 Generate unique tokens for each login and session 2017-07-31 02:02:15 +03:00
Jérémie Astori
157289258a
Keep track of preview visibility on the server so it persists at page reload 2017-07-26 18:16:50 -04:00
Pavel Djundik
45a2d074fb Remove focus from input when opening image viewer
Fixes #1342
2017-07-25 18:07:14 +03:00
Jérémie Astori
8259b0924b Merge pull request #1367 from thelounge/astorije/fix-viewer-cycle
Fix image viewer cycling when some previews are hidden
2017-07-24 19:21:49 -04:00
Jérémie Astori
5b60bb0b0c
Remove background blur filter/transition when opening the image viewer 2017-07-24 02:31:12 -04:00
Jérémie Astori
60b531a174
Fix image viewer cycling when some previews are hidden 2017-07-24 02:14:14 -04:00
Jérémie Astori
b9f17b77ab
Add Previous/Next cycling buttons to the image viewer 2017-07-23 13:14:27 -04:00
Pavel Djundik
30f40ee448 Fix remaining issues with link previews
Fixes #1357
2017-07-21 19:39:06 +03:00
Pavel Djundik
ed9bfcf2fa Merge pull request #1194 from thelounge/xpaw/lazy-user-list
Lazily load user list in channels on init, keep autocompletion sort on server
2017-07-21 17:25:23 +03:00
Pavel Djundik
d06c279f02 Lazily load user list 2017-07-21 11:05:36 +03:00
Pavel Djundik
7af573fd96 Handle auto completion order on the server
Fixes #289.
2017-07-21 11:05:21 +03:00
Jérémie Astori
900d41bf47
Re-use .previews to order incoming previews instead of extra links 2017-07-21 01:51:51 -04:00
Jérémie Astori
1c8ea0b75c
Fix preserved whitespace-related issues for previews by separating them from main text 2017-07-21 01:50:09 -04:00
Jérémie Astori
a13c08a45b
Enforce correct order for previews on server-side prefectch rather than at client parsing
This has the benefit of not adding `.preview` divs everywhere, anytime we use `parse()`, and also to un-tie the position of the preview blocks from the result of the helper. This means that templates that call `parse` and have some extra markup after that are not constrained anymore.

This is effectively an alternative, better way to fix https://github.com/thelounge/lounge/issues/1343, but the initial fix that was put in place (https://github.com/thelounge/lounge/pull/1347) is still relevant, for example to make sure a preview stays hidden (and does not add extra margin/padding/etc.) if the link does not prefetch.
2017-07-21 01:06:42 -04:00
Jérémie Astori
4e7eed7958 Merge pull request #1334 from MaxLeiter/MaxLeiter/emoji
Emoji fuzzysearching
2017-07-20 01:20:57 -04:00
Max Leiter
4a56870c08 Emoji fuzzysearching 2017-07-19 11:33:16 -07:00
Alistair McKinlay
e01e21cdbe Change more to use id rather than count. 2017-07-19 07:37:13 +01:00
Jérémie Astori
5fb34ce93f
Fix previews in actions ("/me") after page reload 2017-07-18 01:27:18 -04:00
Jérémie Astori
511b173b6f
Add an image viewer for thumbnails and image previews 2017-07-16 19:25:48 -04:00
Pavel Djundik
199bc459b4 Merge pull request #1303 from thelounge/astorije/multiple-previews
Support multiple previews per message
2017-07-09 18:29:31 +03:00
Al McKinlay
2d853f20aa Merge pull request #1309 from thelounge/astorije/collapse-previews
Add collapse/expand commands to toggle all previews
2017-07-09 15:20:48 +01:00
Jérémie Astori
28200830ed
Move preview toggle buttons next to their respective URLs and switch from ellipsis to caret 2017-07-08 04:36:26 -04:00
Jérémie Astori
64ebe0f437
Support multiple previews per message
- Load up to 5 previews per message (to avoid abuse)
- Do not load multiple times the same URL
- Prepare preview containers per message instead of appending (to maintain correct order)
- Store an array of previews instead of a single preview in `Msg` objects
- Consolidate preview rendering for new messages and upon refresh/load history (when rendering entire channels)
- Update `parse` tests to reflect previous point
- Add test for multiple URLs
- Switch preview tests from `assert` API to `expect` API
2017-07-08 04:34:12 -04:00
Jérémie Astori
b1fa78665c Merge pull request #1294 from awalgarg/autocomplete-optout
Allow opting out of autocomplete
2017-07-08 03:46:35 -04:00
Jérémie Astori
e08f18f447
Add collapse/expand commands to toggle all previews 2017-07-07 00:18:37 -04:00
Pavel Djundik
818a21b52e Fix jumps when toggling link preview 2017-07-04 20:51:22 +03:00
Awal Garg
8c8d683348 Allow opting out of autocomplete 2017-07-03 22:37:38 +05:30
Pavel Djundik
14b2ad7938 Refactor link previews 2017-07-03 00:41:18 +03:00
Jérémie Astori
0b85582744 Merge pull request #1175 from thelounge/yamanickill/socket-modules
Add modules for socket events
2017-06-20 23:42:52 -04:00
Pavel Djundik
28528dc865 Correctly finish scroll animation when using page keys
Fixes #1022.
2017-06-20 13:22:58 +03:00
Pavel Djundik
2091a5b41b Merge pull request #1120 from thelounge/xpaw/scroll-perf
Include trickery to reduce paints and improve performance
2017-06-20 13:18:06 +03:00
Alistair McKinlay
f90c355c8e Add modules for socket events 2017-06-20 07:22:58 +01:00
Pavel Djundik
32a73d49f1 Merge pull request #1016 from swordbeta/unread_marker_hidden_joins
Unread marker takes hidden messages into account.
2017-06-20 08:15:31 +03:00
Pavel Djundik
f6dd616d5e Update to eslint 4 and enforce extra rules 2017-06-19 09:58:29 +03:00
Jérémie Astori
1a6f2fc387 Merge pull request #1150 from bews/bews/dev-9-reload
Add "reload page" button when Lounge fails to start.
2017-06-10 13:25:37 -04:00
Niko Bews
cba87582a5 Add "reload page" button when Lounge fails to start. 2017-06-10 20:15:32 +03:00
Pavel Djundik
53ffcb5960 Merge pull request #1141 from bews/bews/dev-6-seconds
Show seconds in timestamp
2017-06-10 16:15:03 +03:00
Niko Bews
fd983a7f6b Show seconds in timestamp 2017-06-10 14:53:15 +03:00
Pavel Djundik
7ec0dcfec8
Mark touch events as passive 2017-06-09 23:20:00 -04:00
Pavel Djundik
93bc406c2e Consider click also a read activity 2017-06-09 14:10:55 +03:00
Pavel Djundik
ca54c40d0f Merge pull request #1197 from thelounge/xpaw/socketio-transports
Correctly configure client socket transports
2017-06-08 20:19:49 +03:00
Jérémie Astori
c88a0875b6 Merge pull request #1205 from thelounge/xpaw/no-hardcoded-title
Keep original <title> name when changing the title
2017-06-08 09:10:11 -04:00
Jérémie Astori
5a5bf823a0 Merge pull request #1195 from thelounge/xpaw/consistent-user-object
Do not store unnecessary information in user objects
2017-06-08 02:46:25 -04:00
Pavel Djundik
571818d4c2 Keep original <title> name when changing the title 2017-06-05 14:40:25 +03:00
Pavel Djundik
22c00aca95 Do not store passwords in settings storage 2017-06-03 21:41:21 +03:00
Pavel Djundik
16fb118d02 Correctly configure client transports
Fixes #848
2017-06-01 22:43:23 +03:00
Pavel Djundik
acf5dd5351 Do not store unnecessary information in user objects 2017-06-01 21:54:46 +03:00
swordbeta
24419cb8e8 Assign last visible div to var. 2017-05-17 13:19:18 +02:00
Al McKinlay
07e4f4d1a4 Merge pull request #1157 from thelounge/astorije/motd-default
Display MOTD by default on client
2017-05-10 10:14:22 +01:00
Jérémie Astori
895fcc4066 Display MOTD by default on client 2017-05-09 18:18:32 -04:00
PolarizedIons
54a9637ed4 Fix fixing the date-marker not being removed when it should be.
Accidentally copy-pasted more than I should have when I moved the scrollable height calculation code, and I caused the older
messages to be added before doing checks for the date-markers, which would fail.
2017-05-09 19:23:31 +02:00
Pavel Djundik
691f628e48 Merge pull request #1095 from thelounge/xpaw/fix-nick-autocomplete
Fix nick autocomplete
2017-05-06 13:43:27 +03:00
Pavel Djundik
7ae364e360 Merge pull request #1100 from thelounge/xpaw/0x04
Add support for 0x04 hex colors
2017-05-06 13:43:14 +03:00
Pavel Djundik
fe77563cdb Merge pull request #1114 from thelounge/xpaw/moment
Use moment to render dates everywhere
2017-05-06 13:43:02 +03:00
Pavel Djundik
57d7616d1b Merge pull request #1109 from thelounge/astorije/autocomplete-colors
Add autocomplete strategy for foreground and background colors
2017-05-06 13:42:47 +03:00
Pavel Djundik
9766c3e254 Allow autocompleting full emoji short names 2017-05-05 21:08:41 +03:00
PolarizedIons
c5e215f439 Fix date-marker not being removed on loading new messages 2017-05-05 14:07:01 +02:00
swordbeta
979d992bd1 Don't show unread marker for date marker. 2017-05-04 21:38:58 +02:00
Pavel Djundik
700d3c1ff2 Use moment to render dates everywhere 2017-05-01 21:31:31 +03:00
Jérémie Astori
0981605fae
Add autocomplete strategy for background colors 2017-05-01 02:49:35 +02:00
Jérémie Astori
6d1eef836a
Add autocomplete strategy for foreground colors 2017-04-30 14:08:12 +02:00
Pavel Djundik
f7b7248ff7 Fix nick autocomplete
Fixes #1119.
2017-04-30 15:03:27 +03:00
Pavel Djundik
0b645d54c6 Add support for 0x04 hex colors
Ref: https://modern.ircdocs.horse/formatting.html#hex-color
2017-04-29 09:50:26 +03:00
Max Leiter
70655120cb Add ctcp to constants, adds to auto-complete 2017-04-28 14:45:18 -07:00
PolarizedIons
81a5615c9a Fix nick autocomplete 2017-04-26 19:34:31 +02:00
Jérémie Astori
06af65cf01 Merge pull request #1078 from thelounge/1022-slow-scrolling
Add fix for slow scrolling when holding pg-up/pg-dn
2017-04-26 13:47:40 +02:00
Pavel Djundik
586dde7761 Merge pull request #856 from thelounge/astorije/fuzzy-match-user-list
Implement fuzzy-matching for the user list
2017-04-26 12:57:06 +03:00
Pavel Djundik
dd5e50fc68 Merge pull request #1062 from thelounge/remove-cycle-nicks
Remove cycle nicks button
2017-04-26 11:41:51 +03:00
Jérémie Astori
e000ba45df
Improve details of emoji/chan/nick/command autocompletion
- Make dropdown items match context menu items
- Disable transparency on dropdown item links
- Clean up help page additions
- Better align help page autocompletion characters
- Use ES6 features (`const`, arrow functions, method definition shorthands)
- Use `Array#filter` instead of `$.map`
- Do not display `@` in nick completion *when* only one `@` is used (to be less confusing and more consistent)
2017-04-26 13:58:43 +05:30
Yash Srivastav
7229e0dda4
Disable history completion during emoji completion 2017-04-26 13:58:43 +05:30
Yash Srivastav
785842cde5
Add emoji/nick/commands/chan autocomplete 2017-04-26 13:58:36 +05:30
Pavel Djundik
e3bd30b05f Merge pull request #1077 from thelounge/yamanickill/1073-ban-unban
Add ban/unban command
2017-04-26 11:17:41 +03:00
Alistair McKinlay
b03d01b6eb Add ban/unban command
Fixes #1073
2017-04-26 08:54:25 +01:00
Alistair McKinlay
d0987719ce Replace the state on init rather than adding a new entry
Fixes #1042
2017-04-26 08:36:26 +01:00
Alistair McKinlay
fe07bf6637 Add fix for slow scrolling when holding pg-up/pg-dn
Fixes #1022
2017-04-24 12:01:24 +01:00
Alistair McKinlay
326f1ac476 Create options module 2017-04-24 09:06:01 +01:00
Pavel Djundik
c583d6edf9 Correctly update user list and search filtering on user updates 2017-04-23 18:18:56 -04:00
Pavel Djundik
b1e9a7ffda Use separate container for search results 2017-04-23 18:18:56 -04:00
Jérémie Astori
cfa9da17a7 Rely on fuzzy's case insensitivity, do not trim mode 2017-04-23 18:18:56 -04:00
Jérémie Astori
6a26014b81 Implement fuzzy-matching for the user list 2017-04-23 18:18:56 -04:00
Pavel Djundik
98e3bd0ca2 Merge pull request #1054 from thelounge/astorije/friendly-date-marker
Use moment on the client to display friendly dates
2017-04-23 10:24:21 +03:00
Alistair McKinlay
2e286849fc Move commands into constants module 2017-04-22 20:16:59 +01:00
Pavel Djundik
7522847ecc Enable show more button correctly 2017-04-22 19:04:46 +03:00
Alistair McKinlay
1e504f4383 Add support for banlist messages 2017-04-22 13:51:28 +01:00
Jérémie Astori
5fabf2f61a Make sure friendly date markers are reset at midnight 2017-04-22 00:39:00 -04:00
Jérémie Astori
648cfd12db Use moment on the client to display friendly dates
Also, unread and date markers are now half-transparent based on their colors and not parent opacity. This is necessary to display a non-translucide tooltip.
2017-04-22 00:38:19 -04:00
Jérémie Astori
bc5b03d2fc Merge pull request #1060 from thelounge/yamanickill/modularise-socket
Create socket module
2017-04-22 00:36:06 -04:00
Pavel Djundik
999e419636 Remove cycle nicks button
Reverts #708.
Fixes #869.
Fixes #1023.
2017-04-21 21:00:57 +03:00
Jérémie Astori
fa1aecdd9e Remove URI.js monkey-patch as fix landed in v1.18.5
See https://github.com/medialize/URI.js/issues/325
2017-04-21 20:31:27 +03:00
Jérémie Astori
03e3444a35 Explain the modules of the message parser and add tests
- Add comments and descriptions to:
  - `findChannels.js`
  - `parseStyle`
  - `findLinks`
  - `fill`
  - `anyIntersection`
  - `merge`
  - `parse`
- Minor optimizations to `parseStyle`
- Add tests for `fill`
2017-04-21 20:31:27 +03:00
Jérémie Astori
90f4a94bb2 Use template literals in parse
Also make it output double quotes for consistency with web stuff.
2017-04-21 20:31:27 +03:00
Jérémie Astori
5b4c00d8ca Extract findLinks into its own file and add tests
Tests were taken from 5a249c30b1/test/findLinks.js.
The underlying code is different but the tests are the same.
2017-04-21 20:31:27 +03:00
Bonuspunkt
0b85ded53f Add bonuspunkt's parser
Fixes #15.
Fixes #199.
Fixes #583.
Fixes #654.
Fixes #928.
Fixes #1001.
2017-04-21 20:29:04 +03:00
Alistair McKinlay
05d363d9a5 Create socket module 2017-04-21 09:54:46 +01:00
Al McKinlay
9072fda146 Merge pull request #1052 from KlipperKyle/KlipperKyle/motd
Issue 1019: Show MOTD by default
2017-04-20 09:07:27 +01:00
Jérémie Astori
4de632ba3c Merge pull request #1018 from swordbeta/sort_channel_list
Improve channels list.
2017-04-20 01:40:14 -04:00
Michael van Tricht
764ac831d4 Improve channels list.
- Set fixed width to channel and users column.
- Sort by number of users in channel.
- Executing /list multiple times wont show multiple tables.
- Channel list is not stickied to the bottom.
- Limit channels to 500. Scrolling through 1k is very slow on my system.
2017-04-19 12:02:15 +02:00
Kyle Terrien
a900abc2a4 Issue 1019: Show MOTD by default 2017-04-18 19:48:14 -07:00
Alistair McKinlay
4938878d10 Disable show more button when loading messages 2017-04-17 10:35:27 +01:00
Daniel Oaks
5c336d3789 Add slug with command to unhandled messages 2017-04-16 12:31:32 +03:00
William Boman
cc0962ba12 client: implement states using the History Web API 2017-04-15 22:34:14 +02:00
Pavel Djundik
d093a7f4c2 Reset notification markers on document focus
Fixes #837
2017-04-15 18:43:34 +03:00
Pavel Djundik
fce3d11e74 Stick to bottom when opening user list
Fixes #1031
2017-04-14 21:29:04 +03:00
Michael van Tricht
bcbd29cd22 Unread marker takes hidden messages into account. 2017-04-08 15:56:09 +02:00
Pavel Djundik
bb24bc645c Merge pull request #1013 from awalgarg/patch-1
fix: count only message items for show-more
2017-04-06 06:43:29 +03:00
Awal Garg
c066f25b17 fix: count only message items for show-more
the `messages` div contains a `date-marker` div and an `unread-marker` div. this causes the `count` variable to be 2 more than the expected value, which makes the show-more button skip two messages when loading history. this change filters the counted elements to fix this issue.
2017-04-06 00:45:28 +05:30
Jérémie Astori
09eaf80f8c Fix page scroll glitch 2017-04-02 21:03:01 -04:00
Pavel Djundik
2d9aa35c06 Implement pgup/pgdown keys 2017-04-01 22:35:07 +03:00
Pavel Djundik
110c0f0c87 Correctly append date marker when receiving a message 2017-04-01 11:06:01 +03:00
Pavel Djundik
212703d162 Merge pull request #810 from thelounge/xpaw/color-hotkeys
Implement color hotkeys
2017-03-31 19:17:16 +03:00
Jérémie Astori
4363ef4abe Merge pull request #973 from thelounge/xpaw/use-require
Use require() instead of import in client code
2017-03-31 01:41:29 -04:00
Jérémie Astori
e62da5b1ea Remove extra newline to please ESLint
See https://travis-ci.org/thelounge/lounge/jobs/217041734#L1200
2017-03-31 01:26:37 -04:00