Commit graph

720 commits

Author SHA1 Message Date
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
Jérémie Astori abd155e881 Merge pull request #873 from PolarizedIons/fix-username-override
Fix filling in the nickname, overriding the username (in add network tab)
2017-03-31 01:20:12 -04:00
Pavel Djundik 3b2e3fc08c Enforce more space and new line rules 2017-03-18 21:40:39 +02:00
Stephan 3318acd16b fix filling in nickname overriding username (in add network tab) 2017-03-18 18:11:43 +02:00
Pavel Djundik dcefcd19cb Use require() instead of import in client code
Closes #895
2017-03-18 11:21:18 +02:00
Pavel Djundik f2e43b84be Implement color hotkeys 2017-03-12 11:50:18 +02:00
Jérémie Astori dcc98c3efb Un-ellipsis placeholder and use ES6 template 2017-01-24 23:55:57 -05:00
Alistair McKinlay 0d8b58425e Merge pull request #855 from MaxLeiter/MaxLeiter/search
Fix searching for user in user list, closes #851
2017-01-04 11:15:14 +00:00
Jérémie Astori 280d145502 Merge pull request #836 from thelounge/xpaw/slideout-width
Calculate menu width on touch start
2017-01-04 01:48:38 -05:00
Max Leiter ba00738f1f Fix searching for user in user list, closes #851 2016-12-29 18:03:05 -10:00
Pavel Djundik c75771f13d Fix stuff that breaks in jQuery 3 2016-12-29 23:43:10 +02:00
Pavel Djundik 8fd1d161ea Remove vendor client code 2016-12-27 19:15:31 +02:00
Pavel Djundik fb87bd3a58 Webpack 2016-12-27 19:15:30 +02:00
Pavel Djundik 3017e67f3a Calculate menu width on touch start
Fixes #831
2016-12-21 19:58:36 +02:00
Jérémie Astori b07ec94bc3 Remind channel name or nick in input placeholder 2016-12-20 20:13:05 -05:00
Pavel Djundik 7709847267 Fix unread marker being removed from DOM 2016-12-19 14:46:18 +02:00
Pavel Djundik d24eb44991 Merge pull request #818 from thelounge/xpaw/no-notif-controls
Strip control characters from notifications
2016-12-19 12:52:12 +02:00
Pavel Djundik 8fff5ee829 Strip control characters from notifications 2016-12-18 18:19:03 +02:00
Pavel Djundik 3d6e4a38c6 Prevent focus on mobile 2016-12-17 21:17:23 +02:00
Pavel Djundik 7933b2453d Only append "says" to notifications if its a message 2016-12-17 13:05:12 +02:00
Jérémie Astori 3d0e1fd9f0 Merge pull request #745 from thelounge/xpaw/away-command
Implement /away and /back commands
2016-12-16 23:16:02 -05:00
Jérémie Astori 86358c619b Lock input message when app is disconnected 2016-12-14 01:35:32 -05:00
Pavel Djundik a8926e2ced Stop refreshing the page on every socket.io error 2016-12-13 01:55:11 -05:00
stepie22 a5ad573b2d Sync reordering of channels/networks to other clients 2016-12-09 14:56:19 +02:00
stepie22 10fefab279 Switch to jQuery's hasClass instaid of checking direct class equality 2016-12-01 13:25:49 +02:00
stepie22 c160852042 slight nit-pick 2016-11-28 19:55:16 +02:00
stepie22 06ecf625c6 Fix date-marker not being removed when at the top of the page sometimes 2016-11-25 18:05:04 +02:00
stepie22 93f0f6942e Add a date seperator 2016-11-23 16:35:42 +02:00
Alistair McKinlay c954d9c9a3 Merge pull request #739 from williamboman/fix/dont-dismiss-notifications
client: don't dismiss native web notifications programmatically after 5s
2016-11-22 15:44:03 +00:00
Pavel Djundik 6023035838 Update depdencides to latest stable versions 2016-11-19 10:49:16 +02:00
Pavel Djundik f24f707119 Implement /away and /back commands 2016-11-19 10:27:39 +02:00
William Boman 6e1cdb370b client: don't dismiss native web notifications programmatically after 5s 2016-11-16 17:43:30 +01:00
Jérémie Astori dff1a48e05 Prevent sound notification to throw an exception on mobile 2016-11-08 01:02:56 -05:00
Jérémie Astori e21ec8b447 Silence failures to trigger notifications when not available
Recent Chrome versions are dropping out `new Notification` in favor of `ServiceWorkerRegistration.showNotification`.
This makes sure nothing bad happens until we have proper support for Service Workers.

See:
- https://stackoverflow.com/questions/29774836/failed-to-construct-notification-illegal-constructor
- https://stackoverflow.com/questions/31512504/html5-notification-not-working-in-mobile-chrome
2016-11-08 01:02:25 -05:00
Pavel Djundik 837f78f1ae Merge pull request #483 from williamboman/fix/focus-input-on-submit
client: re-focus input on chat form submit
2016-10-28 19:14:26 +03:00
Jérémie Astori e9b118ea71 Merge pull request #708 from thelounge/astorije/nick-cycle
Add a UI element to cycle through nick completions on mobile
2016-10-25 18:45:07 -04:00
Maxime Poulin 0bef9e9cde Merge pull request #720 from stepie22/unread-counters-fix
Fix unread counters resetting when they shouldn't
2016-10-25 12:41:10 -04:00
stepie22 ee1a629be9 Fix incorrect selector for undead badge on channels 2016-10-25 13:58:28 +02:00