Commit Graph

740 Commits

Author SHA1 Message Date
Pavel Djundik
dc8c10f461 Correctly fix from field in messages
This should have been in #1859
2017-12-20 13:45:17 +02:00
Pavel Djundik
ce5d18c4fa Fix possible issues with from in messages 2017-12-19 13:45:33 +02:00
Pavel Djundik
c06fb9a275 Clear storage folder after successful start and graceful exit 2017-12-18 16:59:05 +02:00
Max Leiter
d4ad60c11d Support video file previews 2017-12-13 17:52:07 -08:00
Pavel Djundik
ccd37aba8f
Merge pull request #1725 from keegan/master
Stop LDAP Auth from succeeding without password
2017-12-13 20:20:10 +02:00
Pavel Djundik
7dcab09516
Merge pull request #1806 from MaxLeiter/sound
Support audio file previews
2017-12-13 11:03:04 +02:00
Max Leiter
ad1114ccfe Support audio file previews 2017-12-12 11:29:13 -08:00
Jérémie Astori
d89112173d
Fix command line index parsing options (--home and --config) twice 2017-12-11 23:53:51 -05:00
Jérémie Astori
6547d18e7f
Color all references to deprecations in bold red 2017-12-11 23:48:52 -05:00
Jérémie Astori
07a01b0547
Deprecate existing options of thelounge start in favor or -c, --config 2017-12-11 23:48:52 -05:00
Jérémie Astori
df2787d3e9
Add a --config / -c option to the start CLI command to arbitrarily override any configuration key
The biggest caveat is that JS code (such as functions) will not be interpreted as such, on purpose, for security precautions. If such thing is needed, then a configuration file must be used.
2017-12-11 23:48:52 -05:00
Jérémie Astori
b90c224a99
Define a raw logger to avoid using console.log, use it in extra help for environment variables, and add a test for this
This has multiple benefits:

- Respects the "Do not mock what you do not own" principle, instead we mock `log.raw` when necessary
- Lets us not re-assign `console.log`, which breaks as Mocha uses `console.log` as well
- Save and restore initial `log.raw` in test hooks (before/after), otherwise this would break Mocha/Chai
2017-12-11 23:48:51 -05:00
Erik Vosseberg
33d865501d
Add whois and conversation as action to user contextmenu
Add Op specific actions to contextMenu

Show context menu when left clicking user

Switch to using data attributes as selectors

remove ban as possible action

Move `isOpInChannel()` to utils.js

Capitalize strings

use CSS.escape for `ownNick`

use string interpolation

properly point to findCurrentNetworkChan

Move context menu item actions to command pattern

add icons for context menu actions

Make list in context menu always list.

remove empty lines in style.css

use info circle instead of question circle

change context menu labels.

change contextMenuActions.execute to more explicit method.
2017-12-11 23:04:29 -05:00
Jérémie Astori
c0869b05a3
Merge pull request #1807 from thelounge/astorije/users-commands
Do not load user commands or display them on `--help` if public mode or using LDAP
2017-12-10 14:24:55 -05:00
Jérémie Astori
206ded55ff
Warn if user configuration being loaded is empty 2017-12-10 01:03:00 -05:00
Jérémie Astori
c21aee3d4a
Do not load user commands or display them on --help if public mode or using LDAP 2017-12-09 01:51:08 -05:00
Jérémie Astori
c038935b96
Move user commands to their own subfolder 2017-12-09 01:38:52 -05:00
Jérémie Astori
844ca1fbe6
Merge pull request #1811 from thelounge/astorije/improve-helper
Clean up path helpers, expand defaults location in `thelounge --help`, add tests for `expandHome`
2017-12-08 21:53:14 -05:00
Jérémie Astori
22237658cb
Add some unit tests for Helper.expandHome 2017-12-08 19:50:32 -05:00
Jérémie Astori
52d5cb2311
Expand home shorthand in CLI help around THELOUNGE_HOME environment variable 2017-12-07 23:03:40 -05:00
Jérémie Astori
0482747781
Only use helpers and not shared variables around path helpers
This refactor has a few benefits, for example there cannot be a rogue update of `Helper.CONFIG_PATH` or something.
2017-12-07 23:02:32 -05:00
Pavel Djundik
fb0f68f8a5 Harden content security policy even further 2017-12-07 20:45:45 +02:00
Pavel Djundik
f9be519c2f
Merge pull request #1593 from RJacksonm1/reload-passwords-all-proper-like
Ensure passwords are reloaded when updated via CLI
2017-12-07 13:18:16 +02:00
Pavel Djundik
5e48e04623 Show notices and errors inline 2017-12-06 17:58:52 +02:00
Rob Jackson
15f7f2e371
Ensure passwords are reloaded when updated via CLI (fixes #598) 2017-12-05 18:52:08 -05:00
Pavel Djundik
2d0ddfb2e8
Merge pull request #1778 from thelounge/xpaw/lazy-init
Heavily improve performance of "init" event
2017-12-05 12:03:01 +02:00
Pavel Djundik
b5d39b96b9
Handle CHGHOST cap 2017-12-04 23:33:48 -05:00
Pavel Djundik
5fc70397a9 Make sure all joins send filtered clone 2017-12-03 16:31:37 +02:00
Pavel Djundik
552f3da67e Implement manual network/channel cloning for better performance 2017-12-03 16:31:37 +02:00
Pavel Djundik
41e121d270 Only emit a single message per channel on init 2017-12-03 16:13:18 +02:00
Jérémie Astori
052248445c
Do not rename home file as it is very likely to have permission issues
On most systems (Linux at least), to install a npm package locally, one must use `sudo`. When The Lounge runs, it usually does not run with `sudo`. This causes the program to crash as user running The Lounge cannot create/delete files there.

We will let people manually convert this file instead of doing it for them. This file is mainly intended for package authors anyway, most users will never have to touch it.
2017-12-01 01:33:04 -05:00
Pavel Djundik
104e270882
Merge pull request #1771 from thelounge/astorije/fix-user-in-msg
Clone instances of `User` in `Msg` to avoid unintentional mutations
2017-11-30 11:29:23 +02:00
Pavel Djundik
be6975cb83
Merge pull request #1772 from thelounge/astorije/fix-nick-change
Fix nick changes wrongly reported
2017-11-30 11:26:26 +02:00
Jérémie Astori
4ec10b922a
Clone instances of User in Msg to avoid unintentional mutations 2017-11-30 00:41:19 -05:00
Jérémie Astori
e60bbd9548
Fix nick changes wrongly reported 2017-11-29 18:44:33 -05:00
Jérémie Astori
c0d348a678
Fix default value given to Msg.from
- `{}` is not falsey so Handlebars would try to render the block (see http://handlebarsjs.com/builtin_helpers.html#conditionals), therefore with a `nick` of `undefined`, which breaks `colorClass` (doing `undefined.length)
- There does not seem to be a way to check for empty objects in Handlebars (sigh) so checking `from.nick` seems like the most reliable way to check for a non-empty value. Alternatively, we could use a helper to check `{}` but meh.
2017-11-29 18:37:17 -05:00
Jérémie Astori
7daf566025
Merge pull request #1758 from MaxLeiter/improve-regex
update nick regex for linking nicks in text
2017-11-27 18:30:37 -05:00
Max Leiter
f98deaba70 update nick regex for linking nicks in text 2017-11-27 13:58:10 -08:00
Jérémie Astori
b53f1719eb
Merge pull request #1749 from thelounge/astorije/avoid-escape-quotes
Avoid escaping quotes whenever possible
2017-11-27 12:57:55 -05:00
Jérémie Astori
39e99fcd29
Merge pull request #1753 from thelounge/xpaw/webp
Detect image/webp as an image
2017-11-27 12:55:27 -05:00
Max Leiter
3d31fa4686 Link nicks mentioned in messages 2017-11-27 09:10:56 -08:00
Pavel Djundik
4e45820235
Detect image/webp as an image 2017-11-27 15:50:35 +02:00
Pavel Djundik
ba002cca64
Merge pull request #1708 from thelounge/astorije/thelounge
Switch CLI tool from `lounge` to `thelounge`, deprecate `lounge`
2017-11-27 13:58:46 +02:00
Jérémie Astori
287c3a8223
Avoid escaping quotes whenever possible
Our `.eslintrc.yml` configuration file already allows for avoiding escape (see [ESLint doc for `avoidEscape`](https://eslint.org/docs/rules/quotes#avoidescape)) so we might as well use it. We already use this in a few places I believe.
2017-11-26 17:34:28 -05:00
Pavel Djundik
727021be68 Call callback on fetch error 2017-11-25 20:59:12 +02:00
Jérémie Astori
7fb92fee64
Merge pull request #1717 from thelounge/astorije/thelounge_home-env-var
Deprecate `LOUNGE_HOME` env var in favor of `THELOUNGE_HOME`, `.lounge_home` file in favor of `.thelounge_home`
2017-11-22 16:39:02 -05:00
Jérémie Astori
aca23257ed
Switch CLI tool from lounge to thelounge and deprecate lounge
This is in preparation of The Lounge v3 which will make `thelounge` uniform across the entire project. No more confusion!
2017-11-22 16:37:26 -05:00
keegan
f73132e226
Stop LDAP Auth from succeeding without password 2017-11-21 19:19:24 -05:00
Jérémie Astori
827f1dab96
Deprecate LOUNGE_HOME env var in favor of THELOUNGE_HOME, .lounge_home file in favor of .thelounge_home
This is one more step towards uniformization of lounge/thelounge due with The Lounge v3.
2017-11-21 00:36:26 -05:00
Erik Vosseberg
f40edc7dc2
Include all available whois info 2017-11-21 00:27:24 -05:00
Pavel Djundik
01f524b7c5 Don't send defaults if not displaying network 2017-11-19 19:46:04 +02:00
Pavel Djundik
adab03f730 Fix test 2017-11-19 19:43:43 +02:00
Pavel Djundik
e86a155ec2 Remove express-handlebars, read manifest.json to get theme-color 2017-11-19 19:43:43 +02:00
Pavel Djundik
c30f4aaaeb Move help to view 2017-11-19 19:43:43 +02:00
Pavel Djundik
8d88779918 Fix options 2017-11-19 19:43:42 +02:00
Pavel Djundik
711b5e1d91 Make settings/options mostly work
Fixes #1672
2017-11-19 19:43:42 +02:00
Pavel Djundik
055bd5dca5
Merge pull request #1580 from thelounge/xpaw/mobile-active-notifications
Use service worker to display notifications if available
2017-11-19 18:40:45 +02:00
Pavel Djundik
57289396da
Not all topic callbacks include nick 2017-11-19 18:30:10 +02:00
Pavel Djundik
0402554563 Move cleanIrcMessage to a separate file 2017-11-19 18:19:52 +02:00
Pavel Djundik
0f75c1a138 Change users array to be a Map 2017-11-19 11:35:15 +02:00
Pavel Djundik
74dcc52657
Refactor how user object is sent to the client 2017-11-19 02:46:45 -05:00
Jérémie Astori
f2d9ef62cf
Merge pull request #1715 from thelounge/astorije/deprecate-node-v4
Deprecate support of Node v4 in preparation of The Lounge v3
2017-11-19 01:05:57 -05:00
Jérémie Astori
3af9a45087
Merge pull request #1676 from realies/patch-1
handle empty client queries
2017-11-19 00:42:10 -05:00
realies
c5de1b3dbe
handle empty client queries 2017-11-19 00:33:29 -05:00
Jérémie Astori
ef1c59072c
Deprecate support of Node v4 in preparation of The Lounge v3 2017-11-18 13:52:31 -05:00
Jérémie Astori
1dc92d8934
Enforce dangling commas with ESLint
¯\_(ツ)_/¯
2017-11-15 01:35:15 -05:00
Pavel Djundik
e5cded0ad6 Fix local theme folder 2017-11-12 21:11:08 +02:00
Pavel Djundik
9ff398dac3 Go back to writing user files synchronously 2017-11-11 20:44:09 +02:00
Pavel Djundik
feb7d9d4bb Fix #1692 when kicker is server 2017-11-08 23:10:17 +02:00
Pavel Djundik
81e3e88391
Merge pull request #1636 from thelounge/xpaw/cleanup-clientmanager
Cleanup client manager functions
2017-10-29 10:25:42 +02:00
Pavel Djundik
3f2a017583 Create public folder with webpack 2017-10-18 21:20:12 +03:00
Pavel Djundik
a263c3eab9 Merge pull request #1615 from dgw/mark-echoes-read
Mark channels as read when receiving self-messages
2017-10-17 16:25:59 +03:00
dgw
d675297405 Mark channels as read when receiving self-messages
Resets highlight counter and last unread message ID on server, and
clears the badge on the active client when the message is rendered.

Resolves #911
2017-10-17 08:05:35 -05:00
Pavel Djundik
50504ed09b Fix possible race condition when attaching clients 2017-10-17 12:45:18 +03:00
Pavel Djundik
280eea970a Get client ip address correctly 2017-10-17 10:35:28 +03:00
Pavel Djundik
5c45321cca Cleanup client manager functions 2017-10-15 19:05:19 +03:00
Pavel Djundik
44acc5cb00 Teardown sockets in tests 2017-10-06 12:53:08 +03:00
Jérémie Astori
0cc9c4166b Merge pull request #1583 from thelounge/astorije/thelounge-packages
Use `thelounge` instead of `lounge` when it comes to external packages
2017-09-30 23:47:02 -04:00
Jérémie Astori
c3ccfb092a Merge pull request #1579 from thelounge/xpaw/install-msg
Add info message before calling `packageJson`
2017-09-29 17:53:40 -04:00
Pavel Djundik
1c4d9351d5 Add info message before calling packageJson 2017-09-29 10:54:03 +03:00
Pavel Djundik
fd21c84a76 Do not try to write user log if network is not found
Fixes #1584
2017-09-29 10:37:27 +03:00
Jérémie Astori
1e10cc66a6
Use thelounge instead of lounge when it comes to external packages 2017-09-29 00:03:01 -04:00
Pavel Djundik
3fc0f4e686 Merge pull request #1536 from thelounge/xpaw/session-list
Implement session list and allow signing out other clients
2017-09-26 11:03:41 +03:00
Pavel Djundik
7cfd8d90c1 Merge pull request #1554 from thelounge/astorije/rm-event-stream
Remove event-stream dependency in favor of plain Buffers
2017-09-26 11:00:35 +03:00
Pavel Djundik
2f15ab3999 Fix attached client not having token on login 2017-09-26 10:56:08 +03:00
Pavel Djundik
833bdfa2aa Fix session data not updating correctly 2017-09-26 10:56:08 +03:00
Pavel Djundik
d7e6db92b5 Implement session list 2017-09-26 10:56:08 +03:00
Pavel Djundik
08edc434ca Merge pull request #1567 from dgw/preview-length-abort
Abort image prefetch if Content-Length exceeds limit
2017-09-25 23:11:20 +03:00
dgw
09cd9ce33a Abort img prefetch if Content-Length exceeds limit
If the Content-Length header is present in the response when an image
is prefetched, The Lounge can avoid wasting bandwidth (both for itself
and for the image's host) if the value of the header exceeds the
prefetch size limit by aborting the request immediately.
2017-09-25 05:31:21 -05:00
Jérémie Astori
75b927b4a3
Remove event-stream dependency in favor of plain Buffers 2017-09-23 04:08:17 -04:00
Pavel Djundik
f85686bcb2 Merge pull request #1468 from thelounge/xpaw/combine-notifications
Combine unread notifications into a single one
2017-09-22 21:04:04 +03:00
Pavel Djundik
649e9c3192 Fix opening first channel on server start
Fixes #1547
2017-09-20 16:17:38 +03:00
Pavel Djundik
416ebf97ff Create 'lounge install' command 2017-09-20 10:59:06 +03:00
Jérémie Astori
637949ea55 Merge pull request #1471 from thelounge/xpaw/client-reconnection
Automatic client reconnection
2017-09-20 00:05:37 -04:00
Pavel Djundik
21c9919fa1 Print compatibility theme setting warning on startup 2017-09-19 12:21:08 +03:00
Pavel Djundik
6cfe60e4d9 Group push notifications per target 2017-09-19 12:01:50 +03:00
Pavel Djundik
cffa957e34 Only send messages newer than last seen id 2017-09-19 11:45:22 +03:00
Pavel Djundik
0c0df1efc9 Force reload the page if socket reconnects and server restarted 2017-09-19 11:45:22 +03:00
Jérémie Astori
b8399471b3
Enable ESLint no-console rule to avoid future mistakes 2017-09-17 21:50:21 -04:00
Alistair McKinlay
59d2f93f61
Allow themes from npm 2017-09-17 19:47:29 -04:00