Compare commits

...

6,403 commits

Author SHA1 Message Date
Max Leiter
b2e3112806
Merge pull request #5016 from SyntaxColoring/master
Fix spurious "insecure connection" warning by treating ::1 as localhost
2026-01-03 00:53:11 -08:00
Max Leiter
c247ae31ae
Merge "server: Fix quoting in error message" from supertassu/fix-quotes
server: Fix quoting in error message
2026-01-02 19:58:51 -08:00
Max Marrone
9533ee46b2 Treat ipv6 ::1 as localhost. 2025-12-20 17:34:57 -05:00
Taavi Väänänen
be603c6bdc
server: Fix quoting in error message
In the error message about an invalid plugin command, only quote the
command name and not the rest of the error message after the command
name.
2025-11-08 12:36:50 +02:00
Reto Brunner
32f0181433 Merge branch 'lockedSettings' 2025-09-21 20:28:47 +02:00
Reto Brunner
793d01c0f5 merge trim username field in sign in form 2025-09-19 06:08:57 +02:00
Reto Brunner
d7316a0691 Merge precise user config reloading
This has the problem that failing to get a modification trigger might
lead to corrupted state. The author tested it on their large instance
however and it seems to work very well.
So let's try if anyone hits any problems in the wild
2025-09-19 06:03:51 +02:00
Reto Brunner
e919e1ce79 Merge branch 'saslFix' 2025-09-19 06:01:07 +02:00
Reto Brunner
857a2bbd6a Merge branch 'chghost' 2025-09-19 06:00:24 +02:00
Jay2k1
892562902f
fix broken manual channel ordering
This fixes a small regression from #4861 (specifically, commit 0067c30) that resulted in manually reordering channels not being received by the server and hence not saved or synced.
2025-09-18 20:31:02 +02:00
Kevin Cox
c20e9d2ef0
Precise user configuration reloading.
Previously when any user config file was changed all users would be reloaded. This could be very expensive on installations with thousands of users. Since this triggered when any file was changed it would trigger when any user connected which can be quite frequent.

As a side-effect this removes the debouncing. This means that user changes take effect instantly rather than after 1s.

Since there is no longer a 1s delay it is extra important that files are written safely. To this end the `thelounge add <user>` command was updated to write the user file atomically. (The update path already did this.)
2025-09-06 09:08:28 -04:00
Reto Brunner
fc135023a4 style chghost messages
chghost messages weren't styled properly, given that they are
similar to a nick change, re-use the corresponding icon and style.
2025-09-06 11:36:49 +02:00
Reto Brunner
b270f51022 Disable sasl if sasl isn't configured
irc-framework has a funny fallback where it uses nick + server pw
in the sasl handshake, if account is undefined in the options.
This becomes a problem, as the nick might not actually be the account
(happened for znc users), so we need to set it to an empty object to really
turn it off.
2025-07-28 11:06:25 +02:00
sfan5
59a333d982 Trim username in sign-in form 2025-04-09 18:42:21 +02:00
Reto Brunner
3f2697cca6 reverse locknetwork config selection
LockNetwork is documented as:
> When set to `true`, users will not be able to modify host, port and TLS
> settings and will be limited to the configured network.

Looking at the view, that also includes the name field (for some reason).

When leaveMessage was added to the defaults, the white list for the LockedConfigNetDefaults
wasn't adjusted.

Rather than playing whack a mole, disallow the documented fields + name and export the rest.

Fixes: https://github.com/thelounge/thelounge/issues/4956
2025-02-07 14:00:14 +01:00
Reto Brunner
f97c4df2a2 ignore invalid warning in ldap test
it complains that the call `ldap.parseDN(dn).toString();` yields
"[object Object]" but that's bogus... the typing is incorrect.

ldap.DN stringifies properly
2024-11-07 17:48:30 +01:00
Reto Brunner
23fff58fc3 update dependency ldapjs to v2.3.3 2024-11-07 17:10:36 +01:00
Reto Brunner
a966b711ac update dependency ua-parser-js to v1.0.39 2024-11-07 17:08:16 +01:00
Reto Brunner
89b1ca1e3f update dependency yarn to v1.22.22 2024-11-07 17:03:20 +01:00
Reto Brunner
f86a7f6377 Fix showing multiple certificate fingerprints 2024-11-07 16:55:38 +01:00
Reto Brunner
1760e8b339 client: suppress "***" in joins/parts/etc. for screen readers 2024-11-07 16:51:03 +01:00
renovate[bot]
793313db77
fix(deps): update dependency yarn to v1.22.22 2024-11-01 00:20:21 +00:00
renovate[bot]
61f8ce1ae6
fix(deps): update dependency ua-parser-js to v1.0.39 2024-11-01 00:20:09 +00:00
Kenneth G. Franqueiro
4ba16364cc client: Indicate active context menu item for screen readers 2024-10-16 16:18:45 -04:00
Sadie Powell
e44bed1758 Fix showing multiple certificate fingerprints on InspIRCd v4. 2024-10-14 18:04:14 +01:00
Kenneth G. Franqueiro
59e8b16990 client: suppress "***" in joins/parts/etc. for screen readers 2024-10-10 17:20:21 -04:00
renovate[bot]
381ddca358
fix(deps): update dependency ldapjs to v2.3.3 2024-09-29 12:47:59 +00:00
Reto Brunner
3d33ef8083 Merge branch 'topic' 2024-09-29 14:46:21 +02:00
Reto Brunner
0c57694c00 bump irc-framework to 4.14 2024-09-29 14:38:53 +02:00
Reto Brunner
834b12218e Merge branch 'actualUsername' into frameWork 2024-09-29 14:27:18 +02:00
dependabot[bot]
e81273148b
build(deps): bump braces from 3.0.2 to 3.0.3
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-29 12:07:53 +00:00
Reto Brunner
6d6179c69d update dependency @types/ws to v8.5.12 2024-09-29 13:58:53 +02:00
Reto Brunner
6f09b6fd70 update dependency postcss to v8.4.47 2024-09-29 13:58:00 +02:00
Reto Brunner
a016db68bb update dependency mime-types to v2.1.35 2024-09-29 13:55:13 +02:00
Reto Brunner
2962b07c1f update dependency webpack to v5.94.0 2024-09-29 13:52:53 +02:00
Reto Brunner
e7aff2862a update dependency cheerio to v1.0.0 2024-09-29 13:49:00 +02:00
Reto Brunner
ca2c231eec update dependency node-forge to v1.3.1 2024-09-29 13:46:20 +02:00
Reto Brunner
a196b1ad95 update dependency express to v4.20.0 2024-09-29 13:45:01 +02:00
renovate[bot]
05a87130ee
fix(deps): update dependency express to v4.20.0 [security] 2024-09-21 10:53:24 +00:00
renovate[bot]
a6af6bb45c
chore(deps): update dependency postcss to v8.4.47 2024-09-15 15:58:39 +00:00
arminius-smh
ac485c483b
server: fix loading themes from scoped packages
Scoped packages have slashes in them, that led to them being loaded at
the wrong path. Encoding the name fixes this.
2024-09-04 12:25:48 +02:00
arminius-smh
0a4adc4592
server: fix scoped package install
Installing a scoped npm package with thelounge install lead to an error,
because the original split that was used to split the version from the
package, split at the first @ from scoped packages.
2024-09-04 12:25:48 +02:00
renovate[bot]
8ed898846c
chore(deps): update dependency webpack to v5.94.0 [security] 2024-09-04 02:03:07 +00:00
renovate[bot]
374c6a9b04
fix(deps): update dependency node-forge to v1.3.1 2024-09-01 00:52:03 +00:00
renovate[bot]
6b30b07fc5
fix(deps): update dependency cheerio to v1.0.0 2024-09-01 00:51:51 +00:00
Reto Brunner
e42ad91e04 whois: support actual_username field
Some servers (e.g. InspIRCd v4) support the concept of a real username,
i.e. the username that was originally sent as distinct from their virtual
username set by services.

Closes: https://github.com/thelounge/thelounge/issues/4900
2024-08-19 07:34:18 +02:00
renovate[bot]
22388087df
fix(deps): update dependency mime-types to v2.1.35 2024-08-01 03:43:04 +00:00
renovate[bot]
f89288414a
chore(deps): update dependency @types/ws to v8.5.12 2024-08-01 00:53:42 +00:00
Reto Brunner
a61bc14456 remove dns resolution order override
This is the default for node 18.
2024-07-24 19:42:01 +02:00
Reto Brunner
718db3ae88 client: use topic command in topic change
A user on IRC reported a bug where the topic would change to ":hello"
when the topic was modified to "hello" via the channel topic edit field.

The reason is that irc-framework also sanitizes /RAW commands
and hence our manually escaped trailing param gets another ":"
(which I'm not exactly sure it should be doing... /raw means raw
in my world, but oh well).

We do have a proper /topic command a user could be using, so the
fix is to just do that in the input box as well.
2024-07-16 22:22:13 +02:00
Reto Brunner
e2ddabe032 update browserlist 2024-07-11 08:55:13 +02:00
Reto Brunner
6b9c2f5f58 update dependency sortablejs to v1.15.2 2024-07-11 08:36:34 +02:00
Reto Brunner
74cfff0034 update dependency got to v11.8.6 2024-07-11 08:32:38 +02:00
Reto Brunner
40a4434c8c update dependency vue-eslint-parser to v9.4.3 2024-07-11 08:32:03 +02:00
Reto Brunner
322d293f88 update dependency socket.io to v4.6.2 2024-07-11 08:31:06 +02:00
Reto Brunner
210d830fd0 update dependency postcss to v8.4.39 2024-07-11 08:29:38 +02:00
Reto Brunner
4990a6d9c6 update dependency @vue/test-utils to v2.4.6 2024-07-11 08:27:29 +02:00
Reto Brunner
f59ebc7d86 update dependency @types/ws to v8.5.10 2024-07-11 08:24:20 +02:00
renovate[bot]
1ccce14d01
fix(deps): update dependency got to v11.8.6 2024-07-01 02:25:52 +00:00
renovate[bot]
a051a70b02
chore(deps): update dependency vue-eslint-parser to v9.4.3 2024-07-01 02:25:42 +00:00
renovate[bot]
81c8db8374
chore(deps): update dependency postcss to v8.4.39 2024-06-30 19:09:15 +00:00
renovate[bot]
a900943345
fix(deps): update dependency socket.io to v4.6.2 [security] 2024-06-19 19:51:34 +00:00
renovate[bot]
f3bdec0078
chore(deps): update dependency sortablejs to v1.15.2 2024-06-01 02:14:44 +00:00
Reto Brunner
0d9c184f19 server: fix time handling
The framework may emit messages which do not have a time stamp.
We tried to unconditionally convert the time field, fix that.

The Msg constructor replaces falsey time fields with the current
date so we can also remove the duplication from that codepath.
2024-05-16 22:15:39 +02:00
Max Leiter
4de413070d
Merge pull request #4873 from thelounge/types
client: remove setAppBadge and clearAppBadge
2024-05-12 23:08:52 -07:00
Reto Brunner
0955d9df06 Identd: fix various issues
There's a bunch of sub optimal behavior from our ident server.
For one, it allows user enumeration which we don't really want and it doesn't clean up connections that don't send any data.

Fix that
2024-05-12 11:51:18 +02:00
Reto Brunner
cb4aaf6a97 client: remove setAppBadge and clearAppBadge
They already ship with typescript's lib.dom.d.ts
2024-05-10 13:21:18 +02:00
Reto Brunner
45c2fc87ee client: properly type Socket in window 2024-05-10 12:27:41 +02:00
Reto Brunner
29fcc2da05 ident: close connections if they don't send data 2024-05-09 19:01:10 +02:00
Reto Brunner
12679081c8 ident: fix write after connection end
We only respond once to data, then half-close the connection.
Hence, we should only listen to a single data event as well,
else if the remote doesn't stop sending data we keep trying to
write to the closed write end of the pipe.
2024-05-09 19:01:10 +02:00
Reto Brunner
0e48014d5a ident: only respond if the ip,port tuples match
Per RFC 1413, The uniquely identifying tuple includes not only the ports,
but also both addresses.

If multiple connections happen to use the same local port number
(which is possible if the addresses differ), the username of the first
is returned for all, resulting in the wrong ident for all but the
first.

By not checking the connection address, the information becomes
public. Because there is only relatively small number of local ports,
and the remote ports are likely to be either 6667 or 6697, it becomes
trivial to enumerate all the users.

Co-Authored-By: Juerd Waalboer <juerd@tnx.nl>
2024-05-09 19:01:10 +02:00
Reto Brunner
4819406af5 ident: order imports 2024-05-09 17:24:53 +02:00
renovate[bot]
9e6eef3020
chore(deps): update dependency @vue/test-utils to v2.4.6 2024-05-08 02:08:59 +00:00
renovate[bot]
33e08390f9
chore(deps): update dependency @types/ws to v8.5.10 2024-05-05 04:50:37 +00:00
Max Leiter
74563effa7
Merge pull request #4869 from thelounge/tsUpdate
Ts update
2024-05-04 21:49:58 -07:00
Max Leiter
cbab10f416
Merge pull request #4870 from thelounge/dts
remove unused .d.ts file
2024-05-04 21:46:54 -07:00
Reto Brunner
4dfeb899b4 remove unused .d.ts file 2024-05-04 13:45:40 +02:00
Reto Brunner
3259ac596d client: fix all new linter errros 2024-05-04 12:29:57 +02:00
Reto Brunner
3fbbc39cd6 client/commands: statically import commands
Dynamic imports won't work very well with modules and we don't
really need them, it's just there to save us an import statement.

Let's flip this to a static version.
2024-05-04 12:29:57 +02:00
Reto Brunner
9ae9482223 bump all eslint related deps 2024-05-02 08:21:34 +02:00
Reto Brunner
a3953405ed bump eslint to latest 8.* 2024-04-27 13:19:39 +02:00
Reto Brunner
9086bc648d bump typescript to v5 2024-04-27 13:06:30 +02:00
Reto Brunner
da2572fe25 Merge remote-tracking branch 'origin/renovate/read-0.x' 2024-04-27 12:50:11 +02:00
Reto Brunner
d9977df315 Merge remote-tracking branch 'origin/renovate/sqlite3-3.x' 2024-04-27 12:48:20 +02:00
Reto Brunner
cc0aa5e8e5 Merge remote-tracking branch 'origin/renovate/npm-webpack-dev-middleware-vulnerability' 2024-04-27 12:47:01 +02:00
Reto Brunner
02df78b0f2 Merge remote-tracking branch 'origin/renovate/npm-express-vulnerability' 2024-04-27 12:46:42 +02:00
Reto Brunner
18b0e06855 Merge remote-tracking branch 'origin/renovate/express-4.x' 2024-04-27 12:46:27 +02:00
Reto Brunner
d5db9c653b Merge remote-tracking branch 'origin/renovate/ua-parser-js-0.x' 2024-04-27 12:46:09 +02:00
Reto Brunner
f7926267d9 untangle client and server
Our project was quite confused as to the boundaries between client and
server code.
This false sharing meant that it was quite hard to tell what was actually
sent to the client and what was uniquely scoped to either side.

Further, this meant that our compilation and build pipelines were very
confused and pulled in files they should not have.

This commit series tries to untangle the two. This also entails fixing
quite some typing issues.
It's hard to make this in sane, small, commits that still build at each
step (it's impossible, as fixing one type error / any type immediately lead
to further errors in a game of whack a mole).
So you'll get my actual progress in small commits that can each be reviewed,
however the earlier ones are in fact sometimes wrong and get cleaned up later
once the picture is a bit clearer.
2024-04-26 09:39:15 +02:00
Reto Brunner
8eb398c5cc server: don't throw in async callback from index requests
This was flagged as an issue by codeQL

> Server crash [High]
> The server of this route handler will terminate when an
> uncaught exception from this location escapes an
> asynchronous callback.
2024-04-21 15:49:51 +02:00
Reto Brunner
36cb75ee99 NetworkForm: disable unsafe return lints for now
The NetworkForm type is wrong, hence the compiler can't infer the type.
This needs quite some changes, so for now we just turn the linter off
for the 2 watch functions.
The whole component is too dynamic to fix easily.
2024-04-21 15:11:52 +02:00
Reto Brunner
1ec67a6605 test/sqlite: remove unused eslint directive 2024-04-21 15:11:52 +02:00
Reto Brunner
8372c5a57e test: token in init event payload is undefined not null
Doesn't matter which, code happens to emit undefined.
Adapt test expectation over writing strange || null code.
The conditional just checks for a falsey value.
2024-04-21 15:11:52 +02:00
Reto Brunner
5567f07a7c test/chan: remove users field from test
The client side fetches the user list when needed, we don't send
it over from the server.
Hence modify the test expectation.
2024-04-21 15:11:52 +02:00
Reto Brunner
a200bab8bd test/chan: getFilteredClone has more fields than the test thinks
The codebase shoves various things into channel objects to transmit them
for things like channel lists etc.

This however means that the type does contains the fields and needs
to export them.

We should clean up the events so that we can get rid of all that.
But for now, we adapt the test expectation to reality.
2024-04-21 15:11:52 +02:00
Reto Brunner
91ac363cc6 components/MessageTypes/errors: fix eslint errors
This makes the code somewhat ugly, but to properly fix we need
to enforce the needed fields
2024-04-21 15:11:52 +02:00
Reto Brunner
6c9d2c36a1 components/Message: fix eslint errors 2024-04-21 15:11:52 +02:00
Reto Brunner
6241eed8f4 client/ImageViewer: fix types and guard against undefined 2024-04-21 15:11:52 +02:00
Reto Brunner
03151e0ab1 test/plugins/sqlite: fix import path 2024-04-21 15:11:52 +02:00
Reto Brunner
7f5e0f3ebf test/plugins/link: fix import path 2024-04-21 15:11:52 +02:00
Reto Brunner
5e444be37b test/models/network: fix import path 2024-04-21 15:11:52 +02:00
Reto Brunner
c8664301ba test/models/msg: fix linkpreview import 2024-04-21 15:11:52 +02:00
Reto Brunner
1edb5a72c1 test/models/chan: we do not send an empty user list anymore 2024-04-21 15:11:52 +02:00
Reto Brunner
31d987283a fix mode tests 2024-04-21 15:11:52 +02:00
Reto Brunner
4ceafb653f test/client: fix import path 2024-04-21 15:11:52 +02:00
Reto Brunner
f25fee4c6c previews: fix possibly undefined 2024-04-21 15:11:52 +02:00
Reto Brunner
96848c1c1b msg_preview: fix possibly undefined error 2024-04-21 15:11:52 +02:00
Reto Brunner
4b07e05491 client: add missing import for SharedMsg 2024-04-21 15:11:52 +02:00
Reto Brunner
fc9805545b sharedMsg: remove userAway
userAway is purely server side and we don't send it to the client
2024-04-21 15:11:52 +02:00
Reto Brunner
82e4150cc8 server: remove type cast from change pw 2024-04-21 15:11:52 +02:00
Reto Brunner
e61e356f1e server: somewhat type fix auth related functions
The auth functions are a bloody mess and need to be cleaned up.
using various callback functions and using variables as pointers makes the logic
hard to follow and hence idiotic to type too, as multiple orthogonal logic paths
are mixed up into one function.

This really needs to be untangled
2024-04-21 15:11:52 +02:00
Reto Brunner
5001d607b1 server: mark req params as unused 2024-04-21 15:11:52 +02:00
Reto Brunner
8c41356ae9 publicClient: type fix 2024-04-21 15:11:52 +02:00
Reto Brunner
e2b56cf16b irc-events/message: fix types 2024-04-21 15:11:52 +02:00
Reto Brunner
92a0affba1 kick: use the user object 2024-04-21 15:11:52 +02:00
Reto Brunner
edb96f683b cap: type the boolean 2024-04-21 15:11:52 +02:00
Reto Brunner
5c8951ffc3 fix extractTargetGroup typing 2024-04-21 15:11:52 +02:00
Reto Brunner
c3fc54e158 ignorelist: shut up the linter 2024-04-21 15:11:52 +02:00
Reto Brunner
917fdb2a0a ignore: remove dead import 2024-04-21 15:11:52 +02:00
Reto Brunner
b8400a3a46 ignore: clean up the types and conditionals
Now that ignorelist doesn't muddy the waters, we can clean up
all the funny conditional types and enforce `when`
2024-04-21 15:11:52 +02:00
Reto Brunner
071a5afda6 ignore: move ignorelist to its own command
ignorelist shares no logic with /ignore or /unignore so it shouldn't
share a file. That just makes typing awkward.
2024-04-21 15:11:52 +02:00
Reto Brunner
5274fdc21a ignore: keep happy path on the left
It is much easier to follow the control flow if error checks
are done on the indented path, immediately returning.
2024-04-21 15:11:52 +02:00
Reto Brunner
b8a9fe08ab clientCertificate: remove unsafe casts 2024-04-21 15:11:52 +02:00
Reto Brunner
a4afa08add ldap: type SearchOptions scope 2024-04-21 15:11:52 +02:00
Reto Brunner
4614c35486 chan: type untyped method params 2024-04-21 15:11:52 +02:00
Reto Brunner
540144c417 chan: remove cast in pushMessage 2024-04-21 15:11:52 +02:00
Reto Brunner
bb7c3925c6 type serverOptions for network:options 2024-04-21 15:11:52 +02:00
Reto Brunner
9898f38de6 add todo 2024-04-21 15:11:52 +02:00
Reto Brunner
9f2c82e152 fix mentions 2024-04-21 15:11:52 +02:00
Reto Brunner
17ba07db3b fix mentions import 2024-04-21 15:11:52 +02:00
Reto Brunner
0311e5f836 add socket-events import to entry point
socket-events aren't ever imported, if we don't do that however
webpack never actually sees any code that leads to it and skips
bundling it.

So for now, do an import that has the side effect of registering
all the events until we have a proper registration in place that's
a bit more sane to call
2024-04-21 15:11:52 +02:00
Reto Brunner
4d0474b897 store: don't duplicate import 2024-04-21 15:11:52 +02:00
Reto Brunner
14b9169899 store: fix import 2024-04-21 15:11:52 +02:00
Reto Brunner
50037644c0 socket-events: fix join 2024-04-21 15:11:52 +02:00
Reto Brunner
7287c6bcaa remove dead import 2024-04-21 15:11:52 +02:00
Reto Brunner
bfca0ca612 fix more 2024-04-21 15:11:52 +02:00
Reto Brunner
300bd4c84c add timestamp to NotificationOptions 2024-04-21 15:11:52 +02:00
Reto Brunner
42ea66c343 socket-events/msg: fix errors 2024-04-21 15:11:51 +02:00
Reto Brunner
1565eb8d05 socket-events/msg: if/else chains are not a switch replacement
If we switch on a field, use switch for god's sake.
If/elif chains are for cases where you have multiple selectors.
2024-04-21 15:11:51 +02:00
Reto Brunner
29750a3e51 ClientChan: does need a user array after all 2024-04-21 15:11:51 +02:00
Reto Brunner
3ea5170e6a socket-events: fix network:status 2024-04-21 15:11:51 +02:00
Reto Brunner
fe4f497fad fix socket-event: network 2024-04-21 15:11:51 +02:00
Reto Brunner
c20cd6bda1 publicClient: add FIXME and ignore the type mismatch
The publicClient interface is utterly horrific.
It allows any client to inject arbitrary events into the socket.io
event stream.
This should get wrapped into a "plugin" event so that it can get properly
typed, better yet, this should get removed completely.
2024-04-21 15:11:51 +02:00
Reto Brunner
1c4ce5d4a5 fix sync_sort:channels emitter 2024-04-21 15:11:51 +02:00
Reto Brunner
9c4d24d1f7 fix join socket type 2024-04-21 15:11:51 +02:00
Reto Brunner
35e38d13c4 client: properly type the emit method
This breaks the world -.-
2024-04-21 15:11:51 +02:00
Reto Brunner
bf7eb0e727 network event: remove unused array
All the network events only ever emit a single copy
There's no point in wrapping it into an array
2024-04-21 15:11:51 +02:00
Reto Brunner
5ee9c2b338 type Server 2024-04-21 15:11:51 +02:00
Reto Brunner
e15b121080 remove obsolete error override 2024-04-21 15:11:51 +02:00
Reto Brunner
98452ccc18 remove obsolete import 2024-04-21 15:11:51 +02:00
Reto Brunner
a8e7022d04 fix search event params 2024-04-21 15:11:51 +02:00
Reto Brunner
60486bf5e3 server: fix init client 2024-04-21 15:11:51 +02:00
Reto Brunner
46f3fd9682 server: fix push subscription 2024-04-21 15:11:51 +02:00
Reto Brunner
56215382a3 server: remove static props which are currently unused 2024-04-21 15:11:51 +02:00
Reto Brunner
9ab9ad0f56 socket-events: fix up init 2024-04-21 15:11:51 +02:00
Reto Brunner
0660a8772c server: fix getFilteredClone of chan 2024-04-21 15:11:51 +02:00
Reto Brunner
f5c691f37b wip: unbork init progress 2024-04-21 15:11:51 +02:00
Reto Brunner
0067c30273 Split sort event
The sort event bundled networks and channels for no reason at all.
They share none of the actual logic, so combining them just makes
the typing poor but serves no benefit.
2024-04-21 15:11:51 +02:00
Reto Brunner
843db1727b server: actually type the socket 2024-04-21 15:11:51 +02:00
Reto Brunner
e9ef59b641 fix bad typing
There were quite some errors, where the type was passed the wrong way
```
// This is invalid
"change-password": ({ old_password: string, new_password: string, verify_password: string})

// What was actually meant
"change-password": (data: { old_password: string, new_password: string, verify_password: string})
```

The whole callback function is also very verbose as is, with fluff we don't need.
It's always a function that returns void, so there's no real information to be gained
by spelling it out time and time again.

Let's use a helper type that just accepts the payload.
That should make the above error impossible to do.
2024-04-21 15:11:51 +02:00
Reto Brunner
fceffd42b9 fix missing import 2024-04-21 15:11:51 +02:00
Reto Brunner
b89b0cad53 client: id is always a string, not a number 2024-04-21 15:11:51 +02:00
Reto Brunner
c869ea9a73 sharedchans does not have users 2024-04-21 15:11:51 +02:00
Reto Brunner
9aee3e3e98 Some whitespace is good mkey 2024-04-21 15:11:51 +02:00
Reto Brunner
636b5c5b04 models/network: unfuck client export 2024-04-21 15:11:51 +02:00
Reto Brunner
6984e8f25a unused import 2024-04-21 15:11:51 +02:00
Reto Brunner
e43cbb139c remove all server files from compilation 2024-04-21 15:11:51 +02:00
Reto Brunner
e57e547b74 further chan fixes 2024-04-21 15:11:51 +02:00
Reto Brunner
3217536245 searchresponse 2024-04-21 15:11:51 +02:00
Reto Brunner
194b4e1a2f import fix 2024-04-21 15:11:51 +02:00
Reto Brunner
88c8830a17 chatuserlist 2024-04-21 15:11:51 +02:00
Reto Brunner
7073584f1c fix msg event 2024-04-21 15:11:51 +02:00
Reto Brunner
8e6920af1d configuration 2024-04-21 15:11:51 +02:00
Reto Brunner
7bc184b252 changelog data type 2024-04-21 15:11:51 +02:00
Reto Brunner
4d237600d5 changelog: don't type assert to a broken type
The mandatory fields are unset, stop lying to the compiler
2024-04-21 15:11:51 +02:00
Reto Brunner
383907c2b8 Use SharedTypes 2024-04-21 15:10:45 +02:00
Reto Brunner
f0ee3be6fb wip: config 2024-04-21 15:10:45 +02:00
Reto Brunner
12a0b0b6f9 network 2024-04-21 15:10:45 +02:00
Reto Brunner
d716402da2 mention 2024-04-21 15:10:45 +02:00
Reto Brunner
d0b71aba32 shared: extract chan + user 2024-04-21 15:10:45 +02:00
Reto Brunner
3f0ee6a961 move chan enums 2024-04-21 15:10:45 +02:00
Reto Brunner
b67e4699f5 wip sharedmsg in client 2024-04-21 15:10:45 +02:00
Reto Brunner
68ba13ca12 wip: searchquery 2024-04-21 15:10:45 +02:00
Reto Brunner
3eb19135f5 wip: msg 2024-04-21 15:10:41 +02:00
Max Leiter
549c445853
Merge pull request #4856 from thelounge/generateConfigDoc
fix generate-config-doc.js
2024-04-07 19:38:13 -07:00
Reto Brunner
2466c1b1e4 fix generate-config-doc.js
It errored out with
> Error: Cannot find module '../server/log'
Which is expected, but we don't really need it, we can just open code
the log functions
2024-04-07 16:22:08 +02:00
Reto Brunner
f5867c3643 v4.4.3
Bump version to kick CI/CD for the actual deployment
2024-04-06 13:48:04 +02:00
Reto Brunner
231c498def release workflow: fix broken npm update
The release workflow wants to use --provenance but the update fails:

Run npm install -g npm
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/share/man/man7
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/share/man/man7'
npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/share/man/man7'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/usr/local/share/man/man7'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

So we fix it by just telling the action what we want rather than monkey patching it.

Link: https://github.com/thelounge/thelounge/actions/runs/8580746748/job/23517165611
2024-04-06 13:31:48 +02:00
Reto Brunner
eeaec413d6 v4.4.2 2024-04-03 08:20:36 +02:00
Reto Brunner
515f894c13 changelog: don't break if author is nil
The author field can somehow be null for whatever reason...
Guard the script against blowing up
2024-04-01 15:15:50 +02:00
renovate[bot]
e8f6ba5b08
chore(deps): update dependency @types/ua-parser-js to v0.7.39 2024-04-01 00:49:35 +00:00
renovate[bot]
07276bbde4
chore(deps): update dependency @types/express to v4.17.21 2024-04-01 00:49:23 +00:00
renovate[bot]
9ad92e1860
fix(deps): update dependency express to v4.19.2 [security] 2024-03-28 00:33:05 +00:00
renovate[bot]
7923d4a2cd
chore(deps): update dependency webpack-dev-middleware to v5.3.4 [security] 2024-03-23 16:07:59 +00:00
renovate[bot]
9248358169
chore(deps): update dependency @types/sqlite3 to v3.1.11 2024-03-01 02:16:09 +00:00
renovate[bot]
6ab52bc9a9
chore(deps): update dependency @types/read to v0.0.32 2024-03-01 02:15:57 +00:00
Reto Brunner
48213955b9 v4.4.2-rc.1 2024-02-19 19:52:37 +01:00
Reto Brunner
682b3b91aa rc changelog 2024-02-19 19:46:46 +01:00
Reto Brunner
be3e27aa19 Merge remote-tracking branch 'origin/pull/4231' 2024-02-19 13:50:00 +01:00
Reto Brunner
c09f751552 Merge remote-tracking branch 'origin/pull/4834' 2024-02-19 13:45:53 +01:00
Reto Brunner
fb5864ee00 Merge branch 'linkifyOverride' 2024-02-19 13:43:00 +01:00
Reto Brunner
3bd5b704c7 Merge remote-tracking branch 'origin/renovate/node-17.x' 2024-02-19 13:37:06 +01:00
Reto Brunner
139ce47b73 update @types/mousetrap 2024-02-19 13:34:46 +01:00
Zach Bloomquist
45563d9a59
server: remove version from CTCP response 2024-02-01 00:09:45 -05:00
renovate[bot]
e2fda1fb84
chore(deps): update dependency @types/node to v17.0.45 2024-02-01 03:42:37 +00:00
renovate[bot]
a77fbb894f
chore(deps): update dependency @types/mousetrap to v1.6.15 2024-02-01 03:42:30 +00:00
renovate[bot]
fe50a90235
chore(deps): update dependency @types/lodash to v4.14.202 2024-02-01 01:15:55 +00:00
Reto Brunner
a8be84028c Merge rm-node-16 2024-01-28 10:55:12 +01:00
Max Leiter
25e55ce75c
Merge pull request #4815 from thelounge/renovate/sqlite3-5.x
chore(deps): update dependency sqlite3 to v5.1.7
2024-01-27 15:56:29 -08:00
Max Leiter
113e9bd2fb Remove Node.js 16 from package.json and testing matrix
Node.js 16 entered EOL in September 2023 (https://nodejs.org/en/blog/announcements/nodejs16-eol)
2024-01-27 15:55:55 -08:00
Max Leiter
2b146ba3e6
Merge pull request #4825 from thelounge/testingSetup
Testing setup
2024-01-27 15:40:09 -08:00
Max Leiter
f95dd29a0d
Merge pull request #4811 from thelounge/renovate/textcomplete-textarea-0.x
chore(deps): update dependency @textcomplete/textarea to v0.1.13
2024-01-27 15:40:01 -08:00
Max Leiter
91dc719c93
Merge branch 'master' into testingSetup 2024-01-27 15:34:07 -08:00
Max Leiter
5af893db3a
Merge pull request #4826 from thelounge/huskyDie
Remove husky, add githooks-install
2024-01-27 15:33:26 -08:00
Nachtalb
daabb76781
Add shorcut to navigate between channels with undread msgs 2024-01-27 22:50:10 +01:00
Reto Brunner
393d0a63b7 Remove husky, add githooks-install
Fixes: https://github.com/thelounge/thelounge/issues/4452
2024-01-27 16:59:46 +01:00
Reto Brunner
037fc479b8 test: be specific as to which command we want to invoke 2024-01-27 15:41:46 +01:00
Reto Brunner
646bafab99 mocha: move spec to invocation
If we specify the spec in the config file, we can't manually
specify a specific test file from the cli.

This is annoying, as the alternative is copying out the full
package.json blurb into the shell.

Rather, give the spec in the invocation and add a helper
that makes testing a specific file simple.

With this `yarn test:nospec test/plugins/link.ts` will only run
tests within that file
2024-01-27 15:34:13 +01:00
Reto Brunner
d4c77c74f6 test:mocha remove duplicate flags
We already specify color in the config file.
ts-node is already required in the config file
2024-01-27 15:26:37 +01:00
Reto Brunner
eeefeb229c mocharc: Remove interactive
Interactive isn't a thing according to the help output or the
config docs
2024-01-27 15:24:09 +01:00
Reto Brunner
29c5323bfd test:mocha: webpack doesn't switch on NODE_ENV=test
So we might as well not complicate the cli for no reason
2024-01-27 14:11:30 +01:00
Reto Brunner
a12ddc75d8 test:mocha don't run coverage report
Tests should run the tests, not the coverage.
Frequently one is debugging a test, the coverage won't change
between runs but it delays the cycle considerably.

Rather, if one wants to look at the coverage, one should use
the "coverage" command
2024-01-27 14:11:30 +01:00
Reto Brunner
dd24cb1300 linkify: simplify noscheme detection logic
Overriding the built in is poor form, as this prevents adding
a new type handler with its own normalize handler.

We only ever want to override protocol-less URLs to http, so
we just do so explicitly in the "//" schema normalizer.

This also means that we don't need all that type conversion dance,
we simply set the schema to null when we patch it and filter on the
schema directly
2024-01-21 21:18:09 +01:00
SoniEx2
ae6bae69ac linkify: Add web+ schema support
Co-Authored-By: Reto Brunner <reto@slightlybroken.com>
2024-01-21 17:47:32 +01:00
renovate[bot]
b5372e3ed7
chore(deps): update dependency sqlite3 to v5.1.7 2024-01-06 10:39:32 +00:00
Reto Brunner
d15998d919 Merge renovate/content-disposition-0.x 2024-01-04 19:04:00 +01:00
Reto Brunner
436bf6a180 Merge renovate/linkify-it-3.x 2024-01-04 19:03:40 +01:00
renovate[bot]
1d2fdd95b0
chore(deps): update dependency @types/linkify-it to v3.0.5 2024-01-01 03:42:56 +00:00
renovate[bot]
eaa70caad7
chore(deps): update dependency @types/is-utf8 to v0.2.3 2024-01-01 03:42:48 +00:00
renovate[bot]
aa95032760
chore(deps): update dependency @types/content-disposition to v0.5.8 2024-01-01 01:41:48 +00:00
renovate[bot]
e636121d7a
chore(deps): update dependency @textcomplete/textarea to v0.1.13 2024-01-01 01:41:39 +00:00
Max Leiter
083abae750
Merge pull request #4783 from thelounge/router-api
router: don't use next() in router guards
2023-12-26 16:49:37 -08:00
Max Leiter
01cfe3d19d
Merge pull request #4807 from flotwig/fixup-generate-config-docs-script
scripts: fix generate-config-doc, handle usage errors
2023-12-26 16:49:20 -08:00
Reto Brunner
7f0b721790 add storage cleaner
Introduce the ability to clean up old messages from the sqlite db.
The StoragePolicy can be chosen by the user. Currently there's
two versions, delete everything based on age is the obvious.

The other is for the data hoarders among us. It'll only delete
message types which can be considered low value... Types with
a time aspect like away / back... joins / parts etc.

It tries to do that in a sensible way, so that we don't block
all other db writers that are ongoing.
The "periodically" interval is by design not exposed to the user.
2023-12-26 12:00:53 +01:00
Reto Brunner
edb1226b47 sqlite: add msg type index to speed up cleaner 2023-12-24 16:55:45 +01:00
Reto Brunner
b0ca8e51fb wire up storage cleaner upon server start 2023-12-24 16:55:45 +01:00
Reto Brunner
21b1152f53 cleaner: expose cli task to do cleaning + vacuum
Make the cleaner available to users by exposing it as a subcommand
to thelounge storage.

This is recommended to be run whenever the storage policy significantly
changes in a way that makes many messages eligible for deletion.
The cleaner would cope, but it'll be inefficient and can take many hours.
Due to how storage works in sqlite, the space would not actually be
given back to the OS, just marked for future writes.
Hence this also runs a vacuum to compact the DB as much as it can.
2023-12-24 16:55:45 +01:00
Reto Brunner
74aff7ee5a introduce storage cleaner
Once this is getting hooked up, it'll periodically delete old
messages.

The StoragePolicy can be chosen by the user, currently there's
two versions, delete everything based on age is the obvious.

The other is for the data hoarders among us. It'll only delete
message types which can be considered low value... Types with
a time aspect like away / back... joins / parts etc.

It tries to do that in a sensible way, so that we don't block
all other db writers that are ongoing.
The "periodically" interval is by design not exposed to the user.
2023-12-24 16:55:45 +01:00
Reto Brunner
14d9ff247d sqlite: implement deleteMessages
This is laying the foundation to build a cleaning task that's
sort of database agnostic.
All calls are done by acting on a "DeletionRequest" so interpretation
of the config will go through a single point
2023-12-23 21:08:07 +01:00
Reto Brunner
aec8d0b033 sqlite: accept db connection string
This allows us to inject a memory db during testing
2023-12-23 21:08:07 +01:00
Reto Brunner
60ddf17124 sqlite: use variadic function for serialize_run
This makes the usage of the function a bit nicer
2023-12-23 21:08:07 +01:00
dependabot[bot]
20227b174c
build(deps): bump @babel/traverse from 7.18.9 to 7.23.6
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.18.9 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-23 10:07:23 +00:00
Reto Brunner
d18182da8b Merge 'renovate/cheerio-0.x' 2023-12-20 07:40:09 +01:00
Reto Brunner
ea35040b42 Merge renovate/bcryptjs-2.x 2023-12-20 07:38:59 +01:00
Reto Brunner
97f553eea8 cli: don't fail if stderr is not in json format
A user reported in the IRC chan that installing packages fails with

```
2023-12-13 20:02:34 [INFO] Installing thelounge-theme-solarized v1.1.9...
undefined:1
(node:3329) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
^
SyntaxError: Unexpected token '(', "(node:3329"... is not valid JSON
```

Now, this happens as yarn helpfully prints a deprecation warning
that is shown in the stack trace.

Let's assume that we may get non json messages and log them at debug, as we
don't know their severity.
2023-12-13 22:55:53 +01:00
Zach Bloomquist
6603c1a6e6
scripts: fix generate-config-doc, handle usage errors 2023-12-12 11:52:45 -05:00
renovate[bot]
73a529acea
chore(deps): update dependency @types/cheerio to v0.22.35 2023-12-01 01:11:42 +00:00
renovate[bot]
2f40d9dbcc
chore(deps): update dependency @types/bcryptjs to v2.4.6 2023-12-01 01:11:29 +00:00
Reto Brunner
d1561f8ebc sqlite: return new version in downgrade()
We want to give the caller the current version, not the last
version we rolled back, fix that
2023-11-06 07:52:59 +01:00
Reto Brunner
ec75ff00cb sqlite: don't modify global array during tests 2023-11-06 07:52:59 +01:00
Reto Brunner
884a92c74b sqlite: fix typo fetch_rollbacks 2023-11-06 07:52:59 +01:00
Reto Brunner
77b64c546b dont' crash on rDNS failure 2023-11-06 07:36:52 +01:00
Reto Brunner
cc59e6b578 Merge renovate/is-utf8-0.x 2023-11-04 12:22:05 +01:00
Reto Brunner
fb1d79f5fa Merge renovate/bcryptjs-2.x 2023-11-04 12:21:46 +01:00
Reto Brunner
100ff3c198 Merge renovate/actions-setup-node-4.x 2023-11-04 12:19:04 +01:00
Reto Brunner
d893feff1c Merge renovate/mousetrap-1.x 2023-11-04 12:18:47 +01:00
Reto Brunner
88a5fef4ea Merge renovate/lodash-4.x 2023-11-04 12:17:54 +01:00
Reto Brunner
5b64ecbe68 Merge renovate/content-disposition-0.x 2023-11-04 12:11:33 +01:00
Reto Brunner
5024acd7dc Merge renovate/cheerio-0.x 2023-11-04 12:10:14 +01:00
Reto Brunner
bbfada251c Merge renovate/npm-postcss-vulnerability 2023-11-04 12:09:49 +01:00
Reto Brunner
8cec292f2c Merge dependabot/npm_and_yarn/get-func-name-2.0.2 2023-11-04 12:08:42 +01:00
Reto Brunner
22ae594cc3 bump caniuse-lite 2023-11-04 12:04:51 +01:00
Reto Brunner
1c6bec2323 Merge branch 'cliMigrations' 2023-11-04 11:59:41 +01:00
Reto Brunner
9105fbc23a Merge branch 'emoji' 2023-11-04 11:53:30 +01:00
Reto Brunner
8c54cd50d8 don't crash on rDNS failure
Node apparently throws even on valid ipv6 input in certain environments,
probably due to the DNS server returning SERVFAIL.
Guard against it and fallback with the plain IP

Fixes: https://github.com/thelounge/thelounge/issues/4768
2023-11-04 11:45:11 +01:00
renovate[bot]
59de6afd3f
chore(deps): update dependency @types/is-utf8 to v0.2.2 2023-11-01 00:33:46 +00:00
renovate[bot]
b506966b08
chore(deps): update dependency @types/bcryptjs to v2.4.5 2023-11-01 00:33:33 +00:00
renovate[bot]
785ec0a0e2
chore(deps): update actions/setup-node action to v4 2023-10-24 16:50:41 +00:00
renovate[bot]
250433c875
chore(deps): update dependency @types/mousetrap to v1.6.13 2023-10-19 10:52:51 +00:00
renovate[bot]
d4d5a8e386
chore(deps): update dependency @types/lodash to v4.14.200 2023-10-19 08:04:02 +00:00
renovate[bot]
bcca111a4d
chore(deps): update dependency @types/content-disposition to v0.5.7 2023-10-19 02:00:59 +00:00
renovate[bot]
b686059c6b
chore(deps): update dependency @types/cheerio to v0.22.33 2023-10-19 02:00:46 +00:00
renovate[bot]
ff77a33663
chore(deps): update dependency postcss to v8.4.31 [security] 2023-10-08 01:28:22 +00:00
dependabot[bot]
d308e74183
build(deps): bump get-func-name from 2.0.0 to 2.0.2
Bumps [get-func-name](https://github.com/chaijs/get-func-name) from 2.0.0 to 2.0.2.
- [Release notes](https://github.com/chaijs/get-func-name/releases)
- [Commits](https://github.com/chaijs/get-func-name/commits/v2.0.2)

---
updated-dependencies:
- dependency-name: get-func-name
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-28 05:21:42 +00:00
Reto Brunner
f999db99c7 Merge branch 'renovate/linkify-it-3.x' 2023-09-18 21:03:10 +02:00
Reto Brunner
76c896aea2 Merge branch 'renovate/bcryptjs-2.x' 2023-09-18 20:22:50 +02:00
dependabot[bot]
08413c7b6b
build(deps): bump word-wrap from 1.2.3 to 1.2.5
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 18:13:29 +00:00
renovate[bot]
48301b1ca3
chore(deps): update dependency @types/bcryptjs to v2.4.4 2023-09-16 19:28:31 +00:00
Reto Brunner
03795a2718 router: don't use next() in router guards
Vue wants to get rid of the next call.
https://router.vuejs.org/guide/advanced/navigation-guards.html#Optional-third-argument-next

For one of the router guards, it's easy enough to do so let's do
that.
2023-09-16 13:17:06 +02:00
renovate[bot]
2985727996
chore(deps): update dependency @types/linkify-it to v3.0.3 2023-09-01 01:55:02 +00:00
Max Leiter
9f05a75c39
Merge pull request #4770 from thelounge/smallTScleanup 2023-07-31 11:04:08 -07:00
Reto Brunner
c0b38d4762 store: use return type over a type cast 2023-07-31 10:50:48 +02:00
Reto Brunner
2878f87879 Respect bind setting for all outgoing requests
So far the bind config only impacted the IRC connections.
However, nothing in our doc comment says that this is intentional.

bind
Set the local IP to bind to for outgoing connections.

This commit fixes the leak and uses it for all outgoing requests
as described by the docstring.
2023-07-16 12:02:22 +02:00
dependabot[bot]
447a237fc6
build(deps): bump semver from 7.3.5 to 7.5.2
Bumps [semver](https://github.com/npm/node-semver) from 7.3.5 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.5...v7.5.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-16 09:56:00 +00:00
Reto Brunner
430a865e9f update dependency postcss to v8.4.26 2023-07-16 11:52:16 +02:00
Reto Brunner
816b7686e3 update dependency @types/chai to v4.3.5 2023-07-16 11:50:19 +02:00
Reto Brunner
2e019a2fdb update dependency @types/lodash to v4.14.195 2023-07-16 11:49:15 +02:00
Reto Brunner
4f9ca3e192 update dependency @vue/test-utils to v2.4.0 2023-07-16 11:45:47 +02:00
Reto Brunner
57c4d5513c update dependency webpack-hot-middleware to v2.25.4 2023-07-16 11:42:58 +02:00
Reto Brunner
3e21bfcbea update dependency cheerio to v1.0.0-rc.12 2023-07-16 11:35:49 +02:00
Reto Brunner
607b9fc96a update emoji 2023-07-15 10:41:43 +02:00
Reto Brunner
1a1153aed6 use shebang for generate-emoji script 2023-07-15 10:40:44 +02:00
renovate[bot]
54ff563247
chore(deps): update dependency postcss to v8.4.26 2023-07-14 20:02:42 +00:00
Reto Brunner
ed0a47fe2c bump emoji-regex to latest
Fixes: https://github.com/thelounge/thelounge/issues/4761
2023-07-12 08:24:58 +02:00
Reto Brunner
3af4ad1076 Respect bind setting for all outgoing requests
So far the bind config only impacted the IRC connections.
However, nothing in our doc comment says that this is intentional.

> ### bind
> Set the local IP to bind to for outgoing connections.

This commit fixes the leak and uses it for all outgoing requests
as described by the docstring.
2023-06-25 19:30:52 +02:00
Reto Brunner
79fae26f39 test/storage: use helper for url creation
We keep repeating ourselves, let's move that into a helper instead.
In order to get a sane host, we fix the listener to 127.0.0.1
else we get the unspecified :: ipv6 addr (on suitable hosts),
which isn't useful.
2023-06-25 19:30:52 +02:00
Reto Brunner
c6b1913b91 test/link: use helper for url creation
We keep repeating ourselves, let's move that into a helper instead.
In order to get a sane host, we fix the listener to 127.0.0.1
else we get the unspecified :: ipv6 addr (on suitable hosts),
which isn't useful.
2023-06-25 19:08:23 +02:00
Reto Brunner
071ad96d9b Merge branch 'signin' 2023-06-25 10:15:21 +02:00
Reto Brunner
2ef8b37009 sqlite: add migrations support and introduce primary key
Add the ability to migrate our db in the upwards direction.
Use the facility to add primary keys to our messages table.
This should allow work like jumping to messages and the likes.

This also introduces the framework for rollback, without actually
hooking it up.
This should be easy enough to do when the need arises.
2023-06-24 14:50:39 +02:00
Reto Brunner
8aa5e33b1d Fix semver for prerelease versions #4744 2023-06-24 14:35:41 +02:00
Reto Brunner
43a2b397a2 Add comments explaining behavior when echo-message is not available 2023-06-24 14:32:33 +02:00
Reto Brunner
c43a47afc1 Merge branch 'applePush' 2023-06-24 14:31:23 +02:00
Reto Brunner
14575c94cf Merge branch 'frameworkInternals' 2023-06-24 14:28:48 +02:00
renovate[bot]
303f53fe72
chore(deps): update dependency @vue/test-utils to v2.4.0 2023-06-23 00:52:37 +00:00
renovate[bot]
06f1387f7b
chore(deps): update dependency webpack-hot-middleware to v2.25.4 2023-06-21 23:04:16 +00:00
Reto Brunner
c5326e8795 Sign in: use v-model
There's no need to mess with DOM elements, we can use the normal
v-model approach for both username and password
2023-06-18 15:20:08 +02:00
Reto Brunner
355c5d6fa4 v4.4.1 2023-06-13 08:24:37 +02:00
Kufat
7ac2a6fd77 Fix semver for prerelease versions
Noticed this breakage while trying to install a plugin on 4.4.1-rc2.

```
> semver.default.satisfies("4.4.1-rc2", ">=4.3.0")
false
> semver.default.satisfies("4.4.1-rc2", ">=4.3.0", {includePrerelease: true})
true
```
2023-06-01 08:03:07 -04:00
renovate[bot]
c4879fdbba
fix(deps): update dependency cheerio to v1.0.0-rc.12 2023-06-01 02:09:05 +00:00
Val Lorentz
4255c1cdec Add comments explaining behavior when echo-message is not available 2023-05-30 22:09:39 +02:00
Reto Brunner
ae9d312b2a v4.4.1-rc.2 2023-05-27 08:51:42 +02:00
renovate[bot]
f7c6ba5eb1
chore(deps): update dependency @types/lodash to v4.14.195 2023-05-26 23:27:55 +00:00
Reto Brunner
4d60d9c282 bump socket.io-parser from 4.2.1 to 4.2.3 2023-05-25 07:36:54 +02:00
dependabot[bot]
af49ef21ea
build(deps): bump socket.io-parser from 4.2.1 to 4.2.3
Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.2.1 to 4.2.3.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io-parser/compare/4.2.1...4.2.3)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-25 05:33:59 +00:00
Reto Brunner
7a9ddc01e1 settings: make missing_field msg descriptive
The "missing_fields" error triggers on any missing field (duh).
"Please enter a new password" is not a sensible string for that.
2023-05-23 08:24:20 +02:00
Reto Brunner
8f08cf3d0b client: fix password change input
The TS rewrite dropped the form that was expected to be passed
as props.
That lead to the password change being borked, as the fields
were always set to "null".
We don't need a form, can just use refs here.
2023-05-23 08:18:20 +02:00
Reto Brunner
e05871fd2f 4.4.1-rc.1
Co-Authored-By: Max Leiter <maxwell.leiter@gmail.com>
2023-05-21 14:42:30 +02:00
Reto Brunner
ede48ab034 Merge branch 'previewFix' 2023-05-20 10:10:50 +02:00
Reto Brunner
4c6fa550aa Merge branch 'nodeEOL' 2023-05-20 10:09:48 +02:00
Reto Brunner
9388960497 linkPreview: Pass channel prop
Else the update logic doesn't work and we don't show
the next / prev buttons
2023-05-15 09:38:09 +02:00
Reto Brunner
7bce779254 Remove unused code 2023-05-15 09:37:40 +02:00
Reto Brunner
a7b85db990 v4.4.0 2023-05-13 13:21:12 +02:00
Reto Brunner
f4ef11de3f v4.4.0-rc.1 2023-05-06 10:39:34 +02:00
Reto Brunner
3a63484762 Merge branch 'changelog' 2023-05-06 10:36:58 +02:00
Reto Brunner
04b2bf036b bump socket.io to 4.6.1 2023-05-04 23:39:07 +02:00
Max Leiter
3066f48a69
Merge pull request #4728 from thelounge/settingsFormProp 2023-05-01 11:43:07 -07:00
renovate[bot]
ed40c83a2b
Update dependency @types/chai to v4.3.5 2023-05-01 02:39:13 +00:00
Reto Brunner
f21f665384 Add changelog for 4.4.0
Co-Authored-by: Max Leiter <maxwell.leiter@gmail.com>
2023-04-29 13:52:18 +02:00
Reto Brunner
12d9ef34f0 Client/Settings: Remove bogus settings-form prop
As is this has no effect, other than looking weird in html:
<div settings-form="[object HTMLFormElement]"><div><h2>Native app</h2>
2023-04-29 11:52:34 +02:00
Reto Brunner
9ee1cf13a8 Publish to npm with provenance 2023-04-25 22:36:42 +02:00
Lenore
ba1a4206a6 fix motd display to match settings 2023-04-25 00:49:57 +02:00
Reto Brunner
59cf29ef4a workflows: bump Windows + Mac node versions to 18 2023-04-23 21:48:39 +02:00
Reto Brunner
8e43d8083d node: remove v14, add v20 to build matrix
EOL date reached.
2023-04-23 21:46:53 +02:00
Pavel Djundik
3cd0a75ac2 Publish to npm with provenance
Ref: https://github.blog/changelog/2023-04-19-npm-provenance-public-beta/
2023-04-23 12:11:08 +03:00
Reto Brunner
21d1dbaad6 Unbreak nick colors for existing themes
https://github.com/thelounge/thelounge/pull/4649 broke existing
themes by removing the colored-nicks class from chat.

Considering that we don't bump the major version, keep backwards
compatibility for now
2023-04-17 01:11:35 +02:00
Reto Brunner
90ad06a29a Fix load of channels from user config
While the commits that caused the problem have been reverted,
this still adds test cases to it and make the loading more robust.
2023-04-08 13:46:13 +02:00
Val Lorentz
0c7cc85184 Fix load of channels from user config
Network.export() only writes the "type" key if it's a ChanType.QUERY;
so the config on disk has no "type".

This causes it to be undefined when loading, which breaks various other
checks, and then drops it the next time the config is saved.
2023-04-08 12:38:06 +02:00
Reto Brunner
3be805bd38 sqlite: Add rollback support
This enables db migrations to be undone, or "down migrated".
The down migration shouldn't be done automatically
as it could lead to severe data loss if that were done.
Hence, we still hard fail if we encounter a version lower than what
we have in the DB.

A CLI will be added in a later commit that allows users to explicitly
do that.
2023-03-31 11:34:26 +02:00
Reto Brunner
e25c296901 push: remove iOS warning
iOS 16.4 introduced webpush, we can get rid of the special case
in our settings panel.
2023-03-28 10:00:56 +02:00
Max Leiter
4babd17383
Merge pull request #4715 from progval/test-server-teardown
tests/server: Tear down test fixtures in the order they were setup
2023-03-20 13:54:06 -07:00
Max Leiter
b408843ff1
Merge pull request #4717 from thelounge/changelog
Inline logger into changelog script
2023-03-20 13:53:41 -07:00
Reto Brunner
0f3487c533 Inline logger into changelog script
We can't really import easily from our build without it being
brittle. TL isn't meant to be used as a library.

Instead, just inline the logger as it is trivial enough.
2023-03-19 23:49:42 +01:00
Reto Brunner
21ada132b1 v4.4.0-pre.2 2023-03-19 22:07:59 +01:00
Reto Brunner
2f162daee1 Revert "models/chan: don't force existence of constructor properties"
This reverts commit e31c95e32d.
2023-03-19 21:58:14 +01:00
Reto Brunner
3ac9c36d95 Revert "user: don't force existence of constructor properties"
This reverts commit c3e3322a79.
2023-03-19 21:58:14 +01:00
Reto Brunner
c30da27f95 Revert "network: don't force existence of constructor properties"
This reverts commit 429efb0c3c.
2023-03-19 21:58:14 +01:00
Reto Brunner
30a3ba489a 4.4.0-pre.1 2023-03-19 13:43:01 +01:00
Reto Brunner
0dca3954f4 Add changelog entry for v4.4.0-pre.1 2023-03-19 13:35:26 +01:00
Reto Brunner
e8b6434144 Clean up command input code 2023-03-19 12:57:08 +01:00
Val Lorentz
edc6f77c64
add setup 2023-03-18 07:50:35 +01:00
Val Lorentz
0dd74a93bf tests/server: Tear down test fixtures in the order they were setup
if for whatever reason before() fails to import the server, it causes after()
to fail on the first line, so it doesn't restore stubs; causing other errors
to be printed in other tests ("TypeError: Attempted to wrap warn which is
already wrapped")
2023-03-17 17:12:29 +01:00
Reto Brunner
4e954b919c server/client: refactor command input
Keep happy path on the left and try to return as early
as we can to help the reader understand the logic better

The function is too large to be able to quickly scan an if / else
chain and see the function return at the end
2023-03-17 11:28:54 +01:00
Reto Brunner
eb509f7100 Fix config typing and make Client easier to test 2023-03-17 11:03:50 +01:00
Reto Brunner
845dabad53 Fix sqlite query invocation in test
46da1abba4
changed the types of the db functions... fix our code to deal with it.
2023-03-17 10:57:21 +01:00
Reto Brunner
6b00ccf82b update dependency webpack to v5.76.0 2023-03-17 10:19:43 +01:00
renovate[bot]
34a01c2dd1
chore(deps): update dependency sqlite3 to v5.1.6 2023-03-15 19:08:51 +00:00
Val Lorentz
320075e376 Remove override of UserConfig 2023-03-15 11:49:13 +01:00
Val Lorentz
d58fb84565 Fix test wording 2023-03-15 08:40:53 +01:00
Val Lorentz
a049a01aeb Client: move socket connection out of the constructor
It will make it easier to write tests for what used to be in
the connect() method
2023-03-15 08:40:53 +01:00
Val Lorentz
76098d7e76 Fix incorrect typing of dehydrated networks and channels
Client and ClientManager deal with both 'dehydrated' channels/networks (ie. directly
from JSON configuration) and the 'rehydrated' ones (classes, with socket objects,
message arrays, etc.).

However, because their attributes are similar, both types were used interchangeably,
which becomes an issue when splitting Client's configuration loading into smaller
methods.
2023-03-15 08:40:53 +01:00
renovate[bot]
a67cee1ee4
chore(deps): update dependency webpack to v5.76.0 [security] 2023-03-14 22:38:59 +00:00
Reto Brunner
efd24fd12c packaging: Use an include list in package.json 2023-03-14 07:35:50 +01:00
renovate[bot]
bc4c3082b8
chore(deps): update dependency sqlite3 to v5.1.5 [security] 2023-03-14 00:17:53 +00:00
Reto Brunner
d471a4c959 packaging: Use an include list in package.json
Rather than playing whack a mole with an exclude list, let's use
an include list instead.
2023-03-12 17:44:21 +01:00
Reto Brunner
4831c20804 update dependency webpack-dev-middleware to v5.3.3 2023-03-12 12:33:10 +01:00
Reto Brunner
eddcbcc766 update dependency vue-loader to v17.0.1 2023-03-12 12:32:48 +01:00
Reto Brunner
0183d89384 update dependency sinon to v13.0.2 2023-03-12 12:32:28 +01:00
Reto Brunner
95e56300db update dependency postcss to v8.4.21 2023-03-12 12:32:12 +01:00
renovate[bot]
8e249d46af
chore(deps): update dependency postcss to v8.4.21 2023-03-12 11:18:55 +00:00
renovate[bot]
50e8d2a890
chore(deps): update dependency @vue/test-utils to v2.3.1 2023-03-10 04:58:30 +00:00
Reto Brunner
7f6059d5b7 input/raw: use the irc-framework api
We are not allowed to mess with the connection object directly
according to the public api surface of the framework
2023-03-04 18:17:17 +01:00
Reto Brunner
8ca9ee873b use the irc connected helper function
We should not mess with irc-framework internals.
Technically we shouldn't even access the connection object,
it's not part of the documented API surface
2023-03-04 18:16:28 +01:00
Reto Brunner
402332340b pluginCommand: type it and guard against bad input 2023-03-04 17:00:53 +01:00
renovate[bot]
4742a07721
chore(deps): update dependency webpack-dev-middleware to v5.3.3 2023-03-01 00:16:25 +00:00
renovate[bot]
2f8dc01930
chore(deps): update dependency vue-loader to v17.0.1 2023-03-01 00:15:55 +00:00
Reto Brunner
fade6a8d2e network: add getLobby accessor
This documents what we actually want and allows us to shift the
logic to the network
2023-02-27 18:30:33 +01:00
Reto Brunner
dfed1dd757 skip migrations if the user has disabled logging 2023-02-27 14:33:34 +01:00
Reto Brunner
d67277d996 clientManager: Expose user config 2023-02-27 14:33:34 +01:00
Reto Brunner
95aaba43fa cli: Implement storage migrate subcommand
This introduces the ability to run the migration offline, while
TL is not running as the migrations can take a long time.

The migrate command is added as a `thelounge storage` subcommand.
Reason being that it is expected that more subcommands will follow,
say `thelounge storage clean` to remove partial data from the db.
2023-02-27 14:33:34 +01:00
Reto Brunner
3e7255ff20 sqlite: Add primary keys to the messages table
We want primary keys to never get re-used to so that we
can implement jump to messages / context fetching etc
in the future.

This isn't hooked up yet at all to the rest of the code, only
the schema is changed
2023-02-27 14:20:31 +01:00
Reto Brunner
86e376fc03 sqlite: run migrations on startup 2023-02-27 14:20:31 +01:00
Reto Brunner
899762cddd sqlite: Add infrastructure for migration tests
This sets up the testing infrastructure to test migrations we are
doing.
It's done on a in memory database directly, we are only interested
in the statements themselves and it's easier than to try and
inject a prepared db into the store.

We do add some dummy data though to make sure we actually execute
the things as we expect.
2023-02-27 14:20:29 +01:00
Reto Brunner
063aca948c sqlite: don't hardcode version test 2023-02-27 14:17:04 +01:00
Reto Brunner
25642fbe98 sqlite: delete table creation test
This just repeats the hard coded values from the code, which
is not helping.
We need to touch that test whenever we modify the sql which is
undesired and it doesn't test any useful functionality.

Any error that may ensue would hopefully be tracked by the other
test.
2023-02-27 14:11:47 +01:00
Max Leiter
c2e7390127
Merge pull request #4685 from thelounge/networkProps
network: don't force existence of constructor properties
2023-02-26 17:23:23 -08:00
Max Leiter
d10a59395c
Merge pull request #4684 from thelounge/userProps
user: don't force existence of constructor properties
2023-02-26 17:22:31 -08:00
Max Leiter
8fc696620f
Merge pull request #4683 from thelounge/chanProps
models/chan: don't force existence of constructor properties
2023-02-26 17:22:06 -08:00
Max Leiter
c6a202d6ab
Merge pull request #4686 from thelounge/decoupleServer
Decouple server
2023-02-26 17:20:20 -08:00
Max Leiter
7c9ed14909
Merge pull request #4695 from maxpoulin64/fix/oidentd-crash-race-condition
Don't crash on oidentd socket race condition
2023-02-25 13:44:37 -08:00
Reto Brunner
bdc1f23107 fix formatting 2023-02-18 11:46:31 +01:00
Reto Brunner
e9a09f5447 Add id to error log 2023-02-18 11:35:52 +01:00
Reto Brunner
d93cd88dd5 Fix uploader mount/unmount lifecycle #4691 2023-02-18 11:16:30 +01:00
Pavel Djundik
2f04150461 Fix git commit not being available in dist build 2023-02-15 12:03:08 +02:00
Max Leiter
c816e4053e
Merge pull request #4692 from thelounge/irc-framework
bump irc-framework to 4.13.1
2023-02-13 20:56:38 -08:00
Max Leiter
4cff2ccabe
Link to PR in log.warn 2023-02-13 20:51:27 -08:00
Max Leiter
26b7fbf2c0
Apply suggestions from code review
Co-authored-by: Mina Galić <me+github@igalic.co>
2023-02-13 20:50:16 -08:00
Maxime Poulin
243cb10e2a
Don't crash on oidentd socket race condition 2023-02-08 22:05:22 -05:00
dependabot[bot]
7304acd8e0
build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 21:21:55 +00:00
Reto Brunner
511209a100 bump irc-framework to 4.13.1 2023-02-06 22:20:40 +01:00
Maxime Poulin
2ce374fe85 Fix uploader mount/unmount lifecycle
Currently, in `ChatInput.vue` we call `upload.abort()` which removes the event listeners, which are never added back. This effectively permanently disable uploads if the user navigates away to Settings or any other non-chat pages, and back.

Moves the binding to `mounted()` so that they're properly rebound when a chat window is in view, and also adds an `unmounted()` for clarity.

This should also fix an edge case if the page opens up on a non-chat page and there was never a ChatInput to unbind it, such as login page or add network pages.
2023-02-05 22:32:12 -05:00
Max Leiter
00366967ae
Merge pull request #4690 from maxpoulin64/fix-morning-colors
Fix Morning theme nick colors
2023-02-05 14:01:49 -08:00
Maxime Poulin
f2c59c23e2 Fix Morning theme nick colors
PR #4649 introduced a regression on the Morning theme as the `#chat.colored-nicks` CSS selector was removed from Default but not Morning. The result is that Morning no longer had nick colors.
2023-02-05 03:22:43 -05:00
renovate[bot]
90d17cacc1
chore(deps): update dependency sinon to v13.0.2 2023-02-01 02:17:22 +00:00
Reto Brunner
12c03a868d base tsconfig: remove files section
All files are specified in the individual sub projects
2023-01-30 09:14:40 +01:00
Reto Brunner
b7540b5827 Move condensedTypes to shared/
This decouples the rest of the server from the client
2023-01-30 09:14:40 +01:00
Reto Brunner
6f13735a7f eslint: add shared/ 2023-01-30 09:14:40 +01:00
Reto Brunner
60bb561e49 Extract tests to shared/ 2023-01-30 09:14:40 +01:00
Reto Brunner
e305e23c43 client: use the versions in shared/ where applicable 2023-01-30 09:14:40 +01:00
Reto Brunner
9d34955836 extract cleanIrcMessage from client to shared 2023-01-30 09:14:40 +01:00
Reto Brunner
a8149c0f1a Extract linkify to shared directory
This is the first step to sever any dependency of the server on
the client
2023-01-30 09:14:40 +01:00
Reto Brunner
21d1eea6b8 tsconfig: Add shared reference 2023-01-30 09:14:40 +01:00
Reto Brunner
e1ae79cb9c server/tsconfig: remove redundant options 2023-01-30 09:14:40 +01:00
Reto Brunner
429efb0c3c network: don't force existence of constructor properties 2023-01-30 08:52:30 +01:00
Reto Brunner
c3e3322a79 user: don't force existence of constructor properties 2023-01-30 01:45:58 +01:00
Reto Brunner
e31c95e32d models/chan: don't force existence of constructor properties 2023-01-30 00:29:09 +01:00
William Goodspeed
f785acb07d
Fix misleading LDAP filiter in default config
The default filter provided in config files is invalid. This may mislead people. Confirm to issue #4620.
2023-01-27 20:02:57 +08:00
renovate[bot]
bde5c3d443
fix(deps): update dependency ua-parser-js to v1.0.33 [security] 2023-01-24 17:40:19 +00:00
Reto Brunner
375164ca88 Merge branch 'storageCleanup' 2023-01-22 15:23:56 +01:00
Reto Brunner
7f3ac62e0d Merge branch 'searchFixTakeTwo' 2023-01-22 15:22:32 +01:00
dependabot[bot]
ce3ad56ced build(deps): bump json5 from 2.2.1 to 2.2.3
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-22 15:13:25 +01:00
Reto Brunner
efd3b64564 caniuse-lite: update db 2023-01-22 15:13:25 +01:00
renovate[bot]
6b23b87063 chore(deps): update dependency @vue/test-utils to v2.2.7 2023-01-22 15:13:25 +01:00
renovate[bot]
502fb7a705 chore(deps): update dependency @types/ws to v8.5.4 2023-01-22 15:13:24 +01:00
renovate[bot]
c854d27d3d chore(deps): update dependency sqlite3 to v5.1.4 2023-01-22 15:13:24 +01:00
Max Leiter
2803018c5a
Merge pull request #4669 from thelounge/collapseAway
allow away and back to be collapsed
2023-01-20 15:30:53 -08:00
Reto Brunner
0ebc3a574c search: ignore searchResults if it isn't the active query
Prior to this, the search is still racy but one tends to notice
this only when the DB is large or network is involved.
The user can initiate a search, get bored, navigate to another chan
issue a different search.

Now however, the results of the first search come back in and
hilarity ensues as we are now confused with the state.

To avoid this, keep track of the last search done and any result
that comes in that isn't equal to the active query is garbage and
can be dropped.
2023-01-08 11:41:09 +01:00
Reto Brunner
958a948456 sqlite: Remove client from sqlitestorage
The only reason we accepted a client was that so we have access
to the next message id when we need it.
So let's accept an id provider function instead.
2022-12-30 16:52:04 +01:00
Reto Brunner
52b8a2a78e textStorage: rip out client instance
We don't need the client, so there's no need to accept it.
2022-12-30 16:42:48 +01:00
Reto Brunner
661d5cb5b0 messagestorage: remove implementation details from interface
The interface should not contain things that aren't the API of the
storage interface.
Further, rename ISqliteMessageStorage to SearchableMessageStorage,
as that's also an implementation detail.
We'll never have a second sqlite backend, so the name seems
strange.
2022-12-30 16:42:48 +01:00
Reto Brunner
e597e75847 allow away and back to be collapsed
This means we also apply the collapsing to normal queries,
which might also collapse other things like joins / quits
which may be undesired by some

Fixes: https://github.com/thelounge/thelounge/issues/4583
2022-12-30 13:35:38 +01:00
aab12345
8b1a4f72fa Add password param to /join docs 2022-12-29 13:12:15 +01:00
Pavel Djundik
502780c5a3 Fix sidebar swipe flicker after letting go 2022-12-23 10:50:20 +02:00
Reto
073a38ef1e
Fix previous-source calculation (#4656)
CondensedMessage is a proxy object, outside of the templates
we need to unwrap it manually
2022-12-17 13:59:07 -08:00
Reto Brunner
c67df36a29 update dependency @types/lodash to v4.14.191 2022-12-04 12:58:15 +01:00
Reto Brunner
d50296385f Merge branch 'sqliteHotFix' 2022-12-04 12:54:45 +01:00
Reto Brunner
068de0c10c Merge branch 'nickColorScope' 2022-12-04 12:53:31 +01:00
renovate[bot]
d61ab7e7a0
chore(deps): update dependency @types/lodash to v4.14.191 2022-12-01 21:36:32 +00:00
Reto Brunner
2d4143b779 sqlite: synchronize enable() internally
TL is stupid and doesn't wait for message{Provider,Storage} to
settle before it starts using the store.

While this should be fixed globally, we can hack around the problem
by pushing everything onto the call stack and hope that we'll eventually
finish the setup before we blow the stack.
2022-11-30 10:28:26 +01:00
Reto Brunner
f55f772659 style: Put user colors into the smallest possible scope
The only thing that cares about user colors is the user component.
Putting a class value on the chat component seems to be the wrong
place.

This also allows us to remove various css selectors so that we
don't need to be that specific.
After all whatever has that class needs to be colored, we don't
care where it is.
2022-11-27 16:04:56 +01:00
Reto Brunner
982816ff20 store: addMessageSearchResults shouldn't accept null
It makes no sense to emit a add mutation with null, so let's
forbid it.
2022-11-27 14:06:14 +01:00
Reto Brunner
8204c3481a search: fix order of result merging
During a search, we get the results from oldest --> newest.
When we hit the more button, we get the results of the second batch
in the same order.
However, logically to the first batch everything is older, so we
need to prepend it to the result array, not
append.

msg  DB  logical ID
A    3     5
B    2     4
C    1     3

D    3     2
E    2     1
F    1     0
2022-11-27 14:06:14 +01:00
Reto Brunner
deeea274da Merge branch 'sqlite_cleanup'
Converts sqlite to async, providing a way forward
for migrations to actually happen
2022-11-24 09:45:01 +01:00
Reto Brunner
d34b58811a Merge branch 'search' 2022-11-24 09:34:24 +01:00
Reto Brunner
dfb4217167 remove VueApp from router
Nothing actually depends on the vue app being monkey patched onto
the router, so let's get rid of it.
2022-11-22 21:27:19 +01:00
dependabot[bot]
f8eb0ebafd
Bump engine.io from 6.2.0 to 6.2.1
Bumps [engine.io](https://github.com/socketio/engine.io) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/engine.io/compare/6.2.0...6.2.1)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-22 08:33:49 +00:00
Reto Brunner
fd14b4a172 make getClientConfiguration type safe
TS type assertions need to be avoided.

The following trivial example demonstrates why

```
type Person = {
	name: string;
	isBad: boolean;
};

function makePerson(): Person {
	const p: Person = {name: 'whatever'} as Person
	p.isBad = false
	return p // theoretically we are now good, p is a Person
}
```

Should the type ever change though, TS will happily trot along

```
type Person = {
	name: string;
	isBad: boolean;
	omgHowCouldYou: number;
};

function makePerson(): Person {
	const p: Person = {name: 'whatever'} as Person
	p.isBad = true
	return p // p is *not* a Person, omgHowCouldYou is missing
}
```

But we pinky swore to the compiler that p is in fact a Person.
In other words, the types are now wrong and you will fail during
runtime.
2022-11-22 03:07:29 +01:00
Reto Brunner
1597c2c56e server: the http{,s} server can't be null 2022-11-22 02:21:27 +01:00
Reto Brunner
4c7337b625 bump socket.io-client to 4.5.0 2022-11-16 07:18:26 +01:00
Reto Brunner
0765d209f2 keybinds: Fix invalid return
Mousetrap doesn't take an async function.
It either accepts False (stop key propagation) or any other
value (bubble up the event)
2022-11-16 06:50:56 +01:00
Reto Brunner
7ee4b80a6e update dependency @types/mousetrap to v1.6.11 2022-11-16 06:32:22 +01:00
Reto Brunner
21c8b0d17f Bump loader-utils from 2.0.2 to 2.0.4 2022-11-16 06:31:19 +01:00
dependabot[bot]
89245455ce
Bump loader-utils from 2.0.2 to 2.0.4
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.4.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.4)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-16 05:29:50 +00:00
Reto Brunner
d4bbd9191c bump socket.io to 4.5.2 2022-11-16 06:28:03 +01:00
renovate[bot]
5037383c4c
chore(deps): update dependency @types/mousetrap to v1.6.11 2022-11-16 00:46:37 +00:00
Reto Brunner
83e11b0143 Search: Clear earlier searches when a new one is executed
Fixes: https://github.com/thelounge/thelounge/issues/4637
2022-11-15 18:50:52 +01:00
Reto Brunner
51c9ce078d Search: fix off by one offset error
Offset is eventually passed to sqlite as an OFFSET clause.

This works as follows:

sqlite> select num from seq limit 5 offset 0;
┌─────┐
│ num │
├─────┤
│ 1   │
│ 2   │
│ 3   │
│ 4   │
│ 5   │
└─────┘

sqlite> select num from seq limit 5 offset 5;
┌─────┐
│ num │
├─────┤
│ 6   │
│ 7   │
│ 8   │
│ 9   │
│ 10  │
└─────┘

However, the code currently emits a request for offset + 1, which ends
up skipping a message

sqlite> select num from seq limit 5 offset 5+1;
┌─────┐
│ num │
├─────┤
│ 7   │
│ 8   │
│ 9   │
│ 10  │
│ 11  │
└─────┘
2022-11-15 18:50:52 +01:00
Reto Brunner
8095d9e88a SearchQuery: offset is always a number
Fix type confusion that specified offset to be a string, it is
always a number.
2022-11-15 18:50:52 +01:00
renovate[bot]
221884166d
chore(deps): update dependency postcss to v8.4.19 2022-11-13 17:56:51 +00:00
renovate[bot]
19307d05e7
chore(deps): update dependency @types/chai to v4.3.4 2022-11-13 17:49:23 +00:00
renovate[bot]
dfe288ef16 chore(deps): update dependency @types/lodash to v4.14.188 2022-11-13 18:11:48 +01:00
renovate[bot]
b5ea7cceb3 chore(deps): update dependency @types/is-utf8 to v0.2.1 2022-11-13 18:11:48 +01:00
renovate[bot]
0ad033fe0a chore(deps): update dependency chai to v4.3.7 2022-11-13 18:11:48 +01:00
renovate[bot]
5a4a39b9d1 chore(deps): update dependency postcss to v8.4.18 2022-11-13 18:11:48 +01:00
renovate[bot]
cb17f8d87f chore(deps): update dependency @vue/test-utils to v2.2.1 2022-11-13 18:11:48 +01:00
renovate[bot]
5a803ccd23 chore(deps): update dependency sqlite3 to v5.1.2 2022-11-13 18:11:48 +01:00
Reto
53f6041f42
SearchResults: remove dead code (#4639)
Nachtalb put some infra in place that was never actually working.
It errors out when a user clicks on a message.

Remove the offending code, but keep it all in place so that we
can improve on it.
2022-11-12 22:34:41 -08:00
Reto Brunner
dca202427a SearchResults: Fix search progess upon search
When we hit doSearch, we always reset the offset value to 0,
meaning we always hit the conditional (!0) and always set the
messageSearchInProgress flag to undefined.
This is wrong, we do want to set this flag when we initiate a search.
2022-11-12 23:14:53 +01:00
Reto Brunner
6b617f893d SearchResults: remove computed search prop
It is only used in one location, and not from the template.
In other words we should inline it to make the code simpler.
2022-11-12 23:14:53 +01:00
Reto Brunner
d62dd3e62d messageStorage: convert to async
Message stores are more complicated that a sync "fire and forget"
API allows for.
For starters, non trivial stores (say sqlite) can fail during init
and we want to be able to catch that.
Second, we really need to be able to run migrations and such, which
may block (and fail) the activation of the store.

On the plus side, this pushes error handling to the caller rather
than the stores, which is a good thing as that allows us to eventually
push this to the client in the UI, rather than just logging it in the
server on stdout
2022-11-02 00:01:36 +01:00
Reto Brunner
f068fd4290 sqlite: convert migrations to async
This removes quite a bunch of indention and callbacks
2022-11-01 22:23:47 +01:00
Reto Brunner
bbe81bb2fa sqlite: add serialize_get 2022-11-01 22:23:47 +01:00
Reto Brunner
f04a06682d extract migrations 2022-11-01 22:23:47 +01:00
Reto Brunner
5e1cbe32f9 sqlite: use serialize_fetchall in search 2022-11-01 22:23:47 +01:00
Reto Brunner
ee8223c200 sqlite: use serialize_fetchall in getMessages 2022-11-01 22:23:47 +01:00
Reto Brunner
cc3302e874 sqlite: create serialize_fetchall helper function
That puts all the serialization logic into one place and
allows us to use async / promises
2022-11-01 22:23:47 +01:00
Reto Brunner
89ee537364 sqlite: add run helper function
Extract the serialization logic into a single place and
consistently log errors to the console rather than a fire
and forget approach.
2022-11-01 22:23:30 +01:00
Reto Brunner
e62b169a6a sqlite: fix docstring 2022-11-01 22:19:56 +01:00
Reto Brunner
f6b292107e sqlite: move export to bottom of the file
This makes it easier to see what's getting exported, rather than
if it's interspersed randomly in the middle of the file
2022-11-01 22:19:56 +01:00
Reto Brunner
bea4545abf don't call search on a disabled msg provider
A provider might be available, but not functional (broken migration
invalid configuration or what have you).
Don't try to call search in this case.
2022-11-01 22:19:56 +01:00
Reto Brunner
cebc6d069f sqlite: error if sqlite isn't enabled but search() is called
When we assert that something can't possibly happen, we better
error out rather than jugging on with no error ;)
2022-11-01 22:19:56 +01:00
Reto
0fa203569a
connect: Trim white space from user input fields (#4623)
Fixes: https://github.com/thelounge/thelounge/issues/4521
2022-09-07 20:25:08 -07:00
Reto Brunner
30e9f45fac Use nick as a realname fallback
Currently the realname is set to an advertisement if it isn't explicitly
set by the user.
Some clients started to show the realname as a display name in their
UI, which makes this tedious as you'll end up with gazillion "The Lounge
User" entries.

To avoid this, set the realname to the nick on first connect, so that
it is useful.
Note that this isn't done on nick changes, but only on the initial
connect step.

Fixes: https://github.com/thelounge/thelounge/issues/4527
2022-08-28 11:21:54 +02:00
Antonio Mika
117c5fa3fd
Added client type checking to webpack (#4619)
* Added client type checking

* Fixed client-side typescript issues
2022-08-23 00:26:07 -07:00
Reto Brunner
621fa92036 linkPreviews: Enforce TLS validity
When a URL is prefixed with a TLS scheme, we should make sure
that the remote provides a valid cert, even just for prefetches.
Else MITM of such a site is trivial.

This probably breaks some people with self signed cert, but the
age where that was acceptable is past. We have free CAs now like
Let's Encrypt.
2022-08-06 12:37:51 +02:00
Reto Brunner
11f7ae98be Merge branch 'regexFix' 2022-08-01 13:31:59 +02:00
Reto Brunner
a95ab55154 Merge branch 'installDocs' 2022-08-01 13:29:48 +02:00
Reto Brunner
38bccd3635 Merge branch 'installExpandHome' 2022-08-01 13:29:39 +02:00
Reto Brunner
3240997347 Revert "chore(deps): update dependency @textcomplete/core to v0.1.12"
This reverts commit 0cb4791cd0.
It breaks the autocompletion when clicking on a suggestion
from the nick popup.
2022-07-25 06:44:58 +02:00
renovate[bot]
57ed37c1fd
chore(deps): lock file maintenance 2022-07-24 13:33:42 +00:00
renovate[bot]
0495761c44
fix(deps): update dependency file-type to v16.5.4 [security] 2022-07-24 13:20:16 +00:00
renovate[bot]
520646a212 chore(deps): update dependency sqlite3 to v5.0.10 2022-07-24 15:02:54 +02:00
renovate[bot]
0cb4791cd0 chore(deps): update dependency @textcomplete/core to v0.1.12 2022-07-24 15:02:14 +02:00
renovate[bot]
740618ca49 chore(deps): update dependency @types/content-disposition to v0.5.5 2022-07-24 15:01:22 +02:00
renovate[bot]
e97216518a chore(deps): update dependency @textcomplete/textarea to v0.1.12 2022-07-24 14:55:19 +02:00
Reto Brunner
31739b8ac9 install: Document file: prefix in cli help 2022-07-23 23:05:34 +02:00
Reto Brunner
e221e708c1 install: expand ~ for local paths
Make `thelounge install file:~/path/to/package` work rather than
erroring out that the folder doesn't exists.

Probably funny on Windows, but it doesn't hurt either
2022-07-23 17:05:31 +02:00
Reto
c8cd4057bc
Fix ctcp request message (#4603)
The message was ordered the wrong way in the TS rewrite.

Old:
    +bookworm sent a CTCP request: "chadler" to version
New:
    +bookworm sent a CTCP request: "version" to chadler
2022-07-06 22:28:18 -07:00
Reto Brunner
d6e1af0e7d Fix regex escape for prefix patterns
Our regex escape function escapes proper regexes, however
it isn't meant to be shoved into a char class via string interpolation.

We need to also escape '-' if we do so.
2022-07-04 10:08:23 +02:00
Max Leiter
d72d8694bb
Potentially fix saving new networks (#4599) 2022-06-28 13:32:08 -07:00
Max Leiter
80f65c5b72
Remove uploading event listeners on ChatInput unmount (#4600) 2022-06-28 13:31:55 -07:00
Pavel Djundik
bc709af9fe
Merge pull request #4596 from thelounge/renovate/npm-got-vulnerability
fix(deps): update dependency got to v11.8.5 [security]
2022-06-22 18:48:15 +03:00
renovate[bot]
e7d18a91c0
fix(deps): update dependency got to v11.8.5 [security] 2022-06-22 05:33:15 +00:00
renovate[bot]
ddcee5371a
chore(deps): update dependency sqlite3 to v5.0.8 (#4564)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-21 22:32:58 -07:00
renovate[bot]
194b85be4d
chore(deps): update dependency mocha to v9.2.2 (#4581)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-06-21 22:32:18 -07:00
Pavel Djundik
f715c833e7
Merge pull request #4594 from thelounge/xpaw/fix-4593
Fix user commands not working
2022-06-21 15:05:19 +03:00
Pavel Djundik
a15ac88ff2 Fix user commands not working
Fixes #4593
2022-06-21 10:51:24 +03:00
Murph Finnicum
4af5fc6f33
Use correct option name (filter instead of ldapFilter) in config.js comment. (#4590)
The comment for the "filter" key under "searchDN" refers to it as "ldapFilter" instead of "filter".
2022-06-18 18:23:59 -07:00
Max Leiter
dd05ee3a65
TypeScript and Vue 3 (#4559)
Co-authored-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: Pavel Djundik <xPaw@users.noreply.github.com>
2022-06-18 17:25:21 -07:00
Eric Nemchik
2e3d9a6265
Fix yarn dev (#4574)
* Fix yarn dev and yarn test
2022-05-21 11:45:42 -07:00
Eric Nemchik
c205b89523
Convert configs to cjs, move babel to own file, combine webpack configs (#4561)
* Convert configs to cjs
* Fix lint script in package.json
* Move babel config to separate file
* Combine webpack configs and include babelConfig
2022-05-02 19:19:12 -07:00
John Sullivan
5f7acbf994
Merge pull request #4489 from thelounge/maxleiter/tabbedSettings
Refactor settings to their own tabs and routes
2022-05-01 15:03:03 -07:00
Reto
d4cc2dd361
Refactor config out of Helper (#4558)
* Remove config from Helper

Helper is the usual util grab bag of useful stuff.
Somehow the config ended up there historically but
structurally that doesn't make any sense.

* Add cert folder to prettier ignore file
2022-05-01 12:12:39 -07:00
renovate[bot]
38f13525e6
chore(deps): update babel monorepo (#4554)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-01 02:40:09 -07:00
renovate[bot]
99c48dbcea
chore(deps): update dependency @textcomplete/core to v0.1.11 (#4555)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-05-01 02:39:58 -07:00
Pavel Djundik
9dbb6e5e19
Remove node 12, add node 18. Bump minimum node version 14 (#4552)
* Remove node 12, add node 18
* Bump minimum node version
2022-04-30 13:12:24 -07:00
Reto Brunner
791205d4f0 Merge branch 'zncPlayback' 2022-04-30 12:55:54 +02:00
Max Leiter
437dd1667d
Improve setings menu responsiveness 2022-04-29 19:30:35 -07:00
Max Leiter
24bdc46b0a
Settings: move nav to left side on larger screens 2022-04-29 19:27:52 -07:00
Max Leiter
5a383814f6
Settings: nav style tweaks 2022-04-29 19:27:51 -07:00
Max Leiter
1f39e078f4
Settings: change general icon from paintbrush to desktop 2022-04-29 19:27:51 -07:00
Max Leiter
6f64243671
Settings: rename user settings -> account 2022-04-29 19:27:51 -07:00
Max Leiter
31b67b7786
git push --set-upstream origin maxleiter/tabbedSettings 2022-04-29 19:27:50 -07:00
Reto Brunner
abf8906757 Merge sqlite3 upgrade to v5.0.6 2022-04-28 21:38:01 +02:00
Reto Brunner
c8115e22ac enable znc/playback even without message storage
Fixes: https://github.com/thelounge/thelounge/issues/4464
2022-04-28 17:02:36 +02:00
Reto Brunner
aa7db1e7f7 Merge pull/4524: Add prefetchTimeout 2022-04-27 18:22:49 +02:00
Renovate Bot
da02350725
chore(deps): update dependency sqlite3 to v5.0.6 2022-04-27 16:04:31 +00:00
Reto Brunner
c9c8cadb1a Merge pull/4477 Preserve client certificate 2022-04-27 17:58:09 +02:00
Max Leiter
3726a8d00b
Merge pull request #4541 from thelounge/renovate/sqlite3-5.x
Update dependency sqlite3 to v5.0.4
2022-04-19 17:23:23 -07:00
Reto
605b75c6ed
Merge pull request #4537 from bookworm/renovateShutUp
renovate: Disable digest updates
2022-04-19 06:33:35 +02:00
Max Leiter
5e8adafb3e
Merge pull request #4539 from ronilaukkarinen/master
Fix the alignment of the header buttons
2022-04-18 15:15:48 -07:00
John Sullivan
487d880d32
Merge pull request #4540 from itsjohncs/sortable-upstream
Pull in SortableJS from NPM again.
2022-04-18 15:05:18 -07:00
Renovate Bot
7cb8d33122
Update dependency sqlite3 to v5.0.4 2022-04-18 13:05:43 +00:00
itsjohncs
bbe103ca6f Pull in SortableJS from NPM again.
SortableJS/Sortable#2095 has been merged so we no longer need to use
our fork.
2022-04-17 17:34:07 -07:00
Roni Laukkarinen
ec757c9b69 Fix topic wrapping on mobile 2022-04-17 19:07:56 +03:00
Roni Laukkarinen
7b725ea55c Fix the alignment of the header buttons 2022-04-17 13:39:52 +03:00
Reto Brunner
0d12be138b renovate: Disable digest updates
There's a reason one pins a commit and it is because we
want that specific commit.
Renovate gets *really* noisy if commits are made frequently
to a repo, so let's disable it.
2022-04-13 21:48:21 +02:00
Pavel Djundik
7db0d4619d
Update sqlite3 to 5.0.3 2022-04-13 19:07:31 +03:00
Max Leiter
bdd6e71049
Autocomplete: update to @textcomplete package and close on blur (#4493)
* Autocomplete: update to @textcomplete package
* Autocomplete: close on blur
2022-04-11 18:11:43 -07:00
xnaas
57b1e51e9f
set 'video/quicktime' to 'video/mp4' (#4495)
`video/quicktime` only plays in Firefox and Safari.
`video/mp4` plays in Firefox, Safari, and Chromium-based browsers.
2022-04-11 17:50:00 -07:00
Val Lorentz
20ed3e6dc5
sqlite: Escape '%' and '_' in search queries. (#4487)
I picked '@' arbitrarily, it doesn't matter much.
I just don't like '\' because it needs to be escaped itself in the JS code,
which is annoying.
2022-04-11 17:49:13 -07:00
Reto
e4840b4d75
Plugins: include pre-releases in compatibility lookup (#4506)
Semver doesn't treat pre-release versions as upgrades, meaning >4.3.0 isn't satisfied
by 4.3.1-rc.1.
For the purpose of TL plugins however, we are only interested in the semantic version and
expect that rc's adhere to the compatibility promise.
2022-04-11 17:47:51 -07:00
Reto
d7bba325a7
Fix user file permissions on create (#4507)
User files contain secrets and should be protected.
Chances are that the user folder can be protected as well,
so let's do that if TL is creating the folder.
2022-04-11 17:47:22 -07:00
Reto
815319810c
cli: don't error if the user folder doesn't exist (#4508)
The user folder gets created on demand, thelounge list should not
fail if the folder doesn't exist.
This just means that no users are present, so report that instead.
2022-04-11 17:46:29 -07:00
Reto
37d7de7671
Kill TL when ident can't start up (#4512)
Fixes: https://github.com/thelounge/thelounge/issues/4509
2022-04-11 17:45:36 -07:00
Max Leiter
e362704f6b
v4.3.1 2022-04-11 17:29:13 -07:00
Max Leiter
48f2b79c37
Add changelog entry for v4.3.1 2022-04-11 17:26:23 -07:00
Emily Strickland
3a84290314
Apply fixes suggested by Prettier to fix CI 2022-04-09 19:40:38 +00:00
Emily Strickland
ff886846a8
Warn about unset prefetchTimeout, default to 5000 ms 2022-04-09 00:19:08 +00:00
Emily Strickland
b2a363f099
Document default value for prefetchTimeout 2022-04-09 00:17:57 +00:00
Emily Strickland
3796485217
Configure link fetch to use prefetchTimeout
This change modifies the `fetch` function in `link.js` to use the new `prefetchTimeout` config setting introduced in the previous commit. This allows configuring the length of the timeout.

I've added a comment here to indicate milliseconds are the unit in use, since otherwise that would no longer be obvious from the code without looking at the default value (which could change).
2022-04-08 22:49:20 +00:00
Emily Strickland
3202b79990
Set prefetchTimeout setting default to 5000 ms
This change adds a `prefetchTimeout` setting to the default configuration and sets it to 5000 milliseconds. Its description indicates the advantages and disadvantages of changing its default value.
2022-04-08 15:42:31 -07:00
Renovate Bot
a42325d801
Lock file maintenance 2022-04-06 19:03:11 +00:00
dependabot[bot]
bbc7280c41
Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-06 18:42:08 +00:00
Reto Brunner
b76058e4cf Merge renovate/express-4.x 2022-04-06 20:39:12 +02:00
Reto Brunner
ace09d434c Merge renovate/babel-monorepo 2022-04-06 20:37:14 +02:00
Renovate Bot
4d9442d9e3
Update babel monorepo 2022-04-06 17:19:54 +00:00
Renovate Bot
56bf078e29
Update dependency express to v4.17.3 2022-04-01 00:57:31 +00:00
Renovate Bot
9f7a2e942b
Update dependency node-forge to v1.3.0 [SECURITY] 2022-03-26 03:05:38 +00:00
Reto Brunner
f440b67dbe Change sqlite3 module name to the actual name
It leads to confusion as the module is named "sqlite3", not
"node-sqlite3"
2022-03-12 16:39:03 +01:00
Val Lorentz
ae7020f569 Do not remove client certificate, even when TLS is disabled
It does not really make sense to remove it, as it can lock someone out of
their account, just by temporarily disabling TLS.
2022-03-05 11:20:57 +01:00
Max Leiter
38fa3bee22
v4.3.1-rc.1 2022-03-02 16:38:22 -08:00
Max Leiter
2e1b2d44f6
Add changelog entry for v4.3.1-rc.1 2022-03-02 16:37:49 -08:00
renovate[bot]
69f3501165
Update actions/setup-node action to v3 (#4496)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-02 16:31:28 -08:00
renovate[bot]
8a92bc9fb9
Update dependency dayjs to v1.10.8 (#4499)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-02 16:27:50 -08:00
renovate[bot]
7cf95d3cbd
Update dependency @babel/core to v7.17.5 (#4498)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-01 16:29:56 -08:00
renovate[bot]
53f5b8e991
Lock file maintenance (#4491)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-21 12:39:54 -08:00
Val Lorentz
d145fb3738
Re-add missing space between timestamp and nick (#4492)
It was accidentally removed by 027c5b4ff7
2022-02-21 12:38:50 -08:00
Max Leiter
551f85ea51
Fix /collapse and /expand from interacting with the server in public mode (#4488)
Reported by xnaas on IRC
2022-02-18 12:21:17 -08:00
Val Lorentz
66455f2c40
Show a nicer error in Chan.loadMessages() when network is misconfigured (#4476)
Show a nicer error in Chan.loadMessages() when network is misconfigured

ie. an actual error message instead of crashing on a `null` value.
2022-02-16 16:27:41 -08:00
Val Lorentz
c12dd6c740
Network.validate: Deduplicate code + tell users what the invalid hostname is (#4475)
* De-duplicate error message creation in Network.validate()
* Tell users what the invalid hostname is.
* Reword the log error message
2022-02-16 16:27:14 -08:00
Reto Brunner
cb28204517 Use the DNS result order returned by the OS 2022-02-15 09:20:52 +01:00
Reto Brunner
e2e050d3c3 Add leading '<' + trim space when copying messages
Fixes: #4369
2022-02-15 09:15:34 +01:00
sfan5
17b174dddb Use the DNS result order returned by the OS
Effectively, this stops Node from always preferring IPv4.
2022-02-15 07:44:13 +01:00
Val Lorentz
027c5b4ff7 Remove leading space when copying multiple messages 2022-02-14 19:41:34 +01:00
renovate[bot]
1ed4f57afc
Lock file maintenance (#4479)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-13 16:41:18 -08:00
Val Lorentz
53b4d00732 Preserve client certificate when TLS is indirectly enabled by a STS policy
Closes GH-4152.
2022-02-13 14:43:04 +01:00
Val Lorentz
ba210e853b test/models/network.js: Add tests for automatic client certificate creation/deletion 2022-02-13 14:42:38 +01:00
Val Lorentz
bd2a6cc5be test/models/network.js: Add a simple test for STS policies 2022-02-13 14:42:01 +01:00
Val Lorentz
bcd4a060ec test/models/network.js: Reorder tests 2022-02-13 13:24:38 +01:00
Val Lorentz
ed3ec6a560 test/models/network.js: Fix test groupping 2022-02-13 13:24:06 +01:00
Val Lorentz
8edec1a5a8 Make sure the leading '<' is select when copypasting a message
Firefox does not seem to select leading (or trailing) characters that are
too small; so this commit sets a very small width, that is still large
enough to be selected.

This commit also adds `display: inline-block`, so the width is not
ignored; but this causes Chrome to ignore the space after `>`, so I made
it a non-breakable space.

An alternative is to make only the leading `only-copy` an
`inline-block`, but I think the non-breakable space is a good idea
regardless.
2022-02-12 13:59:31 +01:00
xnaas
9dfb2a3fdb
Upload m4a as audio/mp4; embed audio/mp4, x-flac, and x-m4a (#4470)
* 'audio/x-m4a' should be 'audio/mp4'
* add handling for x-flac and x-m4a
2022-02-11 17:42:59 -08:00
Max Leiter
4be9a282fa
Add the option to mute channels, queries, and networks (#4282)
Co-authored-by: Reto <reto@labrat.space>
2022-02-10 17:56:17 -08:00
renovate[bot]
337bfa489b
Update dependency cssnano to v5.0.17 (#4441)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-10 16:27:12 -08:00
Val Lorentz
1e3a7b1250 Emit a message for SASL loggedin/loggedout events
Closes GH-3921
2022-02-10 22:30:04 +01:00
renovate[bot]
3fb18717a7
Update dependency postcss to v8.4.6 (#4456) 2022-02-09 18:12:08 -08:00
renovate[bot]
76cbec9ac6
Update dependency @babel/core to v7.17.2 (#4439) 2022-02-09 18:11:05 -08:00
renovate[bot]
734f5b18d3
Lock file maintenance (#4465)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 15:40:08 -08:00
Reto
d228a8c4f4
Bump most deps (#4453) 2022-02-09 15:27:34 -08:00
Val Lorentz
f07d6b1ea4
README: suggest running 'yarn format:prettier' when linting fails (#4467)
* README: suggest running 'yarn format:prettier' when linting fails

Co-authored-by: Max Leiter <maxwell.leiter@gmail.com>
2022-02-08 17:52:07 -08:00
Max Leiter
d0fab98c1d
Merge pull request #4462 from thelounge/bookworm/certErr
clientCert: fix up error message
2022-02-04 16:56:33 -08:00
Max Leiter
d4d139505f
Merge pull request #4463 from thelounge/bookworm/canIuse
update caniuse-lite
2022-02-04 16:55:54 -08:00
Reto Brunner
9528515647 update caniuse-lite 2022-02-04 23:21:26 +01:00
Reto Brunner
c0b81902f5 clientCert: fix up error message 2022-02-04 23:06:53 +01:00
Reto
a86fa168b8
Merge pull request #4450 from itsjohncs/renovate-lock-file
Have Renovate bot refresh our lockfile for us.
2022-02-03 00:16:34 +01:00
itsjohncs
3e387156f7 Have Renovate bot refresh our lockfile for us.
I noticed that caniuse-lite wants to be updated regularly via
`npx browserslist@latest --update-db`. Renovate bot can do this if we
enable its `lockFileMaintenance` option
([source](https://github.com/renovatebot/renovate/issues/8615)).

I'm not sure exactly how annoying Renovate bot will be if we enable
this option but I figure we can just try it and disable it if it's
annoying.
2022-02-02 14:37:24 -08:00
itsjohncs
7e0afc90fd Replace deprecated Renovate config options.
This was an automatically requested migration that the
`renovate-config-validator` asked for. It's hard to tell because the
config options it asked to be removed are no longer in their docs, but
I believe this will not change the behavior of the renovate bot at all.
2022-02-02 14:36:02 -08:00
Max Leiter
dcce9eba25
Merge pull request #4459 from fnutt/patch-2
Adding 'to' in a sentence in config.js
2022-02-01 14:39:34 -08:00
fnutt
b1aa8528a4
Added 'to* in a sentence 2022-02-01 11:31:34 +01:00
Max Leiter
4489d5c8b8
Merge pull request #4449 from thelounge/bookworm/node_eol
Remove node 15.x from build matrix
2022-01-27 13:17:25 -08:00
Reto Brunner
1f8881a1d7 Remove node 15.x from build matrix
EOL was June 2021, this time has passed long ago.
2022-01-27 00:47:43 +01:00
Reto Brunner
c7e504eeab sqlite3: update to latest commit
It doesn't look like upstream wants to release a new version.
However, it forces us to use python2 and a insecure tar version.
So staying on the release is not really an option.
Mitigate it by switching to the latest commit in the repo.
2022-01-24 23:59:56 +01:00
Reto Brunner
4db2d28216 Merge branch 'bookworm/mentions' 2022-01-03 09:28:29 +01:00
Taavi Väänänen
be498e8f93
Count number of mode changes, not MODE messages
Update the code in MessageCondensed that generates the condensed
messages ("X users have joined, Y modes were set") to count the number
of actual mode changes instead of the raw count of MODE messages. One
mode message can contain multiple mode changes.

Signed-off-by: Taavi Väänänen <hi@taavi.wtf>
2021-12-31 23:32:17 +02:00
Reto Brunner
e999171f29 Mentions window: filter list when we part a chan
Should some other client part a chan, then we need to clean
up the list from the mentions window in case it's open in ours.
2021-12-29 16:46:16 +01:00
Reto Brunner
0d209fce09 Clear obsolete mentions upon channel part
Currently, the mentions only track the chanID and MsgID.
However, when we part a channel the chanID becomes orphaned.

Considering that mentions from a parted channel probably aren't
that relevant, let's automatically clear them when we part.
Should the user really want to look at them again, they can re-join
the channel and get the scroll back that way.
2021-12-29 16:46:16 +01:00
Max Leiter
acf520bd9a
Merge pull request #4435 from thelounge/bookworm/uploadErr
upload: improve error message
2021-12-28 02:40:29 -07:00
Reto Brunner
26c2562124 upload: improve error message 2021-12-27 02:11:56 +01:00
itsjohncs
763047889d Remove uses of window.event.
window.event is a deprecated global that's set to the currently
dispatched event.

- Opened and closed mentions box by clicking its icon in the top bar
- Left and right clicked on an inline channel name and saw context menu
  open both times
- Two-finger swiped on iOS and saw channel change
- Long-touched and dragged channel in network list on iOS and reordered
  the list successfully
2021-12-20 15:34:28 -08:00
Max Leiter
e0bbf19d9d
Merge pull request #4430 from thelounge/maxleiter/configAdjustment
Remove extra 'be' in default config.js LDAP comment
2021-12-06 14:40:04 -08:00
Max Leiter
0fce974f2c
Remove extra 'be' in default config.js LDAP comment 2021-12-06 14:30:25 -08:00
John Sullivan
cd7916b6d9
Merge pull request #4427 from thelounge/bookworm/mode
handle RPL_UMODEIS
2021-12-06 13:38:29 -08:00
Max Leiter
2c79d53c6d
Merge pull request #4428 from maxpoulin64/switch-busboy-implementation
Switch busboy implementation to `@fastify/busboy`
2021-12-06 12:38:58 -08:00
Reto Brunner
514c6fbf95 Rewrite conditional as switch
This is actually what the code tries to do, the conditional just
makes it harder to read
2021-12-06 07:24:21 +01:00
Reto Brunner
1953e03253 Add RPL_UMODEIS msg handler 2021-12-06 07:24:21 +01:00
Max Leiter
981de663fb
Merge pull request #4426 from brunnre8/worktrees
getGitCommit: allow git worktrees
2021-12-05 14:23:12 -08:00
Maxime Poulin
2c2dd1c76f Switch busboy implementation to @fastify/busboy
I've been notified the current implementation is abandonned and has been forked by fastify to fix bugs, including some crashes and hangs:
See:
* https://github.com/mscdex/busboy/issues/250
* https://github.com/mscdex/dicer/pull/22
* https://github.com/mscdex/dicer/pull/25
2021-12-04 19:49:21 -05:00
Max Leiter
ecc0b9183e
Merge pull request #4423 from brunnre8/exit
Use non 0 exit code in abnormal shutdown
2021-12-04 14:57:48 -08:00
Max Leiter
4065d5de97
Merge pull request #4425 from brunnre8/deps
update irc-framework to 4.12.1
2021-12-03 12:02:11 -08:00
Reto Brunner
1c08b6dce6 getGitCommit: allow git worktrees
Change the short circuit logic to only test for a .git path.
With worktrees that's just a file, not a directory and we really
shouldn't play git anyhow and not rely on implementation details.
2021-12-03 18:16:30 +01:00
Reto Brunner
0c50c2d274 update irc-framework to 4.12.1
Remove ping timer on socket close
2021-12-03 18:00:56 +01:00
Reto Brunner
96c2d2419b Use non 0 exit code in abnormal shutdown 2021-12-02 07:55:06 +01:00
Max Leiter
304d207820
Merge pull request #4361 from supertassu/kickban 2021-12-01 18:25:09 -08:00
Max Leiter
35d8f4e212
Merge pull request #4373 from brunnre8/permissions 2021-12-01 14:18:10 -08:00
Reto
3c70fab7c6
Fix vue/this-in-template linter warning (#4418) 2021-11-30 12:01:45 -08:00
Reto Brunner
0ff9703a28 logs: Set umode to a more restrictive value
When TL first creates the log folder, let only the user read the
log files, should the admin override that subsequently we'll
simply warn about it but respect the decision.

Meaning we have private by default, but this can be overriden
2021-11-30 19:13:33 +01:00
Reto Brunner
dc3a387120 vapid: keep the file secret
Contains a secret key, so we probably should keep it, well, secret.
Warn if the file is world readable.
2021-11-30 19:08:29 +01:00
renovate[bot]
212212fe70
Update dependency cssnano to v5 (#4408)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:42:46 -08:00
renovate[bot]
9b9b357001
Update dependency postcss-loader to v6 (#4415)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:42:22 -08:00
renovate[bot]
684d7f2db4
Update dependency mini-css-extract-plugin to v2 (#4412)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:42:07 -08:00
renovate[bot]
8040945913
Update dependency css-loader to v6 (#4407)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:19:32 -08:00
renovate[bot]
168f2ba46b
Update dependency mocha to v9 (#4413)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:18:38 -08:00
renovate[bot]
d9f2fed398
Update dependency package-json to v7 (#4414)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:18:22 -08:00
renovate[bot]
84d779a4d0
Update dependency postcss-preset-env to v7 (#4416)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-30 02:17:57 -08:00
Taavi Väänänen
324fb9023e
Add /kickban
This commit adds a new command, /kickban, that is a combination of /kick
and /ban: it kicks the specific user from the channel and then sets the
+b mode to ban the user from the channel.
2021-11-30 12:07:11 +02:00
renovate[bot]
cda3bb4e7c
Update dependency postcss to v8.4.4 (#4399)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 22:27:39 -08:00
renovate[bot]
117792fb4d
Update dependency webpack to v5.64.4 (#4398)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 22:27:26 -08:00
renovate[bot]
c69588dd10
Update vue monorepo (#4403)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 22:16:21 -08:00
renovate[bot]
361af7f514
Update dependency postcss-loader to v5.3.0 (#4400)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 22:16:09 -08:00
renovate[bot]
5b76ec45ee
Update dependency webpack-cli to v4.9.1 (#4402)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 22:15:33 -08:00
renovate[bot]
d596c0cee5
Update dependency babel-plugin-istanbul to v6.1.1 (#4396)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 19:54:10 -08:00
renovate[bot]
1bb5b74236
Update dependency mini-css-extract-plugin to v1.6.2 (#4393)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Max Leiter <maxwell.leiter@gmail.com>
2021-11-29 19:54:00 -08:00
renovate[bot]
62fd807f78
Update babel monorepo (#4395)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 19:31:56 -08:00
renovate[bot]
5d6746c9c4
Update dependency mocha to v8.4.0 (#4394)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 19:31:14 -08:00
renovate[bot]
60f4b3a434
Update dependency tlds to v1.226.0 (#4397)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:21:18 -08:00
renovate[bot]
a05dd6c612
Update dependency irc-framework to v4.12.0 (#4392)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:20:44 -08:00
renovate[bot]
244daea66c
Update dependency filenamify to v4.3.0 (#4391)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:20:25 -08:00
renovate[bot]
5f78574ecd
Update dependency eslint-plugin-vue to v7.20.0 (#4383)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:07:09 -08:00
renovate[bot]
e39e9d2f8a
Update dependency webpack-dev-middleware to v5 (#4390)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:06:55 -08:00
renovate[bot]
98e38c8947
Update dependency ua-parser-js to v1 (#4389)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 18:06:46 -08:00
renovate[bot]
40fb2190fa
Update dependency sinon to v12 (#4386)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 17:31:31 -08:00
renovate[bot]
1160517c2c
Update dependency css-loader to v5.2.7 (#4381)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 17:31:26 -08:00
renovate[bot]
f719027566
Update dependency file-type to v16.5.3 (#4384)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 17:31:21 -08:00
renovate[bot]
cffb838284
Update dependency eslint to v7.32.0 (#4382)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 16:17:27 -08:00
renovate[bot]
b02001c079
Update dependency pretty-quick to v3.1.2 (#4379)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 16:17:03 -08:00
renovate[bot]
79e56d1c4b
Update dependency yarn to v1.22.17 (#4380)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 16:16:54 -08:00
renovate[bot]
b54cdf7880
Update dependency mime-types to v2.1.34 (#4378)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 15:49:01 -08:00
renovate[bot]
cb404cd986
Update dependency got to v11.8.3 (#4377)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-29 15:47:55 -08:00
sfan5
1d5291929c
Add context menu when clicking inline channel name (#4376) 2021-11-29 15:35:26 -08:00
Max Leiter
172cd63739
Remove downloads badge and add thelounge/thelounge-docker link to README (#4371) 2021-11-22 22:51:07 -08:00
Max Leiter
368f3f910b
Add changelog entry for v4.3.0
oops
2021-11-22 17:54:54 -08:00
sfan5
5f7ec9e8da
Don't download image contents during prefetch if not needed (#4363) 2021-11-22 16:59:33 -08:00
Max Leiter
4419029d2e
v4.3.0 2021-11-22 16:54:39 -08:00
Max Leiter
af96f7771c
Revert "Preserve location on first and last line when scrolling through inputs" (#4367)
This reverts commit c5f6b4617f.
2021-11-20 18:43:51 -08:00
Max Leiter
315198ac0b
Switch to thelounge/Sortable fork for Sortable.js (#4368) 2021-11-20 18:28:44 -08:00
Max Leiter
f4096234d4
v4.3.0-rc.2 2021-11-18 17:57:30 -08:00
Max Leiter
bfdbbce77d
Add changelog entry for v4.3.0-rc.2 2021-11-18 17:57:21 -08:00
Reto
9dbf647f7e
Make esc key close mentions window (#4365)
* Mentions: rename method to what it's doing
* Mentions: make <esc> dismiss the window
2021-11-18 17:54:44 -08:00
Max Leiter
6dfd51bb57
Merge pull request #4364 from thelounge/maxleiter/escCloseSearch
Allow escape key to close search bar and search page
2021-11-18 16:47:21 -08:00
Max Leiter
371ebfb810
Close search results with escape 2021-11-18 13:32:21 -08:00
Max Leiter
c439e51617
Clear search input on close 2021-11-18 13:31:01 -08:00
Max Leiter
58110189fe
Allow esc key to close search input 2021-11-18 13:27:52 -08:00
Max Leiter
54d1be6b29
v4.3.0-rc.1 2021-11-17 20:28:23 -08:00
Max Leiter
1199183157
Add changelog entry for v4.3.0-rc.1 2021-11-17 20:27:59 -08:00
Max Leiter
40a5ee70b6
Disable /search and hide help item if searching is disabled 2021-11-17 20:23:51 -08:00
Max Leiter
3cec329e3b
Merge branch 'master' into fix-search-query 2021-11-15 12:42:56 -08:00
Max Leiter
25d493453e
Merge pull request #4356 from thelounge/maxleiter/rmNode10
Bump required node version to 12.x and add 16.x builds
2021-11-04 17:11:31 -07:00
Max Leiter
f3af454c9e
Add Node 16 LTS tests and bump mac/windows tests 2021-11-04 16:59:38 -07:00
Max Leiter
186f8f68cd
Merge pull request #4351 from brunnre8/glob
Allow wildcards in hostmask
2021-11-04 14:36:27 -07:00
Max Leiter
59280cfdfd
Merge pull request #4329 from brunnre8/plugins
Add more plugin functionality
2021-11-04 14:12:02 -07:00
Reto Brunner
67503efd21 Allow wildcards in hostmask
According to https://modern.ircdocs.horse/#wildcard-expressions
masks should support "*" and "?" wildcards.
Within TL this only impacts the /ignore functionality.

The reasoning for doing this is to ignore say GuestNNNN!*@* with
guest*!*@* and be done with it if someone spams a gateway.
2021-11-04 20:16:20 +01:00
Max Leiter
7ba977d56a
Bump required node version to 12.x
Node 10 was deprecated in April 2021.
2021-11-04 02:36:06 -07:00
Max Leiter
2a901b3475
v4.3.0-pre.6 2021-11-04 02:06:21 -07:00
Max Leiter
2777cc2db9
Add changelog entry for v4.3.0-pre.6 2021-11-04 02:06:09 -07:00
Max Leiter
979dfaf3eb
v4.3.0-pre.5 2021-11-03 15:52:46 -07:00
Max Leiter
9592563a27
Add changelog entry for v4.3.0-pre.5 2021-11-03 15:52:37 -07:00
Max Leiter
0381cd11bf
Merge pull request #4345 from itsjohncs/small-db-cleanups
Small cleanup of messageStorage/sqlite.
2021-11-03 15:45:48 -07:00
Max Leiter
b5e99c0489
Merge pull request #4352 from itsjohncs/very-rounded-search
Prevent round and white search styling in iOS 15.
2021-11-03 15:45:33 -07:00
itsjohncs
ea619f5463 Prevent round and white search styling in iOS 15. 2021-11-03 01:50:11 -07:00
Max Leiter
3cab39c59b
Merge pull request #4340 from itsjohncs/long-channel-names
Improve responsiveness of channel name and topic.
2021-11-02 13:18:39 -07:00
Max Leiter
fd730eeeb1
Merge pull request #4344 from brunnre8/csp
Force CSP headers for all requests
2021-11-02 12:51:39 -07:00
Max Leiter
a8d438261a
Merge pull request #4332 from itsjohncs/android-context-menu
Enable Android's context menus in network list.
2021-11-02 11:57:24 -07:00
Max Leiter
3bb8d2f4b8
Merge pull request #4348 from thelounge/renovate/linkify-it-3.x
Update dependency linkify-it to v3.0.3
2021-11-01 17:56:00 -07:00
Max Leiter
80e0e0fd16
Merge pull request #4349 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.33
2021-11-01 17:55:50 -07:00
Renovate Bot
3da5e8e8ca
Update dependency mime-types to v2.1.33 2021-11-01 00:21:57 +00:00
Renovate Bot
411ce5d2f8
Update dependency linkify-it to v3.0.3 2021-11-01 00:21:41 +00:00
itsjohncs
602de668ee Use patched Sortable JS from itsjohncs/Sortable.
This is a (hopefully) temporary solution while we wait for SortableJS
to merge in SortableJS/Sortable#2095 and make a release.
2021-10-30 02:06:35 -07:00
itsjohncs
393d4fe591 Enable Android's context menus in network list.
After #4326 Android users could no longer long-touch to bring up the
context menu for channels in the network list. Now they can again.
2021-10-30 02:06:35 -07:00
Max Leiter
a3a9a2cdd9
Merge pull request #4342 from deejayy/password-reveal-icon
Move font assignment of password reveal icon
2021-10-28 09:53:36 -07:00
itsjohncs
044cd2403b Small cleanup of messageStorage/sqlite.
* Extend test coverage to the `search` function.
* Test sort order of messages from `getMessages` and `search`
* Move reversal of `search` results from Vue to messageStorage.
* Remove unnecessary uses of `sqlite.serialize` in tests.
* Return promises from test functions where possible.
2021-10-28 00:48:11 -07:00
Reto Brunner
544146d9aa Force CSP header for all requests
Currently styles / plugins were not actually under the CSP
header protection.
There's no real reason to not have them for all requests, so
add them as a root middleware.
2021-10-26 22:20:06 +02:00
Max Leiter
97f3800785
Merge pull request #4343 from hom3chuk/master
bump vulnerable ua-parser-js version
2021-10-26 12:50:46 -07:00
Evgeniy Chekan
8ab486ef0f bump vulnerable ua-parser-js version 2021-10-25 21:09:02 +03:00
deejayy
cf18d04f06 Move font assignment of password reveal icon 2021-10-25 19:39:59 +02:00
Max Leiter
5d7e62ed67
Merge pull request #4341 from Nachtalb/na/fix-proxy-password
* Fix authenticated proxy
* Save the proxy password so you don't have to reenter it after restart
2021-10-24 14:06:53 -07:00
Nachtalb
206d554ce1
Save the proxy password so you don't have to reenter it after restart 2021-10-24 21:27:43 +02:00
Nachtalb
578b1947e2
Fix authenticated proxy 2021-10-23 01:11:54 +02:00
itsjohncs
56d4a6afde Improve responsiveness of channel name and topic.
This commit makes two changes:

1. Long channel names are truncated.
2. Topics cannot be shrinked into non-existence.
2021-10-22 13:57:13 -07:00
Reto
3ba7fb6de4
Prevent autocomplete for highlight settings (#4337)
Chrome seems to somewhat often auto fill the text input of the
highlight exception list with my username as the next field that
follows is of type password.
Try to work around that by telling chrome not to autofill either of
those.

Do note that this is only a hint... The broser vendors apply some
$magic heuristics and if they trigger they ignore the hint.
2021-10-20 18:34:31 -07:00
John Sullivan
21c6abdd1d
Clarify description of prefetchMaxSearchSize. (#4338)
This is a comments only change that fixes two problems:

1. The previous comment described it as limiting request size, but it
   instead limits the response size.
2. Previously it was unclear _why_ this size was significant. It wasn't
   obvious to me that the entire response would be stored in memory.
2021-10-18 23:20:11 -07:00
John Sullivan
80acbc7c06
Fix sporadic rounding on message search bar. (#4333)
This is fixed in the same way as #4328.
2021-10-17 22:11:08 -07:00
Reto Brunner
1e896a9672 plugins: prefix logger with the plugin name 2021-10-13 23:39:32 +02:00
John Sullivan
5d76ed888c
Clean up global listener in Sidebar component. (#4331)
Every time the component was mounted it would add another listener.
Since old listeners would often error this could cause a lot of log
spam, particularly when using the hotloader on a mobile device.
2021-10-13 13:19:34 -07:00
John Sullivan
2b634a6ba6
Use SortableJS 1.14.0. (#4330)
This should be reverted after SortableJS/Vue.Draggable#1085 is merged
and a new release of Vue.Draggable becomes available.
2021-10-13 13:18:03 -07:00
William Boman
2693db4274
client/Mentions: change button copy to "Dismiss all" (#4322)
* client/Mentions: change button copy to "Dismiss all"

* s/hide/dismiss/g
2021-10-12 15:56:39 -07:00
Max Leiter
1d33e0195a
Merge pull request #4324 from itsjohncs/gestures-next-channel
Two-finger swipe now switches windows (#3901)
2021-10-12 15:53:54 -07:00
Max Leiter
fcffab1259
Merge pull request #4326 from itsjohncs/mobile-channel-list-sorting
Allow network list reordering via touch.
2021-10-12 15:53:18 -07:00
Reto Brunner
02ccbc1f69 plugins: expose persistant data dir
Plugins need to be able to store persistant files, say settings or
databases or similar things.
Expose a standard location that gets created when the path is
accessed.
2021-10-12 23:24:06 +02:00
Reto Brunner
bb4ab4f168 plugins: add Logger interface
Plugins need to be able to log messasages, say for errors.
2021-10-12 23:24:06 +02:00
John Sullivan
8a57f90b65
Prevent sporadic rounding of search input on iOS. (#4328) 2021-10-11 10:23:20 -07:00
Noah van der Aa
9a0ba1da6c
Add keyboard shortcut for help screen (#4315)
* Add keyboard shortcut for help screen

* Make escape key go back to the previous screen

* Use key instead of which

* Use router for navigating back

* Use alt instead of cmd/ctrl
2021-10-10 20:48:28 -07:00
itsjohncs
5c614785bf Suppress iOS long touch behavior in network list.
When a user long touches on iOS, they will select the nearest
selectable text. This causes a distracting visual bug when reordering
the network list (which also uses a long press).
2021-10-10 17:08:17 -07:00
itsjohncs
a48f449c59 Allow network list reordering via touch.
Users can now long touch and drag a channel or network to change its
ordering in the sidebar.
2021-10-10 14:40:08 -07:00
John Sullivan
2ab671664e
Vertically center topic editing input in Safari. (#4325) 2021-10-09 22:23:58 -07:00
itsjohncs
91a0815bb5 Add Gestures section to help window.
This documents the two gestures that The Lounge currently supports.

The section is only visible if your device supports touch.
2021-10-07 13:39:30 -07:00
itsjohncs
ebe39b26dc Two-finger swipe now switches windows (#3901)
The Alt+Up and Alt+Down keybindings on Desktop did not have an
equivalent for Mobile users. Now a two-finger swipe left on a
touchscreen is equivalent to Alt+Up (similarly swipe right is
equivalent to Alt+Down).
2021-10-07 13:39:19 -07:00
renovate[bot]
7b28d3c0f8
Update dependency web-push to v3.4.5 (#4320)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-02 12:03:13 -07:00
renovate[bot]
324f3aa30f
Update dependency webpack-hot-middleware to v2.25.1 (#4321)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-02 12:02:46 -07:00
renovate[bot]
e9f0313892
Update dependency ua-parser-js to v0.7.28 (#4319)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-30 17:25:05 -07:00
renovate[bot]
969d3e4ec1
Update dependency socket.io-client to v3.1.3 (#4318)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-30 17:24:54 -07:00
Taavi Väänänen
7873847a7e
Do not condense single messages (#4313) 2021-09-29 12:33:40 -07:00
Max Leiter
cc0dc6266e
Update dependencies (#4312) 2021-09-15 10:12:19 -07:00
renovate[bot]
535ac7ca39
Update dependency stylelint to v13.13.1 (#4307)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-02 14:04:21 -07:00
renovate[bot]
c8cdadeb02
Update dependency pretty-quick to v3.1.1 (#4304)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-02 14:03:16 -07:00
Max Leiter
beb5530c65
Revert "Support animated webp images" (#4287)
This reverts pull/4186.
2021-08-31 12:27:43 -07:00
Reto
8fcd079204
Properly track user modes for context menu (#4267)
* properly track user modes for context menu

The RPL_ISUPPORT response contains a PREFIX element, which not only tracks the
prefix chars ("@", "+" etc) but also their corresponding mode chars (+O, +v)
This commit changes the context menu to not rely on a hardcoded list but rather
user the one given in the prefix response by the server.

Co-authored-by: Max Leiter <maxwell.leiter@gmail.com>
2021-07-21 00:30:07 -07:00
JeDaYoshi
0a6c33af57
Create a message for search disabled error 2021-07-07 23:00:44 +00:00
JeDaYoshi
162b42d9b0
Apply changes to getCommands/search 2021-07-07 22:12:28 +00:00
Max Leiter
03d38812e3
Merge pull request #4275 from hellomouse/isupport-modes
Optimise modes based on ISUPPORT
2021-07-06 17:09:31 -07:00
JeDaYoshi
35fcacb767
Add firstCommand and do further checks on mode tests 2021-07-06 18:15:37 +00:00
JeDaYoshi
d96704835a
Send all modes in case of no ISUPPORT 2021-07-06 15:48:01 +00:00
JeDaYoshi
0d839c501e
Optimise commands processing 2021-07-06 15:43:02 +00:00
Max Leiter
24316fc304
Merge pull request #4281 from thelounge/updateDependencies
Update dependencies
2021-07-06 01:40:13 -07:00
Max Leiter
11ba27d809
Update emoji map 2021-07-06 01:31:24 -07:00
Max Leiter
a59c5d65fb
Update dependencies 2021-07-06 01:29:53 -07:00
Max Leiter
7fdd363ee8
Merge pull request #4205 from Nachtalb/ne/fix-input-history-scroll-behaviour
Only scroll history when cursor is on first or last row
2021-07-06 01:27:06 -07:00
Max Leiter
75cf4445c4
Merge pull request #4277 from hellomouse/server-privmsg-fix
Fix nick-less messages from servers
2021-07-06 01:02:18 -07:00
Max Leiter
18b003db9c
Merge pull request #4280 from hellomouse/restrict-notifs-to-https
Add warning for HTTPS requirement on notifications
2021-07-06 00:58:50 -07:00
JeDaYoshi
372d74db69
Add warning for HTTPS requirement on notifications 2021-07-04 20:22:49 +00:00
JeDaYoshi
bbda392c3d
Move clientCommands to client
This approach automatically imports the command names.
2021-07-04 02:15:33 +00:00
JeDaYoshi
23f6886cc1
Add test for ISUPPORT-less networks on /mode shorthands 2021-07-04 01:01:45 +00:00
JeDaYoshi
521426bb05
Add test for /search in getCommands 2021-07-04 00:46:36 +00:00
JeDaYoshi
69c37a535b
Only add /search when there's a message provider 2021-07-04 00:31:43 +00:00
Max Leiter
98e8640932
Merge pull request #4279 from hellomouse/fix-user-list
Fix userlist's wrong position on mobile devices
2021-07-03 17:04:09 -07:00
JeDaYoshi
998f8d2beb
Fix userlist's wrong position on mobile devices 2021-07-03 23:50:51 +00:00
JeDaYoshi
058b3155d0
Display error when /search is not enabled
Fixes thelounge/thelounge#4273
2021-07-03 22:53:45 +00:00
JeDaYoshi
e0e12c1960
Fix tests for mode shorthand commands 2021-07-03 21:20:28 +00:00
JeDaYoshi
16177eb9f4
Move server nick code to handleMessage 2021-07-03 21:06:16 +00:00
Max Leiter
5e0a12b124
Merge pull request #4274 from hellomouse/add-umode
Add /umode support
2021-07-03 11:48:38 -07:00
JeDaYoshi
6439afd5c6
Fix nick-less PRIVMSGs from servers 2021-07-03 15:27:08 +00:00
JeDaYoshi
4dacaa46f3
Optimise modes based on ISUPPORT
This will see the maximum allowed of modes that are allowed at once as sent in RPL_ISUPPORT
and will send multiple batches while using /op, /voice, etc.

This also fixes a minor issue where it would try sending an empty voice if it had an extra space on arguments
(such as using '/voice  ')
2021-07-03 03:50:22 +00:00
JeDaYoshi
426841e6b7
Add /umode support 2021-07-03 02:28:21 +00:00
Max Leiter
22801a629e
v4.3.0-pre.4 2021-07-01 12:20:56 -07:00
Max Leiter
47b151ab51
Add changelog entry for v4.3.0-pre.4 2021-07-01 12:20:41 -07:00
Max Leiter
d05cf5fe62
Fix linter warnings for aria-label placement 2021-07-01 12:14:02 -07:00
Max Leiter
3e4b22255d
Merge pull request #4201 from thelounge/maxleiter/accessiblityImprovements
Initial accessibility improvements
2021-07-01 12:05:22 -07:00
Max Leiter
cc97d91ef8
v4.3.0-pre.3 2021-06-29 23:31:44 -07:00
Max Leiter
c5e18e3cdd Add changelog entry for v4.3.0-pre.3 2021-06-29 23:27:16 -07:00
Max Leiter
79c57ebf38
Merge pull request #4211 from Mstrodl/feature/socks-support
Add support for SOCKS (closes #1375)
2021-06-29 22:54:17 -07:00
Max Leiter
d106889127
Merge branch 'master' into feature/socks-support 2021-06-29 22:48:00 -07:00
Max Leiter
b33fd78ed7
Merge pull request #4266 from thelounge/maxleiter/bump-ircfw
Bump irc-framework to 4.11
2021-06-28 23:33:13 -07:00
Max Leiter
bec25f6243 Bump irc-framework to 4.11 2021-06-28 23:22:38 -07:00
Max Leiter
646a98270a
Merge pull request #4265 from thelounge/maxleiter/dependencies
Update dependencies
2021-06-28 21:55:11 -07:00
Max Leiter
5a7781eabc
Merge pull request #4258 from bl1nk/recent-mentions-keybind
Toggle recent mentions popup with alt+m
2021-06-28 21:54:46 -07:00
Max Leiter
cbe81968ee Update dependencies
Supersedes #4247, #4263, #4248
2021-06-28 21:50:36 -07:00
Max Leiter
a42a1fc6a2
Merge pull request #4264 from BradleyShaw/differentiate-wallops
Differentiate WALLOPS from NOTICE
2021-06-28 21:48:05 -07:00
Bradley Shaw
a2d23810bf
Differentiate WALLOPS from NOTICE 2021-06-22 11:50:22 +01:00
Max Leiter
aa310fe877
Merge pull request #4260 from BradleyShaw/snotice-channel
Display server-originated notices to channels in the channel window
2021-06-22 00:30:42 -07:00
Max Leiter
a046bfe8d1
Merge pull request #4262 from thelounge/maxleiter/fixConfigOverrides
Fix not overriding config options with -c
2021-06-22 00:12:53 -07:00
Max Leiter
6b852d14c8
Fix not overriding config options with -c 2021-06-22 00:00:41 -07:00
Max Leiter
5a9f3c5f70
Aria label for userlist 2021-06-21 22:26:43 -07:00
Max Leiter
f23cc0712c
Aria-label improvements for chatuserlist/networklist 2021-06-21 22:21:36 -07:00
Max Leiter
7107372a6f
Fix channel alt text in user list to mention type 2021-06-21 22:14:00 -07:00
Max Leiter
867fff33c0
Adjust chat layout so messages directly above input 2021-06-21 21:55:54 -07:00
Max Leiter
e5a6554c9a
Merge branch 'master' of github.com:thelounge/thelounge into maxleiter/accessiblityImprovements 2021-06-21 21:48:30 -07:00
Bradley Shaw
38c0c343c3
Send server->channel notices to the relevant channel 2021-06-19 19:49:04 +01:00
Max Leiter
53b7c46e69
Merge pull request #4259 from thelounge/maxleiter/revertLoadMoreBtn
Revert "Fix load more button hidden behind search form"
2021-06-15 11:27:11 -07:00
Mary Strodl
e7a8476cfe
NetworkForm: lint 2021-06-15 13:55:54 -04:00
Mary Strodl
a3f0314f6b
NetworkForm: only show proxy options if enabled 2021-06-15 13:52:39 -04:00
Max Leiter
3fdc42350e Revert "Fix load more button hidden behind search form"
This reverts commit 115d970604.
2021-06-13 16:21:27 -07:00
Markus Cisler
243f514243 Only toggle mentions popup if connected to network
The top bar is only shown if the user is connected to at least one
network. Only then it is possible to open the recent mentions popup.

Only toggle the recent mentions popup if the user is connected to at
least one network so the popup will not open over the connect view.
2021-06-13 01:49:23 +02:00
Markus Cisler
a93ccd680f Toggle recent mentions popup with alt-m
This adds a keybind to toggle the recent mentions popup using alt+m (or
opt+m on macOS).

Relates to #4175
2021-06-13 01:08:40 +02:00
Max Leiter
53a7227e2e
v4.3.0-pre.2 2021-06-07 20:46:35 -07:00
Max Leiter
8bb2fbbf15
Add changelog entry for v4.3.0-pre.2 2021-06-07 20:46:18 -07:00
Max Leiter
0fa37a6a05
Merge branch 'master' into maxleiter/accessiblityImprovements 2021-06-06 23:49:34 -07:00
Max Leiter
d5b6a8521f
Merge pull request #4251 from brunnre8/localPlugins
install: allow installation of local packages
2021-06-05 10:30:18 -07:00
Reto Brunner
c5fcc5d72f install: allow installation of local packages
It may not be desirable to host all plugins on npm, allow for local packages to
be installed given a package name with a `file:` prefix.

This is still more restrictive than what yarn would support but allows us to still
verify the thelounge compatibility by reading the package.json file.

`yarn add` messes up with local filepaths and generates a lockfile that is
"outdated" as far as any other yarn commands go, which makes them error out.

For some reason `yarn install` fixes that and hence we run that after an install.
Here's the diff of yarn.lock between the broken state after `yarn add file:$path`
and `yarn install`
	--- yarn.lock.2.afterAdd	2021-06-02 00:10:52.365134018 +0200
	+++ yarn.lock.3.afterinstall	2021-06-02 00:13:27.122760442 +0200
	@@ -2194,7 +2194,7 @@
	     safe-buffer "^5.1.2"
	     yallist "^3.0.3"

	-thelounge-plugin-shortcuts@/home/reto/sourcecode/thelounge-plugin-shortcuts:
	+"thelounge-plugin-shortcuts@file:../../sourcecode/thelounge-plugin-shortcuts":
	   version "1.0.12"
	   dependencies:
	     thelounge "4.2.0"

The only thing it does is switch an absolute path to a relative one for whatever
reason.
2021-06-05 13:01:55 +02:00
Max Leiter
9ec02d1e91
Merge pull request #4252 from thelounge/maxleiter/deps
Update dependencies
2021-06-05 01:06:32 -07:00
Max Leiter
beb9bcd8d4
Update dependencies
Closes #4250, #4249, #4248, #4247
2021-06-05 00:57:38 -07:00
Max Leiter
8fc7a6c0df
Merge pull request #4242 from brunnre8/master
MessageSearchForm: do not focus input if search is closed
2021-06-05 00:33:42 -07:00
Max Leiter
6182d23758
Merge pull request #4235 from angerson/patch-1
Render styling for colored host masks
2021-06-02 00:18:40 -07:00
Reto Brunner
c369a764ed MessageSearchForm: do not focus input if search is closed
Else whenever the element gets created (switch from server chan to a normal one)
the browser tries to focus the hidden element
2021-05-27 09:44:44 +02:00
Austin Anderson
4d310cd545 Render styling for colored host masks
On some IRC networks, users have vanity host masks with colors or other text styling.
Rizon is one such network.

For example, a user connecting from 127.0.0.1 could instead have the host
angerson@this.is.my.host.mask. this.is.my.host.mask may have IRC color code
characters in it, which without this change would be displayed as a bunch of jumbled
garbage in the /whois response or join/part messages.

Resolves #4232.
2021-05-26 09:24:12 -07:00
Pavel Djundik
fa854fde78
Merge pull request #4238 from mhajder/master
Change the IRC server to Libera.Chat
2021-05-26 15:03:23 +03:00
Mateusz Hajder
6f7fd80044
Fix length of the link in tests 2021-05-26 13:59:04 +02:00
Mateusz Hajder
28c413319f
Change IRC server and channels in tests to more generic 2021-05-26 13:43:06 +02:00
Mateusz Hajder
af236dd280
Add the default IRC network for tests 2021-05-26 13:41:33 +02:00
Max Leiter
58217cffb1
Merge pull request #4219 from TheDecryptor/jpegxl_support
Add support for JPEG XL image previews
2021-05-25 21:36:37 -07:00
Max Leiter
fc6c916e7c
Merge pull request #4213 from Nachtalb/na/search-command
Add new "/search query" command to open the search window
2021-05-25 21:31:17 -07:00
Max Leiter
ad8a315cf9
Merge pull request #4206 from Nachtalb/na/fill-inputhistory-onload
Fill inputhistory on channel load and more message load
2021-05-25 21:30:47 -07:00
Mateusz Hajder
42bafe7165
Change the IRC server to Libera.Chat 2021-05-23 16:40:08 +02:00
Mary Strodl
df5befb60e
Merge remote-tracking branch 'origin/master' into feature/socks-support 2021-05-19 19:01:42 -04:00
Max Leiter
db807d0c56
Merge pull request #4223 from thelounge/renovate/npm-postcss-vulnerability
Update dependency postcss to v8.2.10 [SECURITY]
2021-05-12 16:33:12 -07:00
Renovate Bot
ab0d9e6200
Update dependency postcss to v8.2.10 [SECURITY] 2021-05-12 01:05:43 +00:00
Max Leiter
adf1b5abec
Merge pull request #4210 from Nachtalb/na/inline-audio-file-support
Improve inline audio file support
2021-05-11 17:05:28 -07:00
Max Leiter
2c30293ad2
Merge pull request #4221 from Nachtalb/na/fix-missing-userslist-entries-after-search
Fix missing users in userlist after removing searchinput
2021-05-11 17:05:04 -07:00
Nachtalb
042cfb7582
Fix missing users in userlist after removing searchinput
Because the "Username" components still had the same ":key" vue tried to in-place update them. This doesn't quite work for objects (in this case "user" or "user.original"). Thus we change the key for the search so that it actually inits a new component and thus evaluates its content correctly.
2021-05-09 23:33:35 +02:00
Alex Jones
dbf6ff064b Add support for JPEG XL mimetype 2021-05-08 18:10:45 +10:00
Max Leiter
7b1cb88658
Merge pull request #4216 from thelounge/renovate/npm-ua-parser-js-vulnerability
Update dependency ua-parser-js to v0.7.24 [SECURITY]
2021-05-06 19:19:26 -07:00
Max Leiter
7b298cf439
Merge pull request #4212 from Nachtalb/na/allow-text-drag-n-drop
Allow text drag & drop into text fields
2021-05-06 19:18:48 -07:00
Renovate Bot
a985d763d0
Update dependency ua-parser-js to v0.7.24 [SECURITY] 2021-05-07 02:13:33 +00:00
Max Leiter
d097370316
Merge pull request #4214 from sha1sum/#4161_classes-on-unread-and-ping
Classes for channels in list with unread counts and highlights
2021-05-06 19:09:53 -07:00
Anthony Atkinson
a3229f1cdf classes for unread and highlight 2021-05-05 21:51:35 -04:00
Nachtalb
cadcc4b97c
Autofocus search input in case no query is present 2021-05-06 03:24:20 +02:00
Nachtalb
24a738d521
Add new command to open the search window 2021-05-06 03:22:09 +02:00
Nachtalb
b95643e1a6
Allow text drag & drop into text fields
We only have to stop the defualt behaviour in case we drag & drop a file (for uploading)
2021-05-06 02:48:07 +02:00
Mary Strodl
3f984fad4b
network: fix test 2021-05-05 20:37:54 -04:00
Mary Strodl
9b4f55bdb6
Update lockfiles 2021-05-05 20:26:01 -04:00
Mary Strodl
abcad094d1
network: add support for SOCKS (closes #1375) 2021-05-05 20:06:00 -04:00
Nachtalb
0bfcd955e3
Improve inline audio file support
Tested on latest Chromium / Firefox. In case of .m4a files they want audio/x-m4a and not audio/m4a, in case of .flac files they want audio/flac and not audio/x-flac. The module we useed to detect the types however detects them only as audio/x-m4a and audio/x-flac as they are not offical IANA supported mime types (not in IANA spec == "x-" prefix): https://www.iana.org/assignments/media-types/media-types.xhtml Though flac is not in the IANA spec many programs such as the file command (https://man7.org/linux/man-pages/man1/file.1.html) and Chromium (flac) / Firefox (x-flac and flac) support audio/flac only or both.
2021-05-06 02:02:23 +02:00
Nachtalb
04cf2277d9
Prevent possible error when findChannel can't find the wanted channel
Using ?. (optional chaining) requires ecma version 2020 as it is fairly new. Webpack / Babel can handle it.
2021-05-05 18:09:18 +02:00
Max Leiter
26a38b12ab
Merge pull request #4197 from Nachtalb/richrd/message-search
Message Search: Re-Rebase + Fixes / Adjustments
2021-05-03 16:18:15 -07:00
Max Leiter
bc7a920de5
Merge pull request #4207 from thelounge/renovate/babel-monorepo 2021-04-30 20:47:57 -07:00
Max Leiter
78da0eb674
Merge pull request #4208 from thelounge/renovate/chalk-4.x 2021-04-30 20:47:08 -07:00
Renovate Bot
db8102b058
Update dependency chalk to v4.1.1 2021-05-01 00:40:11 +00:00
Renovate Bot
4b96682d7f
Update babel monorepo to v7.14.0 2021-05-01 00:39:55 +00:00
Nachtalb
11aa52687c
Fill inputhistory on channel load and more message load 2021-05-01 01:46:55 +02:00
Nachtalb
bd4e821614
Improve readability of more.js 2021-05-01 01:36:44 +02:00
Nachtalb
c5f6b4617f
Preserve location on first and last line when scrolling through inputs 2021-05-01 00:51:55 +02:00
Nachtalb
c66f9c885e
Only scroll history when cursor is on first or last row
Needs to be on first to go up and on last to go down
2021-05-01 00:51:25 +02:00
Nachtalb
bb41871873
Add close search button 2021-04-30 01:53:08 +02:00
Nachtalb
115d970604
Fix load more button hidden behind search form 2021-04-30 01:53:08 +02:00
Nachtalb
ef710a2631
Revert obsolete changes to vuex store 2021-04-30 01:53:07 +02:00
Nachtalb
ddff3ac162
Stay in chan during search by searching on /chat-:id/search 2021-04-30 01:53:07 +02:00
Max Leiter
0aabacd549
Initial accessibility improvements
Set aria-hidden to true for cosmetic and repetitive elements
Improve channel/network aria labels in network list
Experiment with different aria-roles for landmarks
2021-04-20 18:04:40 -07:00
Max Leiter
0fb6dae8a6
Merge pull request #4186 from Nachtalb/na/remove-metadata-without-breaking-files
Support animated webp images
2021-04-13 13:14:55 -07:00
Max Leiter
ee43e7bdf4
Merge pull request #4192 from Nachtalb/na/restrict-browser-autocomplete
Restrict what the browser should try to autocomplete
2021-04-13 12:58:24 -07:00
Nachtalb
e010fe47cc
Respect metadata removal switch 2021-04-13 20:45:16 +02:00
Nachtalb
89390b3fc5
Ensure proper error handling when processing of file fails 2021-04-13 20:41:30 +02:00
Nachtalb
c2c66031c0
Auto rotate images based on exif orientation
This makes sure that the orientation of the images work in all viewrs.
2021-04-13 18:24:33 +02:00
Nachtalb
846da41b01
Rename uploadCanvas to a more appropriate removeImageMetadata
Including backwards compatibility
2021-04-13 18:24:33 +02:00
Nachtalb
3a6ac4e5ec
Support animated webp images
We need to remove the metadata without breaking the animation.
For that we use sharp which incooperates libvips (binaries for most common distros included).

This also decreases client side upload complexity as we remove the metadata on the serverside.

Sharp: https://sharp.pixelplumbing.com/
libvips: https://libvips.github.io/libvips/
2021-04-13 18:24:32 +02:00
Nachtalb
1b13905195
Improved search header
- Highlight both channel and search query
- By moving search query to topic we can ensure nice behaviour for long search queries (eg. when searching for an url)
2021-04-13 01:56:53 +02:00
Nachtalb
13d4f035df
More consistent color scheme and usage
Only show search by click on search icon (desktop as well)
Improved color scheme
Keep search open search page
2021-04-13 01:56:53 +02:00
Nachtalb
3fb9c8523a
Enable searching for the same query again
Previously we got an error instead, but in the meantime new messages could have come in. As such we should allow to search again
2021-04-13 01:23:44 +02:00
Nachtalb
544594a7ad
Keep search term in search input after commiting 2021-04-13 00:43:52 +02:00
Nachtalb
e36ae64c83
Replace search term path with query
A search term is dynamic and not a pointer to a resource such as a channel as such it should be a query.

For now the network as well as the channels are still in the path even though we should take them out of there as well (in the case we want a global / network search later on). As for now we can keep in as there is no such filter / facet yet.
2021-04-13 00:01:00 +02:00
Nachtalb
be141bea65
Fix 2 line wrapped message timestamp 2021-04-12 23:46:44 +02:00
Nachtalb
40aaa17c9b
Fix user context menus in in search results view 2021-04-12 23:40:29 +02:00
Nachtalb
d6a23061fc
Remove searchNicks for the time being
We should not have search implementation without a specced filter /
facet setup.
2021-04-12 23:23:04 +02:00
Nachtalb
de86c144b5
Disable search if we have no message provider
If we have no message provider:
- Search input field not renderd
- Search endpoint retuns empty resultset

Also removed redundancy by setting a main message provider.
2021-04-12 23:12:11 +02:00
Mary Strodl
fe0178c0d2
Remove stuff from gitignore 2021-04-12 22:00:51 +02:00
Mary Strodl
49cd90d0e9
SearchResults: lint 2021-04-12 22:00:51 +02:00
Mary Strodl
e6856a9e7d
client: lay some groundwork for jump to message 2021-04-12 22:00:51 +02:00
Mary Strodl
283ef445e5
Merge remote-tracking branch 'origin/master' into richrd/message-search 2021-04-12 22:00:49 +02:00
Nachtalb
08f45eabb2
Restrict what the browser should try to autocomplete
Browsers often autocomplete into wrong fields. Eg. wanting to put the password in a fields in the settings screen and then use a sudo random other fields for username etc.
This is rather annoying and can break someones configuration, thus we should only enable it on fields where it somewhat makes sense (name, server & password fields).
2021-04-12 14:10:33 +02:00
Max Leiter
db9eb05dfa
Merge pull request #4187 from Nachtalb/na/filename-in-contentDisposition
Add proper filename to the content-disposition header
2021-04-11 20:29:23 -07:00
Max Leiter
df4f78098c
Merge pull request #4190 from Nachtalb/na/improved-handling-of-empty-userdata
Improved handling of empty userdata
2021-04-11 20:12:35 -07:00
Nachtalb
0ccbb90d98
Improved handling of empty userdata
Does not show gecos and account data in join message if they are an empty string
2021-04-11 15:59:42 +02:00
Nachtalb
3a42b5385e
Support inline flac audio 2021-04-11 15:43:42 +02:00
Nachtalb
14d76f8023
Add proper filename to the content-disposition header
By default we take the slug given in the request, if this is not set we try to give a filename from known types.
If we still have no filename we fallback to the previous method of setting no filename.

If the filename is non ascii we will only create the encoded "filename*" and not the ascii only "filename". This is to prevent other applications to save a file like "?????.png" if the filename contains non ascii chars.

For the browsers nothing will really change comapred to the behaviour before this change as good fallbacks if no content-disposition filename is set. But that is not the case for all application, thus it makes sense to include the proper way to set the filename.
2021-04-11 15:41:21 +02:00
Max Leiter
a5e9463431
Merge pull request #4196 from thelounge/maxleiter/readme
`client/views` -> `client/components` in README
2021-04-06 15:39:08 -07:00
Max Leiter
f213a8973c
client/views -> client/components in README 2021-04-06 14:56:23 -07:00
Max Leiter
9382beb3b1
Merge pull request #4195 from brunnre8/nickPostfix
Settings: show label for nick autocompletion postfix
2021-04-06 14:46:34 -07:00
Reto Brunner
c6d7bd4b4a Settings: show label for nick autocompletion postfix 2021-04-06 15:27:23 +02:00
Max Leiter
8dd9bc0e98
Merge pull request #4185 from thelounge/renovate/commander-7.x
Update dependency commander to v7.2.0
2021-04-05 16:25:56 -07:00
Renovate Bot
7df94f01a7
Update dependency commander to v7.2.0 2021-04-05 23:18:45 +00:00
Max Leiter
d94d09f4ba
Merge pull request #4076 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.23.0
2021-04-05 16:17:34 -07:00
Max Leiter
d248f98618
Merge pull request #4182 from thelounge/renovate/babel-monorepo
Update babel monorepo
2021-04-05 16:17:06 -07:00
Max Leiter
5cef511469
Merge pull request #4184 from thelounge/renovate/chai-4.x
Update dependency chai to v4.3.4
2021-04-05 16:16:37 -07:00
Max Leiter
c6282b0a50
Merge pull request #4193 from brunnre8/labelFix
NetworkForm: s/away message/leave message/
2021-04-05 16:16:20 -07:00
Renovate Bot
1913a3ade6
Update babel monorepo 2021-04-05 20:40:02 +00:00
Renovate Bot
386f90614b
Update dependency eslint to v7.23.0 2021-04-05 20:39:11 +00:00
Renovate Bot
d1995a0f7d
Update dependency chai to v4.3.4 2021-04-05 20:38:41 +00:00
Max Leiter
aede86bc98
Merge pull request #4183 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.15.3
2021-04-05 13:37:40 -07:00
Reto Brunner
a496ba8cfc NetworkForm: s/away message/leave message/
877e4acf7d - Add network specific leave message
introduced the wrong label for the leave message.
2021-04-05 19:19:36 +02:00
Renovate Bot
d600a10f48
Update dependency @fortawesome/fontawesome-free to v5.15.3 2021-04-01 00:22:11 +00:00
Max Leiter
500034ff5d
Merge pull request #4181 from thelounge/maxleiter/fixQueryModes
Fix client crash when opening a user context menu in query
2021-03-30 22:49:55 -07:00
Max Leiter
e4069f8ce9
Fix client crash when opening a user context menu in query 2021-03-30 22:33:48 -07:00
Max Leiter
4f6659897f
Merge pull request #4176 from mitaka8/feature-admin-actions
Show give/revoke modes and kick on other modes than +o
2021-03-30 22:10:54 -07:00
Max Leiter
5329483a40
Merge pull request #4135 from brunnre8/master
Add prefetchMaxSearchSize to override limit for link previews
2021-03-16 18:18:31 -07:00
Mitaka
dc0e233fe0 Show give/revoke modes and kick on other modes than +o
Fix #3965

Signed-off-by: Mitaka <jin@mitaka.nl>
2021-03-12 14:33:51 +01:00
Max Leiter
6b074a6660
Merge pull request #4174 from thelounge/v4.3.0-pre.1_release
v4.3.0-pre.1 release
2021-03-03 00:36:55 -08:00
Max Leiter
57bce195de
v4.3.0-pre.1 2021-03-03 00:24:15 -08:00
Max Leiter
34086369db Add changelog entry for v4.3.0-pre.1 2021-03-02 21:53:10 -08:00
Max Leiter
8ce947130b
Merge pull request #4142 from thelounge/renovate/sqlite3-5.x
Update dependency sqlite3 to v5.0.2
2021-03-02 21:47:32 -08:00
Max Leiter
70fcf6f3ee
Merge pull request #4167 from thelounge/renovate/babel-monorepo
Update babel monorepo
2021-03-02 21:47:15 -08:00
Renovate Bot
f0a3611d1e
Update dependency sqlite3 to v5.0.2 2021-03-03 05:37:04 +00:00
Renovate Bot
df6226c7ca
Update babel monorepo 2021-03-03 05:36:36 +00:00
Max Leiter
8dfa7305b3
Merge pull request #4168 from thelounge/renovate/commander-7.x
Update dependency commander to v7.1.0
2021-03-02 21:35:02 -08:00
Max Leiter
850b49d802
Merge pull request #4169 from thelounge/renovate/css-loader-5.x
Update dependency css-loader to v5.1.1
2021-03-02 21:34:42 -08:00
Max Leiter
8a14b75a47
Merge pull request #4170 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.21.0
2021-03-02 21:34:33 -08:00
Max Leiter
c94ace5843
Slightly adjust config option wording 2021-03-02 15:03:39 -08:00
Renovate Bot
19c7a513f1
Update dependency eslint to v7.21.0 2021-03-02 22:12:30 +00:00
Renovate Bot
fbad88f9da
Update dependency css-loader to v5.1.1 2021-03-02 22:12:15 +00:00
Renovate Bot
2f29089bbf
Update dependency commander to v7.1.0 2021-03-02 22:12:01 +00:00
Max Leiter
afe136fee8
Merge pull request #4171 from emilyst/patch-1
Configure server ping timeout to 60 seconds
2021-03-02 13:10:03 -08:00
Max Leiter
9474cd96d3
Merge pull request #4112 from thelounge/socketio
Upgrade to socket.io v3
2021-03-02 13:07:29 -08:00
Emily Strickland
c782ca5b93
Configure server ping timeout to 60 seconds
The default socket.io server-side ping timeout was changed from 60 seconds to 5 seconds. In browsers based on Chrome, this is not enough time to respond when the browser is idle. The end result is that the server sets the user away and then back approximately once every minute if the client window is idle, which is undesirable.

This change restores the previous timeout value.

See https://github.com/socketio/socket.io/issues/3259#issuecomment-474523271.
2021-02-28 18:53:36 -08:00
Pavel Djundik
e6fc726c91 Upgrade to socket.io v3 2021-02-28 15:30:44 -08:00
Reto Brunner
7c17662fea Add prefetchMaxSearchSize to override limit for link previews
YouTube puts the opengraph tags needed for the preview after ~300KB in the body
instead of the beginning of the <head> tag.
Instead of hardcoding the value, allow the server admin to set the policy as
they prefer.
2021-02-27 00:10:53 +01:00
Max Leiter
f99e4eef77
Merge pull request #4116 from Nachtalb/na/network-specific-leave-message 2021-02-13 17:22:12 -08:00
Max Leiter
c974ecb14a
Adjust placeholder away message 2021-02-12 14:07:48 -08:00
Max Leiter
ab66c3f487
Merge pull request #4129 from thelounge/renovate/actions-setup-node-2.x
Update actions/setup-node action to v2
2021-02-09 16:51:20 -08:00
Renovate Bot
32ec420763
Update actions/setup-node action to v2 2021-02-10 00:12:09 +00:00
Max Leiter
7fef41131a
Merge pull request #4155 from thelounge/depUpdates
Update dependencies
2021-02-09 16:11:14 -08:00
Max Leiter
de12699fa6 Update dependencies 2021-02-09 14:52:55 -08:00
Max Leiter
d09f6f6144
Merge pull request #4138 from thelounge/renovate/copy-webpack-plugin-6.x
Update dependency copy-webpack-plugin to v6.4.1
2021-02-09 13:19:53 -08:00
Max Leiter
27195dd34a
Merge pull request #4139 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.10.4
2021-02-09 13:19:38 -08:00
Max Leiter
b29850b2d0
Merge pull request #4140 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.19.0
2021-02-09 13:19:07 -08:00
Max Leiter
02c0290ee3
Merge pull request #4141 from thelounge/renovate/eslint-plugin-vue-7.x
Update dependency eslint-plugin-vue to v7.5.0
2021-02-09 13:18:38 -08:00
Renovate Bot
43a70df1b1
Update dependency eslint-plugin-vue to v7.5.0 2021-02-09 00:01:45 +00:00
Renovate Bot
247f20c8ef
Update dependency eslint to v7.19.0 2021-02-09 00:01:29 +00:00
Renovate Bot
6fc72624aa
Update dependency dayjs to v1.10.4 2021-02-09 00:01:13 +00:00
Renovate Bot
3d1834cc5e
Update dependency copy-webpack-plugin to v6.4.1 2021-02-09 00:00:58 +00:00
Pavel Djundik
eb056c4997
Merge pull request #4151 from Willamin/patch-1
Add gopher and gemini to the commonSchemes
2021-02-04 11:43:39 +02:00
Will Lewis
9aadf1a739
Add gopher and gemini to the commonSchemes 2021-02-01 10:43:06 -05:00
Nachtalb
03377c6ced
Also use the networks specific leave message on quit 2020-12-18 10:53:40 +01:00
Nachtalb
877e4acf7d
Add network specific leave message 2020-12-18 10:53:37 +01:00
Pavel Djundik
aa84e13656
Merge pull request #4110 from Nachtalb/na/fix-breaking-gifs
Fix breaking GIFs while removing metadata
2020-11-25 22:57:55 +02:00
Nick Espig
0e7a5f5c9b Fix breaking GIFs while removing metadata
Closes #4109
GIFs can't contain EXIF data and do not contain any other metadata that isn't operationl
2020-11-25 21:55:33 +01:00
Pavel Djundik
8fa8eed1e5 Upgrade dependencies 2020-11-25 17:45:22 +02:00
Pavel Djundik
b2d5cdd4fc
Merge pull request #4104 from GewoonYorick/4097/add-ignore-to-contextmenu
Add ignore option to contextmenu
2020-11-19 16:27:48 +02:00
Pavel Djundik
4529118fd9
Merge pull request #4105 from GewoonYorick/3700/add-extended-join-info
Add extended join information to join message
2020-11-19 16:26:16 +02:00
Yorick Bosman
651a7ac2e9 Add extended join information to join message. 2020-11-19 00:25:28 +01:00
Yorick Bosman
51b0ec1e98 Add ignore option to contextmenu 2020-11-18 23:57:20 +01:00
Pavel Djundik
ee16d98a94
Merge pull request #4094 from thelounge/renovate/vue-monorepo
Update vue monorepo
2020-11-04 15:34:55 +02:00
Pavel Djundik
2bbad443c0
Merge pull request #4093 from thelounge/xpaw/fix-4092
Do not generate and send client certificate unless SASL EXTERNAL is requested
2020-11-04 15:30:53 +02:00
Renovate Bot
a4f4d23693
Update vue monorepo 2020-11-02 08:20:01 +00:00
Pavel Djundik
a76e75f609 Do not generate and send client certificate unless SASL EXTERNAL is requested
Fixes #4092
2020-10-30 23:03:57 +02:00
Pavel Djundik
69986b3ee5 Add node 15 to test matrix 2020-10-30 23:03:45 +02:00
Pavel Djundik
c2e8eaf9df Fix test for production build
Webpack 5 minifies it now
2020-10-30 23:02:40 +02:00
Pavel Djundik
41831d18b1
Upgrade to webpack 5 and all deps 2020-10-30 15:10:50 +02:00
Pavel Djundik
800fc95278 Update dependencies 2020-10-23 11:52:04 +03:00
Pavel Djundik
3e9262a345 Update dependencies 2020-10-15 12:22:49 +03:00
Pavel Djundik
a9fb563c01 Update mini-css-extract-plugin 2020-10-11 11:06:52 +03:00
Pavel Djundik
e7a8258ac0 Update packages 2020-10-11 10:56:13 +03:00
Pavel Djundik
0322c043e3
Merge pull request #4090 from supertassu/scripable-user-password-change
Make `add` and `reset` CLI commands scriptable
2020-10-07 10:03:37 +03:00
Taavi Väänänen
e790a72e59 Make add and reset CLI commands scriptable
Add CLI options `--password` and `--save-logs` (for `add` only) in
order to make adding users and changing user passwords scriptable.

Closes #3913
2020-10-07 09:00:00 +03:00
Pavel Djundik
6ca3bae73e
Merge pull request #4087 from thelounge/update-deps
Update dependencies
2020-09-30 17:54:29 +03:00
Pavel Djundik
c89b2bb0d6 Update postcss-loader
postcss is required by cssnano, so no need to list is explicitly
2020-09-30 17:50:24 +03:00
Pavel Djundik
1c004cbd17 Upgrade eslint-plugin-vue and fix rules 2020-09-30 17:44:07 +03:00
Pavel Djundik
02357ab9de Upgrade dependencies 2020-09-30 17:41:56 +03:00
Pavel Djundik
d4bf0e365f
Merge pull request #4060 from thelounge/xpaw/fix-323
Always use multi-prefix modes
2020-09-29 13:48:21 +03:00
Pavel Djundik
61ebd65367 Add depTypeList 2020-09-18 11:51:12 +03:00
Pavel Djundik
e622662c16 Update dependencies 2020-09-18 11:49:09 +03:00
Pavel Djundik
7ee0732f56 Change renovate to monthly 2020-09-18 11:49:01 +03:00
Pavel Djundik
75926432d0 Update dependencies 2020-09-02 10:38:16 +03:00
Pavel Djundik
3fde2aa7b9 Always use multi-prefix modes
Fixes #323
2020-09-01 11:45:08 +03:00
Pavel Djundik
27b3e50a64
Merge pull request #4055 from thelounge/xpaw/enterkeyhint
Add enterkeyhint on chat input and topic save
2020-08-31 13:14:24 +03:00
Pavel Djundik
b9540636de Update dependencies 2020-08-29 11:51:01 +03:00
Pavel Djundik
eef782fd2c
Merge pull request #4051 from MaxLeiter/accessibilityErrors
Add HTML lang and labelled-by field to upload
2020-08-29 11:47:46 +03:00
Pavel Djundik
5b602c72dc Add enterkeyhint 2020-08-29 11:46:11 +03:00
Max Leiter
570890f2f9 Set lang to unknown for #chat-container 2020-08-28 14:23:02 -07:00
Max Leiter
ea5c95ac94 Add HTML lang and labelled-by field to upload 2020-08-27 18:57:12 -07:00
Pavel Djundik
b74b692391 Update prettier and apply formatting 2020-08-25 12:49:53 +03:00
Pavel Djundik
ac842108f3
Merge pull request #4047 from thelounge/xpaw/avif
Detect `image/avif` as an image
2020-08-24 11:54:14 +03:00
Pavel Djundik
12ceb10c75
Merge pull request #4046 from thelounge/renovate/tlds-1.x
Update dependency tlds to v1.209.0
2020-08-23 20:49:39 +03:00
Pavel Djundik
037f09a22f
Merge pull request #4043 from thelounge/renovate/babel-monorepo
Update dependency @babel/core to v7.11.4
2020-08-23 20:49:29 +03:00
Pavel Djundik
f66ee9473a
Merge pull request #4045 from thelounge/renovate/pretty-quick-3.x
Update dependency pretty-quick to v3
2020-08-23 20:49:02 +03:00
Pavel Djundik
2194f91a55
Merge pull request #4042 from thelounge/vscode
Add .vscode settings and suggested extensions
2020-08-23 20:46:57 +03:00
Pavel Djundik
df115333ba
Merge pull request #4041 from thelounge/mcinkay/2333/version-compatibility
Add version support for packages.
2020-08-23 20:46:44 +03:00
Pavel Djundik
4307d2da9d
Merge pull request #4040 from thelounge/xpaw/media-embed
Skip video/audio embeds if og:type exists but does not specify it
2020-08-23 20:46:36 +03:00
Pavel Djundik
c89dcca449 Detect image/avif as an image 2020-08-23 12:51:52 +03:00
Renovate Bot
1df4dfad4a
Update dependency tlds to v1.209.0 2020-08-22 03:58:34 +00:00
Renovate Bot
8fb6f291f8
Update dependency pretty-quick to v3 2020-08-22 01:26:16 +00:00
Renovate Bot
fedaada5a9
Update dependency @babel/core to v7.11.4 2020-08-22 00:13:04 +00:00
Pavel Djundik
381b6904e6 Add .vscode settings and suggested extensions 2020-08-21 19:27:41 +03:00
Al McKinlay
86e570efb2 Add version support for packages. 2020-08-21 15:03:12 +01:00
Pavel Djundik
1e38262d69 Add missing return 2020-08-21 10:18:41 +03:00
Pavel Djundik
9e13694b21 Skip video/audio embeds if og:type exists but does not specify it 2020-08-21 10:16:54 +03:00
Pavel Djundik
7bf4f68ff8 Upgrade packages 2020-08-20 19:43:53 +03:00
Pavel Djundik
19e7017d31 v4.2.0 2020-08-20 19:13:57 +03:00
Pavel Djundik
b398a0696b Add v4.2.0 changelog 2020-08-20 19:13:48 +03:00
Pavel Djundik
14ed73ed9b
Merge pull request #3998 from Jay2k1/highlight-exceptions
Highlight exceptions
2020-08-19 21:30:36 +03:00
Jay2k1
b97b145df1 add highlight exceptions 2020-08-19 00:00:56 +02:00
Pavel Djundik
c29ae50392
Merge pull request #4037 from thelounge/xpaw/rm-graphql-request
Remove `graphql-request` dependency from changelog script
2020-08-18 11:00:29 +03:00
Pavel Djundik
3557bf00fd
Merge pull request #4038 from thelounge/xpaw/sync-network-name
Sync changed network name to open clients
2020-08-18 11:00:21 +03:00
Pavel Djundik
67e4a4bbb2 Sync changed network name to open clients 2020-08-17 12:57:37 +03:00
Pavel Djundik
f63f1abb7c Remove graphql-request dependency from changelog script 2020-08-17 12:46:28 +03:00
Pavel Djundik
1ef7d5ed49 Update dependencies and yarn.lock 2020-08-17 12:21:23 +03:00
Pavel Djundik
928436a9ce
Merge pull request #4032 from thelounge/xpaw/help-unread
Increase unread counter for HELP and INFO messages
2020-08-15 11:34:42 +03:00
Pavel Djundik
5861ffadf2 Increase unread counter for HELP and INFO messages 2020-08-14 14:26:03 +03:00
Pavel Djundik
2d88ae7503
Merge pull request #4029 from thelounge/xpaw/emoji-dahes
Replace dashes to underscores in emoji autocompletion
2020-08-14 10:39:45 +03:00
Pavel Djundik
82c83c5f18
Merge pull request #4028 from thelounge/xpaw/nosync
Disable settings sync for browser notifications and notification sound
2020-08-14 10:39:29 +03:00
Pavel Djundik
19d6b7d98f Replace dashes to underscores in emoji autocompletion 2020-08-13 10:47:50 +03:00
Pavel Djundik
d588ecea58 Disable settings sync for browser notifications and notification sound
Closes #3144
2020-08-12 18:36:07 +03:00
Pavel Djundik
b6782da837
Merge pull request #4020 from thelounge/xpaw/obj
Use lodash where possible
2020-08-10 15:57:12 +03:00
Pavel Djundik
8bf55527ed Use lodash where possible 2020-08-07 19:52:50 +03:00
Pavel Djundik
2a11c07ba9
Merge pull request #4014 from thelounge/xpaw/no-schema-previews
Disable link prefetching for urls with no schema specified
2020-08-05 12:18:10 +03:00
Pavel Djundik
5720c98869
Merge pull request #4015 from thelounge/renovate/tlds-1.x
Update dependency tlds to v1.208.0
2020-08-04 23:05:03 +03:00
Renovate Bot
7fce28ad90
Update dependency tlds to v1.208.0 2020-08-04 19:32:47 +00:00
Pavel Djundik
8c6460b58a Disable link prefetching for urls with no schema specified 2020-08-04 20:21:12 +03:00
Pavel Djundik
70937d29e0 Update dependencies 2020-08-03 11:36:45 +03:00
Pavel Djundik
f1fc7a8968
Merge pull request #4005 from thelounge/xpaw/fix-mode-users
Fix mode message only making last nick clickable
2020-07-29 16:54:58 +03:00
Pavel Djundik
40954c9a3a Fix mode message only making last nick clickable 2020-07-29 10:29:51 +03:00
Pavel Djundik
7d6f98d974
Merge pull request #4004 from thelounge/renovate/uuid-8.x
Update dependency uuid to v8.3.0
2020-07-28 18:01:16 +03:00
Renovate Bot
d658b7dfd5
Update dependency uuid to v8.3.0 2020-07-28 11:03:02 +00:00
Pavel Djundik
87299bb893 v4.2.0-pre.2 2020-07-28 14:01:51 +03:00
Pavel Djundik
0dba477eb3
Add changelog entry for v4.2.0-pre.2 2020-07-28 14:01:27 +03:00
Richard Lewis
9a5d80cecc
Merge pull request #4003 from thelounge/xpaw/mentions-wrap
Add break-word on mentions popup content
2020-07-27 18:47:17 +03:00
Pavel Djundik
89165d798b Add break-word on mentions popup content 2020-07-27 17:27:06 +03:00
Pavel Djundik
ec65fd17af
Merge pull request #3983 from SRCF/audio
Add option to disable media preview.
2020-07-27 11:04:06 +03:00
Pavel Djundik
5a1963647e
Merge pull request #3962 from thelounge/xpaw/help-info-blocks
Implement generic monospace blocks for INFO and HELP numerics
2020-07-27 11:02:14 +03:00
Pavel Djundik
d6cace3959
Merge pull request #3999 from thelounge/xpaw/fix-chrome-perf
Fix layout trashing in Chrome causing typing lag
2020-07-27 11:02:01 +03:00
Pavel Djundik
9502b6adf0
Merge pull request #3987 from thelounge/xpaw/notif-state
Refresh notification permission state when push is enabled
2020-07-27 11:01:53 +03:00
Pavel Djundik
a8a2bd7755
Merge pull request #3986 from thelounge/xpaw/upload-keepalive
Fix upload tokens expiring while uploading when TL is proxied
2020-07-27 11:01:44 +03:00
Pavel Djundik
a0cfa4900e
Merge pull request #3995 from thelounge/xpaw/router-cleanup
Cleanup vue router route guards
2020-07-27 11:01:37 +03:00
Pavel Djundik
3e26611e9f Fix layout trashing in Chrome
https://bugs.chromium.org/p/chromium/issues/detail?id=1063575#c21
2020-07-27 10:27:52 +03:00
Pavel Djundik
aaaf498ada
Merge pull request #4002 from thelounge/renovate/css-loader-4.x
Update dependency css-loader to v4
2020-07-27 10:27:31 +03:00
Renovate Bot
bf12d7f4c3
Update dependency css-loader to v4 2020-07-27 07:22:07 +00:00
Pavel Djundik
07e4663e02
Merge pull request #4001 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.44.0
2020-07-27 10:20:53 +03:00
Pavel Djundik
1de351794d
Merge pull request #4000 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.30
2020-07-27 10:20:44 +03:00
Renovate Bot
a7f4008ec8
Update dependency webpack to v4.44.0 2020-07-25 00:38:52 +00:00
Renovate Bot
9e77dc3cca
Update dependency dayjs to v1.8.30 2020-07-25 00:38:31 +00:00
Pavel Djundik
1ec728c2b0
Merge pull request #3992 from thelounge/renovate/commander-6.x
Update dependency commander to v6
2020-07-22 10:59:41 +03:00
Pavel Djundik
ccea8a35f2
Merge pull request #3996 from thelounge/renovate/ldapjs-2.x
Update dependency ldapjs to v2.1.0
2020-07-22 10:59:31 +03:00
Renovate Bot
d63a85a15c
Update dependency ldapjs to v2.1.0 2020-07-21 22:02:09 +00:00
Dexter Chua
2f434be75d Add option to disable media preview.
This disables image previews iff prefetchStorage is disabled. This
stops the client from making any requests to third-party sites.
2020-07-21 08:52:02 +08:00
Pavel Djundik
a2c1d1175b Disallow navigating to invalid networks 2020-07-20 11:50:01 +03:00
Pavel Djundik
181a198994 Cleanup vue router route guards 2020-07-20 11:50:01 +03:00
Pavel Djundik
63a420ac21 Implement generic monospace blocks for INFO and MOTD numerics
Fixes #3961
2020-07-20 10:07:49 +03:00
Renovate Bot
3e5933bfd3
Update dependency commander to v6 2020-07-19 19:01:39 +00:00
Pavel Djundik
0ac1fcb471
Merge pull request #3993 from thelounge/xpaw/mentions-fix
Improvements to mentions window
2020-07-19 21:45:46 +03:00
Pavel Djundik
531ea920e0 Improvements to mentions window
- Add hide all button
- Only show overflow scroll when necessary
- Fix key in v-for loop
- Increase window height if browser size allows for it
2020-07-19 17:29:52 +03:00
Pavel Djundik
cf4a776a93
Merge pull request #3989 from thelounge/renovate/babel-monorepo
Update dependency @babel/core to v7.10.5
2020-07-19 00:18:14 +03:00
Pavel Djundik
4f7dd37303
Merge pull request #3988 from thelounge/renovate/got-11.x
Update dependency got to v11.5.1
2020-07-19 00:18:05 +03:00
Pavel Djundik
c0258b847e
Merge pull request #3991 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.5.0
2020-07-19 00:17:57 +03:00
Pavel Djundik
af65f11b68
Merge pull request #3990 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.14.0
2020-07-19 00:17:49 +03:00
Renovate Bot
79beff1d8a
Update dependency eslint to v7.5.0 2020-07-18 19:23:18 +00:00
Renovate Bot
0b7c76ef49
Update dependency @fortawesome/fontawesome-free to v5.14.0 2020-07-18 00:14:30 +00:00
Renovate Bot
970208b470
Update dependency @babel/core to v7.10.5 2020-07-18 00:14:11 +00:00
Renovate Bot
21c496d534
Update dependency got to v11.5.1 2020-07-16 12:14:55 +00:00
Pavel Djundik
b7c5f2031c Refresh notification permission state when push is enabled 2020-07-15 16:08:36 +03:00
Pavel Djundik
b1115475bf Fix upload tokens expiring while uploading
Fixes #3982
2020-07-15 12:29:02 +03:00
Pavel Djundik
f979c72ca7
Merge pull request #3984 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.9.0
2020-07-13 11:21:55 +03:00
Pavel Djundik
5e6b5f7400 Add certfp to whois 2020-07-13 10:25:54 +03:00
Pavel Djundik
4becb152bb Changes for irc-framework update 2020-07-13 10:25:54 +03:00
Renovate Bot
761d482572
Update dependency irc-framework to v4.9.0 2020-07-12 22:48:47 +00:00
Richard Lewis
189f7d84ba
Merge pull request #3981 from thelounge/xpaw/mixed-content
Change wording of prefetchStorage option
2020-07-10 14:08:05 +03:00
Pavel Djundik
020323ca45
Change wording of prefetchStorage option 2020-07-10 13:52:39 +03:00
Pavel Djundik
d0d3a205b9
Merge pull request #3977 from thelounge/xpaw/allow-private-lock-name
Allow changing network name in private mode with lockNetwork
2020-07-09 11:17:31 +03:00
Pavel Djundik
d01d39deda Update yarn.lock 2020-07-09 10:50:52 +03:00
Renovate Bot
70f45ab7f4
Update dependency lodash to v4.17.19 2020-07-08 17:17:20 +00:00
Pavel Djundik
d7c641ffc7 Add password field for private+locknetwork 2020-07-08 15:42:34 +03:00
Pavel Djundik
c21ccad823 Allow changing network name in private mode with lockNetwork 2020-07-08 15:42:34 +03:00
Pavel Djundik
5fcfcf4f23
Merge pull request #3976 from thelounge/node-v14
Test node v14
2020-07-08 15:41:25 +03:00
Pavel Djundik
5f3133a609 Update vuedraggable and yarn.lock 2020-07-08 15:29:17 +03:00
Renovate Bot
6a0708b676
Update dependency lodash to v4.17.17 2020-07-08 12:14:35 +00:00
Richard Lewis
fae9d75d6d
Merge pull request #3978 from thelounge/xpaw/fix-date-marker
Fix date marker not displaying sometimes
2020-07-08 14:59:42 +03:00
Pavel Djundik
67d9317f20 Fix date marker not displaying sometimes 2020-07-08 14:43:43 +03:00
Pavel Djundik
c5f9ef3e3d Test node v14 2020-07-08 14:19:22 +03:00
Pavel Djundik
9d7888814c Update yarn.lock 2020-07-08 14:17:22 +03:00
Pavel Djundik
bba2f21f5e Merge remote-tracking branches 'origin/renovate/got-11.x', 'origin/renovate/lodash-monorepo' and 'origin/renovate/sqlite3-5.x' 2020-07-08 14:14:18 +03:00
Renovate Bot
f8448c2521
Update dependency lodash to v4.17.16 2020-07-08 11:08:01 +00:00
Renovate Bot
bc862698ea
Update dependency sqlite3 to v5 2020-07-08 10:30:09 +00:00
Renovate Bot
cf64de66c9
Update dependency got to v11.5.0 2020-07-08 10:29:50 +00:00
Pavel Djundik
dbe1427e7a
Merge pull request #3845 from thelounge/xpaw/native-badging
Implement native app badges for highlights (Chrome 81+)
2020-07-08 12:33:52 +03:00
Pavel Djundik
b6bd869d5f
Merge pull request #3918 from ashwinikammar/ashwini/fix_username
Make usernames case-insensitive when logging in
2020-07-08 11:26:58 +03:00
Pavel Djundik
a6ee6efb6a
Merge pull request #3967 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.10.4
2020-07-06 10:40:47 +03:00
Pavel Djundik
6ae3821e12
Merge pull request #3968 from thelounge/renovate/copy-webpack-plugin-6.x
Update dependency copy-webpack-plugin to v6.0.3
2020-07-06 10:40:40 +03:00
Pavel Djundik
9e278dc812
Merge pull request #3969 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.29
2020-07-06 10:40:32 +03:00
Pavel Djundik
2323afc0d3
Merge pull request #3970 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.4.0
2020-07-06 10:40:24 +03:00
Pavel Djundik
2ef16d5f9b
Merge pull request #3971 from thelounge/renovate/vue-monorepo
Update dependency vuex to v3.5.1
2020-07-06 10:40:16 +03:00
Pavel Djundik
b605bf3a95
Merge pull request #3972 from thelounge/renovate/got-11.x
Update dependency got to v11.4.0
2020-07-06 10:40:07 +03:00
Renovate Bot
91a377b015
Update dependency got to v11.4.0 2020-07-04 11:53:46 +00:00
Renovate Bot
2544b19525
Update dependency vuex to v3.5.1 2020-07-04 02:47:28 +00:00
Renovate Bot
34abca6af7
Update dependency eslint to v7.4.0 2020-07-04 01:10:00 +00:00
Renovate Bot
111201f212
Update dependency dayjs to v1.8.29 2020-07-04 01:09:41 +00:00
Renovate Bot
cb2a7d02ba
Update dependency copy-webpack-plugin to v6.0.3 2020-07-04 00:39:25 +00:00
Renovate Bot
a3e4d4c99d
Update babel monorepo to v7.10.4 2020-07-04 00:39:04 +00:00
Pavel Djundik
32d39410da
Put the string in quotes
skip ci

Github rendered it as "\#"
2020-06-29 15:16:15 +03:00
Pavel Djundik
7ddfc63327
Escape channel name
skip ci
2020-06-29 15:15:13 +03:00
Pavel Djundik
21d872519f
Merge pull request #3963 from thelounge/issue-links
Create issues links
2020-06-29 15:14:13 +03:00
Pavel Djundik
8fe9add310 Create issues links 2020-06-29 12:48:14 +03:00
Pavel Djundik
0d9571e43e
Merge pull request #3960 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.9.3
2020-06-28 11:46:37 +03:00
Pavel Djundik
47624efd24
Merge pull request #3959 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.3.1
2020-06-28 11:46:29 +03:00
Pavel Djundik
ff52ee58e4
Merge pull request #3957 from thelounge/renovate/uuid-8.x
Update dependency uuid to v8.2.0
2020-06-28 11:46:22 +03:00
Renovate Bot
f635292dfe
Update dependency vue-loader to v15.9.3 2020-06-27 01:00:57 +00:00
Renovate Bot
99def3c0ef
Update dependency eslint to v7.3.1 2020-06-27 01:00:36 +00:00
Renovate Bot
91a32d9d51
Update dependency uuid to v8.2.0 2020-06-23 21:10:54 +00:00
Ashwini Kammar
9e8033e36e Fixing thelounge username case-sensitivity - issue#2943
Removing the duplicate user profiles
2020-06-23 13:01:06 +01:00
Pavel Djundik
eebfb7a6c5
Merge pull request #3952 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.13.1
2020-06-22 23:00:12 +03:00
Pavel Djundik
8ec54169f3
Merge pull request #3953 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.3.0
2020-06-22 23:00:05 +03:00
Pavel Djundik
6f58a875de
Merge pull request #3954 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.6.1
2020-06-22 22:59:58 +03:00
Renovate Bot
b7035d3cae
Update dependency stylelint to v13.6.1 2020-06-22 08:58:30 +00:00
Renovate Bot
7effc2f873
Update dependency eslint to v7.3.0 2020-06-22 08:58:14 +00:00
Renovate Bot
2b1d04938a
Update dependency @fortawesome/fontawesome-free to v5.13.1 2020-06-22 08:57:56 +00:00
Pavel Djundik
fa0396a764
Merge pull request #3951 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.10.3
2020-06-22 11:56:18 +03:00
Pavel Djundik
d2d3880f23
Merge pull request #3955 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.12
2020-06-22 11:56:04 +03:00
Renovate Bot
cf842e8ebf
Update dependency webpack-cli to v3.3.12 2020-06-20 05:18:39 +00:00
Renovate Bot
f50a40dfb4
Update babel monorepo to v7.10.3 2020-06-20 01:18:24 +00:00
Pavel Djundik
e3f0cd4fc3
Update yarn.lock 2020-06-14 12:38:28 +03:00
Pavel Djundik
8f102f7316 Merge remote-tracking branch 'origin/renovate/chalk-4.x' 2020-06-14 12:34:36 +03:00
Pavel Djundik
b904b4875c Merge remote-tracking branch 'origin/renovate/css-loader-3.x' 2020-06-14 12:34:30 +03:00
Pavel Djundik
c3f96472c2 Merge remote-tracking branch 'origin/renovate/file-type-14.x' 2020-06-14 12:34:24 +03:00
Pavel Djundik
72b7906949 Merge branch 'renovate/mocha-8.x' 2020-06-14 12:34:07 +03:00
Renovate Bot
612b84ceb7
Update dependency css-loader to v3.6.0 2020-06-14 09:33:52 +00:00
Renovate Bot
a4f0add6e1
Update dependency chalk to v4.1.0 2020-06-14 09:33:35 +00:00
Pavel Djundik
3ac2d2c22a
Merge pull request #3946 from thelounge/renovate/textcomplete-0.x
Update dependency textcomplete to v0.18.2
2020-06-14 12:33:23 +03:00
Pavel Djundik
fd9863d919
Merge pull request #3906 from thelounge/xpaw/ctcp-server
Reply to the server if that's where CTCP VERSION originated
2020-06-14 12:33:08 +03:00
Pavel Djundik
b3ad1b1419
Merge pull request #3947 from thelounge/renovate/vue-monorepo
Update dependency vue-router to v3.3.4
2020-06-14 12:33:00 +03:00
Pavel Djundik
d29f2fb251 Got: "options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized" 2020-06-14 12:32:08 +03:00
Renovate Bot
1918485d8c
Update dependency file-type to v14.6.2 2020-06-14 08:59:43 +00:00
Renovate Bot
eeac12fe49
Update dependency vue-router to v3.3.4 2020-06-13 09:09:06 +00:00
Renovate Bot
78426087d1
Update dependency mocha to v8 2020-06-13 03:37:39 +00:00
Renovate Bot
1eafb231af
Update dependency textcomplete to v0.18.2 2020-06-13 01:32:39 +00:00
Pavel Djundik
154ac3a8fa
Merge pull request #3937 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7.2.0
2020-06-07 17:32:20 +03:00
Pavel Djundik
4888f538d7
Merge pull request #3939 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.6.0
2020-06-07 17:32:13 +03:00
Pavel Djundik
d23f7af439
Merge pull request #3938 from thelounge/renovate/nyc-15.x
Update dependency nyc to v15.1.0
2020-06-07 17:32:05 +03:00
Pavel Djundik
bbd9bbeb46
Merge pull request #3936 from thelounge/renovate/copy-webpack-plugin-6.x
Update dependency copy-webpack-plugin to v6.0.2
2020-06-07 17:31:58 +03:00
Pavel Djundik
75ec058910
Merge pull request #3935 from thelounge/renovate/got-11.x
Update dependency got to v11.3.0
2020-06-07 17:31:50 +03:00
Pavel Djundik
05feff3d28
Merge pull request #3940 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.6.1
2020-06-07 17:31:35 +03:00
Renovate Bot
02da351c3c
Update dependency file-type to v14.6.1 2020-06-07 13:43:44 +00:00
Renovate Bot
c7b78779e5
Update dependency stylelint to v13.6.0 2020-06-06 02:35:32 +00:00
Renovate Bot
bc087ab74d
Update dependency nyc to v15.1.0 2020-06-06 02:35:13 +00:00
Renovate Bot
6315befa32
Update dependency eslint to v7.2.0 2020-06-06 00:36:51 +00:00
Renovate Bot
984bb76c5f
Update dependency copy-webpack-plugin to v6.0.2 2020-06-06 00:36:29 +00:00
Renovate Bot
1299e1e4c9
Update dependency got to v11.3.0 2020-06-05 16:33:22 +00:00
Richard Lewis
f3236538a0 Fix searching channels with uppercase letters in name. 2020-06-03 14:17:53 +03:00
Richard Lewis
b4d02c3c56 Fix context menus in search results. 2020-06-03 14:04:57 +03:00
Pavel Djundik
3194777b98
Merge pull request #3927 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.10.2
2020-06-02 17:34:28 +03:00
Pavel Djundik
f593af9b12
Merge pull request #3932 from thelounge/renovate/got-11.x
Update dependency got to v11.2.0
2020-06-02 17:34:20 +03:00
Pavel Djundik
889d2f8482
Merge pull request #3934 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.6.0
2020-06-02 17:34:14 +03:00
Renovate Bot
7ea79d10a2
Update dependency file-type to v14.6.0 2020-06-02 04:36:29 +00:00
Renovate Bot
cd1171b4c1
Update dependency got to v11.2.0 2020-06-01 07:38:47 +00:00
Renovate Bot
97a2805a8a
Update babel monorepo to v7.10.2 2020-05-31 19:43:18 +00:00
Pavel Djundik
a119e5c4a0
Merge pull request #3931 from thelounge/renovate/ldapjs-2.x
Update dependency ldapjs to v2.0.0
2020-05-31 22:38:59 +03:00
Pavel Djundik
ebcbabde95
Merge pull request #3929 from thelounge/renovate/vue-monorepo
Update dependency vue-router to v3.3.2
2020-05-31 22:38:51 +03:00
Pavel Djundik
a863c2c553
Merge pull request #3928 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.28
2020-05-31 22:38:44 +03:00
Renovate Bot
253d820225
Update dependency ldapjs to v2.0.0 2020-05-31 13:22:05 +00:00
Renovate Bot
f1c04be695
Update dependency vue-router to v3.3.2 2020-05-30 07:57:27 +00:00
Renovate Bot
7d418d6cbb
Update dependency dayjs to v1.8.28 2020-05-30 07:55:00 +00:00
Pavel Djundik
e7b6fdf0c3
Merge pull request #3886 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.2.0
2020-05-30 10:49:47 +03:00
Renovate Bot
56d5c77c76
Update dependency sqlite3 to v4.2.0 2020-05-26 07:47:03 +00:00
Pavel Djundik
336504c306
Merge pull request #3926 from thelounge/renovate/mocha-7.x
Update dependency mocha to v7.2.0
2020-05-26 10:45:06 +03:00
Renovate Bot
c54e7f9f47
Update dependency mocha to v7.2.0 2020-05-23 12:58:24 +00:00
Pavel Djundik
a740074fd9 Update eslint and yarn.lock 2020-05-23 12:29:25 +03:00
Pavel Djundik
1de0294642
Merge pull request #3922 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.5.0
2020-05-23 12:04:21 +03:00
Pavel Djundik
9443f4e848
Merge pull request #3923 from thelounge/renovate/vue-monorepo
Update dependency vue-router to v3.2.0
2020-05-23 12:04:02 +03:00
Pavel Djundik
f4cbcee1b0
Merge pull request #3920 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.5.0
2020-05-23 12:03:53 +03:00
Pavel Djundik
56883f655a
Merge pull request #3919 from thelounge/renovate/uuid-8.x
Update dependency uuid to v8.1.0
2020-05-23 12:03:44 +03:00
Pavel Djundik
24b53c9ff6
Merge pull request #3917 from thelounge/renovate/linkify-it-3.x
Update dependency linkify-it to v3
2020-05-23 12:03:36 +03:00
Renovate Bot
230f26156a
Update dependency vue-router to v3.2.0 2020-05-23 00:34:19 +00:00
Renovate Bot
42715720b1
Update dependency stylelint to v13.5.0 2020-05-23 00:34:04 +00:00
Renovate Bot
31a7228509
Update dependency file-type to v14.5.0 2020-05-21 05:46:39 +00:00
Renovate Bot
6322132921
Update dependency uuid to v8.1.0 2020-05-20 19:29:47 +00:00
Renovate Bot
70bff5616d
Update dependency linkify-it to v3 2020-05-20 12:31:33 +00:00
Pavel Djundik
9bb0b02261 v4.2.0-pre.1 2020-05-17 16:23:53 +03:00
Pavel Djundik
ff25f43eeb Add changelog entry for v4.2.0-pre.1 2020-05-17 16:23:46 +03:00
Pavel Djundik
b8322d6aa7
Merge pull request #3914 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.4.0
2020-05-17 16:22:41 +03:00
Pavel Djundik
23bbdb08aa
Merge pull request #3915 from thelounge/renovate/vue-monorepo
Update vue monorepo to v1.0.3
2020-05-17 16:22:33 +03:00
Renovate Bot
ac9bb8442b
Update vue monorepo to v1.0.3 2020-05-17 12:18:52 +00:00
Renovate Bot
eadd225363
Update dependency stylelint to v13.4.0 2020-05-17 10:04:24 +00:00
Pavel Djundik
a7c9cf5baa
Merge pull request #3909 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.4.0
2020-05-17 13:02:59 +03:00
Pavel Djundik
5de26dbee9
Merge pull request #3910 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.27
2020-05-17 13:02:53 +03:00
Pavel Djundik
a9f5f72218
Merge pull request #3911 from thelounge/renovate/vue-monorepo
Update dependency vuex to v3.4.0
2020-05-17 13:02:43 +03:00
Pavel Djundik
bd4c4414dd
Merge pull request #3905 from thelounge/renovate/got-11.x
Update dependency got to v11.1.4
2020-05-17 13:02:32 +03:00
Renovate Bot
1453c75c3f
Update dependency vuex to v3.4.0 2020-05-16 18:38:10 +00:00
Renovate Bot
1800c2a892
Update dependency got to v11.1.4 2020-05-16 18:37:49 +00:00
Renovate Bot
7747114b2e
Update dependency file-type to v14.4.0 2020-05-16 18:37:37 +00:00
Renovate Bot
48be6771b2
Update dependency dayjs to v1.8.27 2020-05-16 18:37:25 +00:00
Pavel Djundik
abb8566ce7
Merge pull request #3912 from thelounge/renovate/copy-webpack-plugin-6.x
Update dependency copy-webpack-plugin to v6
2020-05-16 21:36:58 +03:00
Pavel Djundik
bc7bf9870c Update CopyPlugin options 2020-05-16 21:33:25 +03:00
Renovate Bot
c3d8855ec3 Update dependency copy-webpack-plugin to v6 2020-05-16 21:33:24 +03:00
Pavel Djundik
dbc829b5f8 Reply to the server if that's where CTCP VERSION originated 2020-05-11 21:55:30 +03:00
Pavel Djundik
c4ff314a12
Merge pull request #3903 from thelounge/renovate/eslint-7.x
Update dependency eslint to v7
2020-05-11 16:32:22 +03:00
Pavel Djundik
147d3b2a9d
Merge pull request #3904 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.4.4
2020-05-11 16:32:12 +03:00
Renovate Bot
0e2e26ef88
Update dependency web-push to v3.4.4 2020-05-10 11:25:47 +00:00
Renovate Bot
a439102403
Update dependency eslint to v7 2020-05-09 17:06:10 +00:00
Pavel Djundik
e1157642a8
Merge pull request #3902 from thelounge/renovate/vue-monorepo
Update vue monorepo to v1.0.2
2020-05-09 20:04:57 +03:00
Pavel Djundik
91333d9009
Merge pull request #3898 from thelounge/renovate/got-11.x
Update dependency got to v11.1.2
2020-05-09 20:04:47 +03:00
Renovate Bot
9f6c374d36
Update vue monorepo to v1.0.2 2020-05-09 00:34:37 +00:00
Renovate Bot
aef952678a
Update dependency got to v11.1.2 2020-05-08 12:29:05 +00:00
Pavel Djundik
b73755b0c4
Merge pull request #3869 from thelounge/renovate/got-11.x
Update dependency got to v11
2020-05-06 13:19:37 +03:00
Pavel Djundik
67378c7a48
Merge pull request #3896 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.3.0
2020-05-06 13:19:29 +03:00
Renovate Bot
10d58f2f19
Update dependency file-type to v14.3.0 2020-05-04 19:27:42 +00:00
Renovate Bot
ca23475620
Update dependency got to v11 2020-05-04 15:40:30 +00:00
Pavel Djundik
5aaac56a1a
Merge pull request #3890 from thelounge/renovate/uuid-8.x
Update dependency uuid to v8
2020-05-04 11:55:10 +03:00
Pavel Djundik
6941b3cb7f
Merge pull request #3894 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.26
2020-05-04 11:55:00 +03:00
Pavel Djundik
b5b5d5e7d4
Merge pull request #3893 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.9.6
2020-05-04 11:54:51 +03:00
Pavel Djundik
39a8bed4ca
Merge pull request #3895 from thelounge/renovate/vue-monorepo
Update dependency vue-loader to v15.9.2
2020-05-04 11:54:35 +03:00
Renovate Bot
033565bfc5
Update dependency vue-loader to v15.9.2 2020-05-02 01:49:09 +00:00
Renovate Bot
b507b340a6
Update dependency dayjs to v1.8.26 2020-05-02 00:35:13 +00:00
Renovate Bot
ae276a69eb
Update babel monorepo to v7.9.6 2020-05-02 00:34:56 +00:00
Renovate Bot
5310c90a83
Update dependency uuid to v8 2020-04-29 20:52:32 +00:00
Pavel Djundik
512fc5ca04
Merge pull request #3889 from timmw/timmw/vue3-prep
Changes required for vue 3
2020-04-28 22:10:55 +03:00
Tim Miller-Williams
13a7a4b5c1
Remove vue/no-use-v-if-with-v-for eslint override 2020-04-28 20:05:46 +01:00
Pavel Djundik
fb9e3e6a53
Merge pull request #3888 from thelounge/xpaw/id-order
Fix msg id order when loading from sqlite
2020-04-28 21:42:44 +03:00
Tim Miller-Williams
06d6dbe3a3 Fix usage of v-for and v-if on same component 2020-04-28 17:00:08 +01:00
Tim Miller-Williams
8263b17861 Address warning in Vue 3
Property "unreadMarkerShown" was accessed during render but is not
defined on instance
2020-04-28 17:00:08 +01:00
Pavel Djundik
24d4276a7c Fix msg id order when loading from sqlite 2020-04-28 17:45:27 +03:00
Tim Miller-Williams
8d8183eabb Fix 'component' case sensitivity
Component does not work in Vue 3
2020-04-28 15:17:55 +01:00
Pavel Djundik
801c7a07c0
Merge pull request #3885 from thelounge/xpaw/eventbus-multi-arg
Support multiple arguments in eventbus emit
2020-04-28 16:02:24 +03:00
Pavel Djundik
61d8884bef Support multiple arguments in eventbus emit
Fixes confirm dialog callback
2020-04-27 21:45:47 +03:00
Richard Lewis
5d017b09b8 Append new results and keep scroll position. 2020-04-26 22:39:05 +03:00
Richard Lewis
9a1fb0c0a0 Search improvements. 2020-04-26 22:39:05 +03:00
Richard Lewis
88644314ce Use ellipsis
Co-Authored-By: Pavel Djundik <xPaw@users.noreply.github.com>
2020-04-26 22:39:05 +03:00
Richard Lewis
4ba458b9ea Use ellipsis
Co-Authored-By: Pavel Djundik <xPaw@users.noreply.github.com>
2020-04-26 22:39:05 +03:00
Richard Lewis
28c740ab67 Fix toggling search on mobile. 2020-04-26 22:39:05 +03:00
Richard Lewis
2591ae9e8e Disable searching nicks. 2020-04-26 22:39:05 +03:00
Richard Lewis
0f3c292098 Message search WIP. 2020-04-26 22:39:05 +03:00
Pavel Djundik
16646e1586 Fix eventbus 2020-04-26 12:34:22 +03:00
Pavel Djundik
8978be2fd7 Update yarn.lock 2020-04-26 12:21:02 +03:00
Renovate Bot
183226e190 Update dependency webpack to v4.43.0 2020-04-26 12:18:04 +03:00
Renovate Bot
185fcfef33 Update dependency vuex to v3.3.0 2020-04-26 12:18:04 +03:00
Renovate Bot
7a4ee6db27 Update dependency stylelint to v13.3.3 2020-04-26 12:18:04 +03:00
Renovate Bot
ea11e5cfd9 Update dependency prettier to v2.0.5 2020-04-26 12:18:04 +03:00
Renovate Bot
ae7426b6ff Update dependency mocha to v7.1.2 2020-04-26 12:18:03 +03:00
Renovate Bot
f72d29b391 Update dependency mime-types to v2.1.27 2020-04-26 12:18:03 +03:00
Renovate Bot
9a7ae60392 Update dependency file-type to v14.2.0 2020-04-26 12:13:01 +03:00
Renovate Bot
fc61500a29 Update dependency eslint-config-prettier to v6.11.0 2020-04-26 12:13:01 +03:00
Renovate Bot
bcdd548238 Update dependency dayjs to v1.8.25 2020-04-26 12:13:01 +03:00
Renovate Bot
2e9d375f36 Update dependency css-loader to v3.5.3 2020-04-26 12:13:01 +03:00
Renovate Bot
f436dfdd41
Update dependency commander to v5.1.0 2020-04-25 02:31:55 +00:00
Pavel Djundik
480a2576c3
Merge pull request #3872 from thelounge/xpaw/eventbus
Replace vue events with our own event bus
2020-04-24 14:24:29 +03:00
Pavel Djundik
f0253075d8 Create an event bus 2020-04-24 14:09:09 +03:00
Pavel Djundik
96a983b310
Merge pull request #3875 from thelounge/xpaw/statusmsg-ui
Add an indicator to statusmsg messages
2020-04-24 14:07:48 +03:00
Pavel Djundik
53bd9c2f68
Merge pull request #3868 from thelounge/xpaw/mentions-fixes
Some fixes in mentions window
2020-04-24 14:07:40 +03:00
Pavel Djundik
ad6569cf06 Add an indicator to statusmsg messages 2020-04-24 11:46:39 +03:00
Pavel Djundik
4ac25d4bc5
Merge pull request #3871 from ebardie/ebardie/dont_load_extinct_users
Filter user loading at startup for "advanced" LDAP
2020-04-24 10:21:42 +03:00
Jonathan Sambrook
878ac0d192 Filter user loading at startup for "advanced" LDAP
Users are loaded at startup. Currently when using "advanced" LDAP
authentication this is true even if they no longer have a
valid entry in the LDAP server.

This commit uses the existing LDAP filter (specified in config.js's searchDN
used by the "advanced" LDAP mechanism) to weed out any users that no
longer have the relevant LDAP entry.

Local and "simple" LDAP auth mechanisms continue to use the existing
load all users approach. In the "simple" LDAP case this is because we
only have access to the hashed password, and so can't bind to LDAP.
2020-04-23 15:54:09 +01:00
Jonathan Sambrook
a0d10989ad Tidy up the auth plugin API mechanism to hide implementation details
The caller doesn't care which plugin is being used, so this commit
consolidates implementation details within auth.js

The motivation for this work is to prepare for extending the auth API
(to allow "advanced" LDAP to query user entry ontological state at start
up), by tidying up rather than duplicating the existing mechanism.
2020-04-23 15:11:35 +01:00
Pavel Djundik
36844f948c
Merge pull request #3870 from thelounge/xpaw/random-nick-safeguard
Safeguard nick randomizer up to allowed length
2020-04-23 12:47:44 +03:00
Pavel Djundik
2b0afcacf2 Safeguard nick randomizer up to allowed length 2020-04-22 15:18:55 +03:00
Pavel Djundik
beb9fbd940 Set native app badge for highlights 2020-04-22 14:16:39 +03:00
Pavel Djundik
0642ae58ce
Merge pull request #3844 from thelounge/xpaw/certfp
CertFP support; separate SASL configuration
2020-04-22 14:05:34 +03:00
Pavel Djundik
635b8b3eef
Merge pull request #3866 from thelounge/renovate/vue-monorepo
Update dependency vuex to v3.2.0
2020-04-22 14:05:15 +03:00
Pavel Djundik
bcd2e7cb08 Some fixes in mentions window 2020-04-20 13:40:45 +03:00
Renovate Bot
91b48e061d
Update dependency vuex to v3.2.0 2020-04-20 08:16:43 +00:00
Pavel Djundik
89edc6aa30
Merge pull request #3867 from maxpoulin64/fix-manifest-color
Fix off-by-one color error in webmanifest
2020-04-20 10:22:40 +03:00
Maxime Poulin
be78a5809a Fix off-by-one color error in webmanifest 2020-04-19 20:46:37 -04:00
Pavel Djundik
ce6f188acc
Merge pull request #3863 from thelounge/renovate/semver-7.x
Update dependency semver to v7.3.2
2020-04-16 14:21:47 +03:00
Pavel Djundik
b8eaae3a50
Merge pull request #3864 from thelounge/xpaw/rm-polyfill
Remove intersection-observer polyfill
2020-04-16 14:21:35 +03:00
Pavel Djundik
9105a3db06 Remove intersection-observer polyfill 2020-04-15 16:14:21 +03:00
Renovate Bot
18a10a9efb
Update dependency semver to v7.3.2 2020-04-15 08:54:49 +00:00
Pavel Djundik
e772c4eab5
Merge pull request #3861 from MaxLeiter/mentionsLoading
Move mentions loading text out of header
2020-04-15 11:23:35 +03:00
Max Leiter
177d4d78ba Move mentions loading text out of header 2020-04-15 01:20:16 -07:00
Pavel Djundik
fce71f4a7c Use v-model in network form, auto size commands 2020-04-15 11:12:07 +03:00
Pavel Djundik
6ee71779d1 Combine displayNetwork into lockNetwork 2020-04-15 10:56:05 +03:00
Pavel Djundik
8a281bacd8 Preliminary SASL UI 2020-04-15 10:56:04 +03:00
Pavel Djundik
f8f692af05 Generate client certificates and automatically do SASL EXTERNAL 2020-04-15 10:56:04 +03:00
Pavel Djundik
3900e9dd81 Consolidate irc-framework options 2020-04-15 10:56:03 +03:00
Pavel Djundik
58553d7691
Merge pull request #3798 from thelounge/richrd/image-viewer-navigation
Implement navigation in image viewer
2020-04-13 13:05:29 +03:00
Pavel Djundik
f3d2dc1678
Merge pull request #3862 from thelounge/xpaw/mentions-zindex
Render sidebar over the mentions popup on mobile
2020-04-13 13:02:22 +03:00
Pavel Djundik
05ff8530cc Render sidebar over the mentions popup on mobile 2020-04-13 12:31:56 +03:00
Pavel Djundik
0fcaa46095
Merge pull request #3859 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.3.2
2020-04-13 11:45:51 +03:00
Pavel Djundik
1754c77517
Merge pull request #3857 from thelounge/xpaw/optimize-userlist-updates
Optimize user list updates for quit/part/kick events
2020-04-13 11:39:57 +03:00
Pavel Djundik
999095b7df
Merge pull request #3858 from thelounge/xpaw/mentions
Track mentions and add a window to view them
2020-04-13 10:49:06 +03:00
Renovate Bot
d39a6dd012
Update dependency stylelint to v13.3.2 2020-04-11 15:25:00 +00:00
Pavel Djundik
bc4f9b5f51 Track mentions and add a window to view them 2020-04-11 12:49:42 +03:00
Pavel Djundik
8e00e26054
Merge pull request #3826 from thelounge/xpaw/mocharc
Upgrade to mocha@7 and remove mochapack
2020-04-11 12:32:45 +03:00
Pavel Djundik
c1607bd8e7
Merge pull request #3856 from thelounge/macos-10x
Exclude node 10 on macOS from build matrix
2020-04-11 12:31:07 +03:00
Pavel Djundik
4ce2efe86b Upgrade mocha and remove mochapack 2020-04-11 12:27:08 +03:00
Pavel Djundik
99bb58a7a7
Merge pull request #3848 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.5.2
2020-04-11 12:23:11 +03:00
Pavel Djundik
49189d5649
Merge pull request #3849 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.24
2020-04-11 12:23:03 +03:00
Pavel Djundik
74181d0783
Merge pull request #3847 from thelounge/renovate/babel-monorepo
Update dependency @babel/preset-env to v7.9.5
2020-04-11 12:22:54 +03:00
Pavel Djundik
b885673341
Merge pull request #3843 from thelounge/renovate/semver-7.x
Update dependency semver to v7.2.2
2020-04-11 12:22:47 +03:00
Pavel Djundik
013e55a9a6 Exclude node 10 on macOS from build matrix 2020-04-11 12:19:05 +03:00
Renovate Bot
2e31325de6
Update dependency semver to v7.2.2 2020-04-11 08:59:26 +00:00
Renovate Bot
0ad907982d
Update dependency dayjs to v1.8.24 2020-04-11 08:59:16 +00:00
Renovate Bot
2156c6ba97
Update dependency css-loader to v3.5.2 2020-04-11 08:59:05 +00:00
Renovate Bot
e7d0ad93f9
Update dependency @babel/preset-env to v7.9.5 2020-04-11 08:58:54 +00:00
Pavel Djundik
a5bb486012
Merge pull request #3850 from thelounge/renovate/husky-4.x
Update dependency husky to v4.2.5
2020-04-11 11:57:29 +03:00
Pavel Djundik
a3490af5a3
Merge pull request #3851 from thelounge/renovate/prettier-2.x
Update dependency prettier to v2.0.4
2020-04-11 11:57:19 +03:00
Pavel Djundik
484ec95f24
Merge pull request #3852 from thelounge/renovate/sinon-9.x
Update dependency sinon to v9.0.2
2020-04-11 11:57:12 +03:00
Pavel Djundik
d8495bdc54
Merge pull request #3853 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.3.1
2020-04-11 11:57:03 +03:00
Pavel Djundik
2891c1e89c
Merge pull request #3854 from thelounge/renovate/vue-monorepo
Update vue monorepo to v1.0.0-beta.33
2020-04-11 11:56:56 +03:00
Pavel Djundik
c8eee85b28
Merge pull request #3855 from thelounge/renovate/emoji-regex-9.x
Update dependency emoji-regex to v9
2020-04-11 11:56:48 +03:00
Renovate Bot
f0d985637b
Update dependency emoji-regex to v9 2020-04-11 05:31:07 +00:00
Renovate Bot
dc288c4c66
Update vue monorepo to v1.0.0-beta.33 2020-04-11 04:40:14 +00:00
Renovate Bot
d810c3aec9
Update dependency stylelint to v13.3.1 2020-04-11 04:40:00 +00:00
Renovate Bot
5f06cfe483
Update dependency sinon to v9.0.2 2020-04-11 03:19:38 +00:00
Renovate Bot
9db3b009f3
Update dependency prettier to v2.0.4 2020-04-11 03:19:23 +00:00
Renovate Bot
de6aa7df90
Update dependency husky to v4.2.5 2020-04-11 01:41:04 +00:00
Pavel Djundik
b72e49c902
Merge pull request #3764 from thelounge/xpaw/canvas-upload
Render images in canvas before upload to remove exif
2020-04-07 21:51:46 +03:00
Pavel Djundik
63f412aab1
Merge pull request #3842 from thelounge/renovate/prettier-2.x
Update dependency prettier to v2.0.3
2020-04-06 10:23:59 +03:00
Renovate Bot
b756de003e
Update dependency prettier to v2.0.3 2020-04-05 21:14:07 +00:00
Pavel Djundik
aa96a2ad31
Merge pull request #3841 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.3.0
2020-04-05 10:25:24 +03:00
Pavel Djundik
37cbc1562c
Merge pull request #3840 from thelounge/renovate/nyc-15.x
Update dependency nyc to v15.0.1
2020-04-05 10:25:17 +03:00
Pavel Djundik
5b555835e2
Merge pull request #3839 from thelounge/renovate/chalk-4.x
Update dependency chalk to v4
2020-04-05 10:25:08 +03:00
Renovate Bot
119afbdf2f
Update dependency stylelint to v13.3.0 2020-04-04 00:31:30 +00:00
Renovate Bot
31f814d66d
Update dependency nyc to v15.0.1 2020-04-04 00:31:15 +00:00
Renovate Bot
d584dd7e11
Update dependency chalk to v4 2020-04-02 08:25:29 +00:00
Pavel Djundik
ee2e2608a3
Merge pull request #3838 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.8.1
2020-04-02 10:44:02 +03:00
Renovate Bot
7e321d399c
Update dependency irc-framework to v4.8.1 2020-04-02 07:07:28 +00:00
Pavel Djundik
86d84b70a1
Merge pull request #3837 from thelounge/renovate/uuid-7.x
Update dependency uuid to v7.0.3
2020-04-01 10:51:17 +03:00
Renovate Bot
c5596f658e
Update dependency uuid to v7.0.3 2020-03-31 19:49:44 +00:00
Pavel Djundik
16ade38851
Merge pull request #3829 from thelounge/renovate/got-10.x
Update dependency got to v10.7.0
2020-03-30 23:27:06 +03:00
Renovate Bot
87d902d028
Update dependency got to v10.7.0 2020-03-30 20:19:46 +00:00
Pavel Djundik
600313fded
Merge pull request #3835 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.42.1
2020-03-30 23:18:57 +03:00
Pavel Djundik
4641cb4b8c
Merge pull request #3834 from thelounge/renovate/prettier-2.x
Update dependency prettier to v2.0.2
2020-03-30 23:18:48 +03:00
Pavel Djundik
599c4ce769
Merge pull request #3832 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.13.0
2020-03-30 23:18:39 +03:00
Pavel Djundik
b14a8a267a Render uploaded images in canvas to remove exif 2020-03-30 23:16:26 +03:00
Renovate Bot
55e99b299a
Update dependency webpack to v4.42.1 2020-03-28 01:40:29 +00:00
Renovate Bot
20e47aaadb
Update dependency prettier to v2.0.2 2020-03-28 01:40:14 +00:00
Renovate Bot
55767d733d
Update dependency @fortawesome/fontawesome-free to v5.13.0 2020-03-28 00:20:40 +00:00
Pavel Djundik
56dfa5ef40
Merge pull request #3828 from stevenengler/patch-1
Fix body overscroll and overflow on iOS Safari
2020-03-23 22:01:45 +02:00
Steven Engler
39e70670b5
Fix body overscroll and overflow on iOS Safari
In order to prevent scrolling past the edges of the body (overscroll)
in Safari on iOS, the overflow must be hidden (not only overflow-y).
2020-03-23 15:15:30 -04:00
Pavel Djundik
beac893dd0
Merge pull request #3825 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.10.1
2020-03-23 12:16:12 +02:00
Renovate Bot
6e655d457e
Update dependency eslint-config-prettier to v6.10.1 2020-03-23 08:21:01 +00:00
Pavel Djundik
a7db950a52
Merge pull request #3824 from thelounge/renovate/prettier-2.x
Update dependency prettier to v2.0.1
2020-03-23 10:19:54 +02:00
Pavel Djundik
f4528e6f00
Merge pull request #3810 from thelounge/xpaw/remove-fs-extra
Replace all uses of `fs-extra` with native methods
2020-03-23 10:19:44 +02:00
Pavel Djundik
c35412625e
Merge pull request #3814 from thelounge/xpaw/fix-3813
Do not handle navigation keybinds in inputs if not empty
2020-03-23 10:19:37 +02:00
Renovate Bot
4c3594b832
Update dependency prettier to v2.0.1 2020-03-22 19:20:33 +00:00
Pavel Djundik
52bf7b116e Do not handle keybinds in inputs if not empty
Fix #3813
2020-03-22 20:44:14 +02:00
Pavel Djundik
6de6f8185e Clean up folders in after test runs 2020-03-22 20:43:06 +02:00
Pavel Djundik
487a438f02 Replace all uses of fs-extra with native methods 2020-03-22 20:42:16 +02:00
Pavel Djundik
4bf4b7baf0
Merge pull request #3797 from thelounge/xpaw/fix-changelog-check
Pass in client manager object in update checker
2020-03-22 20:41:39 +02:00
Pavel Djundik
9c2607df89
Merge pull request #3820 from thelounge/renovate/babel-monorepo
Update babel monorepo
2020-03-22 11:48:48 +02:00
Pavel Djundik
05e806d762
Merge pull request #3821 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.23
2020-03-22 11:48:41 +02:00
Pavel Djundik
68618da7f1
Merge pull request #3822 from thelounge/renovate/vue-monorepo
Update dependency vue-loader to v15.9.1
2020-03-22 11:48:33 +02:00
Pavel Djundik
eb171c01f5
Merge pull request #3823 from thelounge/renovate/prettier-2.x
Update dependency prettier to v2
2020-03-22 11:48:24 +02:00
Pavel Djundik
881b3eda19 Run format after updating to prettier 2.0 2020-03-21 22:55:36 +02:00
Renovate Bot
a46c9e8403
Update dependency prettier to v2 2020-03-21 20:10:25 +00:00
Renovate Bot
9da36b9966
Update dependency vue-loader to v15.9.1 2020-03-21 01:33:57 +00:00
Renovate Bot
c2e6b13504
Update dependency dayjs to v1.8.23 2020-03-21 00:54:46 +00:00
Renovate Bot
42d568ad2c
Update babel monorepo 2020-03-21 00:54:32 +00:00
Pavel Djundik
4b29cdeb0c
Merge pull request #3817 from thelounge/xpaw/fix-2562
Separate active sessions section
2020-03-20 13:42:49 +02:00
Pavel Djundik
a3c204f978
Merge pull request #3816 from thelounge/xpaw/public-connect
Remove "The Lounge" from connect in public
2020-03-19 21:39:29 +02:00
Pavel Djundik
0f1e7d5036
Merge pull request #3815 from thelounge/xpaw/esc-help
Add escape key description to help section
2020-03-19 21:39:10 +02:00
Pavel Djundik
a6f70696f3 Separate active sessions section
Fixes #2562
2020-03-17 17:36:13 +02:00
Pavel Djundik
4c177b8d02 Remove "The Lounge" from connect in public 2020-03-17 12:20:32 +02:00
Pavel Djundik
ecda9e225e Add escape key to help section 2020-03-17 12:06:50 +02:00
Pavel Djundik
a9d2b30d96
Merge pull request #3808 from thelounge/xpaw/fix-part
Fix up first argument not being used as part message
2020-03-16 20:29:46 +02:00
Pavel Djundik
424bc4f7df Fix up first argument not being used as part message 2020-03-15 20:16:53 +02:00
Pavel Djundik
52002c3e22
Merge pull request #3807 from thelounge/renovate/commander-5.x
Update dependency commander to v5
2020-03-15 14:03:35 +02:00
Pavel Djundik
80b0e8ad12 Fix up commander changes 2020-03-15 14:00:02 +02:00
Renovate Bot
b000a594f4 Update dependency commander to v5 2020-03-15 14:00:02 +02:00
Pavel Djundik
0ec242738f
Merge pull request #3801 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.1.4
2020-03-15 13:54:05 +02:00
Pavel Djundik
5e935189a3
Merge pull request #3804 from thelounge/renovate/sinon-9.x
Update dependency sinon to v9.0.1
2020-03-15 13:53:56 +02:00
Pavel Djundik
0035910765
Merge pull request #3805 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.2.1
2020-03-15 13:53:49 +02:00
Renovate Bot
9e6b6c582f
Update dependency stylelint to v13.2.1 2020-03-15 11:25:32 +00:00
Renovate Bot
b7562362c1
Update dependency sinon to v9.0.1 2020-03-15 11:25:22 +00:00
Renovate Bot
9926c83ba7
Update dependency file-type to v14.1.4 2020-03-15 11:25:11 +00:00
Pavel Djundik
6c0acfcfb7
Merge pull request #3806 from thelounge/renovate/vue-monorepo
Update vue monorepo
2020-03-15 13:24:40 +02:00
Renovate Bot
babadbd955
Update vue monorepo 2020-03-14 01:14:38 +00:00
Pavel Djundik
64aa510abf Bind events in image viewer only once 2020-03-10 15:36:58 +02:00
Pavel Djundik
0b38a88147
Merge pull request #3800 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.22.4
2020-03-10 15:21:45 +02:00
Pavel Djundik
b3fa46ad10
Merge pull request #3799 from thelounge/xpaw/upgrade-lock
Upgrade yarn.lock
2020-03-10 15:02:34 +02:00
Renovate Bot
5e30d3698d
Update dependency yarn to v1.22.4 2020-03-10 12:42:59 +00:00
Pavel Djundik
04de1ebc30 Update yarn.lock 2020-03-10 12:58:49 +02:00
Richard Lewis
ef473b0f53 Implement navigation in image viewer. 2020-03-09 18:54:21 +02:00
Pavel Djundik
0e62103010 Pass in client manager object in update checker 2020-03-09 17:58:40 +02:00
Pavel Djundik
a4ef328d8d
Merge pull request #3778 from thelounge/xpaw/clear-history
Clear channel history (and a new confirmation dialog)
2020-03-09 15:59:37 +02:00
Pavel Djundik
e5596d9d81
Merge pull request #3796 from thelounge/renovate/eslint-plugin-vue-6.x
Update dependency eslint-plugin-vue to v6.2.2
2020-03-09 10:37:13 +02:00
Pavel Djundik
e47e54b934
Merge pull request #3787 from thelounge/xpaw/12h
Add an option to display 12h times
2020-03-09 10:36:07 +02:00
Pavel Djundik
b8de7e68b5
Merge pull request #3790 from thelounge/xpaw/settings-group
Add role=group to status messages setting
2020-03-09 10:36:00 +02:00
Pavel Djundik
464c54b2cb
Merge pull request #3789 from thelounge/xpaw/fix-unhandled-chan
Fix sending unhandled numerics to target channel
2020-03-09 10:35:49 +02:00
Pavel Djundik
6b46a55def
Merge pull request #3795 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.42.0
2020-03-09 10:35:03 +02:00
Pavel Djundik
37f4e0ff93
Merge pull request #3792 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.22.1
2020-03-09 10:34:56 +02:00
Pavel Djundik
9277907c43
Merge pull request #3791 from thelounge/renovate/uuid-7.x
Update dependency uuid to v7.0.2
2020-03-09 10:34:49 +02:00
Pavel Djundik
960862df27
Merge pull request #3786 from thelounge/renovate/vue-monorepo
Update dependency vue-router to v3.1.6
2020-03-09 10:34:42 +02:00
Pavel Djundik
1376177a09
Merge pull request #3785 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.22
2020-03-09 10:34:34 +02:00
Pavel Djundik
d2994d501f
Merge pull request #3784 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.8.7
2020-03-09 10:34:26 +02:00
Renovate Bot
1ea9d6c2ac
Update dependency yarn to v1.22.1 2020-03-09 08:06:10 +00:00
Renovate Bot
0a6f8a76ec
Update dependency webpack to v4.42.0 2020-03-09 08:06:00 +00:00
Renovate Bot
c57b42c22b
Update dependency vue-router to v3.1.6 2020-03-09 08:05:49 +00:00
Renovate Bot
f93061de29
Update dependency uuid to v7.0.2 2020-03-09 08:05:39 +00:00
Renovate Bot
06a15181c3
Update dependency eslint-plugin-vue to v6.2.2 2020-03-09 08:05:30 +00:00
Renovate Bot
d11b704f22
Update dependency dayjs to v1.8.22 2020-03-09 08:05:20 +00:00
Renovate Bot
48f96e9ae0
Update babel monorepo to v7.8.7 2020-03-09 08:04:57 +00:00
Pavel Djundik
47b254a29e v4.1.0 2020-03-08 22:53:26 +02:00
Pavel Djundik
7ba2807b01 Add changelog for v4.1.0 2020-03-08 22:53:01 +02:00
Pavel Djundik
6121a3ab0b
Merge pull request #3793 from NotWoods/patch-1
Add maskable purpose & removes monochrome
2020-03-06 23:50:24 +02:00
Tiger Oakes
d8ab40d8ee
Add maskable purpose to PNG icons 2020-03-06 13:37:27 -08:00
Pavel Djundik
8d119630eb Add role=group to status messages setting
Fixes #1909
2020-03-03 12:15:42 +02:00
Pavel Djundik
5233fb2dbb Fix sending unhandled numerics to target channel 2020-03-03 11:47:09 +02:00
Pavel Djundik
234938ed4b Fix up time width with AM/PM 2020-02-29 11:51:12 +02:00
Pavel Djundik
3630ab8519 Add an option to display 12h times 2020-02-29 11:37:45 +02:00
Pavel Djundik
c463d1ddd3 Emit an event to clear history on all open clients 2020-02-28 17:01:28 +02:00
Pavel Djundik
44a8925b8c Create a generic confirmation dialog 2020-02-28 17:01:28 +02:00
Pavel Djundik
7216b8124b Add context menu to clear channel history 2020-02-28 17:01:28 +02:00
Pavel Djundik
eb7f9ab298 Implement channel history clearing on the server 2020-02-28 17:01:28 +02:00
Pavel Djundik
6f04216af5 v4.1.0-rc.1 2020-02-27 21:07:35 +02:00
Pavel Djundik
b79c91ff1e
Add changelog entry for v4.1.0-rc.1 2020-02-27 21:07:06 +02:00
Pavel Djundik
d2e4f56219
Merge pull request #3783 from thelounge/xpaw/uninstall
Fix not being able to uninstall packages
2020-02-27 21:06:42 +02:00
Pavel Djundik
ee0002fe6a
Merge pull request #3741 from RockyTV/rockytv/better-error-msgs
Write prettier error messages for certain errors
2020-02-27 21:00:16 +02:00
Alexandre Oliveira
ab8593d3cd Write prettier error messages for IRC errors 2020-02-27 15:27:34 -03:00
Pavel Djundik
8f15548770 Fix not being able to uninstall packages 2020-02-27 19:21:01 +02:00
Pavel Djundik
d99d56fe81
Merge pull request #3762 from thelounge/xpaw/sqlite-serialize
Change sqlite parallelize to serialize when loading messages
2020-02-27 14:02:29 +02:00
Pavel Djundik
365613f0ee
Merge pull request #3767 from thelounge/setname
Unprefix setname cap
2020-02-27 14:01:03 +02:00
Pavel Djundik
bec6665044
Merge pull request #3770 from thelounge/sts
Implement strict transport security (STS) for IRC networks
2020-02-27 13:53:51 +02:00
Pavel Djundik
8976fa163e Do not reconnect if STS cap is received in CAP NEW 2020-02-27 13:48:48 +02:00
Pavel Djundik
db866f9823 Refresh STS policy expiration on network quit 2020-02-27 13:48:48 +02:00
Pavel Djundik
568427ca98 Disable changing TLS if STS is enforced 2020-02-27 13:48:48 +02:00
Pavel Djundik
d9985e7318 Enforce STS policies 2020-02-27 13:48:47 +02:00
Pavel Djundik
9b9db35e3c Implement basic STS reconnection 2020-02-27 13:48:47 +02:00
Pavel Djundik
77279675ec
Merge pull request #3780 from thelounge/renovate/uuid-7.x
Update dependency uuid to v7.0.1
2020-02-27 13:48:32 +02:00
Pavel Djundik
2127153b73
Merge pull request #3782 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.7.0
2020-02-27 13:48:22 +02:00
Renovate Bot
66b6517855
Update dependency irc-framework to v4.7.0 2020-02-27 11:00:53 +00:00
Renovate Bot
c62d3c2f15
Update dependency uuid to v7.0.1 2020-02-26 22:28:32 +00:00
Richard Lewis
abd414beb9
Merge pull request #3781 from thelounge/xpaw/wave
Improve wav audio detection
2020-02-26 23:19:12 +02:00
Richard Lewis
58003e1f59
Merge pull request #3779 from thelounge/xpaw/ios-notifs-note
Add an explanation why push notifications are not supported on iOS
2020-02-26 23:18:44 +02:00
Pavel Djundik
63fd0def6c Improve wav audio file support 2020-02-26 10:07:40 +02:00
Pavel Djundik
8a515a8a70 Add an explanation why push notifications are not supported on iOS 2020-02-25 20:04:33 +02:00
Pavel Djundik
e20b1a55c3
Merge pull request #3776 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.1.3
2020-02-25 10:44:54 +02:00
Pavel Djundik
b48adc434d
Merge pull request #3774 from thelounge/renovate/sinon-9.x
Update dependency sinon to v9
2020-02-25 10:44:45 +02:00
Pavel Djundik
f213875d48
Merge pull request #3743 from thelounge/renovate/got-10.x
Update dependency got to v10.6.0
2020-02-25 10:44:38 +02:00
Pavel Djundik
7401174523
Merge pull request #3763 from thelounge/renovate/eslint-plugin-vue-6.x
Update dependency eslint-plugin-vue to v6.2.1
2020-02-25 10:44:28 +02:00
Renovate Bot
641cd951cb
Update dependency sinon to v9 2020-02-25 08:25:23 +00:00
Renovate Bot
b734a8b983
Update dependency got to v10.6.0 2020-02-25 08:24:58 +00:00
Renovate Bot
a8ffe7768e
Update dependency file-type to v14.1.3 2020-02-25 08:24:45 +00:00
Renovate Bot
9500edc89f
Update dependency eslint-plugin-vue to v6.2.1 2020-02-25 08:24:34 +00:00
Pavel Djundik
381cfb7099
Merge pull request #3777 from thelounge/renovate/uuid-7.x
Update dependency uuid to v7
2020-02-25 10:23:38 +02:00
Pavel Djundik
e0d5f4c2ff Change uuidv4 require 2020-02-24 15:35:15 +02:00
Renovate Bot
0134276f01
Update dependency uuid to v7 2020-02-24 13:27:25 +00:00
Pavel Djundik
258db10ea9
Merge pull request #3765 from thelounge/xpaw/showinactive-unread
Fix incorrectly updating unread counter for 'show in active' messages
2020-02-18 18:01:32 +02:00
Pavel Djundik
3ca9fd2e80 Unprefix setname cap 2020-02-18 14:07:03 +02:00
Pavel Djundik
9db1d0f7c8 Fix incorrectly updating unread counter for 'show in active' messages 2020-02-17 17:02:34 +02:00
Pavel Djundik
5a0e0b6718 Change sqlite parallelize to serialize when loading messages 2020-02-15 11:50:07 +02:00
Pavel Djundik
44de1dd03f
Merge pull request #3761 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.11
2020-02-15 11:45:46 +02:00
Renovate Bot
2cf2c6d0e6
Update dependency webpack-cli to v3.3.11 2020-02-15 09:30:49 +00:00
Pavel Djundik
94978b334c
Merge pull request #3757 from thelounge/renovate/husky-4.x
Update dependency husky to v4.2.3
2020-02-15 11:29:30 +02:00
Pavel Djundik
96099694d6
Merge pull request #3758 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.2.0
2020-02-15 11:29:23 +02:00
Pavel Djundik
3f0afed3c9
Merge pull request #3759 from thelounge/renovate/vue-monorepo
Update dependency vue-loader to v15.9.0
2020-02-15 11:29:14 +02:00
Pavel Djundik
c6054c3f40
Merge pull request #3760 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.6
2020-02-15 11:29:04 +02:00
Renovate Bot
22e7217e06
Update dependency webpack to v4.41.6 2020-02-15 01:32:33 +00:00
Renovate Bot
1c13ff7922
Update dependency vue-loader to v15.9.0 2020-02-15 01:32:18 +00:00
Renovate Bot
6c9d6d04de
Update dependency stylelint to v13.2.0 2020-02-15 00:22:31 +00:00
Renovate Bot
bf3f593004
Update dependency husky to v4.2.3 2020-02-15 00:22:15 +00:00
Pavel Djundik
8e25fa8a3b
Merge pull request #3755 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14.1.2
2020-02-14 14:54:13 +02:00
Pavel Djundik
4aec23a6fc
Merge pull request #3754 from thelounge/renovate/semver-7.x
Update dependency semver to v7.1.3
2020-02-14 14:54:06 +02:00
Pavel Djundik
7fdb70d451
Merge pull request #3753 from thelounge/xpaw/yarn-stdout
Wrap stdout parsing from yarn into try/catch
2020-02-14 14:52:01 +02:00
Renovate Bot
d95f1fa5b6
Update dependency file-type to v14.1.2 2020-02-12 20:13:44 +00:00
Renovate Bot
989ecdb2f6
Update dependency semver to v7.1.3 2020-02-11 22:38:43 +00:00
Pavel Djundik
469fe577f2 Wrap stdout parsing from yarn into try/catch 2020-02-11 11:48:02 +02:00
Richard Lewis
1fb78d7218
Merge pull request #3594 from thelounge/richrd/jump-to
Jump to channel switcher
2020-02-10 19:56:04 +02:00
Richard Lewis
9e76fe2a76 Fix race condition and remove redundant computed properties. 2020-02-10 19:43:44 +02:00
Richard Lewis
054760d49f Add keybind to help window. 2020-02-10 19:43:44 +02:00
Richard Lewis
f5884957a5 Fix CSS styles, scroll to selected channel and improve bindings.
Co-Authored-By: Pavel Djundik <xPaw@users.noreply.github.com>
2020-02-10 19:43:44 +02:00
Richard Lewis
606c62dc70 Move styles to component. 2020-02-10 19:04:34 +02:00
Richard Lewis
0b5cbceffd Implement jump to channel feature. 2020-02-10 19:04:35 +02:00
Pavel Djundik
dbdf98537c
Merge pull request #3751 from thelounge/renovate/stylelint-config-standard-20.x
Update dependency stylelint-config-standard to v20
2020-02-10 16:45:57 +02:00
Richard Lewis
f12a13916b
Merge pull request #3712 from thelounge/xpaw/fix-3302
Add support for webirc secure option
2020-02-10 16:42:56 +02:00
Richard Lewis
fbf6f48d7a
Merge pull request #3744 from thelounge/xpaw/icon-purpose
Add icon purpose in webmanifest
2020-02-10 16:41:36 +02:00
Richard Lewis
f7f92c5f39
Merge pull request #3752 from thelounge/xpaw/fix-ci-timeout
Fix increasing test timeout on github actions
2020-02-10 16:41:23 +02:00
Richard Lewis
86abe1e2df
Merge pull request #3735 from thelounge/emoji-v13
Add emojis 13.0
2020-02-10 16:36:24 +02:00
Richard Lewis
1bdeae2b76
Merge pull request #3730 from thelounge/xpaw/user-search-fixes
Small fixes to user list search
2020-02-10 16:34:41 +02:00
Richard Lewis
f8642dd2a5
Merge pull request #3711 from thelounge/xpaw/server-notice-host
Use hostname from notice if available
2020-02-10 16:34:22 +02:00
Pavel Djundik
1b2894bf99 Fix increasing test timeout on github actions 2020-02-09 14:21:45 +02:00
Renovate Bot
61305cd27c
Update dependency stylelint-config-standard to v20 2020-02-09 10:48:15 +00:00
Pavel Djundik
0f44c51b00
Merge pull request #3750 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13.1.0
2020-02-09 12:47:10 +02:00
Renovate Bot
d0697d39d7
Update dependency stylelint to v13.1.0 2020-02-08 20:33:49 +00:00
Pavel Djundik
0639fdb410
Merge pull request #3749 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.20
2020-02-08 11:21:20 +02:00
Pavel Djundik
705261cdb5 Merge pull request #3748 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.12.1
2020-02-08 11:21:12 +02:00
Renovate Bot
b5a7bc6be6
Update dependency dayjs to v1.8.20 2020-02-08 00:29:04 +00:00
Renovate Bot
1ccd910e14
Update dependency @fortawesome/fontawesome-free to v5.12.1 2020-02-08 00:28:48 +00:00
Pavel Djundik
25b870fcd1 Add icon purpose in webmanifest 2020-02-06 23:31:34 +02:00
Pavel Djundik
4ca97bc955
Merge pull request #3742 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.22.0
2020-02-06 14:07:39 +02:00
Pavel Djundik
1b9040deed
Merge pull request #3739 from thelounge/renovate/file-type-14.x
Update dependency file-type to v14
2020-02-06 14:07:27 +02:00
Pavel Djundik
87c9abe9da Change minimumBytes in file-type 2020-02-06 12:41:43 +02:00
Renovate Bot
4d5f15b32e
Update dependency file-type to v14 2020-02-05 19:27:57 +00:00
Renovate Bot
342b97f68b
Update dependency yarn to v1.22.0 2020-02-05 19:16:16 +00:00
Pavel Djundik
6aabd9bacb Optimize user list updates for quit/part/kick events 2020-02-01 19:15:46 +02:00
Pavel Djundik
15100c853c
Merge pull request #3738 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.10.0
2020-02-01 19:06:29 +02:00
Pavel Djundik
55f3f9ef13
Merge pull request #3733 from thelounge/renovate/semver-7.x
Update dependency semver to v7.1.2
2020-02-01 19:06:15 +02:00
Pavel Djundik
77c2fc0ea7
Merge pull request #3737 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.8.4
2020-02-01 19:06:09 +02:00
Pavel Djundik
60b398c6d8
Merge pull request #3734 from thelounge/renovate/got-10.x
Update dependency got to v10.4.0
2020-02-01 19:06:01 +02:00
Renovate Bot
6bedf78019
Update dependency eslint-config-prettier to v6.10.0 2020-02-01 00:56:11 +00:00
Renovate Bot
c17e0a0813
Update babel monorepo to v7.8.4 2020-02-01 00:55:55 +00:00
Pavel Djundik
6422136d50 Add emojis 13.0 2020-01-31 10:36:06 +02:00
Renovate Bot
6fcfcb6219
Update dependency got to v10.4.0 2020-01-31 07:39:54 +00:00
Renovate Bot
99eab4ddcb
Update dependency semver to v7.1.2 2020-01-31 01:31:56 +00:00
Pavel Djundik
7afafdd25e Change mouseover to mouseenter 2020-01-27 13:27:52 +02:00
Pavel Djundik
66cdec0075 Fix right padding on user list search 2020-01-27 13:27:52 +02:00
Pavel Djundik
8b71e6a18e
Merge pull request #3717 from thelounge/xpaw/fix-username
Undo username pattern
2020-01-27 11:06:17 +02:00
Pavel Djundik
803fe930f8
Merge pull request #3718 from thelounge/xpaw/fix-3716
Fix "$1" when completing nicks outside of textcomplete menu
2020-01-27 11:06:10 +02:00
Pavel Djundik
34436f9a72
Merge pull request #3723 from thelounge/xpaw/context-position
Fix DOMRect coordinates in Safari
2020-01-27 11:06:02 +02:00
Pavel Djundik
965b50a341
Merge pull request #3728 from thelounge/xpaw/active-buffer
Increase buffer size for active and scrolled down channels
2020-01-27 11:05:55 +02:00
Pavel Djundik
e4c01f7c2f
Merge pull request #3727 from thelounge/renovate/sinon-8.x
Update dependency sinon to v8.1.1
2020-01-27 11:05:30 +02:00
Pavel Djundik
d8682126f3
Merge pull request #3725 from thelounge/renovate/mousetrap-1.x
Update dependency mousetrap to v1.6.5
2020-01-27 11:05:23 +02:00
Pavel Djundik
2f3f2c4d90
Merge pull request #3724 from thelounge/renovate/husky-4.x
Update dependency husky to v4.2.1
2020-01-27 11:05:14 +02:00
Pavel Djundik
6c20a59993
Merge pull request #3722 from thelounge/renovate/got-10.x
Update dependency got to v10.3.0
2020-01-27 11:05:07 +02:00
Pavel Djundik
f92a442330 Increase buffer size for active and scrolled down channels 2020-01-25 11:00:55 +02:00
Renovate Bot
d607111c86
Update dependency sinon to v8.1.1 2020-01-25 01:50:08 +00:00
Renovate Bot
245b44ab02
Update dependency mousetrap to v1.6.5 2020-01-25 00:51:35 +00:00
Renovate Bot
62171e13b3
Update dependency husky to v4.2.1 2020-01-25 00:51:19 +00:00
Renovate Bot
b176d26302
Update dependency got to v10.3.0 2020-01-24 14:56:21 +00:00
Pavel Djundik
10cba8d9b0 Fix DOMRect coordinates in Safari 2020-01-24 16:55:29 +02:00
Pavel Djundik
b890e7e976
Merge pull request #3721 from thelounge/xpaw/fix-3690
Fix escape key handling
2020-01-24 16:08:30 +02:00
Pavel Djundik
bbe6b34371 Unfocus chat input when pressing escape 2020-01-24 15:50:01 +02:00
Pavel Djundik
2451f222e8 Bind esc key handler once
Fixes #3690
2020-01-24 15:50:01 +02:00
Pavel Djundik
a9bad593b0
Merge pull request #3720 from thelounge/xpaw/fix-3719
Ignore Alt+<letter> keybinds when focused in chat input
2020-01-24 15:49:04 +02:00
Pavel Djundik
63540e102b Ignore Alt+<letter> keybinds when focused in chat input
Fixes #3719
2020-01-23 22:50:37 +02:00
Pavel Djundik
4e6bd9e943 Fix "$1" when completing nicks outside of textcomplete menu
Fixes #3716
2020-01-23 22:25:34 +02:00
Pavel Djundik
0dd0d8fb12 Undo username pattern 2020-01-23 22:14:30 +02:00
Pavel Djundik
e8ba4f4fb9
Merge pull request #3658 from thelounge/xpaw/version-notify
Display icon when update is available, check on server start
2020-01-22 10:29:18 +02:00
Pavel Djundik
5b68fb5054
Merge pull request #3715 from thelounge/xpaw/nick-pattern
Disallow some invalid characters in nicknames and usernames
2020-01-22 10:28:51 +02:00
Pavel Djundik
8b04979eac
Merge pull request #3676 from thelounge/xpaw/csp
Remove `child-src` from CSP, add `base-uri 'none'`
2020-01-22 10:28:44 +02:00
Pavel Djundik
510b859df9
Merge pull request #3682 from thelounge/xpaw/fix-undefined-theme
Fix settings update when unknown theme is stored
2020-01-22 10:28:28 +02:00
Pavel Djundik
f1a11d3a0b
Merge pull request #3696 from thelounge/xpaw/fix-2960
Trigger autocompletion only after whitespace
2020-01-22 10:28:11 +02:00
Pavel Djundik
08f77528d9
Merge pull request #3703 from thelounge/xpaw/fix-3699
Open last channel in the list when creating a network
2020-01-22 10:28:01 +02:00
Pavel Djundik
184936fa38
Merge pull request #3713 from thelounge/renovate/file-type-13.x
Update dependency file-type to v13.1.2
2020-01-22 10:27:40 +02:00
Pavel Djundik
4fbca2b219
Merge pull request #3706 from thelounge/renovate/husky-4.x
Update dependency husky to v4.2.0
2020-01-22 10:27:32 +02:00
Pavel Djundik
309b9027be
Merge pull request #3707 from thelounge/renovate/sinon-8.x
Update dependency sinon to v8.1.0
2020-01-22 10:27:24 +02:00
Pavel Djundik
b025647ad9
Merge pull request #3705 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.8.3
2020-01-22 10:27:15 +02:00
Pavel Djundik
cdd28ba2cb
Merge pull request #3708 from thelounge/renovate/vue-monorepo
Update vue monorepo
2020-01-22 10:27:07 +02:00
Renovate Bot
5b7abd6e02
Update dependency file-type to v13.1.2 2020-01-22 04:59:46 +00:00
Renovate Bot
aa0df1d6b4
Update dependency husky to v4.2.0 2020-01-21 22:11:58 +00:00
Pavel Djundik
1a7135c5e0 Clean up strings on server 2020-01-21 15:47:59 +02:00
Pavel Djundik
de6d6906f8 Disallow some invalid characters in nicknames and usernames
@, !, : and whitespace are disallowed due to being part of the protocol/hostmask
2020-01-21 15:44:48 +02:00
Renovate Bot
5657d9c221
Update vue monorepo 2020-01-20 14:30:54 +00:00
Pavel Djundik
26bf0850d7 Stub checkForUpdates in tests 2020-01-19 01:14:52 +02:00
Pavel Djundik
36f4284e07 Add support for webirc secure option
Fixes #3302
2020-01-19 00:56:07 +02:00
Pavel Djundik
4d3fd1c8f2 Use hostname from notice if available 2020-01-19 00:53:03 +02:00
Renovate Bot
b9e7e401ca
Update dependency sinon to v8.1.0 2020-01-18 01:31:45 +00:00
Renovate Bot
6b9d2baf97
Update babel monorepo to v7.8.3 2020-01-18 00:29:03 +00:00
Pavel Djundik
d5ac13f91c Notify all connected clients when new version is available 2020-01-17 12:17:37 +02:00
Pavel Djundik
3f928d8742 Check for updates every day 2020-01-17 12:09:42 +02:00
Pavel Djundik
efc421c0a6 Display icon in footer when an update is available 2020-01-17 12:03:16 +02:00
Pavel Djundik
0bdac63953 Check for TL updates on server start 2020-01-17 12:03:14 +02:00
Pavel Djundik
304e8bf5b0
Merge pull request #3704 from thelounge/renovate/uuid-3.x
Update dependency uuid to v3.4.0
2020-01-17 11:47:41 +02:00
Pavel Djundik
fd04a528f6
Merge pull request #3698 from thelounge/renovate/file-type-13.x
Update dependency file-type to v13.1.0
2020-01-17 11:47:32 +02:00
Renovate Bot
8842242fb4
Update dependency uuid to v3.4.0 2020-01-16 21:30:47 +00:00
Pavel Djundik
6dac3d122a Open last channel in the list when creating a network
Fixes #3699
2020-01-16 18:07:16 +02:00
Renovate Bot
bcd7e7cfff
Update dependency file-type to v13.1.0 2020-01-15 03:27:23 +00:00
Pavel Djundik
d7513b43dc
Merge pull request #3686 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.19
2020-01-13 12:46:15 +02:00
Pavel Djundik
ba4ec355e1
Merge pull request #3693 from thelounge/renovate/babel-monorepo
Update babel monorepo
2020-01-13 12:46:06 +02:00
Pavel Djundik
fe17324fef
Merge pull request #3694 from thelounge/renovate/stylelint-13.x
Update dependency stylelint to v13
2020-01-13 12:45:55 +02:00
Renovate Bot
7dfbf215db
Update babel monorepo 2020-01-12 22:57:21 +00:00
Renovate Bot
4bfd599393
Update dependency stylelint to v13 2020-01-12 14:32:28 +00:00
Renovate Bot
10e31a1ce0
Update dependency dayjs to v1.8.19 2020-01-12 14:32:06 +00:00
Pavel Djundik
46f9f6a6a3
Merge pull request #3689 from thelounge/renovate/got-10.x
Update dependency got to v10.2.2
2020-01-12 16:31:10 +02:00
Pavel Djundik
fef4b8b93a
Merge pull request #3688 from thelounge/renovate/husky-4.x
Update dependency husky to v4
2020-01-12 16:30:50 +02:00
Pavel Djundik
8a2631f503
Merge pull request #3687 from thelounge/renovate/sinon-8.x
Update dependency sinon to v8.0.4
2020-01-12 16:30:43 +02:00
Pavel Djundik
858fe0185a
Merge pull request #3685 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.4.2
2020-01-12 16:30:36 +02:00
Pavel Djundik
f1e6ada2d0
Merge pull request #3683 from thelounge/renovate/file-type-13.x
Update dependency file-type to v13.0.3
2020-01-12 16:30:26 +02:00
Pavel Djundik
4682a83827 Trigger autocompletion only after whitespace
Fixes #2960
Fixes #3695
2020-01-12 16:27:29 +02:00
Renovate Bot
e83a1ac7d8
Update dependency husky to v4 2020-01-12 05:54:05 +00:00
Renovate Bot
f0967ddf5f
Update dependency got to v10.2.2 2020-01-11 15:39:07 +00:00
Renovate Bot
144c4b7ce9
Update dependency sinon to v8.0.4 2020-01-11 01:40:40 +00:00
Renovate Bot
69bac8f517
Update dependency css-loader to v3.4.2 2020-01-11 00:32:30 +00:00
Renovate Bot
f1a0ccbe13
Update dependency file-type to v13.0.3 2020-01-10 18:27:18 +00:00
Pavel Djundik
fa57814678
Merge pull request #3684 from thelounge/richrd/style-loading
Load styles from vue components, fix hot reload
2020-01-10 20:03:24 +02:00
Pavel Djundik
fbdd888c3d Disable SW caching in dev build 2020-01-09 22:40:10 +02:00
Pavel Djundik
2e49175840
Merge pull request #3681 from thelounge/xpaw/remove-vue-filter
Remove the only use of Vue.filter
2020-01-09 21:14:10 +02:00
Pavel Djundik
6164862af5
Merge pull request #3678 from thelounge/renovate/file-type-13.x
Update dependency file-type to v13
2020-01-08 16:22:37 +02:00
Pavel Djundik
b5f5775cfc
Merge pull request #3665 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.4.1
2020-01-08 16:22:30 +02:00
Pavel Djundik
41e3762e57 Update file-type api usage 2020-01-08 16:11:30 +02:00
Renovate Bot
299a9324f6
Update dependency file-type to v13 2020-01-08 14:06:37 +00:00
Renovate Bot
df5cb3081e
Update dependency css-loader to v3.4.1 2020-01-08 14:06:24 +00:00
Pavel Djundik
85bc4df1e2
Merge pull request #3674 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.26
2020-01-08 16:04:57 +02:00
Pavel Djundik
14f6032316
Merge pull request #3675 from thelounge/renovate/commander-4.x
Update dependency commander to v4.1.0
2020-01-08 16:04:48 +02:00
Richard Lewis
23ac0fef32 Load styles from vue components, fix hot reload
Fixes #3615
2020-01-08 16:02:09 +02:00
Pavel Djundik
a2349f96cb Fix settings update when unknown theme is stored 2020-01-08 16:00:47 +02:00
Pavel Djundik
1c190d1adb Remove the only use of Vue.filter 2020-01-08 11:11:44 +02:00
Renovate Bot
5b34395587
Update dependency commander to v4.1.0 2020-01-06 09:20:40 +00:00
Renovate Bot
2266350f23
Update dependency mime-types to v2.1.26 2020-01-06 08:47:58 +00:00
Pavel Djundik
79cbe63067
Merge pull request #3670 from thelounge/xpaw/show-in-active
Show an icon for "show in active" messages
2020-01-06 10:39:38 +02:00
Pavel Djundik
e73575a342 Remove showInActive if active network differs 2020-01-05 19:44:03 +02:00
Pavel Djundik
5c64eaf41e Show an icon for "show in active" messages 2020-01-05 19:44:03 +02:00
Pavel Djundik
b93cae2e01
Merge pull request #3647 from thelounge/xpaw/mode-string
Display the original sets mode string and make nicks clickable
2020-01-04 15:22:27 +02:00
Pavel Djundik
00cdb6e808
Merge pull request #3663 from thelounge/xpaw/cyclical-dep
Remove cyclical dependency in router<->webpush
2020-01-04 15:20:23 +02:00
Pavel Djundik
e0cd9cbcdf
Merge pull request #3662 from thelounge/xpaw/fix-ref
Check that usernameInput ref exists
2020-01-04 15:20:16 +02:00
Pavel Djundik
5fe0710724 Remove cyclical dependency in router<->webpush 2020-01-03 20:02:22 +02:00
Pavel Djundik
c4ddf6d93e Check that usernameInput ref exists 2020-01-03 19:51:38 +02:00
Pavel Djundik
7b507e5248
Merge pull request #3660 from thelounge/xpaw/keybinds
Add keybinds to toggle sidebar, user list, and networks
2020-01-03 16:59:41 +02:00
Pavel Djundik
1870145674 Add keybinds to expand and collapse networks
Fixes #3523
2020-01-02 22:45:21 +02:00
Pavel Djundik
ff4fd0a13d Add keyboard shortcuts to toggle server/user list
Fixes #2345
2020-01-02 22:24:20 +02:00
Pavel Djundik
98aef9b6ad
Merge pull request #3659 from thelounge/xpaw/footer-active
Fix active styles on footer buttons
2020-01-02 22:02:03 +02:00
Pavel Djundik
bf0a8c4e4d Fix active styles on footer buttons 2020-01-02 12:57:36 +02:00
Pavel Djundik
ba3e0dae79
Merge pull request #3645 from thelounge/xpaw/default-port
Switch default ports when toggling TLS
2020-01-02 10:46:38 +02:00
Pavel Djundik
5c8c854d18
Merge pull request #3651 from thelounge/xpaw/install-readme
Link to official docs for stable releases
2020-01-02 10:46:26 +02:00
Pavel Djundik
5921bb1ee1
Merge pull request #3650 from thelounge/xpaw/webpack-hints
Turn off webpack hints
2020-01-02 10:46:17 +02:00
Pavel Djundik
c6f77f0668
Merge pull request #3656 from thelounge/xpaw/self-ctcp
Ignore echoed ctcp requests that aren't targeted at us
2020-01-02 10:46:03 +02:00
Pavel Djundik
27e08baf25
Merge pull request #3653 from thelounge/xpaw/utf8-mistake
Fix passing utf-8 to readFileSync
2020-01-02 10:45:52 +02:00
Pavel Djundik
05c69dfb6d
Merge pull request #3654 from thelounge/xpaw/fix-ua
Fix url in useragent when fetching releases from github
2020-01-02 10:45:44 +02:00
Pavel Djundik
e9db7e5f82
Merge pull request #3657 from thelounge/renovate/got-10.x
Update dependency got to v10.2.1
2020-01-02 10:45:34 +02:00
Renovate Bot
8ba286a308
Update dependency got to v10.2.1 2020-01-01 18:33:56 +00:00
Pavel Djundik
7ef88523ca Ignore echoed ctcp requests that aren't targeted at us
Fixes #3655
2020-01-01 18:06:42 +02:00
Pavel Djundik
42ee21bfb8 Fix url in useragent when fetching releases from github 2020-01-01 01:15:45 +02:00
Pavel Djundik
0c246f0bbe Fix passing utf-8 to readFileSync 2020-01-01 01:11:04 +02:00
Pavel Djundik
84107ab516
Merge pull request #3644 from thelounge/renovate/nyc-15.x
Update dependency nyc to v15
2019-12-31 21:47:39 +02:00
Pavel Djundik
66302d25e0
Merge pull request #3640 from thelounge/renovate/eslint-plugin-vue-6.x
Update dependency eslint-plugin-vue to v6.1.2
2019-12-31 21:47:32 +02:00
Pavel Djundik
093ef2ff55
Merge pull request #3628 from thelounge/xpaw/prefetch-error
Collapse prefetch errors by default, and correctly track user toggle
2019-12-31 21:31:35 +02:00
Pavel Djundik
a8e7cfd2cd
Merge pull request #3649 from Mikaela/network-command-helptext
NetworkForm.vue: clarify autoconnect command help text
2019-12-31 21:31:27 +02:00
Renovate Bot
d288cbb625
Update dependency nyc to v15 2019-12-31 19:31:09 +00:00
Renovate Bot
242b068cdd
Update dependency eslint-plugin-vue to v6.1.2 2019-12-31 19:30:57 +00:00
Pavel Djundik
0a9157b935
Merge pull request #3643 from thelounge/renovate/babel-plugin-istanbul-6.x
Update dependency babel-plugin-istanbul to v6
2019-12-31 21:30:06 +02:00
Pavel Djundik
34939d9961
Merge pull request #3642 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.5
2019-12-31 21:29:57 +02:00
Pavel Djundik
6109bf3faa
Merge pull request #3624 from thelounge/renovate/sinon-8.x
Update dependency sinon to v8
2019-12-31 21:29:49 +02:00
Pavel Djundik
be7f2c3c84
Merge pull request #3641 from thelounge/renovate/stylelint-12.x
Update dependency stylelint to v12.0.1
2019-12-31 21:29:29 +02:00
Pavel Djundik
b52ae5414e
Merge pull request #3639 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.9.0
2019-12-31 21:29:20 +02:00
Pavel Djundik
53934bcbca
Merge pull request #3630 from thelounge/renovate/got-10.x
Update dependency got to v10.2.0
2019-12-31 21:29:04 +02:00
Pavel Djundik
9e84328748
Link to official docs for stable releases 2019-12-31 18:51:49 +02:00
Renovate Bot
9d3a5d4d86
Update dependency sinon to v8 2019-12-31 16:12:48 +00:00
Renovate Bot
29d188f927
Update dependency babel-plugin-istanbul to v6 2019-12-31 16:12:27 +00:00
Renovate Bot
6301a0012a
Update dependency webpack to v4.41.5 2019-12-31 16:12:16 +00:00
Renovate Bot
9568316cd0
Update dependency stylelint to v12.0.1 2019-12-31 16:12:06 +00:00
Renovate Bot
1ce6821585
Update dependency got to v10.2.0 2019-12-31 16:11:55 +00:00
Renovate Bot
f056cce641
Update dependency eslint-config-prettier to v6.9.0 2019-12-31 16:11:33 +00:00
Pavel Djundik
5a3f17b647 v4.0.0 2019-12-31 18:10:30 +02:00
Pavel Djundik
af1da708a3
Merge pull request #3625 from thelounge/changelog/v4.0.0
Add changelog for v4.0.0
2019-12-31 18:09:25 +02:00
Pavel Djundik
08871ef75a Update yarn.lock 2019-12-31 18:02:40 +02:00
Pavel Djundik
78bf87f29c Add changelog for v4.0.0 2019-12-31 18:02:26 +02:00
Pavel Djundik
8d17bbd6a2
Merge pull request #3632 from thelounge/xpaw/upgrade-cmd-check
Check if there are any packages installed in upgrade command
2019-12-31 17:55:38 +02:00
Pavel Djundik
b1f5ba87cf
Merge pull request #3633 from thelounge/xpaw/viewer-position
Restrict image viewer bounds while moving
2019-12-30 19:29:43 +02:00
Pavel Djundik
280018e052
Merge pull request #3638 from thelounge/xpaw/control-space
Replace control codes with a space
2019-12-30 19:29:34 +02:00
Pavel Djundik
99175bef82 Check if there are any packages installed in upgrade command 2019-12-30 19:28:28 +02:00
Pavel Djundik
6e0ab062c5 Turn off webpack hints 2019-12-30 19:14:15 +02:00
Mikaela Suomalainen
17588560e6
NetworkForm.vue: clarify autoconnect command help text 2019-12-30 18:39:56 +02:00
Pavel Djundik
813b49d7b1 Make nicks in sets mode clickable 2019-12-30 12:10:21 +02:00
Pavel Djundik
30595ed23f Display the original sets mode string
Fixes #675
2019-12-30 12:06:54 +02:00
Pavel Djundik
c055a07f45 Switch default ports when toggling TLS 2019-12-28 23:08:46 +02:00
Pavel Djundik
a12a24adbe Replace control codes with a space 2019-12-27 20:39:28 +02:00
Pavel Djundik
56cc6d0b68
Merge pull request #3637 from thelounge/xpaw/node-ver
Lower node version to 10.15
2019-12-26 22:36:22 +02:00
Pavel Djundik
e4a6aa3160
Lower node version to 10.15 2019-12-26 20:59:25 +02:00
Pavel Djundik
10932abb87
Merge pull request #3635 from thelounge/xpaw/webkit-tap
Set `-webkit-tap-highlight-color` to `transparent`
2019-12-26 19:30:52 +02:00
Pavel Djundik
b18cb15f7d
Set -webkit-tap-highlight-color to transparent 2019-12-26 13:01:37 +02:00
Pavel Djundik
dbfa5c5746 Restrict image viewer bounds while moving 2019-12-24 18:36:12 +02:00
Pavel Djundik
55e5c69958
Merge pull request #3627 from thelounge/xpaw/connect-after-defaults
Create networks after setting user defaults
2019-12-23 16:05:32 +02:00
Pavel Djundik
d2932ccea8 Correctly track user toggle of previews 2019-12-23 12:26:57 +02:00
Pavel Djundik
769585e72d Collapse prefetch errors by default 2019-12-23 12:15:23 +02:00
Pavel Djundik
fe031c8b12 Connect networks after setting user defaults 2019-12-23 10:27:12 +02:00
Pavel Djundik
27986f5811 Remove child-src from CSP, add base-uri none 2019-12-22 21:24:46 +02:00
Pavel Djundik
8696f03e8d v4.0.0-rc.1 2019-12-21 12:13:36 +02:00
Pavel Djundik
d79b6e6c2f
Add changelog entry for v4.0.0-rc.1 2019-12-21 12:12:55 +02:00
Pavel Djundik
6c0fc8dbb4 Update yarn.lock 2019-12-21 12:12:36 +02:00
Pavel Djundik
b808c89322
Merge pull request #3619 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.8.0
2019-12-21 11:56:44 +02:00
Pavel Djundik
7effbd35a7
Merge pull request #3620 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.9.0
2019-12-21 11:56:38 +02:00
Pavel Djundik
2a02f96017
Merge pull request #3618 from thelounge/renovate/dayjs-1.x
Update dependency dayjs to v1.8.18
2019-12-21 11:56:32 +02:00
Renovate Bot
40ea6e85ce
Update dependency mini-css-extract-plugin to v0.9.0 2019-12-21 09:28:05 +00:00
Renovate Bot
a5b9773eac
Update dependency eslint to v6.8.0 2019-12-21 09:27:54 +00:00
Renovate Bot
92b2f6220d
Update dependency dayjs to v1.8.18 2019-12-21 09:27:42 +00:00
Pavel Djundik
5db6714718
Merge pull request #3623 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.4
2019-12-21 11:26:40 +02:00
Pavel Djundik
5f7f56d8ef
Merge pull request #3622 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.8.3
2019-12-21 11:26:33 +02:00
Pavel Djundik
0f90f6b7c2
Merge pull request #3621 from thelounge/renovate/textcomplete-0.x
Update dependency textcomplete to v0.18.1
2019-12-21 11:26:26 +02:00
Pavel Djundik
8f2eebf3e4
Merge pull request #3617 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.4.0
2019-12-21 11:26:20 +02:00
Pavel Djundik
c71c9135ab
Merge pull request #3616 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.7.7
2019-12-21 11:26:13 +02:00
Renovate Bot
e1e8dae02b
Update dependency webpack to v4.41.4 2019-12-21 03:31:01 +00:00
Renovate Bot
fd9ed3335f
Update dependency vue-loader to v15.8.3 2019-12-21 03:30:46 +00:00
Renovate Bot
c7338e9e11
Update dependency textcomplete to v0.18.1 2019-12-21 02:34:14 +00:00
Renovate Bot
44f25324ff
Update dependency css-loader to v3.4.0 2019-12-21 00:40:25 +00:00
Renovate Bot
e9458f0a65
Update babel monorepo to v7.7.7 2019-12-21 00:40:11 +00:00
Pavel Djundik
146b6d02f4
Merge pull request #3612 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.4.2
2019-12-20 12:03:32 +02:00
Pavel Djundik
67aba10e34
Merge pull request #3611 from thelounge/renovate/ua-parser-js-0.x
Update dependency ua-parser-js to v0.7.21
2019-12-20 12:03:23 +02:00
Pavel Djundik
0ac698e0bb
Merge pull request #3614 from thelounge/xpaw/condense-tooltip
Update status messages tooltip
2019-12-20 12:03:14 +02:00
Pavel Djundik
25b65b39db
Merge pull request #3613 from thelounge/richrd/fix-lobby-draft-icon
Don't show draft icon on lobbies.
2019-12-20 12:00:29 +02:00
Pavel Djundik
7c5f4c404d Update status messages tooltip 2019-12-20 11:59:26 +02:00
Richard Lewis
18bfd32704 Don't show draft icon on lobbies. 2019-12-20 09:55:49 +00:00
Renovate Bot
74e8c7e51c
Update dependency file-type to v12.4.2 2019-12-20 00:31:02 +00:00
Renovate Bot
c12e7bcebb
Update dependency ua-parser-js to v0.7.21 2019-12-19 18:17:50 +00:00
Pavel Djundik
356a896fe2
Merge pull request #3603 from thelounge/xpaw/condensed-more
Send 100 actual messages when requesting history with hidden or condensed status messages
2019-12-19 17:32:41 +02:00
Pavel Djundik
bc6017aed7
Merge pull request #3534 from thelounge/richrd/issue-659-previous-source
Add `previous-source` class to messages with same sender
2019-12-19 17:32:34 +02:00
Pavel Djundik
126bf1794e
Merge pull request #3610 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.4.1
2019-12-19 17:32:27 +02:00
Richard Lewis
7a8bb0376c Add previous-source class to messages when previous message has same sender. 2019-12-19 15:04:31 +00:00
Renovate Bot
03dd00284c
Update dependency file-type to v12.4.1 2019-12-19 14:38:07 +00:00
Pavel Djundik
749e7f4469
Merge pull request #3609 from thelounge/xpaw/topic-edit
Remove querySelector in topic edit, fix save button style
2019-12-19 15:26:59 +02:00
Pavel Djundik
7a350ac69a
Merge pull request #3602 from thelounge/xpaw/ua
Pretend to be facebook and twitter bots in link prefetcher
2019-12-19 15:25:39 +02:00
Pavel Djundik
c04beb8b08
Merge pull request #3606 from thelounge/xpaw/text-plain-preview
Add preview for text/plain urls
2019-12-19 15:25:22 +02:00
Pavel Djundik
f1eee6c9b2
Merge pull request #3608 from thelounge/richrd/channel-list-item-classes
Relocate not-secure and not-connected classes and make sure channel exists in jumpToChannel
2019-12-19 15:25:15 +02:00
Richard Lewis
d2f0590c73 Fix class targeting 2019-12-19 13:22:04 +00:00
Pavel Djundik
72a954b865 Add preview for text/plain urls 2019-12-19 15:12:02 +02:00
Pavel Djundik
60ca8850d9 Focus topic edit input by using $refs 2019-12-19 15:06:33 +02:00
Pavel Djundik
456cdb2f54 Fix save button style in topic edit 2019-12-19 15:05:49 +02:00
Richard Lewis
d9f8f45169 Make sure channel exists. 2019-12-19 13:02:21 +00:00
Richard Lewis
8cb49ae56a Relocate not-secure and not-connected classes. 2019-12-19 13:00:24 +00:00
Pavel Djundik
b16d023657
Merge pull request #3589 from thelounge/xpaw/user-fs
Optimize user file updates
2019-12-19 14:58:37 +02:00
Pavel Djundik
cd6821a196
Merge pull request #3604 from thelounge/xpaw/beforeunload
Fix beforeunload not working
2019-12-19 14:57:44 +02:00
Pavel Djundik
117dd0faed
Merge pull request #3601 from thelounge/renovate/semver-7.x
Update dependency semver to v7.1.1
2019-12-19 14:50:27 +02:00
Pavel Djundik
0ee52e47e4
Merge pull request #3605 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.6.0
2019-12-19 14:50:19 +02:00
Renovate Bot
5da8d089c3
Update dependency semver to v7.1.1 2019-12-19 12:45:14 +00:00
Renovate Bot
6cc2471f4e
Update dependency irc-framework to v4.6.0 2019-12-19 12:45:00 +00:00
Pavel Djundik
a414563eae
Merge pull request #3607 from thelounge/renovate/got-10.x
Update dependency got to v10.1.0
2019-12-19 14:44:28 +02:00
Renovate Bot
5611f98a4e
Update dependency got to v10.1.0 2019-12-19 12:33:05 +00:00
Pavel Djundik
03d5fab794 Fix beforeunload not working 2019-12-18 11:28:39 +02:00
Pavel Djundik
0d7b980f90 Remove unnecessary client.sockets ref 2019-12-18 11:22:11 +02:00
Pavel Djundik
6091514630 Do not write to disk if the json data hasn't actually changed 2019-12-18 11:06:20 +02:00
Pavel Djundik
2365c9489e Enforce user file types at runtime 2019-12-18 10:47:09 +02:00
Pavel Djundik
f269ac3bee Update user file without reading, debounce all saves 2019-12-18 10:47:08 +02:00
Pavel Djundik
def56dc694 Update user file once on auth 2019-12-18 10:47:08 +02:00
Pavel Djundik
c1920eb566 When updating user file, write to temp file first 2019-12-18 10:47:07 +02:00
Pavel Djundik
a9f97ddf22 Send 100 actual messages when requesting history with hidden or condensed status messages 2019-12-18 00:14:36 +02:00
Pavel Djundik
4a345eb6d9 Convert constants.js to commonjs 2019-12-18 00:14:36 +02:00
Pavel Djundik
c108c20c91 Pretend to be facebook and twitter bots 2019-12-17 22:35:15 +02:00
Pavel Djundik
86341f063c
Merge pull request #3596 from thelounge/xpaw/friendly-size
Use `friendlysize` helper consistently
2019-12-17 15:43:58 +02:00
Pavel Djundik
f1d806a80f
Merge pull request #3600 from thelounge/xpaw/condensed-set
Use Set() for condensed types
2019-12-17 15:43:50 +02:00
Pavel Djundik
e2c74a1014
Merge pull request #3598 from thelounge/renovate/semver-7.x
Update dependency semver to v7.1.0
2019-12-17 15:43:41 +02:00
Renovate Bot
0ba11d8a0e
Update dependency semver to v7.1.0 2019-12-17 12:21:53 +00:00
Pavel Djundik
c6b568c165
Merge pull request #3599 from thelounge/xpaw/fix-keys
Fix page and arrow keys not working correctly
2019-12-17 14:09:59 +02:00
Pavel Djundik
f3b383ce63 Use Set() for condensed types 2019-12-17 12:48:12 +02:00
Pavel Djundik
408eb75a88 Fix page and arrow keys not working correctly 2019-12-17 11:21:22 +02:00
Pavel Djundik
f2bf1fa90a Use friendlysize helper consistently
Co-Authored-By: fnutt <fnutt@users.noreply.github.com>
2019-12-16 22:00:35 +02:00
Pavel Djundik
f0b0c53536
Merge pull request #3597 from bepvte/fix-ipv6
Fix format of IPv6 URI
2019-12-16 20:33:22 +02:00
Paul Oppenheimer
dcf08ecac6 Fix format of IPv6 URI 2019-12-16 12:24:30 -05:00
Pavel Djundik
8fb8b94650
Merge pull request #3593 from thelounge/xpaw/fix-keepnick
Fix keep nick setting nick to undefined on socket close
2019-12-16 11:39:33 +02:00
Pavel Djundik
a8dd85d21e Fix keep nick setting nick to undefined on socket close 2019-12-16 10:56:25 +02:00
Pavel Djundik
6a920fd4eb
Merge pull request #3587 from thelounge/renovate/ldapjs-2.x
Update dependency ldapjs to v2.0.0-pre.5
2019-12-15 19:11:41 +02:00
Pavel Djundik
61369b3e5a
Merge pull request #3586 from thelounge/xpaw/msg-data-type
Use data-type attribute on .msg
2019-12-15 19:10:30 +02:00
Pavel Djundik
98708a2ebd
Merge pull request #3588 from thelounge/xpaw/hide-settings
Hide awaymessage/highlights settings in public mode
2019-12-15 19:10:21 +02:00
Pavel Djundik
5b55ac7d02
Merge pull request #3590 from thelounge/xpaw/fix-sync
Fix synchronizing settings on page load
2019-12-15 19:10:15 +02:00
Pavel Djundik
52ce1aebbd
Merge pull request #3591 from thelounge/xpaw/fix-width
Fix sign in being full width
2019-12-15 19:10:07 +02:00
Pavel Djundik
dc93bc0f1e
Merge pull request #3592 from thelounge/xpaw/fix-image-blur
Round down image transform in image viewer to fix blurry images
2019-12-15 19:10:00 +02:00
Pavel Djundik
935b193a64 Round down image transform in image viewer to fix blurry images 2019-12-15 18:13:52 +02:00
Pavel Djundik
5b4a5fd4b1 Fix sign in being full width 2019-12-15 18:06:20 +02:00
Pavel Djundik
309be48906 Fix synchronizing settings on page load 2019-12-15 18:03:13 +02:00
Pavel Djundik
317f4fb991 Hide awaymessage/highlights settings in public mode 2019-12-15 17:31:03 +02:00
Renovate Bot
f806c32c49
Update dependency ldapjs to v2.0.0-pre.5 2019-12-15 14:27:28 +00:00
Pavel Djundik
6731e584da Use data-type on .msg 2019-12-15 13:46:43 +02:00
Pavel Djundik
58a558247b
Merge pull request #3454 from Zarthus/gh_labels
Automatically apply GitHub labels on issue creation
2019-12-15 13:29:03 +02:00
Pavel Djundik
578f5fa1c9 v4.0.0-pre.1 2019-12-14 22:49:12 +02:00
Pavel Djundik
ebbe798c16
Add changelog entry for v4.0.0-pre.1 2019-12-14 22:48:44 +02:00
Pavel Djundik
0486f43f9f
Merge pull request #3557 from thelounge/xpaw/premature-close
Fix "premature close" on link previews
2019-12-14 22:45:49 +02:00
Pavel Djundik
bfffc8d0df
Merge pull request #3584 from thelounge/renovate/semver-7.x
Update dependency semver to v7
2019-12-14 22:37:59 +02:00
Pavel Djundik
ead372e6e6
Merge pull request #3574 from thelounge/xpaw/normalize.css
Remove bootstrap.css, use flexbox
2019-12-14 22:37:37 +02:00
Renovate Bot
a59af9b941
Update dependency semver to v7 2019-12-14 20:34:20 +00:00
Pavel Djundik
05af830a15 Remove experimental warning from sync 2019-12-14 22:30:34 +02:00
Pavel Djundik
f00c71c81b Use v-show to hide load more button 2019-12-14 22:30:34 +02:00
Pavel Djundik
1495ce3772 Remove bootstrap classes from settings 2019-12-14 22:30:34 +02:00
Pavel Djundik
0e9fdf9e08 Remove float from changelog and version link 2019-12-14 22:29:50 +02:00
Pavel Djundik
b592657f7d Style connect window without bootstrap 2019-12-14 22:29:50 +02:00
Pavel Djundik
0e8b9fdd5c Use normalize.css and remove a lot of unused styles from bootstrap.css 2019-12-14 22:29:49 +02:00
Pavel Djundik
c23c786c58
Merge pull request #3585 from thelounge/xpaw/fix-preview-settings
Fix link previews settings not being visible
2019-12-14 22:11:08 +02:00
Pavel Djundik
e8ed36bfd6 Fix link previews settings not being visible 2019-12-14 21:53:13 +02:00
Pavel Djundik
6f7444dfe3
Merge pull request #3577 from thelounge/xpaw/thumb-assign
Assign `preview.thumb` only after it is processed
2019-12-14 21:34:07 +02:00
Pavel Djundik
d99b6d0a17
Merge pull request #3579 from thelounge/xpaw/watch-packages
Automatically load new packages (fs.watch package.json)
2019-12-14 21:33:56 +02:00
Pavel Djundik
e3a2fa7dd1 Create packages/package.json on server start 2019-12-14 20:48:25 +02:00
Pavel Djundik
7fbba14b69 Watch package.json and load new packages 2019-12-14 20:47:52 +02:00
Pavel Djundik
059cedcf7a
Merge pull request #3578 from thelounge/xpaw/yarn-home
Provide fake $HOME env to Yarn commands
2019-12-14 20:47:09 +02:00
Pavel Djundik
8840a80209
Merge pull request #3583 from thelounge/renovate/vue-monorepo
Update vue monorepo to v2.6.11
2019-12-14 10:59:05 +02:00
Pavel Djundik
eda437f40d Update yarn.lock 2019-12-14 10:53:36 +02:00
Renovate Bot
a0f684c0d9
Update vue monorepo to v2.6.11 2019-12-14 08:44:37 +00:00
Pavel Djundik
bc3e6292b6
Merge pull request #3582 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.3.2
2019-12-14 10:43:48 +02:00
Pavel Djundik
a91f5dfb49
Merge pull request #3580 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.12.0
2019-12-14 10:43:41 +02:00
Renovate Bot
dccdd4869c
Update dependency css-loader to v3.3.2 2019-12-14 08:31:31 +00:00
Renovate Bot
9ac1257e76
Update dependency @fortawesome/fontawesome-free to v5.12.0 2019-12-14 08:31:20 +00:00
Pavel Djundik
d550c6e11c
Merge pull request #3581 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.1.1
2019-12-14 10:30:10 +02:00
Pavel Djundik
0582303f3b
Merge pull request #3575 from thelounge/renovate/got-10.x
Update dependency got to v10.0.4
2019-12-14 10:30:03 +02:00
Renovate Bot
1ede6c8463
Update dependency copy-webpack-plugin to v5.1.1 2019-12-14 00:35:30 +00:00
Pavel Djundik
24e41327a3 Provide fake $HOME env to Yarn commands 2019-12-13 17:45:10 +02:00
Pavel Djundik
bbf92f1aa0 Assign preview.thumb only after it is processed 2019-12-13 11:43:13 +02:00
Renovate Bot
15d7f2f224
Update dependency got to v10.0.4 2019-12-12 13:15:23 +00:00
Pavel Djundik
51360711c9
Merge pull request #3573 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.21.1
2019-12-11 19:36:25 +02:00
Pavel Djundik
87244fb4d5
Merge pull request #3570 from thelounge/xpaw/fix-3568
Allow empty parameter overrides
2019-12-11 19:34:04 +02:00
Pavel Djundik
0e3d7bb5bd
Merge pull request #3571 from thelounge/xpaw/fix-3569
Disable protocol register button if lockNetwork is enabled
2019-12-11 19:33:56 +02:00
Renovate Bot
53a34a0509
Update dependency yarn to v1.21.1 2019-12-11 13:14:18 +00:00
Pavel Djundik
7eaf6fb58f
Merge pull request #3572 from thelounge/xpaw/css
Remove unnecessary selectors
2019-12-11 14:33:27 +02:00
Pavel Djundik
f5103ac4b4 Remove unnecessary selectors 2019-12-11 13:35:18 +02:00
Pavel Djundik
2bc78e24a2
Merge pull request #3566 from thelounge/xpaw/css
Fix up css refactor
2019-12-11 11:43:45 +02:00
Pavel Djundik
74cc1722ea Disable protocol register button if lockNetwork is enabled
Fixes #3569
2019-12-10 23:24:54 +02:00
Pavel Djundik
58545353f7 Allow empty parameter overrides
Fixes #3568
2019-12-10 23:20:45 +02:00
Pavel Djundik
fd6bc3ecb6 Fix up css refactoring 2019-12-10 19:25:32 +02:00
Pavel Djundik
2a84d8239b
Merge pull request #3553 from thelounge/richrd/css-refactoring
Refactor some CSS styling
2019-12-10 14:52:18 +02:00
Richard Lewis
c022377c49 Refactor some CSS selectors. 2019-12-10 14:19:31 +02:00
Pavel Djundik
e9cbea9569 Update link prefetch stream handling
Fixes #3564
2019-12-09 21:05:33 +02:00
Pavel Djundik
8d227ee37e
Merge pull request #3560 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.13
2019-12-09 21:03:00 +02:00
Pavel Djundik
2d983b94eb
Merge pull request #3565 from thelounge/renovate/babel-monorepo
Update dependency @babel/preset-env to v7.7.6
2019-12-09 21:02:53 +02:00
Pavel Djundik
371f676fd5
Merge pull request #3563 from thelounge/renovate/got-10.x
Update dependency got to v10.0.3
2019-12-09 21:02:28 +02:00
Renovate Bot
f7391f252b
Update dependency got to v10.0.3 2019-12-09 18:48:39 +00:00
Renovate Bot
636c4a6204
Update dependency @babel/preset-env to v7.7.6 2019-12-07 23:52:23 +00:00
Renovate Bot
3426ee31c0
Update dependency mochapack to v1.1.13 2019-12-07 18:10:04 +00:00
Pavel Djundik
cf0a222cf9
Merge pull request #3562 from thelounge/renovate/ldapjs-2.x
Update dependency ldapjs to v2.0.0-pre.4
2019-12-07 20:09:07 +02:00
Pavel Djundik
bfbb6627d0
Merge pull request #3559 from thelounge/renovate/css-loader-3.x
Update dependency css-loader to v3.2.1
2019-12-07 20:08:58 +02:00
Pavel Djundik
a9f0b1d5ff
Merge pull request #3558 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.7.5
2019-12-07 20:08:51 +02:00
Renovate Bot
1501566824
Update dependency ldapjs to v2.0.0-pre.4 2019-12-07 17:43:17 +00:00
Renovate Bot
4ad7dc1ad3
Update dependency css-loader to v3.2.1 2019-12-07 17:43:06 +00:00
Renovate Bot
bdfbfdd475
Update babel monorepo to v7.7.5 2019-12-07 17:42:54 +00:00
Pavel Djundik
21bbfffb21
Merge pull request #3561 from thelounge/richrd/fix-video-overflow
Fix video element overflowing on chrome
2019-12-07 19:13:27 +02:00
Pavel Djundik
320832dfd9
Merge pull request #3539 from thelounge/xpaw/emoji
Add Unicode 12.1 emojis
2019-12-07 19:12:33 +02:00
Richard Lewis
45d7b0531a Fix video element overflowing on chrome. 2019-12-07 14:11:16 +00:00
Pavel Djundik
6032bd16a5
Merge pull request #3556 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.4.3
2019-12-06 21:55:19 +02:00
Renovate Bot
21c8e7cd62
Update dependency web-push to v3.4.3 2019-12-06 19:50:26 +00:00
Pavel Djundik
3224c988b8
Merge pull request #3555 from thelounge/xpaw/apply-theme
Apply user theme as soon as possible on page load
2019-12-06 17:56:06 +02:00
Pavel Djundik
e64f53ad33 Apply user theme as soon as possible 2019-12-06 11:56:12 +02:00
Pavel Djundik
07ea17b180
Merge pull request #3548 from thelounge/xpaw/remove-upgrades
Remove code that aided upgrade to v3
2019-12-05 12:14:08 +02:00
Pavel Djundik
278595df1f
Merge pull request #3554 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.1.1
2019-12-05 12:13:36 +02:00
Renovate Bot
e60a8e8bff
Update dependency sqlite3 to v4.1.1 2019-12-05 02:45:53 +00:00
Pavel Djundik
f2ea562d16
Merge pull request #3552 from thelounge/renovate/tlds-1.x
Update dependency tlds to v1.207.0
2019-12-03 19:31:39 +02:00
Renovate Bot
0bd676355e
Update dependency tlds to v1.207.0 2019-12-03 15:19:35 +00:00
Pavel Djundik
c260e1a82f
Merge pull request #3549 from thelounge/xpaw/client-setting-awayMessage
Make client awayMessage a client setting
2019-12-03 10:30:21 +02:00
Pavel Djundik
4ef5c66fd6
Merge pull request #3546 from thelounge/xpaw/fix-sidebar-closing
Fix sidebar not opening when lounge is open in a background tab
2019-12-03 10:23:59 +02:00
Pavel Djundik
3dae767937 Make client awayMessage a client setting 2019-12-02 12:24:22 +02:00
Pavel Djundik
db4b292a38 Remove code that aided upgrade to v3 2019-12-02 12:10:17 +02:00
Pavel Djundik
d90a81240f
Merge pull request #3544 from thelounge/renovate/got-10.x
Update dependency got to v10
2019-12-02 11:56:48 +02:00
Pavel Djundik
ad39229867
Merge pull request #3547 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.21.0
2019-12-02 11:56:39 +02:00
Renovate Bot
6199c3defc
Update dependency got to v10 2019-12-02 09:41:11 +00:00
Renovate Bot
f945c29cda
Update dependency yarn to v1.21.0 2019-12-02 08:29:20 +00:00
Pavel Djundik
cf0a4999e9 Fix sidebar not opening when lounge is open in a background tab 2019-12-01 20:20:37 +02:00
Pavel Djundik
674d9cfbd8
Merge pull request #3543 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.7.2
2019-12-01 17:42:39 +02:00
Pavel Djundik
dd2b15b7af
Merge pull request #3545 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.4.2
2019-12-01 17:42:19 +02:00
Renovate Bot
5d1eb385e6
Update dependency web-push to v3.4.2 2019-12-01 15:34:32 +00:00
Renovate Bot
801f56b168
Update dependency eslint to v6.7.2 2019-11-30 17:24:52 +00:00
Pavel Djundik
7425033fdb
Merge pull request #3542 from thelounge/renovate/vue-monorepo
Update vue monorepo to v1.0.0-beta.30
2019-11-30 12:10:08 +02:00
Pavel Djundik
36b105021b Use async in parser tests 2019-11-30 11:36:19 +02:00
Renovate Bot
6b46097479
Update vue monorepo to v1.0.0-beta.30 2019-11-30 09:07:40 +00:00
Pavel Djundik
f6a432da32
Merge pull request #3541 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.12
2019-11-30 11:06:42 +02:00
Pavel Djundik
69840cd8c1
Merge pull request #3540 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.7.1
2019-11-30 11:06:35 +02:00
Renovate Bot
661d4a9ba4
Update dependency mochapack to v1.1.12 2019-11-30 01:27:53 +00:00
Renovate Bot
1d8bd7acb5
Update dependency eslint to v6.7.1 2019-11-30 01:27:39 +00:00
Pavel Djundik
09ddbd156c Add Unicode 12.1 emojis 2019-11-29 20:26:33 +02:00
Pavel Djundik
320b3ea98f
Merge pull request #3434 from thelounge/xpaw/no-variant-emoji-map
Remove \uFE0F emoji variant from emoji name map
2019-11-28 20:15:42 +02:00
Pavel Djundik
6d342b9847
Merge pull request #3538 from thelounge/xpaw/test-timeout
Increase test timeout due to unpredictable I/O on CI services
2019-11-28 12:57:41 +02:00
Pavel Djundik
f0dfb909dd
Merge pull request #3537 from thelounge/xpaw/fix-kick-spacing
Fix spacing in kick reason
2019-11-28 12:24:17 +02:00
Pavel Djundik
45f2576e96
Merge pull request #3536 from thelounge/xpaw/no-compute-filtered
Do not compute filteredUsers if there's no search input
2019-11-28 12:19:31 +02:00
Pavel Djundik
8b7fb33627 Increase test timeout due to unpredictable I/O on CI services 2019-11-27 20:25:29 +02:00
Pavel Djundik
e923696bb0 Fix spacing in kick reason 2019-11-27 20:18:20 +02:00
Pavel Djundik
c19cbd7ffd Do not compute filteredUsers if there's no search input 2019-11-27 19:56:21 +02:00
Pavel Djundik
446f99f62a
Merge pull request #3535 from thelounge/richrd/fix-keybinds-in-input
Fix keybinds when chat input is focused.
2019-11-27 16:49:04 +02:00
Richard Lewis
b089b92b1e Fix keybinds when chat input is focused. 2019-11-27 14:28:54 +00:00
Pavel Djundik
2ee30abd56
Merge pull request #3533 from thelounge/richrd/draft-icon
Show which channels have drafts in the network list
2019-11-27 10:59:49 +02:00
Richard Lewis
eb0094618e Show pen icon if channel has a pending message, unless it's the active channel 2019-11-26 22:29:35 +00:00
Pavel Djundik
bbbaf128bb
Merge pull request #3521 from thelounge/github-action-release
Create release github action workflow
2019-11-26 22:45:19 +02:00
Pavel Djundik
c0b8f6f86a Create release github action workflow 2019-11-26 22:39:38 +02:00
Pavel Djundik
c813d6ee2a Delete .travis.yml 2019-11-26 22:39:38 +02:00
Pavel Djundik
85400ed9c2
Merge pull request #3532 from thelounge/xpaw/context-menu-transition
Remove transition from context menu items
2019-11-26 18:02:17 +02:00
Pavel Djundik
5f2651a252
Merge pull request #3531 from thelounge/xpaw/ignore-unknown-settings
Ignore unknown settings
2019-11-26 18:02:09 +02:00
Pavel Djundik
fa68d74f9e Remove transition from context menu items 2019-11-26 16:39:56 +02:00
Pavel Djundik
c790d9fadf Ignore unknown settings 2019-11-26 16:20:33 +02:00
Pavel Djundik
d6923d0c6d Regenerate fullnamemap.json 2019-11-26 14:17:37 +02:00
Pavel Djundik
10b1cedbb6 Remove \uFE0F emoji variant from emoji name map 2019-11-26 14:17:37 +02:00
Pavel Djundik
12cdf280fc v3.4.0-pre.1 2019-11-26 13:57:07 +02:00
Pavel Djundik
9784423808 Add changelog entry for v3.4.0-pre.1 2019-11-26 13:56:56 +02:00
Pavel Djundik
e74c35687e
Merge pull request #3524 from thelounge/vue
Complete porting The Lounge client to the Vue.js framework
2019-11-26 13:51:45 +02:00
Pavel Djundik
a3be259567 Fix opening channel when clicking a push notification 2019-11-25 21:51:04 +02:00
Pavel Djundik
c2ed3fae56 Improve link preview loading 2019-11-25 21:37:51 +02:00
Pavel Djundik
c70d0fb224 Display a badge when built in development mode 2019-11-25 20:53:22 +02:00
Pavel Djundik
9051861f4d Replace history entry if current route is null 2019-11-25 20:13:20 +02:00
Pavel Djundik
049e9a1680 Prevent cursor moving when navigating user list 2019-11-25 20:13:20 +02:00
Pavel Djundik
57ba119edb Hide auto completion menu when channel changes 2019-11-25 20:13:19 +02:00
Pavel Djundik
83f3fe772a Remove user/pass support from irc://, support multiple channels
Other clients and specs explicitly don't support user:pass
2019-11-25 20:13:19 +02:00
Pavel Djundik
ec85372132 Fix uri handling and add tests 2019-11-25 20:13:18 +02:00
Pavel Djundik
90ec37ce82 Replace confirm() with context menu
window.confirm() blocks the javascript thread and will cause the socket connection to drop
2019-11-25 20:13:18 +02:00
Pavel Djundik
9b9c547e8c Remove UsernameFiltered and fix colored mentions 2019-11-25 20:13:17 +02:00
Richard Lewis
dca6543070 Implement closeChannel method. 2019-11-25 20:13:17 +02:00
Richard Lewis
0c49f025b4 Fix Vue error when navigating to channels via InlineChannel. 2019-11-25 20:13:17 +02:00
Pavel Djundik
2a6c57abaa Fix context menu generation 2019-11-25 20:13:16 +02:00
Pavel Djundik
de76a86757 Remove css.escape as it is no longer used 2019-11-25 20:13:16 +02:00
Pavel Djundik
49dc6ffd8f Fix client tests 2019-11-25 20:13:15 +02:00
Pavel Djundik
0ac9601a3a Remove some data attributes 2019-11-25 20:13:15 +02:00
Pavel Djundik
e76d5d2ef9 Port keybinds to vue state; remove jQuery 2019-11-25 20:13:14 +02:00
Pavel Djundik
d0444d7d7f Improve disconnected message in public mode 2019-11-25 20:13:14 +02:00
Pavel Djundik
f00dfc7524 Move upload-overlay to viewport 2019-11-25 20:13:14 +02:00
Pavel Djundik
21bbe7d4c3 Make sense out of settings sync and force sync 2019-11-25 20:13:13 +02:00
Pavel Djundik
85907f54ba Improve context menus 2019-11-25 20:13:13 +02:00
Pavel Djundik
9147772cb2 Use mousetrap for escape binds 2019-11-25 20:13:12 +02:00
Pavel Djundik
0cb8dc73bb Use es6 import syntax 2019-11-25 20:13:12 +02:00
Pavel Djundik
b2cc8d9531 Fix web app install button 2019-11-25 20:13:11 +02:00
Pavel Djundik
fcf7488e1e Remove jquery from autocompletion 2019-11-25 20:13:11 +02:00
Richard Lewis
a71472a427 Port contextmenus to Vue 2019-11-25 20:13:11 +02:00
Pavel Djundik
111c3665f9 Replace moment with dayjs
Drop in replacement, but smaller
2019-11-25 20:13:10 +02:00
Pavel Djundik
7584f47c7d Cleanup webpush code 2019-11-25 20:13:10 +02:00
Pavel Djundik
17365d9967 Remove references to vue.js 2019-11-25 20:13:09 +02:00
Pavel Djundik
54a1e11f50 Move some init code around 2019-11-25 20:13:09 +02:00
Pavel Djundik
033f565c0e Remove isFileUploadEnabled 2019-11-25 20:13:08 +02:00
Pavel Djundik
a4490bf1d6 Fix up connect uri parsing, use direct router references
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-25 20:13:08 +02:00
Pavel Djundik
91e0349486 Use global Vue calls instead of vueApp reference 2019-11-25 20:13:07 +02:00
Pavel Djundik
f2309c7c89 Improve router experience 2019-11-25 20:13:07 +02:00
Pavel Djundik
5a0f1c1f4e Replace getActiveWindowComponent with an event 2019-11-25 20:13:07 +02:00
Pavel Djundik
3a6b075745 Do not focus channel when close button clicked
This fixes leaving channels and removing networks jumping to it before being removed
2019-11-25 20:13:06 +02:00
Pavel Djundik
2044bc88dd Switch channels on quit only if current network is being quit 2019-11-25 20:13:06 +02:00
Tim Miller-Williams
d5ebdc943c Replace isNotified state with getter 2019-11-25 20:13:05 +02:00
Tim Miller-Williams
cbaf4db339 Replace synchronizeNotifiedState with a getter & watcher 2019-11-25 20:13:05 +02:00
Tim Miller-Williams
16f8304c4e Refactor title to rely on Vuex state reactivity 2019-11-25 20:13:04 +02:00
Tim Miller-Williams
6a15fd95f0 Refactor userList behaviour to not use methods in root Vue instance 2019-11-25 20:13:04 +02:00
Tim Miller-Williams
dd9efad23c Refactor sidebar behaviour to no longer use methods in root Vue instance 2019-11-25 20:13:04 +02:00
Tim Miller-Williams
1adbbdda2a Fix bug with joining new channels 2019-11-25 20:13:03 +02:00
Tim Miller-Williams
347802a4b6 Refactor Apple keyboard logic to be more explicit 2019-11-25 20:13:03 +02:00
Richard Lewis
94bdff4fa0 Implement mirroring nick to username field in vue. 2019-11-25 20:13:02 +02:00
Richard Lewis
0c7db6dffe Move url parameter handling to vue 2019-11-25 20:13:02 +02:00
Richard Lewis
897f238c38 Disallow navigating to invalid channels 2019-11-25 20:13:01 +02:00
Richard Lewis
5c0a7722a4 Disallow navigating to non-existing routes 2019-11-25 20:13:01 +02:00
Richard Lewis
d232ef1557 Improve vue routing. 2019-11-25 20:13:00 +02:00
Pavel Djundik
916da73108 Remove jquery from input focus event 2019-11-25 20:13:00 +02:00
Pavel Djundik
80c6cfbd7c Use switchToChannel instead of click 2019-11-25 20:13:00 +02:00
Tim Miller-Williams
25da9dd63e Rework settings such that all behavior for each setting is kept together
Behavior includes: default value, whether setting should be synced, and
an optional 'apply' callback which is called when setting is changed in
Vuex.
2019-11-25 20:12:59 +02:00
Tim Miller-Williams
703848919c Separate connection event handlers from socket.js 2019-11-25 20:12:59 +02:00
Tim Miller-Williams
a2a2aff2bc Remove unnecessary options.initialized switch 2019-11-25 20:12:58 +02:00
Pavel Djundik
a1f183f216 Cleanup auth flow 2019-11-25 20:12:58 +02:00
Pavel Djundik
fc1c9568e2 Rename helpers folder, move some vue filters 2019-11-25 20:12:58 +02:00
Pavel Djundik
b164e95290 Remove DOM access from webpush 2019-11-25 20:12:57 +02:00
Pavel Djundik
8972242863 Remove jquery from msg event 2019-11-25 20:12:57 +02:00
Pavel Djundik
6b8fea8afc Avoid emitting multiple events to the server when collapsing/expanding channel previews
Fixes #1377
2019-11-25 20:12:56 +02:00
Pavel Djundik
c26de4cf6a Move options to vuex
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-25 20:12:56 +02:00
Pavel Djundik
743ae987ec Fix up login and initial window 2019-11-25 20:12:55 +02:00
Pavel Djundik
2b5a13a043 Register routes after init 2019-11-25 20:12:55 +02:00
Pavel Djundik
aba2487126 Make findChannel and findNetwork getters 2019-11-25 20:12:54 +02:00
Pavel Djundik
742cd8d4bf Move most things out of utils 2019-11-25 20:12:54 +02:00
Pavel Djundik
2f635069e0 Move vuex state to a separate file and reorganize some code
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-25 20:12:54 +02:00
Pavel Djundik
3c43a2bfd3 Delete renderPreview.js 2019-11-25 20:12:53 +02:00
Pavel Djundik
c4d6afe3d6 Fix removing networks 2019-11-25 20:12:53 +02:00
Pavel Djundik
c8b22b2df3 Fix up network editing 2019-11-25 20:12:52 +02:00
Richard Lewis
8fa42c5c48 Fix network editing in vue and use absolute urls in router links. 2019-11-25 20:12:52 +02:00
Richard Lewis
2049a16d64 Implement switchToChannel method. 2019-11-25 20:12:51 +02:00
Pavel Djundik
e845e17a63 Convert some clicks to router push 2019-11-25 20:12:51 +02:00
Richard Lewis
c6dca616e6 Remove jQuery from InlineChannel.vue and JoinChannel.vue. 2019-11-25 20:12:50 +02:00
Richard Lewis
c393dd1a11 Fixes to vue routing and activeWindow. 2019-11-25 20:12:50 +02:00
Pavel Djundik
f76ad57c63 Move confirmExit 2019-11-25 20:12:50 +02:00
Pavel Djundik
b74cc4387a Remove old path from eslintignore 2019-11-25 20:12:49 +02:00
Pavel Djundik
431221c21e Add rel=noopener on changelog links 2019-11-25 20:12:49 +02:00
Richard Lewis
737afc759b Implement vue-router. 2019-11-25 20:12:48 +02:00
Pavel Djundik
7355c91839 Move context menu events to factory 2019-11-25 20:12:48 +02:00
Pavel Djundik
af0d48de72 Create InlineChannel component 2019-11-25 20:12:48 +02:00
Pavel Djundik
4f6565c24a Add active class to footer buttons 2019-11-25 20:12:47 +02:00
Pavel Djundik
5c4b402341 Fancy image interactions in the image viewer
Desktop:
- Mousewheel to zoom in/out (hold ctrl to move up/down)
- If zoomed, drag around with mouse to move

Mobile:
- Move around with one finger
- Change zoom with two fingers
2019-11-25 20:12:47 +02:00
Pavel Djundik
af777106bf Remove handlebars and html-minifier 2019-11-25 20:12:46 +02:00
Pavel Djundik
70a795dced Start porting image viewer to Vue 2019-11-25 20:12:33 +02:00
Richard Lewis
2d8417cd8b Patch changelog html in Vue. 2019-11-25 20:12:33 +02:00
Pavel Djundik
cd36555b63 Import socket in changelog 2019-11-25 20:12:32 +02:00
Richard Lewis
ef500f12a1 Implement changelog in Vue. 2019-11-25 20:12:32 +02:00
Richard Lewis
055ba5caff Remove sidebar wrapper div. 2019-11-25 20:12:31 +02:00
Richard Lewis
b95f89c4c2 Implement version checker in Vue. 2019-11-25 20:12:31 +02:00
Richard Lewis
2b602ca333 Move slideout menu logic to Vue. 2019-11-25 20:12:31 +02:00
Richard Lewis
ee92de0ff7 Fix changing theme color and properly sync settings. 2019-11-25 20:12:30 +02:00
Richard Lewis
b5f2e7f0cc Fix lint and format with prettier. 2019-11-25 20:12:30 +02:00
Richard Lewis
e0ec340de8 Fix oversights during rebase. 2019-11-25 20:12:29 +02:00
Richard Lewis
b994ecd1f1 Fix hash navigation for sidebar footer buttons. 2019-11-25 20:12:29 +02:00
Richard Lewis
addd4124bf Close sidebar when opening settings, help etc. 2019-11-25 20:12:29 +02:00
Richard Lewis
7fd48d8155 Fix enabling and disabling push notifications. 2019-11-25 20:12:28 +02:00
Richard Lewis
467ebab31f Move most side bar and user list interactions to vue. 2019-11-25 20:12:28 +02:00
Richard Lewis
e73bf1e9a7 Move closeChan functionality to vue. 2019-11-25 20:12:27 +02:00
Richard Lewis
5b17a2fbe4 Port session list to vue. 2019-11-25 20:12:27 +02:00
Richard Lewis
111beb5f12 Run updateSetting from Settings component and get rid of unused code. 2019-11-25 20:12:26 +02:00
Richard Lewis
2ef3e3e5b4 Add success: false to change-password error emits. 2019-11-25 20:12:26 +02:00
Richard Lewis
6c10a2a6cf Port part of the settings functionality to vue. 2019-11-25 20:12:26 +02:00
Richard Lewis
08635beb61 Fix lint 2019-11-25 20:12:25 +02:00
Richard Lewis
5a3ad194e8 Move connect and network edit views to vue. 2019-11-25 20:12:25 +02:00
Richard Lewis
c4a3108dc0 Move activeWindow to vuex. 2019-11-25 20:12:24 +02:00
Richard Lewis
0da059118d Move isNotified to vuex. 2019-11-25 20:12:24 +02:00
Richard Lewis
69cb891b1a Add vuex and move isConnected to vuex state. 2019-11-25 20:12:23 +02:00
Richard Lewis
e71360ad39 Move sidebar to its own component. 2019-11-25 20:12:23 +02:00
Pavel Djundik
3f7889e534 Move changelog window to Vue 2019-11-25 20:12:22 +02:00
Pavel Djundik
70d9d8d226 Move help window to Vue 2019-11-25 20:12:22 +02:00
Pavel Djundik
71f54f6a5d Move some settings to Vue 2019-11-25 20:12:22 +02:00
Pavel Djundik
09e12affe8 Begin moving windows to Vue 2019-11-25 20:12:21 +02:00
Pavel Djundik
bdb0a2efca
Merge pull request #3530 from thelounge/xpaw/cheerio
Bump cheerio to latest version
2019-11-25 20:11:51 +02:00
Pavel Djundik
98f75a5a1c Upgrade yarn.lock 2019-11-25 18:08:46 +02:00
Pavel Djundik
bd2a6be257 Bump cheerio to latest version 2019-11-25 17:58:04 +02:00
Pavel Djundik
72b0edabf9
Merge pull request #3528 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.7.0
2019-11-23 16:27:54 +02:00
Renovate Bot
9fe218a625
Update dependency eslint-config-prettier to v6.7.0 2019-11-23 10:41:41 +00:00
Pavel Djundik
f614ebd712
Merge pull request #3529 from thelounge/renovate/husky-3.x
Update dependency husky to v3.1.0
2019-11-23 12:40:51 +02:00
Pavel Djundik
1a53635d1a
Merge pull request #3527 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.7.0
2019-11-23 12:40:46 +02:00
Pavel Djundik
83648c0571
Merge pull request #3526 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.7.4
2019-11-23 12:40:37 +02:00
Pavel Djundik
8e1ce206e1
Merge pull request #3525 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.19.2
2019-11-23 12:40:29 +02:00
Renovate Bot
3c0754e6df
Update dependency husky to v3.1.0 2019-11-23 04:52:50 +00:00
Renovate Bot
1b47d0fe90
Update dependency eslint to v6.7.0 2019-11-23 02:51:29 +00:00
Renovate Bot
b90db81025
Update babel monorepo to v7.7.4 2019-11-23 02:51:15 +00:00
Renovate Bot
2b60730532
Update dependency yarn to v1.19.2 2019-11-22 13:58:03 +00:00
Pavel Djundik
c64a8728b5
Merge pull request #3520 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.6.0
2019-11-18 12:11:25 +02:00
Renovate Bot
3cbf67bacb
Update dependency eslint-config-prettier to v6.6.0 2019-11-17 00:40:58 +00:00
Pavel Djundik
f51bb4ea65
Merge pull request #3517 from thelounge/renovate/stylelint-12.x
Update dependency stylelint to v12
2019-11-16 19:20:23 +02:00
Pavel Djundik
f0d37d7e08
Merge pull request #3519 from thelounge/renovate/ldapjs-2.x
Update dependency ldapjs to v2.0.0-pre.3
2019-11-16 19:20:16 +02:00
Renovate Bot
2c280685ef
Update dependency ldapjs to v2.0.0-pre.3 2019-11-16 15:57:26 +00:00
Renovate Bot
67a84fe2f1
Update dependency stylelint to v12 2019-11-16 12:31:19 +00:00
Pavel Djundik
6a75ab3f27
Merge pull request #3516 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.11
2019-11-16 11:14:35 +02:00
Pavel Djundik
b8ae278fba
Merge pull request #3514 from thelounge/renovate/eslint-plugin-vue-6.x
Update dependency eslint-plugin-vue to v6.0.1
2019-11-16 11:14:27 +02:00
Renovate Bot
7a34c661cf
Update dependency mochapack to v1.1.11 2019-11-16 02:26:44 +00:00
Renovate Bot
20d40d2a32
Update dependency eslint-plugin-vue to v6.0.1 2019-11-16 00:27:12 +00:00
Pavel Djundik
aaedaffa83
Merge pull request #3513 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.25
2019-11-15 21:26:35 +02:00
Renovate Bot
59dd897099
Update dependency mime-types to v2.1.25 2019-11-12 15:56:23 +00:00
Pavel Djundik
586ceacd2a
Merge pull request #3512 from thelounge/renovate/commander-4.x
Update dependency commander to v4.0.1
2019-11-11 14:47:22 +02:00
Renovate Bot
3471413a00 Update dependency commander to v4.0.1 2019-11-11 14:42:47 +02:00
Pavel Djundik
1410256e42
Merge pull request #3489 from thelounge/xpaw/fix-3221
Enable some user commands for LDAP
2019-11-11 12:01:48 +02:00
Pavel Djundik
74fd296d61
Merge pull request #3490 from thelounge/xpaw/showinactive-fix
Fix potential issue of history not loading when `showInActive` is the first message
2019-11-11 12:01:41 +02:00
Pavel Djundik
36002757be
Merge pull request #3509 from thelounge/renovate/chalk-3.x
Update dependency chalk to v3
2019-11-11 12:01:33 +02:00
Pavel Djundik
a78a7fbc92
Merge pull request #3511 from thelounge/renovate/prettier-1.x
Update dependency prettier to v1.19.1
2019-11-11 12:01:22 +02:00
Renovate Bot
b26b73e994
Update dependency prettier to v1.19.1 2019-11-09 12:43:30 +00:00
Renovate Bot
1f2e69a550
Update dependency chalk to v3 2019-11-09 10:37:26 +00:00
Pavel Djundik
3d9f185494
Merge pull request #3510 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.9
2019-11-09 12:36:35 +02:00
Renovate Bot
d84a2dbecc
Update dependency mochapack to v1.1.9 2019-11-09 10:09:22 +00:00
Pavel Djundik
b550591262
Merge pull request #3501 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.5.2
2019-11-09 11:18:05 +02:00
Pavel Djundik
17b2d2fc32
Merge pull request #3506 from thelounge/renovate/prettier-1.x
Update dependency prettier to v1.19.0
2019-11-09 11:17:57 +02:00
Pavel Djundik
a13bcb8e93 Format prettier after update 2019-11-09 10:55:50 +02:00
Renovate Bot
f87bb85f37
Update dependency prettier to v1.19.0 2019-11-09 08:52:09 +00:00
Renovate Bot
38dd077bdf
Update dependency irc-framework to v4.5.2 2019-11-09 08:51:59 +00:00
Pavel Djundik
295ed871c7
Merge pull request #3503 from thelounge/renovate/babel-monorepo
Update babel monorepo
2019-11-09 10:51:08 +02:00
Pavel Djundik
86f3baae90
Merge pull request #3504 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.0.5
2019-11-09 10:51:01 +02:00
Pavel Djundik
7ff508ca4e
Merge pull request #3505 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.8
2019-11-09 10:50:53 +02:00
Pavel Djundik
d3ccf17953
Merge pull request #3507 from thelounge/renovate/pretty-quick-2.x
Update dependency pretty-quick to v2.0.1
2019-11-09 10:50:47 +02:00
Pavel Djundik
f98a70d58d
Merge pull request #3508 from thelounge/renovate/eslint-plugin-vue-6.x
Update dependency eslint-plugin-vue to v6
2019-11-09 10:50:39 +02:00
Renovate Bot
de25fdbf87
Update dependency eslint-plugin-vue to v6 2019-11-09 02:09:03 +00:00
Renovate Bot
89e14d6ddc
Update dependency pretty-quick to v2.0.1 2019-11-09 02:08:49 +00:00
Renovate Bot
1822a67ef1
Update dependency mochapack to v1.1.8 2019-11-09 01:44:39 +00:00
Renovate Bot
0f3a088404
Update dependency copy-webpack-plugin to v5.0.5 2019-11-09 00:00:29 +00:00
Renovate Bot
561cb5cfa8
Update babel monorepo 2019-11-09 00:00:15 +00:00
Pavel Djundik
874385814d
Merge pull request #3502 from thelounge/webpack-hmr
Add webpack hot module reloading for development
2019-11-08 17:26:10 +02:00
Pavel Djundik
61f86b1557
Merge pull request #2821 from Raqbit/show-link-filesize
Add file size to link preview
2019-11-08 16:53:56 +02:00
Tim Miller-Williams
19d8178606 Add webpack hot module reloading for development
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-08 15:02:44 +02:00
Raqbit
95cc9a47fb Add file size to link preview 2019-11-07 16:58:28 +01:00
Pavel Djundik
8a224809dd
Merge pull request #3498 from MiniDigger/feature/package-versions
Print package versions on startup
2019-11-07 11:32:43 +02:00
MiniDigger
6f8364b1dd Print package versions on startup 2019-11-06 18:02:28 +01:00
Pavel Djundik
901d96c8cc
Merge pull request #3494 from thelounge/xpaw/remove-away-chan
Remove away messages from channels
2019-11-05 12:43:43 +02:00
Pavel Djundik
3ed54a3e11 Remove away/back condense as it won't be in channels 2019-11-05 12:37:55 +02:00
Pavel Djundik
39213bc4e7
Merge pull request #3493 from thelounge/xpaw/tooltips-import
Import primer-tooltips css
2019-11-05 12:35:06 +02:00
Pavel Djundik
c62305039e
Merge pull request #3496 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.5.1
2019-11-04 16:33:54 +02:00
Renovate Bot
b7b3717e3b
Update dependency irc-framework to v4.5.1 2019-11-04 14:21:47 +00:00
Pavel Djundik
14c0e4071a
Merge pull request #3491 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.10
2019-11-03 20:24:53 +02:00
Pavel Djundik
0ede916b78
Merge pull request #3492 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.7.2
2019-11-03 20:24:46 +02:00
Pavel Djundik
14c2cf6b0b Remove away message from channels
Fixes #3026
2019-11-02 16:53:41 +02:00
Pavel Djundik
79e0558b73 Add some tests for built css 2019-11-02 12:53:38 +02:00
Pavel Djundik
48713428b7 Import primer-tooltips css 2019-11-02 12:45:41 +02:00
Renovate Bot
d5224a9d01
Update dependency vue-loader to v15.7.2 2019-11-02 08:29:51 +00:00
Renovate Bot
1de39524f7
Update dependency webpack-cli to v3.3.10 2019-11-02 01:31:07 +00:00
Pavel Djundik
064d36a6cc
Merge pull request #3488 from thelounge/renovate/commander-4.x
Update dependency commander to v4
2019-11-01 19:56:54 +02:00
Pavel Djundik
adef07f6d8
Merge pull request #3487 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.4.0
2019-11-01 19:56:46 +02:00
Renovate Bot
aaf2a563c8
Update dependency file-type to v12.4.0 2019-11-01 15:26:34 +00:00
Pavel Djundik
75eb812f05 Fix potential issue of history not loading when showInActive is set 2019-11-01 16:43:55 +02:00
Pavel Djundik
959ec5b598
Merge pull request #3471 from MiniDigger/feature/plugin-messages
Add message type for plugins
2019-11-01 16:41:41 +02:00
Pavel Djundik
a35675ddc1
Merge pull request #3449 from thelounge/xpaw/postcss
Use postcss to optimize css
2019-11-01 16:40:13 +02:00
Pavel Djundik
5b3399f95a Use postcss to optimize css 2019-11-01 13:47:18 +02:00
Pavel Djundik
e58a895293 Enable some user commands for LDAP
Fixes #3221
2019-11-01 13:37:32 +02:00
Pavel Djundik
ddebb22afe
Merge pull request #3482 from thelounge/xpaw/fix-3219
Load existing users on startup when LDAP is enabled
2019-11-01 13:32:24 +02:00
Pavel Djundik
fb250682a1
Merge pull request #3483 from thelounge/xpaw/improve-user-startup
Improvements to network connections on startup
2019-11-01 13:26:24 +02:00
Pavel Djundik
eb971a7d23
Merge pull request #3485 from thelounge/xpaw/upload-baseurl
Allow configuring base url for uploads
2019-11-01 13:16:13 +02:00
Pavel Djundik
1f2ca91d89
Merge pull request #3486 from thelounge/xpaw/firefox-copy-hack
Disable copy hack in Firefox
2019-11-01 13:15:23 +02:00
Pavel Djundik
e09599aeae Fix running commands 2019-11-01 12:51:57 +02:00
Renovate Bot
32e86dc699
Update dependency commander to v4 2019-11-01 10:11:28 +00:00
Pavel Djundik
97cfd1a2bc Disable copy hack in Firefox 2019-10-31 16:49:09 +02:00
Pavel Djundik
372f9f7ce4
Merge pull request #3345 from Jay2k1/patch-1
improve RTL text support
2019-10-31 16:32:01 +02:00
Pavel Djundik
6c57339668 Allow configure base url for uploads
Fixes #3484
2019-10-31 13:21:22 +02:00
Pavel Djundik
a0c2495c42 Improvements to network connections on startup 2019-10-31 11:31:37 +02:00
Pavel Djundik
fe4e0343a4 Load existing users on startup when LDAP is enabled
Fixes #3219
2019-10-31 11:01:44 +02:00
Pavel Djundik
d8a6b137fe
Merge pull request #3450 from thelounge/xpaw/renovate-config
Create devDependencies update prs on weekends
2019-10-29 12:04:28 +02:00
Pavel Djundik
64efa0cf7b
Merge pull request #3480 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.5.0
2019-10-29 12:04:08 +02:00
Renovate Bot
4d55614db1
Update dependency irc-framework to v4.5.0 2019-10-29 00:12:39 +00:00
Pavel Djundik
27a06b533c
Merge pull request #3477 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.5.0
2019-10-28 12:54:41 +02:00
Renovate Bot
479d2eadf0
Update dependency eslint-config-prettier to v6.5.0 2019-10-28 10:42:11 +00:00
Pavel Djundik
59e37cf73d
Merge pull request #3476 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.6.0
2019-10-28 12:41:33 +02:00
Renovate Bot
46e6b7282e
Update dependency eslint to v6.6.0 2019-10-28 10:23:57 +00:00
Pavel Djundik
e26abb07fb v3.3.0 2019-10-28 12:22:20 +02:00
Pavel Djundik
0e5d64e027 Add changelog entry for v3.3.0 2019-10-28 12:21:58 +02:00
Pavel Djundik
298aa4c664
Merge pull request #3475 from thelounge/astorije/badges
Make badges a little more consistent with each other
2019-10-25 10:29:46 +03:00
Jérémie Astori
8f46f101b8
Make badges a little more consistent with each other 2019-10-25 00:01:24 -04:00
Jay2k1
c89aea3c1e add bidi support to messages, actions, previews etc 2019-10-24 16:53:29 +02:00
Pavel Djundik
2aa5ed44ad v3.3.0-rc.2 2019-10-23 12:48:06 +03:00
Pavel Djundik
0c97a8e48e
Add changelog entry for v3.3.0-rc.2 2019-10-23 12:47:48 +03:00
Pavel Djundik
c72fce75de
Merge pull request #3473 from thelounge/xpaw/hide-user-load-log
Hide user loaded message in tests
2019-10-23 12:47:11 +03:00
Pavel Djundik
49fb6cc049 Hide user loaded message in tests 2019-10-23 12:42:01 +03:00
Pavel Djundik
5ba5505ba4
Merge pull request #3470 from thelounge/xpaw/first-run-crash
Do not crash on first run due to config.js not existing
2019-10-23 12:33:33 +03:00
Pavel Djundik
3df6e00b70
Merge pull request #3467 from thelounge/xpaw/fix-upload-init
Fix uploader being initialized more than once
2019-10-23 12:10:03 +03:00
MiniDigger
dbec8330ce Pass package info around so it can be used as identifier 2019-10-22 20:03:54 +02:00
MiniDigger
8f7bee8dd3 Add icon to message 2019-10-22 19:38:13 +02:00
Pavel Djundik
8379a46c53
Merge pull request #3472 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.4.1
2019-10-22 20:15:00 +03:00
Renovate Bot
41b78f1ae2
Update dependency web-push to v3.4.1 2019-10-22 17:02:24 +00:00
MiniDigger
19d69ba4c3 Add message type for plugins 2019-10-22 18:44:05 +02:00
Pavel Djundik
41e5090fb0 Do not crash on first run due to config.js not existing 2019-10-22 15:00:05 +03:00
Pavel Djundik
5595b17060
Merge pull request #3468 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.3.1
2019-10-22 11:44:18 +03:00
Renovate Bot
7988a0d006
Update dependency file-type to v12.3.1 2019-10-22 04:06:49 +00:00
Pavel Djundik
63c638e9ad Fix uploader being initialized more than once 2019-10-21 18:57:01 +03:00
Pavel Djundik
d237647f8a v3.3.0-rc.1 2019-10-21 18:01:05 +03:00
Pavel Djundik
c47dd965c9
Add changelog entry for v3.3.0-rc.1 2019-10-21 18:00:43 +03:00
Pavel Djundik
d4198e4360
Merge pull request #3461 from thelounge/xpaw/reconnect-unread
Synchronize open channel on client on reconnection
2019-10-21 17:59:34 +03:00
Pavel Djundik
c4a637ab49
Merge pull request #3455 from thelounge/xpaw/fix-changelog-monorepos
Extract updated packages from pull request body
2019-10-21 15:59:18 +03:00
Pavel Djundik
28949fb5e2
Merge pull request #3458 from thelounge/xpaw/remove-warn
Do not print "no packages" warning when opening help on client
2019-10-21 15:59:11 +03:00
Pavel Djundik
2273c913ac
Merge pull request #3451 from thelounge/xpaw/heading-contrast
Increase contrast of headers in windows
2019-10-21 11:01:47 +03:00
Pavel Djundik
00e59000fd
Merge pull request #3460 from thelounge/xpaw/history-reconnect
Fix history not loading in certain cases after reconnect
2019-10-21 11:01:41 +03:00
Pavel Djundik
ee91217d98
Merge pull request #3453 from thelounge/xpaw/sync-users-reconnect
Synchronize user list correctly on reconnection
2019-10-21 11:01:33 +03:00
Pavel Djundik
93cb395b75
Merge pull request #3466 from thelounge/xpaw/menu-styles
Update context and auto complete menu styles
2019-10-20 22:28:10 +03:00
Pavel Djundik
d020875556
Merge pull request #3465 from thelounge/xpaw/bump-ecma-version
Bump ecmaVersion to 2018
2019-10-20 22:28:05 +03:00
Pavel Djundik
2447c00a61
Merge pull request #3462 from thelounge/xpaw/rm-david
Update badges in readme
2019-10-20 22:27:58 +03:00
Pavel Djundik
6d4ee6e76a
Merge pull request #3463 from thelounge/xpaw/travis
Remove Windows/OSX builds from Travis
2019-10-20 22:27:50 +03:00
Pavel Djundik
0daf985dff
Merge pull request #3464 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.2.2
2019-10-20 22:27:44 +03:00
Pavel Djundik
4e17067a07 Update context and auto complete menu styles 2019-10-20 00:36:40 +03:00
Pavel Djundik
f22cfe0547 Bump ecmaVersion to 2018 2019-10-20 00:00:15 +03:00
Renovate Bot
ddfadcd326
Update dependency mocha to v6.2.2 2019-10-18 20:12:09 +00:00
Pavel Djundik
5dfd1b8809 Update badges in readme
Remove david-dm badge
2019-10-17 16:18:15 +03:00
Pavel Djundik
ed8f4c6c57
Update next node version in travis 2019-10-17 16:17:26 +03:00
Pavel Djundik
4d34a837a5
Remove Windows/OSX builds from Travis 2019-10-17 16:15:45 +03:00
Pavel Djundik
1ca16816c2 Synchronize open channel on client on reconnection 2019-10-17 13:54:30 +03:00
Pavel Djundik
ebfecc3e9d Fix client not loading messages after reconnect in channels with less than 100 total messages 2019-10-17 13:27:15 +03:00
Pavel Djundik
51147f35b2 Do not try loading history while disconnected 2019-10-17 12:38:46 +03:00
Pavel Djundik
8aa8768dcc Do not print no packages warning when opening help on client 2019-10-16 17:07:25 +03:00
Pavel Djundik
e3e0495a9f Extract updated packages from pull request body
Fixes getting package list when PR updates multiple packages (monorepos)
2019-10-15 21:30:43 +03:00
Jos Ahrens
8c3c426998
Automatically apply GitHub labels on issue creation 2019-10-15 17:48:36 +00:00
Pavel Djundik
ee4de6a871
Merge pull request #3452 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.2
2019-10-15 20:35:55 +03:00
Pavel Djundik
7687c90edc Synchronize user list correctly on reconnection 2019-10-15 20:33:03 +03:00
Renovate Bot
5027b9bf47
Update dependency webpack to v4.41.2 2019-10-15 13:16:39 +00:00
Pavel Djundik
ba517bbac9 Increase contrast of headers in windows 2019-10-14 17:30:35 +03:00
Pavel Djundik
44d207f5f5 Create devDependencies update prs on weekends 2019-10-14 12:28:05 +03:00
Pavel Djundik
e66f47904e
Merge pull request #3448 from thelounge/renovate/pretty-quick-2.x
Update dependency pretty-quick to v2
2019-10-13 11:39:47 +03:00
Pavel Djundik
b0264f0725
Merge pull request #3447 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.9
2019-10-13 11:39:41 +03:00
Renovate Bot
dedc70d3ff
Update dependency pretty-quick to v2 2019-10-13 04:30:17 +00:00
Renovate Bot
13f728e2c0
Update dependency husky to v3.0.9 2019-10-13 00:14:10 +00:00
Pavel Djundik
76ff5dfef5
Merge pull request #3441 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.19.1
2019-10-11 16:12:20 +03:00
Pavel Djundik
742cf433d9
Merge pull request #3440 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.4.0
2019-10-11 16:12:13 +03:00
Pavel Djundik
2dfebda8a1
Merge pull request #3442 from thelounge/renovate/babel-monorepo
Update babel monorepo
2019-10-11 16:12:06 +03:00
Pavel Djundik
ebd894e915
Merge pull request #3443 from thelounge/renovate/stylelint-11.x
Update dependency stylelint to v11.1.1
2019-10-11 16:11:58 +03:00
Pavel Djundik
bc3b1875cd
Merge pull request #3445 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.1
2019-10-11 16:11:51 +03:00
Renovate Bot
b0969d9856
Update dependency webpack to v4.41.1 2019-10-11 11:55:00 +00:00
Renovate Bot
4f1fe2b6f1
Update dependency stylelint to v11.1.1 2019-10-10 15:27:20 +00:00
Renovate Bot
a39a49f711
Update babel monorepo 2019-10-10 14:35:39 +00:00
Renovate Bot
5fead0d909
Update dependency yarn to v1.19.1 2019-10-10 07:44:12 +00:00
Renovate Bot
b0cff121ec
Update dependency eslint-config-prettier to v6.4.0 2019-10-10 07:43:54 +00:00
Pavel Djundik
4c684ecad4
Merge pull request #3438 from FryDay/issue-1154
Prefix channel before join
2019-10-10 10:06:47 +03:00
Pavel Djundik
9c6c03b23a
Merge pull request #3436 from thelounge/xpaw/random-port
Let OS generate a port in link prefetch tests
2019-10-10 10:06:11 +03:00
Pavel Djundik
b3a13f1aa5
Merge pull request #3416 from thelounge/xpaw/add-user-chown
Set correct file owner for created user files and warn about it
2019-10-10 10:05:45 +03:00
Jordan Day
493f9b1b6c Prefix channel before join 2019-10-05 14:12:22 -05:00
Pavel Djundik
8c19613bce
Merge pull request #3437 from FryDay/issue-1801
Allow tab completion in middle of input
2019-10-04 18:53:03 +03:00
Jordan Day
037fa6d114 Allow tab completion in middle of input 2019-10-04 10:34:07 -05:00
Pavel Djundik
c39f0d01e6
Merge pull request #3435 from FryDay/issue-3139
Key condensed messages by first message in array
2019-10-04 16:44:19 +03:00
Jordan Day
deb5d2d090 Key condensed messages by first message in array 2019-10-04 08:37:12 -05:00
Pavel Djundik
390a0b8e83 Let OS generate a port in link prefetch tests 2019-10-04 14:19:04 +03:00
Pavel Djundik
75f7666548
Merge pull request #3432 from thelounge/mcinkay/1537-plugin-files
Add public files for plugins
2019-10-03 16:30:09 +03:00
Pavel Djundik
48060e9743
Merge pull request #3425 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.8
2019-10-03 16:15:14 +03:00
Pavel Djundik
a552a36a4a
Merge pull request #3426 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.19.0
2019-10-03 16:15:06 +03:00
Pavel Djundik
577b1a5952
Merge pull request #3427 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.5.1
2019-10-03 16:14:59 +03:00
Pavel Djundik
a26976918b
Merge pull request #3428 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.2.1
2019-10-03 16:14:53 +03:00
Pavel Djundik
e7f1cff44d
Merge pull request #3431 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.23.2
2019-10-03 16:14:44 +03:00
Al McKinlay
f163e20a93 Add public files for plugins 2019-10-02 10:33:08 +01:00
Renovate Bot
e3abd5db48
Update dependency vuedraggable to v2.23.2 2019-10-02 03:22:19 +00:00
Renovate Bot
59ad41aea4
Update dependency husky to v3.0.8 2019-10-02 01:53:14 +00:00
Renovate Bot
667f203476
Update dependency eslint to v6.5.1 2019-10-01 01:55:12 +00:00
Renovate Bot
7d53aa145a
Update dependency mocha to v6.2.1 2019-09-29 13:54:05 +00:00
Renovate Bot
086237a06a
Update dependency yarn to v1.19.0 2019-09-28 16:43:10 +00:00
Pavel Djundik
048a272a61
Merge pull request #3424 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.4.0
2019-09-27 15:49:04 +03:00
Pavel Djundik
b115f07c35
Merge pull request #3413 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.11.2
2019-09-27 15:48:57 +03:00
Renovate Bot
3bfd84ad5d
Update dependency web-push to v3.4.0 2019-09-27 12:21:02 +00:00
Renovate Bot
28f6971a27
Update dependency @fortawesome/fontawesome-free to v5.11.2 2019-09-26 12:02:14 +00:00
Pavel Djundik
7827d16571
Merge pull request #3417 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.41.0
2019-09-26 15:01:28 +03:00
Pavel Djundik
a81a1e6c44
Merge pull request #3422 from thelounge/renovate/commander-3.x
Update dependency commander to v3.0.2
2019-09-26 15:00:53 +03:00
Renovate Bot
71841bf721
Update dependency commander to v3.0.2 2019-09-26 09:13:06 +00:00
Pavel Djundik
5d13e4c97d Check config owner synchronously
Fixes async warning printing during prompt when adding a user
2019-09-24 22:06:04 +03:00
Renovate Bot
d6abc96a30
Update dependency webpack to v4.41.0 2019-09-24 16:19:10 +00:00
Pavel Djundik
a24c03a35c Set correct file owner for created user files 2019-09-24 17:42:14 +03:00
Pavel Djundik
fb8290399f
Merge pull request #3410 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.23.1
2019-09-24 14:00:37 +03:00
Pavel Djundik
d90b3a5f0f
Merge pull request #3411 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.5
2019-09-24 14:00:31 +03:00
Pavel Djundik
36508faa2e
Merge pull request #3412 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.5.0
2019-09-24 14:00:25 +03:00
Pavel Djundik
f8bc2ec285
Merge pull request #3414 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.6.2
2019-09-24 14:00:16 +03:00
Renovate Bot
4dd0f71843
Update babel monorepo to v7.6.2 2019-09-23 21:37:17 +00:00
Renovate Bot
a2d636ff2d
Update dependency sinon to v7.5.0 2019-09-23 15:23:17 +00:00
Renovate Bot
a69bb80500
Update dependency mochapack to v1.1.5 2019-09-23 07:39:18 +00:00
Renovate Bot
d4e89127d0
Update dependency vuedraggable to v2.23.1 2019-09-21 15:20:33 +00:00
Pavel Djundik
f293bdbdc3
Merge pull request #3408 from thelounge/renovate/socket.io-packages
Update socket.io packages to v2.3.0
2019-09-20 13:55:52 +03:00
Renovate Bot
faf684576c
Update socket.io packages to v2.3.0 2019-09-20 10:26:43 +00:00
Pavel Djundik
2b4ee0d6c6
Merge pull request #3407 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.11.1
2019-09-19 13:47:14 +03:00
Renovate Bot
13e4af3600
Update dependency @fortawesome/fontawesome-free to v5.11.1 2019-09-19 08:39:14 +00:00
Pavel Djundik
bfa97390be
Merge pull request #3406 from thelounge/xpaw/package-load-stack
Print error and stacktrace when package fails to load
2019-09-19 11:37:18 +03:00
Pavel Djundik
b96e5cc042 Print error and stacktrace when package fails to load 2019-09-17 19:57:21 +03:00
Pavel Djundik
a658d768d2
Merge pull request #3405 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.9
2019-09-17 12:40:09 +03:00
Renovate Bot
fe0dc97197
Update dependency webpack-cli to v3.3.9 2019-09-17 08:28:20 +00:00
Pavel Djundik
eba043d0b3
Merge pull request #3404 from thelounge/xpaw/keepnick
Implement keep nick when client gets "nick in use" on connection
2019-09-17 11:19:14 +03:00
Pavel Djundik
7e27f2d058
Merge pull request #3364 from thelounge/xpaw/active-chan-cursor
Use default cursor for active channels
2019-09-17 11:00:48 +03:00
Pavel Djundik
600115b8d1 Implement keep nick 2019-09-16 17:12:05 +03:00
Pavel Djundik
d09a35b129 Use default cursor for active channels 2019-09-16 11:30:30 +03:00
Pavel Djundik
c4236e0e12
Merge pull request #3391 from thelounge/xpaw/fix-3381
Move back to ldapjs dependency
2019-09-16 11:18:03 +03:00
Pavel Djundik
cee3a50ddc Move back to ldapjs dependency
Fixes #3381
2019-09-15 22:42:27 +03:00
Pavel Djundik
eb1d9079a3
Merge pull request #3403 from thelounge/renovate/stylelint-config-standard-19.x
Update dependency stylelint-config-standard to v19
2019-09-15 22:40:16 +03:00
Pavel Djundik
526cc126a0
Merge pull request #3397 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.3.0
2019-09-15 22:40:10 +03:00
Renovate Bot
34b0985587
Update dependency stylelint-config-standard to v19 2019-09-15 18:26:41 +00:00
Renovate Bot
edc3e498e6
Update dependency eslint-config-prettier to v6.3.0 2019-09-15 18:26:29 +00:00
Pavel Djundik
0052390c4c
Merge pull request #3386 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.5
2019-09-15 21:25:44 +03:00
Pavel Djundik
c728bcb95e
Merge pull request #3400 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.40.2
2019-09-15 21:25:36 +03:00
Pavel Djundik
860ea0b3f6
Merge pull request #3401 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.4.0
2019-09-15 21:25:30 +03:00
Pavel Djundik
959f2a7786
Merge pull request #3402 from thelounge/renovate/stylelint-11.x
Update dependency stylelint to v11
2019-09-15 21:25:22 +03:00
Renovate Bot
9a07a8f96c
Update dependency stylelint to v11 2019-09-15 14:33:10 +00:00
Renovate Bot
bb604f2a2b
Update dependency eslint to v6.4.0 2019-09-14 01:50:04 +00:00
Renovate Bot
5d873d42a3
Update dependency webpack to v4.40.2 2019-09-13 14:35:44 +00:00
Renovate Bot
3b1c3f9c13
Update dependency husky to v3.0.5 2019-09-07 20:46:43 +00:00
Pavel Djundik
0e6252ef4d
Merge pull request #3395 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.6.0
2019-09-07 23:45:45 +03:00
Pavel Djundik
b89aaf1030
Merge pull request #3394 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.8
2019-09-07 23:45:39 +03:00
Renovate Bot
8745910452
Update babel monorepo to v7.6.0 2019-09-06 17:40:42 +00:00
Renovate Bot
0567c38a4c
Update dependency webpack-cli to v3.3.8 2019-09-06 08:30:01 +00:00
Pavel Djundik
07da692c2b
Merge pull request #3392 from thelounge/node10
Bump minimum node version to v10
2019-09-06 11:29:14 +03:00
Pavel Djundik
a564d2f8cb
Merge pull request #3393 from thelounge/github-ci
Add GitHub actions for CI
2019-09-06 11:25:36 +03:00
Pavel Djundik
9eff3b51d7 Allow extra slash on Windows in expandHome tests
Github CI on Windows ends up formatting it as 'd:\\tmp', this causes no issues besides the failing test
2019-09-04 22:51:58 +03:00
Pavel Djundik
c546279d89 Setup github actions CI 2019-09-04 22:51:58 +03:00
Pavel Djundik
25dc6b52b4
Merge pull request #3388 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.2.0
2019-09-04 22:50:57 +03:00
Pavel Djundik
5a94727d79 Bump minimum node version to v10 2019-09-04 22:50:25 +03:00
Renovate Bot
3f52e15444
Update dependency eslint-config-prettier to v6.2.0 2019-09-04 10:21:23 +00:00
Pavel Djundik
f62f92b36f
Merge pull request #3383 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.39.3
2019-09-04 13:20:11 +03:00
Pavel Djundik
70772ec92d
Merge pull request #3384 from thelounge/renovate/commander-3.x
Update dependency commander to v3.0.1
2019-09-04 13:19:59 +03:00
Pavel Djundik
5e4b8605b2
Merge pull request #3389 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.3.0
2019-09-04 13:19:54 +03:00
Pavel Djundik
ecb0bb7590
Merge pull request #3387 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.4.2
2019-09-04 13:19:48 +03:00
Pavel Djundik
d902a0ad67
Merge pull request #3385 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.3.0
2019-09-04 13:19:39 +03:00
Renovate Bot
9f76b83fa7
Update dependency file-type to v12.3.0 2019-09-03 16:11:00 +00:00
Renovate Bot
d35b0fdb34
Update dependency sinon to v7.4.2 2019-09-02 11:53:23 +00:00
Renovate Bot
f6b6a9138c
Update dependency eslint to v6.3.0 2019-08-30 20:20:07 +00:00
Renovate Bot
70ac60857c
Update dependency commander to v3.0.1 2019-08-30 08:58:45 +00:00
Renovate Bot
8bb7da8a55
Update dependency webpack to v4.39.3 2019-08-27 12:25:30 +00:00
Pavel Djundik
5ccd6b76c0
Merge pull request #3382 from thelounge/xpaw/upload-fixes
Some fixes in file uploading
2019-08-27 12:21:03 +03:00
Pavel Djundik
6f95e3769d
Merge pull request #3378 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.10.2
2019-08-25 21:25:00 +03:00
Pavel Djundik
05510c0694
Merge pull request #3375 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6.1.0
2019-08-25 21:24:54 +03:00
Pavel Djundik
58ad80c3bb
Merge pull request #3366 from gunnvaldr/patch-1
Adds data-current-channel to #chat-container
2019-08-25 20:38:08 +03:00
Renovate Bot
54c8e5bfc2
Update dependency eslint-config-prettier to v6.1.0 2019-08-25 17:27:10 +00:00
Renovate Bot
c083b2ce19
Update dependency @fortawesome/fontawesome-free to v5.10.2 2019-08-25 17:26:59 +00:00
Pavel Djundik
0939adad0a
Merge pull request #3377 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.4
2019-08-25 20:26:02 +03:00
Pavel Djundik
ccb1595ed3
Merge pull request #3369 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.7
2019-08-25 20:25:56 +03:00
Pavel Djundik
d9844720f9
Merge pull request #3379 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.2.2
2019-08-25 20:25:47 +03:00
Pavel Djundik
554c602230 Do not request upload token if there's an upload in process 2019-08-25 20:23:32 +03:00
Pavel Djundik
04e1e004da Reset upload input so the same file can be selected again 2019-08-25 20:14:46 +03:00
Pavel Djundik
16d070c19e Update error messages for uploads 2019-08-25 20:14:34 +03:00
Renovate Bot
9e8e138359
Update dependency eslint to v6.2.2 2019-08-24 02:47:36 +00:00
Renovate Bot
846ab3ece3
Update dependency mochapack to v1.1.4 2019-08-22 10:05:57 +00:00
Renovate Bot
62ed80010f
Update dependency webpack-cli to v3.3.7 2019-08-21 20:15:43 +00:00
Pavel Djundik
aadfede911
Merge pull request #3365 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.39.2
2019-08-21 23:14:11 +03:00
Pavel Djundik
7615f18536
Merge pull request #3371 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.2.1
2019-08-21 23:13:51 +03:00
Pavel Djundik
cc1620b5c6
Merge pull request #3374 from thelounge/renovate/uuid-3.x
Update dependency uuid to v3.3.3
2019-08-21 23:13:44 +03:00
Pavel Djundik
c4095c28b1
Merge pull request #3370 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.2.0
2019-08-21 23:13:35 +03:00
Pavel Djundik
c244d1b9ed
Merge pull request #3368 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.4
2019-08-21 23:13:25 +03:00
Pavel Djundik
57aa286ab4
Merge pull request #3367 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.1.0
2019-08-21 23:13:09 +03:00
Renovate Bot
4fffb4af2b
Update dependency eslint to v6.2.1 2019-08-20 11:50:08 +00:00
Renovate Bot
0a0626cc5f
Update dependency uuid to v3.3.3 2019-08-19 13:29:38 +00:00
Renovate Bot
3be0285467
Update dependency webpack to v4.39.2 2019-08-19 07:50:03 +00:00
Renovate Bot
b864674e84
Update dependency sqlite3 to v4.1.0 2019-08-19 07:49:52 +00:00
Renovate Bot
4b7fdc85cc
Update dependency husky to v3.0.4 2019-08-19 07:49:42 +00:00
Renovate Bot
2d88116e5a
Update dependency file-type to v12.2.0 2019-08-19 07:49:31 +00:00
Pavel Djundik
4d665b6a5e v3.2.0 2019-08-18 21:53:20 +03:00
Pavel Djundik
7169622d01 Add changelog entry for v3.2.0 2019-08-18 21:52:32 +03:00
Gunnvaldr Pope
2b91bf0374
Adds data-current-channel to #chat-container
Allows for broader customization of CSS per channel(s).
2019-08-13 16:24:34 -05:00
Pavel Djundik
3c9ba130a0 Allow saving github token to a file 2019-08-13 12:43:47 +03:00
Pavel Djundik
9ad785c44e v3.2.0-rc.2 2019-08-13 12:41:59 +03:00
Pavel Djundik
0f72b57d36 Changelog entry for v3.2.0-rc.2 2019-08-13 12:41:19 +03:00
Pavel Djundik
d7dcdd1cd4
Merge pull request #3361 from thelounge/xpaw/unknown-cmd-error
Display an error on unknown command
2019-08-13 10:28:30 +03:00
Pavel Djundik
4753d58c0b Display an error on unknown command 2019-08-12 11:03:52 +03:00
Pavel Djundik
68925a532d
Merge pull request #3360 from thelounge/renovate/commander-3.x
Update dependency commander to v3
2019-08-12 10:48:40 +03:00
Renovate Bot
f4ce7ecd1e
Update dependency commander to v3 2019-08-11 14:50:00 +00:00
Pavel Djundik
aa6475e83d
Merge pull request #3356 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.3
2019-08-11 17:49:29 +03:00
Pavel Djundik
217cfb4701
Merge pull request #3349 from ollipa/ollipa/edit-topic
Add functionality to edit channel topic from the user interface
2019-08-11 17:48:50 +03:00
ollipa
e69e448396 add save button to edit topic input field 2019-08-11 17:34:01 +03:00
ollipa
49652fc40a make channel topic editable from user interface 2019-08-11 15:29:08 +03:00
Renovate Bot
e241d31c15
Update dependency husky to v3.0.3 2019-08-09 17:48:37 +00:00
Pavel Djundik
fc9e20c09d
Merge pull request #3359 from plett/activity-shortcut
Add keybind for cycling to the next unread window
2019-08-09 20:29:05 +03:00
Paul Lettington
c6b19d5144 Add keybind for cycling to the next unread window 2019-08-09 15:16:44 +01:00
Pavel Djundik
b4eb538903
Merge pull request #3347 from thelounge/xpaw/focus-on-special-upd
Open list channel on data updates
2019-08-07 15:16:24 +03:00
Pavel Djundik
51fb42c379
Merge pull request #3352 from thelounge/xpaw/truly-raw
Make /raw actually write to network as-is
2019-08-07 15:15:36 +03:00
Pavel Djundik
d1e7392b97
Merge pull request #3353 from thelounge/renovate/textcomplete-0.x
Update dependency textcomplete to v0.18.0
2019-08-07 15:10:21 +03:00
Pavel Djundik
91f944f5f5
Merge pull request #3355 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.4.1
2019-08-07 15:10:02 +03:00
Renovate Bot
c2c94025f3
Update dependency sinon to v7.4.1 2019-08-06 09:33:42 +00:00
Renovate Bot
8b904fa136
Update dependency textcomplete to v0.18.0 2019-08-06 04:12:54 +00:00
Pavel Djundik
858f8425fd Make /raw actually write to network as-is 2019-08-05 20:16:39 +03:00
Pavel Djundik
96efaed07a Open list channel on data updates 2019-08-04 14:03:04 +03:00
Pavel Djundik
1f27c4fad4 v3.2.0-rc.1 2019-08-04 12:04:56 +03:00
Pavel Djundik
ac2165bdca Add changelog entry for v3.2.0-rc.1 2019-08-04 12:04:43 +03:00
Pavel Djundik
72bebd8681
Merge pull request #3326 from thelounge/xpaw/theme-color
Allow themes to change theme-color
2019-08-03 22:28:20 +03:00
Pavel Djundik
85025a6840
Merge pull request #3329 from thelounge/xpaw/sw-error
Send service worker fetch errors to client
2019-08-03 22:27:53 +03:00
Pavel Djundik
ecb4dd9675
Merge pull request #3335 from thelounge/xpaw/upload-sanity
Handle upload token requesting in a better way
2019-08-03 22:23:20 +03:00
Pavel Djundik
b8948856f3
Merge pull request #3343 from thelounge/xpaw/fix-formatting
Fix formatting hotkeys on non english locales
2019-08-03 22:14:31 +03:00
Pavel Djundik
65713e5509
Merge pull request #3339 from thelounge/xpaw/statusmsg
Parse target group for sent messages when echo-message is not enabled
2019-08-03 22:14:24 +03:00
Pavel Djundik
f4cf33da4b
Merge pull request #3342 from thelounge/xpaw/disable-io-cookie
Disable io cookie
2019-08-03 22:14:15 +03:00
Pavel Djundik
c8819e9a13 Fix formatting hotkeys on non english locales 2019-08-03 14:16:13 +03:00
Pavel Djundik
7bb588be5d
Merge pull request #3341 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.10.1
2019-08-03 12:06:42 +03:00
Pavel Djundik
59d2d6fec8 Disable io cookie
Ref https://github.com/socketio/socket.io/issues/2276
2019-08-03 12:03:02 +03:00
Renovate Bot
914ad9f11a
Update dependency @fortawesome/fontawesome-free to v5.10.1 2019-08-02 19:53:47 +00:00
Pavel Djundik
580d83858c
Merge pull request #3327 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6.5.0
2019-08-02 21:58:59 +03:00
Renovate Bot
5345d84d1f
Update dependency package-json to v6.5.0 2019-08-02 17:12:44 +00:00
Pavel Djundik
db126dc75c
Merge pull request #3328 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.39.1
2019-08-02 20:11:50 +03:00
Pavel Djundik
e0879ed075
Merge pull request #3333 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.0.4
2019-08-02 20:11:36 +03:00
Pavel Djundik
9c7e27ada4
Merge pull request #3330 from thelounge/renovate/semver-6.x
Update dependency semver to v6.3.0
2019-08-02 20:11:20 +03:00
Pavel Djundik
d4a729d316
Merge pull request #3334 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.1.0
2019-08-02 20:11:10 +03:00
Pavel Djundik
1650383846
Merge pull request #3336 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.10.0
2019-08-02 20:10:59 +03:00
Pavel Djundik
b3c9a57d0c
Merge pull request #3337 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.2
2019-08-02 20:10:50 +03:00
Pavel Djundik
734699de5b
Merge pull request #3340 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.3
2019-08-02 20:10:38 +03:00
Renovate Bot
ea8d734fc2
Update dependency webpack to v4.39.1 2019-08-02 12:40:27 +00:00
Renovate Bot
2cdfe5ee7a
Update dependency mochapack to v1.1.3 2019-08-02 10:44:22 +00:00
Pavel Djundik
ad984fa377 Parse target group for sent messages when echo-message is not enabled 2019-08-01 00:16:00 +03:00
Renovate Bot
805a86c67e
Update dependency husky to v3.0.2 2019-07-29 17:22:56 +00:00
Renovate Bot
5f9a706fe0
Update dependency @fortawesome/fontawesome-free to v5.10.0 2019-07-29 15:16:40 +00:00
Pavel Djundik
932d9c809b Handle upload token requesting in a better way 2019-07-29 11:04:33 +03:00
Renovate Bot
e92082de57
Update dependency file-type to v12.1.0 2019-07-26 11:32:30 +00:00
Renovate Bot
ed911ddba4
Update dependency copy-webpack-plugin to v5.0.4 2019-07-26 10:41:26 +00:00
Renovate Bot
8514503fc3
Update dependency semver to v6.3.0 2019-07-23 19:27:55 +00:00
Pavel Djundik
5041e82980 Send service worker fetch errors to client 2019-07-23 15:31:26 +03:00
Pavel Djundik
efa0aeb2c6 Allow themes to change theme-color 2019-07-22 19:50:04 +03:00
Pavel Djundik
526a689e14
Merge pull request #3323 from thelounge/renovate/babel-plugin-istanbul-5.x
Update dependency babel-plugin-istanbul to v5.2.0
2019-07-22 12:01:37 +03:00
Renovate Bot
b7f445ade3
Update dependency babel-plugin-istanbul to v5.2.0 2019-07-21 14:50:38 +00:00
Pavel Djundik
998bdd49aa
Merge pull request #3321 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6.1.0
2019-07-21 10:59:47 +03:00
Renovate Bot
fc979c17f7
Update dependency eslint to v6.1.0 2019-07-21 04:11:04 +00:00
Pavel Djundik
2500602d3b
Merge pull request #3320 from thelounge/xpaw/fix-3309
Fix channel list not working on some touch devices
2019-07-19 22:42:41 +03:00
Pavel Djundik
ba356ae34c
Merge pull request #1873 from thelounge/astorije/outlines
Add custom focus outlines for inputs and green buttons
2019-07-19 16:45:15 +03:00
Jérémie Astori
e246c06c32 Do not silence outline of all elements, and add custom outline where possible
- Tweak outlines
- Consolidate focus shadows between inputs and buttons, apply custom focus to whole page (i.e. on "Join a channel" form), cleanup
- Do not add custom outlines on checkboxes/radios as browsers are not doing this too well
- Apply hover effect on all inputs, not just in `#windows`
2019-07-19 16:12:15 +03:00
Pavel Djundik
fc532be5df
Merge pull request #2760 from thelounge/mcinkay/plugins/show-updates
Add check for outdated packages, and show on the help screen.
2019-07-19 16:06:53 +03:00
Pavel Djundik
d7ff13a41d
Merge pull request #3319 from thelounge/renovate/eslint-config-prettier-6.x
Update dependency eslint-config-prettier to v6
2019-07-19 15:36:17 +03:00
Alistair McKinlay
20816d509d Add check for outdated packages, and show on the help screen. 2019-07-19 13:33:09 +01:00
Pavel Djundik
f40e35515f Remove linebreak-style 2019-07-19 14:44:46 +03:00
Pavel Djundik
a7bdc99d47 Fix channel list not working on some touch devices
Fixes #3309
2019-07-19 14:27:59 +03:00
Renovate Bot
e536730dc1
Update dependency eslint-config-prettier to v6 2019-07-19 10:56:44 +00:00
Al McKinlay
9ef5c6c67e
Set up prettier for JS/Vue files (#3312)
Set up prettier for JS/Vue files
2019-07-19 11:55:55 +01:00
Alistair McKinlay
33de4fb4f4 Add prettier info to CONTRIBUTING.md 2019-07-19 11:30:43 +01:00
Alistair McKinlay
cc7b4e4817 Fix prettier breaking eslint-disable for confirm 2019-07-19 11:27:40 +01:00
Jérémie Astori
2fbdbead55 WIP Improve Prettified Vue code 2019-07-19 11:27:40 +01:00
Alistair McKinlay
133e7bf710 Format js/vue with prettier 2019-07-19 11:27:40 +01:00
Alistair McKinlay
48eeb11391 Set up prettier on js/vue 2019-07-19 11:24:30 +01:00
Pavel Djundik
7e5c2672b2
Merge pull request #3307 from thelounge/xpaw/browser-object
Store ip and language in a separate object in user file
2019-07-19 13:11:20 +03:00
Pavel Djundik
06d3178633
Merge pull request #3317 from thelounge/renovate/lodash-monorepo
Update dependency lodash to v4.17.15
2019-07-19 13:00:00 +03:00
Renovate Bot
19d7333dce
Update dependency lodash to v4.17.15 2019-07-19 08:32:29 +00:00
Pavel Djundik
9f1b9fa310
Merge pull request #3311 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.36.1
2019-07-19 11:30:56 +03:00
Pavel Djundik
ef6c884441
Merge pull request #3313 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.5.5
2019-07-19 11:30:48 +03:00
Pavel Djundik
1922314827
Merge pull request #3316 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.2.0
2019-07-19 11:30:39 +03:00
Pavel Djundik
4371cd6db1
Merge pull request #3315 from thelounge/renovate/husky-3.x
Update dependency husky to v3.0.1
2019-07-19 11:30:31 +03:00
Pavel Djundik
2af6b87369
Merge pull request #3314 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.7.1
2019-07-19 11:30:19 +03:00
Renovate Bot
fe0c9a22da
Update dependency mocha to v6.2.0 2019-07-18 21:56:34 +00:00
Renovate Bot
9003566d5c
Update dependency husky to v3.0.1 2019-07-18 21:37:33 +00:00
Renovate Bot
f5c3111445
Update dependency webpack to v4.36.1 2019-07-18 10:33:51 +00:00
Renovate Bot
3ff71701a4
Update dependency vue-loader to v15.7.1 2019-07-18 10:33:39 +00:00
Renovate Bot
a1c307ee8d
Update babel monorepo to v7.5.5 2019-07-18 10:33:21 +00:00
Pavel Djundik
0ff5a7df67
Merge pull request #3305 from thelounge/xpaw/init-reconnect-state
Merge network/channel objects when reconnecting to keep object references
2019-07-18 12:40:44 +03:00
Pavel Djundik
03233c3f4d
Merge pull request #3310 from thelounge/xpaw/improve-raw
Improve raw messages
2019-07-18 11:58:46 +03:00
Pavel Djundik
803de9a877
Merge pull request #3060 from thelounge/astorije/smaller-prettier
Set up Prettier on HTML, JSON, Markdown, and YAML files
2019-07-17 12:52:52 +03:00
Alistair McKinlay
ab8d819193 Set up Prettier on md, html, json, and yaml 2019-07-17 10:22:30 +01:00
Pavel Djundik
2b1197880d Merge network/channel objects when reconnecting 2019-07-17 12:07:49 +03:00
Pavel Djundik
2741421401
Merge pull request #3306 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.2
2019-07-17 10:44:34 +03:00
Pavel Djundik
701be850b6
Merge pull request #3308 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.8.0
2019-07-17 10:44:18 +03:00
Pavel Djundik
e04bfe39bf Improve raw messages 2019-07-17 10:34:23 +03:00
Renovate Bot
48767d6030
Update dependency mini-css-extract-plugin to v0.8.0 2019-07-16 20:51:08 +00:00
Pavel Djundik
54a4085b68 Store ip and language in a separate object in user file 2019-07-16 13:00:29 +03:00
Renovate Bot
6b70f2a99f
Update dependency mochapack to v1.1.2 2019-07-16 09:09:17 +00:00
Pavel Djundik
01347787b7
Merge pull request #3297 from thelounge/xpaw/better-disable-touch
A better way of disabling sorting on touch devices
2019-07-15 12:46:10 +03:00
Pavel Djundik
ee8228ced2
Merge pull request #3298 from thelounge/renovate/linkify-it-2.x
Update dependency linkify-it to v2.2.0
2019-07-15 10:36:12 +03:00
Pavel Djundik
8b38cbcb52
Merge pull request #3300 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.17.3
2019-07-15 10:36:00 +03:00
Pavel Djundik
442389c544
Merge pull request #3304 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.6
2019-07-15 10:35:51 +03:00
Pavel Djundik
eac4fb73f2
Merge pull request #3299 from thelounge/xpaw/fix-sync-sort
Fix channel sorting to work across clients on Vue
2019-07-15 10:33:37 +03:00
Renovate Bot
7f481634f0
Update dependency webpack-cli to v3.3.6 2019-07-14 13:10:50 +00:00
Renovate Bot
10948b3bb7
Update dependency yarn to v1.17.3 2019-07-12 21:42:50 +00:00
Pavel Djundik
bf2c6a6bcf Fix channel sorting to work across clients on Vue 2019-07-12 19:47:29 +03:00
Renovate Bot
ac23215115
Update dependency linkify-it to v2.2.0 2019-07-12 12:11:34 +00:00
Pavel Djundik
b2e5be33d6 A better way of disabling sorting on touch devices 2019-07-12 13:43:47 +03:00
Pavel Djundik
820a67802d
Merge pull request #3294 from thelounge/xpaw/fix-3293
Verify reverse DNS when looking up hostnames for webirc
2019-07-12 11:50:50 +03:00
Pavel Djundik
a3c77266e0
Merge pull request #3296 from thelounge/xpaw/fix-3295
Correctly parse numbers when passed in CLI
2019-07-12 11:50:40 +03:00
Pavel Djundik
295b3a4251 Correctly parse numbers when passed in CLI
Fixes #3295
2019-07-12 10:56:19 +03:00
Pavel Djundik
d3a98a523f Verify reverse DNS when looking up hostnames for webirc
Fixes #3293
2019-07-11 23:20:04 +03:00
Pavel Djundik
257ce5d0a8 v3.1.1 2019-07-11 19:47:38 +03:00
Pavel Djundik
776b20cf4f Update changelog 2019-07-11 19:47:35 +03:00
Pavel Djundik
f1594e8a00
Merge pull request #3292 from thelounge/upgrade-lock
Upgrade packages and the lock file
2019-07-11 19:46:46 +03:00
Renovate Bot
011fd99503 Update dependency thelounge-ldapjs-non-maintained-fork to v1.0.4 2019-07-11 19:27:29 +03:00
Pavel Djundik
5f13d3308f Upgrade yarn lockfile 2019-07-11 19:27:29 +03:00
Renovate Bot
f20ec1b9c3 Update dependency webpack to v4.35.3 2019-07-11 19:27:29 +03:00
Renovate Bot
13eaed3eb9 Update babel monorepo to v7.5.4 2019-07-11 19:27:29 +03:00
Pavel Djundik
6da7aa4cb9 v3.1.0 2019-07-11 18:41:54 +03:00
Pavel Djundik
db1144749e Changelog for v3.1.0
skip ci
2019-07-11 18:40:03 +03:00
Pavel Djundik
20ae2e0bed
Merge pull request #3289 from thelounge/renovate/lodash-monorepo
Update dependency lodash to v4.17.14
2019-07-11 11:09:35 +03:00
Renovate Bot
d48d619cb1
Update dependency lodash to v4.17.14 2019-07-10 15:47:10 +00:00
Pavel Djundik
6660041376
Merge pull request #3290 from thelounge/renovate/thelounge-ldapjs-non-maintained-fork-1.x
Update dependency thelounge-ldapjs-non-maintained-fork to v1.0.3
2019-07-10 12:34:49 +03:00
Renovate Bot
7595880517
Update dependency thelounge-ldapjs-non-maintained-fork to v1.0.3 2019-07-10 09:11:31 +00:00
Pavel Djundik
9e6a3569d5
Merge pull request #3285 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12.0.1
2019-07-08 18:02:24 +03:00
Renovate Bot
3a6df0a36f
Update dependency file-type to v12.0.1 2019-07-08 13:58:15 +00:00
Pavel Djundik
2ff8d09a44
Merge pull request #3286 from thelounge/xpaw/webirc-warn
Only warn for top-level unknown config keys
2019-07-08 16:34:17 +03:00
Pavel Djundik
48ae5a4cdd Only warn for top-level unknown config keys 2019-07-08 14:12:31 +03:00
Pavel Djundik
85ffaa1ec7 v3.1.0-rc.1 2019-07-05 17:27:45 +03:00
Pavel Djundik
983c6602a8 Add changelog for v3.1.0-rc.1 2019-07-05 17:27:13 +03:00
Pavel Djundik
807856dbef
Merge pull request #3281 from thelounge/mcinkay/input-refactor
Refactor command API for plugins
2019-07-05 17:26:06 +03:00
Pavel Djundik
492ab82255
Merge pull request #3273 from thelounge/renovate/fs-extra-8.x
Update dependency fs-extra to v8.1.0
2019-07-05 17:08:13 +03:00
Pavel Djundik
633b1d506c
Merge pull request #3274 from thelounge/renovate/semver-6.x
Update dependency semver to v6.2.0
2019-07-05 17:08:04 +03:00
Pavel Djundik
7a08d8ac3f
Merge pull request #3275 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.35.2
2019-07-05 17:07:56 +03:00
Pavel Djundik
d5ac3a7040
Merge pull request #3277 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.5.0
2019-07-05 17:07:47 +03:00
Alistair McKinlay
1fcdc51861 Change the api for calling plugin commands 2019-07-05 15:04:32 +01:00
Renovate Bot
63ebf1d301
Update dependency webpack to v4.35.2 2019-07-05 09:26:54 +00:00
Renovate Bot
38a949bdab
Update dependency semver to v6.2.0 2019-07-05 09:26:40 +00:00
Renovate Bot
5f19eea6a2
Update dependency fs-extra to v8.1.0 2019-07-05 09:26:27 +00:00
Renovate Bot
6cc8341543
Update babel monorepo to v7.5.0 2019-07-05 09:26:17 +00:00
Pavel Djundik
85acfdcf92
Merge pull request #3280 from thelounge/xpaw/sqlite-msg
Change unable to load sqlite3 message
2019-07-05 11:52:58 +03:00
Pavel Djundik
2ce93e82c7
Merge pull request #3279 from thelounge/xpaw/plugin-info
Add a message about experimental API
2019-07-05 11:51:46 +03:00
Pavel Djundik
a56e6de51f Change unable to load sqlite3 message 2019-07-05 10:32:14 +03:00
Pavel Djundik
95a3ec42c2 Add a message about experimental API 2019-07-05 10:26:22 +03:00
Pavel Djundik
bac95325dc
Merge pull request #3276 from thelounge/xpaw/unhandled-params-check
Make sure unhandled command has params
2019-07-03 11:57:29 +03:00
Pavel Djundik
4765f06940
Make sure unhandled command has params 2019-07-03 11:20:29 +03:00
Al McKinlay
1b38e6cc02
Add support for command plugins (#2757) 2019-07-02 18:25:43 +01:00
Alistair McKinlay
4cbe72f635 Add support for command plugins 2019-07-02 17:02:05 +01:00
Pavel Djundik
0d3fc7b4fb v3.1.0-pre.3 2019-06-28 17:59:30 +03:00
Pavel Djundik
db651276ba Update changelog 2019-06-28 17:59:24 +03:00
Pavel Djundik
fb118b43ca
Merge pull request #3272 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.4.0
2019-06-28 17:56:45 +03:00
Renovate Bot
e34c966ba8
Update dependency irc-framework to v4.4.0 2019-06-28 14:09:51 +00:00
Pavel Djundik
edc316cf04
Merge pull request #3264 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.35.0
2019-06-25 13:44:38 +03:00
Renovate Bot
5f1aa1b24a
Update dependency webpack to v4.35.0 2019-06-25 09:10:29 +00:00
Pavel Djundik
126ad16bc0
Merge pull request #3268 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.5
2019-06-25 12:08:33 +03:00
Pavel Djundik
f0d0511b5f
Merge pull request #3267 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.23.0
2019-06-25 12:08:18 +03:00
Pavel Djundik
2196e15799
Merge pull request #3270 from thelounge/renovate/semver-6.x
Update dependency semver to v6.1.2
2019-06-25 12:08:08 +03:00
Pavel Djundik
db1bc95e78
Merge pull request #3266 from thelounge/renovate/eslint-6.x
Update dependency eslint to v6
2019-06-25 12:07:56 +03:00
Pavel Djundik
1425130436 Update eslint and eslint-plugin-vue, fix rules 2019-06-25 11:51:47 +03:00
Renovate Bot
15e1a0af7a
Update dependency vuedraggable to v2.23.0 2019-06-24 01:55:52 +00:00
Renovate Bot
0df403433d
Update dependency semver to v6.1.2 2019-06-24 01:50:12 +00:00
Renovate Bot
6a0229ff43
Update dependency webpack-cli to v3.3.5 2019-06-23 12:49:29 +00:00
Jérémie Astori
921307a914
Merge pull request #3255 from thelounge/renovate/file-type-12.x
Update dependency file-type to v12
2019-06-16 00:51:08 -04:00
Jérémie Astori
14de647a1b
Merge pull request #3252 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.4
2019-06-16 00:50:38 -04:00
Jérémie Astori
f093f29302
Merge pull request #3257 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.9
2019-06-16 00:50:19 -04:00
Renovate Bot
b52fe1a782
Update dependency file-type to v12 2019-06-14 19:01:06 +00:00
Renovate Bot
56306b995c
Update dependency webpack-cli to v3.3.4 2019-06-14 19:00:54 +00:00
Renovate Bot
851c6ebac8
Update dependency sqlite3 to v4.0.9 2019-06-14 19:00:40 +00:00
Pavel Djundik
2561c71a96
Merge pull request #3259 from emersonveenstra/multiple-notice-fixes
Only prepend text with 'Notice: ' if it's the nick it's from
2019-06-14 21:13:24 +03:00
Emerson Veenstra
ef6684b77b Only prepend text with 'Notice: ' if it's the nick it's from 2019-06-14 13:51:42 -04:00
Pavel Djundik
01bc09d01e
Merge pull request #3258 from thelounge/xpaw/fix-subpath-upload
Fix file uploading when lounge is proxied in a subfolder
2019-06-14 10:45:54 +03:00
Pavel Djundik
7886e831bb Fix file uploading when lounge is proxied in a subfolder 2019-06-14 00:58:19 +03:00
Jérémie Astori
d999c22df7
Merge pull request #3256 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.34.0
2019-06-12 20:30:04 -04:00
Renovate Bot
eac14ba58b
Update dependency webpack to v4.34.0 2019-06-12 23:28:24 +00:00
Pavel Djundik
7c823c90a5
Merge pull request #3254 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6.4.0
2019-06-12 11:05:17 +03:00
Renovate Bot
d8f080ede6
Update dependency package-json to v6.4.0 2019-06-11 17:26:08 +00:00
Pavel Djundik
001b643d88
Merge pull request #3250 from thelounge/xpaw/identd-error
Add extra socket/server error event handlers
2019-06-11 10:24:24 +03:00
Pavel Djundik
521b62be24
Merge pull request #3251 from thelounge/xpaw/emojis-v12
Use github's emoji data (support unicode 12)
2019-06-11 10:14:03 +03:00
Pavel Djundik
b95c8236bd Use @github's emoji data 2019-06-10 22:17:00 +03:00
Pavel Djundik
9949fa9963
Merge pull request #3247 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.3
2019-06-10 16:17:19 +03:00
Pavel Djundik
d36f60bb4f Add extra socket error handlers 2019-06-10 13:13:27 +03:00
Pavel Djundik
17e01746ba Add server error event handler in the identd server 2019-06-10 12:48:43 +03:00
Renovate Bot
a4f829e0a5
Update dependency webpack-cli to v3.3.3 2019-06-10 09:45:39 +00:00
Pavel Djundik
be1cfae166
Merge pull request #3249 from thelounge/renovate/ua-parser-js-0.x
Update dependency ua-parser-js to v0.7.20
2019-06-10 12:44:15 +03:00
Pavel Djundik
3b3b2f4304
Merge pull request #3248 from thelounge/renovate/stylelint-10.x
Update dependency stylelint to v10.1.0
2019-06-10 12:44:07 +03:00
Pavel Djundik
25d5ffee78
Merge pull request #3246 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.9.0
2019-06-10 12:43:55 +03:00
Pavel Djundik
0c53d784aa
Merge pull request #3245 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.33.0
2019-06-10 12:43:46 +03:00
Pavel Djundik
64791d1109
Merge pull request #3240 from thelounge/renovate/semver-6.x
Update dependency semver to v6.1.1
2019-06-10 12:43:39 +03:00
Pavel Djundik
84d30f9842
Merge pull request #3242 from thelounge/renovate/filenamify-4.x
Update dependency filenamify to v4.1.0
2019-06-10 12:43:30 +03:00
Renovate Bot
0317c59bbc
Update dependency ua-parser-js to v0.7.20 2019-06-08 14:55:59 +00:00
Renovate Bot
06648da93e
Update dependency stylelint to v10.1.0 2019-06-07 14:34:02 +00:00
Renovate Bot
515b64c596
Update dependency @fortawesome/fontawesome-free to v5.9.0 2019-06-04 20:33:40 +00:00
Renovate Bot
dd30b37fa9
Update dependency webpack to v4.33.0 2019-06-04 19:41:38 +00:00
Renovate Bot
67a7215e63
Update dependency filenamify to v4.1.0 2019-05-30 07:03:06 +00:00
Renovate Bot
1dfdbbcc78
Update dependency semver to v6.1.1 2019-05-28 17:18:37 +00:00
Pavel Djundik
edf7f001ae Update changelog 2019-05-28 19:06:57 +03:00
Pavel Djundik
a4ebafabcd v3.1.0-pre.2 2019-05-28 19:06:18 +03:00
Pavel Djundik
a6d8dfcc8a
Merge pull request #3239 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.7.0
2019-05-28 19:03:28 +03:00
Renovate Bot
5abbae1c75
Update dependency mini-css-extract-plugin to v0.7.0 2019-05-27 16:17:22 +00:00
Pavel Djundik
29de64e36e
Merge pull request #3232 from thelounge/renovate/file-type-11.x
Update dependency file-type to v11.1.0
2019-05-26 23:11:22 +03:00
Renovate Bot
94d6718c3b
Update dependency file-type to v11.1.0 2019-05-26 15:05:14 +00:00
Pavel Djundik
c731b57911
Merge pull request #3237 from thelounge/xpaw/fix-limit
Remove bogus prefetch limit
2019-05-26 18:04:26 +03:00
Pavel Djundik
deaf0514c7
Merge pull request #3238 from thelounge/renovate/express-4.x
Update dependency express to v4.17.1
2019-05-26 18:03:18 +03:00
Pavel Djundik
8e628584f1
Merge pull request #3229 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.4.5
2019-05-26 18:03:11 +03:00
Pavel Djundik
f8f47d7c68
Merge pull request #3230 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.32.2
2019-05-26 18:03:02 +03:00
Pavel Djundik
aaff970571
Merge pull request #3231 from thelounge/renovate/semver-6.x
Update dependency semver to v6.1.0
2019-05-26 18:02:54 +03:00
Pavel Djundik
e910ab5194
Merge pull request #3235 from thelounge/xpaw/root-warning
Print a warning when running as root
2019-05-26 18:02:00 +03:00
Renovate Bot
4e2a94583a
Update dependency express to v4.17.1 2019-05-26 04:30:27 +00:00
Pavel Djundik
cdcd7df425
Remove bogus prefetch limit 2019-05-25 15:40:55 +03:00
Renovate Bot
e26687bbd3
Update dependency webpack to v4.32.2 2019-05-25 12:34:34 +00:00
Renovate Bot
c9d857dbb4
Update dependency semver to v6.1.0 2019-05-25 12:34:22 +00:00
Renovate Bot
d5e1146776
Update babel monorepo to v7.4.5 2019-05-25 12:33:56 +00:00
Pavel Djundik
e71bd3a9a3
Merge pull request #3236 from thelounge/xpaw/abort-error-msg
Change upload abort error message
2019-05-25 14:59:32 +03:00
Pavel Djundik
702aa6fdfa Change upload abort error message 2019-05-24 16:43:27 +03:00
Pavel Djundik
39d8a6a7de
Merge pull request #3226 from SwayUser/paste-image
Add paste file functionality
2019-05-21 20:24:27 +03:00
Pavel Djundik
a9e774b13b Print a warning when running as root 2019-05-20 18:17:35 +03:00
Pavel Djundik
559e464216
Merge pull request #3228 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.32.0
2019-05-20 15:14:46 +03:00
Renovate Bot
ee0f0e8727
Update dependency webpack to v4.32.0 2019-05-20 09:58:20 +00:00
Pavel Djundik
779ef07442
Merge pull request #3227 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.21.0
2019-05-20 12:42:41 +03:00
Renovate Bot
5b73f32023
Update dependency vuedraggable to v2.21.0 2019-05-20 09:12:28 +00:00
SwayUser
4555cf7dcf Add paste file functionality 2019-05-20 10:34:56 +02:00
Pavel Djundik
3ebc4db256
Merge pull request #3223 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.3.5
2019-05-18 12:10:44 +03:00
Pavel Djundik
786bcc5691
Merge pull request #3225 from thelounge/renovate/express-4.x
Update dependency express to v4.17.0
2019-05-18 12:10:22 +03:00
Renovate Bot
6b65d63a29
Update dependency express to v4.17.0 2019-05-17 02:00:36 +00:00
Renovate Bot
faed0b0439
Update dependency web-push to v3.3.5 2019-05-16 15:43:17 +00:00
Pavel Djundik
67be3d66df
Merge pull request #3222 from thelounge/renovate/fs-extra-8.x
Update dependency fs-extra to v8.0.1
2019-05-14 12:19:22 +03:00
Renovate Bot
39c998fa34
Update dependency fs-extra to v8.0.1 2019-05-13 17:03:39 +00:00
Pavel Djundik
46033ee29f
Merge pull request #3218 from thelounge/xpaw/fix-3089
Disable touch tooltip on "jump to recent messages" button
2019-05-13 17:15:42 +03:00
Pavel Djundik
721c0d4374
Disable touch tooltip on "jump to recent messages" button
Fixes #3089
2019-05-13 14:58:57 +03:00
Al McKinlay
0967fa26cf
Remove incorrect lowest node version from readme (#3217)
Remove incorrect lowest node version from readme
2019-05-13 09:14:21 +01:00
Al McKinlay
8687a513de
Remove incorrect lowest node version from readme
We are only supporting 8 and up. Think this has been around for a long time, apparently.
2019-05-13 08:52:14 +01:00
Pavel Djundik
806650dcf9
Merge pull request #3179 from thelounge/xpaw/request-to-got
Replace `request` with `got`
2019-05-13 10:51:14 +03:00
Pavel Djundik
fe68f2a1ee Replace request with got 2019-05-13 10:30:43 +03:00
Pavel Djundik
21cb4dca1e
Merge pull request #2761 from thelounge/mcinkay/plugins/server-options
Add server config api
2019-05-13 10:23:05 +03:00
Pavel Djundik
0eddb9153d
Merge pull request #3138 from Dominent/send-message-after-query
Move query to msg, fix #3049
2019-05-13 10:22:52 +03:00
Alistair McKinlay
4c35b80b88 Move query to msg, fix #3049 2019-05-13 08:10:08 +01:00
Al McKinlay
af976c52c3 Add server config api 2019-05-13 07:44:41 +01:00
Pavel Djundik
ff8b706cc6
Merge pull request #3216 from thelounge/renovate/babel-loader-8.x
Update dependency babel-loader to v8.0.6
2019-05-12 10:45:08 +03:00
Pavel Djundik
34e48d6040
Merge pull request #3214 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.3.4
2019-05-12 10:44:59 +03:00
Pavel Djundik
8ce56a6da6
Merge pull request #3191 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.4.4
2019-05-12 10:44:51 +03:00
Renovate Bot
7fe5267d1d
Update dependency babel-loader to v8.0.6 2019-05-12 06:23:26 +00:00
Renovate Bot
5e856730b6
Update dependency web-push to v3.3.4 2019-05-11 18:21:55 +00:00
Renovate Bot
702decab5c
Update babel monorepo to v7.4.4 2019-05-11 18:21:44 +00:00
Pavel Djundik
81aea4994f v3.1.0-pre.1 2019-05-11 21:19:00 +03:00
Pavel Djundik
1247d29fcf Add changelog entry for v3.1.0-pre.1 2019-05-11 21:18:50 +03:00
Pavel Djundik
85aad8c9ba
Merge pull request #3194 from thelounge/renovate/jquery-3.x
Update dependency jquery to v3.4.1
2019-05-11 21:15:27 +03:00
Pavel Djundik
bd3bb08805
Merge pull request #3195 from thelounge/renovate/babel-plugin-istanbul-5.x
Update dependency babel-plugin-istanbul to v5.1.4
2019-05-11 21:15:18 +03:00
Pavel Djundik
67adbc328a
Merge pull request #3199 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.2
2019-05-11 21:15:09 +03:00
Pavel Djundik
0979fffd08
Merge pull request #3215 from thelounge/renovate/fs-extra-8.x
Update dependency fs-extra to v8
2019-05-11 21:15:00 +03:00
Renovate Bot
74b17ca5cb
Update dependency fs-extra to v8 2019-05-11 14:46:25 +00:00
Renovate Bot
8bda748096
Update dependency webpack-cli to v3.3.2 2019-05-11 09:53:27 +00:00
Renovate Bot
fe5539e3c4
Update dependency jquery to v3.4.1 2019-05-11 09:53:17 +00:00
Renovate Bot
d78dcee47f
Update dependency babel-plugin-istanbul to v5.1.4 2019-05-11 09:53:08 +00:00
Pavel Djundik
f0114835ce
Merge pull request #3198 from thelounge/renovate/file-type-11.x
Update dependency file-type to v11
2019-05-11 12:51:48 +03:00
Pavel Djundik
3f0f851de1
Merge pull request #3210 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.16.0
2019-05-11 12:50:26 +03:00
Pavel Djundik
9a7cd95b97
Merge pull request #3202 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.8.2
2019-05-11 12:50:17 +03:00
Pavel Djundik
d37dbde757
Merge pull request #3196 from thelounge/renovate/nyc-14.x
Update dependency nyc to v14.1.1
2019-05-11 12:50:04 +03:00
Pavel Djundik
93f182b98a
Merge pull request #3207 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.31.0
2019-05-11 12:49:48 +03:00
Pavel Djundik
9546deff31
Merge pull request #3212 from thelounge/renovate/intersection-observer-0.x
Update dependency intersection-observer to v0.7.0
2019-05-11 12:49:35 +03:00
Pavel Djundik
85ba9d933a
Merge pull request #3213 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.8
2019-05-11 12:49:25 +03:00
Renovate Bot
e66c992148
Update dependency sqlite3 to v4.0.8 2019-05-11 02:40:05 +00:00
Renovate Bot
cb52a6c1cd
Update dependency intersection-observer to v0.7.0 2019-05-10 21:37:52 +00:00
Renovate Bot
59b1b1d216
Update dependency file-type to v11 2019-05-10 12:14:00 +00:00
Renovate Bot
d6fc926f73
Update dependency yarn to v1.16.0 2019-05-10 12:13:45 +00:00
Renovate Bot
dc4a42c7da
Update dependency webpack to v4.31.0 2019-05-10 12:13:18 +00:00
Renovate Bot
aa0918a6ff
Update dependency nyc to v14.1.1 2019-05-10 12:13:06 +00:00
Renovate Bot
0c3b8e2a6c
Update dependency @fortawesome/fontawesome-free to v5.8.2 2019-05-10 12:12:28 +00:00
Pavel Djundik
05b3a26dda
Merge pull request #3205 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.7
2019-05-10 15:09:36 +03:00
Pavel Djundik
d9f75ff73c
Merge pull request #3201 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.3.0
2019-05-10 15:09:01 +03:00
Renovate Bot
04cb4f49b6
Update dependency sqlite3 to v4.0.7 2019-05-08 15:54:58 +00:00
Renovate Bot
dae84af2ce
Update dependency irc-framework to v4.3.0 2019-05-07 10:43:49 +00:00
Pavel Djundik
63fc320ad1
Merge pull request #3187 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.0.3
2019-04-25 14:46:15 +03:00
Renovate Bot
4892161059
Update dependency copy-webpack-plugin to v5.0.3 2019-04-25 07:15:46 +00:00
Pavel Djundik
e2d9385000
Merge pull request #3186 from thelounge/renovate/babel-plugin-istanbul-5.x
Update dependency babel-plugin-istanbul to v5.1.3
2019-04-25 10:15:12 +03:00
Pavel Djundik
ecfc5cc28b
Merge pull request #3188 from thelounge/renovate/intersection-observer-0.x
Update dependency intersection-observer to v0.6.0
2019-04-25 10:14:51 +03:00
Renovate Bot
db97c9bbdd
Update dependency intersection-observer to v0.6.0 2019-04-24 18:50:07 +00:00
Renovate Bot
fa39f57d61
Update dependency babel-plugin-istanbul to v5.1.3 2019-04-24 16:57:10 +00:00
Jérémie Astori
d08c1d0ede
Merge pull request #3173 from thelounge/renovate/stylelint-10.x
Update dependency stylelint to v10
2019-04-21 18:18:55 -04:00
Renovate Bot
bfcb9d7bd9
Update dependency stylelint to v10 2019-04-21 20:05:51 +00:00
Pavel Djundik
45648a08ad
Merge pull request #3183 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.1
2019-04-21 23:04:47 +03:00
Pavel Djundik
2d8a28fa36
Merge pull request #3181 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.24
2019-04-21 23:04:38 +03:00
Renovate Bot
2fba91bc06
Update dependency webpack-cli to v3.3.1 2019-04-21 19:31:29 +00:00
Renovate Bot
99c6e65d31
Update dependency mime-types to v2.1.24 2019-04-21 04:28:08 +00:00
Pavel Djundik
95370622cc
Merge pull request #3182 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.1.4
2019-04-18 23:19:18 +03:00
Renovate Bot
d9bffd718e
Update dependency mocha to v6.1.4 2019-04-18 18:37:53 +00:00
Pavel Djundik
b7ebec9ade
Merge pull request #3178 from thelounge/renovate/nyc-14.x
Update dependency nyc to v14
2019-04-17 20:01:15 +03:00
Pavel Djundik
2d5317ca0c
Merge pull request #3180 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.3.2
2019-04-17 20:01:08 +03:00
Renovate Bot
4f60797f9d
Update dependency sinon to v7.3.2 2019-04-17 16:20:15 +00:00
Renovate Bot
f80635ca1f
Update dependency nyc to v14 2019-04-17 14:12:56 +00:00
Pavel Djundik
54acbe0335
Merge pull request #3177 from thelounge/renovate/babel-plugin-istanbul-5.x
Update dependency babel-plugin-istanbul to v5.1.2
2019-04-17 17:12:18 +03:00
Renovate Bot
dba768203f
Update dependency babel-plugin-istanbul to v5.1.2 2019-04-16 10:19:18 +00:00
Pavel Djundik
f235e6a64d
Merge pull request #3171 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.30.0
2019-04-15 16:46:23 +03:00
Pavel Djundik
738b8a7e8f
Merge pull request #3174 from thelounge/renovate/stylelint-config-standard-18.x
Update dependency stylelint-config-standard to v18.3.0
2019-04-15 16:46:15 +03:00
Pavel Djundik
c29b3b5c4b
Merge pull request #3166 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.6.0
2019-04-15 16:46:05 +03:00
Pavel Djundik
93ff33140f
Merge pull request #3175 from thelounge/renovate/handlebars-4.x
Update dependency handlebars to v4.1.2
2019-04-15 16:45:55 +03:00
Pavel Djundik
451cd3657a
Merge pull request #3176 from thelounge/xpaw/invite-list
Implement invite list
2019-04-15 16:43:24 +03:00
Pavel Djundik
830fdda91a Implement invite list 2019-04-15 14:38:11 +03:00
Renovate Bot
ce49049cd7
Update dependency handlebars to v4.1.2 2019-04-13 14:23:00 +00:00
Renovate Bot
b0f4ad57f0
Update dependency stylelint-config-standard to v18.3.0 2019-04-13 13:29:17 +00:00
Renovate Bot
892478d2db
Update dependency webpack to v4.30.0 2019-04-12 20:20:30 +00:00
Renovate Bot
1a84b3c0cf
Update dependency mini-css-extract-plugin to v0.6.0 2019-04-12 16:31:45 +00:00
Pavel Djundik
5d479f3e62
Merge pull request #3167 from thelounge/renovate/jquery-3.x
Update dependency jquery to v3.4.0
2019-04-12 19:30:20 +03:00
Pavel Djundik
0bc36ad486
Merge pull request #3169 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.11.0
2019-04-12 19:30:13 +03:00
Pavel Djundik
d63c212b6a
Merge pull request #3170 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.1.3
2019-04-12 19:30:04 +03:00
Renovate Bot
4cb1fb48c7
Update dependency mocha to v6.1.3 2019-04-12 00:22:41 +00:00
Renovate Bot
59f440346c
Update dependency file-type to v10.11.0 2019-04-11 16:08:51 +00:00
Renovate Bot
3e0711ca2d
Update dependency jquery to v3.4.0 2019-04-10 19:54:41 +00:00
Jérémie Astori
66f8b0a123
Merge pull request #3161 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.4.3
2019-04-09 02:10:07 -04:00
Jérémie Astori
88ca219cc9
Merge pull request #3162 from thelounge/renovate/commander-2.x
Update dependency commander to v2.20.0
2019-04-09 02:09:59 -04:00
Jérémie Astori
57f13aac0d
Merge pull request #3163 from thelounge/renovate/busboy-0.x
Update dependency busboy to v0.3.1
2019-04-09 02:09:52 -04:00
Jérémie Astori
1235d8a699
Merge pull request #3165 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.1.2
2019-04-09 02:09:43 -04:00
Renovate Bot
ec11b62b08
Update dependency mocha to v6.1.2 2019-04-08 18:39:45 +00:00
Renovate Bot
42ab78d4fb
Update dependency commander to v2.20.0 2019-04-07 23:13:35 +00:00
Renovate Bot
33e9fb58d3
Update dependency busboy to v0.3.1 2019-04-07 23:13:25 +00:00
Renovate Bot
2c10729225
Update babel monorepo to v7.4.3 2019-04-07 23:13:11 +00:00
Jérémie Astori
7c3b0e81b4
Merge pull request #3160 from thelounge/renovate/html-minifier-4.x
Update dependency html-minifier to v4
2019-04-07 19:12:14 -04:00
Jérémie Astori
fc99a7f9e1
Merge pull request #3158 from thelounge/renovate/read-chunk-3.x
Update dependency read-chunk to v3.2.0
2019-04-07 19:12:05 -04:00
Jérémie Astori
a173040537
Merge pull request #3157 from thelounge/renovate/filenamify-4.x
Update dependency filenamify to v4
2019-04-07 19:11:54 -04:00
Jérémie Astori
eb1fc22715
Merge pull request #3164 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6.1.1
2019-04-07 19:11:26 -04:00
Renovate Bot
01dab06b0a
Update dependency mocha to v6.1.1 2019-04-07 22:47:54 +00:00
Renovate Bot
49f484df89
Update dependency html-minifier to v4 2019-04-06 19:08:16 +00:00
Renovate Bot
1ebb71f3a7
Update dependency filenamify to v4 2019-04-06 19:08:06 +00:00
Renovate Bot
0f06ed1f56
Update dependency read-chunk to v3.2.0 2019-04-06 19:07:51 +00:00
Pavel Djundik
1d2ee012cd
Merge pull request #3155 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.16.0
2019-04-06 22:06:56 +03:00
Pavel Djundik
a3bc59c36f
Merge pull request #3156 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6.3.0
2019-04-06 22:06:48 +03:00
Pavel Djundik
6a0b53c71f
Merge pull request #3159 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.10.0
2019-04-06 22:06:36 +03:00
Renovate Bot
6e8c8da5b0
Update dependency file-type to v10.10.0 2019-04-01 10:41:49 +00:00
Renovate Bot
bf034a187c
Update dependency package-json to v6.3.0 2019-03-31 12:07:49 +00:00
Renovate Bot
dc5fd9e78d
Update dependency eslint to v5.16.0 2019-03-30 04:09:12 +00:00
Pavel Djundik
18271f8c32
Merge pull request #3153 from thelounge/renovate/mochapack-1.x
Update dependency mochapack to v1.1.1
2019-03-29 15:17:24 +02:00
Renovate Bot
8ed2866ed1
Update dependency mochapack to v1.1.1 2019-03-28 12:28:48 +00:00
Pavel Djundik
5941a009e0
Merge pull request #3151 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.3.1
2019-03-27 14:58:30 +02:00
Renovate Bot
066a08eee0
Update dependency sinon to v7.3.1 2019-03-27 11:56:45 +00:00
Pavel Djundik
dde3465cfa
Merge pull request #3114 from thelounge/xpaw/sortable-fixes
Change styling when dragging channels.
2019-03-27 12:42:48 +02:00
Pavel Djundik
56248116a2
Merge pull request #3145 from thelounge/xpaw/condensed-underline
Change condensed summary hover to an underline
2019-03-27 12:26:10 +02:00
Pavel Djundik
f9459ee1c3 Fix up sorting channel styling 2019-03-27 12:23:50 +02:00
Pavel Djundik
5723be00c7
Merge pull request #3150 from thelounge/astorije/test-stuff
Replace mocha-webpack with mochapack, and remove browser test setup that we never used
2019-03-27 10:13:59 +02:00
Jérémie Astori
c574234b99
Merge pull request #3073 from Jay2k1/patch-2
extend custom highlight regex
2019-03-27 00:10:48 -04:00
Jérémie Astori
c0708fd955
Remove browser test setup that we never used 2019-03-26 23:27:36 -04:00
Jérémie Astori
e3dfedf8b5
Replace mocha-webpack with mochapack 2019-03-26 23:16:39 -04:00
Jérémie Astori
9026f73533
Merge pull request #3148 from thelounge/renovate/semver-6.x
Update dependency semver to v6
2019-03-26 22:37:35 -04:00
Renovate Bot
a23f0a76e9
Update dependency semver to v6 2019-03-27 01:06:47 +00:00
Jérémie Astori
a58c12a09e
Merge pull request #3149 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.15.2
2019-03-26 21:06:00 -04:00
Renovate Bot
231622c7a3
Update dependency yarn to v1.15.2 2019-03-27 00:28:30 +00:00
Pavel Djundik
3153830005 Change condensed summary hover to an underline 2019-03-25 17:08:22 +02:00
Pavel Djundik
88df9148dc
Merge pull request #3019 from Zarthus/ctcp_notify
plugin/ctcp: Let the user know a CTCP request was sent
2019-03-25 12:39:28 +02:00
Pavel Djundik
ab27a4e39f
Merge pull request #3141 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.0.2
2019-03-25 12:36:24 +02:00
Pavel Djundik
74fe337afe
Merge pull request #3142 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6.2.0
2019-03-25 12:36:16 +02:00
Pavel Djundik
a8a634983e
Merge pull request #3143 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.20.0
2019-03-25 12:36:07 +02:00
Renovate Bot
0f1ae61a38
Update dependency vuedraggable to v2.20.0 2019-03-24 01:00:22 +00:00
Renovate Bot
4b6ef5d978
Update dependency package-json to v6.2.0 2019-03-23 08:51:07 +00:00
Renovate Bot
2893dcc6f1
Update dependency copy-webpack-plugin to v5.0.2 2019-03-22 15:54:53 +00:00
Pavel Djundik
892737d1d8
Merge pull request #3134 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.3.0

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-22 14:14:17 +02:00
Pavel Djundik
20f99863d6
Merge pull request #3131 from thelounge/renovate/vue-monorepo
Update vue monorepo to v2.6.10

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-22 14:14:10 +02:00
Pavel Djundik
f3323e3583
Merge pull request #3128 from thelounge/renovate/babel-monorepo
Update babel monorepo
2019-03-22 14:13:55 +02:00
Pavel Djundik
2b7c4021ad
Merge pull request #3127 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.15.3

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-22 14:13:48 +02:00
Renovate Bot
310c5a843d
Update vue monorepo to v2.6.10 2019-03-22 09:42:45 +00:00
Renovate Bot
b61bef80e5
Update dependency sinon to v7.3.0 2019-03-22 09:42:34 +00:00
Renovate Bot
94f54cb5b4
Update dependency eslint to v5.15.3 2019-03-22 09:42:25 +00:00
Renovate Bot
c1f7a9ef46
Update babel monorepo 2019-03-22 09:42:14 +00:00
Al McKinlay
00510e07ad
Merge pull request #3133 from thelounge/xpaw/hide-test-warn
Hide unknown key warning in mergeConfig test
2019-03-22 09:41:53 +00:00
Pavel Djundik
0525f123a3
Merge pull request #3136 from thelounge/xpaw/sw
Handle redirected requests correctly in service worker
2019-03-22 11:41:28 +02:00
Al McKinlay
8c4f04206b
Merge pull request #3135 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.19.3
2019-03-22 09:41:12 +00:00
Pavel Djundik
cfc6a6adc8
Merge pull request #3137 from thelounge/xpaw/sw-no-cache
Force no-cache on service-worker and sourcemap files
2019-03-22 11:40:23 +02:00
Al McKinlay
3ef844b6be
Merge pull request #3129 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.8.1
2019-03-22 09:40:06 +00:00
Renovate Bot
1362592afb
Update dependency @fortawesome/fontawesome-free to v5.8.1 2019-03-21 21:28:39 +00:00
Pavel Djundik
9d3f5efbd5 Force no-cache on service-worker and sourcemap files 2019-03-21 11:43:13 +02:00
Pavel Djundik
2c85f61e62 Handle redirected requests correctly in service worker 2019-03-21 11:22:01 +02:00
Renovate Bot
05afb2dbd4
Update dependency vuedraggable to v2.19.3 2019-03-21 03:29:54 +00:00
Pavel Djundik
04dc1feaba Hide unknown key warning in mergeConfig test 2019-03-20 12:58:30 +02:00
Pavel Djundik
92098286e7
Merge pull request #3037 from thelounge/xpaw-richrd/file-uploads
Re-implement file uploading with old school multipart forms

Co-authored-by: Jérémie Astori <jeremie@astori.fr>
2019-03-19 15:09:33 +02:00
Pavel Djundik
68de8cdd22
Merge pull request #3126 from thelounge/xpaw/favicon-root
Move favicon.ico to the root folder
2019-03-18 13:56:39 +02:00
Pavel Djundik
50fbf93d64 Move favicon.ico to the root folder 2019-03-18 12:56:52 +02:00
Pavel Djundik
b0571c5a36
Merge pull request #3111 from thelounge/xpaw/sw-async
Use async/await in service worker, do not wait for cache for successful requests
2019-03-18 12:46:44 +02:00
Pavel Djundik
bb2a1d6a6f
Merge pull request #3112 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5.0.1

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-18 11:39:50 +02:00
Jérémie Astori
7e7ac8229b Style the upload progress bar 2019-03-18 10:28:18 +02:00
Pavel Djundik
12cf5ed070 Abort file upload if ChatInput component is destroyed 2019-03-18 10:28:18 +02:00
Pavel Djundik
f84e4199e9 Re-implement file uploads with old-school forms
Co-Authored-By: Richard Lewis <richrd@users.noreply.github.com>
2019-03-18 10:28:18 +02:00
Renovate Bot
bee160d623
Update dependency copy-webpack-plugin to v5.0.1 2019-03-18 03:32:09 +00:00
Jérémie Astori
4937a79384
Merge pull request #3125 from MaxLeiter/spelling
Spelling fix for manual disconnect message
2019-03-17 22:59:09 -04:00
Max Leiter
53d2e697d0 Spelling fix for manual disconnect message 2019-03-17 19:18:02 -07:00
Jérémie Astori
fb2206028c
Merge pull request #3107 from thelounge/xpaw/setname
Send SETNAME command if user edits realname field
2019-03-17 21:16:05 -04:00
Jérémie Astori
f7ebff0b67
Merge pull request #3109 from thelounge/xpaw/chan-mode-is
Display current channel mode on /mode command
2019-03-16 21:48:22 -04:00
Jérémie Astori
b06eda8471
Merge pull request #3116 from thelounge/xpaw/preview-label
Add aria-label on link preview toggle button
2019-03-16 21:40:10 -04:00
Jérémie Astori
527c1564ae
Merge pull request #3124 from thelounge/renovate/handlebars-4.x
Update dependency handlebars to v4.1.1
2019-03-16 21:38:58 -04:00
Jérémie Astori
eb812fafef
Merge pull request #3118 from thelounge/renovate/vue-monorepo
Update vue monorepo to v2.6.9
2019-03-16 21:38:50 -04:00
Renovate Bot
23a5be7dcc
Update dependency handlebars to v4.1.1 2019-03-16 21:31:52 +00:00
Renovate Bot
8f9e6931a8
Update vue monorepo to v2.6.9 2019-03-16 20:28:09 +00:00
Pavel Djundik
fc2b8d94e1
Merge pull request #3123 from kramerc/kill-cmd
Add support for /kill
2019-03-16 22:20:03 +02:00
Kramer Campbell
cff4f1ce2c Add support for /kill
Fixes #3122
2019-03-16 12:57:24 -07:00
Pavel Djundik
036a2ffb4a
Merge pull request #3119 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.15.2
2019-03-16 12:43:19 +02:00
Pavel Djundik
fe52719b9d
Merge pull request #3115 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6.1.0
2019-03-16 12:43:12 +02:00
Pavel Djundik
0d7870ba25
Merge pull request #3120 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.0
2019-03-16 12:42:53 +02:00
Renovate Bot
e44318358b
Update dependency webpack-cli to v3.3.0 2019-03-15 19:03:53 +00:00
Renovate Bot
e0258d4734
Update dependency eslint to v5.15.2 2019-03-15 18:00:58 +00:00
Pavel Djundik
7df26dc373 Add aria-label on link preview toggle button 2019-03-13 19:08:32 +02:00
Renovate Bot
0084d3d04b
Update dependency package-json to v6.1.0 2019-03-12 11:46:41 +00:00
Pavel Djundik
a33108bd49
Merge pull request #3102 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.19.2
2019-03-12 11:10:09 +02:00
Renovate Bot
b7958be526
Update dependency vuedraggable to v2.19.2 2019-03-12 02:35:32 +00:00
Pavel Djundik
43315da408
Merge pull request #3108 from thelounge/xpaw/sanitize-naems
Sanitize user and real names
2019-03-11 10:23:40 +02:00
Pavel Djundik
fe4d92a4cd
Merge pull request #3110 from thelounge/renovate/filenamify-3.x
Update dependency filenamify to v3
2019-03-11 10:22:54 +02:00
Pavel Djundik
de9459dd83 Implement cache busting based on version hash 2019-03-08 12:29:49 +02:00
Pavel Djundik
bb28ecaff7 Use async/await in service worker, do not wait for cache open/put for successful requests 2019-03-07 21:35:41 +02:00
Renovate Bot
a4d52f7dee
Update dependency filenamify to v3 2019-03-07 18:32:39 +00:00
Pavel Djundik
a6c0fa8926
Merge pull request #3101 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.15.1
2019-03-07 13:06:08 +02:00
Pavel Djundik
71332f59d9 Display current channel mode on /mode command
Fixes #885
2019-03-07 12:57:31 +02:00
Pavel Djundik
8c10436630 Only send SETNAME if the cap is enabled 2019-03-07 12:14:34 +02:00
Renovate Bot
b6b767ee95
Update dependency eslint to v5.15.1 2019-03-07 09:34:36 +00:00
Pavel Djundik
cac2ef65b7
Merge pull request #3104 from thelounge/renovate/emoji-regex-8.x
Update dependency emoji-regex to v8
2019-03-07 11:33:56 +02:00
Pavel Djundik
9cb2ca3383 Sanitize user and real names 2019-03-07 10:49:21 +02:00
Pavel Djundik
5d560c99b8 Send SETNAME command if user edits realname field 2019-03-07 10:17:03 +02:00
Renovate Bot
4ba5c911ab
Update dependency emoji-regex to v8 2019-03-06 11:52:55 +00:00
Pavel Djundik
d8b49f0fa5
Merge pull request #3098 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.7
2019-03-06 13:50:45 +02:00
Pavel Djundik
44c4476037
Merge pull request #3099 from thelounge/renovate/mousetrap-1.x
Update dependency mousetrap to v1.6.3
2019-03-06 13:50:37 +02:00
Pavel Djundik
a05502f5c1
Merge pull request #3103 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.9.0
2019-03-06 13:50:03 +02:00
Pavel Djundik
3453ed353c
Merge pull request #3106 from thelounge/renovate/read-chunk-3.x
Update dependency read-chunk to v3.1.0
2019-03-06 13:49:54 +02:00
Renovate Bot
f3d79785bc
Update dependency read-chunk to v3.1.0 2019-03-06 05:39:22 +00:00
Renovate Bot
16e38f92d8
Update dependency file-type to v10.9.0 2019-03-05 15:17:56 +00:00
Renovate Bot
79ba243053
Update dependency sinon to v7.2.7 2019-03-05 14:43:16 +00:00
Renovate Bot
0c72e8d018
Update dependency mousetrap to v1.6.3 2019-03-05 14:43:02 +00:00
Pavel Djundik
16c4894bf9
Merge pull request #3093 from thelounge/xpaw/disconnect-icon
Fix (dis)connect icons in context menu being reverse of what they should be
2019-03-05 16:40:44 +02:00
Pavel Djundik
b6c7f45298
Merge pull request #3100 from thelounge/xpaw/warn-unknown-config-keys
Print a warning for invalid keys in config file or cli arguments
2019-03-05 14:26:41 +02:00
Pavel Djundik
7c1efb18d1 Print a warning on invalid keys in config 2019-03-05 13:49:50 +02:00
Pavel Djundik
2e0100d31c
Merge pull request #3095 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.15.0
2019-03-04 10:33:27 +02:00
Pavel Djundik
b2d9dfe3a5
Merge pull request #3092 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.7.0
2019-03-04 10:33:17 +02:00
Renovate Bot
e792419c1c
Update dependency vue-loader to v15.7.0 2019-03-03 19:42:09 +00:00
Renovate Bot
a121bec4e3
Update dependency eslint to v5.15.0 2019-03-03 19:42:00 +00:00
Pavel Djundik
3c0f1408fa
Merge pull request #3096 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.19.0
2019-03-03 21:41:29 +02:00
Renovate Bot
4e95aebe4a
Update dependency vuedraggable to v2.19.0 2019-03-03 18:14:50 +00:00
Pavel Djundik
6aa8da4099
Merge pull request #3090 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.6
2019-03-03 20:13:14 +02:00
Pavel Djundik
6029fe7c71
Merge pull request #3091 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.29.6
2019-03-03 20:13:06 +02:00
Pavel Djundik
722cc23b10
Merge pull request #3094 from thelounge/renovate/vue-monorepo
Update vue monorepo to v2.6.8
2019-03-03 20:12:38 +02:00
Renovate Bot
1c5d81e38f
Update dependency sinon to v7.2.6 2019-03-01 23:16:45 +00:00
Renovate Bot
df01874b24
Update vue monorepo to v2.6.8 2019-03-01 15:12:31 +00:00
Pavel Djundik
212f4be3c3
Fix (dis)connect icons in context menu being reverse of what they should be 2019-03-01 14:23:58 +02:00
Renovate Bot
be3260dcde
Update dependency webpack to v4.29.6 2019-02-28 10:23:20 +00:00
Jérémie Astori
67effc59dc
Merge pull request #3088 from thelounge/astorije/vue-network-status
Use Vue to show/hide insecure/disconnected icons instead of CSS
2019-02-27 03:15:37 -05:00
Jérémie Astori
f84d764822
Fix linting on a violation shipped previously... 2019-02-27 02:28:52 -05:00
Jérémie Astori
f8b5983f2c
Use Vue to show/hide insecure/disconnected icons instead of CSS 2019-02-27 02:25:44 -05:00
Jérémie Astori
848186d14b
Merge pull request #3083 from thelounge/astorije/eslint-vue-closing-bracket-newline
Move closing brackets on a new line in Vue files
2019-02-27 02:07:28 -05:00
Jérémie Astori
08931d7b3f
Merge pull request #3081 from thelounge/renovate/vuedraggable-2.x
Update dependency vuedraggable to v2.18.1
2019-02-27 02:06:15 -05:00
Renovate Bot
d9f36ce505
Update dependency vuedraggable to v2.18.1 2019-02-26 18:47:34 +00:00
Pavel Djundik
6f70ce9e15
Merge pull request #3082 from thelounge/astorije/parted-channel
Display a broken link icon and red text color when not joined on a channel
2019-02-26 19:18:54 +02:00
Pavel Djundik
6f2a919d13
Merge pull request #3072 from thelounge/renovate/mocha-6.x
Update dependency mocha to v6
2019-02-26 19:17:33 +02:00
Renovate Bot
3f8fc0ef1b
Update dependency mocha to v6 2019-02-26 11:46:24 +00:00
Pavel Djundik
0c0b59b3fb
Merge pull request #2974 from thelounge/xpaw/firefox-scrollbar
Set scrollbar properties for Firefox 64+
2019-02-26 13:28:02 +02:00
Pavel Djundik
f4bec8298b
Merge pull request #3085 from thelounge/renovate/mocha-loader-2.x
Update dependency mocha-loader to v2.0.1
2019-02-26 10:33:21 +02:00
Jérémie Astori
d0421a2541
Merge pull request #3079 from thelounge/xpaw/error-unhandled-target
Put channel errors and unhandled numerics to relevant channel if it exists
2019-02-26 01:34:25 -05:00
Renovate Bot
988115b468
Update dependency mocha-loader to v2.0.1 2019-02-26 06:30:16 +00:00
Jérémie Astori
5b8b6b714a
Merge pull request #3086 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.3.4
2019-02-26 01:29:40 -05:00
Jérémie Astori
6b8f3a6f73
Merge pull request #3084 from thelounge/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.2.1
2019-02-26 01:29:30 -05:00
Jérémie Astori
e173b84fdb
Show/Hide parted channel icon/styling using v-if instead of CSS display property 2019-02-26 01:26:45 -05:00
Renovate Bot
c5e0840ceb
Update babel monorepo to v7.3.4 2019-02-25 18:56:20 +00:00
Renovate Bot
881e8593ed
Update dependency webpack-dev-server to v3.2.1 2019-02-25 11:18:40 +00:00
Jérémie Astori
0812ffc2e7
Run ESLint autofix after requiring new line on closing brackets 2019-02-25 00:57:48 -05:00
Jérémie Astori
b99495334e
Set up ESLint to flag when closing brackets are not on a new line 2019-02-25 00:36:50 -05:00
Jérémie Astori
f8a39a0ea8
Display a broken link icon and red text color when not joined on a channel 2019-02-25 00:21:40 -05:00
Pavel Djundik
a9eced888f Set scrollbar properties for Firefox 64+
Refs:
https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color
https://drafts.csswg.org/css-scrollbars-1/
2019-02-23 11:41:39 +02:00
Pavel Djundik
c8f229f708
Merge pull request #3078 from thelounge/renovate/vue-monorepo
Update vue monorepo to v2.6.7
2019-02-22 14:11:05 +02:00
Pavel Djundik
4d9c01deea Put channel errors and unhandled numerics to relevant channel if it exists 2019-02-22 14:04:33 +02:00
Renovate Bot
b79ee2c180
Update vue monorepo to v2.6.7 2019-02-21 22:09:23 +00:00
Pavel Djundik
80077b33b8
Merge pull request #3074 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.6.4
2019-02-21 14:14:52 +02:00
Renovate Bot
3a681bc33c
Update dependency vue-loader to v15.6.4 2019-02-21 11:50:13 +00:00
Jérémie Astori
b684bc65aa
Merge pull request #3076 from thelounge/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.2.0
2019-02-21 01:17:46 -05:00
Jérémie Astori
27b8333ebb
Merge pull request #3075 from thelounge/renovate/copy-webpack-plugin-5.x
Update dependency copy-webpack-plugin to v5
2019-02-21 01:17:38 -05:00
Renovate Bot
ca598098ce
Update dependency copy-webpack-plugin to v5 2019-02-21 05:28:14 +00:00
Renovate Bot
457653717c
Update dependency webpack-dev-server to v3.2.0 2019-02-21 05:28:05 +00:00
Jérémie Astori
1e40b1170b
Merge pull request #3077 from Zarthus/patch-1
help.tpl: Fix typo (ommitted -> omitted)
2019-02-21 00:20:41 -05:00
Jos Ahrens
94f89dc89f
help.tpl: Fix typo (ommitted -> omitted) 2019-02-20 15:50:05 +01:00
Jay2k1
c151ad69fa add test for custom highlights 2019-02-19 15:21:54 +01:00
Jay2k1
9769f023c5
extend custom highlight regex 2019-02-19 15:19:45 +01:00
Pavel Djundik
ebe7546dd9
Merge pull request #3068 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.14.1
2019-02-19 14:58:19 +02:00
Renovate Bot
29c11e3174
Update dependency eslint to v5.14.1 2019-02-18 21:29:37 +00:00
Jérémie Astori
0a1d67bf5d
Merge pull request #3065 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.29.5
2019-02-18 16:29:06 -05:00
Jérémie Astori
e96bb1e20a
Merge pull request #3069 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.8.0
2019-02-18 16:28:24 -05:00
Jérémie Astori
b0a3daf8a5
Merge pull request #3071 from thelounge/renovate/vue-loader-15.x
Update dependency vue-loader to v15.6.3
2019-02-18 16:27:50 -05:00
Renovate Bot
1c5c226a0a
Update dependency vue-loader to v15.6.3 2019-02-18 21:11:19 +00:00
Renovate Bot
ea1fa25fdb
Update dependency webpack to v4.29.5 2019-02-18 19:20:53 +00:00
Renovate Bot
e9182c1454
Update dependency file-type to v10.8.0 2019-02-18 19:20:42 +00:00
Jérémie Astori
0c4e35b309
Merge pull request #3063 from thelounge/astorije/scroll-down-btn-ui
Improve scroll-down button UI
2019-02-18 14:12:46 -05:00
Jérémie Astori
3df4661126
Merge pull request #3066 from thelounge/renovate/eslint-plugin-vue-5.x
Update dependency eslint-plugin-vue to v5.2.2
2019-02-18 14:02:47 -05:00
Jérémie Astori
e172a36581
Merge pull request #3067 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.4
2019-02-18 14:02:22 -05:00
Jérémie Astori
8dee92bd04
Reduce shadow on scroll-down button 2019-02-18 13:54:25 -05:00
Jérémie Astori
404de0ff5b
Use CSS variable for button color 2019-02-18 13:32:41 -05:00
Renovate Bot
a21affedb5
Update dependency sinon to v7.2.4 2019-02-18 15:23:52 +00:00
Renovate Bot
98d33a8d6a
Update dependency eslint-plugin-vue to v5.2.2 2019-02-18 11:55:06 +00:00
Pavel Djundik
1966a64a48
Merge pull request #3061 from thelounge/renovate/babel-plugin-istanbul-5.x
Update dependency babel-plugin-istanbul to v5.1.1
2019-02-18 11:25:01 +02:00
Pavel Djundik
c9c9748959
Merge pull request #3062 from thelounge/astorije/fix-title
Remove network name from window title
2019-02-18 11:18:09 +02:00
Renovate Bot
781f6aac22
Update dependency babel-plugin-istanbul to v5.1.1 2019-02-18 08:40:45 +00:00
Jérémie Astori
aa1fb6a5cd
Merge pull request #3064 from thelounge/astorije/the-return-of-upload-file-casing
Fix casing of "Upload file" tooltip
2019-02-18 02:42:12 -05:00
Jérémie Astori
dadccb7665
Fix casing of "Upload file" tooltip 2019-02-18 02:19:44 -05:00
Jérémie Astori
8b98c2c93c
Add a tooltip on scroll-down button hover 2019-02-18 01:29:08 -05:00
Jérémie Astori
d8d1d3aee0
Improve scroll-down button UI 2019-02-18 01:13:32 -05:00
Jérémie Astori
4faf7bfd3c
Remove network name from window title
It can be redundant on network tab.
2019-02-18 00:35:04 -05:00
Jos Ahrens
0fbf301e0f
plugin/ctcp: Let the user know a CTCP request was sent
Because responding to a CTCP request is completely optional,
sometimes thelounge will just do absolutely nothing. (the request
was received, but the client did not respond to it)

This alleviates the problem by always notifying the user that
*something* was sent.
2019-02-16 21:01:32 +00:00
Pavel Djundik
16e4be12a8
Merge pull request #3058 from thelounge/xpaw/lock-integrity
Downgrade webpack and regenerate lockfile
2019-02-16 20:27:12 +02:00
Pavel Djundik
e1b31d4b8e
Merge pull request #3045 from thelounge/xpaw/travis-priorities
Change build priority order in Travis
2019-02-16 20:23:24 +02:00
Pavel Djundik
4084ff2e93 Change build priority order in Travis 2019-02-16 20:22:17 +02:00
Pavel Djundik
494f03e747 Downgrade webpack and regenerate lockfile
1. Webpack@4.29.4 has a git dependency
2. Add integrity field to all packages in the lock file
2019-02-16 20:18:04 +02:00
Pavel Djundik
804c9ad11a
Merge pull request #3055 from thelounge/renovate/babel-monorepo
Update dependency @babel/core to v7.3.3
2019-02-16 20:09:46 +02:00
Renovate Bot
2c17cddf0e
Update dependency @babel/core to v7.3.3 2019-02-16 18:09:17 +00:00
Pavel Djundik
5786230aef
Merge pull request #3057 from thelounge/renovate/eslint-plugin-vue-5.x
Update dependency eslint-plugin-vue to v5.2.1
2019-02-16 20:08:11 +02:00
Renovate Bot
98644bfc9e
Update dependency eslint-plugin-vue to v5.2.1 2019-02-16 18:07:51 +00:00
Pavel Djundik
a0d3fbadf4
Merge pull request #3054 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.14.0
2019-02-16 20:06:52 +02:00
Renovate Bot
01c3f6556d
Update dependency eslint to v5.14.0 2019-02-16 18:06:23 +00:00
Pavel Djundik
09853c4c8b
Merge pull request #3053 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.29.4
2019-02-16 20:05:31 +02:00
Pavel Djundik
3b60dcdd07
Merge pull request #3051 from thelounge/renovate/nyc-13.x
Update dependency nyc to v13.3.0
2019-02-16 20:05:16 +02:00
Pavel Djundik
5d988e14f6
Merge pull request #3050 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.22
2019-02-16 20:05:03 +02:00
Pavel Djundik
01981e30f8
Merge pull request #3048 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.7.2
2019-02-16 20:04:49 +02:00
Renovate Bot
61ad93b9d6
Update dependency webpack to v4.29.4 2019-02-16 18:02:41 +00:00
Renovate Bot
38d3fc3f58
Update dependency nyc to v13.3.0 2019-02-16 18:02:33 +00:00
Renovate Bot
e9ee768f39
Update dependency mime-types to v2.1.22 2019-02-16 18:02:24 +00:00
Renovate Bot
392a747d88
Update dependency @fortawesome/fontawesome-free to v5.7.2 2019-02-16 18:01:55 +00:00
Pavel Djundik
ae72d5828c
Merge pull request #2647 from thelounge/vue
Port sidebar, chat, user list, state to Vue
2019-02-16 20:01:01 +02:00
Jérémie Astori
2657332919
Fix loading page styling 2019-02-15 01:40:42 -05:00
Pavel Djundik
013129da1f Set moreHistoryAvailable when history reloads from storage 2019-02-13 16:44:15 +02:00
Pavel Djundik
c8568b5429 Redirect pageup/pagedown without manually animating the scroll 2019-02-13 16:44:15 +02:00
Pavel Djundik
3f3a22aa1e Disable clicking on the currently active channel
channel.id does not change, which causes some wonky behaviour when the channel gets trimmed
2019-02-13 16:44:15 +02:00
Pavel Djundik
a26fcb45b4 Change (parted) to a class name 2019-02-13 16:44:15 +02:00
Pavel Djundik
199df6b729 Fix hasRoleInChannel 2019-02-13 16:44:15 +02:00
Pavel Djundik
32f17d50b4 Use inverted logo in morning theme 2019-02-13 16:44:15 +02:00
Pavel Djundik
f3cf69796d Don't merge messages on client if server sends over 100 of them 2019-02-13 16:44:15 +02:00
Pavel Djundik
b066dc301e Move custom highlights to the server 2019-02-13 16:44:15 +02:00
Pavel Djundik
40bf9ee8ba Reset active user when leaving user list with mouse 2019-02-13 16:44:15 +02:00
Pavel Djundik
b02c3b6c17 Fix channel names in context menus 2019-02-13 16:44:15 +02:00
Pavel Djundik
19693bc9b7 Update Vue packages 2019-02-13 16:44:15 +02:00
Pavel Djundik
987cc6d3b4 Restore custom highlights functionality 2019-02-12 12:49:06 +02:00
Pavel Djundik
2b653a30d6 Tweak connection error spacing 2019-02-12 12:49:06 +02:00
Pavel Djundik
a4ec875c87 Check that CHANTYPES and PREFIX are set, and set defaults 2019-02-12 12:49:06 +02:00
Pavel Djundik
71b3acb152 Rename hotkeys array 2019-02-12 12:49:06 +02:00
Pavel Djundik
c13840e029 Don't sync counters for showInActive messages 2019-02-12 12:49:06 +02:00
Pavel Djundik
c33326e25e Update client/components/MessageTypes/whois.vue 2019-02-12 12:49:06 +02:00
Pavel Djundik
89355e50c3 Put unreads and highlights in aria-label/title in the channel list 2019-02-12 12:49:06 +02:00
Pavel Djundik
759e69ed07 Handle default preview state after loading 2019-02-12 12:49:06 +02:00
Pavel Djundik
42717e3dec Enable preserveWhitespace: false, add spaces where needed, fix whitespace when copying text 2019-02-12 12:49:06 +02:00
Pavel Djundik
5f0f745d10 Only send /join for current channel if there are no arguments 2019-02-12 12:49:06 +02:00
Pavel Djundik
7ba14fe4e3 Explicitly place * on actions in DOM 2019-02-12 12:49:06 +02:00
Pavel Djundik
99cda335ab Fix next/prev buttons in media viewer 2019-02-12 12:49:06 +02:00
Pavel Djundik
00b84d31f5 Fix whitespace in previews 2019-02-12 12:49:06 +02:00
Pavel Djundik
6d1d2e006a Remove extra .text span as its no longer needed 2019-02-12 12:49:06 +02:00
Pavel Djundik
4d400b6ace Hide scroll down button entirely with css to fix some issues 2019-02-12 12:49:06 +02:00
Pavel Djundik
e5b3c518e2 Do not show toggle arrow if link data is still loading 2019-02-12 12:49:06 +02:00
Pavel Djundik
05303e4cf1 Fix link expand buttons not showing if auto-expand option is off 2019-02-12 12:49:05 +02:00
Pavel Djundik
7d7005c8af Fix keepScrollPosition on condensed messages 2019-02-12 12:49:05 +02:00
Pavel Djundik
893d59e7c4 Skip scroll event which is called after setting scrollTop 2019-02-12 12:49:05 +02:00
Pavel Djundik
4a0f319e91 Ignore server unread sync for active channel 2019-02-12 12:49:05 +02:00
Pavel Djundik
3c4a9efe7e Fix lodash not being tree shaked properly 2019-02-12 12:49:05 +02:00
Pavel Djundik
def494533b Use native date constructor to calculate timeout until midnight 2019-02-12 12:49:05 +02:00
Pavel Djundik
5ba0e33fb9 Skip network status updates for quit networks 2019-02-12 12:49:05 +02:00
Pavel Djundik
f1994352bd Fix scroll button on iOS 2019-02-12 12:49:05 +02:00
Richard Lewis
caf728a2a7 Instrument tests with nyc instead of istanbul-instrumenter-loader. 2019-02-12 12:49:05 +02:00
Pavel Djundik
446ad6a5f4 Allow Vue devtools in production 2019-02-12 12:49:05 +02:00
Pavel Djundik
7b3f7d1c59 Fix clicking red banner not hiding the error 2019-02-12 12:49:05 +02:00
Pavel Djundik
b3e86dbab4 Fix unread markers not rendering with hidden status messages
Co-Authored-By: Richard Lewis <richrd@users.noreply.github.com>
2019-02-12 12:49:05 +02:00
Pavel Djundik
395be41728 Move message time formatting to Vue as computed 2019-02-12 12:49:05 +02:00
Richard Lewis
74edfcaa04 Limit input history to a 100 entries. 2019-02-12 12:49:05 +02:00
Pavel Djundik
d1185da9eb Fade buttons when disabled 2019-02-12 12:49:05 +02:00
Richard Lewis
cd76512619 Disable upload button instead of removing it from dom. 2019-02-12 12:49:05 +02:00
Pavel Djundik
dd686b563d Remove tests, fix lint, update packages 2019-02-12 12:49:05 +02:00
Richard Lewis
cc895e67ee Move date formatting to DateMarker and stop listening to daychange when no longer necessary. 2019-02-12 12:49:05 +02:00
Richard Lewis
7394e6b9f1 Update date markers vith vue instead of jQuery. 2019-02-12 12:49:05 +02:00
Pavel Djundik
7b15c53ed4 Rename some vue variables 2019-02-12 12:49:05 +02:00
Pavel Djundik
f526aa8b8b Do not navigate history when autocompleting 2019-02-12 12:49:05 +02:00
Pavel Djundik
4c103b467b Implement input history per channel 2019-02-12 12:49:05 +02:00
Pavel Djundik
b6e07a43f5 Make a consistent single funciton for updating notified/favicon/title 2019-02-12 12:49:05 +02:00
Pavel Djundik
47b9924f26 Use server side rendering in parse tests
Co-Authored-By: Richard Lewis <richrd@users.noreply.github.com>
2019-02-12 12:49:05 +02:00
Pavel Djundik
4f3dbc4b8f Fix up how span elements are generated in message parser 2019-02-12 12:49:05 +02:00
Pavel Djundik
ba2522ecda Update vue-loader 2019-02-12 12:49:05 +02:00
Pavel Djundik
c3a1c77447 Rebase image uploading to Vue 2019-02-12 12:49:05 +02:00
Pavel Djundik
5c69fe104d Keep scroll to bottom and check 'more' button previews when toggling sidebars 2019-02-12 12:49:05 +02:00
Pavel Djundik
f45f9a83ee Remove unnecessary resize handler 2019-02-12 12:49:05 +02:00
Richard Lewis
32776f0642 Improve more button implementation and fix lint. 2019-02-12 12:49:04 +02:00
Richard Lewis
8dff4a9478 Only show more button on link previews when needed. 2019-02-12 12:49:04 +02:00
Pavel Djundik
26dc37033c Make connection-error a vue state 2019-02-12 12:49:04 +02:00
Pavel Djundik
e2c65fd0de Fix titles on emojis 2019-02-12 12:49:04 +02:00
Pavel Djundik
5d4400ef90 Revert "Remove draggable for now"
This reverts commit f4c0a68fde99471bd546902ec2b9301ff6cec73a.
2019-02-12 12:49:04 +02:00
Pavel Djundik
9d8f02ce99 Remove devServer for now, it's not good enough 2019-02-12 12:48:45 +02:00
Pavel Djundik
a8cad55fda Fix input to behave better on Android 2019-02-12 12:48:45 +02:00
Pavel Djundik
140c14959c Fix user search not updating instantly on Android 2019-02-12 12:48:45 +02:00
Pavel Djundik
7c8441a93b Clear user lists on all channels when disconnected from network 2019-02-12 12:48:45 +02:00
Pavel Djundik
839b07fdc2 Do not disable input when disconnected 2019-02-12 12:48:45 +02:00
Pavel Djundik
1d4ab8fff1 Fix autocompletion menu not closing on send 2019-02-12 12:48:45 +02:00
Pavel Djundik
6877199515 Update eslint-plugin-vue 2019-02-12 12:48:45 +02:00
Pavel Djundik
bd57c6d620 Fix history not loading on channel switch 2019-02-12 12:48:45 +02:00
Pavel Djundik
fea6fff13a Keep scroll position on preview toggle 2019-02-12 12:48:45 +02:00
Pavel Djundik
0c5faf5879 Update eslint-plugin-vue 2019-02-12 12:48:45 +02:00
Pavel Djundik
e91f2aa024 Fix unread markers in condensed messages 2019-02-12 12:48:45 +02:00
Pavel Djundik
2c5549a567 Find channel in joinchannel correctly 2019-02-12 12:48:45 +02:00
Pavel Djundik
a21e0e34cd Fix unread marker not showing after condensed messages 2019-02-12 12:48:45 +02:00
Pavel Djundik
450f3f891a Update packages 2019-02-12 12:48:44 +02:00
Pavel Djundik
853f67ab40 Synchornize channel state to the client 2019-02-12 12:48:44 +02:00
Pavel Djundik
f2cbd1efed Pass PREFIX and CHANTYPES to parser 2019-02-12 12:48:44 +02:00
Pavel Djundik
cebfa6ac84 A little cleanup 2019-02-12 12:48:44 +02:00
Pavel Djundik
104692007f Use attr() instead of data() 2019-02-12 12:48:44 +02:00
Pavel Djundik
ae56191b9f Fix scroll-down button position in non channels 2019-02-12 12:48:44 +02:00
Pavel Djundik
d55eb28aea Make special channel behaviour the same
Fixes scrolling and overflowing
2019-02-12 12:48:44 +02:00
Pavel Djundik
5452d26c17 Don't bother trying to count unreads 2019-02-12 12:48:44 +02:00
Pavel Djundik
a10ac4e7da Make a single function to initialize channel variables 2019-02-12 12:48:44 +02:00
Pavel Djundik
ad0f638487 Add jump-to-bottom arrow when scrolled up 2019-02-12 12:48:44 +02:00
Pavel Djundik
bc69ef5f0b Actually change message output based on statusMessage setting 2019-02-12 12:48:44 +02:00
Pavel Djundik
c168e15db8 Don't use trimEnd 2019-02-12 12:48:44 +02:00
Pavel Djundik
c70b4d4c80 Fix unread marker being off by one on the server 2019-02-12 12:48:44 +02:00
Pavel Djundik
0e7880a049 Fix autocompleting multiple times not working 2019-02-12 12:48:44 +02:00
Pavel Djundik
1bfaef1985 Keep pendingMessage on reconnect 2019-02-12 12:48:44 +02:00
Pavel Djundik
987f48ae13 Fix MOTD trimming 2019-02-12 12:48:44 +02:00
Pavel Djundik
0ba6200bb7 Keep scrolledToBottom on reconnect 2019-02-12 12:48:44 +02:00
Pavel Djundik
2303a02839 Reduce throttle delay 2019-02-12 12:48:44 +02:00
Pavel Djundik
d00c70f804 Fix some input issues on mobile 2019-02-12 12:48:44 +02:00
Pavel Djundik
86ddce974d Update lobby name correctly when editing network 2019-02-12 12:48:44 +02:00
Pavel Djundik
c42fc55c6f Fix reconnection state 2019-02-12 12:48:44 +02:00
Pavel Djundik
cd94b5d655 Fix lint 2019-02-12 12:48:44 +02:00
Pavel Djundik
8580592a91 Cleaner MOTD text
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2019-02-12 12:48:44 +02:00
Pavel Djundik
04d86a3550 Fix channel sort not working 2019-02-12 12:48:44 +02:00
Pavel Djundik
a899b1b46d Throttle scroll event instead of debouncing 2019-02-12 12:48:44 +02:00
Pavel Djundik
36b6fdcc88 Reference scrolledToBottom variable instead of recalculating on message received 2019-02-12 12:48:44 +02:00
Pavel Djundik
efdf11dcae Reset scrolledToBottom when channel changes 2019-02-12 12:48:44 +02:00
Pavel Djundik
7e5e031ea8 Reset canDisplay on previews on destroy 2019-02-12 12:48:44 +02:00
Pavel Djundik
4b5252d285 Some scroll fixes 2019-02-12 12:48:44 +02:00
Richard Lewis
f4b4cfdee2 Make event listneres passive. 2019-02-12 12:48:44 +02:00
Richard Lewis
c9f5e06ee4 Keep scroll to bottom when resizing window. 2019-02-12 12:48:44 +02:00
Pavel Djundik
a15b10ca45 Revert slideout.js changes 2019-02-12 12:48:44 +02:00
Pavel Djundik
5d8a581201 Fix input not resizing back after sending a message 2019-02-12 12:48:44 +02:00
Pavel Djundik
8133805dec Allow shift+enter to insert new lines 2019-02-12 12:48:43 +02:00
Pavel Djundik
a0f42af0d8 Fix missed else-if 2019-02-12 12:48:43 +02:00
Pavel Djundik
bb0450cb31 Move history logic to MessageList, fix previews not keeping scroll 2019-02-12 12:48:43 +02:00
Pavel Djundik
9926157683 Resize input when typing 2019-02-12 12:48:43 +02:00
Pavel Djundik
8e130f0259 Fix incorrectly trimming channel 2019-02-12 12:48:43 +02:00
Pavel Djundik
9249464445 Fix condensed line being clickable 2019-02-12 12:48:43 +02:00
Pavel Djundik
797731262a Fix menu swiping 2019-02-12 12:48:43 +02:00
Pavel Djundik
d9206c1087 Check if element exists before trying to change message 2019-02-12 12:48:43 +02:00
Pavel Djundik
77947b46c8 Import ParsedMessage in back msg 2019-02-12 12:48:43 +02:00
Pavel Djundik
b88a186d05 Fix history not loading after trimming 2019-02-12 12:48:43 +02:00
Pavel Djundik
6a82114b62 Cleanup msg event 2019-02-12 12:48:43 +02:00
Pavel Djundik
3d43b96d5a Make network lobby a separate component 2019-02-12 12:48:43 +02:00
Pavel Djundik
8931570c02 Port join-channel completely to Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
80a12d98b4 Update topic in channel state 2019-02-12 12:48:43 +02:00
Pavel Djundik
e92f5d573b Remove extra invalid class on links in chat 2019-02-12 12:48:43 +02:00
Pavel Djundik
a8c777c797 Remove render.js 2019-02-12 12:48:43 +02:00
Pavel Djundik
825e3beba6 Show previews in actions 2019-02-12 12:48:43 +02:00
Pavel Djundik
499beb0257 Keep scroll position when scrolling up 2019-02-12 12:48:43 +02:00
Pavel Djundik
dbe95fcc13 Don't render preview until image is loaded 2019-02-12 12:48:43 +02:00
Pavel Djundik
b982623aaa Deduplicate and optimize 'keep to bottom' 2019-02-12 12:48:43 +02:00
Pavel Djundik
a5625ba203 Remove scroll code from more event 2019-02-12 12:48:43 +02:00
Pavel Djundik
a138237155 Remove expensive and unnecessary button check on channel switch 2019-02-12 12:48:43 +02:00
Pavel Djundik
ae692b1f2f Fix parsed message in actions 2019-02-12 12:48:43 +02:00
Pavel Djundik
e3ff385ae0 Remove HTML version of parse() 2019-02-12 12:48:43 +02:00
Pavel Djundik
d83dcc35e2 Port 'more' button in previews to Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
1cd28a5ccf Fix sending msg:preview:toggle to server 2019-02-12 12:48:43 +02:00
Pavel Djundik
2bb8287519 Render preview toggle in Vue 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebfc6fa724 Create elements instead of using raw HTML 2019-02-12 12:48:43 +02:00
Pavel Djundik
ebda927bb1 Render toggle button after links 2019-02-12 12:48:43 +02:00
Pavel Djundik
5792bff49d Display previews as they come in; fix image viewer 2019-02-12 12:48:43 +02:00
Pavel Djundik
c6262a36e6 Fix tab completion not updating model 2019-02-12 12:48:43 +02:00
Pavel Djundik
c369f0fdb7 Some fixes with unread marker 2019-02-12 12:48:43 +02:00
Pavel Djundik
c84eee22f2 Fix duplicate messages on channel join 2019-02-12 12:48:43 +02:00
Pavel Djundik
771739cf94 Port ignore list to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
739d44b561 Trim channel when switching away from it 2019-02-12 12:48:42 +02:00
Pavel Djundik
b963fe3cf0 Use vue's conditional classes 2019-02-12 12:48:42 +02:00
Pavel Djundik
d97356e65a Only bind mouseover on username if necessary 2019-02-12 12:48:42 +02:00
Pavel Djundik
48187a0260 Delete userlist.js 2019-02-12 12:48:42 +02:00
Richard Lewis
c431ac6306 Add hover selection to user list. 2019-02-12 12:48:42 +02:00
Richard Lewis
060097c118 Implement keyboard navigation in user list. 2019-02-12 12:48:42 +02:00
Pavel Djundik
30bdfe9d3f Hide 'show more history' button if there are no more messages 2019-02-12 12:48:42 +02:00
Pavel Djundik
0654a4373f Minor fix for previews 2019-02-12 12:48:42 +02:00
Pavel Djundik
2ab3518c52 Fix history not loading on channel switch 2019-02-12 12:48:42 +02:00
Pavel Djundik
207ab28b92 Some fixes with IntersectionObserver 2019-02-12 12:48:42 +02:00
Pavel Djundik
595915fefd Render link previews in Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
5f5b5fef3d Enable .js linter 2019-02-12 12:48:42 +02:00
Pavel Djundik
db803a8548 Port channel list to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
96569e71a3 Some fixes 2019-02-12 12:48:42 +02:00
Pavel Djundik
121dd35c3b Port ban lists to Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
ee0413de4b Remove invalid v-elseif 2019-02-12 12:48:42 +02:00
Pavel Djundik
2d2c836a34 Remove user_name template 2019-02-12 12:48:42 +02:00
Pavel Djundik
aa1446c19d Some fixes for unread marker 2019-02-12 12:48:42 +02:00
Pavel Djundik
f9967a92c7 Remove console.log 2019-02-12 12:48:42 +02:00
Pavel Djundik
a54a726e93 Refactor client side commands
Co-Authored-By: Max Leiter <hello@maxleiter.com>
2019-02-12 12:48:42 +02:00
Pavel Djundik
0a774758b9 Fix double input submit 2019-02-12 12:48:42 +02:00
Pavel Djundik
084e01cf46 Implement message trimming 2019-02-12 12:48:42 +02:00
Pavel Djundik
f9d255b678 Passthrough input ref 2019-02-12 12:48:42 +02:00
Pavel Djundik
2e3b95b9ed Fix input keybinds 2019-02-12 12:48:42 +02:00
Pavel Djundik
dbe6df1ab6 Fix clipboard "fixes" 2019-02-12 12:48:42 +02:00
Pavel Djundik
1831e2e63e Fix inline channel links 2019-02-12 12:48:42 +02:00
Pavel Djundik
f0390dae63 Scroll to bottom 2019-02-12 12:48:42 +02:00
Pavel Djundik
eff6dcb514 Fix context menu opening wrong thing 2019-02-12 12:48:42 +02:00
Pavel Djundik
aea779cfdf Remove some unnecessary code 2019-02-12 12:48:42 +02:00
Pavel Djundik
8e64670b4e Keep condensed open when new messages arrive 2019-02-12 12:48:42 +02:00
Pavel Djundik
9ab5b9d791 Implement condensed messages in Vue 2019-02-12 12:48:42 +02:00
Pavel Djundik
6116edaa06 Remove msg_action.tpl 2019-02-12 12:48:41 +02:00
Pavel Djundik
0730825185 Convert message actions to Vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
dee76adc0c Implement network collapsing in Vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
e0e48925b5 Remove input history 2019-02-12 12:48:41 +02:00
Pavel Djundik
1e09ccdb90 Implement user search in vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
c20af6329b Use input model 2019-02-12 12:48:41 +02:00
Pavel Djundik
a229138ca6 Add connected state 2019-02-12 12:48:41 +02:00
Pavel Djundik
3300276c27 Delete some files and undo server change 2019-02-12 12:48:41 +02:00
Pavel Djundik
7b209e5d31 Missed a setting 2019-02-12 12:48:41 +02:00
Pavel Djundik
e28e13bd10 Make class settings work (colored nicks, etc) 2019-02-12 12:48:41 +02:00
Pavel Djundik
9290264fa5 Make user list and message list components 2019-02-12 12:48:41 +02:00
Pavel Djundik
ebb63f2742 Fix sending messages 2019-02-12 12:48:41 +02:00
Pavel Djundik
09fa3e5c86 Fix autocompletion 2019-02-12 12:48:41 +02:00
Pavel Djundik
0e930c9356 Make history loading work 2019-02-12 12:48:41 +02:00
Pavel Djundik
25840dfef4 Single chat container (with buffered input), user list in vue 2019-02-12 12:48:41 +02:00
Pavel Djundik
e931866aeb Use dev-server for hot reload 2019-02-12 12:48:41 +02:00
Pavel Djundik
1d2a11729f Render chat/messages in Vue (mostly broken) 2019-02-12 12:48:41 +02:00
Pavel Djundik
0b269423aa Remove remaining DOM references to badge/highlight 2019-02-12 12:48:41 +02:00
Pavel Djundik
631fd6138c Hide collapse button if there are no channels 2019-02-12 12:48:41 +02:00
Pavel Djundik
d4a23ffc98 Fix loading disappearing too soon 2019-02-12 12:48:41 +02:00
Pavel Djundik
7e332b817d Channel list rendering with Vue
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-02-12 12:48:41 +02:00
Pavel Djundik
18bca3bce1
Merge pull request #3007 from thelounge/renovate/package-json-6.x
Update dependency package-json to v6
2019-02-12 12:48:09 +02:00
Pavel Djundik
a30e1e8b61
Merge pull request #3044 from thelounge/xpaw/fix-3035
Fix copying text in Firefox
2019-02-12 12:47:49 +02:00
Pavel Djundik
4f3e4a0865
Merge pull request #3004 from thelounge/xpaw/drop-node-6
Bump minimum node version to 8 LTS
2019-02-12 12:47:36 +02:00
Pavel Djundik
77dc3086a0 Fix copying text in Firefox
Fixes #3035
2019-02-12 10:52:07 +02:00
Renovate Bot
0f0c9f2e65
Update dependency package-json to v6 2019-02-11 08:36:09 +00:00
Pavel Djundik
51384403fe
Merge pull request #3042 from thelounge/astorije/changelog-3.0.1
Add changelog entry for v3.0.1
2019-02-11 10:35:41 +02:00
Pavel Djundik
03a355f109
v3.0.1 2019-02-11 10:17:18 +02:00
Jérémie Astori
ffd51a627b
Add changelog entry for v3.0.1 2019-02-11 00:57:22 -05:00
Pavel Djundik
c19fecb240
Merge pull request #3040 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.2.0
2019-02-09 17:44:14 +02:00
Renovate Bot
48f10ec52a
Update dependency irc-framework to v4.2.0 2019-02-09 15:13:09 +00:00
Jérémie Astori
e4209714ee
Merge pull request #3033 from thelounge/xpaw/fix-input-overflow
Fix up textarea growing to avoid rounding issues in Chrome
2019-02-08 01:00:15 -05:00
Jérémie Astori
95ac570c7b
Merge pull request #3034 from thelounge/xpaw/force-disconnect
Allow forcing /disconnect to stop reconnection timer from running
2019-02-08 00:52:42 -05:00
Pavel Djundik
034c0947f6
Merge pull request #3038 from thelounge/renovate/handlebars-4.x
Update dependency handlebars to v4.1.0
2019-02-07 16:31:35 +02:00
Renovate Bot
8884c90fcf
Update dependency handlebars to v4.1.0 2019-02-07 10:22:04 +00:00
Pavel Djundik
21b3e4b67c
Merge pull request #3036 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.29.3
2019-02-07 11:11:16 +02:00
Renovate Bot
dfcabb51f0
Update dependency webpack to v4.29.3 2019-02-07 08:45:30 +00:00
Pavel Djundik
211ebbfe5f Allow forcing /disconnect to stop reconnection timer from running 2019-02-06 12:10:07 +02:00
Pavel Djundik
d33021773c Fix up textarea growing to avoid rounding issues in Chrome 2019-02-05 23:24:30 +02:00
Pavel Djundik
f3864f8295
Merge pull request #3029 from thelounge/renovate/nyc-13.x
Update dependency nyc to v13.2.0
2019-02-05 14:25:00 +02:00
Pavel Djundik
fbce1ec5c0
Merge pull request #3028 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.29.1
2019-02-05 14:24:51 +02:00
Pavel Djundik
1c16c329c0
Merge pull request #3031 from creesch/patch-1
Invites should not automatically highlight you.
2019-02-05 14:24:36 +02:00
Renovate Bot
244ab1378e
Update dependency webpack to v4.29.1 2019-02-05 12:23:33 +00:00
Renovate Bot
4ff96cb28e
Update dependency nyc to v13.2.0 2019-02-05 12:23:23 +00:00
Pavel Djundik
adc6fa8409
Merge pull request #3030 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.2.3
2019-02-05 14:22:54 +02:00
creesch
39071aff50 Invites should not automatically highlight you. 2019-02-05 13:06:00 +01:00
Renovate Bot
c785bfa261
Update dependency webpack-cli to v3.2.3 2019-02-05 03:16:10 +00:00
Pavel Djundik
7840b56690
Merge pull request #3022 from thelounge/astorije/editorconfig-tab-indent
Make sure the editorconfig indent size applies to all file formats
2019-02-04 10:19:38 +02:00
Jérémie Astori
eaab413409
Use a default of 4 spaces for viewing purposes 2019-02-03 03:33:42 -05:00
Jérémie Astori
a994830bd8
Make sure the editorconfig indent size applies to all file formats
I was glancing at the Vue PR, and was tired of scrolling horizontally on files with a lot of levels. I first discovered the `?ts=2` query string for GitHub, but then [read here](https://stackoverflow.com/a/33831598/1935861) that it will respect the `indent_size` for tabs, which is rather nifty.
2019-02-03 02:44:50 -05:00
Pavel Djundik
4809884182
Merge pull request #3016 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.7.1
2019-02-02 11:10:38 +02:00
Pavel Djundik
0f4e29d60d
Merge pull request #3011 from thelounge/xpaw/upload-cursor
Fix up link insertion after uploads to be saner
2019-02-02 11:09:29 +02:00
Pavel Djundik
f14490cdb5
Merge pull request #3010 from thelounge/xpaw/fix-binary-uploads
Fix incorrect 404 error for files with unknown file type
2019-02-02 11:09:19 +02:00
Renovate Bot
ff8ecdeef7
Update dependency @fortawesome/fontawesome-free to v5.7.1 2019-02-01 18:42:36 +00:00
Pavel Djundik
b06dc8022b
Merge pull request #3015 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.13.0
2019-02-01 20:37:54 +02:00
Renovate Bot
92311e2089
Update dependency eslint to v5.13.0 2019-02-01 17:54:40 +00:00
Pavel Djundik
3d82378cbd Fix incorrect 404 error for files with unknown file type 2019-01-31 10:12:50 +02:00
Pavel Djundik
cf4d2bdfe6
Merge pull request #3008 from thelounge/xpaw/webirc-conf
Add `webirc` key and commas to make it more understandable
2019-01-31 10:00:13 +02:00
Pavel Djundik
9003768d56 Fix up link insertion after uploads to be saner 2019-01-30 20:00:59 +02:00
Pavel Djundik
314a6346c6
Merge pull request #2997 from thelounge/astorije/changelog-renovate-user
Do not report the (renamed) Renovate bot as a contributor
2019-01-30 11:17:26 +02:00
Pavel Djundik
1ea8b576b3 Add webirc key and commas to make it more understandable 2019-01-30 11:15:46 +02:00
Pavel Djundik
f6d02dd816
Merge pull request #3006 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.7.0
2019-01-30 11:15:00 +02:00
Jérémie Astori
7c024864b2
Improve discriminating bots from actual contributors in the list of PRs/commits 2019-01-30 00:47:08 -05:00
Jérémie Astori
682207ffe6
Use a __typename on commits and pull requests to discriminate on types
This was done by checking if the entry had a title or a messageHeadline, which is rather brittle.
2019-01-30 00:34:39 -05:00
Pavel Djundik
b8dde41482 Bump minimum node version to 8 LTS 2019-01-29 10:44:19 +02:00
Jérémie Astori
85d87a3b37
Make sure to retrieve the correct tag info when there is no commit attached to the tag 2019-01-29 01:04:30 -05:00
Renovate Bot
e4451fb207
Update dependency @fortawesome/fontawesome-free to v5.7.0 2019-01-29 05:49:05 +00:00
Jérémie Astori
4fe13ae858
Merge pull request #3003 from thelounge/xpaw/node-10
Bump Travis to use Node 10 LTS for Windows, OSX, and production builds
2019-01-29 00:32:04 -05:00
Pavel Djundik
ce87521b37
Bump Travis to use Node 10 LTS for Windows, OSX, and production builds 2019-01-28 17:35:42 +02:00
Pavel Djundik
9b8e677803
Merge pull request #3001 from thelounge/xpaw/update-deps
Update remaining dependencies and lock file
2019-01-28 11:14:59 +02:00
Pavel Djundik
182944bb30 Update remaining dependencies and lock file 2019-01-28 10:54:58 +02:00
Jérémie Astori
f54cf50a0b
Merge pull request #2947 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.12.1
2019-01-28 03:38:02 -05:00
Jérémie Astori
bd5cbba03e
Do not report the (renamed) Renovate bot as a contributor 2019-01-28 03:13:09 -05:00
Renovate Bot
b3c55bc200
Update dependency eslint to v5.12.1 2019-01-28 03:04:44 -05:00
Jérémie Astori
17fbf10909
Merge pull request #2951 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.2.1
2019-01-28 03:02:34 -05:00
Pavel Djundik
99e69c55aa
Merge pull request #2995 from thelounge/xpaw/line-height
Fix line-height to match height in input
2019-01-28 10:01:32 +02:00
Renovate Bot
7579bba079
Update dependency webpack-cli to v3.2.1 2019-01-28 02:35:26 -05:00
Jérémie Astori
9a2d845edd
Merge pull request #2954 from thelounge/renovate/babel-loader-8.x
Update dependency babel-loader to v8.0.5
2019-01-28 02:32:51 -05:00
Renovate Bot
579118eb72
Update dependency babel-loader to v8.0.5 2019-01-28 02:05:42 -05:00
Jérémie Astori
8c142811ef
Merge pull request #2965 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.13.0
2019-01-28 01:57:24 -05:00
Renovate Bot
89bbbc0e27
Update dependency yarn to v1.13.0 2019-01-28 01:29:50 -05:00
Jérémie Astori
8bf731fedd
Merge pull request #2986 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.3
2019-01-28 01:06:50 -05:00
Renovate Bot
b0c18e06b9
Update dependency sinon to v7.2.3 2019-01-28 00:38:21 -05:00
Jérémie Astori
113e77b1d7
Merge pull request #2944 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.6.3
2019-01-28 00:12:22 -05:00
Renovate Bot
ac59d99d8e
Update dependency @fortawesome/fontawesome-free to v5.6.3 2019-01-28 04:12:29 +00:00
Jérémie Astori
7052e4721b
Merge pull request #2938 from thelounge/renovate/handlebars-loader-1.x
Update dependency handlebars-loader to v1.7.1
2019-01-27 23:12:16 -05:00
Jérémie Astori
eb7f311d94
Merge pull request #2941 from thelounge/renovate/emoji-regex-7.x
Update dependency emoji-regex to v7.0.3
2019-01-27 23:12:07 -05:00
Jérémie Astori
d785af9c05
Merge pull request #2957 from thelounge/renovate/chalk-2.x
Update dependency chalk to v2.4.2
2019-01-27 23:11:56 -05:00
Jérémie Astori
8ef1bc63e8
Merge pull request #2962 from thelounge/renovate/primer-tooltips-1.x
Update dependency primer-tooltips to v1.5.11
2019-01-27 23:11:42 -05:00
Jérémie Astori
cf79ba3b80
Merge pull request #2991 from thelounge/renovate/moment-2.x
Update dependency moment to v2.24.0
2019-01-27 23:11:32 -05:00
Jérémie Astori
76544a192a
Merge pull request #3000 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.7.1
2019-01-27 23:11:22 -05:00
Renovate Bot
46c649c7ff
Update dependency primer-tooltips to v1.5.11 2019-01-28 00:25:29 +00:00
Renovate Bot
19812197c7
Update dependency moment to v2.24.0 2019-01-28 00:25:20 +00:00
Renovate Bot
0bf4e3fab3
Update dependency handlebars-loader to v1.7.1 2019-01-28 00:25:10 +00:00
Renovate Bot
cfa420de2e
Update dependency file-type to v10.7.1 2019-01-28 00:25:02 +00:00
Renovate Bot
76bc057937
Update dependency emoji-regex to v7.0.3 2019-01-28 00:24:46 +00:00
Renovate Bot
e2e1781612
Update dependency chalk to v2.4.2 2019-01-28 00:24:38 +00:00
Jérémie Astori
e58ad69a38
Merge pull request #2942 from thelounge/renovate/babel-monorepo
Update dependency @babel/preset-env to v7.3.1
2019-01-27 19:23:41 -05:00
Renovate Bot
f37e0ffde3
Update dependency @babel/preset-env to v7.3.1 2019-01-27 23:23:43 +00:00
Jérémie Astori
3e623e8b77
Merge pull request #2939 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.7.0
2019-01-27 18:23:20 -05:00
Pavel Djundik
b27e92f11d
Merge pull request #2999 from thelounge/astorije/travis-npm-dist-tag
Keep using npm to clean up dist-tags after a stable release
2019-01-28 00:56:32 +02:00
Pavel Djundik
03c4fc58a3
Merge pull request #2993 from thelounge/xpaw/require-resolve-yarn
Use require.resolve for yarn
2019-01-28 00:56:19 +02:00
Pavel Djundik
ba397c158a
Merge pull request #2989 from thelounge/xpaw/fix-2988
Always emit part message (required for logging)
2019-01-28 00:56:11 +02:00
Jérémie Astori
7ebdb84a30
Keep using npm to clean up dist-tags after a stable release
- After deploy, `yarn tag` gets prompted for login, because npm login != yarn login
- When I tried to do it locally, `yarn tag remove thelounge next` consistently gave me a 404, but `npm dist-tag rm thelounge next` worked nbd.
2019-01-27 17:54:58 -05:00
Jérémie Astori
eec6ce80ae
Merge pull request #2998 from thelounge/astorije/changelog-v3
Add changelog entry for v3.0.0
2019-01-27 16:42:34 -05:00
Jérémie Astori
3c3546c3d1
v3.0.0 2019-01-27 16:15:57 -05:00
Jérémie Astori
4ae7d5b0ef
Add changelog entry for v3.0.0 2019-01-27 16:14:26 -05:00
Pavel Djundik
d260ee05da Fix line-height to match height in input 2019-01-26 10:34:12 +02:00
Pavel Djundik
c870545b46 Use require.resolve for yarn 2019-01-24 18:52:15 +02:00
Pavel Djundik
02a343624e Always emit part message (required for logging)
Fixes #2988
2019-01-21 18:07:00 +02:00
Pavel Djundik
f49bf19023
Merge pull request #2979 from thelounge/xpaw/set-yarn-cache
Set yarn cache folder in the packages folder
2019-01-21 14:42:14 +02:00
Pavel Djundik
b81de36403
Merge pull request #2985 from thelounge/xpaw/fix-fs-sync
Fix incorrect use of fs.stat
2019-01-21 11:13:12 +02:00
Pavel Djundik
221b7145f1
Fix incorrect use of fs.stat 2019-01-19 12:00:09 +02:00
Pavel Djundik
6e1a73eea2
Merge pull request #2984 from thelounge/astorije/selectable-changelog
Make sure the changelog page is selectable, e.g. for copy-pasting commands
2019-01-19 11:40:35 +02:00
Jérémie Astori
69788a6b9b
Make sure the changelog page is selectable, e.g. for copy-pasting commands 2019-01-19 01:37:26 -05:00
Jérémie Astori
35e13cad62
Merge pull request #2983 from thelounge/astorije/upload-file-casing
Fix casing of "Upload file" tooltip
2019-01-18 03:17:28 -05:00
Jérémie Astori
2b10cf203b
Fix casing of "Upload file" tooltip 2019-01-18 00:53:28 -05:00
Jérémie Astori
c3ba9234ac
Merge pull request #2981 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4.1.0
2019-01-17 00:50:48 -05:00
Renovate Bot
2e4b543ca9
Update dependency irc-framework to v4.1.0 2019-01-16 16:52:54 +00:00
Pavel Djundik
e452ba5e84
Merge pull request #2980 from thelounge/xpaw/fix-highlight
Fix highlight styles not applying to notices and actions
2019-01-16 13:32:38 +02:00
Pavel Djundik
84ae91c525
Merge pull request #2977 from thelounge/xpaw/setting-new
Add an extra check for setting names
2019-01-16 13:32:22 +02:00
Pavel Djundik
17115fa74d Fix highlight styles not applying to notices and actions 2019-01-16 13:29:45 +02:00
Pavel Djundik
6937e6e772 Set yarn cache folder in the packages folder
Fixes thelounge/thelounge-docker#71
2019-01-16 12:51:52 +02:00
Pavel Djundik
e80b058550
Don't allow setting values to be objects 2019-01-16 10:59:52 +02:00
Pavel Djundik
95a0045a0d
Add an extra check for setting names 2019-01-16 10:52:09 +02:00
Pavel Djundik
589e846b73 v3.0.0-rc.6 2019-01-15 13:52:11 +02:00
Pavel Djundik
bd8fdea618 Update changelog 2019-01-15 13:52:05 +02:00
Pavel Djundik
6fb41b44d4
Merge pull request #2937 from thelounge/xpaw/empty-storage-later
Empty storage directory after destroying all channels
2019-01-15 13:51:35 +02:00
Pavel Djundik
3457e2cfde
Merge pull request #2975 from thelounge/xpaw/fix-2969
Fix .active styles incorrectly applying to hovered users in userlist
2019-01-15 13:32:47 +02:00
Pavel Djundik
13d21ce002
Merge pull request #2959 from thelounge/xpaw/relax-identd
Relax identd checks to make it more compatible
2019-01-15 13:32:39 +02:00
Pavel Djundik
c9f407c224
Merge pull request #2955 from moundahiwale/moun/catch-ldap-messages
Catch LDAP bind error and search warning log messages in ldap tests
2019-01-15 13:32:23 +02:00
Pavel Djundik
2f777627b9
Merge pull request #2958 from thelounge/xpaw/ident-bind
Don't fallback to `host` in identd server
2019-01-15 13:32:13 +02:00
Pavel Djundik
185fb9c71c
Merge pull request #2967 from thelounge/xpaw/fix-2966
Add fallback ip address for unix sockets
2019-01-15 13:32:00 +02:00
Pavel Djundik
eb648195de Fix .active styles incorrectly applying to hovered users in userlist
Fixes #2969
2019-01-15 12:56:26 +02:00
Pavel Djundik
9031999033
Merge pull request #2973 from thelounge/xpaw/sw-non-200-reject
Serve requests from cache when server responds with non 2xx response
2019-01-12 10:27:43 +02:00
Jérémie Astori
80b5fa20fe
Merge pull request #2970 from thelounge/astorije/changelog-gen-contributors
List website contributors as well when generating changelog entries
2019-01-12 01:46:05 -05:00
Jérémie Astori
347faa8674
Merge pull request #2972 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.6
2019-01-12 01:44:57 -05:00
Pavel Djundik
cb59681cd9 Serve requests from cache when server responds with non 2xx response 2019-01-11 21:26:01 +02:00
Renovate Bot
e86b754390
Update dependency sqlite3 to v4.0.6 2019-01-11 18:23:04 +00:00
Jérémie Astori
07052d2870
List website contributors as well when generating changelog entries 2019-01-10 01:11:48 -05:00
Pavel Djundik
d0f6c70df5 Add fallback ip address for unix sockets
Fixes #2966
2019-01-09 11:38:21 +02:00
Jérémie Astori
2a1e711f42
Merge pull request #2961 from thelounge/astorije/changelog-refresh
Only generate entries for commits/PRs that do not already exist in the CHANGELOG upon re-generation
2019-01-09 01:47:28 -05:00
Jérémie Astori
aa39f31fa9
Cleanup changelog entries dedupe function 2019-01-08 00:30:06 -05:00
Jérémie Astori
41c1b3275e
Only generate entries for commits/PRs that do not already exist in the CHANGELOG upon re-generation
This is helpful when commits are added after starting to work on the changelog entry.
2019-01-07 00:32:18 -05:00
Pavel Djundik
a9aac1648c
Relax identd checks to make it more compatible 2019-01-06 21:44:43 +02:00
Pavel Djundik
fedbb0b819
Don't fallback to host in identd server 2019-01-06 20:55:15 +02:00
Pavel Djundik
4b75b42597
Merge pull request #2945 from thelounge/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.1.14 [SECURITY]
2019-01-06 11:42:07 +02:00
moundahiwale
c30684aad1 Assert LDAP bind failed error and search warning log messages in ldap tests 2019-01-05 23:08:10 +00:00
Renovate Bot
ffeb2322f4
Update dependency webpack-dev-server to v3.1.14 2018-12-24 10:05:38 +00:00
Pavel Djundik
ab083f9eb6 Fix wav mime type in uploader 2018-12-19 17:20:47 +02:00
Renovate Bot
1b657973a4
Update dependency file-type to v10.7.0 2018-12-18 18:46:50 +00:00
Pavel Djundik
ed10e14b47
Empty storage directory after destroying all channels 2018-12-18 13:08:18 +02:00
Jérémie Astori
0995f95296
Merge pull request #2932 from thelounge/renovate/babel-monorepo
Update dependency @babel/core to v7.2.2
2018-12-15 23:47:04 -05:00
Jérémie Astori
ce1e12b151
Merge pull request #2930 from thelounge/xpaw/ldap-log
Add logging to all code paths in LDAP auth
2018-12-15 23:46:04 -05:00
Jérémie Astori
263d2ca133
Merge pull request #2786 from thelounge/xpaw/fix-changelog
Update changelog generator script
2018-12-15 23:44:29 -05:00
Renovate Bot
b4c47b09b6
Update dependency @babel/core to v7.2.2 2018-12-15 10:14:02 +00:00
Pavel Djundik
a07c80322d
Merge pull request #2927 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.2
2018-12-13 11:07:37 +02:00
Pavel Djundik
80b95b1fa6
Merge pull request #2931 from thelounge/renovate/moment-2.x
Update dependency moment to v2.23.0
2018-12-13 11:07:27 +02:00
Pavel Djundik
c7f2a373f1
Merge pull request #2929 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.6.1
2018-12-13 11:07:18 +02:00
Renovate Bot
71912dad44
Update dependency moment to v2.23.0 2018-12-13 06:55:04 +00:00
Pavel Djundik
7da036bf34 Add extra logging in ldap 2018-12-12 22:33:30 +02:00
Renovate Bot
87107c7ad8
Update dependency @fortawesome/fontawesome-free to v5.6.1 2018-12-12 17:11:36 +00:00
Renovate Bot
5cd82b1a40
Update dependency sinon to v7.2.2 2018-12-12 08:24:37 +00:00
Pavel Djundik
6eb2af1bd8
Merge pull request #2925 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.2.0
2018-12-10 11:30:54 +02:00
Renovate Bot
a1df89d956
Update dependency sinon to v7.2.0 2018-12-10 08:14:58 +00:00
Jérémie Astori
74b7d22a44
Add a couple URLs in changelog output to make it easier to track skipped commits/PRs 2018-12-10 01:17:47 -05:00
Jérémie Astori
f832f8e65b
Fix a bug in comment meta tag detection 2018-12-10 01:17:19 -05:00
Jérémie Astori
8e2b64d8b1
Skip all commits for version bumps or changelog entries 2018-12-10 01:16:58 -05:00
Jérémie Astori
99181b9e15
Merge pull request #2922 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.6.0
2018-12-09 03:26:49 -05:00
Renovate Bot
bf89191c6b
Update dependency @fortawesome/fontawesome-free to v5.6.0 2018-12-08 07:23:33 +00:00
Jérémie Astori
439924532d
Merge pull request #2923 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.10.0
2018-12-08 02:22:56 -05:00
Renovate Bot
99056d3c2d
Update dependency eslint to v5.10.0 2018-12-08 06:33:51 +00:00
Pavel Djundik
2ad32b1be0
Merge pull request #2920 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.5.0
2018-12-07 12:26:22 +02:00
Renovate Bot
5fdbef39a4
Update dependency mini-css-extract-plugin to v0.5.0 2018-12-07 10:17:17 +00:00
Pavel Djundik
63aaa9e1c8
Merge pull request #2919 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.27.1
2018-12-05 21:46:19 +02:00
Renovate Bot
bdcac810a1
Update dependency webpack to v4.27.1 2018-12-05 19:33:14 +00:00
Pavel Djundik
6ec00bb159
Merge pull request #2914 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.6.0
2018-12-04 14:24:39 +02:00
Pavel Djundik
3298ebe0e3
Merge pull request #2917 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.27.0
2018-12-04 14:24:31 +02:00
Pavel Djundik
2482fdc7d0
Merge pull request #2916 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.2.0
2018-12-04 14:24:23 +02:00
Pavel Djundik
3a40d17bbc
Merge pull request #2915 from MaxLeiter/patch-4
Fix spelling mistake in defaults/config.js
2018-12-04 14:17:12 +02:00
Renovate Bot
0df3f8b731
Update dependency webpack to v4.27.0 2018-12-04 09:35:59 +00:00
Renovate Bot
1981da9667
Update babel monorepo to v7.2.0 2018-12-03 19:08:51 +00:00
Max Leiter
47abb00f19
Fix spelling mistake in defaults/config.js 2018-12-03 19:25:12 +01:00
Renovate Bot
9f76532fa6
Update dependency file-type to v10.6.0 2018-12-03 03:33:58 +00:00
Pavel Djundik
5efde5b2aa
Merge pull request #2913 from thelounge/xpaw/doc-relative-urls
Make links in generated config relative
2018-11-30 12:57:21 +02:00
Pavel Djundik
f02949ef0a Make links in generated config relative 2018-11-30 12:34:18 +02:00
Pavel Djundik
62e24a9c2b
Merge pull request #2901 from thelounge/xpaw/new-links
Update documentation links in config, fix up ldap section
2018-11-30 12:30:59 +02:00
Pavel Djundik
bfd47de523
Merge pull request #2902 from thelounge/xpaw/readme-wiki
Remove wiki link from readme
2018-11-30 12:29:11 +02:00
Pavel Djundik
5055d7d481
Merge pull request #2906 from thelounge/xpaw/tooltips
Move `primer-tooltips` and `moment` to `devDependencies`
2018-11-30 12:29:01 +02:00
Pavel Djundik
0e4eb4e269
Merge pull request #2907 from thelounge/xpaw/fix-colors
Fix missing colors dependency, simplify version warning
2018-11-30 12:28:53 +02:00
Pavel Djundik
9e69aed06b
Merge pull request #2911 from thelounge/renovate/socket.io-2.x
Update dependency socket.io to v2.2.0
2018-11-30 12:28:45 +02:00
Pavel Djundik
f39e013917 Update dependency socket.io to v2.2.0 2018-11-30 11:35:53 +02:00
Pavel Djundik
27c694e6ed
Merge pull request #2909 from thelounge/renovate/stylelint-9.x
Update dependency stylelint to v9.9.0
2018-11-29 10:43:41 +02:00
Pavel Djundik
956dbac94c
Merge pull request #2908 from thelounge/renovate/linkify-it-2.x
Update dependency linkify-it to v2.1.0
2018-11-29 10:43:32 +02:00
Renovate Bot
335ceb8013
Update dependency stylelint to v9.9.0 2018-11-27 21:24:48 +00:00
Renovate Bot
1fcd81229c
Update dependency linkify-it to v2.1.0 2018-11-27 20:49:10 +00:00
Pavel Djundik
8635f2f3d8 Fix missing colors dependency, simplify version warning 2018-11-27 13:15:01 +02:00
Pavel Djundik
64c3c5b446 Move primer-tooltips and moment to devDependencies 2018-11-27 12:55:10 +02:00
Pavel Djundik
6a4a45711b
Merge pull request #2905 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.26.1
2018-11-26 19:07:56 +02:00
Pavel Djundik
6d183325da
Merge pull request #2903 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.4.5
2018-11-26 19:07:40 +02:00
Renovate Bot
2c852de7ff
Update dependency webpack to v4.26.1 2018-11-26 17:06:24 +00:00
Renovate Bot
e9370c984e
Update dependency mini-css-extract-plugin to v0.4.5 2018-11-26 17:06:15 +00:00
Pavel Djundik
82ed742c27
Merge pull request #2904 from thelounge/renovate/npm-run-all-4.x
Update dependency npm-run-all to v4.1.5
2018-11-26 19:05:40 +02:00
Renovate Bot
3a3e89ccdd
Update dependency npm-run-all to v4.1.5 2018-11-24 13:56:40 +00:00
Pavel Djundik
500472a358 Remove wiki link from readme 2018-11-21 18:51:04 +02:00
Pavel Djundik
4038236e8a Update documentation links in config, fix up ldap section 2018-11-21 18:47:09 +02:00
Pavel Djundik
dedaa1f337 3.0.0-rc.5 2018-11-21 11:50:07 +02:00
Pavel Djundik
e97db8e244
Merge pull request #2895 from thelounge/xpaw/manifest
Rename `manifest.json` to `thelounge.webmanifest`
2018-11-21 11:48:17 +02:00
Pavel Djundik
4f0a22482b
Merge pull request #2897 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.5.0
2018-11-20 14:35:26 +02:00
Pavel Djundik
4c9bb98a9b
Merge pull request #2899 from thelounge/renovate/primer-tooltips-1.x
Update dependency primer-tooltips to v1.5.9
2018-11-20 14:35:16 +02:00
Pavel Djundik
1c046ddac8
Merge pull request #2898 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.26.0
2018-11-20 14:35:03 +02:00
Renovate Bot
9cd9d4c7d2
Update dependency primer-tooltips to v1.5.9 2018-11-20 00:10:29 +00:00
Renovate Bot
4b3374c749
Update dependency webpack to v4.26.0 2018-11-19 08:47:41 +00:00
Renovate Bot
c67909a511
Update dependency file-type to v10.5.0 2018-11-19 05:16:05 +00:00
Pavel Djundik
ca63aac056
Merge pull request #2896 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.1.6
2018-11-13 23:47:25 +02:00
Renovate Bot
a56dbd79ac
Update babel monorepo to v7.1.6 2018-11-13 21:24:28 +00:00
Pavel Djundik
057599819d
Merge pull request #2885 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.12.3
2018-11-13 17:01:21 +02:00
Pavel Djundik
520865c558
Merge pull request #2892 from thelounge/renovate/babel-monorepo
Update babel monorepo to v7.1.5
2018-11-13 17:01:10 +02:00
Pavel Djundik
61a097f2f3
Merge pull request #2875 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.9.0
2018-11-13 17:01:01 +02:00
Pavel Djundik
106092c630
Merge pull request #2878 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.4.0
2018-11-13 17:00:49 +02:00
Pavel Djundik
e033010841 Rename manifest.json to thelounge.webmanifest
This makes express serve it with correct content-type of application/manifest+json

Refs:
- https://w3c.github.io/manifest/#media-type-registration
- https://webhint.io/docs/user-guide/hints/hint-manifest-file-extension/
2018-11-13 13:33:25 +02:00
Renovate Bot
53436ef97d
Update dependency yarn to v1.12.3 2018-11-13 11:32:25 +00:00
Renovate Bot
a2d20ecd42
Update dependency eslint to v5.9.0 2018-11-13 11:32:13 +00:00
Renovate Bot
c7082db602
Update babel monorepo to v7.1.5 2018-11-13 11:32:01 +00:00
Pavel Djundik
eb522e9208
Merge pull request #2880 from thelounge/renovate/stylelint-9.x
Update dependency stylelint to v9.8.0
2018-11-13 13:31:27 +02:00
Pavel Djundik
dd61e6e09a Use fileType.minimumBytes 2018-11-13 13:30:02 +02:00
Renovate Bot
943e25cb3e
Update dependency stylelint to v9.8.0 2018-11-13 11:28:38 +00:00
Renovate Bot
d2b2cf308c
Update dependency file-type to v10.4.0 2018-11-13 11:28:27 +00:00
Pavel Djundik
a7d79c8a7f
Merge pull request #2886 from thelounge/renovate/copy-webpack-plugin-4.x
Update dependency copy-webpack-plugin to v4.6.0
2018-11-13 13:27:12 +02:00
Pavel Djundik
fe047264fb
Merge pull request #2887 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.1.1
2018-11-13 13:27:03 +02:00
Pavel Djundik
e23fe19504
Merge pull request #2888 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.25.1
2018-11-13 13:26:36 +02:00
Pavel Djundik
d5a3241887
Merge pull request #2889 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.5.0
2018-11-13 13:26:25 +02:00
Renovate Bot
c26b703f66
Update dependency copy-webpack-plugin to v4.6.0 2018-11-13 11:26:20 +00:00
Renovate Bot
70188bff72
Update dependency @fortawesome/fontawesome-free to v5.5.0 2018-11-13 11:26:12 +00:00
Pavel Djundik
9e51d12acd
Merge pull request #2893 from thelounge/renovate/fs-extra-7.x
Update dependency fs-extra to v7.0.1
2018-11-13 13:25:42 +02:00
Pavel Djundik
e04c100fe6
Merge pull request #2894 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.4
2018-11-13 13:25:15 +02:00
Renovate Bot
b1f110c1a3
Update dependency sqlite3 to v4.0.4 2018-11-10 14:59:28 +00:00
Renovate Bot
a3c8212669
Update dependency fs-extra to v7.0.1 2018-11-07 13:27:33 +00:00
Renovate Bot
bddb31b8b2
Update dependency webpack to v4.25.1 2018-11-05 18:42:25 +00:00
Renovate Bot
e91a55fd99
Update dependency sinon to v7.1.1 2018-11-05 12:05:34 +00:00
Pavel Djundik
f01bf0cc09
Merge pull request #2891 from thelounge/astorije/screenshot-url
Use new app screenshot URL
2018-11-05 10:54:11 +02:00
Jérémie Astori
4ec6649b39
Use new app screenshot URL 2018-11-04 17:22:04 -05:00
Jérémie Astori
419f193348
Merge pull request #2890 from thelounge/xpaw/screenshot-url
Change screenshot link to website repo
2018-11-03 19:42:24 -04:00
Pavel Djundik
d90b9445b2
Change screenshot link to website repo 2018-11-04 00:47:31 +02:00
Jérémie Astori
ade556c300
Merge pull request #2882 from thelounge/xpaw/config
Minor fixes in the config
2018-10-30 01:08:34 -04:00
Jérémie Astori
7c96e1ff03
Merge pull request #2883 from thelounge/xpaw/sanitize-logo
Sanitize logo url in readme
2018-10-30 01:01:46 -04:00
Pavel Djundik
414cd390b6
Sanitize logo url in readme 2018-10-29 12:47:52 +02:00
Pavel Djundik
e321c7eb99 Minor fixes in the config 2018-10-29 09:54:58 +02:00
Jérémie Astori
927fa92518
Merge pull request #2881 from thelounge/astorije/config-generator-comment
Fix config generator script comment 🙄
2018-10-29 02:36:39 -04:00
Jérémie Astori
7c4fce55ff
Fix config generator script comment 🙄 2018-10-28 22:55:54 -04:00
Jérémie Astori
9434f87d66
Merge pull request #2877 from thelounge/astorije/node-11
Add Node.js v11 to the Travis CI matrix
2018-10-28 16:36:05 -04:00
Pavel Djundik
6e7eb04ee8
Merge pull request #2876 from thelounge/astorije/travis-tokens
Generate new secure entries for Travis deploy step to npm
2018-10-28 09:31:11 +02:00
Jérémie Astori
5269106198
Add Node.js v11 to the Travis CI matrix 2018-10-28 02:00:22 -04:00
Jérémie Astori
97ae79a6a3
Generate new secure entries for Travis deploy step to npm 2018-10-28 01:56:35 -04:00
Pavel Djundik
b0095488f9 v3.0.0-rc.4 2018-10-26 11:12:40 +03:00
Jérémie Astori
89fe386611
Merge pull request #2874 from thelounge/renovate/font-awesome
Update dependency @fortawesome/fontawesome-free to v5.4.2
2018-10-26 01:34:36 -04:00
Renovate Bot
0a6649e938
Update dependency @fortawesome/fontawesome-free to v5.4.2 2018-10-26 04:53:36 +00:00
Jérémie Astori
9980419bc6
Merge pull request #2873 from thelounge/renovate/ua-parser-js-0.x
Update dependency ua-parser-js to v0.7.19
2018-10-26 00:52:03 -04:00
Jérémie Astori
af7e7e8281
Merge pull request #2872 from thelounge/renovate/html-minifier-3.x
Update dependency html-minifier to v3.5.21
2018-10-26 00:51:39 -04:00
Jérémie Astori
a7817cf94b
Merge pull request #2871 from thelounge/semver
Update semver and lock file
2018-10-26 00:51:13 -04:00
Renovate Bot
c018bbfaf4
Update dependency ua-parser-js to v0.7.19 2018-10-25 18:39:29 +00:00
Renovate Bot
568ae78fad
Update dependency html-minifier to v3.5.21 2018-10-25 17:32:26 +00:00
Pavel Djundik
a6aff32655 Update semver and lock file 2018-10-25 15:33:58 +03:00
Pavel Djundik
ed7ddf43fe
Merge pull request #2870 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7.1.0
2018-10-25 15:26:30 +03:00
Pavel Djundik
1aa14b1f98
Merge pull request #2869 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.23.1
2018-10-25 15:26:21 +03:00
Pavel Djundik
4b7d2ebe78
Merge pull request #2866 from thelounge/renovate/primer-tooltips-1.x
Update dependency primer-tooltips to v1.5.8
2018-10-25 15:26:13 +03:00
Pavel Djundik
8b4d5b2981
Merge pull request #2868 from thelounge/renovate/socketio-file-upload-0.x
Update dependency socketio-file-upload to v0.6.4
2018-10-25 15:26:06 +03:00
Renovate Bot
76aacdfaf1
Update dependency sinon to v7.1.0 2018-10-25 10:22:19 +00:00
Renovate Bot
acaee577e7
Update dependency webpack to v4.23.1 2018-10-25 09:03:34 +00:00
Renovate Bot
b337a60027
Update dependency socketio-file-upload to v0.6.4 2018-10-25 08:03:04 +00:00
Renovate Bot
be9db8c4b0
Update dependency primer-tooltips to v1.5.8 2018-10-25 08:02:54 +00:00
Pavel Djundik
e8c5c5580e
Merge pull request #2867 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.23.0
2018-10-25 11:02:17 +03:00
Renovate Bot
1a962a774b
Update dependency webpack to v4.23.0 2018-10-24 17:46:12 +00:00
Pavel Djundik
ccfcec2361
Merge pull request #2860 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.22.0
2018-10-23 11:31:11 +03:00
Pavel Djundik
238eaa70df
Merge pull request #2850 from thelounge/travis-all-os
Enable Windows and macOS builds on Travis, remove AppVeyor
2018-10-23 11:30:12 +03:00
Renovate Bot
087b266408
Update dependency webpack to v4.22.0 2018-10-23 08:29:17 +00:00
Pavel Djundik
c92b067a5a
Merge pull request #2861 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10.1.0
2018-10-23 11:28:39 +03:00
Renovate Bot
ea9da4b217
Update dependency file-type to v10.1.0 2018-10-23 06:03:22 +00:00
Jérémie Astori
bc1a43e5d0
Merge pull request #2863 from thelounge/renovate/sqlite3-4.x
Update dependency sqlite3 to v4.0.3
2018-10-23 00:40:36 -04:00
Jérémie Astori
b6e9facf4b
Merge pull request #2862 from thelounge/renovate/intersection-observer-0.x
Update dependency intersection-observer to v0.5.1
2018-10-23 00:40:11 -04:00
Renovate Bot
cb9ffc3a99
Update dependency sqlite3 to v4.0.3 2018-10-23 04:16:33 +00:00
Renovate Bot
911b35793e
Update dependency intersection-observer to v0.5.1 2018-10-23 04:16:23 +00:00
Jérémie Astori
132c47ac21
Merge pull request #2864 from thelounge/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.1.10
2018-10-23 00:15:38 -04:00
Renovate Bot
b3b2e2a4ab
Update dependency webpack-dev-server to v3.1.10 2018-10-23 03:14:26 +00:00
Jérémie Astori
18f96934f2
Merge pull request #2859 from thelounge/xpaw/openChannel
Fix timing issue crashing on undefined when setting openChannel
2018-10-21 14:14:15 -04:00
Pavel Djundik
d5aa00b753 Fix timing issue crashing on undefined when setting openChannel 2018-10-21 11:05:05 +03:00
Pavel Djundik
5b40a6fb58
Merge pull request #2858 from thelounge/xpaw/limit-nick
Hard limit nicks to 100 characters, add maxlength on connect inputs
2018-10-20 23:08:20 +03:00
Pavel Djundik
3ed7d96ea3
Merge pull request #2854 from thelounge/xpaw/fix-screenx
Fix touch position being null when touching with multiple fingers
2018-10-20 23:08:10 +03:00
Pavel Djundik
3b9bc48593
Merge pull request #2857 from thelounge/renovate/mime-types-2.x
Update dependency mime-types to v2.1.21
2018-10-20 14:14:23 +03:00
Pavel Djundik
57b30e1b79
Merge pull request #2855 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.21.0
2018-10-20 14:13:31 +03:00
Pavel Djundik
511df7cef2
Merge pull request #2856 from thelounge/renovate/copy-webpack-plugin-4.x
Update dependency copy-webpack-plugin to v4.5.4
2018-10-20 14:13:23 +03:00
Pavel Djundik
8d5d9617ae Hard limit nicks to 100 characters, add maxlength on connect inputs 2018-10-20 14:10:26 +03:00
Renovate Bot
6013977dea
Update dependency mime-types to v2.1.21 2018-10-20 03:39:31 +00:00
Renovate Bot
5a258796df
Update dependency copy-webpack-plugin to v4.5.4 2018-10-18 23:01:52 +00:00
Renovate Bot
56cc8fbe32
Update dependency webpack to v4.21.0 2018-10-17 18:16:22 +00:00
Pavel Djundik
b8f0a4601c Enable macOS and Windows builds on Travis, remove AppVeyor config 2018-10-15 19:52:27 +03:00
Pavel Djundik
bb6a9657a0 Fix touch position being null when touching with multiple fingers 2018-10-15 14:54:33 +03:00
Pavel Djundik
bebc9db629
Merge pull request #2852 from thelounge/renovate/nyc-13.x
Update dependency nyc to v13.1.0
2018-10-15 11:13:46 +03:00
Renovate Bot
2c69a28ffd Update dependency nyc to v13.1.0 2018-10-15 11:07:00 +03:00
Pavel Djundik
cb1127de74
Merge pull request #2853 from thelounge/renovate/sinon-7.x
Update dependency sinon to v7
2018-10-15 10:58:50 +03:00
Pavel Djundik
90f8b9a817
Merge pull request #2851 from thelounge/xpaw/express
Force express server to run in production mode
2018-10-15 10:58:13 +03:00
Renovate Bot
c5f8bb20bc
Update dependency sinon to v7 2018-10-14 10:44:13 +00:00
Pavel Djundik
1d8a0e639f Encode uploaded file slugs 2018-10-14 00:23:41 +03:00
Pavel Djundik
de028e5dd8 Force express server to run in production mode 2018-10-14 00:23:32 +03:00
Pavel Djundik
010ddab78e
Merge pull request #2849 from thelounge/xpaw/webirc-ownprop
Use hasOwnProperty when checking for webirc
2018-10-13 13:11:57 +03:00
Pavel Djundik
f1c84c1ede
Merge pull request #2848 from thelounge/xpaw/harden-inputs
Make sure registered command is actually a function
2018-10-13 13:11:49 +03:00
Pavel Djundik
9686c0383e Use hasOwnProperty when checking for webirc 2018-10-13 12:54:46 +03:00
Pavel Djundik
338b1d2642 Make sure registered command is actually a function 2018-10-13 12:42:51 +03:00
Pavel Djundik
a6a2336a6f
Merge pull request #2844 from thelounge/renovate/express-4.x
Update dependency express to v4.16.4
2018-10-12 22:49:16 +03:00
Renovate Bot
68eeb76975
Update dependency express to v4.16.4 2018-10-12 19:49:07 +00:00
Pavel Djundik
f23a27ce9d
Merge pull request #2843 from thelounge/renovate/semver-5.x
Update dependency semver to v5.6.0
2018-10-12 22:48:53 +03:00
Pavel Djundik
39992db5d0
Merge pull request #2845 from thelounge/renovate/fortawesome-fontawesome-free-5.x
Update dependency @fortawesome/fontawesome-free to v5.4.1
2018-10-12 22:48:45 +03:00
Pavel Djundik
f25207aa85
Merge pull request #2842 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.4.4
2018-10-12 22:48:36 +03:00
Pavel Djundik
454d71888b
Merge pull request #2847 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.7.0
2018-10-12 22:48:26 +03:00
Pavel Djundik
0636a6f839
Merge pull request #2841 from thelounge/renovate/copy-webpack-plugin-4.x
Update dependency copy-webpack-plugin to v4.5.3
2018-10-12 22:48:19 +03:00
Renovate Bot
f028ac2ea0
Update dependency eslint to v5.7.0 2018-10-12 19:42:26 +00:00
Renovate Bot
7affe78e5a
Update dependency @fortawesome/fontawesome-free to v5.4.1 2018-10-11 19:52:23 +00:00
Renovate Bot
9f41abf246
Update dependency semver to v5.6.0 2018-10-10 23:55:07 +00:00
Renovate Bot
58d617b70d
Update dependency mini-css-extract-plugin to v0.4.4 2018-10-10 13:33:19 +00:00
Renovate Bot
9a5188930a
Update dependency copy-webpack-plugin to v4.5.3 2018-10-10 08:33:05 +00:00
Pavel Djundik
6d6b99576f 3.0.0-rc.3 2018-10-10 10:56:50 +03:00
Pavel Djundik
ace9adce19 Add changelog entry for v3.0.0-rc.3 2018-10-10 10:56:25 +03:00
Pavel Djundik
33368b9ee2
Merge pull request #2840 from thelounge/xpaw/fix-2837
Bring back aria-label to fix broken code
2018-10-10 10:54:59 +03:00
Pavel Djundik
1d7ceda9d4 Bring back aria-label to fix broken code
Fixes #2837
Reverts 78f0e544db
Reverts d087c726e0
2018-10-10 10:50:52 +03:00
Pavel Djundik
f350ca11ca
Merge pull request #2835 from thelounge/renovate/fortawesome-fontawesome-free-5.x
Update dependency @fortawesome/fontawesome-free to v5.4.0
2018-10-09 10:33:08 +03:00
Pavel Djundik
962cc973c3
Merge pull request #2836 from thelounge/renovate/commander-2.x
Update dependency commander to v2.19.0
2018-10-09 10:33:00 +03:00
Renovate Bot
a9d2f317eb
Update dependency commander to v2.19.0 2018-10-08 21:53:25 +00:00
Renovate Bot
b9bd90ffe5
Update dependency @fortawesome/fontawesome-free to v5.4.0 2018-10-08 19:29:12 +00:00
Pavel Djundik
b6fb9ef5da 3.0.0-rc.2 2018-10-08 11:36:19 +03:00
Pavel Djundik
4db81e1f28 Add changelog entry for v3.0.0-rc.2 2018-10-08 11:35:38 +03:00
Jérémie Astori
b6c2b201eb
Merge pull request #2830 from thelounge/xpaw/fix-2829
Remove aria-label on channels in channel list
2018-10-08 00:26:03 -04:00
Pavel Djundik
206802a55f
Merge pull request #2832 from thelounge/renovate/socketio-file-upload-0.x
Update dependency socketio-file-upload to v0.6.3
2018-10-07 22:38:09 +03:00
Renovate Bot
7946603c54
Update dependency socketio-file-upload to v0.6.3 2018-10-07 19:33:06 +00:00
Pavel Djundik
81841bd005
Merge pull request #2833 from thelounge/renovate/file-type-10.x
Update dependency file-type to v10
2018-10-07 22:32:43 +03:00
Renovate Bot
f79c54adb0
Update dependency file-type to v10 2018-10-07 17:38:39 +00:00
Jérémie Astori
01e7b88037
Merge pull request #2826 from thelounge/renovate/irc-framework-4.x
Update dependency irc-framework to v4
2018-10-06 10:46:19 -04:00
Pavel Djundik
78f0e544db Remove aria-label on channels in channel list
Fixes #2829
2018-10-06 13:31:42 +03:00
Jérémie Astori
63b78ed7c4
Merge pull request #2828 from thelounge/xpaw/chanlist-unread-label
Put unread and highlight counts in aria-label in the channel list
2018-10-06 01:40:31 -04:00
Jérémie Astori
79801af219
Merge pull request #2824 from thelounge/xpaw/fix-storage-deref
Fix stored image previews not being dereferenced
2018-10-06 01:39:25 -04:00
Pavel Djundik
d087c726e0 Put unread and highlight counts in aria-label in the channel list 2018-10-05 12:05:09 +03:00
Pavel Djundik
f3b67b773b whois.special is now an array 2018-10-05 10:24:20 +03:00
Renovate Bot
fb2cf54c38
Update dependency irc-framework to v4 2018-10-05 05:13:53 +00:00
Pavel Djundik
dc6e29476a
Merge pull request #2825 from thelounge/renovate/sinon-6.x
Update dependency sinon to v6.3.5
2018-10-03 19:20:34 +03:00
Renovate Bot
e321c90f2a
Update dependency sinon to v6.3.5 2018-10-03 14:33:18 +00:00
Pavel Djundik
8b4b8fbe9e Fix stored image previews not being dereferenced
Broken in 64ebe0f437
2018-10-03 15:44:24 +03:00
Jérémie Astori
d303246d24
Merge pull request #2817 from thelounge/xpaw/fix-2816
Remove underline from textcomplete dropdown
2018-10-01 20:01:09 -04:00
Pavel Djundik
aceffed61f Remove underline from textcomplete dropdown 2018-10-01 17:12:37 +03:00
Pavel Djundik
dfcec914a6
Merge pull request #2815 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.1.2
2018-09-30 10:37:23 +03:00
Renovate Bot
e976719d91
Update dependency webpack-cli to v3.1.2 2018-09-29 17:18:08 +00:00
Pavel Djundik
9a0cb9f7bf
Merge pull request #2813 from thelounge/renovate/babel-monorepo
Update dependency @babel/core to v7.1.2
2018-09-29 10:53:31 +03:00
Pavel Djundik
41b1373c6c
Merge pull request #2812 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.6.1
2018-09-29 10:53:24 +03:00
Renovate Bot
e57c7be2f2
Update dependency @babel/core to v7.1.2 2018-09-28 22:48:13 +00:00
Renovate Bot
1386d0ce9c
Update dependency eslint to v5.6.1 2018-09-28 17:34:04 +00:00
Pavel Djundik
92cd08ea55
Merge pull request #2810 from thelounge/renovate/stylelint-9.x
Update dependency stylelint to v9.6.0
2018-09-28 09:35:33 +03:00
Renovate Bot
2352ea5f92
Update dependency stylelint to v9.6.0 2018-09-28 04:40:03 +00:00
Jérémie Astori
91660f9e9e
Merge pull request #2809 from thelounge/renovate/chai-4.x
Update dependency chai to v4.2.0
2018-09-28 00:39:41 -04:00
Renovate Bot
9487afdf24
Update dependency chai to v4.2.0 2018-09-28 04:20:31 +00:00
Jérémie Astori
29d634d9f7
Merge pull request #2811 from thelounge/renovate/babel-loader-8.x
Update dependency babel-loader to v8.0.4
2018-09-28 00:20:11 -04:00
Renovate Bot
c21a3d3bd9
Update dependency babel-loader to v8.0.4 2018-09-28 03:43:52 +00:00
Jérémie Astori
1436985d30
Merge pull request #2808 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.10.1
2018-09-27 23:43:08 -04:00
Jérémie Astori
1831134bca
Merge pull request #2807 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.20.2
2018-09-27 23:42:50 -04:00
Renovate Bot
8d5feed487
Update dependency yarn to v1.10.1 2018-09-26 13:23:22 +00:00
Renovate Bot
02d8db74c7
Update dependency webpack to v4.20.2 2018-09-25 20:39:04 +00:00
Pavel Djundik
509a2c9358
Merge pull request #2805 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.20.1
2018-09-25 18:57:05 +03:00
Renovate Bot
e3b4a8e0b5
Update dependency webpack to v4.20.1 2018-09-25 13:32:14 +00:00
Pavel Djundik
7c00da2d33
Merge pull request #2803 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.20.0
2018-09-25 10:38:42 +03:00
Renovate Bot
1ebe3864f9
Update dependency webpack to v4.20.0 2018-09-25 07:22:54 +00:00
Jérémie Astori
c06b96e90b
Merge pull request #2798 from thelounge/xpaw/fix-2797
Fix extra padding in condensed messages on mobile
2018-09-25 01:23:35 -04:00
Jérémie Astori
48c76efe27
Merge pull request #2799 from thelounge/xpaw/upgrade-yarnlock
Upgrade yarn.lock before final release
2018-09-25 01:23:06 -04:00
Jérémie Astori
33b52611b4
Merge pull request #2802 from thelounge/renovate/webpack-dev-server-3.x
Update dependency webpack-dev-server to v3.1.9
2018-09-25 01:20:56 -04:00
Renovate Bot
1270c312d0
Update dependency webpack-dev-server to v3.1.9 2018-09-24 19:21:50 +00:00
Pavel Djundik
bad5dac3ab Upgrade yarn.lock before final release 2018-09-24 16:31:55 +03:00
Pavel Djundik
d7a37cfdc0
Merge pull request #2787 from thelounge/xpaw/utc-log
Use Date.toISOString for logging
2018-09-24 15:24:33 +03:00
Pavel Djundik
ecc1fdd799
Fix extra padding in condensed messages on mobile
Fixes #2797
2018-09-24 10:25:20 +03:00
Pavel Djundik
88ce0cee99 Use Date.toISOString for logging 2018-09-23 21:57:40 +03:00
Pavel Djundik
3b9b5e26f4
Merge pull request #2796 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.1.1
2018-09-23 12:12:48 +03:00
Renovate Bot
7c0e2af0f3
Update dependency webpack-cli to v3.1.1 2018-09-23 09:07:03 +00:00
Jérémie Astori
d26db390c3
Merge pull request #2795 from thelounge/xpaw/fix-2794
Fix issues in regards to ignoring your own nickname
2018-09-22 15:33:09 -04:00
Pavel Djundik
2162f4a55a Fix issues in regards to ignoring your own nickname 2018-09-22 13:27:03 +03:00
Pavel Djundik
da2f9c4092
Merge pull request #2792 from thelounge/astorije/rm-node-9
Remove Node.js v9 from the Travis CI matrix
2018-09-22 10:35:00 +03:00
Jérémie Astori
2054c5cf82
Merge pull request #2790 from thelounge/xpaw/more-caret-underlnie
Add hover underline on preview expand button
2018-09-22 01:37:03 -04:00
Jérémie Astori
9035acd05d
Remove Node.js v9 from the Travis CI matrix
See https://github.com/nodejs/Release

To this day, Node.js v6 is in maintenance mode, v8 is an active LTS, and v10 is the current stable. v9 has been EOL since June.
2018-09-21 18:53:11 -04:00
Pavel Djundik
c62665f47b Add hover underline on preview expand button 2018-09-21 11:05:56 +03:00
Jérémie Astori
4a7be7f954
Merge pull request #2788 from thelounge/xpaw/remove-moment-locales
Remove moment locales from build
2018-09-20 21:07:37 -04:00
Pavel Djundik
6884b7462a Remove moment locales from build 2018-09-20 15:00:17 +03:00
Jérémie Astori
42ab1d1402
3.0.0-rc.1 2018-09-20 00:52:11 -04:00
Jérémie Astori
c1ea46b430
Add changelog entry for v3.0.0-rc.1 2018-09-20 00:51:52 -04:00
Jérémie Astori
ed06040b8e
Merge pull request #2618 from thelounge/xpaw/underline
Enable underlines on links
2018-09-20 00:42:06 -04:00
Pavel Djundik
05482e952b Update package title extraction for renovate bot 2018-09-19 14:46:55 +03:00
Pavel Djundik
557d4c4ddd Use website repo last tag because it can differ 2018-09-19 14:42:37 +03:00
Pavel Djundik
d326435fe7 Split pull request query into chunks
Otherwise github api chokes when asking about too many pull requests at once
2018-09-19 14:31:25 +03:00
Pavel Djundik
62cb252933 Fix website repository name 2018-09-19 14:30:48 +03:00
Pavel Djundik
67a28d1e94
Merge pull request #2785 from williamboman/fix-closing-sidebar
fix automatically closing sidebar on some mobile viewports
2018-09-19 10:45:17 +03:00
William Boman
658dc5a3a2 fix automatically closing sidebar on some mobile viewports
Co-authored-by: Pavel Djundik <github@xpaw.me>

Mobile viewports whose width is equal to the upper boundary
of the mobile viewport breakpoint would not automatically
close the sidebar when selecting an item in it.

Closes #2783.
2018-09-19 09:37:03 +02:00
Pavel Djundik
45235ba7aa Enable underlines on links 2018-09-19 09:58:46 +03:00
Jérémie Astori
b93827278f
Merge pull request #2784 from thelounge/renovate/mini-css-extract-plugin-0.x
chore(deps): update dependency mini-css-extract-plugin to v0.4.3
2018-09-18 21:10:55 -04:00
Renovate Bot
79f1685d6a
chore(deps): update dependency mini-css-extract-plugin to v0.4.3 2018-09-18 18:36:19 +00:00
Pavel Djundik
2745931e9e
Merge pull request #2782 from thelounge/renovate/web-push-3.x
fix(deps): update dependency web-push to v3.3.3
2018-09-18 14:57:35 +03:00
Renovate Bot
b037d597ed
fix(deps): update dependency web-push to v3.3.3 2018-09-18 10:28:33 +00:00
Pavel Djundik
7f4aa36c7d
Merge pull request #2780 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.3.4
2018-09-18 12:22:16 +03:00
Renovate Bot
6faedf7d16
chore(deps): update dependency sinon to v6.3.4 2018-09-18 09:21:35 +00:00
Pavel Djundik
16dc241cad
Merge pull request #2781 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.19.1
2018-09-18 12:21:14 +03:00
Renovate Bot
41bd5504a0
chore(deps): update dependency webpack to v4.19.1 2018-09-18 08:04:48 +00:00
Jérémie Astori
2ba7b563fe
Merge pull request #2778 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.6.0
2018-09-18 01:35:15 -04:00
Renovate Bot
24d94f4f29
chore(deps): update dependency eslint to v5.6.0 2018-09-18 05:08:42 +00:00
Jérémie Astori
30fd693a67
Merge pull request #2779 from thelounge/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.1.0
2018-09-18 01:08:21 -04:00
Renovate Bot
7cfd4afb48
chore(deps): update babel monorepo to v7.1.0 2018-09-17 19:56:46 +00:00
Pavel Djundik
22d2a0dc2b
Merge pull request #2776 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.3.3
2018-09-14 13:06:39 +03:00
Pavel Djundik
7306e30a60
Merge pull request #2777 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.19.0
2018-09-14 13:06:23 +03:00
Renovate Bot
9f02d4f956
chore(deps): update dependency sinon to v6.3.3 2018-09-14 09:10:57 +00:00
Renovate Bot
c081fb378d
chore(deps): update dependency webpack to v4.19.0 2018-09-13 22:10:08 +00:00
Pavel Djundik
66c7159521
Merge pull request #2775 from richrd/fix-fullscreen-video
Fix fullscreen mode for videos.
2018-09-13 20:33:16 +03:00
Richard Lewis
e97c9ff265 Fix fullscreen mode for videos. I was unable to reproduce the border radius issue. 2018-09-13 20:04:19 +03:00
Pavel Djundik
ee8db6da8c
Merge pull request #2774 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.18.1
2018-09-13 13:47:31 +03:00
Renovate Bot
95a2580b6e
chore(deps): update dependency webpack to v4.18.1 2018-09-13 10:31:45 +00:00
Jérémie Astori
e3a000ead3
Merge pull request #2772 from thelounge/renovate/lodash-monorepo
fix(deps): update dependency lodash to v4.17.11
2018-09-13 00:32:48 -04:00
Jérémie Astori
6e3421cd64
Merge pull request #2773 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.3.1
2018-09-13 00:32:27 -04:00
Renovate Bot
81b7f8abc3
chore(deps): update dependency sinon to v6.3.1 2018-09-12 20:11:00 +00:00
Renovate Bot
81b5d6abdc
fix(deps): update dependency lodash to v4.17.11 2018-09-12 18:41:03 +00:00
Pavel Djundik
42a02452cb
Merge pull request #2766 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.18.0
2018-09-12 17:35:25 +03:00
Renovate Bot
cd1454e48d
chore(deps): update dependency webpack to v4.18.0 2018-09-12 01:20:18 +00:00
Jérémie Astori
4c9573f8d8
Merge pull request #2768 from thelounge/renovate/babel-monorepo
chore(deps): update dependency @babel/core to v7.0.1
2018-09-11 21:19:54 -04:00
Renovate Bot
593b1cb450
chore(deps): update dependency @babel/core to v7.0.1 2018-09-11 21:41:21 +00:00
Pavel Djundik
72fe898e60
Merge pull request #2764 from thelounge/xpaw/safer-log-folders
Limit network name length and replace spaces in log folders
2018-09-09 15:03:55 +03:00
Pavel Djundik
b538360c5e Limit network name length and replace spaces in log folders 2018-09-09 13:09:30 +03:00
Jérémie Astori
a4f889d134
Merge pull request #2762 from thelounge/renovate/commander-2.x
fix(deps): update dependency commander to v2.18.0
2018-09-07 19:19:46 -04:00
Renovate Bot
e0ceaf4af2
fix(deps): update dependency commander to v2.18.0 2018-09-07 10:29:26 +00:00
Jérémie Astori
69fa473c91
Merge pull request #2755 from thelounge/mcinkay/2470-transparent-icon
Replace normal icon with the transparent version
2018-09-07 01:37:26 -04:00
Jérémie Astori
c0436cde5e
Merge pull request #2759 from thelounge/renovate/webpack-dev-server-3.x
chore(deps): update dependency webpack-dev-server to v3.1.8
2018-09-07 01:18:31 -04:00
Renovate Bot
76deb4b2f9
chore(deps): update dependency webpack-dev-server to v3.1.8 2018-09-06 17:54:30 +00:00
Al McKinlay
d3b7a205b4
Merge pull request #2756 from thelounge/mcinkay/missing-commands
Add 3 commands that were missing on client autocomplete
2018-09-06 09:52:37 +01:00
Alistair McKinlay
35c328b557 Add 3 commands that were missing on client autocomplete 2018-09-06 09:00:39 +01:00
Alistair McKinlay
d0605d33b8 Replace normal icon with the transparent version 2018-09-05 15:19:07 +01:00
Pavel Djundik
d6a150c5d6
Merge pull request #2749 from thelounge/xpaw/fix-upload
Move correct file after upload, put file extension in slug
2018-09-05 10:09:19 +03:00
Pavel Djundik
bec241e7fa Move correct file after upload, put file extension in slug 2018-09-05 10:08:46 +03:00
Jérémie Astori
52ed6f77f4
Merge pull request #2748 from thelounge/xpaw/fix-2747
Only emit upload url to the client that uploaded the file
2018-09-05 00:16:42 -04:00
Jérémie Astori
05ddf16343
Merge pull request #2752 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.2.0
2018-09-05 00:00:27 -04:00
Jérémie Astori
b57f2e9ad6
Merge pull request #2751 from thelounge/xPaw-patch-1
Fix stacktraces in client tests
2018-09-04 23:10:25 -04:00
Renovate Bot
562a2cbed4
chore(deps): update dependency sinon to v6.2.0 2018-09-05 03:09:04 +00:00
Jérémie Astori
503abe985f
Merge pull request #2750 from thelounge/renovate/handlebars-4.x
chore(deps): update dependency handlebars to v4.0.12
2018-09-04 23:08:31 -04:00
Pavel Djundik
2bb627e7f2
Fix stacktraces in client tests 2018-09-04 23:18:17 +03:00
Renovate Bot
2156d6c41f
chore(deps): update dependency handlebars to v4.0.12 2018-09-04 18:47:49 +00:00
Pavel Djundik
8fa8526698 Only emit upload url to the client that uploaded the file
Fixes #2747
2018-09-04 12:08:30 +03:00
Pavel Djundik
8435153de0
Merge pull request #2745 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.17.2
2018-09-03 21:37:36 +03:00
Renovate Bot
0e053f2f47
chore(deps): update dependency webpack to v4.17.2 2018-09-03 17:29:37 +00:00
Pavel Djundik
a39f68b4e3
Merge pull request #2744 from thelounge/xPaw-patch-1
Remove incorrect closing tag
2018-09-03 11:25:24 +03:00
Pavel Djundik
dce3fb229f
Remove incorrect closing tag 2018-09-03 10:47:51 +03:00
Pavel Djundik
a27c33e696
Merge pull request #2743 from thelounge/disable-upload-default
Disable file uploads by default until the UX is better
2018-09-03 10:39:13 +03:00
Pavel Djundik
6d2bde023f
Disable file uploads by default until the UX is better 2018-09-03 10:37:32 +03:00
Pavel Djundik
9d5de22d94
Merge pull request #2552 from MaxLeiter/uploading
Add file uploading support
2018-09-03 10:35:00 +03:00
Pavel Djundik
ce212e001c Add file uploading support
Co-Authored-By: Max Leiter <hello@maxleiter.com>
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-09-03 10:30:05 +03:00
Jérémie Astori
7c12883dc1
Merge pull request #2741 from thelounge/xpaw/firefox-save-pass
Fix passwords not being saved in Firefox
2018-09-03 00:42:57 -04:00
Jérémie Astori
bb88e49dc5
Merge pull request #2742 from thelounge/renovate/babel-loader-8.x
chore(deps): update dependency babel-loader to v8.0.2
2018-09-03 00:30:45 -04:00
Renovate Bot
5acb1d4fd5
chore(deps): update dependency babel-loader to v8.0.2 2018-09-03 00:08:06 +00:00
Pavel Djundik
f2ee299004 Fix passwords not being saved in Firefox
Fixes #1740
2018-09-02 20:34:47 +03:00
Pavel Djundik
bae398235e
Merge pull request #2740 from thelounge/renovate/babel-loader-8.x
chore(deps): update dependency babel-loader to v8.0.1
2018-09-02 20:10:54 +03:00
Renovate Bot
11413a9288
chore(deps): update dependency babel-loader to v8.0.1 2018-09-02 09:24:11 +00:00
Jérémie Astori
621ab2ac07
Merge pull request #2737 from thelounge/readme-screen
Update screenshot in readme
2018-09-02 00:55:51 -04:00
Pavel Djundik
9fb871c2f7
Update screenshot in readme
Closes #2129
2018-09-01 19:36:34 +03:00
Pavel Djundik
b3c282f663
Merge pull request #2701 from adamus1red/adamus1red/iframe-localstorage
Add `try`/`catch` to `localStorage` methods
2018-09-01 11:18:55 +03:00
Jérémie Astori
aabe0824a7
Merge pull request #2733 from thelounge/xpaw/sort-lobby-enforce
Enforce lobby to be the 0th channel when sorting
2018-09-01 01:13:04 -04:00
Jérémie Astori
8c06bd3a75
Merge pull request #2735 from thelounge/xpaw/fix-emoji-gen
Update emoji data for Emoji v11
2018-08-31 23:59:12 -04:00
Jérémie Astori
5ddb988996
Merge pull request #2736 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.5.0
2018-08-31 23:56:26 -04:00
Renovate Bot
8bb2185961
chore(deps): update dependency eslint to v5.5.0 2018-09-01 03:09:11 +00:00
Pavel Djundik
81913bca66 Update emoji data for Emoji v11 2018-08-31 22:41:41 +03:00
Pavel Djundik
db6ff5debf
Merge pull request #2734 from thelounge/renovate/emoji-regex-7.x
chore(deps): update dependency emoji-regex to v7.0.1
2018-08-31 22:27:21 +03:00
Renovate Bot
4d45c5d686
chore(deps): update dependency emoji-regex to v7.0.1 2018-08-31 19:26:11 +00:00
Pavel Djundik
0519c8a857 Enforce lobby to be the first 0th channel when sorting 2018-08-30 20:16:26 +03:00
Adam
e14d911195 Add try/catch to all localStorage methods
Return null when attempting to get an item from localStorage

REF: #2699
2018-08-30 17:49:15 +01:00
Jérémie Astori
b3fcea866c
Merge pull request #2731 from thelounge/renovate/webpack-dev-server-3.x
chore(deps): update dependency webpack-dev-server to v3.1.7
2018-08-29 20:10:11 -04:00
Renovate Bot
6bb0f40fe5
chore(deps): update dependency webpack-dev-server to v3.1.7 2018-08-29 23:35:49 +00:00
Jérémie Astori
40ec21a117
Merge pull request #2732 from thelounge/xpaw/no-spdy
Drop spdy module in favor of native https module
2018-08-29 19:35:24 -04:00
Pavel Djundik
7830bfb096 Drop spdy module in favor of native https module 2018-08-29 15:35:06 +03:00
Pavel Djundik
932be73b42
Merge pull request #2730 from thelounge/xpaw/auth-object
Make sure data is an object
2018-08-29 14:02:57 +03:00
Pavel Djundik
295fe2bd09 Make sure data is an object 2018-08-29 13:55:30 +03:00
Pavel Djundik
e619579b1b
Merge pull request #2727 from thelounge/renovate/babel-loader-8.x
chore(deps): update dependency babel-loader to v8
2018-08-29 12:27:31 +03:00
Pavel Djundik
113e30d03d Upgrade babel to 7.0 2018-08-29 10:04:38 +03:00
Jérémie Astori
96507f5fe7
Merge pull request #2729 from thelounge/renovate/fortawesome-fontawesome-free-5.x
chore(deps): update dependency @fortawesome/fontawesome-free to v5.3.1
2018-08-29 02:45:42 -04:00
Renovate Bot
dc27f5f241
chore(deps): update dependency @fortawesome/fontawesome-free to v5.3.1 2018-08-28 17:39:55 +00:00
Jérémie Astori
9e62119145
Merge pull request #2725 from thelounge/renovate/nyc-13.x
chore(deps): update dependency nyc to v13
2018-08-28 02:33:58 -04:00
Renovate Bot
94acacd21d
chore(deps): update dependency nyc to v13 2018-08-28 05:07:26 +00:00
Jérémie Astori
219443ac1f
Merge pull request #2724 from thelounge/renovate/fortawesome-fontawesome-free-5.x
chore(deps): update dependency @fortawesome/fontawesome-free to v5.3.0
2018-08-28 01:06:48 -04:00
Renovate Bot
e3ab1e064a
chore(deps): update dependency @fortawesome/fontawesome-free to v5.3.0 2018-08-27 17:22:07 +00:00
Jérémie Astori
7ae52d197a
Merge pull request #2723 from thelounge/renovate/mocha-loader-2.x
chore(deps): update dependency mocha-loader to v2
2018-08-27 02:51:34 -04:00
Renovate Bot
cea5d5ef2c
chore(deps): update dependency mocha-loader to v2 2018-08-27 01:27:54 +00:00
Jérémie Astori
0569ee2269
Merge pull request #2721 from thelounge/xpaw/fix-query-away-spam
Fix displaying away message multiple times in query windows
2018-08-26 21:06:36 -04:00
Jérémie Astori
0490fc40e9
Merge pull request #2722 from thelounge/renovate/mime-types-2.x
fix(deps): update dependency mime-types to v2.1.20
2018-08-26 21:05:15 -04:00
Renovate Bot
c803154dbb
fix(deps): update dependency mime-types to v2.1.20 2018-08-26 22:08:53 +00:00
Al McKinlay
0a35000cb8
Merge pull request #2718 from thelounge/xpaw/remember-disconnect
Remember disconnected networks between server restarts
2018-08-26 21:50:02 +01:00
Pavel Djundik
f8bb8f9d6f Fix displaying away message multiple times in query windows 2018-08-26 23:14:09 +03:00
Pavel Djundik
e950090383
Merge pull request #2720 from thelounge/renovate/webpack-dev-server-3.x
chore(deps): update dependency webpack-dev-server to v3.1.6
2018-08-26 10:37:22 +03:00
Renovate Bot
a4b59fceef
chore(deps): update dependency webpack-dev-server to v3.1.6 2018-08-26 06:47:30 +00:00
Jérémie Astori
4d5fa57e22
Merge pull request #2716 from thelounge/astorije/travis-publish-token
Use a new npmjs token to publish through Travis
2018-08-25 14:48:31 -04:00
Pavel Djundik
9bcec3bea5 Remember disconnected networks between server restarts 2018-08-25 12:11:59 +03:00
Jérémie Astori
d83594daa4
Use a new npmjs token to publish through Travis
npmjs has invalidated all tokens recently, so I had to create a new one.

For the record (because it will happen again one day or another, and for the life of me I can never remember how to do it), the command I ran to encrypt this was:

```
travis encrypt ****************82f5 --add deploy.api_key -r thelounge/thelounge
```

Those last 4 characters should appear in Travis logs the next time we release, to confirm the encrypted value is correct.
2018-08-25 03:05:11 -04:00
Jérémie Astori
5f190fc165
3.0.0-pre.8 2018-08-25 02:14:03 -04:00
Jérémie Astori
f3d45d6eb7
Add changelog entry for v3.0.0-pre.8 2018-08-25 02:13:50 -04:00
Pavel Djundik
d67a4244b2
Merge pull request #2715 from christer88/christer88-network-remove-confirmation-text
Fix confirmation box text for network removal in client
2018-08-24 19:54:39 +03:00
christer88
d3725937ef
Fix confirmation box text for network removal in client
This PR will make the text inside confirmation box for network removal in client more correct. Earlier it said "Disconnect from", but in reality it disconnects and remove the network entierly.

The js code may be utterly wrong. If so, please help.
2018-08-24 12:32:25 +02:00
Jérémie Astori
82a570bf20
Merge pull request #2713 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.17.1
2018-08-22 21:45:10 -04:00
Renovate Bot
31059131a9
chore(deps): update dependency webpack to v4.17.1 2018-08-22 09:58:48 +00:00
Pavel Djundik
2cda9ced8c
Merge pull request #2710 from thelounge/renovate/mini-css-extract-plugin-0.x
chore(deps): update dependency mini-css-extract-plugin to v0.4.2
2018-08-21 16:49:19 +03:00
Renovate Bot
61ce0e2f0b
chore(deps): update dependency mini-css-extract-plugin to v0.4.2 2018-08-21 13:34:54 +00:00
Pavel Djundik
dbd6bee487
Merge pull request #2705 from MaxLeiter/hide-native
Hide `Native App` settings section when no items are available
2018-08-21 12:15:35 +03:00
Pavel Djundik
5ce3b27cdd
Merge pull request #2709 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.17.0
2018-08-21 12:15:27 +03:00
Renovate Bot
017a338802
chore(deps): update dependency webpack to v4.17.0 2018-08-21 08:49:45 +00:00
Pavel Djundik
fad30dd80f
Merge pull request #2708 from thelounge/renovate/html-minifier-3.x
chore(deps): update dependency html-minifier to v3.5.20
2018-08-20 19:14:36 +03:00
Max Leiter
50661b5947 Hide Native App settings section when no items are available 2018-08-19 12:24:19 -07:00
Renovate Bot
0e785cf51d
chore(deps): update dependency html-minifier to v3.5.20 2018-08-19 09:26:08 +00:00
Pavel Djundik
a2f78d0aeb
Merge pull request #2707 from thelounge/renovate/stylelint-9.x
chore(deps): update dependency stylelint to v9.5.0
2018-08-19 12:25:44 +03:00
Renovate Bot
05729b3803
chore(deps): update dependency stylelint to v9.5.0 2018-08-19 08:48:16 +00:00
Jérémie Astori
8d5d6f0285
Merge pull request #2703 from thelounge/renovate/semver-5.x
fix(deps): update dependency semver to v5.5.1
2018-08-18 01:41:44 -04:00
Renovate Bot
f53448c844
fix(deps): update dependency semver to v5.5.1 2018-08-18 05:32:00 +00:00
Jérémie Astori
786c3d1e0b
Merge pull request #2704 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.4.0
2018-08-18 01:31:41 -04:00
Renovate Bot
e129401747
chore(deps): update dependency eslint to v5.4.0 2018-08-18 01:15:12 +00:00
Pavel Djundik
b1dcbd3811
Merge pull request #2601 from thelounge/xpaw/fix-2572
Make menu state consistent on desktop and mobile; fix sliding on desktop
2018-08-17 09:25:43 +03:00
Pavel Djundik
c9ba896d9e
Merge pull request #2702 from thelounge/astorije/connect-override
Fix bugs with URL overrides in Connect window
2018-08-15 11:40:11 +03:00
Jérémie Astori
70a3aefd2f
Merge pull request #2683 from ivan/tabular-nums
Keep timestamps aligned when using a font with variable-width numbers
2018-08-14 00:08:47 -04:00
Jérémie Astori
13e6f37eda
Make sure the network name cannot be changed through URL override when the network info is not displayed 2018-08-11 18:12:49 -04:00
Jérémie Astori
039d1220cb
Pass network name along to the client connect window when network is locked and not displayed 2018-08-11 18:10:13 -04:00
Jérémie Astori
174c6c744c
Disallow URL override of network-related fields on the client when the network is locked 2018-08-11 18:06:23 -04:00
Jérémie Astori
8a71d1df70
Merge pull request #2698 from thelounge/renovate/request-2.x
fix(deps): update dependency request to v2.88.0
2018-08-11 01:44:04 -04:00
Jérémie Astori
40d2fdf5bc
Merge pull request #2695 from RockyTV/rockytv
Add X-Purpose header to link prefetcher
2018-08-11 01:42:41 -04:00
Renovate Bot
91fe10d25f
fix(deps): update dependency request to v2.88.0 2018-08-10 16:28:28 +00:00
Pavel Djundik
7b1401e89e
Merge pull request #2697 from thelounge/renovate/graphql-request-1.x
chore(deps): update dependency graphql-request to v1.8.2
2018-08-10 12:24:35 +03:00
Renovate Bot
8b5147393a
chore(deps): update dependency graphql-request to v1.8.2 2018-08-10 07:33:24 +00:00
Pavel Djundik
7ffaf48f67
Merge pull request #2696 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.1.5
2018-08-10 10:20:50 +03:00
Renovate Bot
f98708f3cd
chore(deps): update dependency sinon to v6.1.5 2018-08-09 18:05:58 +00:00
Alexandre Oliveira
619b054b95 Add X-Purpose header to link prefetcher 2018-08-07 21:10:03 -03:00
Pavel Djundik
22743982da
Merge pull request #2694 from thelounge/renovate/commander-2.x
fix(deps): update dependency commander to v2.17.1
2018-08-07 16:37:07 +03:00
Pavel Djundik
edc10cdf65
Merge pull request #2693 from thelounge/renovate/graphql-request-1.x
chore(deps): update dependency graphql-request to v1.8.1
2018-08-07 16:36:54 +03:00
Renovate Bot
51b574d9c7
fix(deps): update dependency commander to v2.17.1 2018-08-07 11:38:18 +00:00
Renovate Bot
9c267d95ae
chore(deps): update dependency graphql-request to v1.8.1 2018-08-07 11:38:08 +00:00
Jérémie Astori
92b5412d12
Merge pull request #2692 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.5
2018-08-07 01:00:40 -04:00
Renovate Bot
051eb83b02
chore(deps): update dependency webpack to v4.16.5 2018-08-06 07:30:40 +00:00
Pavel Djundik
9dc9f164cd
Merge pull request #2690 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.3.0
2018-08-04 10:02:56 +03:00
Renovate Bot
14172fca0a
chore(deps): update dependency eslint to v5.3.0 2018-08-04 07:01:52 +00:00
Pavel Djundik
da01d7a313
Merge pull request #2688 from thelounge/renovate/yarn-1.x
fix(deps): update dependency yarn to v1.9.4
2018-08-04 10:01:18 +03:00
Renovate Bot
8e6de0d2e6
fix(deps): update dependency yarn to v1.9.4 2018-08-04 07:01:10 +00:00
Pavel Djundik
247bc507ea
Merge pull request #2689 from thelounge/renovate/commander-2.x
fix(deps): update dependency commander to v2.17.0
2018-08-04 10:00:32 +03:00
Renovate Bot
bf50a23df8
fix(deps): update dependency commander to v2.17.0 2018-08-04 00:23:26 +00:00
Pavel Djundik
87d8905b65
Merge pull request #2686 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.4
2018-08-02 21:50:46 +03:00
Renovate Bot
0aa04ac042
chore(deps): update dependency webpack to v4.16.4 2018-08-02 15:12:08 +00:00
Jérémie Astori
cc7da34b44
Merge pull request #2685 from thelounge/renovate/graphql-request-1.x
chore(deps): update dependency graphql-request to v1.8.0
2018-08-02 01:58:08 -04:00
Renovate Bot
3d28321068
chore(deps): update dependency graphql-request to v1.8.0 2018-08-01 08:56:00 +00:00
Jérémie Astori
cf7088ea79
Merge pull request #2677 from thelounge/xpaw/keybinds-caps
Fix irc modifiers not working with caps lock
2018-08-01 00:47:06 -04:00
Ivan Kozik
2a74ace48f Keep timestamps aligned when using a font with variable-width numbers
This improves the layout of the timestamps when using the San Francisco font.
2018-07-29 15:22:54 +00:00
Pavel Djundik
927da2816a
Merge pull request #2681 from thelounge/renovate/primer-tooltips-1.x
fix(deps): update dependency primer-tooltips to v1.5.7
2018-07-28 11:00:07 +03:00
Renovate Bot
5889547161
fix(deps): update dependency primer-tooltips to v1.5.7 2018-07-27 21:48:28 +00:00
Pavel Djundik
a131695388
Merge pull request #2679 from thelounge/renovate/yarn-1.x
fix(deps): update dependency yarn to v1.9.2
2018-07-27 18:51:50 +03:00
Renovate Bot
59ff700a69
fix(deps): update dependency yarn to v1.9.2 2018-07-27 15:04:19 +00:00
Pavel Djundik
c2abc75e47
Merge pull request #2676 from thelounge/renovate/stylelint-9.x
chore(deps): update dependency stylelint to v9.4.0
2018-07-27 13:44:48 +03:00
Pavel Djundik
35562a9f4a
Merge pull request #2678 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.3
2018-07-27 13:44:30 +03:00
Renovate Bot
c66fdcc527
chore(deps): update dependency webpack to v4.16.3 2018-07-27 10:28:15 +00:00
Pavel Djundik
7a5708714b
Fix irc modifiers not working with caps lock 2018-07-27 11:12:03 +03:00
Renovate Bot
ddca4255b7
chore(deps): update dependency stylelint to v9.4.0 2018-07-25 20:14:56 +00:00
Jérémie Astori
7b926f7c32
Merge pull request #2515 from thelounge/xpaw/transparent-sw-cache
Network-first service worker caches
2018-07-25 00:57:20 -04:00
Jérémie Astori
cc4ab38356
Merge pull request #2643 from thelounge/astorije/sticky-userlist
Make userlist section titles sticky on scroll, improve contrasts for accessibility, use CSS variables
2018-07-25 00:54:45 -04:00
Pavel Djundik
db8aeaa827
Merge pull request #2674 from thelounge/renovate/graphql-request-1.x
chore(deps): update dependency graphql-request to v1.7.0
2018-07-24 18:21:56 +03:00
Renovate Bot
486be09274
chore(deps): update dependency graphql-request to v1.7.0 2018-07-24 14:39:10 +00:00
Jérémie Astori
2b89500010
Merge pull request #2673 from thelounge/renovate/fortawesome-fontawesome-free-5.x
chore(deps): update dependency @fortawesome/fontawesome-free to v5.2.0
2018-07-24 01:25:37 -04:00
Jérémie Astori
8c09be9db3
Reuse muted color var for unhandled messages, and remove channel list color overrides 2018-07-24 01:16:39 -04:00
Jérémie Astori
77d70d6d91
Center scroll lists when navigating with keyboard
- This applies to channel list and user list sidebars
- This avoids having a selected item behind a sticky header
- This provides better UX by starting the scroll before the bottom (or top) is reached, giving a preview of what comes next (or before)
2018-07-24 00:50:19 -04:00
Renovate Bot
2f2830c6ce
chore(deps): update dependency @fortawesome/fontawesome-free to v5.2.0 2018-07-23 16:48:51 +00:00
Pavel Djundik
d8dcd0bd47
Merge pull request #2672 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.2
2018-07-23 13:38:51 +03:00
Renovate Bot
1acc93d566
chore(deps): update dependency webpack to v4.16.2 2018-07-23 09:57:38 +00:00
Pavel Djundik
6fa9ce3504
Merge pull request #2671 from thelounge/renovate/webpack-dev-server-3.x
chore(deps): update dependency webpack-dev-server to v3.1.5
2018-07-22 18:53:31 +03:00
Renovate Bot
41253a82be
chore(deps): update dependency webpack-dev-server to v3.1.5 2018-07-22 15:25:43 +00:00
Pavel Djundik
e8c02d5ad2
Merge pull request #2669 from MaxLeiter/humandate-refactor
refactor getHumanDate() to accept a timestamp; avoids possible test failure; more accurate log times
2018-07-22 11:39:11 +03:00
Max Leiter
9bee3eca5a refactor getHumanDate() to accept a timestamp; fixes test 2018-07-22 00:27:49 -07:00
Jérémie Astori
78eae2be88
Merge pull request #2670 from thelounge/xpaw/text-log-extension
Don't put .log in text log folder name
2018-07-22 02:07:32 -04:00
Pavel Djundik
265876786c Don't put .log in text log folder name 2018-07-22 00:39:22 +03:00
Pavel Djundik
5b2de64af8
Merge pull request #2668 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.1.4
2018-07-21 11:00:47 +03:00
Pavel Djundik
33a3aa8882
Merge pull request #2667 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.2.0
2018-07-21 11:00:39 +03:00
Renovate Bot
f6665da2ed
chore(deps): update dependency sinon to v6.1.4 2018-07-21 07:28:24 +00:00
Renovate Bot
e90a0da31d
chore(deps): update dependency eslint to v5.2.0 2018-07-21 06:35:57 +00:00
Pavel Djundik
b8db7a2f82
Fix closing tag being removed in user list
Fixes #2635
2018-07-21 02:25:18 -04:00
Jérémie Astori
fbe8a4151c
Reuse CSS variable on muted texts (timestamp, self messages, etc.) and improve constrast accessibility
#767676 is the lightest gray that passes AA level of WCAG contrast recommendations
2018-07-21 02:25:18 -04:00
Jérémie Astori
f69571847a
Make userlist section titles sticky on scroll 2018-07-21 02:25:17 -04:00
Jérémie Astori
09d6dfc604
Merge pull request #2645 from thelounge/astorije/better-docs
Improve inline documentation of config defaults and use it to generate website counterpart
2018-07-21 02:12:37 -04:00
Al McKinlay
cff6d2fd9c
Merge pull request #2664 from christer88/Recommend-yarn
Recommend using Yarn instead of NPM in changelog and readme
2018-07-20 08:18:29 +01:00
christer88
8e48c6d768
Remove [sudo] for Yarn install/upgrade command in README.md
Fixes https://github.com/thelounge/thelounge/pull/2664#discussion_r203621102
2018-07-19 09:36:23 +02:00
christer88
8b1e7c0f72
Remove [sudo] as requested 2018-07-19 09:15:40 +02:00
christer88
8d5de36987
Recommend using Yarn instead of NPM in changelog
TheLounge has started using Yarn, but does also support NPM. Yarn seems to in some cases solve issues people experience when using NPM, e.g. Sqlite3 installation.

I think it's good and about time to recommend using Yarn instead of NPM.
2018-07-19 01:10:49 +02:00
Pavel Djundik
dc8aa04887
Merge pull request #2662 from thelounge/renovate/webpack-cli-3.x
chore(deps): update dependency webpack-cli to v3.1.0
2018-07-18 19:24:41 +03:00
Renovate Bot
c999e6a8bf
chore(deps): update dependency webpack-cli to v3.1.0 2018-07-18 14:59:19 +00:00
Jérémie Astori
80d6cc78c3
Merge pull request #2659 from thelounge/renovate/mime-types-2.x
fix(deps): update dependency mime-types to v2.1.19
2018-07-18 02:51:41 -04:00
Renovate Bot
ecb817b866
fix(deps): update dependency mime-types to v2.1.19 2018-07-18 06:14:26 +00:00
Jérémie Astori
69e3728f5e
Merge pull request #2658 from thelounge/renovate/fortawesome-fontawesome-free-5.x
chore(deps): update dependency @fortawesome/fontawesome-free to v5.1.1
2018-07-18 02:13:55 -04:00
Jérémie Astori
7c1619554d
Re-order and improve inline comments of config.js
This is now used to generate https://thelounge.github.io/docs/server/configuration.html. These should now always match.
There is no breaking changes involved by this commit.
2018-07-18 01:42:04 -04:00
Renovate Bot
61bd7f1f20
chore(deps): update dependency @fortawesome/fontawesome-free to v5.1.1 2018-07-17 17:42:51 +00:00
Pavel Djundik
482bdf51f6
Merge pull request #2657 from MiniDigger/patch-1
use replace over trimEnd to support ff60
2018-07-17 16:37:10 +03:00
MiniDigger
8fa4a2833f
use replace over trimEnd to support ff60 2018-07-17 15:25:30 +02:00
Pavel Djundik
390d7c22ca
Merge pull request #2655 from realies/master
Change alert sound from ogg to wav
2018-07-17 11:07:48 +03:00
Pavel Djundik
91dcb7564b
Merge pull request #2653 from thelounge/xpaw/motd
Use monospace font for MOTD, set an icon, fix new line trimming
2018-07-17 11:07:38 +03:00
Pavel Djundik
ee4c8d78d3 Use monospace font on MOTDs and set an icon 2018-07-17 10:13:50 +03:00
Pavel Djundik
5209b12d44 Fix MOTD display to actually only trim new lines 2018-07-17 10:13:50 +03:00
realies
8f5182b379 Change alert sound from ogg to wav 2018-07-17 09:14:58 +03:00
Jérémie Astori
fd5652ed60
Add a script to generate documentation for config.js based on comments 2018-07-17 01:39:45 -04:00
Jérémie Astori
056a38caeb
Merge pull request #2654 from thelounge/renovate/fs-extra-7.x
fix(deps): update dependency fs-extra to v7
2018-07-17 00:30:57 -04:00
Renovate Bot
3f222c38ee
fix(deps): update dependency fs-extra to v7 2018-07-17 01:40:41 +00:00
Pavel Djundik
cf356e3312
Merge pull request #2652 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.1
2018-07-16 11:53:28 +03:00
Renovate Bot
1ea7e490b9
chore(deps): update dependency webpack to v4.16.1 2018-07-16 08:42:48 +00:00
Pavel Djundik
01f52752ca
Merge pull request #2651 from thelounge/renovate/sqlite3-4.x
chore(deps): update dependency sqlite3 to v4.0.2
2018-07-16 09:51:21 +03:00
Renovate Bot
58de64232c
chore(deps): update dependency sqlite3 to v4.0.2 2018-07-16 01:06:06 +00:00
Pavel Djundik
8fdf41a827
Merge pull request #2648 from thelounge/renovate/irc-framework-3.x
fix(deps): update dependency irc-framework to v3.1.0
2018-07-15 20:37:08 +03:00
Renovate Bot
08e3f54a89
fix(deps): update dependency irc-framework to v3.1.0 2018-07-15 16:22:56 +00:00
Pavel Djundik
4b84adb834
Merge pull request #2633 from thelounge/astorije/nicer-motd
Make the MOTDs a little nicer if possible
2018-07-15 13:40:58 +03:00
Jérémie Astori
4038240127
Merge pull request #2646 from thelounge/renovate/html-minifier-3.x
chore(deps): update dependency html-minifier to v3.5.19
2018-07-13 19:11:17 -04:00
Renovate Bot
41f82f4510
chore(deps): update dependency html-minifier to v3.5.19 2018-07-13 09:03:05 +00:00
Jérémie Astori
9f79ae2f19
Merge pull request #2641 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.16.0
2018-07-12 01:21:34 -04:00
Renovate Bot
35ffe9d5b9
chore(deps): update dependency webpack to v4.16.0 2018-07-11 08:53:46 +00:00
Pavel Djundik
bb26da2c3a
Merge pull request #2640 from thelounge/xpaw/ignorelist-fix
Fix ignore list resetting on server restart
2018-07-11 11:12:34 +03:00
Pavel Djundik
e8b3836050 Fix ignore list resetting on server restart 2018-07-11 10:57:02 +03:00
Pavel Djundik
3bf24047dd
Merge pull request #2637 from thelounge/xpaw/chan-list-log
Do not write /list messages to logs
2018-07-10 16:59:24 +03:00
Pavel Djundik
74e5d2c930
Merge pull request #2639 from thelounge/xpaw/remove-extra-tag
Remove extra closing tag
2018-07-10 16:59:14 +03:00
Pavel Djundik
71dad07480
Remove extra closing tag 2018-07-10 15:05:17 +03:00
Pavel Djundik
9bb8d4f385 Do not write /list messages to logs 2018-07-10 12:44:23 +03:00
Pavel Djundik
3a11cd2dda
Merge pull request #2584 from thelounge/renovate/sqlite3-4.x
chore(deps): update dependency sqlite3 to v4.0.1
2018-07-10 11:54:23 +03:00
Jérémie Astori
3eca924a7c
Make the MOTDs a little nicer if possible
This removes the leading hyphens from MOTD lines (under the condition they all do) and trims empty lines around the MOTD (but not inside).
2018-07-10 00:38:11 -04:00
Renovate Bot
b39a4a67e2
chore(deps): update dependency sqlite3 to v4.0.1 2018-07-09 04:18:08 +00:00
Jérémie Astori
6187b3bd0b
Merge pull request #2632 from thelounge/renovate/eslint-5.x
chore(deps): update dependency eslint to v5.1.0
2018-07-09 00:17:45 -04:00
Renovate Bot
da35ca3559
chore(deps): update dependency eslint to v5.1.0 2018-07-08 21:18:30 +00:00
Jérémie Astori
7f94a47a50
Merge pull request #2622 from thelounge/astorije/fix-highlight-mobile
Fix incorrect left padding for highlights on mobile
2018-07-08 15:03:10 -04:00
Pavel Djundik
d41ca1a1f9
Merge pull request #2630 from thelounge/xpaw/autocompl-bugs
Fix disabling autocomplete and fix completing special channels
2018-07-08 21:58:33 +03:00
Jérémie Astori
f58e171a69
Fix incorrect left padding for highlights on mobile 2018-07-08 14:46:55 -04:00
Pavel Djundik
ff98f31be2
Fix disabling autocomplete and fix completing special channels 2018-07-08 18:21:15 +03:00
Jérémie Astori
f249747642
Merge pull request #2604 from Zarthus/issue_templates
Introduce issue templates
2018-07-07 12:19:19 -04:00
Jérémie Astori
c8313af571
Merge pull request #2628 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.1.3
2018-07-07 12:17:58 -04:00
Renovate Bot
40ac64f2e4
chore(deps): update dependency sinon to v6.1.3 2018-07-07 08:59:16 +00:00
Pavel Djundik
95e6fb3a49
Merge pull request #2609 from RockyTV/rockytv
Stop handling CTCP messages if the sender/target is ignored
2018-07-07 11:09:35 +03:00
Jérémie Astori
45b87ea905
Merge pull request #2624 from thelounge/xpaw/test-fix
Increase delay between links to remove random test failure
2018-07-07 02:08:24 -04:00
Jérémie Astori
b6b0e70046
Merge pull request #2626 from thelounge/xpaw/context-menu-target
Fix incorrect target in (dis)connect context menu
2018-07-07 02:05:51 -04:00
Pavel Djundik
9447b4894d Fix incorrect target in (dis)connect context menu 2018-07-06 21:21:57 +03:00
Jos Ahrens
f5b70092b2
Modify Feature_Request.md template
- Stop asking for version
- Add comment suggesting to look into existing issues
- Add <h2> block for "Feature Description"
2018-07-06 17:14:29 +00:00
Pavel Djundik
28df906957 Implement caching for static resources 2018-07-06 15:38:57 +03:00
Pavel Djundik
0f6fd4dac5 Listen for beforeinstallprompt to trigger 'add to home' 2018-07-06 15:38:57 +03:00
Pavel Djundik
1f604a8556 Network-first cache in service worker 2018-07-06 12:35:02 +03:00
Pavel Djundik
11bd2dfa4c Increase delay between links to remove random test failure 2018-07-06 12:29:21 +03:00
Pavel Djundik
cdebd532ce Make menu state consistent on desktop and mobile; fix sliding on desktop
Fixes #2572
2018-07-06 12:27:26 +03:00
Pavel Djundik
d5f0a2481f
Merge pull request #2623 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.1.2
2018-07-06 12:26:01 +03:00
Renovate Bot
94c7a09f55
chore(deps): update dependency sinon to v6.1.2 2018-07-06 07:46:34 +00:00
Jérémie Astori
21c4dea8a9
Merge pull request #2599 from thelounge/xpaw/userlist
Make userlist state consistent on mobile and desktop
2018-07-06 01:29:23 -04:00
Jérémie Astori
93fcd57b2d
Merge pull request #2571 from thelounge/xpaw/protocol-handler
Implement irc:// protocol handler
2018-07-05 22:08:07 -04:00
Jérémie Astori
2bd82fec6e
Merge pull request #2595 from joandrsn/master
Clarify /topic command without newtopic
2018-07-05 22:05:11 -04:00
Jérémie Astori
8c7d7163c9
Merge pull request #2620 from thelounge/renovate/babel-loader-7.x
chore(deps): update dependency babel-loader to v7.1.5
2018-07-05 21:32:43 -04:00
Jérémie Astori
7bb8089095
Merge pull request #2621 from richrd/master
Fix link to contributing instructions in readme
2018-07-05 21:29:49 -04:00
Richard Lewis
904664743f
Fix link to contributing instructions 2018-07-05 23:57:13 +03:00
Renovate Bot
69c1b0a55a
chore(deps): update dependency babel-loader to v7.1.5 2018-07-05 16:38:02 +00:00
Pavel Djundik
8873ac3524
Merge pull request #2619 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.15.1
2018-07-05 17:08:42 +03:00
Renovate Bot
5cd805fc44
chore(deps): update dependency webpack to v4.15.1 2018-07-05 13:46:15 +00:00
Pavel Djundik
19ac4f72aa Implement irc:// protocol handler 2018-07-05 13:01:10 +03:00
Pavel Djundik
0a8f83c2fe
Merge pull request #2617 from christer88/patch-1
Disable username autocapitalize on input field when signing on
2018-07-05 12:51:24 +03:00
Pavel Djundik
752eca4eef
Merge pull request #2615 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.15.0
2018-07-05 11:38:51 +03:00
christer88
251ed60f1c
Disable username autocapitalize on input field when signing on
Fixes https://github.com/thelounge/thelounge/issues/2616
2018-07-05 08:00:07 +02:00
Renovate Bot
c5b4f4e9c4
chore(deps): update dependency webpack to v4.15.0 2018-07-04 19:49:48 +00:00
Pavel Djundik
184f6bae09
Merge pull request #2570 from thelounge/xpaw/uid
Warn if config owner doesn't match process uid
2018-07-04 11:53:58 +03:00
Pavel Djundik
d63f0ccc50 Make userlist state consistent on mobile and desktop 2018-07-04 10:26:07 +03:00
Pavel Djundik
b5390f1ef3
Merge pull request #2610 from thelounge/renovate/primer-tooltips-1.x
fix(deps): update dependency primer-tooltips to v1.5.6
2018-07-03 23:13:40 +03:00
Pavel Djundik
c919eba4cd
Merge pull request #2612 from thelounge/renovate/sinon-6.x
chore(deps): update dependency sinon to v6.1.0
2018-07-03 23:13:31 +03:00
Renovate Bot
238e68fab9
fix(deps): update dependency primer-tooltips to v1.5.6 2018-07-03 19:24:35 +00:00
Renovate Bot
e0fcf97777
chore(deps): update dependency sinon to v6.1.0 2018-07-03 19:24:14 +00:00
Pavel Djundik
4eb599e786
Merge pull request #2613 from SinZ163/patch-1
Add reminder that ascii is awesome
2018-07-03 21:58:25 +03:00
Pavel Djundik
45a68d21e8
Merge pull request #2611 from thelounge/renovate/html-minifier-3.x
chore(deps): update dependency html-minifier to v3.5.18
2018-07-03 21:56:35 +03:00
Trent Monahan
3a89935c29 Add reminder that ascii is awesome. 2018-07-03 19:51:10 +10:00
Renovate Bot
a9044fadae
chore(deps): update dependency html-minifier to v3.5.18 2018-07-03 07:21:59 +00:00
Pavel Djundik
dc6ca963f5
Merge pull request #2598 from thelounge/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.14.0
2018-07-02 17:04:54 +03:00
Alexandre Oliveira
671dad4ed6 Stop handling CTCP messages if the sender/target is ignored 2018-07-01 15:48:37 -03:00
Renovate Bot
f9e522cc0e
chore(deps): update dependency webpack to v4.14.0 2018-06-30 03:27:06 +00:00
Jérémie Astori
4109480b27
Merge pull request #2608 from Zarthus/broken_link_fix
Fix broken link in CONTRIBUTING.md
2018-06-29 22:47:34 -04:00
Jérémie Astori
9b697b414a
Merge pull request #2606 from thelounge/renovate/commander-2.x
Update dependency commander to v2.16.0
2018-06-29 22:43:03 -04:00
Renovate Bot
ada6439ae4
Update dependency commander to v2.16.0 2018-06-30 01:30:56 +00:00
Jérémie Astori
fc582d5351
Merge pull request #2607 from thelounge/renovate/mini-css-extract-plugin-0.x
Update dependency mini-css-extract-plugin to v0.4.1
2018-06-29 21:30:31 -04:00
Jos Ahrens
14e982e2d8
contributing: fix broken link 2018-06-29 16:32:52 +00:00
Jos Ahrens
e5fc54a3c0
introduce issue templates 2018-06-29 16:06:46 +00:00
Renovate Bot
0d82f8159c
Update dependency mini-css-extract-plugin to v0.4.1 2018-06-29 13:50:02 +00:00
Jérémie Astori
9126bac89b
Merge pull request #2603 from Zarthus/dotgithub_folder
add `.github` folder
2018-06-29 01:33:07 -04:00
Jérémie Astori
8cda22056f
Merge pull request #2605 from thelounge/renovate/uuid-3.x
Update dependency uuid to v3.3.2
2018-06-29 01:28:53 -04:00
Renovate Bot
84c106858a
Update dependency uuid to v3.3.2 2018-06-28 22:19:10 +00:00
Jos Ahrens
a24d932102
add .github folder
Moves all github-related markdown files to a .github folder

closes #2600
2018-06-28 16:27:57 +00:00
Jonas Andersen
90e55bd759 Removed 'the command' 2018-06-27 08:47:47 +02:00
Jérémie Astori
51f5cda4ff
Merge pull request #2593 from MaxLeiter/fix-x-button-text
Switch close button text on channels to Leave and kept as Close for other types.
2018-06-27 00:37:59 -04:00
Max Leiter
f1b88e5216 switch close button text on channels to Leave and kept as Close for other types. 2018-06-26 21:11:04 -07:00
Jérémie Astori
82c9c3c26a
Merge pull request #2594 from thelounge/renovate/copy-webpack-plugin-4.x
Update dependency copy-webpack-plugin to v4.5.2
2018-06-26 19:04:56 -04:00
Renovate Bot
06819dc4b9
Update dependency copy-webpack-plugin to v4.5.2 2018-06-26 22:50:32 +00:00
Jérémie Astori
db22669050
Merge pull request #2596 from thelounge/renovate/uuid-3.x
Update dependency uuid to v3.3.0
2018-06-26 18:50:10 -04:00
Renovate Bot
87a995fe0b
Update dependency uuid to v3.3.0 2018-06-26 13:26:22 +00:00
Jonas Andersen
1ebbacdb2a Clarify /topic command without newtopic 2018-06-26 11:52:20 +02:00
Pavel Djundik
d1a995471e
Merge pull request #2592 from MaxLeiter/eslint-arrow-rule-fix
Update `no-confusing-error` eslint rule to allow parenthesis
2018-06-26 10:51:26 +03:00
Max Leiter
46abaeb279 Update no-confusing-error eslint rule to allow parenthesis 2018-06-26 00:35:02 -07:00
Pavel Djundik
6089372ac7
Merge pull request #2587 from aspotton/userinfo_in_sidebar_context_menu
Add 'User information' (whois) support to the sidebar context menu
2018-06-26 09:51:57 +03:00
Jérémie Astori
397b5e8f47
Merge pull request #2590 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5.0.1
2018-06-26 00:43:13 -04:00
Renovate Bot
b80a1f11f0
Update dependency eslint to v5.0.1 2018-06-26 04:01:46 +00:00
Jérémie Astori
061fa615ce
Merge pull request #2589 from thelounge/renovate/html-minifier-3.x
Update dependency html-minifier to v3.5.17
2018-06-25 23:09:57 -04:00
Renovate Bot
6639452c87
Update dependency html-minifier to v3.5.17 2018-06-25 21:24:28 +00:00
Jérémie Astori
935db3cdd1
Merge pull request #2588 from thelounge/renovate/sinon-6.x
Update dependency sinon to v6.0.1
2018-06-24 14:54:31 -04:00
Renovate Bot
f35e718b2e
Update dependency sinon to v6.0.1 2018-06-24 18:22:03 +00:00
Jérémie Astori
742ba4cfdb
Merge pull request #2586 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.12.1
2018-06-24 13:12:08 -04:00
Adam Spotton
54e502c020 Add 'User information' (whois) support to the sidebar context menu 2018-06-24 11:52:55 -04:00
Renovate Bot
8a1c2a1596
Update dependency webpack to v4.12.1 2018-06-24 08:47:55 +00:00
Pavel Djundik
5e438b7fab
Merge pull request #2585 from thelounge/astorije/highlight-show-seconds
Fix highlights when seconds are shown in timestamps
2018-06-24 00:16:38 +03:00
Jérémie Astori
7e8610bbac
Fix highlights when seconds are shown in timestamps 2018-06-23 14:58:17 -04:00
Jérémie Astori
1d6c6dd52b
Merge pull request #2526 from thelounge/astorije/higlight-border-and-bg
Replace current red-text highlight with a full background-color highlight
2018-06-23 14:20:44 -04:00
Jérémie Astori
dfa19bac18
Merge pull request #2582 from thelounge/renovate/eslint-5.x
Update dependency eslint to v5
2018-06-23 11:46:22 -04:00
Renovate Bot
1de4404bb2
Update dependency eslint to v5 2018-06-23 03:01:35 +00:00
Jérémie Astori
4b19f79cb8
Merge pull request #2548 from thelounge/xpaw/input-height
Fix text not having enough space in <select> with some fonts
2018-06-21 21:10:40 -04:00
Jérémie Astori
10642b8f5a
Merge pull request #2576 from thelounge/xpaw/query-away-notify
Also send away notices to query windows
2018-06-21 21:01:58 -04:00
Jérémie Astori
f2acae4ce1
Merge pull request #2580 from thelounge/xpaw/title-fixes
Reset highlights on self messages; update title when other client opens a channel
2018-06-21 21:00:44 -04:00
Jérémie Astori
c2ce56292c
Use a combination background + left border for highlight messages 2018-06-21 13:30:29 -04:00
Pavel Djundik
d00cf72614 Reset highlights on self messages; update title when other client opens a channel 2018-06-21 16:51:07 +03:00
Pavel Djundik
3e029c4e8a
Merge pull request #2579 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.3.2
2018-06-21 11:20:52 +03:00
Pavel Djundik
2379c523be
Merge pull request #2577 from thelounge/renovate/fortawesome-fontawesome-free-5.x
Update dependency @fortawesome/fontawesome-free to v5.1.0
2018-06-21 11:20:41 +03:00
Renovate Bot
bbba3df6d3
Update dependency web-push to v3.3.2 2018-06-20 21:53:44 +00:00
Renovate Bot
a7474dd5f0
Update dependency @fortawesome/fontawesome-free to v5.1.0 2018-06-20 20:03:33 +00:00
Pavel Djundik
b986025e1a
Merge pull request #2554 from Jay2k1/whowas-support
WHOWAS support
2018-06-20 21:11:41 +03:00
Pavel Djundik
5091939aa4 Add support for WHOWAS
Fixes #2050

Co-Authored-By: jay2k1 <jay2k1@users.noreply.github.com>
2018-06-20 21:03:00 +03:00
Pavel Djundik
62e2cbe66b Also send away notices to query windows 2018-06-20 19:45:27 +03:00
Pavel Djundik
c95b09cbac
Merge pull request #2523 from Jay2k1/show-self-away
Display visual feedback on self away/back
2018-06-20 19:37:59 +03:00
Pavel Djundik
b8d60ddaa6 Correctly handle away and back events
Also support for self messages

Co-Authored-By: jay2k1 <jay2k1@users.noreply.github.com>
2018-06-20 19:32:19 +03:00
Pavel Djundik
bdccfd82f1
Merge pull request #2575 from thelounge/renovate/irc-framework-3.x
Update dependency irc-framework to v3
2018-06-20 19:05:03 +03:00
Pavel Djundik
a9413dc277 Update for changes in irc-framework 2018-06-20 18:30:32 +03:00
Renovate Bot
5827b151ee
Update dependency irc-framework to v3 2018-06-20 15:27:15 +00:00
Pavel Djundik
d9abe9224e Warn if config owner doesn't match process uid 2018-06-19 17:18:06 +03:00
Pavel Djundik
b744ff6b1e
Merge pull request #2569 from thelounge/xpaw/fix-2568
Fix circular dependency in Helper+log
2018-06-19 16:17:58 +03:00
Pavel Djundik
a124e7bdb8 Change input sizes to be consistent 2018-06-19 13:32:15 +03:00
Pavel Djundik
08682d2448 Fix circular dependency in Helper+log
Fixes #2568
2018-06-19 10:09:38 +03:00
Jérémie Astori
36aef26ce9
3.0.0-pre.7 2018-06-19 00:37:45 -04:00
Jérémie Astori
9d278a1fe2
Add changelog entry for v3.0.0-pre.7 2018-06-19 00:36:53 -04:00
Jérémie Astori
e2602b28ad
Merge pull request #2315 from thelounge/astorije/ui
Revamp default theme a bit
2018-06-19 00:26:20 -04:00
Jérémie Astori
0be8de738a
Merge pull request #2377 from thelounge/xpaw/contextmenu-keyboard
Make context menus accessible with keyboard
2018-06-19 00:23:22 -04:00
Jérémie Astori
511e612e16
Merge pull request #2567 from thelounge/xpaw/fix-2566
Do not remove date marker when loading history if date changes
2018-06-17 13:57:21 -04:00
Jérémie Astori
c46eca1873
Merge pull request #2565 from thelounge/xpaw/modern-babel
Target more modern browsers in babel
2018-06-17 13:56:13 -04:00
Pavel Djundik
9a808b58e9 Do not remove date marker when loading history if date changes
Fixes #2566
2018-06-17 11:46:31 +03:00
Pavel Djundik
a637cb0632
Merge pull request #2559 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.0.8
2018-06-17 10:31:58 +03:00
Renovate Bot
eefe0279a1
Update dependency webpack-cli to v3.0.8 2018-06-16 23:14:28 +00:00
Jérémie Astori
7485850606
Merge pull request #2564 from thelounge/xpaw/nyc_output
Move .nyc_output folder out of root
2018-06-16 18:46:37 -04:00
Pavel Djundik
74cbfe973a Target more modern browsers in babel 2018-06-16 19:56:16 +03:00
Pavel Djundik
a07b372c71 Move .nyc_output folder out of root 2018-06-16 12:13:29 +03:00
Jérémie Astori
1d797af794
Merge pull request #2563 from thelounge/xpaw/no-global-log
Remove `log` from `global`
2018-06-15 18:27:13 -04:00
Pavel Djundik
472d618033 Remove log from global 2018-06-15 23:31:06 +03:00
Pavel Djundik
6bbe569dac
Merge pull request #2561 from thelounge/renovate/stylelint-9.x
Update dependency stylelint to v9.3.0
2018-06-15 17:06:43 +03:00
Renovate Bot
2cf5a0fd96
Update dependency stylelint to v9.3.0 2018-06-15 13:35:41 +00:00
Pavel Djundik
9d8d8eefa6
Merge pull request #2560 from Jay2k1/remove-comment
remove unnecessary comment
2018-06-15 14:45:33 +03:00
Jay2k1
254e39df18
remove unnecessary comment 2018-06-15 13:42:47 +02:00
Pavel Djundik
24531538fd Remove unnecessary code
This cause context menu to re-open when clicking on user in the context menu
2018-06-15 13:27:59 +03:00
Max Leiter
012ca805c1 Add role attributes in context menus 2018-06-15 13:27:59 +03:00
Pavel Djundik
d178ac9749 Make context menus accessible with keyboard 2018-06-15 13:27:58 +03:00
Jérémie Astori
f814d7369c
Introduce some CSS variables to simplify writing themes that stay close to the default style 2018-06-14 18:58:42 -04:00
Jérémie Astori
8137ece450
Make sidebar logo scroll with networks, wrap logos in div element 2018-06-14 18:49:56 -04:00
Jérémie Astori
bff38efd50
Optimize SVG logos 2018-06-14 18:49:56 -04:00
Jérémie Astori
a97aa59689
Display full logo+text on public mode, logo-only on private mode 2018-06-14 18:49:56 -04:00
Jérémie Astori
ad3688e61d
Update Morning to be an exact dark version of default theme 2018-06-14 18:49:56 -04:00
Jérémie Astori
0e50cb4f06
Add normal version of logo for themes with light sidebars 2018-06-14 18:49:55 -04:00
Jérémie Astori
6201df072e
Revamp default theme a bit 2018-06-14 18:49:55 -04:00
Jérémie Astori
a81cef397c
Merge pull request #2558 from thelounge/xpaw/chantitle-undefined
Fix undefined channel when updating title
2018-06-14 18:44:36 -04:00
Jérémie Astori
dfee1a0fb0
Merge pull request #2501 from Jay2k1/textlog-formatting
Improve formatting of text logs
2018-06-14 18:43:00 -04:00
Pavel Djundik
8e211405b1
Merge pull request #2557 from thelounge/renovate/primer-tooltips-1.x
Update dependency primer-tooltips to v1.5.5
2018-06-14 22:03:07 +03:00
Pavel Djundik
4f018ba23b Fix undefined channel when updating title 2018-06-14 18:54:38 +03:00
Renovate Bot
acfd493d9e
Update dependency primer-tooltips to v1.5.5 2018-06-14 15:53:41 +00:00
Pavel Djundik
1f96342590
Merge pull request #2555 from thelounge/renovate/filenamify-2.x
Update dependency filenamify to v2.1.0
2018-06-14 17:20:34 +03:00
Renovate Bot
62381a0731
Update dependency filenamify to v2.1.0 2018-06-14 13:35:19 +00:00
Jérémie Astori
65bd014a21
Merge pull request #2553 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.0.6
2018-06-13 23:35:40 -04:00
Jay2k1
e11f97a2bb Improve formatting of text logs 2018-06-13 22:45:18 +02:00
Renovate Bot
cf18905775
Update dependency webpack-cli to v3.0.6 2018-06-13 19:13:16 +00:00
Pavel Djundik
25e26a5b28
Merge pull request #2496 from Jay2k1/alert-count-in-title
Add alert count to title
2018-06-13 21:25:40 +03:00
Jay2k1
a0a2e91928 add highlight count to page title 2018-06-13 19:06:32 +02:00
Pavel Djundik
be2b81c478
Merge pull request #2540 from thelounge/astorije/favicon-normal
Make non-highlighted favicon look more different than highlighted one
2018-06-13 17:44:39 +03:00
Jérémie Astori
4d17cfb715
Merge pull request #2550 from thelounge/xpaw/notice-log
Log notices as correct sender when it will be shown in active window
2018-06-12 19:19:21 -04:00
Pavel Djundik
5dced897d8
Log notices as correct sender when it will be shown in active window 2018-06-12 19:09:55 -04:00
Jérémie Astori
2640027bd8
Merge pull request #2544 from thelounge/xpaw/no-sync-label
Remove label on force sync button
2018-06-12 18:52:51 -04:00
Pavel Djundik
b54862022e
Merge pull request #2551 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.0.4
2018-06-12 16:07:04 +03:00
Renovate Bot
9b6e6efce2
Update dependency webpack-cli to v3.0.4 2018-06-12 11:57:31 +00:00
Pavel Djundik
063ef1a98e Remove label on force sync button 2018-06-12 11:25:00 +03:00
Jérémie Astori
a267add7a4
Merge pull request #2547 from thelounge/xpaw/hl-sync
Synchronise number of highlighted messages to client
2018-06-11 23:47:24 -04:00
Jérémie Astori
32ccfd50af
Merge pull request #2543 from thelounge/xpaw/link-title
Fix multiple <title> tags being concatenated
2018-06-11 09:15:37 -04:00
Jérémie Astori
eff7618f79
Merge pull request #2546 from thelounge/xpaw/fix-2545
Fix sqlite history not loading when maxHistory is -1
2018-06-11 09:13:29 -04:00
Pavel Djundik
7a3008aec6 Synchronize number of highlighted messages to client
Also fixes #1791
2018-06-11 14:29:57 +03:00
Pavel Djundik
ea00587c00 Fix sqlite history not loading when maxHistory is -1
Fixes #2545
2018-06-11 14:08:05 +03:00
Pavel Djundik
0d48c596c8 Fix multiple <title> tags being concatenated 2018-06-11 11:32:32 +03:00
Pavel Djundik
12cd1b2614
Merge pull request #2542 from thelounge/renovate/sinon-6.x
Update dependency sinon to v6
2018-06-11 10:50:29 +03:00
Pavel Djundik
e420a210b9
Merge pull request #2538 from thelounge/xpaw/fetch-links-once
De-duplicate link fetching to one request at once
2018-06-11 10:49:29 +03:00
Pavel Djundik
4e2523060b De-duplicate link fetching to one request at once 2018-06-11 10:38:03 +03:00
Renovate Bot
663b9daef6
Update dependency sinon to v6 2018-06-11 05:36:25 +00:00
Jérémie Astori
af11b864ce
Merge pull request #2541 from thelounge/astorije/optional-sqlite3
Mark sqlite3 as an optional dependency
2018-06-10 18:05:52 -04:00
Jérémie Astori
a3f88ffa5b
Mark sqlite3 as an optional dependency
Reminder: `optionalDependencies` simply means the install will not fail if that dependency fails to install, not that it will not get installed by default. We currently handle the case in code when sqlite3 is not working properly.

See https://docs.npmjs.com/files/package.json#optionaldependencies
2018-06-10 17:35:02 -04:00
Jérémie Astori
d94da2aa09
Make non-highlighted favicon look more different than highlighted one 2018-06-10 16:48:08 -04:00
Pavel Djundik
7ea32d8a71
Merge pull request #2539 from thelounge/astorije/more-caret
Restore whitespace between caret and More/Less text in previews
2018-06-10 22:53:02 +03:00
Jérémie Astori
49babf773e
Restore whitespace between caret and More/Less text in previews 2018-06-10 15:39:39 -04:00
Jérémie Astori
e3808068af
Merge pull request #2536 from thelounge/xpaw/fix-2473
Focus into input if trying to type into any non-input element
2018-06-10 13:35:10 -04:00
Jérémie Astori
50b4fa3441
Merge pull request #2535 from thelounge/xpaw/shields-cache
Set caching on shields.io badges in readme
2018-06-10 11:11:44 -04:00
Pavel Djundik
3b2173c694 Focus into input if trying to type into any non-input element
Fixes #2473
2018-06-10 14:19:17 +03:00
Pavel Djundik
825c1b8986
Set caching on shields.io badges in readme 2018-06-10 12:20:55 +03:00
Pavel Djundik
011bf80038
Merge pull request #2534 from thelounge/mcinkay/unicode-custom-highlight
Fix word boundary in the custom highlights regex not matching unicode
2018-06-10 11:33:37 +03:00
Pavel Djundik
b7428c2b20
Merge pull request #2114 from MaxLeiter/disconnect
Allow connecting/disconnecting from networks in UI, closes #631
2018-06-10 11:33:06 +03:00
Alistair McKinlay
3cd8ce6514 Fix word boundary in the custom highlights regex not matching unicode
Fixes #1939
2018-06-10 09:27:11 +01:00
Max Leiter
9c4c1d6d51 Allow connecting/disconnecting from networks in UI, closes #631 2018-06-09 16:32:21 -07:00
Pavel Djundik
b7072c8955
Merge pull request #2532 from benharri/auto-detect-url
use http for protocol-less URLs
2018-06-09 20:52:59 +03:00
Ben Harris
d2987d037c use http for protocol-less URLs 2018-06-09 13:46:46 -04:00
Jérémie Astori
213586be95
Merge pull request #2530 from thelounge/xpaw/fix-2529
Fix adding a new network expanding collapsed networks incorrectly
2018-06-09 01:39:26 -04:00
Jérémie Astori
a1a45f8c67
Merge pull request #2517 from thelounge/renovate/sinon-5.x
Update dependency sinon to v5.1.1
2018-06-09 01:37:46 -04:00
Renovate Bot
9d5159477c
Update dependency sinon to v5.1.1 2018-06-09 01:12:29 +00:00
Pavel Djundik
84ac5f55fe
Merge pull request #2531 from thelounge/renovate/emoji-regex-7.x
Update dependency emoji-regex to v7
2018-06-08 15:34:07 +03:00
Renovate Bot
e0135d0832
Update dependency emoji-regex to v7 2018-06-08 09:14:04 +00:00
Pavel Djundik
e5954ec0d8 Fix adding a new expanding collapsed networks incorrectly
Fixes #2529
2018-06-08 12:11:00 +03:00
Pavel Djundik
56de773614
Merge pull request #2528 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.12.0
2018-06-08 11:18:05 +03:00
Renovate Bot
838af985e1
Update dependency webpack to v4.12.0 2018-06-08 07:36:34 +00:00
Jérémie Astori
59e8e1aa7e
Merge pull request #2518 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.11.1
2018-06-07 23:25:40 -04:00
Jérémie Astori
8a7212a04f
Merge pull request #2524 from thelounge/xpaw/fix-away-cmd
Fix "/away " not setting you away
2018-06-07 23:23:56 -04:00
Pavel Djundik
730c266ea8
Fix "/away " not setting you away 2018-06-07 19:23:51 +03:00
Renovate Bot
5f9c4878b9
Update dependency webpack to v4.11.1 2018-06-07 05:16:28 +00:00
Jérémie Astori
0a1a4fc68a
Merge pull request #2520 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.0.3
2018-06-07 01:15:53 -04:00
Renovate Bot
0a3ded2957
Update dependency webpack-cli to v3.0.3 2018-06-07 01:26:37 +00:00
Jérémie Astori
de1e6091bf
Merge pull request #2514 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.11.0
2018-06-05 08:46:12 -04:00
Renovate Bot
36797f3594
Update dependency webpack to v4.11.0 2018-06-05 12:27:39 +00:00
Pavel Djundik
3248f0db1e
Merge pull request #2506 from thelounge/xpaw/rm-logs-format
Remove ability to change date format and timezone
2018-06-05 14:55:44 +03:00
Pavel Djundik
c0d712c53d Remove ability to change date format and timezone 2018-06-05 12:03:06 +03:00
Jérémie Astori
01cc10dc43
Merge pull request #2512 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.0.2
2018-06-05 00:15:09 -04:00
Renovate Bot
4a9a58e19c
Update dependency webpack-cli to v3.0.2 2018-06-04 20:23:46 +00:00
Pavel Djundik
cd55e7bb2a
Merge pull request #2510 from Jay2k1/ctcp-unread-counter
Make CTCP requests/responses increase unread counter
2018-06-04 10:51:53 +03:00
Jay2k1
5d748a59cc
Make CTCP requests/responses increase unread counter 2018-06-04 00:47:30 +02:00
Jérémie Astori
8653b2a382
Merge pull request #2508 from thelounge/xpaw/no-join-topic-log
Do not write topic on join to logs
2018-06-03 18:04:03 -04:00
Jérémie Astori
fe49b005da
Merge pull request #2509 from thelounge/renovate/nyc-12.x
Update dependency nyc to v12.0.2
2018-06-03 18:01:39 -04:00
Renovate Bot
f4e0cde4e6
Update dependency nyc to v12.0.2 2018-06-03 21:02:43 +00:00
Pavel Djundik
4d94ab4218 Do not write ignorelist to logs 2018-06-03 22:20:09 +03:00
Pavel Djundik
b0f32dc29b Do not write topic on join to logs 2018-06-03 22:14:02 +03:00
Pavel Djundik
a6ed4f3652
Merge pull request #2497 from thelounge/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3
2018-06-03 21:55:59 +03:00
Renovate Bot
a71fc83401
Update dependency webpack-cli to v3 2018-06-03 18:13:14 +00:00
Pavel Djundik
cd1763cbf8
Merge pull request #2504 from thelounge/xpaw/fix-2438
If a preview fails to load, remove the link from msg object
2018-06-03 20:39:14 +03:00
Jérémie Astori
b336e4f202
Merge pull request #2505 from thelounge/xpaw/fix-2324
Don't mark your nick changes as self in each channel
2018-06-03 13:37:38 -04:00
Pavel Djundik
a663993d0b If a preview fails to load, remove the link from msg object
Fixes #2438
2018-06-03 12:25:01 +03:00
Pavel Djundik
2d13eaaf6b
Merge pull request #2503 from dgw/sidebar-lobby-overflow
Prevent long lobby names pushing badges out of sidebar
2018-06-02 23:12:38 +03:00
dgw
fa66c3f23b Prevent long lobby names pushing badges out of sidebar 2018-06-02 15:01:57 -05:00
Pavel Djundik
4ee4d015cb
Merge pull request #2502 from dgw/fix-always-locked-network
Undo webpack sorting, it made network always locked
2018-06-02 22:16:28 +03:00
dgw
35841b3369 Undo webpack sorting, it made network always locked 2018-06-02 14:13:42 -05:00
Jérémie Astori
c0ff2fe2b2
Merge pull request #2498 from thelounge/xpaw/handlebars-minify
Minify handlebar templates
2018-06-02 11:57:05 -04:00
Pavel Djundik
e5059c73ed
Merge pull request #2500 from thelounge/renovate/mousetrap-1.x
Update dependency mousetrap to v1.6.2
2018-06-02 17:18:18 +03:00
Renovate Bot
3f26cee4d4
Update dependency mousetrap to v1.6.2 2018-06-02 13:19:57 +00:00
Pavel Djundik
4824a2b535
Merge pull request #2388 from Raqbit/master
Fix Alt+Up/Down cycling through channels of collapsed networks
2018-06-02 13:49:19 +03:00
Pavel Djundik
6ee06583a9 Minify handlebar templates 2018-06-02 12:24:36 +03:00
Jérémie Astori
8f7a141711
Merge pull request #2494 from thelounge/xpaw/list-together
Put list items in network context menu together
2018-06-01 21:45:20 -04:00
Jérémie Astori
ecaf269fe1
Merge pull request #2495 from thelounge/renovate/webpack-cli-2.x
Update dependency webpack-cli to v2.1.5
2018-06-01 21:33:30 -04:00
Renovate Bot
850bfdd722
Update dependency webpack-cli to v2.1.5 2018-06-01 16:44:30 +00:00
Pavel Djundik
f1ad8fa8f2
Merge pull request #2488 from Jay2k1/addAsteriskOnCopy
Add asterisk in front of nick in action lines
2018-06-01 19:43:30 +03:00
Pavel Djundik
a35154185a
Put list items in network context menu together 2018-06-01 12:13:40 +03:00
Pavel Djundik
03b5e2c5db
Merge pull request #2481 from thelounge/renovate/fortawesome-fontawesome-free-5.x
Update dependency @fortawesome/fontawesome-free to v5.1.0-11
2018-06-01 12:03:14 +03:00
Pavel Djundik
52ca445636
Merge pull request #2493 from thelounge/renovate/moment-2.x
Update dependency moment to v2.22.2
2018-06-01 12:03:00 +03:00
Renovate Bot
8fffa6b03f
Update dependency moment to v2.22.2 2018-06-01 07:56:47 +00:00
Renovate Bot
d0d71b309e
Update dependency @fortawesome/fontawesome-free to v5.1.0-11 2018-06-01 04:10:49 +00:00
Jérémie Astori
b7ed3066c1
Merge pull request #2492 from thelounge/renovate/nyc-12.x
Update dependency nyc to v12
2018-06-01 00:10:09 -04:00
Renovate Bot
7037a58ca9
Update dependency nyc to v12 2018-06-01 00:48:10 +00:00
Jay2k1
6f8e26bdbf Add asterisk in front of nick in action lines 2018-05-31 16:16:49 +02:00
Pavel Djundik
b4693fb768
Merge pull request #2482 from Jay2k1/master
Fix being unable to click channel link in chan after being kicked
2018-05-31 15:54:51 +03:00
Pavel Djundik
20abf92e4b
Merge pull request #2487 from thelounge/astorije/nick-pointer
Fix mouse cursor on userlist
2018-05-31 12:15:50 +03:00
Jérémie Astori
5344768e93
Fix mouse cursor on userlist 2018-05-31 00:50:00 -04:00
Pavel Djundik
0855d51e10
Merge pull request #2484 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.10.2
2018-05-30 12:01:45 +03:00
Renovate Bot
ab29a7ba74
Update dependency webpack to v4.10.2 2018-05-30 08:39:32 +00:00
Jérémie Astori
24b9b93c3e
Merge pull request #2480 from thelounge/xpaw/fix-2478
Show connect window when last network is removed
2018-05-29 23:36:22 -04:00
Jérémie Astori
4994c3bca8
Merge pull request #2483 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.10.1
2018-05-29 23:29:07 -04:00
Renovate Bot
20d36a0502
Update dependency webpack to v4.10.1 2018-05-29 19:30:32 +00:00
Jay2k1
d0284dc1b9 Remove else so join is always sent
Fixes #2472
2018-05-29 19:39:57 +02:00
Pavel Djundik
000d56a96d Show connect window when last network is removed 2018-05-29 13:07:18 +03:00
Jérémie Astori
2de022235f
Merge pull request #2476 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.10.0
2018-05-29 00:46:56 -04:00
Renovate Bot
df006845ae
Update dependency webpack to v4.10.0 2018-05-28 23:32:58 +00:00
Jérémie Astori
e30984a13d
Merge pull request #2429 from c-ciobanu/c-ciobanu/feature-2360
Add password visibility toggle feature
2018-05-28 19:02:16 -04:00
Jérémie Astori
d185a78af7
Merge pull request #2197 from RockyTV/rockytv
Add support for /ignore, /unignore and /ignorelist commands
2018-05-28 18:33:51 -04:00
Jérémie Astori
899ca6737b
Merge pull request #2475 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.9.2
2018-05-28 18:28:40 -04:00
Renovate Bot
d4b028556a
Update dependency webpack to v4.9.2 2018-05-28 21:11:42 +00:00
Pavel Djundik
a221bf9d40
Merge pull request #2471 from thelounge/xpaw/rm-urijs
Remove URIjs
2018-05-28 23:03:00 +03:00
Alexandre Oliveira
468427bfdb Add support for /ignore, /unignore and /ignorelist commands 2018-05-28 16:46:12 -03:00
Pavel Djundik
07fcccbda5 Remove urijs and upgrade lockfile 2018-05-28 13:54:24 +03:00
Pavel Djundik
929047b6a5 Replace URIjs with native URLSearchParams 2018-05-28 10:16:00 +03:00
Pavel Djundik
0de90daa64
Merge pull request #2366 from thelounge/xpaw/refactor-userlog
Refactor userLog to be the same as sqlite logger
2018-05-26 23:53:17 +03:00
Jérémie Astori
19cce592c8
Merge pull request #2397 from thelounge/xpaw/linkify-it
Switch to `linkify-it` for url detection in messages
2018-05-26 16:44:18 -04:00
Jérémie Astori
0277ac1a73
3.0.0-pre.6 2018-05-26 02:22:41 -04:00
Jérémie Astori
a37d6478e4
Add changelog entry for v3.0.0-pre.6 2018-05-26 02:17:21 -04:00
Jérémie Astori
67a73fb79d
Merge pull request #2467 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.9.1
2018-05-26 01:50:53 -04:00
Renovate Bot
979eb5c6ca
Update dependency webpack to v4.9.1 2018-05-25 21:35:48 +00:00
Pavel Djundik
d39224c594
Merge pull request #2466 from thelounge/xpaw/cfg
Update Travis and Renovate configs
2018-05-25 11:32:43 +03:00
Cristi Ciobanu
490c94b33a change icon tag 2018-05-24 21:21:30 +02:00
Pavel Djundik
4890d6d477 Enable rebaseStalePrs in renovate 2018-05-24 16:44:47 +03:00
Pavel Djundik
de70e0ab0a Pass --frozen-lockfile to yarn in Travis builds 2018-05-24 16:44:41 +03:00
Pavel Djundik
944b8d9f34
Merge pull request #2459 from thelounge/renovate/web-push-3.x
Update dependency web-push to v3.3.1
2018-05-24 16:32:09 +03:00
Renovate Bot
3c110a7d30
Update dependency web-push to v3.3.1 2018-05-24 13:16:13 +00:00
Pavel Djundik
d5e1211e28
Merge pull request #2465 from thelounge/renovate/yarn-1.x
Update dependency yarn to v1.7.0
2018-05-24 16:15:49 +03:00
Pavel Djundik
3c1c5e0085
Merge pull request #2464 from thelounge/renovate/sinon-5.x
Update dependency sinon to v5.0.10
2018-05-24 16:15:29 +03:00
Renovate Bot
aa7c7c16e5
Update dependency sinon to v5.0.10 2018-05-24 08:19:12 +00:00
Jérémie Astori
99ad9e3c24
Merge pull request #2460 from thelounge/renovate/webpack-4.x
Update dependency webpack to v4.8.3
2018-05-24 02:36:38 -04:00
Renovate Bot
d2e47c5d86
Update dependency yarn to v1.7.0 2018-05-24 02:42:10 +00:00
Cristi Ciobanu
25dc2848ca changed i with button 2018-05-24 00:12:37 +02:00
Renovate Bot
87553a4531
Update dependency webpack to v4.8.3 2018-05-23 18:12:40 +00:00
Pavel Djundik
a7fdea723f
Merge pull request #2463 from thelounge/renovate/webpack-cli-2.x
Update dependency webpack-cli to v2.1.4
2018-05-23 19:37:28 +03:00
Renovate Bot
ce2c58848b
Update dependency webpack-cli to v2.1.4 2018-05-23 16:25:40 +00:00
Pavel Djundik
5cfec76d3a Refactor userLog to be the same as sqlite logger
Fixes #1392
2018-05-23 16:56:18 +03:00
Pavel Djundik
97dfdbf7c0 Default to https: for urls with no scheme 2018-05-23 16:50:59 +03:00
Pavel Djundik
42344302de Bump required node version to 6.13.0 2018-05-23 16:31:02 +03:00
Pavel Djundik
d4fa6bbcb0 Use WHATWG URL parser in link prefetcher 2018-05-23 16:31:02 +03:00
Pavel Djundik
629ae8bfa4 Fix protocol-aware urls, add better link validation in previews 2018-05-23 16:31:02 +03:00
Pavel Djundik
15c14c6dea Change test cases to match linkify-it 2018-05-23 16:31:02 +03:00
Pavel Djundik
58ec2768ec Use linkify-it 2018-05-23 16:31:02 +03:00
Pavel Djundik
c7c2587079
Merge pull request #2445 from MaxLeiter/pointer
Pointer cursor hovering nicks in userlist
2018-05-23 16:21:44 +03:00
Pavel Djundik
02aa47d8c6
Merge pull request #2461 from thelounge/renovate/package-json-5.x
Update dependency package-json to v5
2018-05-22 20:01:25 +03:00
Renovate Bot
b07ea86034
Update dependency package-json to v5 2018-05-22 15:40:18 +00:00
Pavel Djundik
8982dd556c
Merge pull request #2455 from thelounge/renovate/sinon-5.x
Update dependency sinon to v5.0.7
2018-05-22 17:15:30 +03:00
Pavel Djundik
f7d2ca1da0
Merge pull request #2458 from thelounge/renovate/stylelint-9.x
Update dependency stylelint to v9.2.1
2018-05-22 17:15:14 +03:00
Renovate Bot
ea9961f9f6
Update dependency stylelint to v9.2.1 2018-05-22 14:00:00 +00:00
Renovate Bot
636edf500c
Update dependency sinon to v5.0.7 2018-05-22 13:59:50 +00:00
Pavel Djundik
9267ae99cb
Merge pull request #2457 from thelounge/renovate/socket.io-client-2.x
Update dependency socket.io-client to v2.1.1
2018-05-22 16:59:07 +03:00
Pavel Djundik
77d4fc89e0
Merge pull request #2456 from thelounge/renovate/socket.io-2.x
Update dependency socket.io to v2.1.1
2018-05-22 16:58:59 +03:00
Renovate Bot
2f44cab13f
Update dependency socket.io-client to v2.1.1 2018-05-22 13:32:39 +00:00
Renovate Bot
d4f42255b3
Update dependency socket.io to v2.1.1 2018-05-22 12:33:49 +00:00
Pavel Djundik
173b831cf7
Merge pull request #2449 from thelounge/renovate/babel-preset-env-1.x
Update dependency babel-preset-env to v1.7.0
2018-05-22 15:28:43 +03:00
Pavel Djundik
62e4077e93
Merge pull request #2450 from thelounge/renovate/fs-extra-6.x
Update dependency fs-extra to v6.0.1
2018-05-22 15:28:37 +03:00
Pavel Djundik
9bc1860345
Merge pull request #2451 from thelounge/renovate/mocha-5.x
Update dependency mocha to v5.2.0
2018-05-22 15:28:28 +03:00
Pavel Djundik
f93c00cd1a
Merge pull request #2452 from thelounge/renovate/nyc-11.x
Update dependency nyc to v11.8.0
2018-05-22 15:28:07 +03:00
Pavel Djundik
22a32f19eb
Merge pull request #2453 from thelounge/renovate/primer-tooltips-1.x
Update dependency primer-tooltips to v1.5.4
2018-05-22 15:27:45 +03:00
Pavel Djundik
a764e7b19a
Merge pull request #2454 from thelounge/renovate/request-2.x
Update dependency request to v2.87.0
2018-05-22 15:27:28 +03:00
Renovate Bot
8a5d6bb340
Update dependency request to v2.87.0 2018-05-22 11:29:18 +00:00
Renovate Bot
c3bd6f5e8e
Update dependency primer-tooltips to v1.5.4 2018-05-22 11:29:08 +00:00
Renovate Bot
f56c8fbbf1
Update dependency nyc to v11.8.0 2018-05-22 10:38:11 +00:00
Renovate Bot
0fa43eec4b
Update dependency mocha to v5.2.0 2018-05-22 10:37:57 +00:00
Renovate Bot
43b5cc190e
Update dependency fs-extra to v6.0.1 2018-05-22 09:32:23 +00:00
Renovate Bot
4a732c01e5
Update dependency babel-preset-env to v1.7.0 2018-05-22 09:32:10 +00:00
Pavel Djundik
3a25134e8c
Merge pull request #2437 from thelounge/renovate/configure
Configure Renovate
2018-05-22 09:58:29 +03:00
Raqbit
e2e6fe2533 Fix Alt+Up/Down cycling through channels of collapsed networks 2018-05-19 20:15:21 +02:00
Max Leiter
0833f143ff Pointer cursor hovering nicks in userlist 2018-05-17 17:11:14 -07:00
Pavel Djundik
db4661339a
Merge pull request #2439 from thelounge/xpaw/identd-parseint
Specify parseInt base in respondToIdent
2018-05-15 16:42:28 +03:00
Pavel Djundik
8442472f37 Specify parseInt base 2018-05-15 16:04:05 +03:00
Pavel Djundik
9d5f213289 Don't mark your nick changes as self in each channel 2018-05-15 10:00:16 +03:00
Pavel Djundik
67abcb03c2 Replace Greenkeeper with Renovate 2018-05-15 09:56:23 +03:00
Renovate Bot
31a8055c6e Add renovate.json 2018-05-15 09:56:11 +03:00
Jérémie Astori
8edc1be7b5
Merge pull request #2414 from thelounge/xpaw/fix-2329
Fix join channel form not working
2018-05-15 01:19:38 -04:00
Pavel Djundik
d22f0344ea
Merge pull request #2391 from thelounge/xpaw/no-sqlite-crash
Gracefully fail if sqlite3 module fails to load
2018-05-13 17:04:22 +03:00
qwe
bab78f9913 moved the reveal password block into his own template 2018-05-10 21:20:35 +02:00
qwe
0294643403 minor fixes 2018-05-10 20:37:10 +02:00
Pavel Djundik
f5a8f23d2b
Merge pull request #2378 from thelounge/xpaw/fix-2327
Add prefix to channels from connect window
2018-05-10 17:14:50 +03:00
Jérémie Astori
0305dadc7f
Merge pull request #2431 from thelounge/xpaw/512px
Add 512px icons in manifest and specify image types
2018-05-10 00:18:35 -04:00
Jérémie Astori
4219fabca8
Merge pull request #2433 from thelounge/greenkeeper/nyc-11.7.3
Update nyc to the latest version 🚀
2018-05-10 00:17:41 -04:00
greenkeeperio-bot
1e3b2ca2f7 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-10 00:53:53 +00:00
greenkeeper[bot]
17680b130e chore(package): update nyc to version 11.7.3 2018-05-10 00:50:20 +00:00
qwe
bdfc367c6c refactor password visibility toggle feature 2018-05-10 01:25:17 +02:00
Pavel Djundik
9ce586e21d
Merge pull request #2413 from thelounge/xpaw/overscroll-behavior
Use overscroll-behavior
2018-05-09 17:23:30 +03:00
Pavel Djundik
c6f7aa2eda Add 512px icons in manifest and specify image types 2018-05-09 10:18:42 +03:00
Jérémie Astori
faeb00af25
Merge pull request #2430 from thelounge/greenkeeper/nyc-11.7.2
Update nyc to the latest version 🚀
2018-05-09 01:34:50 -04:00
greenkeeperio-bot
7a9bc497fc chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-09 00:47:38 +00:00
greenkeeper[bot]
8899446fe3 chore(package): update nyc to version 11.7.2 2018-05-09 00:43:25 +00:00
qwe
2d49e34805 add password toggle to connect and login 2018-05-08 23:40:39 +02:00
Jérémie Astori
f54fef4210
Merge pull request #2428 from thelounge/xpaw/fix-merge-sort
Fix merge() in parser not filling unstyled text correctly
2018-05-08 01:39:56 -04:00
qwe
97b178dbdb Add password visibility toggle feature 2018-05-08 01:52:54 +02:00
Pavel Djundik
95a435c5c9 Fix merge() in parser not filling unstyled text correctly 2018-05-07 21:19:54 +03:00
Pavel Djundik
e05b107cc1
Merge pull request #2427 from thelounge/greenkeeper/sinon-5.0.5
Update sinon to the latest version 🚀
2018-05-07 19:20:32 +03:00
greenkeeperio-bot
621082b0a4 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-07 06:47:40 +00:00
greenkeeper[bot]
1e454ae5ed chore(package): update sinon to version 5.0.5 2018-05-07 06:44:05 +00:00
Jérémie Astori
c169a9e1b8
Merge pull request #2425 from thelounge/greenkeeper/webpack-cli-2.1.3
Update webpack-cli to the latest version 🚀
2018-05-07 02:24:01 -04:00
Jérémie Astori
0cd6366b5c
Merge pull request #2416 from thelounge/xpaw/out-of-focus-touch
Allow out-of-focus typing on touch devices
2018-05-07 02:23:35 -04:00
Jérémie Astori
907b92ed61
Merge pull request #2426 from thelounge/greenkeeper/npm-run-all-4.1.3
Update npm-run-all to the latest version 🚀
2018-05-07 02:17:30 -04:00
greenkeeperio-bot
30ad035b07 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-06 18:24:59 +00:00
greenkeeper[bot]
db83d96527 chore(package): update npm-run-all to version 4.1.3 2018-05-06 18:16:11 +00:00
greenkeeperio-bot
8cb0ff6308 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-06 15:26:29 +00:00
greenkeeper[bot]
4c6cef76f5 chore(package): update webpack-cli to version 2.1.3 2018-05-06 15:22:46 +00:00
Pavel Djundik
4a9c3236aa
Merge pull request #2422 from thelounge/greenkeeper/ua-parser-js-0.7.18
Update ua-parser-js to the latest version 🚀
2018-05-05 14:35:36 +03:00
Pavel Djundik
45bad20bb3
Merge pull request #2423 from thelounge/greenkeeper/graphql-request-1.6.0
Update graphql-request to the latest version 🚀
2018-05-05 14:35:24 +03:00
greenkeeperio-bot
d92770edb4 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-04 18:22:40 +00:00
greenkeeper[bot]
d4d65b5377 chore(package): update graphql-request to version 1.6.0 2018-05-04 18:17:56 +00:00
greenkeeperio-bot
71a36ebee0 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-04 16:22:30 +00:00
greenkeeper[bot]
ea4b694ac3 fix(package): update ua-parser-js to version 0.7.18 2018-05-04 16:18:37 +00:00
Pavel Djundik
7fa67de9aa
Merge pull request #2421 from thelounge/greenkeeper/webpack-4.7.0
Update webpack to the latest version 🚀
2018-05-04 17:30:05 +03:00
Pavel Djundik
fd6048c7b6
Merge pull request #2420 from thelounge/xpaw/fontawesome
Use new fontawesome package
2018-05-04 17:29:13 +03:00
greenkeeperio-bot
db07f2af57 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-04 13:35:45 +00:00
greenkeeper[bot]
efa5b03cf8 chore(package): update webpack to version 4.7.0 2018-05-04 13:27:03 +00:00
Pavel Djundik
d4d516af1e Use new fontawesome package
Ref: b60cbbecb4/UPGRADING.md (50x-to-510)
2018-05-04 12:09:24 +03:00
Pavel Djundik
55c1293b4c Allow out-of-focus typing on touch devices 2018-05-03 15:51:40 +03:00
Jérémie Astori
5aafb38624
Merge pull request #2415 from thelounge/greenkeeper/webpack-dev-server-3.1.4
Update webpack-dev-server to the latest version 🚀
2018-05-03 00:14:55 -04:00
greenkeeperio-bot
a729d909a7 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-02 22:01:35 +00:00
greenkeeper[bot]
dbcf69206a chore(package): update webpack-dev-server to version 3.1.4 2018-05-02 21:52:37 +00:00
Pavel Djundik
1e5e9bbc57
Merge pull request #2405 from thelounge/xpaw/sort-arrow
Show a ghost placeholder when dragging channels
2018-05-02 17:37:31 +03:00
Pavel Djundik
f23c063b71 Fix join channel form not working
Fixes #2329
2018-05-02 17:09:32 +03:00
Pavel Djundik
7dd6340e46 Show a ghost placeholder when dragging channels
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-05-02 16:11:10 +03:00
Pavel Djundik
e1b6ba9f0d Use overscroll-behavior
Ref: https://developers.google.com/web/updates/2017/11/overscroll-behavior
2018-05-02 14:17:56 +03:00
Pavel Djundik
94f1d8dde0 Override server provided defaults with parameters passed in the URL if they match the data type 2018-05-02 13:08:00 +03:00
Pavel Djundik
ee5e82fe9a Fix connect window opening twice in public mode 2018-05-02 13:08:00 +03:00
Pavel Djundik
426893077f Add prefix to channels from connect window
Fixes #2327
2018-05-02 13:08:00 +03:00
Al McKinlay
5e1beb5b46
Merge pull request #2412 from thelounge/greenkeeper/sinon-5.0.3
Update sinon to the latest version 🚀
2018-05-02 10:54:55 +01:00
greenkeeperio-bot
7f11af1c13 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-02 09:38:42 +00:00
greenkeeper[bot]
cd34616339 chore(package): update sinon to version 5.0.3 2018-05-02 09:35:32 +00:00
Jérémie Astori
9558a1af58
Merge pull request #2408 from thelounge/xpaw/parser-merger
Minor optimization in style parser
2018-05-01 19:37:10 -04:00
Jérémie Astori
0c8765647a
Merge pull request #2410 from thelounge/greenkeeper/fs-extra-6.0.0
Update fs-extra to the latest version 🚀
2018-05-01 19:35:49 -04:00
Jérémie Astori
df7e62915b
Merge pull request #2409 from thelounge/xpaw/ms-edge-css
Fix CSS issues in Microsoft Edge
2018-05-01 19:34:49 -04:00
Jérémie Astori
a71904a25e
Merge pull request #2411 from thelounge/greenkeeper/@fortawesome/fontawesome-free-webfonts-1.0.7
Update @fortawesome/fontawesome-free-webfonts to the latest version 🚀
2018-05-01 19:29:54 -04:00
greenkeeperio-bot
ddad808d88 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-01 20:41:57 +00:00
Al McKinlay
1790e9f530
Merge pull request #2407 from thelounge/greenkeeper/sinon-5.0.2
Update sinon to the latest version 🚀
2018-05-01 21:41:16 +01:00
Al McKinlay
f1477a3608
Merge pull request #2404 from thelounge/xpaw/fix-2218
Fix join channel ui moving when sorting channels
2018-05-01 21:40:13 +01:00
greenkeeper[bot]
b6881c20d2 chore(package): update @fortawesome/fontawesome-free-webfonts to version 1.0.7 2018-05-01 20:39:17 +00:00
Al McKinlay
44c5f71ac2
Merge pull request #2406 from thelounge/xpaw/fix-2400
Fix channel and ban lists in context menu not working
2018-05-01 21:14:47 +01:00
Pavel Djundik
6c41b68bca Fix CSS issues in Microsoft Edge 2018-05-01 19:11:45 +03:00
greenkeeperio-bot
44a94ea04d chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-01 14:23:13 +00:00
greenkeeper[bot]
d86fe768f3 fix(package): update fs-extra to version 6.0.0 2018-05-01 14:18:37 +00:00
Pavel Djundik
d19c00faab Build clean text message only once 2018-05-01 14:32:13 +03:00
Pavel Djundik
162b801839 Move part sorting to merge 2018-05-01 14:31:46 +03:00
greenkeeperio-bot
77dec4da01 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-05-01 11:21:07 +00:00
greenkeeper[bot]
860e2607e4 chore(package): update sinon to version 5.0.2 2018-05-01 11:17:15 +00:00
Pavel Djundik
886301e765
Merge pull request #2396 from thelounge/xpaw/fix-2341
Use per-client channel and message ids
2018-05-01 13:26:38 +03:00
Pavel Djundik
f50d383670 Fix channel and ban lists in context menu not working
Fixes #2400
2018-05-01 11:36:10 +03:00
Pavel Djundik
b3e57a013f Fix join channel ui moving when sorting channels
Fixes #2218
2018-05-01 11:18:39 +03:00
Jérémie Astori
4ddb5d5b7d
Merge pull request #2402 from thelounge/greenkeeper/webpack-cli-2.1.1
Update webpack-cli to the latest version 🚀
2018-05-01 01:08:32 -04:00
greenkeeper[bot]
0346f2238f
chore(package): update webpack-cli to version 2.1.2 2018-05-01 00:57:16 -04:00
Jérémie Astori
2a423174b1
Merge pull request #2401 from thelounge/greenkeeper/sinon-5.0.1
Update sinon to the latest version 🚀
2018-04-30 23:59:08 -04:00
greenkeeperio-bot
487d8c4a3d chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-30 09:47:11 +00:00
greenkeeper[bot]
0f4adedeab chore(package): update sinon to version 5.0.1 2018-04-30 09:43:33 +00:00
Jérémie Astori
16236ec0bf
Merge pull request #2380 from jake-walker/master
Add `upgrade` CLI command for themes and packages
2018-04-29 14:53:03 -04:00
Jérémie Astori
6bf4ea9f43
Merge pull request #2399 from thelounge/xpaw/fix-2389
Fix `aria-controls` on collapse button
2018-04-29 14:50:33 -04:00
Pavel Djundik
38f3557e0b Fix aria-controls on collapse button
Fixes #2389
2018-04-29 15:20:06 +03:00
Jake Walker
cd81a2bcec Added upgrade command
Using suggested changes


Changes suggested by astorije


Upgrade parameter removed and allow multiple packages to upgrade


Fixed


Minor fix
2018-04-29 08:47:39 +01:00
Jérémie Astori
37a35eeece
Merge pull request #2398 from thelounge/xpaw/data-attr
Use attr() on user-controlled data
2018-04-29 02:13:07 -04:00
Pavel Djundik
e2e3a59336
Merge pull request #2009 from thelounge/astorije/favicons
Favicons, favicons everywhere
2018-04-28 19:48:47 +03:00
Jérémie Astori
1daad45f11
Use the new logo for favicons, notifications badges, and homescreen app icons 2018-04-28 12:14:41 -04:00
Pavel Djundik
2da5920bda
Merge pull request #2387 from thelounge/astorije/node-10
Run Travis CI against Node v10
2018-04-28 12:54:32 +03:00
Pavel Djundik
fb1aef882a Upgrade lockfile to latest versions 2018-04-28 11:49:04 +03:00
Jérémie Astori
8618af2ee0 Run Travis CI against Node v10 2018-04-28 11:46:44 +03:00
Pavel Djundik
14cc8b7827 Use attr() on user-controlled data
See https://www.reddit.com/r/javascript/comments/8f57i1/psa_there_are_over_1000_people_in_the_us_named/dy0rib2/
2018-04-28 11:19:49 +03:00
Pavel Djundik
2ea6446323
Merge pull request #2394 from thelounge/greenkeeper/graphql-request-1.5.2
Update graphql-request to the latest version 🚀
2018-04-27 20:45:08 +03:00
Pavel Djundik
bf8a16b7fe Use per-client channel and message ids
Fixes #2341
2018-04-27 13:16:23 +03:00
greenkeeperio-bot
a8b9d8d96c chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-27 08:24:16 +00:00
greenkeeper[bot]
39d59edece chore(package): update graphql-request to version 1.5.2 2018-04-27 08:22:03 +00:00
Jérémie Astori
92c4df6e9c
Merge pull request #2390 from thelounge/xpaw/network-uuid
Remove network ids and use uuids everywhere
2018-04-27 01:23:49 -04:00
Pavel Djundik
8d7cd4ea91
Merge pull request #2392 from thelounge/xpaw/quit-part
Correctly add quits to parts
2018-04-26 15:10:49 +03:00
Pavel Djundik
02db91bcc9 Correctly add quits to parts 2018-04-26 13:36:56 +03:00
Pavel Djundik
e136edb6ac Remove network ids and use uuids everywhere 2018-04-26 12:37:28 +03:00
Pavel Djundik
0ad9def514 Gracefully fail if sqlite3 module fails to load 2018-04-26 12:11:38 +03:00
Pavel Djundik
4f85779e78
Merge pull request #2385 from thelounge/xpaw/yarn
Make a separate function to execute yarn commands; fallback to global yarn
2018-04-26 10:14:02 +03:00
Jérémie Astori
4ff5995617
Merge pull request #2386 from thelounge/xpaw/quits-parts
Count quits as parts in condensed messages to reduce information density
2018-04-25 21:24:58 -04:00
Pavel Djundik
bf2a80a7b5
Count quits as parts in condensed messages to reduce information density
See https://github.com/thelounge/thelounge/pull/2383#discussion_r183915328 for discussion
2018-04-25 21:08:06 -04:00
Jérémie Astori
c5564f6bff
Merge pull request #2383 from thelounge/xpaw/condensed-join-part
Make condensed joins and parts shorter
2018-04-25 21:03:56 -04:00
Jérémie Astori
d202eaa267
Merge pull request #2384 from thelounge/greenkeeper/lodash-4.17.9
Update lodash to the latest version 🚀
2018-04-24 19:55:58 -04:00
Pavel Djundik
f7d34739b5 Make a separate function to execute yarn commands; fallback to global yarn
Fixes #2301
Fixes #2348
2018-04-24 21:38:54 +03:00
greenkeeperio-bot
dfdcb95a5d chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-24 18:23:47 +00:00
greenkeeper[bot]
b4d5732a50 fix(package): update lodash to version 4.17.9 2018-04-24 18:19:47 +00:00
Pavel Djundik
810ecd429a
Make condensed joins and parts shorter 2018-04-24 13:01:20 +03:00
Jérémie Astori
73b1293522
Merge pull request #2379 from thelounge/xpaw/unsafe-perm
Document npm's unsafe-perm
2018-04-24 01:22:06 +00:00
Jérémie Astori
3d56e0aad0
Merge pull request #2381 from thelounge/xpaw/autocomplete-nick
Fix your own nick in auto completion
2018-04-24 01:21:29 +00:00
Pavel Djundik
f6b7ce7383
Fix your own nick in auto completion 2018-04-23 15:34:22 +03:00
Pavel Djundik
74f9421417
Document npm's unsafe-perm 2018-04-22 21:32:01 +03:00
Jérémie Astori
8e2cce5b43
Merge pull request #2376 from thelounge/greenkeeper/webpack-cli-2.0.15
Update webpack-cli to the latest version 🚀
2018-04-21 22:20:43 +02:00
Jérémie Astori
ccb01d964c
Merge pull request #2355 from Jay2k1/Jay2k1-opvoice
Add 'op' and 'voice' user context menu items
2018-04-21 22:12:41 +02:00
greenkeeperio-bot
580e3c7675 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-21 07:15:40 +00:00
greenkeeper[bot]
590d0fc228 chore(package): update webpack-cli to version 2.0.15 2018-04-21 07:12:18 +00:00
Jay2k1
808b2b249b add 'op' and 'voice' context menu entries 2018-04-21 00:53:59 +02:00
Jérémie Astori
49c5e6a502
Merge pull request #2369 from thelounge/astorije/show-older-msg-btn
Make "Show older messages" style consistent with other buttons
2018-04-20 19:04:52 +02:00
Jérémie Astori
bb260c4c04
Merge pull request #2368 from thelounge/astorije/window-header
Remove header border on non-chat windows and reduce top margin a bit more
2018-04-20 19:04:20 +02:00
Jérémie Astori
ec8e4fc458
Make sure the channel list button stays always visible 2018-04-20 17:05:53 +02:00
Pavel Djundik
4fe53fc170
Merge pull request #2373 from thelounge/greenkeeper/mocha-5.1.1
Update mocha to the latest version 🚀
2018-04-19 13:11:24 +03:00
Pavel Djundik
c46160c99e
Merge pull request #2374 from thelounge/greenkeeper/nyc-11.7.1
Update nyc to the latest version 🚀
2018-04-19 13:11:14 +03:00
greenkeeperio-bot
619d49b669 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-19 08:18:31 +00:00
greenkeeper[bot]
b6ca2f08ff chore(package): update nyc to version 11.7.1 2018-04-19 08:15:06 +00:00
greenkeeperio-bot
8b4095c0cf chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-19 02:42:52 +00:00
greenkeeper[bot]
2e9a8dfb0d chore(package): update mocha to version 5.1.1 2018-04-19 02:37:50 +00:00
Pavel Djundik
c546228c7e
Merge pull request #2370 from thelounge/greenkeeper/webpack-4.6.0
Update webpack to the latest version 🚀
2018-04-18 13:15:01 +03:00
greenkeeper[bot]
bfdd751db9 chore(package): update webpack to version 4.6.0 2018-04-18 10:23:22 +03:00
Pavel Djundik
e1eb0e6353
Merge pull request #2371 from thelounge/greenkeeper/undate-0.3.0
Update undate to the latest version 🚀
2018-04-18 10:21:44 +03:00
Pavel Djundik
b381c9161d
Merge pull request #2364 from thelounge/astorije/fix-userlist-bottom
Fix user list scroll area expanding behind the message input on mobile
2018-04-18 10:17:51 +03:00
Pavel Djundik
e254f76459
Merge pull request #2367 from thelounge/astorije/quickfix-tooltips
Quick-fix tooltips not being loaded by Webpack
2018-04-18 10:14:22 +03:00
greenkeeperio-bot
a5802f492b chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-18 03:17:07 +00:00
greenkeeper[bot]
2da5c270ff chore(package): update undate to version 0.3.0 2018-04-18 03:14:59 +00:00
Jérémie Astori
1762db8bd4
Make "Show older messages" style consistent with other buttons
Also store the loading text in a `data` attribute instead of duplicate in template + JS, in order to help with future internationalization
2018-04-18 00:12:24 +02:00
Jérémie Astori
c9dc323bcc
Remove header border on non-chat windows and reduce top margin a bit more 2018-04-17 23:36:30 +02:00
Jérémie Astori
235a3dad92
Quick-fix tooltips not being loaded by Webpack 2018-04-17 23:07:12 +02:00
Pavel Djundik
3f540a8240
Merge pull request #2365 from thelounge/greenkeeper/chalk-2.4.0
Update chalk to the latest version 🚀
2018-04-17 10:26:45 +03:00
greenkeeperio-bot
43c9665523 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-17 05:43:22 +00:00
greenkeeper[bot]
612a58eb2f fix(package): update chalk to version 2.4.0 2018-04-17 05:39:32 +00:00
Jérémie Astori
0661b4aa37
Fix user list scroll area expanding behind the message input on mobile 2018-04-17 00:27:36 +02:00
Jérémie Astori
31646f2a28
Merge pull request #2337 from thelounge/xpaw/remove-nick-edit
Remove nick editor
2018-04-16 19:53:17 +02:00
Jérémie Astori
7ed8188f54
Merge pull request #2358 from thelounge/greenkeeper/yarn-1.6.0
Update yarn to the latest version 🚀
2018-04-16 19:37:45 +02:00
Jérémie Astori
0797cfad84
Merge pull request #2361 from thelounge/astorije/version
Add project version in outputs that mention source SHA
2018-04-16 16:22:39 +02:00
Jérémie Astori
2006902b8a
Check if working directory is a git repo itself before getting commit hash 2018-04-16 16:16:52 +02:00
Jérémie Astori
3cf4e2105e
Ignore stderr of git version check instead of redirecting it to /dev/null 2018-04-16 15:50:24 +02:00
Jérémie Astori
62917d3d1f
Merge pull request #2363 from thelounge/xpaw/fix-2362
Fix nicks with special characters being colored incorrectly in messages
2018-04-16 15:24:53 +02:00
Pavel Djundik
73b1124dce Fix nicks with special characters being colored incorrectly in messages
Fixes #2362
2018-04-16 14:45:08 +03:00
Jérémie Astori
34f4d0abf4
Add project version in outputs that mention source SHA 2018-04-16 00:19:25 +02:00
Pavel Djundik
a392a08c7a Remove nick editor 2018-04-15 22:17:30 +03:00
Pavel Djundik
efae5fd28d
Merge pull request #2229 from thelounge/xpaw/edit-networks
Allow editing networks via UI
2018-04-15 22:10:02 +03:00
greenkeeperio-bot
0793c35eb3 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-15 13:32:49 +00:00
greenkeeper[bot]
0dff676021 fix(package): update yarn to version 1.6.0 2018-04-15 13:30:26 +00:00
Pavel Djundik
c98b755f17
Merge pull request #2357 from thelounge/greenkeeper/moment-2.22.1
Update moment to the latest version 🚀
2018-04-15 12:12:17 +03:00
greenkeeperio-bot
f49bf09261 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-15 06:30:05 +00:00
greenkeeper[bot]
f2e5511544 fix(package): update moment to version 2.22.1 2018-04-15 06:26:01 +00:00
Jérémie Astori
a242fb15a3
Merge pull request #2356 from thelounge/xpaw/placeholder
Update placeholder rules for modern browsers
2018-04-14 17:22:28 -04:00
Pavel Djundik
09482aed7b
Update placeholder rules for modern browsers 2018-04-14 10:24:39 +03:00
Jérémie Astori
81188e8ef6
Merge pull request #2354 from thelounge/greenkeeper/mocha-5.1.0
Update mocha to the latest version 🚀
2018-04-12 23:41:30 -04:00
greenkeeperio-bot
fb49f468f1 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-13 02:42:44 +00:00
greenkeeper[bot]
b67fdb7806 chore(package): update mocha to version 5.1.0 2018-04-13 02:40:17 +00:00
Jérémie Astori
5a9233c426
Merge pull request #2349 from thelounge/astorije/fix-previews
Fix previews on Morning (and others)
2018-04-12 09:27:50 -04:00
Pavel Djundik
2bea5f67b9 Use default nick set in config for fallback 2018-04-12 10:39:03 +03:00
Pavel Djundik
c1406adcb2 Add tests for editing network 2018-04-12 10:38:35 +03:00
Pavel Djundik
f86d73972d Implement network editing UI and object updating 2018-04-12 10:38:35 +03:00
Pavel Djundik
682d3070e9 Move IRC object and validation to network model 2018-04-12 10:37:45 +03:00
Jérémie Astori
ee6fb8c619
Fix color of "More" preview button in Morning 2018-04-12 00:52:05 -04:00
Jérémie Astori
2b051194c8
Fix preview text color overriding inherited color
This messes up dark themes, or really any theme that does not use #222 as body color...
2018-04-12 00:45:49 -04:00
Jérémie Astori
b08b23d59e
Merge pull request #2328 from thelounge/astorije/local-themes
Local themes
2018-04-12 00:23:11 -04:00
Jérémie Astori
39ca8f74ae
Merge pull request #2272 from thelounge/astorije/improve-previews
Improve UI of previews
2018-04-12 00:21:38 -04:00
Pavel Djundik
0010d4965c
Merge pull request #2346 from thelounge/greenkeeper/@fortawesome/fontawesome-free-webfonts-1.0.6
Update @fortawesome/fontawesome-free-webfonts to the latest version 🚀
2018-04-11 10:01:30 +03:00
Jérémie Astori
6f3c88663a
Merge pull request #2317 from creesch/syncDefault
Enable sync on empty localstorage, force sync, sync on both load and reconnect.
2018-04-11 01:30:03 -04:00
Jérémie Astori
7d1af273d1
Merge pull request #2344 from thelounge/xpaw/client-guid
Replace client ids with guids
2018-04-11 00:13:30 -04:00
greenkeeperio-bot
8d755793f2 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-10 22:31:33 +00:00
greenkeeper[bot]
d3efa6b82f chore(package): update @fortawesome/fontawesome-free-webfonts to version 1.0.6 2018-04-10 22:29:21 +00:00
Pavel Djundik
99386510d8 Replace client ids with guids 2018-04-10 16:15:44 +03:00
Jérémie Astori
bb16b3e30b
Simplify showing/hiding "More" button of a new preview on active channel 2018-04-09 21:39:41 -04:00
Jérémie Astori
d55420faae
Bind a single resize event, debounced, instead of one handler per preview 2018-04-09 21:39:41 -04:00
Jérémie Astori
ac02bd370b
Do not compute preview "More" buttons on mobile 2018-04-09 21:39:40 -04:00
Jérémie Astori
dbabdd83dc
Lighten the "More" button handler when checks are not necessary 2018-04-09 21:39:40 -04:00
Jérémie Astori
8d255fc331
Only bind preview "More" buttons on link previews 2018-04-09 21:39:40 -04:00
Jérémie Astori
1ccdeb015c
Trigger the correct event directly instead of resize when opening/closing a menu 2018-04-09 21:39:39 -04:00
Jérémie Astori
53a2101de3
Make sure preview "More" button computation does nothing when preview is collapsed 2018-04-09 21:39:39 -04:00
Jérémie Astori
5bff07f6f6
Fix handling preview More buttons on inactive channels 2018-04-09 21:39:38 -04:00
Jérémie Astori
527cac4c75
Debounce resize event to avoid performance bottleneck 2018-04-09 21:39:38 -04:00
Jérémie Astori
7355db94d6
Improve UI of previews
- Remove margins around thumbnails and images, increase radius, etc. for a fresher look overall
- Increase preview body contrast just enough to pass AA standards
- Add a `More`/`Less` button to expand previews that take more than one line. Button is added only when necessary
- Use a zoom-in cursor on hover for thumbnails
- Improve preview message errors
2018-04-09 21:39:38 -04:00
Pavel Djundik
ff5a231ea0
Merge pull request #2339 from thelounge/greenkeeper/webpack-dev-server-3.1.3
Update webpack-dev-server to the latest version 🚀
2018-04-08 13:53:33 +03:00
Pavel Djundik
7cbc0dc047
Merge pull request #2340 from dgw/no-undefined-os-version
Prevent "undefined" OS version in session list
2018-04-08 13:53:14 +03:00
dgw
da23d42692 Prevent "undefined" OS version in session list 2018-04-08 05:44:55 -05:00
greenkeeperio-bot
07ec00c33f chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-08 09:10:53 +00:00
greenkeeper[bot]
e83079eec4 chore(package): update webpack-dev-server to version 3.1.3 2018-04-08 09:04:46 +00:00
Jérémie Astori
d28a9a9253
Merge pull request #2338 from thelounge/greenkeeper/webpack-dev-server-3.1.2
Update webpack-dev-server to the latest version 🚀
2018-04-07 13:23:57 -04:00
greenkeeperio-bot
9380230614 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-07 13:54:28 +00:00
greenkeeper[bot]
b230358553 chore(package): update webpack-dev-server to version 3.1.2 2018-04-07 13:49:18 +00:00
Pavel Djundik
6626fbcfbd
Merge pull request #2117 from thelounge/webpack4
Upgrade to webpack 4; tracking pr
2018-04-06 12:59:07 +03:00
Jérémie Astori
bbb41a2b5b Fix yarn text:browser not loading any test 2018-04-06 12:52:53 +03:00
Pavel Djundik
c28a5c25b9 Add css-loader 2018-04-06 12:52:53 +03:00
Jérémie Astori
d6e6dab565 Fix a forgotten npm reference 2018-04-06 12:52:53 +03:00
Pavel Djundik
0030f68831 Update to webpack4 WIP 2018-04-06 12:52:52 +03:00
Pavel Djundik
fe6ac3e954
Merge pull request #2335 from thelounge/astorije/sinon-4.5.0
Update sinon to the latest version
2018-04-06 10:49:19 +03:00
Jérémie Astori
4e8cc2e164
Update sinon to the latest version
No sure why Greenkeeper missed it but oh well.
2018-04-06 02:03:15 -04:00
Pavel Djundik
e9123af089
Merge pull request #2331 from thelounge/xpaw/input-line-height
Fix line-height showing scrollbar on mobile
2018-04-04 16:49:00 +03:00
Pavel Djundik
d4b9b6ed32 Fix line-height showing scrollbar on mobile 2018-04-04 12:40:42 +03:00
Jérémie Astori
62fb5524ae
Switch client to default theme when it is using a theme that has been removed 2018-04-02 23:51:59 -04:00
Jérémie Astori
4e5c924e5c
Add CLI messages to help users transition their themes 2018-04-02 23:51:58 -04:00
Jérémie Astori
be591d016a
Rename Example theme 2018-04-02 23:51:57 -04:00
Jérémie Astori
7b13c6f076
Remove Crypto and Zenburn themes from the core codebase 2018-04-01 20:01:38 -04:00
Jérémie Astori
36a62fb365
Merge pull request #2321 from MaxLeiter/header-margin
Fix .container margins
2018-04-01 18:38:07 -04:00
Pavel Djundik
b4b571b50f
Merge pull request #2323 from thelounge/greenkeeper/stylelint-9.2.0
Update stylelint to the latest version 🚀
2018-04-01 21:15:56 +03:00
greenkeeperio-bot
260c0dd538 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-04-01 10:45:37 +00:00
greenkeeper[bot]
6b263bf43d chore(package): update stylelint to version 9.2.0 2018-04-01 10:42:11 +00:00
creesch
63c84cd362 Don't use event delegation for sync button 2018-03-31 22:28:39 +02:00
Jérémie Astori
7591088982
Merge pull request #2290 from lol768/feature/join-alias-query-param
Add ?channels=x,y,z alias for ?join=x,y,z
2018-03-31 14:05:25 -04:00
Pavel Djundik
e94301b122
Merge pull request #2320 from thelounge/greenkeeper/textcomplete-0.17.1
Update textcomplete to the latest version 🚀
2018-03-31 20:53:52 +03:00
Pavel Djundik
f58aac6fb3
Merge pull request #2319 from thelounge/greenkeeper/moment-2.22.0
Update moment to the latest version 🚀
2018-03-31 20:53:44 +03:00
Max Leiter
27e4994d10 Fix .container margins 2018-03-31 01:43:27 -07:00
greenkeeperio-bot
946d01a61b chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-31 01:33:21 +00:00
greenkeeper[bot]
084ed153e3 chore(package): update textcomplete to version 0.17.1 2018-03-31 01:32:08 +00:00
greenkeeperio-bot
d7f4a14bfe chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-30 22:44:25 +00:00
greenkeeper[bot]
46e7231bfa fix(package): update moment to version 2.22.0 2018-03-30 22:40:43 +00:00
Pavel Djundik
7a752081e7
Merge pull request #2314 from thelounge/astorije/fix-autocomplete-enter
Fix autocomplete selection when hitting Enter
2018-03-30 11:18:45 +03:00
Pavel Djundik
316e199aa4
Merge pull request #2312 from thelounge/revert-2296-astorije/fix-travis-node-9
Re-include latest Node.js v9 version in Travis build
2018-03-30 10:49:19 +03:00
creesch
95dc519019 Sync on both load and reconnect. 2018-03-30 09:49:02 +02:00
creesch
107749e91a Enable sync on empty localstorage 2018-03-30 09:46:59 +02:00
creesch
e967859d5f Force sync button 2018-03-30 09:32:20 +02:00
Jérémie Astori
09a6c8b067
Fix autocomplete selection when hitting Enter 2018-03-29 22:04:08 -04:00
Jérémie Astori
153d9c6b2c
Merge pull request #2309 from thelounge/xpaw/example-padding
Remove left padding from sidebar in example theme
2018-03-29 19:50:01 -04:00
Jérémie Astori
205fed6992
Merge pull request #2311 from thelounge/greenkeeper/socket.io-client-2.1.0
Update socket.io-client to the latest version 🚀
2018-03-29 19:46:59 -04:00
Jérémie Astori
86474bd535
Revert "Exclude Node v9.9 from Travis build, for now" 2018-03-29 19:46:05 -04:00
greenkeeperio-bot
357e010f39
chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-29 19:38:58 -04:00
greenkeeper[bot]
be85a7f224
chore(package): update socket.io-client to version 2.1.0 2018-03-29 19:38:29 -04:00
Jérémie Astori
5196c1ebad
Merge pull request #2310 from thelounge/greenkeeper/socket.io-2.1.0
Update socket.io to the latest version 🚀
2018-03-29 19:36:51 -04:00
greenkeeperio-bot
7054fe2bd2 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-29 23:10:31 +00:00
greenkeeper[bot]
e936233ead fix(package): update socket.io to version 2.1.0 2018-03-29 23:08:40 +00:00
Pavel Djundik
8f838b80e7 Remove left padding from sidebar in example theme 2018-03-29 21:46:03 +03:00
Pavel Djundik
2e964d0a7e
Merge pull request #2270 from thelounge/xpaw/mask-image
Replace pseudo element gradient fade with mask-image
2018-03-29 21:29:54 +03:00
Jérémie Astori
fe08547d6b
Merge pull request #2289 from lol768/master
Add auto-prepend behaviour for unprefixed channel names
2018-03-29 01:19:45 -04:00
Al McKinlay
ce08201d13
Merge pull request #1878 from thelounge/yamanickill/refactor-context-menu
Pull context menu code out of lounge.js and make it more generic
2018-03-29 06:04:24 +01:00
Jérémie Astori
faf8e525b3
Merge pull request #2303 from tilde-team/master
catch stderr from yarn subprocess, addresses #2301
2018-03-29 00:25:38 -04:00
Jérémie Astori
45bdfe205a
Merge pull request #2307 from thelounge/greenkeeper/istanbul-instrumenter-loader-3.0.1
Update istanbul-instrumenter-loader to the latest version 🚀
2018-03-29 00:18:11 -04:00
greenkeeperio-bot
d34d11fbb3 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-28 17:28:34 +00:00
greenkeeper[bot]
1f86ace5d8 chore(package): update istanbul-instrumenter-loader to version 3.0.1 2018-03-28 17:23:32 +00:00
Ben Harris
56004ec338 catch stderr from yarn subprocess, addresses #2301 2018-03-28 12:27:51 -04:00
Jérémie Astori
12cdec3f2e
3.0.0-pre.5 2018-03-28 03:13:30 -04:00
Jérémie Astori
ac4c857146
Add changelog entry for v3.0.0-pre.5 2018-03-28 03:13:11 -04:00
Pavel Djundik
27e715f4a4
Merge pull request #2302 from thelounge/greenkeeper/@fortawesome/fontawesome-free-webfonts-1.0.5
Update @fortawesome/fontawesome-free-webfonts to the latest version 🚀
2018-03-28 10:08:42 +03:00
Pavel Djundik
c4be637ba8
Merge pull request #2305 from thelounge/astorije/fix-master
Fix bug preventing to click on channels/queries
2018-03-28 10:02:57 +03:00
Jérémie Astori
7d057a9ca7
Fix bug preventing to click on channels/queries
This bug is present both in channel list, #channel in messages, etc.
2018-03-27 19:28:20 -04:00
Jérémie Astori
3d04afa4f6
3.0.0-pre.4 2018-03-27 19:17:11 -04:00
Jérémie Astori
9aa6f3f590
Add changelog entry for v3.0.0-pre.4 2018-03-27 19:16:36 -04:00
greenkeeperio-bot
cce29fe2c5 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-27 20:43:49 +00:00
greenkeeper[bot]
5005d7a1f1 chore(package): update @fortawesome/fontawesome-free-webfonts to version 1.0.5 2018-03-27 20:41:24 +00:00
Al McKinlay
edba18375f
Merge pull request #2286 from thelounge/xpaw/input-history
Reimplement input history
2018-03-27 17:38:49 +01:00
Al McKinlay
a0523b3427
Merge pull request #2298 from thelounge/xpaw/fix-2293
Do not close sidebar when collapsing networks
2018-03-27 17:29:15 +01:00
Pavel Djundik
a2440e665f Do not close sidebar when collapsing networks
Fixes #2293
2018-03-27 12:07:19 +03:00
Pavel Djundik
3aea9d34e9 Reimplement input history 2018-03-26 11:23:10 +03:00
Pavel Djundik
f856229141 Allow whitespace in topics again
Was removed in c051b70537
2018-03-26 11:22:52 +03:00
Pavel Djundik
8ce55af55d Overflow topics with fade instead of ellipsis 2018-03-26 11:22:52 +03:00
Pavel Djundik
23c969ad1b Replace pseudo element gradient fade with mask-image 2018-03-26 11:22:52 +03:00
Al McKinlay
1dc356a8f2 Pull context menu code out of lounge.js and make it more generic
Add separate call for divider in context menu factory
2018-03-26 09:08:43 +01:00
Pavel Djundik
2cfd0e1fe0
Merge pull request #2297 from thelounge/astorije/nick-fallbacks
Fix/Improve some nick fallbacks
2018-03-26 11:00:01 +03:00
Pavel Djundik
79ea700121
Merge pull request #2296 from thelounge/astorije/fix-travis-node-9
Exclude Node v9.9 from Travis build, for now
2018-03-26 10:26:59 +03:00
Jérémie Astori
5738642d44
Fix/Improve some nick fallbacks
- Rename a forgotten `lounge-user`
- Generate nick fallbacks when already in use by appending 0-9 instead of 10-98 (?!).
- Generate nick fallbacks when invalid similarly to our config default instead of random string. This is to make it less confusing when fallback gets used.
2018-03-26 03:00:46 -04:00
Jérémie Astori
0a48b28d83
Exclude Node v9.9 from Travis build, for now 2018-03-25 17:23:00 -04:00
Jérémie Astori
fab237d373
Merge pull request #2292 from thelounge/xpaw/tests
Fix lint issue on master; increase timeout globally on CI
2018-03-25 17:11:15 -04:00
Pavel Djundik
a222dc9237 Ensure sqlite tests are serialized 2018-03-25 16:00:48 +03:00
Adam Williams
25dee77600 Add auto-prepend behaviour for unprefixed channels
This change adds behaviour to automatically prefix channel names passed in via the "?join=x,y,z" query string/search parameter which do not appear to include an appropriate channel symbol.
2018-03-24 22:17:32 +00:00
Pavel Djundik
1ddc617b79 Fix lint issue 2018-03-24 22:53:02 +02:00
Jérémie Astori
d8eed4d15e
Merge pull request #2282 from thelounge/astorije/accessible-nick-colors
Reduce lightness of low contrast nick colors to reach AA level of WCAG 2.0
2018-03-24 15:42:35 -04:00
Adam Williams
950bad1d7a Add ?channels=x,y,z alias for ?join=x,y,z
For backwards compat. with Iris and other systems.
2018-03-24 16:54:26 +00:00
Pavel Djundik
80c6e48b98
Merge pull request #2287 from thelounge/xpaw/accept
Send `Accept` header when fetching links
2018-03-24 16:58:00 +02:00
Jérémie Astori
13768a7d28
Merge pull request #2285 from thelounge/xpaw/consistent-as-needed
quote-props: consistent-as-needed
2018-03-24 02:29:13 -04:00
Jérémie Astori
0d9eb5d198
Reduce lightness of low contrast nick colors to reach AA level of WCAG 2.0, for Zenburn theme 2018-03-24 02:05:08 -04:00
Pavel Djundik
beb2af73b7
Merge pull request #2284 from thelounge/xpaw/fix-2209
Hide autocompletion menu when input is submitted
2018-03-23 22:40:59 +03:00
Pavel Djundik
ca96d09a23 Send Accept header
Closes #2277
2018-03-23 20:17:03 +02:00
Pavel Djundik
f82edcd7e7 quote-props: consistent-as-needed 2018-03-23 16:15:59 +02:00
Pavel Djundik
3afc38efcb
Merge pull request #2275 from thelounge/xpaw/autocomplete-brackets
Autocomplete bracket and quote characters like in a modern IDE
2018-03-23 12:21:37 +03:00
Pavel Djundik
3886c2a82f Hide autocompletion menu when input is submitted
Fixes #2209
2018-03-23 12:20:53 +03:00
Pavel Djundik
18c82f2d06
Merge pull request #2283 from thelounge/greenkeeper/textcomplete-0.17.0
Update textcomplete to the latest version 🚀
2018-03-23 12:05:52 +03:00
Pavel Djundik
051f6c5a7f Autocomplete bracket and quote characters like in a modern IDE 2018-03-23 12:03:36 +03:00
greenkeeperio-bot
2e7f6d4b6a chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-23 06:56:56 +00:00
Jérémie Astori
51696ed813
Merge pull request #2280 from thelounge/greenkeeper/mocha-5.0.5
Update mocha to the latest version 🚀
2018-03-23 02:53:31 -04:00
greenkeeper[bot]
1672de266e chore(package): update textcomplete to version 0.17.0 2018-03-23 06:53:07 +00:00
Jérémie Astori
43be85cee9
Reduce lightness of low contrast nick colors to reach AA level of WCAG 2.0 2018-03-23 01:19:43 -04:00
greenkeeperio-bot
ab74fa6e2c chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-23 04:33:56 +00:00
greenkeeper[bot]
5ebd6e313b chore(package): update mocha to version 5.0.5 2018-03-23 04:31:37 +00:00
Jérémie Astori
de59dc7d9f
Merge pull request #2258 from thelounge/xpaw/fix-2257
Unfocus input on touch devices to close the keyboard
2018-03-22 21:39:00 -04:00
Al McKinlay
8194433372
Merge pull request #2274 from thelounge/issue-template
Create issue template
2018-03-22 16:33:54 +00:00
Pavel Djundik
819f6c5ad2
Merge pull request #2273 from thelounge/xpaw/oidentd-order
Fix order in oidentd file
2018-03-22 18:30:49 +02:00
Pavel Djundik
69c7b32c1d Create issue template
[skip ci]
2018-03-22 17:32:58 +02:00
Pavel Djundik
95047ba695
Fix order in oidentd file
oident'd parser expects exact order and the man page is written incorrectly.
2018-03-22 13:44:43 +02:00
Pavel Djundik
6f47a78afd Unfocus input on touch devices to close the keyboard
Fixes #2257
2018-03-22 12:47:15 +02:00
Pavel Djundik
c8b5165618
Merge pull request #2268 from thelounge/xpaw/self-condensed
Do not condense actions that are performed or related to the user
2018-03-22 11:41:23 +02:00
Jérémie Astori
39a6ff8a2b
Merge pull request #2271 from thelounge/greenkeeper/eslint-4.19.1
Update eslint to the latest version 🚀
2018-03-22 01:30:09 -04:00
greenkeeperio-bot
bf77cb57fd chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-22 02:46:35 +00:00
greenkeeper[bot]
31e97fdd0e chore(package): update eslint to version 4.19.1 2018-03-22 02:43:38 +00:00
Jérémie Astori
96ea3accdf
Merge pull request #2269 from thelounge/greenkeeper/sinon-4.4.7
Update sinon to the latest version 🚀
2018-03-21 20:28:15 -04:00
greenkeeper[bot]
a0983ac2da
chore(package): update sinon to version 4.4.8 2018-03-21 20:21:27 -04:00
Pavel Djundik
0be544676b Do not condense actions that are performed or related to the user 2018-03-21 14:48:07 +02:00
Jérémie Astori
dbe81f1e59
Merge pull request #2254 from thelounge/astorije/sign-out-settings
Empty local storage on sign out and move the sign out button to the settings
2018-03-20 21:06:44 -04:00
Jérémie Astori
e37ae0c559
Merge pull request #2265 from thelounge/greenkeeper/primer-tooltips-1.5.3
Update primer-tooltips to the latest version 🚀
2018-03-20 19:44:04 -04:00
Jérémie Astori
bb4740ba76
Merge pull request #2259 from thelounge/xpaw/keybind-scroll
Scroll channel list only when using keybinds
2018-03-20 19:40:14 -04:00
Pavel Djundik
528d2b5fb7
Scroll channel list only when using keybinds 2018-03-20 19:27:07 -04:00
Jérémie Astori
d7d8a51332
Merge pull request #2262 from realies/master
stop propagation, prevent input history call when alt is involved
2018-03-20 19:23:22 -04:00
Jérémie Astori
f6f8cd7a29
Merge pull request #2263 from thelounge/xpaw/hotkeys-input
Bind formatting hotkeys on input element
2018-03-20 19:22:31 -04:00
greenkeeperio-bot
69cc8b3c89 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-20 20:01:00 +00:00
greenkeeper[bot]
810a6b8125 fix(package): update primer-tooltips to version 1.5.3 2018-03-20 19:58:33 +00:00
realies
72af0a4947 stop propagation, prevent input history call when alt is involved 2018-03-20 21:00:03 +02:00
Pavel Djundik
3c1db1d7d6 Bind formatting hotkeys on input element
And bind only one event for all of the hotkeys
2018-03-20 20:57:19 +02:00
Pavel Djundik
453eab3a12
Merge pull request #2252 from thelounge/astorije/coverage-windows
Fix `yarn coverage` script on Windows
2018-03-20 09:45:14 +02:00
Pavel Djundik
e4e570381c
Merge pull request #2255 from MaxLeiter/ctcp_abbr
Fix typo in CTCP request
2018-03-20 09:42:19 +02:00
Max Leiter
817141a781 Fix typo 2018-03-20 13:35:54 +07:00
Jérémie Astori
97a9f7c8ff
Merge pull request #2253 from thelounge/greenkeeper/commander-2.15.1
Update commander to the latest version 🚀
2018-03-20 02:08:48 -04:00
Jérémie Astori
c86ea9463d
Use Sinon to stub the logger instead of manual stubbing 2018-03-20 01:54:04 -04:00
Jérémie Astori
d1548572d4
Move the sign out button to the settings and empty local storage on sign out
This change improves privacy/security by ensuring all local storage (which includes settings, etc.) is destroyed on sign out or when revoking a remote session. Because signing out is now more "risky", the button has been moved to the settings along with other existing sessions.

This commit:

- Removes the power/sign-out icon from the sidebar footer (gives additional room for when the admin panel gets added)
- Adds a "Sign out" button next to the current session info in the settings session list
- Renames "Disconnect" buttons into "Revoke" to better clarify the intent (I will admit that I borrowed the wording from Telegram)
- Fixes incorrect `localStorage.remove` method
- Uses Sinon.js to mock wrappers for `window.localStorage` and `window.location` (does not mock those themselves, in the "Do not mock what you do not own" fashion, mock our layer instead). I expect we will be able to test a bit more from the UI with this. A good next candidate will be the `mockLogger` things.
2018-03-20 01:52:22 -04:00
greenkeeperio-bot
5804af2082 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-20 01:56:41 +00:00
greenkeeper[bot]
85b7c01c2d fix(package): update commander to version 2.15.1 2018-03-20 01:52:14 +00:00
Jérémie Astori
22725968e8
Fix yarn coverage script on Windows 2018-03-19 20:01:25 -04:00
Pavel Djundik
5d6ea4f32e
Merge pull request #2251 from thelounge/xpaw/canplay
Render video and audio previews only after canplay event fires
2018-03-19 20:08:14 +02:00
Pavel Djundik
7554600dd4
Merge pull request #2221 from thelounge/astorije/shortcut-help
Improve readability and styling of shortcut keys in the Help section
2018-03-19 20:00:37 +02:00
Pavel Djundik
77a98bfd14 Render video and audio previews only after canplay event fires 2018-03-19 12:47:36 +02:00
Jérémie Astori
883b6dbef2
Improve readability and styling of shortcut keys in the Help section 2018-03-19 01:45:48 -04:00
Jérémie Astori
8ecacc9978
Merge pull request #2186 from MaxLeiter/emoji-tip
Improve accessibility for emoji
2018-03-18 15:50:57 -04:00
Pavel Djundik
430d48434c
Merge pull request #2248 from MaxLeiter/underline-strikethrough
Support strikethrough and underline at same time
2018-03-18 21:49:16 +02:00
Max Leiter
9053a0bb6a Strikethrough and underline support 2018-03-18 12:37:53 -07:00
Max Leiter
01753a814c Improve accessibility for emoji 2018-03-18 12:13:48 -07:00
Al McKinlay
e43c591890
Merge pull request #2195 from thelounge/mcinkay/collapse-state
Save collapsed state to localstorage
2018-03-18 16:41:00 +00:00
Al McKinlay
6195e5d8f6 Save collapsed state to localstorage 2018-03-18 16:12:10 +00:00
Pavel Djundik
039c12266a
Merge pull request #2246 from thelounge/astorije/sidebar-overlay
Add a semi-opaque overlay when channel list is open on mobile
2018-03-18 18:00:23 +02:00
Jérémie Astori
1632ae27d0
Merge pull request #2247 from thelounge/xpaw/failed-login-log
Print failed login attempts to console
2018-03-18 11:14:00 -04:00
Jérémie Astori
8d72cb1416
Remove transition on box-shadow as it affects performance (and is not _that_ noticeable) 2018-03-18 03:00:49 -04:00
Jérémie Astori
8100f98d6b
Handle scrolls 0-45° as horizontal (opening the menu); 45-90° as vertical (chat scroll) 2018-03-18 01:18:43 -04:00
Jérémie Astori
6828cd1075
Fix transitions of sidebar overlay 2018-03-17 21:08:08 -04:00
Pavel Djundik
84f460d9b8 Make slideout work anywhere on the screen
Also makes touchmove event passive
2018-03-17 11:40:15 +02:00
Pavel Djundik
5bb0b198e6 Disable scrolling through sidebar overlay 2018-03-17 11:35:33 +02:00
Pavel Djundik
ed4b6e85ac Print failed login attempts to console 2018-03-17 10:09:59 +02:00
Jérémie Astori
1e8c0547ec
Add a semi-opaque overlay when channel list is open on mobile 2018-03-17 03:13:43 -04:00
Jérémie Astori
cf49a3427e
Ensure links in chats cannot be opened by accident when closing the channel list 2018-03-17 03:12:30 -04:00
Jérémie Astori
4c0479fe3d
Merge pull request #2244 from thelounge/greenkeeper/eslint-4.19.0
Update eslint to the latest version 🚀
2018-03-17 00:03:23 -04:00
Jérémie Astori
c395e74e64
Merge pull request #2235 from thelounge/xpaw/store-sidebar-visibility
Store visibility status of sidebar menus
2018-03-16 23:57:24 -04:00
Jérémie Astori
4c62b0d50c
Merge pull request #2225 from thelounge/mcinkay/2224-collapse-select-lobby
Select lobby of network when collapsing network
2018-03-16 21:49:16 -04:00
greenkeeperio-bot
5339f529aa chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-17 00:04:33 +00:00
greenkeeper[bot]
7fd200db63 chore(package): update eslint to version 4.19.0 2018-03-17 00:02:12 +00:00
Jérémie Astori
97973d47f2
Merge pull request #2243 from birkof/master
Incorrect spelling
2018-03-16 19:17:46 -04:00
Daniel STANCU
bf4d55564c Incorrect spelling 2018-03-17 00:44:19 +02:00
Pavel Djundik
0858938eea
Merge pull request #2242 from thelounge/xpaw/fix-master
Keep input reference as jquery object
2018-03-16 18:56:34 +02:00
Pavel Djundik
d3d4dce54d
Merge pull request #2241 from thelounge/stop-slacking-greenkeeper
Update express to 4.16.3
2018-03-16 18:37:49 +02:00
Pavel Djundik
fdd321311e Keep input reference as jquery object 2018-03-16 18:37:12 +02:00
Pavel Djundik
e987917c64
Merge pull request #2215 from thelounge/xpaw/out-of-focus-typing
Do not aggressively focus input when clicking anywhere and handle typing out of focus
2018-03-16 18:25:38 +02:00
Pavel Djundik
60a8f61040 Update express to 4.16.3 2018-03-16 18:18:30 +02:00
Pavel Djundik
b6cde34a08 Automatically focus input when typing into nothing 2018-03-16 18:11:02 +02:00
Pavel Djundik
44b9597981 Do not handle modifier hotkeys if input is not focused 2018-03-16 18:07:19 +02:00
Pavel Djundik
7267f89377 Do not aggressively focus input when clicking anywhere 2018-03-16 18:07:19 +02:00
Jérémie Astori
9164f65693
Merge pull request #2238 from thelounge/greenkeeper/sqlite3-4.0.0
Update sqlite3 to the latest version 🚀
2018-03-16 03:03:28 -04:00
Pavel Djundik
103c3395dd Store visibility status of sidebar menus
Fixes #51
Closes #1606
2018-03-16 09:03:16 +02:00
Jérémie Astori
640d8df487
Merge pull request #2236 from thelounge/xpaw/fix-2214
Rework how unread marker is moved when status messages are hidden
2018-03-16 02:15:43 -04:00
Jérémie Astori
49f1a01dba
Merge pull request #2206 from ESWAT/keybind-cycle-lobbies
Add keybinds for cycling through networks/lobbies
2018-03-16 01:37:22 -04:00
Jérémie Astori
67f7975ced
Merge pull request #2237 from thelounge/xpaw/ident-hexip
Send hexip in ident responses
2018-03-15 22:06:48 -04:00
greenkeeperio-bot
5bff3abd52 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-15 15:56:58 +00:00
Pavel Djundik
3de3d05b8a Rework how unread marker is moved when status messages are hidden
Fixes #2214
2018-03-15 17:52:04 +02:00
greenkeeper[bot]
916ebcb1be fix(package): update sqlite3 to version 4.0.0 2018-03-15 15:51:56 +00:00
Philip Karpiak
c0f430e509 Add keybinds for cycling through networks/lobbies 2018-03-15 10:10:20 -04:00
Pavel Djundik
df04d697b1 Send hexip in ident responses 2018-03-15 15:30:37 +02:00
Al McKinlay
1fbdb170e4 Select lobby of network when collapsing network
Fixes #2224
2018-03-15 08:32:21 +00:00
Jérémie Astori
cdb810ebc5
Merge pull request #2228 from thelounge/greenkeeper/stylelint-9.1.3
Update stylelint to the latest version 🚀
2018-03-15 01:18:07 -04:00
Jérémie Astori
3873c4def1
Merge pull request #2073 from thelounge/astorije/eslint-object-shorthand
Enforce object literal shorthand syntax with ESLint
2018-03-15 00:29:27 -04:00
Jérémie Astori
00bca229f0
Enforce object literal shorthand syntax with ESLint 2018-03-15 00:22:09 -04:00
greenkeeperio-bot
2c499c9f6d chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-14 19:27:41 +00:00
greenkeeper[bot]
b3f48cf926 chore(package): update stylelint to version 9.1.3 2018-03-14 19:24:13 +00:00
Pavel Djundik
f07a6db7ab
Merge pull request #2199 from thelounge/astorije/sign-in-logo
Add logo to the sign in page
2018-03-14 10:57:41 +02:00
Pavel Djundik
9414989fc1
Merge pull request #2212 from thelounge/xpaw/hide-chan-list
Allow hiding channel list on desktop
2018-03-14 10:54:09 +02:00
Jérémie Astori
a7e928ed4f
Merge pull request #2222 from thelounge/xpaw/sqlite-close
Do not try to write anything to sqlite after its closed
2018-03-14 03:07:01 -04:00
Pavel Djundik
8a7408097d
Merge pull request #2210 from thelounge/xpaw/undate
Use undate library to handle modifier keys
2018-03-14 09:05:39 +02:00
Pavel Djundik
0af3f10997
Do not try to write anything to sqlite after its closed 2018-03-14 08:45:52 +02:00
Jérémie Astori
ed67dc5de5
Add logo to the sign in page 2018-03-13 23:05:11 -04:00
Jérémie Astori
74ccef02bf
Merge pull request #2220 from thelounge/greenkeeper/stylelint-9.1.2
Update stylelint to the latest version 🚀
2018-03-13 19:14:59 -04:00
Jérémie Astori
88b7f5bc2f
Merge pull request #2217 from thelounge/xpaw/fix-url-caret
Fix some URLs not being sent as-is to the client
2018-03-13 19:11:43 -04:00
greenkeeperio-bot
52fd311016 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-13 23:04:12 +00:00
greenkeeper[bot]
70128e22b9 chore(package): update stylelint to version 9.1.2 2018-03-13 22:59:53 +00:00
Pavel Djundik
351a203acd Fix some URLs not being sent as-is to the client 2018-03-13 22:08:19 +02:00
Pavel Djundik
120953773e
Merge pull request #2213 from thelounge/xpaw/theme-repaint
Do not repaint theme on page load
2018-03-13 18:26:52 +02:00
Pavel Djundik
a56ad36a42 Do not repaint theme on page load 2018-03-13 17:38:01 +02:00
Pavel Djundik
74220d8a24 Allow hiding channel list on desktop
Fixes #17
2018-03-13 17:00:02 +02:00
Pavel Djundik
7e2edc2c9f Use undate library to handle modifier keys 2018-03-13 12:43:48 +02:00
Pavel Djundik
0260bcbf3b
Merge pull request #2208 from thelounge/greenkeeper/nyc-11.6.0
Update nyc to the latest version 🚀
2018-03-13 09:38:49 +02:00
greenkeeperio-bot
44d6c1cf6d chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-13 07:07:49 +00:00
greenkeeper[bot]
4b239a9c9c chore(package): update nyc to version 11.6.0 2018-03-13 07:04:12 +00:00
Jérémie Astori
288aaac465
Merge pull request #2152 from thelounge/yamanickill/sort-channels-on-join
Insert channel/user into channel list at alphabetically sorted point, not just the end
2018-03-13 00:37:59 -04:00
Pavel Djundik
0dc76e773f
Merge pull request #2185 from thelounge/xpaw/flexbox-viewport
Convert the entire viewport to use flexbox
2018-03-12 23:07:48 +02:00
Pavel Djundik
6a6789a3c7
Merge pull request #2202 from thelounge/greenkeeper/request-2.84.0
Update request to the latest version 🚀
2018-03-12 19:28:57 +02:00
Pavel Djundik
be69f88ef6
Merge pull request #2205 from thelounge/xpaw/fa5-join
Fix join and part icons
2018-03-12 17:45:12 +02:00
Pavel Djundik
43fc531a6f Fix join and part icons 2018-03-12 17:37:57 +02:00
greenkeeper[bot]
e345bc8ac8 fix(package): update request to version 2.85.0 2018-03-12 14:44:27 +02:00
Al McKinlay
5ce67ba093 Insert channel/user into channel list at alphabetically sorted point, not just the end
Don't sort queries/users after special chans


Set all users in tests to be of type query


Add test for not inserting infront of lobby


Break after finding the index, otherwise it always adds it to the end


Add checking for lobby in first test


Fix off-by-one error on the frontend


Fix utterly idiotic issue adding a duplicate of the channel we are on rather than the new user when we query


Check that we always insert before first special chan
2018-03-12 12:42:59 +00:00
Al McKinlay
191f8429c3
Merge pull request #2194 from thelounge/astorije/font-awesome-5
Upgrade to Font Awesome 5
2018-03-12 09:19:07 +00:00
Jérémie Astori
e9e440a625
Merge pull request #2201 from thelounge/astorije/rm-mailto
Remove `mailto:` part of security email address
2018-03-12 04:05:08 -04:00
Jérémie Astori
f2e5bd1b3c
Remove mailto: part of security email address
This actually displays `send us your report at mailto:security@thelounge.chat.`. Also, it's optional and Markdown renderer adds it when rendering to a `<a>` link.
2018-03-12 03:54:10 -04:00
Jérémie Astori
da5a876f93
Use warning icon for insecure connections 2018-03-11 15:57:35 -04:00
Jérémie Astori
c28fda6b28
Switch to Font Awesome 5 2018-03-11 15:57:35 -04:00
Jérémie Astori
35e5ff2fc7
Merge pull request #2196 from thelounge/astorije/rm-config-cli
Remove `thelounge config` from the CLI
2018-03-11 15:54:30 -04:00
Jérémie Astori
2954afd77d
Remove thelounge config from the CLI 2018-03-11 14:36:57 -04:00
Al McKinlay
ab2bb2881f
Merge pull request #1860 from thelounge/yamanickill/advanced
Add advanced toggle and hide certain settings by default
2018-03-11 18:14:23 +00:00
Al McKinlay
1a9ad1a7e3 Add advanced toggle and hide certain settings by default 2018-03-11 17:47:47 +00:00
Jérémie Astori
bd619220d0
Merge pull request #2190 from thelounge/xpaw/fix-2178
Close sqlite database when user quits
2018-03-10 17:34:26 -05:00
Pavel Djundik
b01e01bc19 Convert most of the layout to flexbox, make sidebar an overlay 2018-03-11 00:23:43 +02:00
Pavel Djundik
a15e922e27 Close sqlite database when user quits
Fixes #2178
2018-03-11 00:21:47 +02:00
Jérémie Astori
6857c5dd08
Merge pull request #2192 from creesch/settingSync
Don't access "Notification" if the browser does not support it
2018-03-10 15:24:54 -05:00
creesch
6d4fb93e6b Don't access "Notification" if the browser does not support it. 2018-03-10 20:21:30 +01:00
Jérémie Astori
38b8cdbb5e
Merge pull request #2189 from thelounge/xpaw/fix-2176
Allow overriding arrays in config, warn about incorrect types
2018-03-10 13:36:31 -05:00
Jérémie Astori
f2fb27f6a4
Merge pull request #2188 from thelounge/xpaw/no-blind-playback-cap
Only request znc.in/playback if sqlite logging is enabled
2018-03-10 13:31:08 -05:00
Pavel Djundik
ddb1a280cb Allow overriding arrays in config, warn about incorrect types
Fixes #2176
2018-03-10 13:59:24 +02:00
Pavel Djundik
5146686814 Only request znc.in/playback if sqlite logging is enabled 2018-03-10 13:25:56 +02:00
Jérémie Astori
1bf8c1578d
Merge pull request #2182 from thelounge/xpaw/no-contain
Remove `contain` as it's causing rendering issues
2018-03-09 18:59:07 -05:00
Jérémie Astori
50a9ef5b3a
Merge pull request #2183 from thelounge/greenkeeper/copy-webpack-plugin-4.5.1
Update copy-webpack-plugin to the latest version 🚀
2018-03-09 18:58:21 -05:00
greenkeeperio-bot
01857a50ee chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-09 13:31:07 +00:00
greenkeeper[bot]
71def026c9 chore(package): update copy-webpack-plugin to version 4.5.1 2018-03-09 13:27:11 +00:00
Pavel Djundik
c86c4f0362
Remove contain as it's causing rendering issues 2018-03-09 13:01:02 +02:00
Pavel Djundik
08f2ebd373
Merge pull request #2180 from thelounge/xpaw/ci
Try to fix sqlite test failing on CI randomly
2018-03-09 12:43:55 +02:00
Pavel Djundik
20c9df39b1
Merge pull request #2181 from thelounge/xpaw/client-away-crash
Do not crash when awayMessage is set but IRC connection does not exist
2018-03-09 12:41:36 +02:00
Pavel Djundik
b2eb11b5ef
Merge pull request #1851 from creesch/settingSync
Optional syncing of client settings.
2018-03-09 12:37:17 +02:00
Pavel Djundik
b5b0ebe00d
Do not crash when awayMessage is set but IRC connection does not 2018-03-09 12:33:24 +02:00
Pavel Djundik
49046be361 Try to fix sqlite test failing on CI randomly 2018-03-09 11:41:30 +02:00
creesch
27393bb804 Offer optional syncing of client settings
Write synced settings to localstorage.

move settings and webpush init to init.js

stub for server sending clientsettings

get very basic setting sync working

Also update client.config.clientSettings on settings:set

Full setting sync with mandatory and excluded sync options

Actually check client preferences.

Further settings restructuring.

Refactor options.js make storage act in a sane manner.

Add new parameter to applySetting

Do not sync if the setting is stored as a result of syncing

General clean up, commenting and restructing.

sync from server on checking "sync"

offer initial sync

Better deal with DOM being ready and instances of inital sync showing

Don't try to disable autocompletion when not enabled.

Restructure option.js to seperate functions from settings.

More consistency in naming options vs settings

Switch processSetting and applySetting names reflecting their functionality better.

move options init back to configuration.

simplify how settings are synced around.

move options init after template building.

Remove unneeded hasOwnProperty

Use global for #theme and only apply theme in applySetting

Return when no server side clientsettings excist.

Autocompletion options to options.settings

Make nocss param in url work again.

Actually filter out empty highlight values.

Clarify alwaysSync comment.

Remove manual step for initial sync

change attr to prop in options.js

replace unbind with off in autocompletion.js

Do not sync settings when the lounge is set to public.

fix eslint error

Fix merge error

Do not show sync warning after page refresh when sync is enabled

Move setting sync label in actual label.

Improve server setting sync handling performance and failure potential.

Don't give impression that the desktop notificiation is off when the browser permission is denied.

Refine showing and hiding of notification warnings.

rename all setting socket events to singular setting.

add experimental note and icon to settingsync.

fix css linting error
2018-03-09 10:36:29 +01:00
Pavel Djundik
218e06fbd4
Merge pull request #2179 from thelounge/xpaw/push-colon
Do not include colon in push message for actions
2018-03-09 11:22:01 +02:00
Pavel Djundik
167101c3aa Do not include colon in push message for actions 2018-03-09 11:06:19 +02:00
Pavel Djundik
d66d5dc144
Merge pull request #2177 from thelounge/xpaw/no-horizontal-scroll
Always hide horizontal overflow in chat
2018-03-09 10:09:46 +02:00
Pavel Djundik
653b46e2f4
Always hide horizontal overflow in chat 2018-03-09 09:31:58 +02:00
Pavel Djundik
5aa9d7e1dc
Merge pull request #1839 from thelounge/sqlite
Add sqlite logging and reloading messages
2018-03-09 09:06:25 +02:00
Jérémie Astori
fc7e8339b7
3.0.0-pre.3 2018-03-08 21:27:05 -05:00
Jérémie Astori
047c4d0a98
Add changelog entry for v3.0.0-pre.3 2018-03-08 21:27:00 -05:00
Jérémie Astori
f3c10bdd42
Merge pull request #2175 from thelounge/astorije/fix-tests
Ignore order of preview results in unicode link tests
2018-03-08 21:22:29 -05:00
Jérémie Astori
5e6e27d73f
Ignore order of preview results in unicode link tests 2018-03-08 21:01:57 -05:00
Jérémie Astori
4faf669348
Merge pull request #2169 from thelounge/greenkeeper/commander-2.15.0
Update commander to the latest version 🚀
2018-03-08 20:12:21 -05:00
Jérémie Astori
f105a11cd4
Merge pull request #2166 from dgw/2062-scroll-to-new-channels
Scroll to joined/activated channel
2018-03-08 19:59:05 -05:00
Jérémie Astori
c816bc9834
Merge pull request #2172 from williamboman/fix/stock-themes-user-hover
Fix background color when hovering users in user list (darker themes)
2018-03-08 19:39:41 -05:00
Jérémie Astori
7cad5063f2
Fix userlist search background/color in darker themes 2018-03-08 19:28:20 -05:00
William Boman
8d4475ff84
client/themes: fix background color when hovering users in the user list 2018-03-08 19:21:44 -05:00
Jérémie Astori
b8531e6070
Merge pull request #2171 from thelounge/xpaw/fix-unicode-urls
Normalize unicode URLs in link prefetcher
2018-03-08 19:06:37 -05:00
Jérémie Astori
d0ac101b0d
Merge pull request #2170 from thelounge/xpaw/optimize-notified
Optimized notification dot state
2018-03-08 19:04:51 -05:00
Pavel Djundik
dfc4cad712 Add test coverage for sqlite plugin 2018-03-08 20:23:29 +02:00
Pavel Djundik
8f59ca1bec Add support for znc.in/playback
Fixes #1768
2018-03-08 20:23:29 +02:00
Pavel Djundik
941849eaa8 Add message indexing 2018-03-08 20:23:29 +02:00
Pavel Djundik
731b29c059 Generate uuid per network 2018-03-08 20:23:29 +02:00
Pavel Djundik
f475cc39ef Normalize unicode URLs in link prefetcher
Fixes #1644
2018-03-08 19:43:39 +02:00
dgw
e5a6417a82 Scroll to newly joined/activated channels
Add a new utility function for scrolling elements into view with the
same, consistent options, and use it for both the new channel scrolling
behavior and the existing userlist scroll code.

Implements & resolves #2062
2018-03-08 10:30:07 -06:00
Pavel Djundik
0fb462c88e Optimized notification dot state 2018-03-08 15:46:05 +02:00
greenkeeperio-bot
8dcdfbdffa chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-08 08:16:16 +00:00
greenkeeper[bot]
8d6b3fa335 fix(package): update commander to version 2.15.0 2018-03-08 08:13:32 +00:00
Pavel Djundik
d1648823c3
Merge pull request #2149 from thelounge/xpaw/sidebar-flex
Cleanup sidebar to use flexbox
2018-03-08 09:04:11 +02:00
Pavel Djundik
6fdd6d4f8e
Merge pull request #2161 from realies/patch-4
Add install command support for package version
2018-03-08 08:57:39 +02:00
Pavel Djundik
884984f9b4 Cleanup sidebar to use flexbox 2018-03-08 08:50:04 +02:00
Pavel Djundik
73755ce973 Remove .chanlist wrapper
Added in 04046719c1, but it's not necessary
2018-03-08 08:50:04 +02:00
Jérémie Astori
589d7a9811
Merge pull request #1838 from thelounge/xpaw/ogp-media
Try to find og:video and og:audio on html pages
2018-03-07 19:22:30 -05:00
Jérémie Astori
4a8aae1f1a
Merge pull request #2168 from thelounge/greenkeeper/mocha-5.0.4
Update mocha to the latest version 🚀
2018-03-07 19:11:13 -05:00
greenkeeperio-bot
68adda5821 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-07 21:56:41 +00:00
greenkeeper[bot]
d4a068e2de chore(package): update mocha to version 5.0.4 2018-03-07 21:53:39 +00:00
realies
a941fe97a6 Add install command support for package version 2018-03-07 19:59:03 +02:00
Pavel Djundik
58d9490c2a Try to find og:video and og:audio on html pages 2018-03-07 12:53:56 +02:00
Pavel Djundik
fe51c6d7e7 Move video size to css 2018-03-07 12:53:28 +02:00
Pavel Djundik
20415a2edb
Merge pull request #2165 from thelounge/greenkeeper/mocha-5.0.3
Update mocha to the latest version 🚀
2018-03-07 12:01:34 +02:00
greenkeeperio-bot
2506feb1ea chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-07 09:23:17 +00:00
greenkeeper[bot]
5c7f34bd48 chore(package): update mocha to version 5.0.3 2018-03-07 09:19:02 +00:00
Pavel Djundik
d5c9fb5536
Merge pull request #2158 from thelounge/xpaw/slideout
Do not listen to touch events until client is initialized
2018-03-07 10:13:50 +02:00
Pavel Djundik
bb066ecb02 Do not listen to touch events until client is initialized
Fixes #2148
2018-03-07 10:02:02 +02:00
Pavel Djundik
6c6168e80a
Merge pull request #2164 from thelounge/xpaw/remove-maxlisteners
Remove setMaxListeners
2018-03-07 09:19:04 +02:00
Pavel Djundik
c63c0f2ec8
Merge pull request #2163 from thelounge/xpaw/fix-2162
Apply ECDH curve fix only on affected version
2018-03-07 09:16:50 +02:00
Pavel Djundik
6fa48d3acf Remove setMaxListeners
Reverts 2cee0ea6ef as this no longer causes the EventEmitter warning due to `maxRedirects` being set to 5 on our end.

Ref: https://github.com/request/request/issues/311#issuecomment-153507416
2018-03-07 09:13:06 +02:00
Pavel Djundik
827310a645 Apply ECDH curve fix only on affected version
Fixes #2162
2018-03-07 08:44:22 +02:00
Jérémie Astori
dd3d8f8fb3
Merge pull request #2156 from thelounge/xpaw/chalk
Update chalk to the latest version
2018-03-06 19:56:41 -05:00
Jérémie Astori
c3ed4ebc5e
Merge pull request #2159 from thelounge/xpaw/ecdh-auto-curves
Fix default ecdh curve for better compatibility
2018-03-06 19:53:11 -05:00
Jérémie Astori
6dbc6eb842
Merge pull request #2160 from thelounge/xpaw/flexbugs
Fix chat and userlist not scrolling
2018-03-06 19:42:15 -05:00
Pavel Djundik
8b417fe97a Fix chat and userlist not scrolling 2018-03-06 20:21:00 +02:00
Pavel Djundik
85efebc6be
Merge pull request #2150 from thelounge/xpaw/chat-flexbox
Cleanup chat/userlist to use flexbox, fix a couple of bugs
2018-03-06 16:23:16 +02:00
Pavel Djundik
501730f2ca Fix default ecdh curve for better compatibility 2018-03-06 15:11:42 +02:00
Pavel Djundik
4551c10a5c
Merge pull request #2154 from thelounge/xpaw/rejectUnauthorized-v2
Fix rejectUnauthorized
2018-03-06 12:51:56 +02:00
Pavel Djundik
9188943261 Fix rejectUnauthorized 2018-03-06 11:42:06 +02:00
Pavel Djundik
11eedc3ea1 Update chalk and lock file to latest version 2018-03-06 10:46:52 +02:00
Jérémie Astori
e8c64b084e
Merge pull request #2155 from thelounge/greenkeeper/mocha-5.0.2
Update mocha to the latest version 🚀
2018-03-06 00:49:21 -05:00
greenkeeperio-bot
9f503b6de9 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-06 05:08:51 +00:00
greenkeeper[bot]
97ed29e1dd chore(package): update mocha to version 5.0.2 2018-03-06 05:06:03 +00:00
Pavel Djundik
e719e4ff81 Cleanup chat/userlist to use flexbox, fix a couple of bugs 2018-03-05 18:17:13 +02:00
Jérémie Astori
cbf82a1bc7
Merge pull request #2075 from thelounge/xpaw/rejectUnauthorized
Allow setting `rejectUnauthorized` per network
2018-03-04 18:13:16 -05:00
Pavel Djundik
eab823ba66 Allow setting rejectUnauthorized per network 2018-03-04 12:45:48 +02:00
Pavel Djundik
68cc9a2e28
Merge pull request #2143 from thelounge/xpaw/fix-2128
Do not crash when user file can not be read or written
2018-03-03 23:03:57 +02:00
Al McKinlay
04046719c1
Merge pull request #1867 from thelounge/yamanickill/867-collapsible-network
Add support for collapsing networks
2018-03-03 20:01:33 +00:00
Alistair McKinlay
894d6f162d
Hide collapse button if no channels 2018-03-03 14:51:06 -05:00
Pavel Djundik
4b7a53c5e1 Do not rethrow exception if user file failed to write 2018-03-03 21:46:14 +02:00
Pavel Djundik
6b5f6e3e79 Do not crash when user file can not be read
Fixes #2128
Fixes #447
2018-03-03 21:46:14 +02:00
Pavel Djundik
e0b15f18e1
Merge pull request #1668 from thelounge/xpaw/center-loading
Center loading screen and add logo
2018-03-03 10:03:22 +02:00
Pavel Djundik
276266e24f Center loading screen 2018-03-03 09:45:24 +02:00
Jérémie Astori
9107f9e351
Merge pull request #2145 from thelounge/xpaw/chalk
Replace colors.js with chalk
2018-03-03 02:42:04 -05:00
Jérémie Astori
6aa5ab160d
Merge pull request #2147 from thelounge/greenkeeper/moment-2.21.0
Update moment to the latest version 🚀
2018-03-03 02:39:19 -05:00
Jérémie Astori
8deb056ecf
Merge pull request #1842 from thelounge/astorije/userlist-up-down
Move the user list client code to its own file and make it possible to navigate with keyboard
2018-03-03 02:32:09 -05:00
Jérémie Astori
f909e096bc
3.0.0-pre.2 2018-03-03 00:49:56 -05:00
Jérémie Astori
f6bf4a1c94
Add changelog entry for v3.0.0-pre.2 2018-03-03 00:49:38 -05:00
Jérémie Astori
f9f35fa498
Merge pull request #2144 from thelounge/xpaw/warn-config-folder
Warn about old config folder
2018-03-03 00:23:38 -05:00
Jérémie Astori
5f0fcf5f41
Merge pull request #2146 from thelounge/greenkeeper/eslint-4.18.2
Update eslint to the latest version 🚀
2018-03-02 22:00:12 -05:00
Jérémie Astori
92bd4ed083
Merge pull request #2142 from thelounge/xpaw/fix-2141
Set channel state to joined when channel already exists
2018-03-02 21:55:00 -05:00
greenkeeperio-bot
5bca4b7323 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-03 01:21:30 +00:00
greenkeeper[bot]
f816a3972f fix(package): update moment to version 2.21.0 2018-03-03 01:17:08 +00:00
greenkeeperio-bot
0d02f49b9b chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-02 22:44:35 +00:00
greenkeeper[bot]
8e6be8a4d4 chore(package): update eslint to version 4.18.2 2018-03-02 22:42:12 +00:00
Pavel Djundik
fee81e78e1 Replace colors.js with chalk 2018-03-02 20:28:54 +02:00
Pavel Djundik
59174db7e5
Merge pull request #2140 from thelounge/xpaw/line-height
Bring back line-height on messages
2018-03-02 20:20:41 +02:00
Pavel Djundik
eaf8c35f40 Warn about old config folder 2018-03-02 19:05:30 +02:00
Pavel Djundik
7a0a1b86f6 Set channel state to joined when channel already exists
Fixes #2141
Fixes #2103
2018-03-02 12:29:40 +02:00
Jérémie Astori
49f2721908 Tweak collapse/expand icon design
- Animate the caret similarly to previews and status messages
- Tweak margins to center things a bit
- Remove unused CSS attributes
2018-03-02 08:57:12 +00:00
Al McKinlay
7fec928ba8 Make networks collapsable 2018-03-02 08:57:12 +00:00
Pavel Djundik
2bf4416aec Bring back line-height on messages
Was removed in c051b70537, but this affected line height on mobile view due to increased font size
2018-03-02 10:56:55 +02:00
Jérémie Astori
c485ec8c42
Merge pull request #2139 from thelounge/greenkeeper/copy-webpack-plugin-4.4.3
Update copy-webpack-plugin to the latest version 🚀
2018-03-02 01:02:44 -05:00
greenkeeperio-bot
b613be7761
chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-01 22:46:39 -05:00
greenkeeper[bot]
46c58dcb8d
chore(package): update copy-webpack-plugin to version 4.5.0 2018-03-01 22:46:39 -05:00
Pavel Djundik
4cb6ec9eae
Merge pull request #2136 from thelounge/greenkeeper/graphql-request-1.5.1
Update graphql-request to the latest version 🚀
2018-03-01 17:29:03 +02:00
Pavel Djundik
45586f7150
Merge pull request #2137 from thelounge/greenkeeper/stylelint-config-standard-18.2.0
Update stylelint-config-standard to the latest version 🚀
2018-03-01 17:28:16 +02:00
greenkeeperio-bot
f04b27b921 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-01 14:32:05 +00:00
greenkeeper[bot]
e4bbefd0a5 chore(package): update stylelint-config-standard to version 18.2.0 2018-03-01 14:27:18 +00:00
greenkeeperio-bot
1e8ca56c65 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-03-01 11:52:49 +00:00
greenkeeper[bot]
2a9525a860 chore(package): update graphql-request to version 1.5.1 2018-03-01 11:51:01 +00:00
Al McKinlay
8bbca05ad6
Merge pull request #2133 from thelounge/yamanickill/alt-up-down
Change ctrl/command up/down to alt/option up/down to align with other apps
2018-03-01 10:03:00 +00:00
Pavel Djundik
f7a828122c
Merge pull request #2135 from williamboman/fix/stock-themes-code-blocks
Make code blocks more readable in darker themes
2018-03-01 11:45:38 +02:00
Alistair McKinlay
9c5147ae09 Change ctrl/command up/down to alt/option up/down to align with other apps 2018-03-01 09:07:36 +00:00
William Boman
15dbbf4efc client/themes: make code blocks more readable in darker themes 2018-03-01 09:34:29 +01:00
Jérémie Astori
5ed8cc6320
Merge pull request #2134 from thelounge/xpaw/travis-timeout
Increase test timeout on CI
2018-02-28 18:41:24 -05:00
Pavel Djundik
fb17107406
Increase test timeout on CI 2018-02-28 22:42:21 +02:00
Pavel Djundik
00681e876f
Merge pull request #1669 from edbrannin/edbrannin/autocomplete-chat-names-1459
add autocompleted names to private chats
2018-02-28 18:54:44 +02:00
Pavel Djundik
61438cbe5a
Merge pull request #2132 from thelounge/xpaw/no-client-lodash
Remove unintentionally included lodash in client build
2018-02-28 18:49:32 +02:00
Pavel Djundik
20a6133d73 Remove unintentionally included lodash in client build 2018-02-28 17:19:33 +02:00
Ed Brannin
4e67e55a7d add autocompleted names to private chats
Fix #1459

https://github.com/thelounge/lounge/issues/1459

Add rawNicks() to more easily get the list of nicks for the current
channel or chat without overly complicating its caller.
2018-02-28 14:25:01 +02:00
Pavel Djundik
f282a973f8
Merge pull request #2131 from thelounge/greenkeeper/textcomplete-0.16.1
Update textcomplete to the latest version 🚀
2018-02-28 10:15:32 +02:00
greenkeeperio-bot
9852eb072b chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-28 06:30:24 +00:00
greenkeeper[bot]
02593c51e2 chore(package): update textcomplete to version 0.16.1 2018-02-28 06:28:27 +00:00
Pavel Djundik
14ef881d17
Merge pull request #1907 from thelounge/xpaw/accessible-messages-log
Add log role to message container
2018-02-27 13:19:46 +02:00
Pavel Djundik
6e93bd2c9b
Merge pull request #2126 from thelounge/greenkeeper/yarn-1.5.1
Update yarn to the latest version 🚀
2018-02-27 13:18:46 +02:00
Pavel Djundik
59ec0348b6
Merge pull request #1930 from thelounge/astorije/ctcp-request
Let user know someone is making a CTCP request against their nick
2018-02-27 13:15:27 +02:00
Pavel Djundik
92eb45a6f5
Merge pull request #2108 from thelounge/xpaw/socket-closed
Log socket close error if any
2018-02-27 13:14:30 +02:00
greenkeeperio-bot
845b4a240a chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-27 09:09:07 +00:00
greenkeeper[bot]
3acb14dac9 fix(package): update yarn to version 1.5.1 2018-02-27 09:06:03 +00:00
Jérémie Astori
0f6d27497d
Merge pull request #2113 from thelounge/xpaw/refactor-header
Refactor channel titles to use flexbox
2018-02-27 01:02:15 -05:00
Jérémie Astori
aadb506b8f
Merge pull request #2121 from thelounge/astorije/download-badge-link
Point download badge to npm-stat instead of npm
2018-02-27 00:31:06 -05:00
Jérémie Astori
88cbcc0694
Merge pull request #2123 from thelounge/greenkeeper/yarn-1.5.0
Update yarn to the latest version 🚀
2018-02-26 21:38:13 -05:00
Pavel Djundik
c051b70537 Refactor channel titles to use flexbox 2018-02-26 22:40:43 +02:00
Pavel Djundik
1b97c1031d Log socket close error if any 2018-02-26 14:20:23 +02:00
greenkeeperio-bot
be8cf925d8 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-26 11:56:29 +00:00
greenkeeper[bot]
9ba6b78726 fix(package): update yarn to version 1.5.0 2018-02-26 11:54:18 +00:00
Pavel Djundik
22b02dff31
Merge pull request #2122 from thelounge/revert-1910-xpaw/user-scalable
Revert "Allow scaling the page"
2018-02-26 10:35:35 +02:00
Jérémie Astori
615353c582
Make sure a previously highlighted nick in the user list is highlighted when the list is refreshed
List is refreshed when there is a change in the channel (join/part/quit/nick).
2018-02-26 01:36:36 -05:00
Jérémie Astori
3070ae098a
Mark the first user list result as active for convenience
This _also_ reproduces behavior of autocompletion dropdown.
2018-02-26 01:36:36 -05:00
Jérémie Astori
81e1d15ee9
Override mouse position when clicking on user in userlist to open dropdown at correct position 2018-02-26 01:36:36 -05:00
Jérémie Astori
ee7272305a
Adjust user list scroll when active item is outside of the visible area 2018-02-26 01:36:35 -05:00
Jérémie Astori
bfc8959bb9
Share highlighting behavior of userlist between mouse hover and keyboard selection
This effectively reproduces the behavior of the autocomplete menu.
2018-02-26 01:36:35 -05:00
Jérémie Astori
649d60c119
Allow navigating through userlist results from keyboard 2018-02-26 01:36:35 -05:00
Jérémie Astori
25517f3ad7
Move the user list client code to its own file 2018-02-26 01:36:34 -05:00
Jérémie Astori
fd4492ab41
Merge pull request #2115 from christer88/master
Channel leave button tooltip to correspond with right click context menu
2018-02-26 01:30:46 -05:00
Jérémie Astori
02b35ab367
Revert "Allow scaling the page" 2018-02-26 01:15:00 -05:00
Jérémie Astori
e26bbeccbe
Point download badge to npm-stat instead of npm 2018-02-25 16:36:47 -05:00
christer88
5d9a123827
Make channel leave button tooltip correspond with context menu 2018-02-25 02:29:05 +01:00
Jérémie Astori
bc1a6319a0
Merge pull request #2094 from thelounge/astorije/tests-in-browser
Enable in-browser run of client testing
2018-02-24 13:00:01 -05:00
Jérémie Astori
7a6b560303
Merge pull request #2098 from keegan/master
Enable logging for LDAP users
2018-02-24 12:54:48 -05:00
Jérémie Astori
fe4f453a34
Re-order scripts alphabetically in package.json and replace start-dev with dev 2018-02-23 23:52:37 -05:00
Jérémie Astori
ecede860ef
Enable in-browser run of client testing
This gets us one step closer to cross-browser testing 🎉
2018-02-23 23:52:36 -05:00
Jérémie Astori
2dbb150463
Merge pull request #2109 from thelounge/xpaw/fix-stuck-rendering
Fix "rendering..." getting stuck on first connection
2018-02-23 20:27:56 -05:00
Jérémie Astori
a9994656c3
Merge pull request #2112 from thelounge/greenkeeper/web-push-3.3.0
Update web-push to the latest version 🚀
2018-02-23 20:18:07 -05:00
Keegan
4fe7dc0808 Enable logging for LDAP users 2018-02-23 20:07:08 -05:00
Jérémie Astori
d798a0fe9b
Merge pull request #2105 from thelounge/greenkeeper/graphql-request-1.5.0
Update graphql-request to the latest version 🚀
2018-02-23 19:44:02 -05:00
Jérémie Astori
f18a7b2fe6
Merge pull request #2107 from thelounge/xpaw/correct-scroller
Always correctly trigger sticky scroll on .chat container
2018-02-23 19:38:57 -05:00
Jérémie Astori
964da1487a
Merge pull request #2101 from thelounge/xpaw/prefetch-error
Word prefetch errors differently
2018-02-23 19:29:19 -05:00
Jérémie Astori
deac669532
Merge pull request #2097 from thelounge/greenkeeper/irc-framework-2.11.0
Update irc-framework to the latest version 🚀
2018-02-23 19:17:07 -05:00
Jérémie Astori
221aad7104
Merge pull request #2111 from thelounge/greenkeeper/copy-webpack-plugin-4.4.2
Update copy-webpack-plugin to the latest version 🚀
2018-02-23 19:15:59 -05:00
Jérémie Astori
b9ca43d529
Merge pull request #2102 from thelounge/help-wanted
Back to help wanted label
2018-02-23 19:14:44 -05:00
Jérémie Astori
9e28c0d541
Merge pull request #2106 from thelounge/xpaw/logwarn
Fix log.warn in ldap
2018-02-23 19:11:47 -05:00
Jérémie Astori
c490091346
Merge pull request #2110 from thelounge/xpaw/body
Use document.body when wrapping it in a jquery object
2018-02-23 19:06:46 -05:00
greenkeeperio-bot
0610784632 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-23 21:04:23 +00:00
greenkeeper[bot]
c07342b67b fix(package): update web-push to version 3.3.0 2018-02-23 21:02:25 +00:00
greenkeeperio-bot
827e37f3d4 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-23 19:45:24 +00:00
greenkeeper[bot]
7fcf683da3 chore(package): update copy-webpack-plugin to version 4.4.2 2018-02-23 19:41:28 +00:00
Pavel Djundik
bd2907c13f Use document.body when wrapping it in a jquery object 2018-02-23 21:22:05 +02:00
Pavel Djundik
7ce1f1cf9e Fix "rendering..." getting stuck on first connection 2018-02-23 21:18:42 +02:00
Pavel Djundik
63828b95e0 Always correctly trigger sticky scroll on .chat container
`.chat` has the overflow on it, and not `.messages` so stuff like scrollTop only works on `.chat`
2018-02-23 18:21:42 +02:00
Pavel Djundik
7f82b440a2
Fix log.warn in ldap 2018-02-23 17:52:16 +02:00
greenkeeperio-bot
f78333a544 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-23 14:52:01 +00:00
greenkeeper[bot]
fedb44435d chore(package): update graphql-request to version 1.5.0 2018-02-23 14:50:28 +00:00
Pavel Djundik
24fa5b0e38
Back to help wanted label 2018-02-23 15:40:36 +02:00
Pavel Djundik
3efd888727
Word prefetch errors differently 2018-02-23 13:47:55 +02:00
Pavel Djundik
5bac385a75
Merge pull request #2099 from thelounge/xpaw/wsengine
Change wsEngine to "ws"
2018-02-23 12:47:15 +02:00
Pavel Djundik
9c46bc5713 Change wsEngine to "ws"
uWS causes major delays - https://github.com/socketio/socket.io/issues/3100
2018-02-23 12:35:35 +02:00
Jérémie Astori
a24ab74c4c
Merge pull request #2090 from thelounge/xpaw/rng-nick
Allow generating random numbers in nick on page load
2018-02-22 20:54:52 -05:00
greenkeeperio-bot
b91248719a chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-22 14:43:12 +00:00
greenkeeper[bot]
ca36da8280 fix(package): update irc-framework to version 2.11.0 2018-02-22 14:38:30 +00:00
Pavel Djundik
3074251be9
Merge pull request #2095 from thelounge/xpaw/banlist-lobby
Send empty banlist error to lobby for channels user is not in
2018-02-22 12:02:00 +02:00
Pavel Djundik
3da870be8c Send empty banlist error to lobby for channels user is not in 2018-02-22 11:01:49 +02:00
Pavel Djundik
eebfa4bfd9
Merge pull request #2093 from thelounge/astorije/pr-script-yarn
Use Yarn in the PR-test script
2018-02-22 10:31:49 +02:00
Jérémie Astori
b943b12cd1
Use Yarn in the PR-test script 2018-02-22 00:50:27 -05:00
Jérémie Astori
f8c894d7e1
Merge pull request #2082 from thelounge/xpaw/rm-isRegistered
Remove isRegistered
2018-02-22 00:45:22 -05:00
Jérémie Astori
fa4331bcd9
Limit CTCP requests to prevent easy spamming 2018-02-22 00:42:33 -05:00
Jérémie Astori
e03694b49c
Let user know someone is making a CTCP request against their nick 2018-02-22 00:42:33 -05:00
Jérémie Astori
da0ab54292
Merge pull request #2091 from thelounge/rename-lounge-repo
Update all links to thelounge repository
2018-02-22 00:19:32 -05:00
Pavel Djundik
59ec07be87
Update all links to thelounge repository 2018-02-21 22:47:52 -05:00
Jérémie Astori
7e8ceaeda4
Merge pull request #2092 from thelounge/greenkeeper/stylelint-9.1.1
Update stylelint to the latest version 🚀
2018-02-21 21:44:19 -05:00
greenkeeperio-bot
a3a5ce9aa4 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-21 22:49:21 +00:00
greenkeeper[bot]
a121ada239 chore(package): update stylelint to version 9.1.1 2018-02-21 22:44:54 +00:00
Pavel Djundik
84e524c635 Change default nick 2018-02-21 19:34:33 +02:00
Pavel Djundik
906e79f39b Allow generating random numbers in nick on page load 2018-02-21 19:34:33 +02:00
Pavel Djundik
e957a52e43
Merge pull request #1864 from thelounge/yamanickill/isop
Change isOpInChannel to allow multiple different user roles
2018-02-21 19:32:11 +02:00
Al McKinlay
c09f06fccc Change isOpInChannel to allow multiple different user roles 2018-02-21 15:05:02 +00:00
Jérémie Astori
863e9b0b48
Merge pull request #2088 from thelounge/xpaw/harden-server-events
Ignore events on the server if incorrect data is supplied
2018-02-21 09:57:19 -05:00
Jérémie Astori
5bc3ef3ed8
Merge pull request #1918 from williamboman/fix/send-accept-language-in-link-previews
relay client's preferred language in link preview requests
2018-02-21 09:54:08 -05:00
Jérémie Astori
cf3d1e928d
Merge pull request #2089 from thelounge/greenkeeper/stylelint-9.1.0
Update stylelint to the latest version 🚀
2018-02-21 09:38:26 -05:00
Pavel Djundik
dfba84d811
Merge pull request #2081 from thelounge/xpaw/secure-localhost
Consider localhost connections secure
2018-02-21 14:00:56 +02:00
greenkeeperio-bot
b9df9d6981 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-21 11:29:40 +00:00
greenkeeper[bot]
ab15fef282 chore(package): update stylelint to version 9.1.0 2018-02-21 11:22:07 +00:00
Pavel Djundik
b501d648e3 Ignore events on the server if incorrect data is supplied 2018-02-21 13:17:56 +02:00
William Boman
acb6179b30 relay client's preferred language in link preview requests
Closes #1440.
2018-02-21 10:35:33 +01:00
Jérémie Astori
f6c76ff9bd
Merge pull request #2087 from thelounge/astorije/npmignore-webpack-test
Do not publish Webpack config for test env
2018-02-21 02:50:29 -05:00
Jérémie Astori
25c6cb4f6f
Merge pull request #2086 from thelounge/astorije/node-readme
Update Node version required in README
2018-02-21 02:50:11 -05:00
Jérémie Astori
599568a428
Merge pull request #2085 from thelounge/astorije/readme-nitpick
Fix badge links in README going over the images
2018-02-21 02:47:34 -05:00
Jérémie Astori
75dda78b9c
Do not publish Webpack config for test env 2018-02-21 01:19:16 -05:00
Jérémie Astori
4fe946d791
Update Node version required in README 2018-02-21 00:57:05 -05:00
Jérémie Astori
8cfc7aae09
3.0.0-pre.1 2018-02-21 00:12:51 -05:00
Jérémie Astori
32d98c327d
Add changelog entry for v3.0.0-pre.1 2018-02-21 00:12:03 -05:00
Jérémie Astori
8d8ab049cd
Fix badge links in README going over the images 2018-02-20 23:56:02 -05:00
Jérémie Astori
0602a9495a
Merge pull request #2036 from thelounge/xpaw/prefetch-errors
Report server errors when preview fetch fails
2018-02-20 22:21:39 -05:00
Jérémie Astori
ddfd942e66
Merge pull request #2084 from thelounge/greenkeeper/eslint-4.18.1
Update eslint to the latest version 🚀
2018-02-20 19:50:27 -05:00
greenkeeperio-bot
70a5fb99d4 chore(package): update lockfile
https://npm.im/greenkeeper-lockfile
2018-02-20 23:26:23 +00:00
greenkeeper[bot]
901b0eff7d chore(package): update eslint to version 4.18.1 2018-02-20 23:24:04 +00:00
Pavel Djundik
f9ca608ad5
Merge pull request #1726 from thelounge/astorije/mocha-webpack
Instrument client code before running tests
2018-02-20 15:38:56 +02:00
Jérémie Astori
9c4ea85041 Instrument client code before running tests
Despite being a bit gross to look at, this brings a few advantages:

- Tests are now closer to what actually runs, so more likely to find broken stuff.
- We can start using things that were so far Webpack-only or browser-only, like ES6 imports, loading Handlebars templates, etc.
- We open ourselves to browser testing (there is some work to do, but that would be a necessary step).
- We improve the client/server separation, by making it possible to run them independently

I do some extra steps around coverage: now we have 2 reports (client + server), so I have an extra step to combine them (the `nyc report` part). This is  strictly to keep feature parity (the coverage report of this code is effectively the same as before), but in the near future, we might want to keep both reports separate, for example to continue separating client/server. Another reason would be to use something like Codecov, which I believe has the ability to have multiple reports. This is down the road though, our coverage is not good enough to make hosting them somewhere be useful (I think).

A few extras with this commit:

- Coverage summary is displayed when tests are run (this is not slowing down tests)
- Tests check for leaks (see https://mochajs.org/#--check-leaks)
- Tests now output with the `dot` reporter. This is nice as `npm test` runs in parallel, the whole output holds in a few lines instead of spanning over multiple screens.
2018-02-20 15:32:30 +02:00
Pavel Djundik
b10962f13f Remove isRegistered 2018-02-20 13:24:46 +02:00
Pavel Djundik
f8e53d5f72
Merge pull request #1987 from thelounge/yarn
Switch from npm to yarn
2018-02-20 12:27:01 +02:00
Pavel Djundik
37c61e2413 Report server errors when preview fetch fails 2018-02-20 11:33:42 +02:00
Pavel Djundik
2bcb9bcca1 Update readme to suggest using yarn 2018-02-20 11:28:14 +02:00
Pavel Djundik
913e88185e Change (un)install commands to use locally installed yarn 2018-02-20 11:28:14 +02:00
Pavel Djundik
f646fbbd4f Add yarn.lock, update CI services to run yarn 2018-02-20 11:28:14 +02:00
Pavel Djundik
dc6252d3f6 Consider localhost connections secure 2018-02-20 10:36:19 +02:00
Pavel Djundik
1ce2792fc4
Merge pull request #1920 from thelounge/xpaw/more-eslint
Enforce padding-line-between-statements
2018-02-20 09:41:40 +02:00
Jérémie Astori
feb5071786
Merge pull request #2080 from thelounge/astorije/travis-dist-tag
Deal with npm's `dist-tag` at Travis deploy time
2018-02-20 02:36:30 -05:00
Jérémie Astori
477e2f9cd1
Merge pull request #2079 from thelounge/xpaw/fix-master-v2
Add titles to all windows
2018-02-20 02:36:09 -05:00
Pavel Djundik
c733e72e7a Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02:00
Pavel Djundik
1453e262d1 Enforce padding-line-between-statements in eslint 2018-02-20 09:27:32 +02:00
Pavel Djundik
a2195c15e4 Add titles to all windows 2018-02-20 09:19:20 +02:00
Jérémie Astori
4e63ef9764
After deploying a stable release, clean up the next tag 2018-02-20 00:59:47 -05:00
Jérémie Astori
288e8148fd
Tag npm releases with latest or next depending on stable/pre-release 2018-02-20 00:58:43 -05:00
Jérémie Astori
7975f4debc
Merge pull request #1928 from thelounge/xpaw/ctcp-resp
Rewrite ctcp handling
2018-02-20 00:12:30 -05:00
Pavel Djundik
7330dc9553
Rewrite ctcp handling 2018-02-19 14:43:58 -05:00
Jérémie Astori
95abf830cd
Merge pull request #2078 from thelounge/xpaw/fix-master-after-no-var
Fix active class not being removed when switching channels
2018-02-19 14:27:29 -05:00
Pavel Djundik
7724762c14 Fix active class not being removed when switching channels 2018-02-19 21:05:05 +02:00
Pavel Djundik
6c7ddd0f47
Merge pull request #1734 from thelounge/astorije/thelounge_home
Switch default home location to `~/.thelounge`
2018-02-19 20:54:57 +02:00
Jérémie Astori
a94d3f1b6d
Merge pull request #2003 from thelounge/astorije/logo-readme
Add logo to README, and make intro it look a little nicer
2018-02-19 13:46:08 -05:00
Pavel Djundik
51684f7a2a Switch default home location to ~/.thelounge and remove support of .lounge_home 2018-02-19 20:43:53 +02:00
Jérémie Astori
c7ad6d9d3d
Merge pull request #2077 from thelounge/astorije/rm-lounge-cli
Remove support for the `lounge` CLI (which was replaced with `thelounge`)
2018-02-19 13:27:47 -05:00
Jérémie Astori
ca8df65dfd
Link npm version to the package page on Yarn 2018-02-19 13:21:06 -05:00
Jérémie Astori
bdb6064c76
Add logo to README, and make intro it look a little nicer 2018-02-19 13:21:06 -05:00
Jérémie Astori
69a4207ea4
Remove support for the lounge CLI (which was replaced with thelounge) 2018-02-19 13:14:14 -05:00
Pavel Djundik
c97352905d
Merge pull request #1962 from thelounge/xpaw/no-var
Enable no-var rule
2018-02-19 20:12:31 +02:00
Pavel Djundik
9ecb776760
Merge pull request #2031 from thelounge/astorije/irc-monospace
Improve monospace formatting in messages
2018-02-19 20:09:04 +02:00
Pavel Djundik
8886459be9
Merge pull request #2049 from thelounge/xpaw/ui-network-status
Sync network status and security to client UI
2018-02-19 19:57:36 +02:00
Jérémie Astori
53fe991407
Merge pull request #1980 from thelounge/astorije/website
Replace reference to website with new URL
2018-02-19 12:56:08 -05:00
Jérémie Astori
26fa60f475
Merge pull request #1730 from thelounge/astorije/rm-css-theme-deprecation
Remove deprecated support for CSS filenames in theme configuration
2018-02-19 12:55:38 -05:00
Pavel Djundik
a3e448acf5 Enable no-var rule
Fixes #1961
2018-02-19 19:49:39 +02:00
Pavel Djundik
0d068f34a8
Merge pull request #1966 from thelounge/xpaw/no-session-convert
Remove session token hash conversion
2018-02-19 19:33:42 +02:00
Jérémie Astori
8403d277b4
Replace reference to website with new URL 2018-02-19 12:23:41 -05:00
Jérémie Astori
ab982ecc3c Remove deprecated support for CSS filenames in theme configuration 2018-02-19 19:17:45 +02:00
Pavel Djundik
2685f46669
Merge pull request #1834 from thelounge/astorije/rm-deprecated-options
Remove deprecated options for `thelounge start`
2018-02-19 19:10:14 +02:00
Pavel Djundik
3ccdee6f00
Merge pull request #1927 from thelounge/astorije/fix-ctcp
Fix CTCP commands always sent upper-case
2018-02-19 19:06:08 +02:00
Pavel Djundik
890555785d
Merge pull request #2069 from thelounge/greenkeeper/stylelint-9.0.0
Update stylelint to the latest version 🚀
2018-02-19 18:53:21 +02:00
Pavel Djundik
a09b21decd
Merge pull request #1733 from thelounge/astorije/home_option_env_var
Remove deprecated support for the `--home` option and `$LOUNGE_HOME` environment variable
2018-02-19 18:51:44 +02:00
Pavel Djundik
40f05b837d
Merge pull request #1729 from thelounge/astorije/rm-debug-deprecation
Remove deprecated support for `debug` as a boolean in the configuration file
2018-02-19 18:51:11 +02:00
Pavel Djundik
a145b8e27c
Merge pull request #1728 from thelounge/astorije/rm-autoload-deprecation
Remove autoload deprecation notice
2018-02-19 18:50:51 +02:00
Pavel Djundik
742929280d
Merge pull request #1919 from thelounge/yamanickill/image-size-error
Show error if image is greater than max prefetch size
2018-02-19 18:49:18 +02:00
Jérémie Astori
4196e627f9 Fix CTCP commands always sent upper-case
This is a Node v6+ only fix.
`irc-framework` upper-cases the first argument, and we were sending everything as a string in first argument. This correctly splits.
2018-02-19 18:43:52 +02:00
Jérémie Astori
559281bfb9
Merge pull request #2076 from thelounge/xpaw/no-scripts-coverage
Skip scripts folder from test coverage
2018-02-19 11:43:12 -05:00
Pavel Djundik
b82ceb162b
Merge pull request #2059 from thelounge/xpaw/motd
Render MOTD with a single message
2018-02-19 18:42:16 +02:00
greenkeeper[bot]
38e8c2eb41 chore(package): update stylelint to version 9.0.0 2018-02-19 18:41:51 +02:00
Pavel Djundik
0044be266e
Merge pull request #1727 from thelounge/astorije/node-6
Switch to Node v6 as the minimal supported version
2018-02-19 18:41:23 +02:00
Pavel Djundik
558a6fba0a
Merge pull request #1915 from thelounge/xpaw/aria-tablist
Turn channel list into an accessible tablist
2018-02-19 18:33:28 +02:00
Jérémie Astori
3cba89dc9e Add ES6-related ESLint rules 2018-02-19 18:30:00 +02:00
Jérémie Astori
416f45d1e3 Use some ES6/Node v4-only syntax when possible 2018-02-19 18:30:00 +02:00
Jérémie Astori
6013a02fc2 Exit the program when the Node.js version is incompatible with The Lounge 2018-02-19 18:30:00 +02:00
Jérémie Astori
c432ee431d Switch to Node v6 as the oldest version we support
Removed a deprecation notice I added in an earlier commit (ef1c59072c).
2018-02-19 18:30:00 +02:00
Jérémie Astori
421d2b7b70 Improve the Node version warning because why not
This makes the warning look nice and consistent with the other logs we display, while being safe to never break if a dependency/loaded file is not compatible with this version of Node.
Note that there is some ES6 syntax (`let`, arrow functions, template literals), but The Lounge has not been compatible with Node v0.10 for a very long time now.
2018-02-19 18:30:00 +02:00
Pavel Djundik
13a53706f0
Merge pull request #1760 from thelounge/astorije/rm-object.assign-polyfill
Get rid of `Object.assign` polyfill
2018-02-19 18:29:45 +02:00
Pavel Djundik
c6f6e8d8d2
Skip scripts folder from test coverage 2018-02-19 16:38:21 +02:00
Pavel Djundik
b57830b859 Sync network status and security to client UI
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-02-19 13:12:01 +02:00
Jérémie Astori
7b27e7d024
2.7.1 2018-02-18 21:12:11 -05:00
Jérémie Astori
837dad2535
Merge pull request #2072 from thelounge/astorije/changelog-2.7.1
Add changelog entry for v2.7.1
2018-02-18 21:09:15 -05:00
Jérémie Astori
3144882491
Add changelog entry for v2.7.1 2018-02-18 15:23:44 -05:00
Jérémie Astori
5669cf40db
Merge pull request #2071 from thelounge/xpaw/outgoing_addr
Fix bind not being passed to irc-framework
2018-02-18 11:21:10 -05:00
Pavel Djundik
f92aeceb22
Fix bind not being passed to irc-framework 2018-02-18 13:07:24 +02:00
Pavel Djundik
735393fb03
Merge pull request #2070 from thelounge/greenkeeper/stylelint-config-standard-18.1.0
Update stylelint-config-standard to the latest version 🚀
2018-02-18 12:40:34 +02:00
greenkeeper[bot]
44353772da chore(package): update stylelint-config-standard to version 18.1.0 2018-02-18 10:23:33 +00:00
Pavel Djundik
9905fdcbef
Merge pull request #1910 from thelounge/xpaw/user-scalable
Allow scaling the page
2018-02-18 10:07:43 +02:00
Pavel Djundik
e448dc711c Turn channel list into an accessible tablist 2018-02-18 09:58:44 +02:00
Pavel Djundik
23b59ece45
Allow scaling the page 2018-02-18 01:45:57 -05:00
Jérémie Astori
c8418a638d
Merge pull request #2058 from thelounge/xpaw/channel-state
Track channel state to allow removing channels user is not in
2018-02-17 19:27:09 -05:00
Pavel Djundik
c0442e4c99
Merge pull request #2066 from thelounge/xpaw/fix-509
Display password field when displayNetwork is false
2018-02-17 10:37:04 +02:00
Pavel Djundik
38bc8e6782 Display password field when displayNetwork is false
Fixes #509
2018-02-17 10:23:01 +02:00
Jérémie Astori
51ee504e90
Merge pull request #2068 from thelounge/greenkeeper/eslint-4.18.0
Update eslint to the latest version 🚀
2018-02-17 00:31:01 -05:00
Jérémie Astori
e7bcec77df
Merge pull request #2067 from thelounge/greenkeeper/mime-types-2.1.18
Update mime-types to the latest version 🚀
2018-02-17 00:29:59 -05:00
greenkeeper[bot]
a3fd86f9a9 chore(package): update eslint to version 4.18.0 2018-02-17 01:07:56 +00:00
greenkeeper[bot]
227c9263e5 fix(package): update mime-types to version 2.1.18 2018-02-16 17:35:16 +00:00
Pavel Djundik
5d2453347f
Merge pull request #2063 from thelounge/xpaw/install-exact-version
Provide exact version into `npm install` command
2018-02-14 12:39:05 +02:00
Pavel Djundik
0d074f1cbe Provide exact version into npm install command 2018-02-14 12:09:02 +02:00
Pavel Djundik
d1e5a8f492 Render MOTD with a single message 2018-02-14 11:00:46 +02:00
Pavel Djundik
116a73c8d0 Remove actionTypes and check templates directly 2018-02-14 11:00:45 +02:00
Jérémie Astori
3e713e8be8
Merge pull request #2061 from thelounge/greenkeeper/mocha-5.0.1
Update mocha to the latest version 🚀
2018-02-13 21:37:26 -05:00
greenkeeper[bot]
93131fb542 chore(package): update mocha to version 5.0.1 2018-02-14 02:18:02 +00:00
Pavel Djundik
72e5e9f237
Merge pull request #2055 from thelounge/xpaw/fix-2054
Fix border after nickname not taking full height
2018-02-13 16:22:43 +02:00
Pavel Djundik
939e2a00f3
Merge pull request #2060 from thelounge/xpaw/fix-themes
Fix themes not loading
2018-02-13 14:37:15 +02:00
Pavel Djundik
13e81e5a41 Fix themes not loading
Broken by e4701be708
2018-02-13 13:57:13 +02:00
Pavel Djundik
fa993c29d5 Trim MOTD to avoid empty line at the end 2018-02-13 12:38:33 +02:00
Pavel Djundik
f7449c565f Fix border after nickname not taking full height
Fixes #2054
2018-02-13 12:37:10 +02:00
Pavel Djundik
7e704b2d73 Track channel state to allow removing channels user is not in 2018-02-13 12:30:26 +02:00
Al McKinlay
865e5bb41b
Merge pull request #1933 from RockyTV/rockytv
Show channel name on channel-related errors
2018-02-13 10:03:20 +00:00
Pavel Djundik
4639a2528d
Merge pull request #2021 from thelounge/xpaw/ldapjs-no-dtrace
Use forked ldapjs to remove dtrace
2018-02-13 11:58:25 +02:00
Pavel Djundik
e4701be708
Merge pull request #2035 from thelounge/astorije/ensure-packages-are-dirs
Ensure packages loaded are directories
2018-02-13 11:32:02 +02:00
Jérémie Astori
6d931e8dcb
Make sure packages are correctly removed from package.json when uninstalled 2018-02-13 01:06:31 -05:00
Jérémie Astori
2c570fa9ef
Load packages from package.json, fix loading thelounge metadata from the wrong file, add tests 2018-02-13 01:06:31 -05:00
Jérémie Astori
b5d96d215f
Ensure packages loaded are directories 2018-02-13 01:06:30 -05:00
Alexandre Oliveira
c53015c1af Show channel name on channel-related errors
Fixes #1207
2018-02-12 15:22:31 -02:00
Jérémie Astori
0b3741859f
Merge pull request #2048 from thelounge/greenkeeper/copy-webpack-plugin-4.4.1
Update copy-webpack-plugin to the latest version 🚀
2018-02-11 03:48:19 -05:00
Jérémie Astori
f2ddb633b1
Merge pull request #2052 from thelounge/greenkeeper/webpack-3.11.0
Update webpack to the latest version 🚀
2018-02-10 13:57:08 -05:00
Jérémie Astori
1988bbd149
Merge pull request #2053 from thelounge/greenkeeper/urijs-1.19.1
Update urijs to the latest version 🚀
2018-02-10 13:55:46 -05:00
greenkeeper[bot]
03a99ecd60 fix(package): update urijs to version 1.19.1 2018-02-10 16:06:01 +00:00
greenkeeper[bot]
053e2ffbbf chore(package): update webpack to version 3.11.0 2018-02-10 15:31:49 +00:00
greenkeeper[bot]
12b5cbc40f chore(package): update copy-webpack-plugin to version 4.4.1 2018-02-08 15:09:03 +00:00
Jérémie Astori
82fc55c1f1
Merge pull request #2047 from thelounge/xpaw/off-img-event
Unbind image events after the image is loaded
2018-02-08 08:52:53 -05:00
Jérémie Astori
a15216493a
Merge pull request #2046 from thelounge/greenkeeper/copy-webpack-plugin-4.4.0
Update copy-webpack-plugin to the latest version 🚀
2018-02-08 08:18:17 -05:00
Pavel Djundik
12bbaef4ab Unbind image events after the image is loaded 2018-02-08 14:54:57 +02:00
greenkeeper[bot]
9c90e94ef8 chore(package): update copy-webpack-plugin to version 4.4.0 2018-02-08 10:40:42 +00:00
Pavel Djundik
f6051d3f6b
Merge pull request #2045 from thelounge/xpaw/pkg-subfolder
Make sure packages can be referenced in subfolders
2018-02-08 12:19:38 +02:00
Pavel Djundik
339f65295d
Make sure packages can be referenced in subfolders 2018-02-08 10:57:57 +02:00
Jérémie Astori
7883feca30
Merge pull request #2043 from thelounge/xpaw/preview-on-failed-img
Still render link previews if image fails to load
2018-02-08 01:55:02 -05:00
Pavel Djundik
14847260b6
Merge pull request #2042 from thelounge/xpaw/fix-2040
Fix crash when hostname is changed in lockNetwork mode
2018-02-07 23:03:55 +02:00
Pavel Djundik
85cb039426 Still render link previews if image fails to load 2018-02-07 17:40:15 +02:00
Pavel Djundik
aee1ec2739 Fix crash when hostname is changed in lockNetwork mode
Fixes #2040
2018-02-07 12:03:25 +02:00
Jérémie Astori
99ee31d795
Merge pull request #2041 from thelounge/greenkeeper/commander-2.14.1
Update commander to the latest version 🚀
2018-02-07 03:09:07 -05:00
greenkeeper[bot]
e28efe5e38 fix(package): update commander to version 2.14.1 2018-02-07 07:52:52 +00:00
Jérémie Astori
572c93d06b
Merge pull request #2039 from thelounge/xpaw/fix-1721
Fix duplicate chat containers and unread markers when reconnecting
2018-02-06 19:10:00 -05:00
Pavel Djundik
c4f6701d65 Use forked ldapjs to remove dtrace
Fixes #1756
2018-02-06 13:21:59 +02:00
Pavel Djundik
a9198b1cf6 Fix duplicate chat containers and unread markers when reconnecting
Fixes #1721
2018-02-06 11:10:11 +02:00
Pavel Djundik
79a2c72c06
Merge pull request #2038 from thelounge/greenkeeper/commander-2.14.0
Update commander to the latest version 🚀
2018-02-06 09:24:46 +02:00
Jérémie Astori
bbaea66d11
Merge pull request #2033 from thelounge/xpaw/fix-default-theme
Fix default theme not being correct
2018-02-06 00:26:14 -05:00
Jérémie Astori
b213e988ca
Merge pull request #2037 from thelounge/xpaw/fix-1501
Fix queries going to lobby if the network name matches user name
2018-02-05 23:47:55 -05:00
greenkeeper[bot]
72aa243666 fix(package): update commander to version 2.14.0 2018-02-06 01:33:31 +00:00
Pavel Djundik
b7ccb5a294 Fix queries going to lobby if the network name matches user name
Fixes #1501
Fixes #1983
2018-02-05 14:35:01 +02:00
Pavel Djundik
60777b9b1f Fix default theme not being correct 2018-02-04 19:54:07 +02:00
Pavel Djundik
dbb51e0f46
Merge pull request #2032 from thelounge/greenkeeper/lodash-4.17.5
Update lodash to the latest version 🚀
2018-02-04 10:22:17 +02:00
greenkeeper[bot]
c0749136fc fix(package): update lodash to version 4.17.5 2018-02-04 01:24:58 +00:00
Jérémie Astori
003ae7131b
Improve monospace formatting in messages
This effectively styles it just like to `code` syntax used in the Help window, such as in the list of available commands.
2018-02-03 12:53:33 -05:00
Jérémie Astori
cb4312f410
Merge pull request #2030 from thelounge/xpaw/fix-2028
Fix messages not being condensed correctly
2018-02-03 11:58:46 -05:00
Pavel Djundik
51d5a4eff4 Fix #2028 - Messages are not condensed correctly 2018-02-03 10:43:39 +02:00
Jérémie Astori
c6e282bffd
Merge pull request #2029 from thelounge/greenkeeper/eslint-4.17.0
Update eslint to the latest version 🚀
2018-02-03 00:12:55 -05:00
greenkeeper[bot]
349edad826 chore(package): update eslint to version 4.17.0 2018-02-03 04:22:32 +00:00
Jérémie Astori
ec70bd91a8
Merge pull request #2022 from thelounge/xpaw/not-loggable-types
Define which message types should not be logged
2018-02-02 00:47:07 -05:00
Jérémie Astori
91e3ca88bb
UI for "Image too large" errors 2018-02-01 21:14:37 -05:00
Al McKinlay
335bd803af
Show error if image is greater than max prefetch size 2018-02-01 21:09:45 -05:00
Pavel Djundik
6b024191c1
Merge pull request #2015 from thelounge/xpaw/jquery-deprecations
Remove deprecated jQuery calls
2018-02-01 12:30:37 +02:00
Pavel Djundik
6d6b5cb2a9 Remove deprecated jQuery calls
Fixes #2011
2018-02-01 12:15:51 +02:00
Pavel Djundik
1904e9b0ab
Merge pull request #2013 from thelounge/xpaw/fix-1959
Fix #1959: Do not block /join command from being sent
2018-02-01 10:08:22 +02:00
Pavel Djundik
e5fa6e32f9
Merge pull request #2027 from thelounge/xpaw/fix-auto-open-media
Fix auto-open media option not working
2018-02-01 10:07:51 +02:00
Pavel Djundik
1fdd1ff0c3 Define which message types should not be logged 2018-02-01 10:03:10 +02:00
Pavel Djundik
b4951b1f86 Fix auto-open media option not working
Bug introduced in ffa9685b41
2018-02-01 09:57:15 +02:00
Jérémie Astori
93265ef830
Merge pull request #2020 from thelounge/xpaw/fix-1991
Wait for server response when parting channels
2018-02-01 00:42:17 -05:00
Jérémie Astori
ede0f44ca2
Merge pull request #2025 from thelounge/xpaw/fix-2024
Fix #2024 - Send visible defaults when displayNetwork is false
2018-02-01 00:34:04 -05:00
Jérémie Astori
4f737ce5bb
Merge pull request #2023 from thelounge/xpaw/textcomplete-null
Fix textcomplete reference in autocompletion.disable
2018-02-01 00:31:03 -05:00
Pavel Djundik
e6241556be Fix #2024 - Send visible defaults when displayNetwork is false 2018-01-31 23:14:26 +02:00
Pavel Djundik
b765abcb65
Fix textcomplete reference in autocompletion.disable 2018-01-31 21:06:29 +02:00
Pavel Djundik
ffa9685b41
Merge pull request #1925 from thelounge/xpaw/img-preview-preload
Preload preview images before appending them to DOM
2018-01-31 10:07:20 +02:00
Pavel Djundik
33dbc80dbc Fix #1991: Wait for server response when parting channels 2018-01-31 10:04:54 +02:00
Jérémie Astori
c605f35335
Merge pull request #2019 from thelounge/yamanickill/save-queries
Save query channels in user.json
2018-01-30 19:27:28 -05:00
Jérémie Astori
dcdc1d150f
Merge pull request #1979 from thelounge/astorije/index
Do not statically serve the index template prior to rendering it
2018-01-30 19:21:07 -05:00
Al McKinlay
5cf24b80e6 Save query channels in user.json 2018-01-30 17:14:51 +00:00
Pavel Djundik
bc05ca1c63
Merge pull request #1988 from thelounge/greenkeeper/primer-tooltips-1.5.2
Update primer-tooltips to the latest version 🚀
2018-01-30 14:07:53 +02:00
Pavel Djundik
8f2caca6d7
Merge pull request #2014 from thelounge/yamanickill/2012-css-csp
Allow https css
2018-01-30 14:07:19 +02:00
Al McKinlay
72fafc5b4f Allow https css
Fixed #2012
2018-01-30 09:23:34 +00:00
Pavel Djundik
869e978a99
Fix #1959: Do not block /join command from being sent 2018-01-30 11:14:17 +02:00
Pavel Djundik
4f5807b8fe
Merge pull request #1856 from MaxLeiter/close-channel-tooltip
Add tooltip to channel close button
2018-01-30 11:12:30 +02:00
Jérémie Astori
8d124dd2a2
Merge pull request #1924 from thelounge/xpaw/img-decoding
Set decoding=async on image previews
2018-01-30 00:22:22 -05:00
Jérémie Astori
ff9dd3833e
Merge pull request #1993 from milindl/feat/chan-auto-current
Show channels for only active server in autocomplete
2018-01-30 00:12:45 -05:00
Jérémie Astori
a9e3b551e6
Merge pull request #1994 from thelounge/greenkeeper/jquery-3.3.1
Update jquery to the latest version 🚀
2018-01-30 00:08:20 -05:00
Jérémie Astori
90c3c3b22e
Merge pull request #2010 from thelounge/xpaw/start_url
Set start_url in manifest.json
2018-01-29 18:17:01 -05:00
Pavel Djundik
43aceccb41
Set start_url in manifest.json 2018-01-29 19:46:54 +02:00
Max Leiter
8057c416fb Add tooltip to close channel/leave query button on sidebar 2018-01-29 09:36:09 -08:00
Pavel Djundik
25460156cb
Merge pull request #1985 from thelounge/greenkeeper/semver-5.5.0
Update semver to the latest version 🚀
2018-01-29 16:33:05 +02:00
Jérémie Astori
15ea2db31b
Merge pull request #1999 from thelounge/astorije/fix-timestamp-tooltip
Fix timestamp tooltips not aligning correctly with timestamps
2018-01-29 01:07:55 -05:00
Jérémie Astori
2640c2a15e
Merge pull request #1955 from thelounge/xpaw/fix-touch-select
Prevent user contextmenu from opening while selecting text
2018-01-29 01:07:36 -05:00
Jérémie Astori
46931b0a7d
Merge pull request #1989 from thelounge/greenkeeper/mocha-5.0.0
Update mocha to the latest version 🚀
2018-01-29 01:06:08 -05:00
Jérémie Astori
f7429ab80b
Merge pull request #1992 from thelounge/greenkeeper/eslint-4.16.0
Update eslint to the latest version 🚀
2018-01-29 01:05:11 -05:00
Jérémie Astori
ede37b9cb6
Merge pull request #1931 from thelounge/astorije/build-views
Build template list at Webpack time instead of manually keeping this in sync with the views folders
2018-01-29 01:04:06 -05:00
Jérémie Astori
9e49ee28e8
2.7.0 2018-01-28 23:11:58 -05:00
Jérémie Astori
73962bb835
Merge pull request #2002 from thelounge/astorije/changelog-2.7.0
Changelog entry for v2.7.0
2018-01-28 23:09:52 -05:00
Jérémie Astori
1d7a7a89a6
Add changelog entry for v2.7.0 2018-01-28 22:19:08 -05:00
Jérémie Astori
275d80b412
Add thelounge keyword to package.json for npm registry 2018-01-27 16:32:47 -05:00
Jérémie Astori
befafade31
Slightly improve the changelog script, by splitting uncategorized items
I have more substantial ideas for future changelogs, but this already helped me for v2.7.0 changelog, and it is as far as I can go without editing the changelogs themselves. Stay tuned.
2018-01-27 16:32:47 -05:00
Jérémie Astori
c809d4beaf
Fix a bug with the changelog script, on commit pagination 2018-01-27 16:32:47 -05:00
Jérémie Astori
65c6774af0
Remove pre-release dist-tag for release of v2.7.0 stable 2018-01-27 16:32:46 -05:00
Jérémie Astori
449a59ae72
2.7.0-rc.3 2018-01-27 00:05:37 -05:00
Jérémie Astori
2eb13801ad
Add changelog entry for v2.7.0-rc.3 2018-01-27 00:02:00 -05:00
Jérémie Astori
991ec5315d
Merge pull request #2006 from thelounge/yamanickill/2005-expand
Stop expanding condensed messages on /expand
2018-01-26 19:56:37 -05:00
Alistair McKinlay
0b83ba6a40 Stop expanding condensed messages on /expand 2018-01-26 08:52:51 +00:00
Jérémie Astori
5722bd9845
Allow timestamp tooltips to expand beyond message boundaries 2018-01-24 00:22:18 -05:00
Jérémie Astori
6bfd6ed473
Fix timestamp tooltips not aligning correctly with timestamps 2018-01-23 00:49:17 -05:00
greenkeeper[bot]
25f02eb211 chore(package): update jquery to version 3.3.1 2018-01-20 17:37:32 +00:00
milindl
d6d54c2c56 Show channels for only active server in autocomplete
Fix #1381.
2018-01-20 18:24:21 +05:30
greenkeeper[bot]
cfca2fa155 chore(package): update eslint to version 4.16.0 2018-01-20 06:15:08 +00:00
Jérémie Astori
b2eebfa65e
2.7.0-rc.2 2018-01-19 23:33:00 -05:00
Jérémie Astori
54af12b329
Add changelog entry for v2.7.0-rc.2 2018-01-19 23:30:33 -05:00
Jérémie Astori
25d69438b8
Merge pull request #1986 from thelounge/astorije/fix-deleting-package
Make sure existing packages (and themes) are not deleted when installing a new one on Node.js v8
2018-01-18 01:30:17 -05:00
greenkeeper[bot]
710ba10772 chore(package): update mocha to version 5.0.0 2018-01-18 06:10:02 +00:00
greenkeeper[bot]
9946b918d7 fix(package): update primer-tooltips to version 1.5.2 2018-01-18 00:44:09 +00:00
Jérémie Astori
432023fc7e
Make sure existing packages (and themes) are not deleted when installing a new one on Node.js v8
- When installing a package on Node v8 (or whatever npm version ships with it - v5), all packages not listed in `package.json` are removed. Since we explicitly added `--no-save`, installing a theme would delete the previous one. I am now checking that the file already exists or not. This means that it will still happen to people the next time they run `thelounge install`, because the previous install did not save into `package.json` :/
- Adding `--save` to make sure that the same, correct behavior is done on Node v6 as well (npm v3)
- Adding `--save-exact` for good measure.
2018-01-16 20:25:35 -05:00
greenkeeper[bot]
d3cbcfcc8b fix(package): update semver to version 5.5.0 2018-01-16 20:35:46 +00:00
Pavel Djundik
33de4840c6
Merge pull request #1984 from thelounge/astorije/vulnerability-disclosure
Add SECURITY guidelines about security vulnerability disclosures, and link them from the CONTRIBUTING guidelines
2018-01-16 10:35:12 +02:00
Jérémie Astori
fda03b8362
Add SECURITY guidelines about security vulnerability disclosures, and link them from the CONTRIBUTING guidelines 2018-01-15 20:26:26 -05:00
Jérémie Astori
33d82287be
Do not statically serve the index template prior to rendering it
Without this, going to `https://thelounge.example.com/index.html` would return the raw file. This now excludes it from the `public` folder so it cannot be rendered as is.
Renaming the file is for good measure, to indicate that this HTML file must be templated. Because it is a straight rename with no modification, rebasing PRs on it should not be to painful, as git re-applies changes on renamed files.
2018-01-14 13:02:27 -05:00
Jérémie Astori
7a691b8e6c
2.7.0-rc.1 2018-01-13 19:23:24 -05:00
Jérémie Astori
aac4025c59
Add changelog entry for v2.7.0-rc.1 2018-01-13 19:23:06 -05:00
Jérémie Astori
42199eda29
Merge pull request #1978 from merlinthp/chpass_callback
Add missing execution of callback in ClientManager.updateUser
2018-01-13 18:47:01 -05:00
Howard Johnson
10d43f27ed Add missing executions of callback in ClientManager.updateUser
Signed-off-by: Howard Johnson <merlin@merlinthp.org>
2018-01-13 23:05:23 +00:00
Pavel Djundik
1aaa9391db
Merge pull request #1970 from thelounge/astorije/fix-themes
Fix local themes not being found in theme selector dropdown, and serve local themes using the themes route instead of the public folder
2018-01-13 23:09:55 +02:00
Jérémie Astori
c49239b4f1
Fix themes not being found in theme selector dropdown 2018-01-13 13:45:30 -05:00
Jérémie Astori
f8c66aa512
Merge pull request #1975 from thelounge/xpaw/fix-1902
Fix enabling push notifications on Firefox
2018-01-13 13:14:33 -05:00
Jérémie Astori
503c1538f5
Merge pull request #1974 from thelounge/astorije/fix-uninstall
Fix `thelounge uninstall` command
2018-01-13 13:13:19 -05:00
Jérémie Astori
45dc52886e
Fix thelounge uninstall command
- Exit with code 1 when package was not installed
- Run a pre-step to check if package is installed before uninstalling. I have tried every possible way I could think of without that first `npm list` step based on output of `npm uninstall`, but different npm versions produce different outputs, so there is nothing reliable. This is a more robust way to do so anyway.
- Consolidate error handlers
2018-01-13 02:00:37 -05:00
Pavel Djundik
8d0bdfc200 Fix #1902 - unable to enable push notifications on Firefox 57 2018-01-12 12:04:04 +02:00
Jérémie Astori
3eb017caf8
Merge pull request #1964 from thelounge/sign-git-tag
Set sign-git-tag to true in .npmrc
2018-01-11 23:50:17 -05:00
Jérémie Astori
d1c7613535
Merge pull request #1963 from thelounge/greenkeeper/commander-2.13.0
Update commander to the latest version 🚀
2018-01-11 23:36:42 -05:00
Jérémie Astori
edaa8119af
Merge pull request #1965 from thelounge/greenkeeper/ldapjs-1.0.2
Update ldapjs to the latest version 🚀
2018-01-11 23:17:50 -05:00
Pavel Djundik
59a1a9cd36 Fix #1958: Remove session token hash conversion 2018-01-11 21:44:00 +02:00
greenkeeper[bot]
fd6f740d36 fix(package): update ldapjs to version 1.0.2 2018-01-11 18:41:53 +00:00
Pavel Djundik
cdd9418bb0
Set sign-git-tag to true in .npmrc 2018-01-11 17:12:04 +02:00
greenkeeper[bot]
c4b5671aef fix(package): update commander to version 2.13.0 2018-01-11 15:08:34 +00:00
Pavel Djundik
98c3108bde
Merge pull request #1940 from thelounge/xpaw/fix-1934
Hash user tokens, increase token entropy
2018-01-11 13:34:14 +02:00
Jérémie Astori
40aadf7c95
Merge pull request #1619 from thelounge/1447-css-plugin
Allow custom css from plugins
2018-01-10 21:44:47 -05:00
Jérémie Astori
6cbc2eeef3
Merge pull request #1956 from thelounge/xpaw/fix-notif-timestamp
Provide correct timestamp to browser notifications
2018-01-10 21:42:23 -05:00
Pavel Djundik
eac092e661 Hash user tokens, increase token entropy
Fixes #1934
2018-01-10 15:54:52 +02:00
Pavel Djundik
31c33e43d5 Provide correct timestamp to browser notifications 2018-01-09 18:47:13 +02:00
Pavel Djundik
e77de3315a Prevent user contextmenu from opening while selecting text 2018-01-09 18:16:20 +02:00
Jérémie Astori
b3702b0550
Merge pull request #1938 from thelounge/astorije/uninstall-packages
Add a `thelounge uninstall` command to remove themes and packages
2018-01-09 00:51:27 -05:00
Jérémie Astori
b8bd6fccbb
Merge pull request #1949 from thelounge/xpaw/no-history-spam
Only emit "more" history to the client that requested it
2018-01-07 13:37:36 -05:00
Pavel Djundik
fc39a67e10 Only emit "more" history to the client that requested it 2018-01-07 15:06:59 +02:00
Jérémie Astori
011b086760
Merge pull request #1947 from thelounge/greenkeeper/eslint-4.15.0
Update eslint to the latest version 🚀
2018-01-07 01:18:34 -05:00
greenkeeper[bot]
41d872bcaf chore(package): update eslint to version 4.15.0 2018-01-07 02:37:59 +00:00
Jérémie Astori
d2388dc623
Bail when uninstalling if package.json for TL packages does not exist
It is on purpose that the message is the same than when a package was not installed. From a user standpoint, it only matters that this specific package was not installed.
2018-01-06 12:12:10 -05:00
Jérémie Astori
3971ecff63
Customize a bit thelounge install|uninstall
- Hides progress bars that flash when installing/uninstalling as it does not bring real value here, at least for now
- Inform user if package being uninstalled was not actually installed
- Do not display npm outputs, mention which version was installed (this will probably need refining when installing packages with dependencies)
2018-01-06 12:12:10 -05:00
Jérémie Astori
d9cb640c2a
Add a thelounge uninstall command to remove themes and packages 2018-01-06 12:12:09 -05:00
Pavel Djundik
52b3ef18f7
Merge pull request #1941 from thelounge/xpaw/fix-log-from
Fix nicknames in text logs
2018-01-05 20:47:30 +02:00
Al McKinlay
3510094665 Allow custom css from plugins 2018-01-05 17:40:47 +00:00
Pavel Djundik
4307bb0563
Fix nicknames in text logs 2018-01-05 15:41:03 +02:00
Pavel Djundik
628ef7aa66
Merge pull request #1937 from thelounge/greenkeeper/irc-framework-2.10.3
Update irc-framework to the latest version 🚀
2018-01-05 11:32:23 +02:00
Jérémie Astori
ede032a7f4
Merge pull request #1917 from williamboman/fix/css-animation-jitter
fix animation jitter when clicking join channel button
2018-01-04 19:56:55 -05:00
greenkeeper[bot]
37cc576af1 fix(package): update irc-framework to version 2.10.3 2018-01-04 14:52:22 +00:00
William Boman
dfe4b2f6d6 fix animation jitter when clicking join channel button 2018-01-04 10:53:07 +01:00
Jérémie Astori
313a321918
Merge pull request #1916 from williamboman/fix/no-autocomplete-channel-join
views/join_channel: disable autocompletion of form inputs
2018-01-04 00:29:52 -05:00
Pavel Djundik
0854bd359b
Merge pull request #1926 from thelounge/xpaw/image-extension
Store images with correct file extension
2018-01-03 17:47:45 +02:00
Pavel Djundik
6675ced196 Store images with correct file extension 2018-01-03 13:33:52 +02:00
Jérémie Astori
a122ed5b7f
Build template list at Webpack time instead of manually keeping this in sync with the views folders 2018-01-02 01:38:57 -05:00
Jérémie Astori
068b842561
Merge pull request #1914 from thelounge/astorije/changelog-prerelease-wording
Separate and improve wording for `pre` and `rc` pre-release versions
2018-01-01 20:37:29 -05:00
Pavel Djundik
f38fa9b98e Set decoding=async on image previews 2017-12-29 21:57:52 +02:00
Jérémie Astori
50d8bf5191
Merge pull request #1923 from thelounge/astorije/bump-primer-tooltips
Update primer-tooltips to the latest version
2017-12-29 14:13:05 -05:00
Pavel Djundik
e98291dd3f Preload preview images before appending them to DOM 2017-12-29 12:30:15 +02:00
Jérémie Astori
9ca08ae434
Update primer-tooltips to the latest version
Only changes between v1.5.0 and v1.5.1 (according to https://github.com/primer/primer/commits/master/modules/primer-tooltips) are:

- https://github.com/primer/primer/pull/394
- https://github.com/primer/primer/pull/409

So we are not affected.
2017-12-29 02:20:21 -05:00
Jérémie Astori
49135f4d77
Merge pull request #1922 from thelounge/greenkeeper/mocha-4.1.0
Update mocha to the latest version 🚀
2017-12-29 02:15:18 -05:00
greenkeeper[bot]
168bd1b3ab chore(package): update mocha to version 4.1.0 2017-12-29 05:18:38 +00:00
Pavel Djundik
dafca48061
Merge pull request #1921 from thelounge/astorije/fix-stylelint
Fix stylelint
2017-12-29 00:29:06 +02:00
Jérémie Astori
5c9e985999
Separate and improve wording for pre and rc pre-release versions 2017-12-28 17:26:32 -05:00
Jérémie Astori
0a8cccf5d7
Remove CLI option of Stylelint that currently makes it a noop 2017-12-28 17:07:37 -05:00
Jérémie Astori
04fee16fec
Fix CSS currently failing Stylelint checker 2017-12-28 17:07:08 -05:00
Jérémie Astori
dd40011967
Merge pull request #1913 from thelounge/astorije/changelog-script
Allow keywords as changelog script version argument, e.g. `node scripts/changelog pre`
2017-12-28 15:26:38 -05:00
Jérémie Astori
7346866f03
Merge pull request #1905 from thelounge/xpaw/mute-disabled-inputs
Mute disabled inputs
2017-12-28 15:21:05 -05:00
William Boman
f3b64958cb views/join_channel: disable autocompletion of form inputs 2017-12-28 13:51:28 +01:00
Pavel Djundik
069cb6192f Mute disabled inputs 2017-12-28 10:44:37 +02:00
Jérémie Astori
322987a204
Merge pull request #1906 from thelounge/xpaw/aria-label-input
Set aria-label on main input
2017-12-28 00:13:52 -05:00
Jérémie Astori
a2b03a5de6
Merge pull request #1908 from thelounge/xpaw/user-css-label
Add screen reader label for custom css textarea
2017-12-28 00:12:20 -05:00
Jérémie Astori
470f2dd814
2.7.0-pre.4 2017-12-27 19:39:36 -05:00
Jérémie Astori
b47538860e
Add changelog entry for v2.7.0-pre.4 2017-12-27 19:39:07 -05:00
Jérémie Astori
dbd07d55e3
Allow keywords as changelog script version argument, e.g. node scripts/changelog pre 2017-12-27 19:18:07 -05:00
Pavel Djundik
3cd99816b8
Add screen reader label for custom css textarea 2017-12-27 22:48:03 +02:00
Pavel Djundik
48ebde6008
Add log role to message container
Fixes #936
2017-12-27 22:43:21 +02:00
Pavel Djundik
bd9e219d92 Set aria-label on main input 2017-12-27 22:34:19 +02:00
Jérémie Astori
835236f8ac
Merge pull request #1901 from thelounge/xpaw/fix-nicks-match
Do not match nicknames incorrectly as part of a bigger word
2017-12-27 14:32:59 -05:00
Jérémie Astori
b02b47c822
Merge pull request #1904 from thelounge/astorije/csp-video-controls
Make sure data URIs are allowed by CSP not to block video controls
2017-12-27 14:31:44 -05:00
Jérémie Astori
dab4fc44ea
Make sure data URIs are allowed by CSP not to block video controls 2017-12-27 13:56:38 -05:00
Pavel Djundik
349136f172 Do not match nicknames incorrectly as part of a bigger word
Fixes #1776
Fixes #1885
2017-12-27 20:44:59 +02:00
Jérémie Astori
c17d7bddae
Merge pull request #1899 from thelounge/astorije/improve-init
Improve a bit window loading on init
2017-12-27 13:31:25 -05:00
Pavel Djundik
9f99b165c9
Merge pull request #1903 from thelounge/greenkeeper/graphql-request-1.4.1
Update graphql-request to the latest version 🚀
2017-12-27 19:20:46 +02:00
greenkeeper[bot]
84587ea0a1 chore(package): update graphql-request to version 1.4.1 2017-12-27 09:31:50 +00:00
Pavel Djundik
d16b18de78 Open context menu inside of chats on sidebar item 2017-12-26 20:40:02 +02:00
Jérémie Astori
a392b9f35f
Improve a bit window loading on init 2017-12-25 18:19:12 -05:00
Jérémie Astori
1fc2051c1d
Merge pull request #1897 from thelounge/astorije/improve-version-checker
Improve the version checking and changelog features
2017-12-25 17:57:27 -05:00
Jérémie Astori
f725e944dd
Add (semi-working) image viewer support for images shown in changelogs
Semi-working because this does not support Preview/Next. The existing image viewer is very custom to in-channel message previews and expects a certain markup, that needs rework tobe more generic.
2017-12-25 17:44:55 -05:00
Jérémie Astori
3eb429dde3
Make sure all links will open a new tab instead of exiting the application 2017-12-25 17:44:55 -05:00
Jérémie Astori
238e894377
Improve the version checking part of the changelog feature
- There is no client caching of the changelog/version anymore. Instead, server returns the expiration date of its cache, and that is used by the client as well.
- There is now a "Check now" button on the client that appears when data is stale. This means that info is fetched only once and never refreshed (it was refreshed every hour before) unless the user explicitly wants to check latest version, which in turn is as stale as server info is, i.e. 15 minutes max.
- Button style is shared with the "Join a channel" feature, `.btn-small` (not `.btn-sm` to be explicit that this is not a Bootstrap thing).
- Version checker content is now centralized in the `version_checker` template, instead of being partially in the checker template, partially in the Help template,  and partially in the code.
- A "Try again" button lets user attempt to fetch info instead of forcing them to reload the page.
- Use Flexbox to display a nicer version checker: icon is slightly bigger, and button is always aligned on the right.
- Changelog logic has been removed from `lounge.js` and moved into the component file.
- Changelog template is only passed what it needs instead of everything the server gives us.
- Public version now displays version checker, since server is caching things.
- Cleaner code overall.
2017-12-25 17:44:53 -05:00
Pavel Djundik
3c8fcadfe8
Merge pull request #1895 from thelounge/xpaw/sw-notification-focus
Open and focus correct channel when clicking on push notifications
2017-12-25 11:59:47 +02:00
Pavel Djundik
d2106f1782
Merge pull request #1896 from thelounge/xpaw/fix-push-error
Fix error not showing up in failed push subscription
2017-12-24 22:53:04 +02:00
Pavel Djundik
80c11f2bde Fix error not showing up in failed push subscription 2017-12-24 22:12:36 +02:00
Jérémie Astori
ff6d6e3e82
Merge pull request #1887 from thelounge/greenkeeper/eslint-4.14.0
Update eslint to the latest version 🚀
2017-12-24 14:53:01 -05:00
Jérémie Astori
12dd11bd10
Merge pull request #1889 from thelounge/astorije/fix-window-on-load
Display the correct window on page reload
2017-12-24 14:47:13 -05:00
Pavel Djundik
f81f083b24 Open and focus correct channel when clicking on push notifications
Affects all notifications sent via service workers

Fixes #1550
2017-12-24 16:06:23 +02:00
Jérémie Astori
7d49730bad
Merge pull request #1892 from thelounge/astorije/fix-slideout
Fix slideout not closing on mobile when hitting a footer icon
2017-12-24 02:59:36 -05:00
Jérémie Astori
7f165a7593
Fix slideout not closing on mobile when hitting a footer icon
Introduced by 9691df67e3 (diff-e5178f7b7).
Seriously...
2017-12-24 02:51:58 -05:00
Jérémie Astori
d1c2f0df72
Display the correct window on page reload
This commit packs 2 fixes:

- Reloading the page while viewing the settings or help window would now send you to a channel window. This was broken when fixing an issue with the "Join a channel..." form
- Reloading the page while viewing the changelog would also send you to a channel window. This is because, on reload, the click emitted was restricted to sidebar and footer, while it had to be emitted from the help page. It is yet another aspect of our wonky window management and hopefully we can make this much more robust with a better overall solution.
2017-12-23 20:46:43 -05:00
greenkeeper[bot]
7dec39a499 chore(package): update eslint to version 4.14.0 2017-12-23 23:31:34 +00:00
Pavel Djundik
7c2422ee19
Merge pull request #1881 from thelounge/astorije/fix-join-channel-load
Fix join channel UI opening by itself
2017-12-23 23:17:21 +02:00
Jérémie Astori
32a95c4d75
Merge pull request #1327 from thelounge/xpaw/view-changelog
Changelog viewer and updater checker in the client
2017-12-23 16:13:29 -05:00
Pavel Djundik
c14c3b73d2
Merge pull request #1882 from thelounge/astorije/join-ui-message
Improve wording of join channel UI form restrictions
2017-12-23 21:10:02 +02:00
Jérémie Astori
4b34a093c9
Reduce changelog client cache to 1h since as there is also server caching now 2017-12-23 13:38:34 -05:00
Jérémie Astori
57c24704af
Cache changelog information on the server for 15 minutes 2017-12-23 13:37:33 -05:00
Jérémie Astori
0cbe0cb24e
Merge pull request #1884 from thelounge/xpaw/fix-1883
Fix #1883: message gaps when reconnecting
2017-12-23 13:10:17 -05:00
Pavel Djundik
18d135ca92
Merge pull request #1880 from thelounge/astorije/client-settings-tooltip
Rename "Client Settings" into "Settings" in tooltip + cleanup
2017-12-23 11:38:31 +02:00
Pavel Djundik
6377e0de66 Fix #1883: message gaps when reconnecting 2017-12-23 11:36:52 +02:00
Jérémie Astori
7fa30980aa
Improve wording of join channel UI form restrictions
This gives a more actionable message to the user if they do not enter a valid value.
2017-12-23 03:05:29 -05:00
Jérémie Astori
6c50fe72b9
Fix join channel UI opening by itself
Without this, `target` was matching all of the lobby link, the "Join a channel..." button, and the join form submit button. This change restricts to the first one.
2017-12-23 03:00:16 -05:00
Jérémie Astori
685951966b
Rename "Client Settings" into "Settings" in tooltip, cleanup 2017-12-22 22:53:56 -05:00
Jérémie Astori
9691df67e3
Improve UI of the About section and changelog viewer
- Keep consistent width between the Help page and Changelog (which is already different from other windows 😠)
- Add icons to the About links
- Make sure `li` elements (i.e. all the lists in changelogs) are consistent in size with rest of the client
- Display version and release notes link on the "About The Lounge" header line, smaller, pushed to the right
- Check new releases when opening the Help window in order to display it without having to open the release notes. Release notes are being fed to the Changelog page at that moment to avoid fetching twice.
- Re-check version/fetch release notes after 24h. Since The Lounge can now run 24/7, reconnect when losing the network, we have to assume an "always-on" usage.
- Change icon, animate background color when getting response from GitHub to avoid flashing.
- Combine click handlers with our wonderful window management. These were the same handler, even with similar checks (`target` exists, etc.), just in 2 different places. This is necessary for the next item.
- Combine "Open release notes" and "Go back to Help" button behaviors with window management handlers. The window management code is gross as ever, and is in desperate need of a refactor, but at least there is no duplicated code for the same behavior + history management. This fixes the "Next" history behavior (however reloading the app while viewing the notes does not load on the notes, but this is a bug for a different PR!).
- Added a rule in the history management thingy: if a link we want to add history handling to has an `id`, store that in the state
- Added a button to go back to the Help window
- Fixed links to releases
- Send user to the GitHub issues *list* instead of *new issue form* because if they do not have a GitHub account, they will be redirected to the login page, which is a rather unpleasant experience when you are already confused...
- Fixed a bug that would return data about a new release in `latest` even though it is already the `current`. It was showing the current version as "The Lounge v... is now available".
- Added https://user-images.githubusercontent.com to the CSP rule when prefetch storage is enabled, because that is where we have stored screenshots in the changelog so far. Meh (we can improve that later if we decide to have a dedicated place for screenshots).
- Fetch changelog info even in public mode because users in public mode can access the release notes. They do not see the result of the version checker however.
2017-12-22 22:46:11 -05:00
Jérémie Astori
cbe9a4e221
Support pre blocks in our style
We use this in our changelogs. Style for this is straight from Bootstrap 3 minus the border.
2017-12-22 22:04:41 -05:00
Pavel Djundik
df858a5aaf
Add changelog viewing and update checking 2017-12-22 16:26:12 -05:00
Jérémie Astori
5490235f4d
Merge pull request #1836 from MaxLeiter/join_channel
Join channel UI
2017-12-22 13:13:34 -05:00
Jérémie Astori
47f95c234d
Call the openForm function specifically when clicking on the context menu instead of relying on click handler
Not defining a `toggleForm` function has the advantage of "fixing" the fact that clicking "Join a channel..." from the context menu would close it when it was already open
2017-12-22 12:18:49 -05:00
Jérémie Astori
1063d7b1d6
Mark the channel field of "Join a channel" UI as required 2017-12-22 12:18:48 -05:00
Jérémie Astori
a03f894888
Change content of tooltip and button when opening/closing join channel form 2017-12-22 12:18:48 -05:00
Jérémie Astori
d2b0385431
Add a keyboard handler to close the join form when hitting "Escape" 2017-12-22 12:18:48 -05:00
Jérémie Astori
9ea3966140
Move the join channel form to its own component 2017-12-22 12:18:47 -05:00
Jérémie Astori
522bba694b
Use an ellipsis for change nick and join channel tooltips 2017-12-22 12:18:47 -05:00
Jérémie Astori
3307ced4d8
Remove background on close/join-channel sidebar buttons 2017-12-22 12:18:47 -05:00
Max Leiter
3fde87efbc
Add join channel UI via context menu or plus button next to lobbys 2017-12-22 12:18:46 -05:00
Al McKinlay
148628c49f
Merge pull request #1877 from thelounge/greenkeeper/copy-webpack-plugin-4.3.1
Update copy-webpack-plugin to the latest version 🚀
2017-12-22 13:18:08 +00:00
greenkeeper[bot]
5edc8914b9 chore(package): update copy-webpack-plugin to version 4.3.1 2017-12-22 12:40:39 +00:00
Pavel Djundik
18a9a82c26
Merge pull request #1876 from thelounge/xpaw/notequal-lobby
Use notEqual helper for close button
2017-12-22 13:57:43 +02:00
Pavel Djundik
aad9033d06
Use notEqual helper for close button 2017-12-22 12:30:23 +02:00
Pavel Djundik
06becc798f
Merge pull request #1874 from thelounge/astorije/handlebars-notEqual
Add a `notEqual` block helper for Handlebars and tests for `equal`
2017-12-22 12:28:15 +02:00
Al McKinlay
8004e051aa
Merge pull request #1833 from Cldfire/master
Remove lobby close button
2017-12-22 10:18:29 +00:00
Al McKinlay
8ac0586464
Merge pull request #1875 from MiniDigger/patch-1
Fix incorrect documentation url in default config
2017-12-22 10:17:49 +00:00
MiniDigger
9517360531
Fix incorrect documentation url in default config 2017-12-22 10:16:09 +01:00
Jérémie Astori
371c5bcac2
Add a notEqual block helper for Handlebars 2017-12-21 22:09:08 -05:00
Jérémie Astori
6d053d65e7
Add tests for the Handlebars helper equal 2017-12-21 20:09:12 -05:00
Jérémie Astori
8652ca6968
Merge pull request #1845 from thelounge/astorije/error-loading
Improve error page at loading time
2017-12-21 19:23:41 -05:00
Jérémie Astori
f975426c61
Rename the error handlers file at loading time 2017-12-21 18:23:54 -05:00
Jérémie Astori
84db8d8866
Wrap entire error loading script in anonymous function to avoid leaks 2017-12-21 18:23:52 -05:00
Jérémie Astori
0ffd4d60d9
Improve error page at loading
- Display the "Reload page" instantly and not after 5 seconds
- Remove stack trace, buggy anyway
- Wrap the error details so it does not expand beyond boundaries (scrollbar would not show up either)
- Do not show the slow-loading warning on error
- Make zeeoe details selectable instead of editable
- Label improvements
2017-12-21 18:22:53 -05:00
Jérémie Astori
da7481c23c
Merge pull request #1850 from thelounge/xpaw/whois-dl
Format whois as a definition list
2017-12-21 18:05:01 -05:00
Jérémie Astori
3f9a8d6066
Merge pull request #1871 from thelounge/astorije/focus-buttons
Add visual feedback on focused buttons, for example when tabbing to it
2017-12-21 16:56:02 -05:00
Jérémie Astori
98cab94f9b
Add visual feedback on focused buttons, for example when tabbing to it 2017-12-21 16:38:20 -05:00
Pavel Djundik
56b5a13abc
Merge pull request #1855 from MaxLeiter/primer-npm
Update to primer on npm
2017-12-21 16:41:54 +02:00
Max Leiter
32b4349130 Update to primer on npm, set tooltipped-no-delay for all tooltips 2017-12-20 22:04:13 -08:00
Jérémie Astori
31f1c2bf2b
Merge pull request #1858 from thelounge/yamanickill/context-menu-banlist
Add banlist context menu item if user isn't normal user
2017-12-20 20:13:55 -05:00
Al McKinlay
96adc56cd7
Merge pull request #1865 from thelounge/xpaw/proper-msg-from-fix
Correctly fix `from` field in messages
2017-12-20 12:07:48 +00:00
Pavel Djundik
dc8c10f461 Correctly fix from field in messages
This should have been in #1859
2017-12-20 13:45:17 +02:00
Al McKinlay
5084037cdc Add banlist context menu item 2017-12-20 09:53:28 +00:00
Jérémie Astori
09b2cd7527
Merge pull request #1863 from thelounge/greenkeeper/nyc-11.4.1
Update nyc to the latest version 🚀
2017-12-20 01:16:23 -05:00
greenkeeper[bot]
4a2101e3fc chore(package): update nyc to version 11.4.1 2017-12-20 05:35:33 +00:00
Jérémie Astori
70f3d7d6cc
Merge pull request #1859 from thelounge/xpaw/msg-user
Fix possible issues with `from` in messages
2017-12-19 19:30:52 -05:00
Jérémie Astori
2ca5b3d407
Merge pull request #1857 from thelounge/greenkeeper/moment-2.20.1
Update moment to the latest version 🚀
2017-12-19 19:29:05 -05:00
Pavel Djundik
ce5d18c4fa Fix possible issues with from in messages 2017-12-19 13:45:33 +02:00
Pavel Djundik
602c50989f
Merge pull request #1854 from thelounge/greenkeeper/textcomplete-0.16.0
Update textcomplete to the latest version 🚀
2017-12-19 13:19:56 +02:00
greenkeeper[bot]
cbca3887ae fix(package): update moment to version 2.20.1 2017-12-19 04:51:37 +00:00
Jérémie Astori
a5dea8caa0
Update how textcomplete gets imported per the v0.16 changes
See ab6509782a (diff-04c6e90faa)
2017-12-18 23:15:08 -05:00
greenkeeper[bot]
461d61d6f5 chore(package): update textcomplete to version 0.16.0 2017-12-19 01:32:34 +00:00
Jérémie Astori
95ff256e68
Merge pull request #1853 from thelounge/xpaw/clear-storage
Clear storage folder after successful start and graceful exit
2017-12-18 19:31:46 -05:00
Pavel Djundik
2b7657a9e7 Format whois as a definition list 2017-12-18 19:40:01 +02:00
Pavel Djundik
c06fb9a275 Clear storage folder after successful start and graceful exit 2017-12-18 16:59:05 +02:00
Al McKinlay
ada870e959
Merge pull request #1843 from thelounge/astorije/time-status-mobile
Add missing time (and icon) of status messages on mobile
2017-12-18 14:00:14 +00:00
Jérémie Astori
36be7565a7
Merge pull request #1691 from realies/patch-2
fix gap between #sidebar and #footer
2017-12-18 00:06:14 -05:00
Cldfire
daa45c13fd Remove lobby close button
Without cheating and doing `display: none` this time around.
2017-12-17 22:28:56 -05:00
Jérémie Astori
27b6849678
Merge pull request #1799 from thelounge/xpaw/nick-postfix
Insert user-configurable string when autocompleting nicks
2017-12-17 20:22:30 -05:00
Pavel Djundik
b5ad495c6d Insert user-configurable string when autocompleting nicks
Fixes #1176
2017-12-17 21:15:47 +02:00
Pavel Djundik
7dd4603d3c
Merge pull request #1849 from thelounge/astorije/fix-special-chans
Fix UI issues with special channels
2017-12-17 19:37:18 +02:00
Pavel Djundik
41014cdf05
Merge pull request #1848 from thelounge/greenkeeper/moment-2.20.0
Update moment to the latest version 🚀
2017-12-17 19:35:27 +02:00
Jérémie Astori
af4f322bf9
Fix UI issues with special channels
As a reminder, "special" channels right now are banlists and channel lists.

- Remove that bottom margin that was causing things to hide behind the message input. This was probably relevant before the whole UI was flexbox-based and was not removed when switching.
- Do not align to bottom on special channels
- Hide unread and date markers on special channels
- Make sure table headers in special channels are not truncated, which was for example the case with "Users" being broken up ("User" and "s" on 2 different lines)
2017-12-17 01:14:11 -05:00
greenkeeper[bot]
5d08578a74 fix(package): update moment to version 2.20.0 2017-12-17 01:24:17 +00:00
Jérémie Astori
bf602db991
Merge pull request #1844 from thelounge/astorije/mousetrap-mod
Use cross-platform modifier shortcut for Mousetrap when possible
2017-12-16 16:26:44 -05:00
Jérémie Astori
cd606b8c28
Use cross-platform modifier shortcut for Mousetrap when possible
See https://craig.is/killing/mice#api.bind.combo
2017-12-16 16:14:12 -05:00
Jérémie Astori
d9cc335351
Add missing time (and icon) of status messages on mobile 2017-12-16 16:11:10 -05:00
Jérémie Astori
ffe8f2899b
Merge pull request #1787 from thelounge/xpaw/messages-bottom
Align message container to the bottom
2017-12-15 22:27:04 -05:00
Jérémie Astori
80f6171bd2
2.7.0-pre.3 2017-12-15 21:32:23 -05:00
Jérémie Astori
721170283c
Add changelog entry for v2.7.0-pre.3 2017-12-15 21:28:34 -05:00
Jérémie Astori
0a333ad84d
Merge pull request #1829 from thelounge/astorije/better-icons
Use better icons for channel/query list and context menu actions
2017-12-15 19:27:19 -05:00
Jérémie Astori
861d6b6642
Use better icons for channel/query list and context menu actions 2017-12-15 19:09:15 -05:00
Pavel Djundik
d68c2caa26
Merge pull request #1841 from thelounge/greenkeeper/stylelint-8.4.0
Update stylelint to the latest version 🚀
2017-12-15 11:32:14 +02:00
greenkeeper[bot]
15acab80d4 chore(package): update stylelint to version 8.4.0 2017-12-15 08:44:55 +00:00
Jérémie Astori
ec9abe49b2
Merge pull request #1837 from thelounge/greenkeeper/copy-webpack-plugin-4.3.0
Update copy-webpack-plugin to the latest version 🚀
2017-12-15 01:59:41 -05:00
greenkeeper[bot]
4d2b550cf8 chore(package): update copy-webpack-plugin to version 4.3.0 2017-12-14 09:20:26 +00:00
Al McKinlay
b9f1b9fd4d
Merge pull request #1832 from MaxLeiter/media
Rename thumbnail/image option to more general `media`
2017-12-14 09:05:40 +00:00
Al McKinlay
8b52825d51
Merge pull request #1817 from MaxLeiter/videos
Support video file previews
2017-12-14 08:56:58 +00:00
Max Leiter
d4ad60c11d Support video file previews 2017-12-13 17:52:07 -08:00
Max Leiter
fdd8ef3e6a
Rename thumbnail/image option to more general 'media' 2017-12-13 20:03:12 -05:00
Jérémie Astori
b67e7ee3ef
Merge pull request #1835 from thelounge/greenkeeper/textcomplete-0.15.0
Update textcomplete to the latest version 🚀
2017-12-13 18:58:07 -05: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
greenkeeper[bot]
d68a2fa872 chore(package): update textcomplete to version 0.15.0 2017-12-13 15:15:02 +00:00
Pavel Djundik
7dcab09516
Merge pull request #1806 from MaxLeiter/sound
Support audio file previews
2017-12-13 11:03:04 +02:00
Jérémie Astori
96d3e58734
Remove deprecated options for thelounge start
This was replaced with the `--config` option.
2017-12-13 01:33:25 -05:00
Jérémie Astori
234c4a8bac
Merge pull request #1831 from thelounge/xpaw/extended-colors
Add styling for 16-98 colors
2017-12-12 20:28:39 -05:00
Max Leiter
ad1114ccfe Support audio file previews 2017-12-12 11:29:13 -08:00
Pavel Djundik
ccd0a6559b Add styling for 16-98 colors 2017-12-12 20:14:05 +02:00
Pavel Djundik
e1ae339190 Add test for extended colors 2017-12-12 20:06:37 +02:00
Jérémie Astori
9a8cde189d
Remove autoload deprecation notice 2017-12-12 02:58:17 -05:00
Jérémie Astori
deaf803467
Remove deprecated support for debug as a boolean in the configuration file 2017-12-12 02:57:39 -05:00
Jérémie Astori
826482bb5b
Remove deprecated support for the --home option and $LOUNGE_HOME environment variable 2017-12-12 02:54:50 -05:00
Jérémie Astori
3e708f9c0b
Get rid of Object.assign polyfill
As far as I know, this is only required for IE at this point, and we have already made changes that removed support of any version of IE.
2017-12-12 02:42:59 -05:00
Jérémie Astori
d0f5d5025e
Merge pull request #1820 from thelounge/astorije/config-options
Deprecate existing options of `thelounge start` and add a generic `--config` override
2017-12-12 00:48:59 -05: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
Jérémie Astori
6077a1ae67
Merge pull request #1828 from thelounge/greenkeeper/eslint-4.13.1
Update eslint to the latest version 🚀
2017-12-11 23:24:25 -05:00
Jérémie Astori
aa66f284e7
Merge pull request #1826 from thelounge/greenkeeper/fs-extra-5.0.0
Update fs-extra to the latest version 🚀
2017-12-11 23:23:55 -05:00
Jérémie Astori
aeb8f66f30
Merge pull request #1722 from creesch/contextMenu
Add actions to user context menu
2017-12-11 23:14:54 -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
greenkeeper[bot]
6fb09048f6 chore(package): update eslint to version 4.13.1 2017-12-11 23:51:07 +00:00
greenkeeper[bot]
e652ff6c7d fix(package): update fs-extra to version 5.0.0 2017-12-11 17:42:23 +00:00
Pavel Djundik
9b75b5727a
Merge pull request #1824 from thelounge/astorije/icons
Improve user and channel icons in channel list and context menu
2017-12-11 13:22:56 +02:00
Pavel Djundik
4be5ed693c
Merge pull request #1822 from thelounge/greenkeeper/moment-2.19.4
Update moment to the latest version 🚀
2017-12-11 11:24:59 +02:00
Jérémie Astori
ce2adb4b8d
Use hashtag icon for channel instead of the sad file icon :) 2017-12-11 01:20:28 -05:00
Jérémie Astori
9436ba9301
Make sure user icon matches in network list, window context menu, and nick context menu 2017-12-11 01:19:50 -05:00
greenkeeper[bot]
493a5407a2 fix(package): update moment to version 2.19.4 2017-12-11 01:21:14 +00: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
Pavel Djundik
4e6a29db35
Merge pull request #1797 from grissly-man/master
#1793 - implement reverse style
2017-12-10 16:15:40 +02:00
Pavel Djundik
40af84b653
Merge pull request #1818 from thelounge/astorije/improve-tests
Remove dead code in tests, and fix a link test
2017-12-10 11:55:59 +02:00
Pavel Djundik
ca22da28a7
Merge pull request #1821 from thelounge/astorije/empty-conf-warning
Warn if user configuration being loaded is empty
2017-12-10 11:55:14 +02: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
c2243ed7b4
Remove dead code in tests, and fix a link test
I used `npm run coverage` while *not* excluding the test folder to detect dead code in our test folder, it is actually pretty useful to do so (as a one-shot, not to do that in our config).
Only remaining unreached path is L40 in `test/plugins/auth/ldap.js`, but it does seem to me that it might be useful in case of failures, so I preferred to leave it there.
2017-12-09 18:56:05 -05:00
Jérémie Astori
a8fb892873
Merge pull request #1816 from MaxLeiter/fix-network-context
Proper network icon in context menu
2017-12-09 18:17:38 -05:00
Pavel Djundik
de98c2b13a
Merge pull request #1802 from MaxLeiter/chanlist
Add 'Channel list' to network context menu
2017-12-10 01:09:35 +02:00
Max Leiter
6311176f00 Proper network icon in context menu 2017-12-09 15:03:15 -08:00
Max Leiter
fb5eb0664a Add 'Channel list' to network context menu 2017-12-09 14:34:33 -08: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
f32cd57bcb
Merge pull request #1814 from thelounge/xpaw/clean-extra
Clean monospace and strikethrough formatters
2017-12-08 19:05:04 -05:00
Jérémie Astori
ebc2d7ecc5
Merge pull request #1815 from thelounge/greenkeeper/eslint-4.13.0
Update eslint to the latest version 🚀
2017-12-08 19:04:24 -05:00
greenkeeper[bot]
c562c4fd58 chore(package): update eslint to version 4.13.0 2017-12-08 22:29:41 +00:00
Pavel Djundik
b391b87e29 Clean monospace and strikethrough formatters 2017-12-08 21:09:23 +02: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
Jérémie Astori
7bbd3d61d5
Merge pull request #1810 from thelounge/xpaw/tweak-csp
Harden content security policy even further
2017-12-07 19:35:01 -05:00
Pavel Djundik
fb0f68f8a5 Harden content security policy even further 2017-12-07 20:45:45 +02:00
Logan Griswold
fb94ad4205 implement reverse formatting with tests
implement reverse formatting with tests
2017-12-07 18:27:59 +00: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
Jérémie Astori
b662764caa
Merge pull request #1800 from thelounge/xpaw/textcomplete
Update textcomplete library and rewrite tabcomplete
2017-12-06 18:29:49 -05:00
Pavel Djundik
65423eb8fd
Merge pull request #1380 from thelounge/xpaw/inline-notices
Show notices and errors inline
2017-12-06 18:06:40 +02:00
Pavel Djundik
5e48e04623 Show notices and errors inline 2017-12-06 17:58:52 +02:00
Jérémie Astori
3df1e9d731
Merge pull request #1804 from thelounge/xpaw/no-use-before-define
Enable no-use-before-define rule
2017-12-06 09:08:38 -05:00
Jérémie Astori
6ec1a2ee14
Merge pull request #1803 from thelounge/xpaw/merge-condensed
Merge condensed messages when loading more history
2017-12-06 09:07:33 -05:00
Pavel Djundik
20af04bca0 Enable no-use-before-define rule 2017-12-06 15:57:04 +02:00
Pavel Djundik
e462ed6270 Rewrite tabcomplete 2017-12-06 15:47:30 +02:00
Pavel Djundik
1bdbb75d4c Merge condensed messages when loading more history 2017-12-06 14:07:43 +02:00
Pavel Djundik
df703dc73a Upgrade to new textcomplete library 2017-12-06 12:06:57 +02:00
Rob Jackson
15f7f2e371
Ensure passwords are reloaded when updated via CLI (fixes #598) 2017-12-05 18:52:08 -05:00
Jérémie Astori
db53f13865
Merge pull request #1794 from thelounge/xpaw/handle-js-errors
Handle javascript errors while loading
2017-12-05 18:33:11 -05:00
Jérémie Astori
ee6ff6a5e5
Merge pull request #1798 from thelounge/greenkeeper/fs-extra-4.0.3
Update fs-extra to the latest version 🚀
2017-12-05 18:31:17 -05:00
greenkeeper[bot]
481b6fd336 fix(package): update fs-extra to version 4.0.3 2017-12-05 15:03:53 +00:00
Pavel Djundik
2afd4d7ec4 Hide error under details 2017-12-05 15:17:31 +02: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
c5bda23548
Merge pull request #1578 from thelounge/ircv3/chghost
Handle `CHGHOST` cap
2017-12-05 11:18:58 +02:00
Pavel Djundik
b5d39b96b9
Handle CHGHOST cap 2017-12-04 23:33:48 -05:00
Jérémie Astori
b80710ed82
Merge pull request #1788 from PolarizedIons/PolarizedIons/actualip
Add actualip to the actualhost line in the whois output
2017-12-04 23:30:04 -05:00
Jérémie Astori
4b3f22701e
Merge pull request #1782 from thelounge/greenkeeper/irc-framework-2.10.0
Update irc-framework to the latest version 🚀
2017-12-04 23:29:01 -05:00
Jérémie Astori
915f1da190
Merge pull request #1796 from thelounge/greenkeeper/webpack-3.10.0
Update webpack to the latest version 🚀
2017-12-04 23:27:46 -05:00
greenkeeper[bot]
04f4bb1269 fix(package): update irc-framework to version 2.10.2 2017-12-04 20:53:20 +02:00
greenkeeper[bot]
3e1c96552d chore(package): update webpack to version 3.10.0 2017-12-04 18:21:21 +00:00
Jérémie Astori
683bc4ef60
Merge pull request #1792 from grissly-man/master
Implement strikethrough and monospace formatting
2017-12-03 15:15:19 -05:00
Logan Griswold
f07c1bef69
#1755 - implement monospace formatting with keybinding, tests, and help section 2017-12-03 15:10:46 -05:00
Logan Griswold
0643d3b4a3
#1754 - implement strikethrough formatting, client keybinding, tests, and help section 2017-12-03 15:10:34 -05:00
Pavel Djundik
e3823803aa Handle javascript errors while loading 2017-12-03 17:16:56 +02:00
Pavel Djundik
5fc70397a9 Make sure all joins send filtered clone 2017-12-03 16:31:37 +02:00
Pavel Djundik
fe1c7612f5 Add tests for getFilteredClone methods 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
2f47307437
Merge pull request #1790 from thelounge/greenkeeper/intersection-observer-0.5.0
Update intersection-observer to the latest version 🚀
2017-12-02 17:57:14 -05:00
greenkeeper[bot]
80040dc153 chore(package): update intersection-observer to version 0.5.0 2017-12-02 20:58:55 +00:00
Jérémie Astori
f237ed1684
2.7.0-pre.2 2017-12-01 22:50:53 -05:00
Jérémie Astori
f277864454
Add changelog entry for v2.7.0-pre.2 2017-12-01 22:50:17 -05:00
Jérémie Astori
8a568a3ef4
Merge pull request #1789 from thelounge/xpaw/notification-permission
Ask for notification permission on page load if setting is enabled
2017-12-01 22:42:57 -05:00
Pavel Djundik
6aff2657e9 Ask for notification permission on page load if setting is enabled 2017-12-01 22:27:36 +02:00
stepie22
c7f6b8409f Change whois's actual host to include the actualip aswell 2017-12-01 15:03:02 +02:00
Pavel Djundik
a469f22699
Merge pull request #1780 from thelounge/greenkeeper/webpack-3.9.0
Update webpack to the latest version 🚀
2017-12-01 12:53:29 +02:00
Pavel Djundik
52b234bdfc
Merge pull request #1770 from thelounge/astorije/client-tests
Add a bunch of client tests
2017-12-01 12:51:13 +02:00
Pavel Djundik
11568d7405 Align message container to the bottom 2017-12-01 12:41:26 +02:00
Pavel Djundik
9d87ce5d7a
Merge pull request #1785 from thelounge/astorije/fix-home-fie-rename
Do not rename home file as it is very likely to have permission issues
2017-12-01 11:49:11 +02:00
greenkeeper[bot]
8889201081 chore(package): update webpack to version 3.9.1
Closes #1780
2017-12-01 11:46:32 +02:00
Pavel Djundik
1bca238e9b
Merge pull request #1781 from thelounge/greenkeeper/web-push-3.2.5
Update web-push to the latest version 🚀
2017-12-01 11:31:13 +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
Jérémie Astori
6dd568b27f
2.7.0-pre.1 2017-11-30 21:03:36 -05:00
Jérémie Astori
89f1326ce7
Add pre-release tag until stable version is ready to be released 2017-11-30 21:02:48 -05:00
Jérémie Astori
7a15434d37
Add changelog entry for v2.7.0-pre.1 2017-11-30 21:00:27 -05:00
Jérémie Astori
b2835855c0
Merge pull request #1779 from thelounge/xpaw/nick-links-fixes
Fix nicks not being detected in actions and duplicate nicks
2017-11-30 20:43:36 -05:00
Jérémie Astori
6bb0251d57
Ignore coverage folder from coverage report 2017-11-30 20:33:23 -05:00
Jérémie Astori
f368dcdc69
Add a bunch of client tests 2017-11-30 20:33:23 -05:00
greenkeeper[bot]
ed8037d1f0 fix(package): update web-push to version 3.2.5 2017-11-30 15:15:07 +00:00
Pavel Djundik
d770028da6 Fix duplicate user names not being found 2017-11-30 14:16:11 +02:00
Pavel Djundik
a7bd40a5b1 Fix users not being linked in /me actions 2017-11-30 14:13:11 +02: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
f89054784f
Merge pull request #1764 from thelounge/xpaw/fix-data-from
Fix data-from on messages
2017-11-30 11:28:00 +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
Pavel Djundik
bdbdb69f02
Merge pull request #1773 from thelounge/astorije/fix-default-from
Fix default value given to `Msg.from`
2017-11-30 11:25:30 +02:00
Jérémie Astori
fd72179b3d
Merge pull request #1777 from thelounge/greenkeeper/eslint-4.12.1
Update eslint to the latest version 🚀
2017-11-30 02:12:15 -05:00
greenkeeper[bot]
2f4205d095 chore(package): update eslint to version 4.12.1 2017-11-30 06:04:42 +00: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
Pavel Djundik
36e0ce46b4
Merge pull request #1775 from thelounge/greenkeeper/moment-2.19.3
Update moment to the latest version 🚀
2017-11-29 22:25:02 +02:00
Pavel Djundik
68753ae3e8 Fix data-from on messages 2017-11-29 20:45:19 +02:00
Pavel Djundik
53968bf453
Merge pull request #1769 from thelounge/astorije/test-timeout
Increase timeout of server tests
2017-11-29 18:45:57 +02:00
greenkeeper[bot]
a97a6de60f fix(package): update moment to version 2.19.3 2017-11-29 16:37:20 +00:00
Jérémie Astori
7de7292560
Increase timeout of server tests 2017-11-28 19:43:00 -05:00
Pavel Djundik
c9e340e153
Merge pull request #1761 from thelounge/astorije/slow-tests
Mark slow tests as such to reduce noise on test report
2017-11-28 11:43:24 +02:00
Pavel Djundik
c3b076ca74
Merge pull request #1759 from thelounge/astorije/avoid-escape-quotes2
Avoid escaping quotes whenever possible (again)
2017-11-28 11:41:15 +02:00
Pavel Djundik
561de89568
Merge pull request #1763 from thelounge/greenkeeper/commander-2.12.2
Update commander to the latest version 🚀
2017-11-28 11:41:02 +02:00
greenkeeper[bot]
12e0087d47 fix(package): update commander to version 2.12.2 2017-11-28 07:14:48 +00:00
Jérémie Astori
624b3ebc18
Mark slow tests as such to reduce noise on test report 2017-11-27 18:47:19 -05:00
Jérémie Astori
03d6bf06ee
Avoid escaping quotes whenever possible (again)
Oops, I forgot to rebase and fix after merging a previous PR. I wish there was a way to enforce this with ESLint, but did not find any (only allow) :(
2017-11-27 18:40:23 -05:00
Jérémie Astori
c9da29f2fc
Merge pull request #1757 from thelounge/xpaw/detached-sign-in
Do not keep sign-in and loader references in memory
2017-11-27 18:32:20 -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
74521225ba
Merge pull request #1751 from thelounge/greenkeeper/stylelint-8.3.1
Update stylelint to the latest version 🚀
2017-11-27 13:32:01 -05: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
e5862a9303
Merge pull request #1752 from thelounge/xpaw/simple-build-cmd
Avoid using npm-run-all for build
2017-11-27 12:57:21 -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
Pavel Djundik
5855099d5b Do not keep sign-in and loader references in memory 2017-11-27 19:39:16 +02:00
Pavel Djundik
4e2eed2023
Merge pull request #1709 from MaxLeiter/master
Link nicks mentioned in messages
2017-11-27 19:31:36 +02: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
Pavel Djundik
6fc812d272
Merge pull request #1748 from MaxLeiter/highlights
Fix text highlighting when clicking on condensed message toggles
2017-11-27 11:48:03 +02:00
Pavel Djundik
0dbdd4732b
Avoid using npm-run-all for build 2017-11-27 11:45:58 +02:00
Pavel Djundik
52f8934d9b
Merge pull request #1750 from thelounge/astorije/parallelize-npm-test
Parallelize `npm test`
2017-11-27 11:44:51 +02:00
greenkeeper[bot]
2fcb89a779 chore(package): update stylelint to version 8.3.1 2017-11-27 08:59:26 +00:00
Jérémie Astori
b25884c5bd
Make stylelint report unncessary disables
From the man:

```
    --report-needless-disables, --rd

      Report stylelint-disable comments that are not blocking a lint warning.
      If you provide the argument "error", the process will exit with code 2
      if needless disables are found.
```
2017-11-26 17:57:14 -05:00
Jérémie Astori
2a8feaa454
Parallelize npm test
After this, tests run in ~7s locally vs. ~14s without. ¯\_(ツ)_/¯
One caveat is that coloring must be forced now. Hope this looks okay on Travis.
2017-11-26 17:54:58 -05: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
Jérémie Astori
823ed0153f
Merge pull request #1747 from thelounge/astorije/fix-parse
Fix duplicate text generated when sending channel and link together
2017-11-26 17:23:32 -05:00
Max Leiter
d9d4672d75 Fix text highlighting when clicking on condensed message toggles 2017-11-26 14:05:23 -08:00
Jérémie Astori
ddc7ace78d
Bring test from ircmessageparser
See https://github.com/Bonuspunkt/ircmessageparser/pull/12/files#diff-e6c9a6bca996bc454cc244d17bfeda5c for reference (same test, linted)
2017-11-26 17:02:57 -05:00
Bonuspunkt
0e52b133af Sending channel and link together generates duplicate text 2017-11-26 21:33:27 +02:00
Jérémie Astori
d9efaef369
Merge pull request #1746 from thelounge/xpaw/fix-preview-keep-to-bottom
Trigger keep to bottom for previews correctly
2017-11-26 12:35:08 -05:00
Jérémie Astori
7f16ad649d
Merge pull request #1745 from thelounge/greenkeeper/stylelint-8.3.0
Update stylelint to the latest version 🚀
2017-11-26 12:33:08 -05:00
Pavel Djundik
6862c2e6b0 Trigger keep to bottom for previews correctly 2017-11-26 15:49:31 +02:00
Pavel Djundik
e3515d2ea1 Update stylelint rules 2017-11-26 14:28:33 +02:00
greenkeeper[bot]
645b3c13b3 chore(package): update stylelint-config-standard to version 18.0.0 2017-11-26 14:06:27 +02:00
greenkeeper[bot]
c5a530fe31 chore(package): update stylelint to version 8.3.0 2017-11-26 10:54:28 +00:00
Pavel Djundik
5ffeb04343
Merge pull request #1739 from thelounge/xpaw/inactive-scroll
Do not keep scroll to bottom in inactive channels
2017-11-26 11:40:50 +02:00
Pavel Djundik
eaeb3375db
Merge pull request #1738 from thelounge/xpaw/extra-msg-trims
Trim channel messages in active channel and when switching channels
2017-11-26 11:40:31 +02:00
Jérémie Astori
9a3c9a7ab0
Merge pull request #1744 from thelounge/greenkeeper/eslint-4.12.0
Update eslint to the latest version 🚀
2017-11-26 00:21:54 -05:00
greenkeeper[bot]
f092c2393c chore(package): update eslint to version 4.12.0 2017-11-26 04:09:23 +00:00
Jérémie Astori
d99030aff5
Merge pull request #1743 from MaxLeiter/patch-3
Fix whois template parsing real name field
2017-11-25 16:13:51 -05:00
Max Leiter
9eb79d675c
Fix whois template parsing real name field
Links and etc will now render correctly
2017-11-25 12:23:03 -08:00
Jérémie Astori
553c24c909
Merge pull request #1742 from thelounge/xpaw/fetch-error-callback
Call callback on fetch error
2017-11-25 15:17:03 -05:00
Pavel Djundik
727021be68 Call callback on fetch error 2017-11-25 20:59:12 +02:00
Jérémie Astori
8585dbc6c4
Merge pull request #1736 from thelounge/greenkeeper/commander-2.12.0
Update commander to the latest version 🚀
2017-11-25 02:38:09 -05:00
Jérémie Astori
14f08ea271
Merge pull request #1737 from thelounge/greenkeeper/copy-webpack-plugin-4.2.2
Update copy-webpack-plugin to the latest version 🚀
2017-11-23 13:27:31 -05:00
Pavel Djundik
2f84b01427 Do not keep scroll to bottom in inactive channels 2017-11-23 19:33:19 +02:00
Pavel Djundik
15a52ccec3 Trim channel messages in active channel and when switching channels
Fixes #1461
2017-11-23 16:23:32 +02:00
greenkeeper[bot]
2fefe0e4f3 fix(package): update commander to version 2.12.1
Closes #1736
2017-11-23 10:24:28 +00:00
greenkeeper[bot]
5c6c34de83 chore(package): update copy-webpack-plugin to version 4.2.3
Closes #1737
2017-11-23 10:11:34 +00: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
Jérémie Astori
643a8222a6
Merge pull request #1731 from thelounge/xpaw/fix-1413
Handle hex colours when cleaning string
2017-11-22 16:29:08 -05:00
Pavel Djundik
c053011611 Make regex in cleanIrcMessage const 2017-11-22 16:06:32 +02:00
Pavel Djundik
28b084af69 Fix #1413 - Handle hex colours when cleaning string 2017-11-22 16:03:59 +02:00
Pavel Djundik
ca389c914f
Merge pull request #1491 from realies/master
Focus a channel by joining it, refactor user commands #1189
2017-11-22 15:42:32 +02:00
Jérémie Astori
a10f147c36
Merge pull request #1720 from thelounge/xpaw/fix-new-user-obj
Access new nick attribute in user object
2017-11-21 19:28:37 -05:00
keegan
f73132e226
Stop LDAP Auth from succeeding without password 2017-11-21 19:19:24 -05:00
Pavel Djundik
3f06acfa6e
Merge pull request #1681 from creesch/whois
Include all available whois info
2017-11-21 21:26:10 +02:00
Pavel Djundik
c268d91b4e Access new nick attribute in user object
This was broken in #1698
2017-11-21 13:54:12 +02: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
489bb8e395
Merge pull request #1683 from thelounge/astorije/split-index
Split index.html into components
2017-11-20 12:10:52 +02: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
dbc6b099fe unused var 2017-11-19 19:43:43 +02:00
Pavel Djundik
90861effb4 Fix sign in 2017-11-19 19:43:43 +02:00
Pavel Djundik
8d88779918 Fix options 2017-11-19 19:43:42 +02:00
Pavel Djundik
e85e00ebed Remove unused 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
55d1625ab2 Split connect and settings into templates 2017-11-19 19:43:42 +02:00
Pavel Djundik
2a6b255aee Make sign in work 2017-11-19 19:43:42 +02:00
Pavel Djundik
303dddb12e wip 2017-11-19 19:43:42 +02:00
Jérémie Astori
0e55dafd8a WIP 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
1e4c39a87c
Merge pull request #1716 from thelounge/xpaw/fix-topic-from
Not all topic callbacks include nick
2017-11-19 18:39:44 +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
8791a17fc4 Use service worker to display notifications if available 2017-11-19 18:18:55 +02:00
Jérémie Astori
da5a5c7175
Merge pull request #1712 from thelounge/xpaw/users-map
Convert users list to map
2017-11-19 11:07:05 -05:00
Pavel Djundik
0f75c1a138 Change users array to be a Map 2017-11-19 11:35:15 +02:00
Pavel Djundik
56a9ad184d
Merge pull request #1698 from thelounge/xpaw/refactor-user-msgs
Refactor how user object is sent to the client
2017-11-19 11:25:33 +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
36ab3ffc8d
Merge pull request #1689 from thelounge/xpaw/parse-real-name
Parse formatting in real name
2017-11-19 00:07:23 -05:00
Jérémie Astori
257b6d320b
Merge pull request #1711 from thelounge/astorije/comma-dangle
Enforce dangling commas with ESLint
2017-11-19 00:06:22 -05:00
Jérémie Astori
5ffa91c964
Merge pull request #1713 from thelounge/greenkeeper/copy-webpack-plugin-4.2.1
Update copy-webpack-plugin to the latest version 🚀
2017-11-19 00:05:18 -05:00
Jérémie Astori
5c6b51a05b
2.6.0 2017-11-18 22:22:12 -05:00
Jérémie Astori
7d8b9b7e7c
Merge pull request #1714 from thelounge/astorije/changelog-2.6.0
Changelog entry for v2.6.0
2017-11-18 22:21:43 -05:00
Jérémie Astori
35f615187f
Remove pre-release dist tag 2017-11-18 13:55:54 -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
29557a1f3b
Add changelog entry for v2.6.0 2017-11-17 21:14:27 -05:00
Jérémie Astori
a813d1a78f
Remove placeholder comment from the changelog now that it gets pre-generated by a script 2017-11-17 20:50:10 -05:00
Jérémie Astori
1c18ed9775
Merge pull request #1707 from thelounge/astorije/changelog-script
Add a script to pre-generate changelog entries
2017-11-17 20:21:18 -05:00
greenkeeper[bot]
71cdbfff53 chore(package): update copy-webpack-plugin to version 4.2.1 2017-11-17 14:21:03 +00:00
Jérémie Astori
1dc92d8934
Enforce dangling commas with ESLint
¯\_(ツ)_/¯
2017-11-15 01:35:15 -05:00
Jérémie Astori
f6be0e0ee0
Add a script to pre-generate changelog entries
I have been using and improving that script for some time now, at least all 2.5 and 2.6 releases. 👌
2017-11-12 16:28:01 -05:00
Jérémie Astori
f0a9fdb658
2.6.0-rc.4 2017-11-12 14:27:18 -05:00
Jérémie Astori
67957f15fc
Add changelog entry for v2.6.0-rc.4 2017-11-12 14:25:54 -05:00
Jérémie Astori
6af282e6e8
Merge pull request #1706 from thelounge/xpaw/fix-local-themes
Fix local theme folder
2017-11-12 14:24:21 -05:00
Pavel Djundik
e5cded0ad6 Fix local theme folder 2017-11-12 21:11:08 +02:00
Jérémie Astori
1ead5fd53a
2.6.0-rc.3 2017-11-12 13:02:59 -05:00
Jérémie Astori
e1aac141e0
Add changelog entry for v2.6.0-rc.3 2017-11-12 13:02:50 -05:00
Jérémie Astori
bd3f60a480
Merge pull request #1705 from thelounge/astorije/client-folder
Make sure entire client folder is ignored on release, except findLink.js
2017-11-12 13:02:18 -05:00
Jérémie Astori
56fbc1197c
Make sure entire client folder is ignored on release, except findLink.js
This was tested using `npm pack`.
2017-11-12 12:54:51 -05:00
Jérémie Astori
aa9e4aa8b4
2.6.0-rc.2 2017-11-12 12:34:31 -05:00
Jérémie Astori
95c9d37d2a
Add changelog entry for v2.6.0-rc.2 2017-11-12 12:32:26 -05:00
Jérémie Astori
290cbc1617
Merge pull request #1704 from thelounge/keep-findlinks-file
Fix #1703 - Keep findLinks file in npm builds
2017-11-12 12:09:54 -05:00
Pavel Djundik
4888ffea3b
Fix #1703 - Keep findLinks file in npm builds 2017-11-12 12:11:24 +02:00
Jérémie Astori
1906bae5f5
2.6.0-rc.1 2017-11-11 20:26:18 -05:00
Jérémie Astori
1f950878d7
Add changelog entry for v2.6.0-rc.1 2017-11-11 20:26:12 -05:00
Jérémie Astori
91691bd747
Add pre-release tag until stable version is ready to be released 2017-11-11 20:22:44 -05:00
Jérémie Astori
21badddc38
Merge pull request #1609 from dgw/restore-autocomplete-help
Restore autocompletion help
2017-11-11 20:16:09 -05:00
Jérémie Astori
1e7b398903
Merge pull request #1701 from thelounge/xpaw/sync-write
Go back to writing user files synchronously
2017-11-11 19:24:28 -05:00
Jérémie Astori
c9039115bb
Merge pull request #1702 from thelounge/greenkeeper/moment-2.19.2
Update moment to the latest version 🚀
2017-11-11 19:23:03 -05:00
greenkeeper[bot]
59fe513142 fix(package): update moment to version 2.19.2 2017-11-11 20:45:24 +00:00
Pavel Djundik
9ff398dac3 Go back to writing user files synchronously 2017-11-11 20:44:09 +02:00
Pavel Djundik
5fd493bdc2
Merge pull request #1699 from thelounge/greenkeeper/eslint-4.11.0
Update eslint to the latest version 🚀
2017-11-11 11:21:11 +02:00
Jérémie Astori
4034861d2d
Merge pull request #1697 from thelounge/greenkeeper/intersection-observer-0.4.3
Update intersection-observer to the latest version 🚀
2017-11-10 20:39:02 -05:00
greenkeeper[bot]
af060bd2d0 chore(package): update eslint to version 4.11.0 2017-11-10 22:08:08 +00:00
greenkeeper[bot]
760c8046b2 chore(package): update intersection-observer to version 0.4.3 2017-11-10 20:32:28 +00:00
Pavel Djundik
48b6a136d1
Merge pull request #1693 from thelounge/xpaw/fix-1692
Fix #1692 when kicker is server
2017-11-10 17:09:34 +02:00
Pavel Djundik
329a27d5c6
Merge pull request #1695 from thelounge/xpaw/fix-unhandled-data
Fix missing attributes on unhandled messages
2017-11-10 17:09:17 +02:00
Pavel Djundik
9ff974b702 Fix missing attributes on unhandled messages 2017-11-10 16:18:44 +02:00
Pavel Djundik
feb7d9d4bb Fix #1692 when kicker is server 2017-11-08 23:10:17 +02:00
realies
5c4e1e55a6
fix gap between #sidebar and #footer 2017-11-08 18:01:35 +02:00
Jérémie Astori
f8af23c64a
Merge pull request #1688 from thelounge/greenkeeper/npm-run-all-4.1.2
Update npm-run-all to the latest version 🚀
2017-11-07 19:42:31 -05:00
Pavel Djundik
10dab7afac
Parse formatting in real name 2017-11-07 17:38:03 +02:00
greenkeeper[bot]
6b40ee1b77 chore(package): update npm-run-all to version 4.1.2 2017-11-07 11:51:15 +00:00
Pavel Djundik
8062609c86
Merge pull request #1602 from thelounge/xpaw/remove-inconsolata
Remove Inconsolata
2017-11-06 22:15:19 +02:00
Al McKinlay
fc3e08c50f
Merge pull request #1671 from LFlare/fix/1667-hyphen-overflow
Fix hyphenated names overflowing (#1667)
2017-11-06 19:55:08 +00:00
Jérémie Astori
9161a09a6a
Merge pull request #1682 from thelounge/xpaw/remove-cleanup
Remove webpack-cleanup-plugin
2017-11-05 14:00:01 -05:00
dgw
3677cb4c8b Restore autocompletion help
Cleaned up and updated the section for the current version of The Lounge.
Resolves #1147.
2017-11-05 05:57:34 -06:00
Pavel Djundik
41f50f9218 Remove webpack-cleanup-plugin 2017-11-03 12:47:28 +02:00
Pavel Djundik
56fc211628
Merge pull request #1680 from thelounge/greenkeeper/nyc-11.3.0
Update nyc to the latest version 🚀
2017-11-02 11:06:09 +02:00
greenkeeper[bot]
f53348decb chore(package): update nyc to version 11.3.0 2017-11-02 06:33:27 +00:00
Pavel Djundik
cc5e6a9a90
Merge pull request #1678 from thelounge/astorije/travis-node-v9
Add Node V9 testing to Travis builds
2017-11-01 11:44:08 +02:00
Jérémie Astori
843d34304e
Add Node V9 testing to Travis builds
But keep production builds with LTS v8, at least for now.
2017-11-01 02:16:21 -04:00
Pavel Djundik
15e9ea5001
Merge pull request #1673 from timmw/fix-contributing-link
Fix 'help wanted' link
2017-10-30 22:17:11 +02:00
Tim Miller-Williams
27d35e6c80 Fix 'help wanted' link 2017-10-30 20:06:22 +00:00
Amos Ng
e83ba807f4
Fix hyphenated names overflowing (#1667) 2017-10-31 00:01:35 +08:00
Jérémie Astori
a7666a5d56
Merge pull request #1670 from thelounge/xpaw/fix-emoji
Generate correct emoji unicode
2017-10-29 14:58:20 -04:00
Pavel Djundik
14e2174d44 Generate correct emoji unicode 2017-10-29 10:41:53 +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
a60d7e31d9
Merge pull request #1651 from thelounge/xpaw/new-emoji
Generate emoji map from EmojiOne data
2017-10-29 10:25:14 +02:00
Pavel Djundik
65b1aa973f
Merge pull request #1666 from thelounge/greenkeeper/eslint-4.10.0
Update eslint to the latest version 🚀
2017-10-28 10:17:10 +03:00
greenkeeper[bot]
aaa8200028 chore(package): update eslint to version 4.10.0 2017-10-27 21:48:50 +00:00
Pavel Djundik
8a66c51b64 Merge pull request #1662 from MaxLeiter/improved-run-pr
Allow run-pr script to pass arguments to npm start
2017-10-26 09:23:35 +03:00
Max Leiter
38c31a74a2 Allow run-pr script to pass arguments to npm start 2017-10-25 10:06:17 -07:00
Jérémie Astori
40722601a2 Merge pull request #1637 from Swapnull/swapnull/page-title-padding
Reduced padding around page titles
2017-10-24 13:16:14 -04:00
Jérémie Astori
7e081b83ba Merge pull request #1661 from MaxLeiter/fix-url-params
Fix url query parameters in public mode
2017-10-24 09:22:37 -04:00
Max Leiter
e6979fb5fd Fix url query parameters in public mode 2017-10-23 19:31:23 -07:00
Pavel Djundik
61b955ca78 Merge pull request #1654 from thelounge/greenkeeper/web-push-3.2.4
Update web-push to the latest version 🚀
2017-10-23 20:05:52 +03:00
Jérémie Astori
2f025586ce Merge pull request #1653 from thelounge/greenkeeper/copy-webpack-plugin-4.2.0
Update copy-webpack-plugin to the latest version 🚀
2017-10-22 13:46:58 -04:00
Jérémie Astori
2d5d7b4df9 Merge pull request #1659 from thelounge/greenkeeper/socket.io-client-2.0.4
Update socket.io-client to the latest version 🚀
2017-10-22 13:45:38 -04:00
Jérémie Astori
3d31e1e5d3 Merge pull request #1660 from thelounge/greenkeeper/socket.io-2.0.4
Update socket.io to the latest version 🚀
2017-10-22 13:44:43 -04:00
greenkeeper[bot]
3447817ad7 fix(package): update socket.io to version 2.0.4 2017-10-22 13:31:44 +00:00
greenkeeper[bot]
463606756d chore(package): update socket.io-client to version 2.0.4 2017-10-22 13:19:58 +00:00
greenkeeper[bot]
fee445245f fix(package): update web-push to version 3.2.4 2017-10-19 23:16:30 +00:00
greenkeeper[bot]
0569f31e9c chore(package): update copy-webpack-plugin to version 4.2.0 2017-10-19 22:38:15 +00:00
Al McKinlay
4317d4014e Merge pull request #1650 from dgw/1647-textcomplete
Fix loading app with autocomplete disabled
2017-10-19 11:14:10 +01:00
Pavel Djundik
ff922d4f92 Regenerate emoji map 2017-10-19 12:46:52 +03:00
Pavel Djundik
862d75b8ab Add script to generate emoji map from emojione data 2017-10-19 12:46:52 +03:00
dgw
72e5844b8b Fix loading app with autocomplete disabled
Adds a client-side require() that was missing from 1e2d35f. Fixes #1647.
2017-10-19 00:37:33 -05:00
Swapnull
449976b0f9 reduce padding around titles 2017-10-18 21:00:18 +01:00
Pavel Djundik
57613c10ca Merge pull request #1611 from thelounge/xpaw/public-folder
Create public folder with webpack
2017-10-18 21:26:28 +03:00
Pavel Djundik
554c89f9a5 Merge pull request #1627 from dgw/autocomplete-service-shortcuts
Add service aliases to command list for completion
2017-10-18 21:22:09 +03:00
Pavel Djundik
ded79a184d Merge pull request #1598 from thelounge/xpaw/fix-863
Synchronize unread marker when other client opens a channel
2017-10-18 21:21:50 +03:00
Pavel Djundik
f542e69b99 Merge pull request #1600 from thelounge/xpaw/fix-1571
Synchronize unread marker when client reconnects
2017-10-18 21:21:31 +03:00
Pavel Djundik
4535636855 Merge pull request #1599 from RJacksonm1/fill-mobile-screen-betterer
Remove content borders on mobile to maximise use of space
2017-10-18 21:21:22 +03:00
Pavel Djundik
3f2a017583 Create public folder with webpack 2017-10-18 21:20:12 +03:00
Pavel Djundik
8d0d31d7b6 Merge pull request #1645 from thelounge/greenkeeper/handlebars-4.0.11
Update handlebars to the latest version 🚀
2017-10-18 11:19:11 +03:00
greenkeeper[bot]
9541a0da49 chore(package): update handlebars to version 4.0.11 2017-10-17 20:57:51 +00:00
Pavel Djundik
5615544090 Merge pull request #1643 from thelounge/greenkeeper/webpack-3.8.1
Update webpack to the latest version 🚀
2017-10-17 20:46:32 +03:00
greenkeeper[bot]
f1750d1cb7 chore(package): update webpack to version 3.8.1 2017-10-17 15:53:41 +00: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
Pavel Djundik
4d544143b4 Merge pull request #1639 from thelounge/xpaw/fix-attach-race-condition
Fix possible race condition when attaching clients
2017-10-17 16:24:14 +03:00
Pavel Djundik
b59954eee0 Merge pull request #1641 from thelounge/greenkeeper/babel-preset-env-1.6.1
Update babel-preset-env to the latest version 🚀
2017-10-17 16:07:34 +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
greenkeeper[bot]
5f52e31e9d chore(package): update babel-preset-env to version 1.6.1 2017-10-17 12:45:44 +00:00
Pavel Djundik
e3ee3f7788 Merge pull request #1638 from thelounge/bump-dependancies
Bump express, moment, ua-parser-js and webpack to latest version
2017-10-17 13:35:40 +03:00
Pavel Djundik
d626c146c4 Bump express, moment, ua-parser-js and webpack to latest version 2017-10-17 13:01:09 +03:00
Pavel Djundik
50504ed09b Fix possible race condition when attaching clients 2017-10-17 12:45:18 +03:00
Pavel Djundik
afc594a655 Merge pull request #1607 from PolarizedIons/PolarizedIons/rm-channels-dom
Remove channel containers from DOM after quitting network
2017-10-17 11:31:17 +03:00
Pavel Djundik
b2985a2c2a Merge pull request #1625 from thelounge/socket.io-2.0.3
Update socket.io to 2.0.3
2017-10-17 11:17:13 +03:00
Pavel Djundik
280eea970a Get client ip address correctly 2017-10-17 10:35:28 +03:00
Pavel Djundik
c2f1edcbde Update socket.io to 2.0.3 2017-10-17 10:35:28 +03:00
Jérémie Astori
9b06560899 Merge pull request #1632 from thelounge/greenkeeper/eslint-4.9.0
Update eslint to the latest version 🚀
2017-10-17 02:16:56 -04:00
Jérémie Astori
3661d8cff9 Merge pull request #1616 from thelounge/greenkeeper/stylelint-8.2.0
Update stylelint to the latest version 🚀
2017-10-17 02:11:14 -04:00
Jérémie Astori
d1d871f351 Merge pull request #1617 from thelounge/greenkeeper/mocha-4.0.1
Update mocha to the latest version 🚀
2017-10-17 02:10:58 -04:00
Jérémie Astori
11b72223a7 Merge pull request #1624 from thelounge/greenkeeper/moment-2.19.0
Update moment to the latest version 🚀
2017-10-17 02:09:52 -04:00
Jérémie Astori
e2e594d4f5 Merge pull request #1626 from thelounge/greenkeeper/webpack-3.7.0
Update webpack to the latest version 🚀
2017-10-17 02:09:19 -04:00
Jérémie Astori
638d50c5e7
2.5.0 2017-10-17 01:00:08 -04:00
Jérémie Astori
6dde4780b8 Merge pull request #1629 from thelounge/astorije/changelog-2.5.0
Changelog entry for v2.5.0
2017-10-17 00:57:41 -04:00
Jérémie Astori
9bc3144511
Add changelog entry for v2.5.0 2017-10-17 00:33:25 -04:00
Pavel Djundik
5c45321cca Cleanup client manager functions 2017-10-15 19:05:19 +03:00
greenkeeper[bot]
9cf85328ed chore(package): update eslint to version 4.9.0 2017-10-14 19:35:19 +00:00
Jérémie Astori
d79ede5087
Remove pre-release dist tag 2017-10-12 00:35:45 -04:00
dgw
59ad0ba863 Add service aliases to command list for completion
Includes known aliases for AdminServ (/as), BotServ (/bs), ChanServ
(/cs), HelpServ (/hs), HostServ (/hs; /ho on some IRCds), MemoServ
(/ms), NickServ (/ns), OperServ (/os), and RootServ (/rs).

Not all IRCds will have all of these services available, but it's not
trivial to filter out the ones that don't exist on a particular network.
2017-10-11 19:50:06 -05:00
greenkeeper[bot]
5243a6e42f chore(package): update webpack to version 3.7.0 2017-10-11 18:28:35 +00:00
Jérémie Astori
69ef6831b9
2.5.0-rc.5 2017-10-11 00:16:34 -04:00
Jérémie Astori
9a859474de
Add changelog entry for v2.5.0-rc.5 2017-10-11 00:15:10 -04:00
Jérémie Astori
b6963d98a4 Merge pull request #1623 from thelounge/astorije/channel-list-close
Make sure channel list close button is really absent when channel is not selected
2017-10-11 00:10:07 -04:00
greenkeeper[bot]
01bd59e3ca fix(package): update moment to version 2.19.0 2017-10-10 09:51:25 +00:00
Jérémie Astori
75bc45f354
Make sure channel list close button is really absent when channel is not selected 2017-10-10 02:05:54 -04:00
Jérémie Astori
09878a5568
2.5.0-rc.4 2017-10-06 22:29:37 -04:00
Jérémie Astori
672617c8ad
Add changelog entry for v2.5.0-rc.4 2017-10-06 22:25:44 -04:00
Jérémie Astori
c2681a9f6e Merge pull request #1620 from thelounge/xpaw/invalid-uri-test
Add tests for invalid urls
2017-10-06 22:21:26 -04:00
Pavel Djundik
44acc5cb00 Teardown sockets in tests 2017-10-06 12:53:08 +03:00
Pavel Djundik
586a486418 Add tests for invalid urls 2017-10-06 12:25:26 +03:00
Pavel Djundik
530d71764f Merge pull request #1604 from thelounge/greenkeeper/urijs-1.19.0
Update urijs to the latest version 🚀
2017-10-06 10:15:42 +03:00
greenkeeper[bot]
4bc8b9ed0c chore(package): update mocha to version 4.0.1 2017-10-06 03:19:34 +00:00
Pavel Djundik
9a8c1b2fd0 Wrap withinString in try/catch 2017-10-05 23:50:45 +03:00
greenkeeper[bot]
0d6ff2535e fix(package): update urijs to version 1.19.0 2017-10-05 23:50:44 +03:00
greenkeeper[bot]
d59becbf53 chore(package): update stylelint to version 8.2.0 2017-10-05 17:36:49 +00:00
realies
9a348e3eeb indexOf to charAt 2017-10-05 20:12:26 +03:00
Jérémie Astori
7f285e847f
2.5.0-rc.3 2017-10-04 18:14:07 -04:00
Jérémie Astori
21cdf11350
Add changelog entry for v2.5.0-rc.3 2017-10-04 18:12:50 -04:00
realies
960a6d42e1 Combine if statements to reduce nesting 2017-10-04 13:53:22 +03:00
realies
3244ec91e8 Remove unused var, satisfy linter rules, simplify calls 2017-10-04 00:56:14 +03:00
realies
3890aaad6b Use jQuery for parsing, isolate user commands, remove /clear 2017-10-03 23:29:19 +03:00
Pavel Djundik
f18d019383 Merge pull request #1610 from thelounge/astorije/size-fixes
Fix some missing parts from recent font changes/resizing
2017-10-03 12:14:28 +03:00
Pavel Djundik
271324fa6f Merge pull request #1608 from thelounge/xpaw/remove-progress
Remove --progress from webpack
2017-10-03 11:36:24 +03:00
Jérémie Astori
54cffb4712
Fix some missing parts from recent font changes/resizing
- Separate messages by one more pixel: the recent font changes make multiline messages rather hard to differentite from one another. I believe adding 2px looked better, but I knew that would cause riots so I went for a middle ground 😅
- Make previews the same size than messages themselves, and adapt the thumbnail height accordingly
- Make the message input font size same as message size
2017-10-03 01:09:02 -04:00
Pavel Djundik
b11a96d828 Remove --progress from webpack 2017-10-02 20:07:08 +03:00
PolarizedIons
99c8e1c04a
Remove channel containers from DOM after quitting network 2017-10-02 13:55:23 +02:00
Jérémie Astori
fc0af518c6
2.5.0-rc.2 2017-10-01 23:46:40 -04:00
Jérémie Astori
24f9467084
Add changelog entry for v2.5.0-rc.2 2017-10-01 23:41:09 -04:00
Jérémie Astori
50d49a2ec2 Merge pull request #1597 from thelounge/astorije/fix-time-width
Give chat timestamp a fix width to fix message alignment issues
2017-10-01 22:24:25 -04:00
Rob Jackson
d5d3cb0851 Remove content borders on mobile to maximise use of space 2017-10-01 22:02:22 +01:00
Pavel Djundik
737c75638e Remove Inconsolata 2017-10-01 12:22:04 +03:00
Pavel Djundik
38584e2f8e Synchronize unread marker when client reconnects
Fixes #1571
2017-10-01 12:00:59 +03:00
Pavel Djundik
08ee28e99b Synchornize unread marker when other client opens a channel
Fixes #863
2017-10-01 11:52:34 +03:00
Jérémie Astori
a93adcbdfa
Give chat timestamp a fix width to fix message alignment issues 2017-10-01 01:12:08 -04: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
d87e174644 Merge pull request #1591 from thelounge/eslint-4.8.0
Update eslint to version 4.8.0
2017-09-30 07:55:53 -04:00
Pavel Djundik
0d21843283 Update eslint to version 4.8.0 2017-09-30 12:22:39 +03: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
Jérémie Astori
82b7b3549d Merge pull request #1585 from thelounge/xpaw/fix-1584
Do not try to write user log if network is not found
2017-09-29 17:53:07 -04:00
Jérémie Astori
947f78eb9c Merge pull request #1587 from thelounge/fix-lounge-home-file
Do not ignore .lounge_home in npm releases
2017-09-29 17:49:45 -04:00
Jérémie Astori
7b7e167594 Merge pull request #1589 from thelounge/express-4.16.0
Update express to version 4.16.0
2017-09-29 17:36:47 -04:00
Pavel Djundik
bc6868b123 Update express to version 4.16.0 2017-09-29 22:09:22 +03:00
Pavel Djundik
bdf93481e6 Do not ignore .lounge_home in npm releases 2017-09-29 20:10:57 +03: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
da31317156 Skip cleanup on Travis 2017-09-27 10:39:12 +03:00
Pavel Djundik
0b16026fe2 Merge pull request #1568 from Gilles123/patch-1
Fix nick change on Safari for Mac and iOS
2017-09-27 10:27:18 +03:00
Pavel Djundik
ad92a6d9b9 Merge pull request #1577 from thelounge/greenkeeper/request-2.83.0
Update request to the latest version 🚀
2017-09-27 10:26:56 +03:00
greenkeeper[bot]
408fbbfbc1 fix(package): update request to version 2.83.0 2017-09-27 03:35:01 +00:00
Jérémie Astori
28b662ddae
2.5.0-rc.1 2017-09-26 18:54:55 -04:00
Jérémie Astori
45312b0c76
Add pre-release tag until v2.5.0 final gets released 2017-09-26 18:54:47 -04:00
Jérémie Astori
120e1df75f
Add changelog entry for v2.5.0-rc.1 2017-09-26 18:54:23 -04:00
Gilles123
04d9b52113
Fix nick change on Safari for Mac and iOS
It is currently impossible to edit the nick text after pressing the edit button on Safari for iOS and Mac because user-select is set to None on Safari by default. This fixes that issue. Tested that it is not editable when it shouldn't be and that it doesn't break anything on Chrome or Firefox.
2017-09-26 18:44:23 -04:00
Jérémie Astori
0bf47ff06a Merge pull request #1552 from thelounge/astorije/monospace-custom-css
Use monospace font in custom CSS textarea
2017-09-26 18:31:08 -04:00
Jérémie Astori
5728424c75
Use monospace font in custom CSS textarea 2017-09-26 11:21:42 -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
Al McKinlay
0f1919a4fd Merge pull request #1573 from thelounge/astorije/fix-colors
Fix flickering on link hovering, and inconsistencies between chat links and UI links
2017-09-26 08:35:50 +01:00
Jérémie Astori
46e8ec9ca9
Fix flickering on link hovering, and inconsistencies between chat links and UI links 2017-09-25 18:06:55 -04:00
Pavel Djundik
80ef01c180 Merge pull request #1572 from thelounge/xpaw/add-vapid-test
Add hardcoded vapid key and a test for it
2017-09-25 23:12:02 +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
Pavel Djundik
7c9eedb820 Add hardcoded vapid key and a test for it
Hopefully fixes #1569
2017-09-25 11:46:15 +03:00
realies
f1c40aa8de Simplify initial commit and remove unnecessary refactor 2017-09-25 07:18:31 +03:00
Jérémie Astori
90ae5dbefc Merge pull request #1566 from thelounge/astorije/mousetrap-preview
Use Mousetrap for image viewer shortcuts
2017-09-24 12:33:56 -04:00
Jérémie Astori
2c0fc67ab9
Use Mousetrap for image viewer shortcuts 2017-09-23 22:02:13 -04:00
Jérémie Astori
77714accca Merge pull request #1565 from thelounge/astorije/fix-menu
Fix wrongly positioned menu when opening it and switching to landscape
2017-09-23 13:07:36 -04:00
Jérémie Astori
5e4a4d1d0b
Fix wrongly positioned menu when opening it and switching to landscape
This could be reproduced on tablet or large phone (as long as portrait mode shows a collapsible menu and landscape mode shows normal menu) or when resizing the browser on desktop.
2017-09-23 12:21:31 -04:00
Jérémie Astori
8268eb03c6 Merge pull request #1561 from thelounge/astorije/font-size-fixes
Reduce message size on mobile and increase a bit UI text
2017-09-23 12:07:29 -04:00
Jérémie Astori
75b927b4a3
Remove event-stream dependency in favor of plain Buffers 2017-09-23 04:08:17 -04:00
Jérémie Astori
4dc3769b18
Make channel list links clickable on full width, simplify code
- Close button and badge are now positioned using the same method. Previously one was float and the other was absolutely positioned.
- Increase the close button size to match 2.4.0, as it was made smaller when moving to the native font stack.
- Removed link margins on left/right of the channel links, and the `1px` gap between links.
- Removed hack/fix for drag-and-drop now made unnecessary
2017-09-22 23:42:16 -04:00
Jérémie Astori
713d2c14e5
Reduce message size on mobile and increase a bit UI text 2017-09-22 21:59:45 -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
b456ab997c Merge pull request #1503 from thelounge/astorije/image-preview-history
Handle browser history when opening/closing image preview
2017-09-22 21:03:50 +03:00
Pavel Djundik
cddeb51109 Merge pull request #1555 from thelounge/greenkeeper/eslint-4.7.2
Update eslint to the latest version 🚀
2017-09-22 10:24:52 +03:00
greenkeeper[bot]
203907f706 chore(package): update eslint to version 4.7.2 2017-09-21 19:49:06 +00:00
Pavel Djundik
ede56398f6 Merge pull request #1553 from thelounge/astorije/bigger-fonts
Increase font size on desktops and mobiles
2017-09-21 13:59:13 +03:00
Jérémie Astori
3eaf12cc36
Increase font size on desktops and mobiles 2017-09-21 03:26:30 -04:00
Jérémie Astori
e165d51e60 Merge pull request #1549 from thelounge/xpaw/fix-default-chan
Fix opening first channel on server start
2017-09-20 21:30:24 -04:00
Pavel Djundik
649e9c3192 Fix opening first channel on server start
Fixes #1547
2017-09-20 16:17:38 +03:00
Pavel Djundik
01eda0aac3 Merge pull request #1539 from thelounge/xpaw/install-command
Create lounge install command
2017-09-20 11:11:48 +03:00
Pavel Djundik
75555d90ee Merge pull request #1543 from thelounge/xpaw/remove-dupe-keybindings
Remove duplicate keybindings help
2017-09-20 11:09:58 +03:00
Pavel Djundik
416ebf97ff Create 'lounge install' command 2017-09-20 10:59:06 +03:00
Pavel Djundik
1c065ad1b6 Remove duplicate keybindings help 2017-09-20 10:57:43 +03:00
Pavel Djundik
8f275c6a55 Merge pull request #1546 from thelounge/greenkeeper/request-2.82.0
Update request to the latest version 🚀
2017-09-20 10:18:42 +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
Jérémie Astori
d97b844e29 Merge pull request #1520 from iamstratos/master
Add touch-action to Messages, Sidebar and User list
2017-09-19 23:53:27 -04:00
Jérémie Astori
a181d79544 Merge pull request #1542 from thelounge/xpaw/move-theme-warning
Print compatibility theme setting only once warning on startup
2017-09-19 21:14:29 -04:00
Jérémie Astori
1dae995631 Merge pull request #1544 from thelounge/xpaw/fix-more-condensed
Fix history not loading if first message is condensed
2017-09-19 18:37:53 -04:00
greenkeeper[bot]
48cc810455 fix(package): update request to version 2.82.0 2017-09-19 19:57:56 +00:00
Pavel Djundik
6041e492ee Fix history not loading if first message is condensed 2017-09-19 18:01:02 +03: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
935c5b309a Force reconnect on server shutdown 2017-09-19 11:59:56 +03:00
Pavel Djundik
532f55cb86 Redraw channels 2017-09-19 11:59:56 +03:00
Pavel Djundik
cffa957e34 Only send messages newer than last seen id 2017-09-19 11:45:22 +03:00
Pavel Djundik
05fc00d9be Display all the status changes in UI 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
Al McKinlay
c7433eca95 Merge pull request #1541 from thelounge/greenkeeper/eslint-4.7.1
Update eslint to the latest version
2017-09-19 08:57:09 +01:00
Jérémie Astori
26eba56ab8 Merge pull request #1540 from thelounge/xpaw/native-fonts
Use native font stack
2017-09-19 00:29:32 -04:00
Jérémie Astori
b844b0a782 Merge pull request #1283 from MaxLeiter/MaxLeiter/window-save
Add anchor tag to URL to signify open page for reloading
2017-09-18 19:01:23 -04:00
greenkeeper[bot]
55fe080eaa chore(package): update eslint to version 4.7.1 2017-09-18 21:57:40 +00:00
Pavel Djundik
4e776f7a5f Remove Lato 2017-09-18 13:33:04 +03:00
Pavel Djundik
3ac15f97f1 Use native font stack 2017-09-18 13:32:52 +03:00
Pavel Djundik
2ea57a4133 Merge pull request #1538 from thelounge/astorije/eslint-console
Enable `no-console` and `no-alert` ESLint rules
2017-09-18 13:06:44 +03:00
Jérémie Astori
aa377ee59b
Switch Font Awesome build script to use our logger 2017-09-17 22:20:20 -04:00
Jérémie Astori
82c4898715
Use explicit keywords instead of cryptic codes in ESLint config
Bikeshedding at its best, isn't it?
2017-09-17 22:04:29 -04:00
Jérémie Astori
64cc4927b3
Make sure we never ship with JS alerts by accident 2017-09-17 21:50:41 -04:00
Jérémie Astori
b8399471b3
Enable ESLint no-console rule to avoid future mistakes 2017-09-17 21:50:21 -04:00
Jérémie Astori
2e2e201784 Merge pull request #1266 from thelounge/yamanickill/1228-theme-management
Allow themes from npm
2017-09-17 20:05:59 -04:00
Alistair McKinlay
59d2f93f61
Allow themes from npm 2017-09-17 19:47:29 -04:00
Jérémie Astori
90cb79ac91 Merge pull request #845 from MaxLeiter/MaxLeiter/away-notify
Use away-notify to show updates on users away state
2017-09-17 14:45:27 -04:00
Max Leiter
163cfaba3c Use away-notify to show user away status change 2017-09-17 11:16:48 -07:00
Jérémie Astori
4f38bc9077 Merge pull request #1535 from thelounge/astorije/fix-master
Fix references to undefined `this`
2017-09-17 02:57:43 -04:00
Jérémie Astori
cb1b6db14e
Fix references to undefined this 2017-09-17 02:24:54 -04:00
Al McKinlay
948f304bb9 Merge pull request #1511 from thelounge/xpaw/checkered-background
Checkered background for transparent images in image viewer
2017-09-16 20:53:13 +01:00
Al McKinlay
ec6307d55f Merge pull request #1517 from thelounge/xpaw/move-unread-in-history
Move unread marker when loading more history
2017-09-16 20:51:55 +01:00
Al McKinlay
aace1aab05 Merge pull request #1528 from thelounge/xpaw/move-log-function
Move user log function where it belongs
2017-09-16 20:50:06 +01:00
Pavel Djundik
59a5f6237c Merge pull request #1532 from thelounge/greenkeeper/eslint-4.7.0
Update eslint to the latest version 🚀
2017-09-16 10:32:42 +03:00
Jérémie Astori
3bf6ba5802 Merge pull request #1531 from thelounge/greenkeeper/webpack-3.6.0
Update webpack to the latest version 🚀
2017-09-16 02:47:26 -04:00
greenkeeper[bot]
90d6916b10 chore(package): update eslint to version 4.7.0 2017-09-15 20:57:02 +00:00
greenkeeper[bot]
474fbc0a9c chore(package): update webpack to version 3.6.0 2017-09-15 09:06:48 +00:00
Max Leiter
c4ebd141c5 Add anchor tag to URL to signify open page for reloading 2017-09-14 13:25:20 -07:00
Pavel Djundik
9e008a76b7 Merge pull request #1527 from dgw/kick-modes
Display correct kick modes
2017-09-14 10:46:35 +03:00
Pavel Djundik
17dd18a605 Write correct timestamp to user log 2017-09-14 10:42:21 +03:00
Pavel Djundik
79eb83d82f Move userLog function where it belongs
Fixes #438
2017-09-14 10:41:50 +03:00
dgw
e4c6d78762 Display correct kick modes
Defining both the kicker and the target before any code touches the
channel user list ensures that everything is passed to the template.
2017-09-14 02:39:00 -05:00
Al McKinlay
676cc01203 Merge pull request #1518 from thelounge/xpaw/cleanup-jquery
Remove unnecessary end() calls
2017-09-14 07:25:55 +01:00
Al McKinlay
171449c81e Merge pull request #1519 from thelounge/xpaw/fix-show-more-when-empty
Fix requesting last messages when no message id is known
2017-09-14 07:25:17 +01:00
Al McKinlay
f2fb05e7c9 Merge pull request #1526 from thelounge/astorije/rm-clear
Get rid of `/clear` command and keybind
2017-09-14 07:23:36 +01:00
Pavel Djundik
4431616822 Merge pull request #1476 from eliemichel/pr-part-other
Take an optional argument in /part
2017-09-14 09:20:44 +03:00
Élie Michel
f26c2dad0f
Take an optional argument in /part
Fix #1430
2017-09-13 20:24:45 -04:00
Jérémie Astori
92f8c2bfef
Get rid of /clear command and keybind
Since the introduction of infinite scrolling, `/clear` is now broken. As far as I can tell, there is no way to reproduce something decent (and working!) without drastically changing its behavior from "hide the messages in current channel" to "permanently destroy all messages in memory in the current channel", which is not a great change to introduce sneakily 😂.

The code for this was very trivial, so removing it now until there is a better way to do so, if this is ever possible.

Also, `/clear` was not even autocompleted, sooo...
2017-09-13 20:06:03 -04:00
ssstratos
6708261368 Add touch-action to more elements
- Add touch-action: pan-y to .container, .networks, .sidebar, #form
#input
- Add touch-action: none to body
2017-09-14 01:04:03 +03:00
Jérémie Astori
376e7a60fb Merge pull request #1524 from thelounge/astorije/fix-hover
Fix hovering condensed messages
2017-09-13 01:53:12 -04:00
Jérémie Astori
c63dfc66b3 Merge pull request #1521 from thelounge/greenkeeper/fs-extra-4.0.2
Update fs-extra to the latest version 🚀
2017-09-13 01:47:39 -04:00
Jérémie Astori
6d08b8d087
Fix hovering condensed messages 2017-09-13 01:36:11 -04:00
greenkeeper[bot]
0e40d7f82f fix(package): update fs-extra to version 4.0.2 2017-09-12 23:08:50 +00:00
ssstratos
32da456c84 Add touch-action to Messages, Sidebar and User list
This commit fixes #1035
2017-09-12 23:50:31 +03:00
Pavel Djundik
14cac93e10 Fix requesting last messages when no message id is known
Fixes #1460
2017-09-12 16:05:40 +03:00
Pavel Djundik
712bdafd9e Remove unnecessary end() calls 2017-09-12 15:52:16 +03:00
Pavel Djundik
706943af26 Move unread marker when loading more history
Fixes #835
2017-09-12 15:40:26 +03:00
Pavel Djundik
15b922595f Merge pull request #1515 from thelounge/greenkeeper/mocha-3.5.3
Update mocha to the latest version 🚀
2017-09-12 15:25:23 +03:00
Pavel Djundik
103b315ccf Merge pull request #1516 from thelounge/greenkeeper/web-push-3.2.3
Update web-push to the latest version 🚀
2017-09-12 15:25:11 +03:00
greenkeeper[bot]
519b5de4ef fix(package): update web-push to version 3.2.3 2017-09-12 01:27:40 +00:00
greenkeeper[bot]
b2a3b3c0f3 chore(package): update mocha to version 3.5.3 2017-09-11 22:04:51 +00:00
Pavel Djundik
bc9faa733a Merge pull request #1514 from thelounge/greenkeeper/mocha-3.5.2
Update mocha to the latest version 🚀
2017-09-11 21:39:15 +03:00
Pavel Djundik
8de7f44b98 Merge pull request #1500 from thelounge/xpaw/even-more-modules
Move even more code out of lounge.js
2017-09-11 21:38:56 +03:00
Pavel Djundik
17127e9fc2 Move keybinds to another file 2017-09-11 20:48:35 +03:00
Pavel Djundik
41b9ffb5e7 Move 'show more' to same event file 2017-09-11 20:48:35 +03:00
Pavel Djundik
17af195994 Move message notification code to msg file 2017-09-11 20:48:35 +03:00
greenkeeper[bot]
c3f141f82e chore(package): update mocha to version 3.5.2 2017-09-10 22:07:29 +00:00
Jérémie Astori
a921d7bf04
[Squash me] Fix bug refusing to switch channel when clicking back after closing image viewer 2017-09-10 15:00:27 -04:00
Jérémie Astori
b33ea0f567
Squash me when ready 2017-09-10 14:28:00 -04:00
Jérémie Astori
2d61c018b0 Merge pull request #1513 from thelounge/greenkeeper/mocha-3.5.1
Update mocha to the latest version 🚀
2017-09-10 14:20:25 -04:00
greenkeeper[bot]
2a510c38a2 chore(package): update mocha to version 3.5.1 2017-09-10 05:54:46 +00:00
Jérémie Astori
bb432497be
Handle browser history when opening/closing image preview 2017-09-09 16:40:34 -04:00
Jérémie Astori
a44eea61a1 Merge pull request #1512 from thelounge/xpaw/fix-black-previews
Fix image viewer turning black sometimes
2017-09-09 12:45:08 -04:00
Pavel Djundik
67da82c151 Fix image viewer turning black sometimes 2017-09-09 18:46:49 +03:00
Jérémie Astori
9d7d5a110c Merge pull request #1509 from thelounge/astorije/fix-expand-preview
Fix `/expand` command also expanding condensed status messages
2017-09-09 10:47:57 -04:00
Pavel Djundik
f2bc5adf7b Checkered background for transparent images in image viewer 2017-09-09 14:09:23 +03:00
Jérémie Astori
d82f4007ec
Fix /expand command also expanding condensed status messages 2017-09-07 19:50:00 -04:00
Pavel Djundik
3b049f174c Merge pull request #1507 from thelounge/greenkeeper/webpack-3.5.6
Update webpack to the latest version 🚀
2017-09-07 08:29:15 +03:00
Jérémie Astori
4d8fae1ab8 Merge pull request #1508 from thelounge/xpaw/msg-preview-idle
Render link previews in browser idle event
2017-09-06 19:34:23 -04:00
Pavel Djundik
c81a74a20c Render link previews in browser idle event
Fixes #1504
2017-09-06 22:03:56 +03:00
greenkeeper[bot]
86289f0a6e chore(package): update webpack to version 3.5.6 2017-09-06 16:08:19 +00:00
Pavel Djundik
9a981a526e Merge pull request #1505 from thelounge/greenkeeper/nyc-11.2.1
Update nyc to the latest version 🚀
2017-09-06 19:07:22 +03:00
greenkeeper[bot]
8304f5da81 chore(package): update nyc to version 11.2.1 2017-09-06 06:33:07 +00:00
Jérémie Astori
87d6918358 Merge pull request #1495 from thelounge/xpaw/only-order-autocomplete-on-msg
Only change nick autocompletion when receiving a message
2017-09-05 19:50:08 -04:00
Pavel Djundik
65e4e386da Merge pull request #1499 from thelounge/greenkeeper/stylelint-8.1.1
chore(package): update stylelint to version 8.1.1
2017-09-05 18:36:21 +03:00
Pavel Djundik
e2a122c3ca Only change nick autocompletion when receiving a message
And other minor optimizations and fixes
2017-09-05 18:28:01 +03:00
Al McKinlay
3d2d8495f5 Merge pull request #1498 from thelounge/greenkeeper/nyc-11.2.0
Update nyc to the latest version
2017-09-05 16:17:45 +01:00
greenkeeper[bot]
07de177b0e chore(package): update stylelint to version 8.1.1
Closes #1494
2017-09-05 11:45:00 +00:00
Al McKinlay
845db70969 Merge pull request #1496 from MaxLeiter/commands
Add /list to autocomplete
2017-09-05 10:15:11 +01:00
greenkeeper[bot]
f885ce456e chore(package): update nyc to version 11.2.0 2017-09-05 05:29:05 +00:00
Max Leiter
d80efdfe23 Add /list to autocomplete 2017-09-04 15:33:33 -07:00
Pavel Djundik
6b1be79026 Merge pull request #1493 from thelounge/greenkeeper/eslint-4.6.1
Update eslint to the latest version 🚀
2017-09-04 09:06:16 +03:00
Pavel Djundik
099fb058c6 Merge pull request #1478 from eliemichel/pr-proper-ldap--rebased
Implement a proper LDAP authentication process
2017-09-04 09:02:58 +03:00
greenkeeper[bot]
477736a231 chore(package): update eslint to version 4.6.1 2017-09-03 21:53:07 +00:00
Elie Michel
32e1a36980 Generalize auth plugin fallback mechanism
@astorije this is for you ;)
https://github.com/thelounge/lounge/pull/1478#discussion_r136492534
2017-09-03 23:00:25 +02:00
Elie Michel
435e14669b Change string formatting style 2017-09-03 23:00:25 +02:00
Elie Michel
803cff92c8 Set public to true for websocket tests
A side effect of LDAP auth tests was breaking these other tests,
that should have already forced public instance in their pre-condition.
2017-09-03 23:00:24 +02:00
Elie Michel
00e54e49ac Add tests for LDAP auth plugin 2017-09-03 23:00:24 +02:00
Elie Michel
12ba10f688 Reorganize auth plugins 2017-09-03 23:00:23 +02:00
Élie Michel
cfa6db10c7 Make new LDAP options backward compatible
Also draft some kind of plugin system for auth, although it essentially consists in writing a function
and there is no mechanism to automatically fallback from one auth to another
2017-09-03 23:00:23 +02:00
Jérémie Astori
d7d185d06a Merge pull request #1492 from thelounge/xpaw/simpler-server-error
One line server startup errors
2017-09-03 14:37:03 -04:00
Pavel Djundik
c845d5723d One line server startup errors 2017-09-03 15:13:56 +03:00
Pavel Djundik
704dae9dec Merge pull request #1464 from thelounge/xpaw/clipboard
Format messages on copy
2017-09-03 14:19:21 +03:00
Pavel Djundik
7ee808169d Format messages on copy
Fixes #1146
2017-09-03 11:27:53 +03:00
Pavel Djundik
43c8f6fd96 Merge pull request #1485 from thelounge/xpaw/always-condense
Always create condensed wrapper
2017-09-03 11:26:31 +03:00
Jérémie Astori
f9757786be Merge pull request #1490 from thelounge/astorije/bump-prefetch-limit
Bump default image prefetch limit
2017-09-02 20:31:14 -04:00
Jérémie Astori
d543123095 Bump default image prefetch limit to 2MB 2017-09-02 21:17:46 +03:00
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
Jérémie Astori
77e9cb65d5 Merge pull request #1318 from thelounge/xpaw/infinite-scroll
Automatically load history when scrolling upwards
2017-09-01 19:45:49 -04: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
08fbcd4958 Merge pull request #1487 from thelounge/greenkeeper/handlebars-loader-1.6.0
Update handlebars-loader to the latest version 🚀
2017-09-01 19:15:31 -04:00
Jérémie Astori
f18ba07be6 Merge pull request #1488 from thelounge/xpaw/eslint-semicolons
Enforce semicolon spacing
2017-09-01 19:12:11 -04:00
Pavel Djundik
111453aeaf Enforce semicolon spacing 2017-09-01 21:17:45 +03:00
greenkeeper[bot]
9b19024ba5 chore(package): update handlebars-loader to version 1.6.0 2017-09-01 17:14:54 +00:00
Pavel Djundik
9e1296d303 Merge pull request #1479 from thelounge/xpaw/unix-socket
Add support for binding to unix sockets
2017-09-01 11:25:00 +03:00
Pavel Djundik
f65fb6573b Merge pull request #1481 from MaxLeiter/emoji-title
Change vertical alignment of emoji in topics, fixes #1480
2017-09-01 11:23:39 +03:00
Pavel Djundik
4a6b79d147 Merge pull request #1482 from thelounge/greenkeeper/chai-4.1.2
Update chai to the latest version 🚀
2017-09-01 10:22:53 +03: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
Jérémie Astori
1c1faf2dd9 Merge pull request #1465 from thelounge/astorije/rm-remember-me
Remove the "Stay signed in" checkbox at login
2017-08-31 23:38:59 -04:00
Jérémie Astori
ad8ec4b1e6
Remove the "Stay signed in" checkbox at login
This option is less and less the norm on modern webapps, it is fair to assume this is the default behavior. In fact, we were making it the default.

But more importantly, coming soon is the ability of remotely logging out of your other sessions, which is well handled through token deletion. That means we need to know about said tokens, which are not sent in no-"Stay signed in" version.
2017-08-31 23:07:43 -04:00
greenkeeper[bot]
4381395ca6 chore(package): update chai to version 4.1.2 2017-08-31 22:04:54 +00:00
Max Leiter
05aa5da6e0 Change vertical alignment of emoji in topics, fixes #1480 2017-08-31 13:53:21 -07:00
Pavel Djundik
918b7382b8 Merge pull request #1475 from thelounge/xpaw/condensed-css
Implement condensed messages option entirely with CSS
2017-08-31 22:16:42 +03:00
Pavel Djundik
271948b0fb Merge pull request #1477 from thelounge/xpaw/graceful-quit
Gracefully quit on Ctrl+C
2017-08-31 22:12:08 +03:00
Pavel Djundik
b79a6cce0c Add support for binding to unix sockets
Fixes #686.
Fixes #691.
2017-08-31 21:56:20 +03:00
dgw
bed6053cec Add /cycle command (a.k.a. /rejoin)
Closes #1436
2017-08-31 06:43:32 -05:00
Jérémie Astori
a53169627e Merge pull request #1473 from thelounge/greenkeeper/jquery-textcomplete-1.8.3
Update jquery-textcomplete to the latest version 🚀
2017-08-30 21:00:20 -04:00
greenkeeper[bot]
1e54018f15
chore(package): update jquery-textcomplete to version 1.8.4 2017-08-30 20:52:32 -04:00
Pavel Djundik
0d57df81af Gracefully quit on Ctrl+C
Fixes #268
2017-08-30 20:26:45 +03:00
Pavel Djundik
d814abd1cf Implement condensed messages option entirely with CSS
Fixes #1432
2017-08-30 15:43:31 +03:00
Jérémie Astori
5821247b3d Merge pull request #1472 from thelounge/xpaw/css-escape
Escape channel names in slugify helper correctly
2017-08-29 21:28:10 -04:00
Jérémie Astori
2920f5f24a Merge pull request #1474 from thelounge/xpaw/fix-user-remove
Deleting a user should log them out
2017-08-29 21:27:06 -04:00
Pavel Djundik
05f8bfe906 Deleting a user should log them out
Fixes #916
2017-08-29 15:43:52 +03:00
Pavel Djundik
53ebee195c Escape channel names in slugify helper correctly
Fixes #1172.
2017-08-29 12:38:29 +03:00
Pavel Djundik
d8f2d7fc10 Merge pull request #1452 from thelounge/xpaw/refactor-dates
Completely refactor how date markers are inserted
2017-08-29 11:59:35 +03:00
Élie Michel
19710b90c0 Merge branch 'master' into pr-proper-ldap 2017-08-29 08:42:26 +02:00
Jérémie Astori
c8a78d447a Merge pull request #1466 from thelounge/greenkeeper/npm-run-all-4.1.1
Update npm-run-all to the latest version 🚀
2017-08-28 20:40:57 -04:00
greenkeeper[bot]
0929358b9a chore(package): update npm-run-all to version 4.1.1 2017-08-28 08:33:07 +00: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
Pavel Djundik
495d8c3e04 Merge pull request #1448 from thelounge/xpaw/quit-promo
Set default quit default message
2017-08-26 20:34:32 +03:00
Jérémie Astori
f7ecd0a053 Merge pull request #1350 from thelounge/xpaw/proper-cli
Only create config folder in 'start' command
2017-08-26 12:17:10 -04:00
Jérémie Astori
234fd31411
Clarify some users.length that were forgotten in a previous PR 2017-08-26 12:04:13 -04:00
Pavel Djundik
252dca3d3f
Only create config folder in 'start' command
Fixes #520.
Fixes #1288.
2017-08-26 12:04:13 -04:00
Jérémie Astori
330bb9a84e Merge pull request #1463 from thelounge/astorije/better-error
Improve output of WebPush error
2017-08-26 12:03:08 -04:00
Jérémie Astori
9c5071ec98
Improve output of WebPush error
Without this, the error displayed contains a lot of superfluous information, repeated.
2017-08-26 11:47:35 -04:00
Jérémie Astori
45eef67163 Merge pull request #1462 from thelounge/greenkeeper/npm-run-all-4.1.0
Update npm-run-all to the latest version 🚀
2017-08-26 10:20:31 -04:00
greenkeeper[bot]
327c0fdb6a chore(package): update npm-run-all to version 4.1.0 2017-08-26 14:08:04 +00:00
Pavel Djundik
6ba2b8a3d1 Merge pull request #1458 from PolarizedIons/spell-check
Fix general spelling errors
2017-08-25 19:13:04 +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
Jérémie Astori
d4e02d96fa Merge pull request #1451 from thelounge/fix-condensed-time
Do not hide time from events in condensed block
2017-08-24 19:31:22 -04:00
Pavel Djundik
4a3026e11b Set default quit default message 2017-08-24 21:07:47 +03:00
Pavel Djundik
1e2d35f206 Move all auto completion code to a separate file 2017-08-24 17:44:40 +03:00
Pavel Djundik
5785af6738 Do not hide time from events in condensed block 2017-08-24 15:21:07 +03:00
Pavel Djundik
60e69a83fc Merge pull request #1387 from yashsriv/extend/fuzzy
Extend fuzzy search in autocomplete to all strategies
2017-08-24 12:01:34 +03:00
Pavel Djundik
06741a1e1c Merge pull request #1153 from bews/bews/dev-8-font
Bigger font size
2017-08-24 11:56:30 +03:00
Pavel Djundik
70ea6e73a0 Add findEmoji tests 2017-08-24 11:54:28 +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
Jérémie Astori
e292ef2bed Merge pull request #1443 from thelounge/astorije/improve-user-mgmt-cli
Improve CLI user management
2017-08-23 19:49:18 -04:00
Jérémie Astori
ed68ff4a34
Make sure CLI does not crash on undefined.length when we figured out users could not be read already 2017-08-23 13:21:15 -04:00
Jérémie Astori
cdbefd3905
Make The Lounge private mode by default 2017-08-23 13:21:14 -04:00
Jérémie Astori
684f1a641d
Make sure server is running before loading users 2017-08-23 13:21:14 -04:00
Jérémie Astori
aa49856446
Warn when adding or listing users in public mode 2017-08-23 13:21:14 -04:00
Jérémie Astori
f221121998
Inform when no users during autoload to take into account removing the last user 2017-08-23 13:21:14 -04:00
Jérémie Astori
90842267e8
Do not prevent server to run when there are no users in private mode 2017-08-23 13:20:46 -04:00
Jérémie Astori
9811f2be02 Merge pull request #1444 from thelounge/xpaw/protect-history-loading
Do not unintentionally send incorrect messages from history
2017-08-23 09:27:12 -04:00
Pavel Djundik
c24e48bdb5 Merge pull request #1445 from thelounge/xpaw/gitignore-vapid-keys
Ignore vapid.json generated during tests
2017-08-23 14:23:54 +03:00
Pavel Djundik
1bf2be1b51 Do not unintentionally send incorrect messages from history 2017-08-23 14:17:53 +03:00
Pavel Djundik
45d974a0c3 Ignore vapid.json generated during tests 2017-08-23 12:36:35 +03:00
Jérémie Astori
91ecd99c84 Merge pull request #1442 from thelounge/astorije/fix-condensed-time
Fix time placeholder showing on mobile format for condensed messages
2017-08-23 02:48:35 -04:00
Jérémie Astori
51bd46b871
Fix time placeholder showing on mobile format for condensed messages
As an extra, make sure time placeholder cannot be selected anymore, and do not do an extra call to `tz` helper when time is not relevant/displayed.

I tried to entirely remove `time`/`from` blocks, but because of flexbox layout, that broke message alignment...
2017-08-23 02:23:54 -04: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
Jérémie Astori
b0b2518e10 Merge pull request #1438 from thelounge/astorije/env-var-doc
Add documentation for LOUNGE_HOME environment variable in the CLI helper
2017-08-22 09:30:51 -04:00
Jérémie Astori
9917b9259f Merge pull request #1356 from MaxLeiter/MaxLeiter/two-char-emoji
Only match emoji autocomplete after two characters
2017-08-22 09:23:11 -04:00
Max Leiter
64ea29f46d Only match emoji autocomplete after two characters 2017-08-22 11:04:38 +03:00
Pavel Djundik
36f2f644ea Add tests for stripping formatting 2017-08-22 10:54:18 +03:00
Pavel Djundik
0ac3ba28e1 Web Push Notifications 2017-08-22 10:54:18 +03:00
Jérémie Astori
a99ea14dc0 Merge pull request #1439 from thelounge/astorije/more-standard-css
Get closer to stylelint's standard config
2017-08-21 13:54:58 -04:00
Jérémie Astori
e5ee53fc1f
Use leading-zero notation to get closer to stylelint standard config 2017-08-21 02:22:40 -04:00
Jérémie Astori
5d77bcb7c8
Use double-colon on pseudo elements to get closer to stylelint standard config 2017-08-21 02:18:33 -04:00
Jérémie Astori
ac3ce74343
Read default LOUNGE_HOME from .lounge_home file 2017-08-21 02:03:40 -04:00
Jérémie Astori
98bfe349d9
Add documentation for LOUNGE_HOME environment variable in the CLI helper 2017-08-21 01:49:32 -04:00
Pavel Djundik
1e9910f899 Merge pull request #1437 from thelounge/xpaw/cleanup-condensed
Cleanup condensed appendMessage
2017-08-20 19:37:32 +03:00
Pavel Djundik
0c0d45ff4f Cleanup condensed appendMessage 2017-08-19 21:47:23 +03:00
Pavel Djundik
f2f350c0c5 Merge pull request #1435 from thelounge/greenkeeper/eslint-4.5.0
Update eslint to the latest version 🚀
2017-08-19 11:28:03 +03:00
Pavel Djundik
a7f336507a Merge pull request #1434 from thelounge/greenkeeper/babel-loader-7.1.2
Update babel-loader to the latest version 🚀
2017-08-19 11:27:37 +03:00
greenkeeper[bot]
1314ecd77d chore(package): update eslint to version 4.5.0 2017-08-19 03:12:36 +00:00
greenkeeper[bot]
ae297e4269 chore(package): update babel-loader to version 7.1.2 2017-08-18 23:02:09 +00:00
Jan Visser
43cc2792c9 Take into account wordboundaries for custom highlighting 2017-08-18 14:26:41 +02:00
Jérémie Astori
14eb0c0d7f Merge pull request #1427 from thelounge/readme-features
Add feature overview in readme
2017-08-17 23:22:34 -04:00
Pavel Djundik
533fe25db4
Add feature overview in readme 2017-08-17 23:14:27 -04:00
Jérémie Astori
3e39bdb329 Merge pull request #1425 from thelounge/greenkeeper/babel-core-6.26.0
Update babel-core to the latest version 🚀
2017-08-16 22:38:30 -04:00
Jérémie Astori
3c117a6b88 Merge pull request #1426 from thelounge/update-packages
Update express and ua-parser-js to latest versions
2017-08-16 21:33:30 -04:00
Pavel Djundik
e8b83b85c2 Update express and ua-parser-js to latest versions 2017-08-16 22:26:12 +03:00
greenkeeper[bot]
697ae217b9 chore(package): update babel-core to version 6.26.0 2017-08-16 17:14:29 +00:00
Jérémie Astori
10d38e107c Merge pull request #1419 from thelounge/xpaw/remove-homedir-polyfill
Remove os.homedir() polyfill
2017-08-16 12:56:55 -04:00
Pavel Djundik
8343f3cdcf
Remove os.homedir() polyfill 2017-08-16 12:48:07 -04:00
Jérémie Astori
8dd6b0f25a Merge pull request #1424 from thelounge/greenkeeper/webpack-3.5.5
Update webpack to the latest version 🚀
2017-08-16 12:14:23 -04:00
greenkeeper[bot]
047be5d638 chore(package): update webpack to version 3.5.5 2017-08-16 15:17:13 +00:00
Pavel Djundik
21aba63e09 Merge pull request #1417 from thelounge/astorije/fix-full-width-status-messages
Fix expanded status messages not taking up full line width
2017-08-16 11:09:38 +03:00
Pavel Djundik
e6200f1461 Merge pull request #1421 from thelounge/yamanickill/1420-user-options-falsey
Fix issue with falsey user options getting overridden by truthy defaults
2017-08-16 11:09:22 +03: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
aef1bb3acc Merge pull request #1418 from thelounge/astorije/cli-config-take-two
Document recent CLI changes in help + rename to .lounge_home
2017-08-16 09:34:47 +03:00
Jérémie Astori
507cc61d5c
Rename new file holding config location for consistency
`.lounge_config` is misleading as this file does not contain the config itself. Also, env var is called `LOUNGE_HOME`, deprecated flag is `--home`, so it makes more sense that way.
2017-08-16 00:34:29 -04:00
Jérémie Astori
5e7a7a3870
Update CLI help with regard to recent deprecation of --home option
- Mark the option as deprecated (cannot be removed from the help, unfortunately)
- Add details to `lounge config` regarding `LOUNGE_HOME`
- Remove mention of `--home` in default config file
2017-08-16 00:33:33 -04:00
Jérémie Astori
f93634df39 Merge pull request #1416 from thelounge/xpaw/handle-distro-configs
Use .lounge_config to help distribution packages handle config paths right
2017-08-15 20:11:38 -04:00
Jérémie Astori
270fd8d4f9 Fix expanded status messages not taking up full line width 2017-08-15 20:06:18 -04:00
Pavel Djundik
5299d976c0 Use .lounge_config to help distribution packages handle config paths right 2017-08-15 21:57:47 +03:00
Pavel Djundik
6ce46a63bf Merge pull request #1412 from thelounge/xpaw/fix-uri
Do not throw an exception when URI parsing fails
2017-08-15 14:40:37 +03: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
bd530552c2 Merge pull request #1411 from thelounge/xpaw/refactor-auth
Refactor authentication flow
2017-08-13 16:35:23 -04: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
Jérémie Astori
0cdc2a0a04
Replace status message abbr with a tooltipped icon 2017-08-13 16:14:37 -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
Jérémie Astori
d87662482b Merge pull request #1409 from thelounge/xpaw/show-more-trim
Remove 10 second interval to trim buffer
2017-08-13 12:36:22 -04:00
Pavel Djundik
16cde4fcb2 Merge pull request #1407 from thelounge/greenkeeper/webpack-3.5.4
Update webpack to the latest version 🚀
2017-08-13 19:17:40 +03:00
Jérémie Astori
dff94cc6fd Merge pull request #1406 from thelounge/xpaw/storage-dereferencing
Correctly dereference stored images when leaving channels
2017-08-13 12:17:02 -04:00
Jérémie Astori
f688e8df6c Merge pull request #1410 from thelounge/xpaw/resolve-relative-uris
Resolve relative URIs in link previewer
2017-08-13 12:15:24 -04:00
Pavel Djundik
66ea26f4bd Resolve relative URIs in link previewer
Also adds support for image_src links
2017-08-13 13:06:01 +03:00
Pavel Djundik
e5ce2f2688 Remove 10 second interval to trim buffer
Fixes #96
2017-08-13 12:23:51 +03:00
greenkeeper[bot]
5bb500f384 chore(package): update webpack to version 3.5.4 2017-08-12 09:38:21 +00:00
Pavel Djundik
6f32e7ae75 Correctly dereference stored images when leaving channels
Fixes #1404
2017-08-11 15:02:58 +03:00
Pavel Djundik
d39e8ba9f8 Merge pull request #1397 from thelounge/greenkeeper/webpack-3.5.0
Update webpack to the latest version 🚀
2017-08-11 10:34:47 +03:00
greenkeeper[bot]
e394224868 chore(package): update webpack to version 3.5.3 2017-08-11 10:25:36 +03:00
Pavel Djundik
536498c53c Merge pull request #1405 from thelounge/greenkeeper/urijs-1.18.12
Update urijs to the latest version 🚀
2017-08-11 09:54:40 +03:00
greenkeeper[bot]
d63de95b4e fix(package): update urijs to version 1.18.12 2017-08-10 18:41:49 +00:00
Jérémie Astori
3822c11cc2 Merge pull request #1403 from thelounge/xpaw/loading-messages-text
Change history button text while loading
2017-08-09 18:33:13 -04:00
Pavel Djundik
6b00cdeba9 Change history button text while loading 2017-08-09 14:18:37 +03:00
Pavel Djundik
40c129dbb7 Merge pull request #1401 from thelounge/greenkeeper/urijs-1.18.11
Update urijs to the latest version 🚀
2017-08-09 13:08:34 +03:00
Jérémie Astori
053a0d0723 Merge pull request #1399 from thelounge/xpaw/correct-browser-name
Correctly append OS name
2017-08-08 21:49:19 -04:00
greenkeeper[bot]
fa2bd86d72 fix(package): update urijs to version 1.18.11 2017-08-08 21:03:21 +00:00
Pavel Djundik
25ac4d9e69 Correctly append OS name 2017-08-08 22:46:55 +03:00
Jérémie Astori
ff85b616f0 Merge pull request #1395 from thelounge/greenkeeper/eslint-4.4.0
Update eslint to the latest version 🚀
2017-08-08 00:36:24 -04:00
greenkeeper[bot]
b529a99cf6
chore(package): update eslint to version 4.4.1 2017-08-08 00:15:29 -04:00
Jérémie Astori
80e3302947 Merge pull request #1394 from thelounge/greenkeeper/chai-4.1.1
Update chai to the latest version 🚀
2017-08-05 12:27:42 -04:00
greenkeeper[bot]
c9e70ab94c chore(package): update chai to version 4.1.1 2017-08-05 07:53:19 +00:00
Jérémie Astori
5a6591112b Merge pull request #1199 from thelounge/xpaw/safer-auth-flow
Implement multiple sessions for users
2017-08-04 00:33:00 -04:00
Jérémie Astori
2df29db6e5 Merge pull request #1373 from thelounge/astorije/stack-overflow
Add Stack Overflow link in CONTRIBUTING file
2017-08-03 11:50:57 -04:00
Jérémie Astori
df6c6a3ab7 Merge pull request #1386 from thelounge/greenkeeper/fs-extra-4.0.1
Update fs-extra to the latest version 🚀
2017-08-02 14:43:09 -04:00
greenkeeper[bot]
1749279c0c
fix(package): update fs-extra to version 4.0.1 2017-08-02 13:57:44 -04:00
Jérémie Astori
99db108d9a Merge pull request #1388 from thelounge/greenkeeper/mocha-3.5.0
Update mocha to the latest version 🚀
2017-08-02 13:30:50 -04:00
Jérémie Astori
b280eeaf86
Add a SUPPORT file 2017-08-01 01:41:49 -04:00
Jérémie Astori
1629983a5d
Add Stack Overflow link in CONTRIBUTING file 2017-08-01 01:37:47 -04:00
Jérémie Astori
45276e3958 Merge pull request #1385 from thelounge/greenkeeper/irc-framework-2.9.1
Update irc-framework to the latest version 🚀
2017-08-01 01:29:11 -04:00
greenkeeper[bot]
497676c39d chore(package): update mocha to version 3.5.0 2017-07-31 20:53:36 +00:00
greenkeeper[bot]
2b23f630f1 fix(package): update irc-framework to version 2.9.1 2017-07-31 14:36:26 +00:00
Pavel Djundik
c14f7da1b2 Generate unique tokens for each login and session 2017-07-31 02:02:15 +03:00
Pavel Djundik
30e167c42c Merge pull request #1379 from thelounge/greenkeeper/irc-framework-2.9.0
Update irc-framework to the latest version 🚀
2017-07-31 01:59:49 +03:00
Pavel Djundik
f19581b41c Merge pull request #1382 from thelounge/greenkeeper/nyc-11.1.0
Update nyc to the latest version 🚀
2017-07-31 01:59:37 +03:00
Jérémie Astori
8e4582f3f5
2.4.0 2017-07-30 18:50:15 -04:00
Jérémie Astori
769fdab252
Remove temporary npm tag for pre-releases 2017-07-30 18:50:09 -04:00
Jérémie Astori
db9e34da8d
Add changelog entry for v2.4.0 2017-07-30 18:49:49 -04:00
greenkeeper[bot]
613e2ffda8 chore(package): update nyc to version 11.1.0 2017-07-29 20:42:05 +00:00
Niko Bews
b02db5f1c6 Bigger font size 2017-07-29 23:39:34 +03:00
Pavel Djundik
df698ab3ea Correctly send /list parameters 2017-07-28 13:53:41 +03:00
greenkeeper[bot]
81ac90f2c1 fix(package): update irc-framework to version 2.9.0 2017-07-27 19:46:47 +00:00
Jérémie Astori
1bcf59f704
2.4.0-rc.2 2017-07-27 13:36:51 -04:00
Jérémie Astori
5e9d203f3e
Add changelog for v2.4.0-rc.2 2017-07-27 13:36:30 -04:00
Pavel Djundik
5ccc184509 Merge pull request #1378 from thelounge/astorije/install-urijs
Move urijs from devDependencies to dependencies
2017-07-27 11:50:55 +03:00
Jérémie Astori
8115dea4bf Move urijs from devDependencies to dependencies
https://github.com/thelounge/lounge/pull/1276 refactored previews, and in particular [reused our link-in-messages detection](https://github.com/thelounge/lounge/pull/1276/files#diff-4805d608cbc31851a7bee1bf4c7e247eR6) instead of [having a separate logic](https://github.com/thelounge/lounge/pull/1276/files#diff-4805d608cbc31851a7bee1bf4c7e247eL19). 

Unfortunately, this loads a client library, which requires `urijs`. Since these are built at release time, we were not including this package in the production dependencies, and it is now breaking at install time.

This might happen again if we add a client dependency in this file and forget it is also loaded by the server. We could in the future either extract this logic into a shared location, or we could move this logic entirely on the server (or maybe many other options), but in the meantime this will fix the issue in `v2.4.0-rc.1`.
2017-07-27 02:04:47 -04:00
Jérémie Astori
9f9b300d26
2.4.0-rc.1 2017-07-27 00:50:54 -04:00
Jérémie Astori
365bed34a3
Prepare changelog entry for v2.4.0-rc.1 and set up pre-release publish tag 2017-07-27 00:50:42 -04:00
Jérémie Astori
8aa89d7da2 Merge pull request #1366 from thelounge/astorije/persist-preview-toggle
Keep track of preview visibility on the server so it persists at page reload
2017-07-26 18:26:12 -04: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
Jérémie Astori
e34da8a9f3 Merge pull request #1376 from thelounge/greenkeeper/webpack-3.4.1
Update webpack to the latest version 🚀
2017-07-26 18:07:09 -04:00
Pavel Djundik
5ffecac70d Merge pull request #1374 from thelounge/astorije/fix-hover-glitch
Remove user link color override on dark theme
2017-07-26 20:04:48 +03:00
greenkeeper[bot]
dddfc78279 chore(package): update webpack to version 3.4.1 2017-07-26 09:02:43 +00:00
Jérémie Astori
60bf17fe91
Remove user link color override on dark theme
This fixes a UI glitch on hover when colored nicknames are disabled on Morning and Zenburn.
2017-07-26 01:38:51 -04:00
Jérémie Astori
1f6ac656aa Merge pull request #1370 from thelounge/xpaw/image-viewer-focus
Remove focus from input when opening image viewer
2017-07-25 12:41:13 -04:00
Jérémie Astori
30a1bb7b9b Merge pull request #1371 from thelounge/greenkeeper/webpack-3.4.0
Update webpack to the latest version 🚀
2017-07-25 12:37:03 -04:00
Pavel Djundik
45a2d074fb Remove focus from input when opening image viewer
Fixes #1342
2017-07-25 18:07:14 +03:00
greenkeeper[bot]
334768d5d5 chore(package): update webpack to version 3.4.0 2017-07-25 14:41:38 +00:00
Pavel Djundik
2a7dadd6ee Merge pull request #1369 from thelounge/greenkeeper/semver-5.4.0
Update semver to the latest version 🚀
2017-07-25 11:29:36 +03:00
greenkeeper[bot]
8a7b0c1440
fix(package): update semver to version 5.4.1 2017-07-24 19:24:49 -04: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
8dcb4700e3 Merge pull request #1368 from thelounge/astorije/rm-viewer-blur
Remove background blur filter/transition when opening the image viewer
2017-07-24 19:21:27 -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
2a81af6949 Merge pull request #1365 from thelounge/astorije/image-viewer-previous-next
Add Previous/Next cycling buttons to the image viewer
2017-07-24 01:47:53 -04:00
Jérémie Astori
dc33b3ea95 Merge pull request #1363 from thelounge/xpaw/fix-preview-overflow
Fix link previews not truncating correctly
2017-07-24 01:47:03 -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
52d85559aa Fix link previews not truncating correctly 2017-07-22 12:33:49 +03:00
Jérémie Astori
30cf980506 Merge pull request #1359 from thelounge/xpaw/fix-link-previews
Fix remaining issues with link previews
2017-07-22 01:24:13 -04:00
Jérémie Astori
e73f82e46c Merge pull request #1361 from thelounge/xpaw/fix-mobile-zalgo
Hide overflow on entire message row
2017-07-21 23:01:08 -04:00
Jérémie Astori
2102c79835 Merge pull request #1362 from thelounge/greenkeeper/eslint-4.3.0
Update eslint to the latest version 🚀
2017-07-21 23:00:15 -04:00
greenkeeper[bot]
f35fc4acf3 chore(package): update eslint to version 4.3.0 2017-07-21 16:46:00 +00: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
74ca130d51 Hide overflow on entire message row
Fixes #1360
2017-07-21 15:00:42 +03:00
Pavel Djundik
f642a3c776 Merge pull request #1353 from thelounge/astorije/better-preview-ordering
Enforce correct order for previews on server-side prefectch rather than at client parsing
2017-07-21 11:12:37 +03:00
Pavel Djundik
7d981d60d8 Recycle existing User objects in names event
This is required to keep lastMessage correct. This will also be useful for the away tracking PR.
2017-07-21 11:05:37 +03:00
Pavel Djundik
48d367e379 Use findUser 2017-07-21 11:05:37 +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
Al McKinlay
d839a9e64a Merge pull request #1319 from MaxLeiter/patch-1
Update README for when to run `npm run build`
2017-07-20 08:56:26 +01:00
Max Leiter
e0d6e11d4c Update README directions on when to npm run build
need to `npm run build` a lot more since webpack was added
2017-07-19 22:28:02 -07:00
Jérémie Astori
4e7eed7958 Merge pull request #1334 from MaxLeiter/MaxLeiter/emoji
Emoji fuzzysearching
2017-07-20 01:20:57 -04:00
Jérémie Astori
9a5f577ae8 Merge pull request #1354 from thelounge/yamanickill/more-index
Change more to use id rather than count.
2017-07-20 01:18:52 -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
f88d1e3bef Merge pull request #1242 from starquake/newlines-fix
Correctly show whitespace and newlines in messages
2017-07-19 02:05:31 -04:00
Jérémie Astori
03d6f284fb Merge pull request #1330 from MaxLeiter/MaxLeiter/TIME
Add SOURCE CTCP Command
2017-07-19 02:00:50 -04:00
Jérémie Astori
c6dd350a0b Merge pull request #1352 from thelounge/xPaw/kick-target-mode
Fix incorrect mode on kick target
2017-07-18 12:35:53 -04:00
Jan Visser
f0e6e397a4 Correctly handle multiple successive whitespace characters 2017-07-18 16:54:35 +02:00
Pavel Djundik
70d09841d9 Fix incorrect mode on kick target 2017-07-18 17:38:24 +03:00
Pavel Djundik
488dd7aeb4 Merge pull request #1347 from thelounge/astorije/fix-empty-preview
Hide empty preview divs when there are no previews loaded
2017-07-18 15:44:51 +03:00
Pavel Djundik
ff757d4386 Merge pull request #1348 from thelounge/astorije/fix-action-previews
Fix previews in actions ("/me") after page reload
2017-07-18 15:44:31 +03:00
Pavel Djundik
06d0189237 Merge pull request #1307 from thelounge/xpaw/image-proxy
Store preview images on disk for privacy, security and caching
2017-07-18 11:47:05 +03:00
Pavel Djundik
f35a2809a7 Store preview images on disk for privacy, security and caching 2017-07-18 11:37:16 +03: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
e5bace1794
Hide empty preview divs when there are no previews loaded 2017-07-18 00:37:45 -04:00
Jérémie Astori
ce0e460368 Merge pull request #1325 from thelounge/astorije/image-viewer
An image viewer popup for thumbnails and image previews
2017-07-18 00:09:21 -04:00
Pavel Djundik
8727957710 Merge pull request #1345 from MaxLeiter/patch-3
Update README badge to new demo URL
2017-07-18 01:20:46 +03:00
Max Leiter
2fdd4ab16e Update README badge to new demo URL 2017-07-17 15:17:01 -07:00
Max Leiter
58cf481d86 Add SOURCE CTCP Command 2017-07-17 11:09:20 -07:00
Jérémie Astori
511b173b6f
Add an image viewer for thumbnails and image previews 2017-07-16 19:25:48 -04:00
Jérémie Astori
9735f2b7a1 Merge pull request #1340 from thelounge/greenkeeper/stylelint-8.0.0
Update stylelint to the latest version 🚀
2017-07-16 13:06:07 -04:00
greenkeeper[bot]
b7a1700908 chore(package): update stylelint to version 8.0.0 2017-07-16 15:56:58 +03:00
Jérémie Astori
a010973766
Fix some button styling 2017-07-15 12:27:39 -04:00
Pavel Djundik
1ee67abd72 Merge pull request #1338 from thelounge/greenkeeper/webpack-3.3.0
Update webpack to the latest version 🚀
2017-07-15 17:58:13 +03:00
Jérémie Astori
dedb3d0381 Merge pull request #1332 from thelounge/greenkeeper/fs-extra-4.0.0
Update fs-extra to the latest version 🚀
2017-07-15 10:50:21 -04:00
greenkeeper[bot]
bcf11eca55 chore(package): update webpack to version 3.3.0 2017-07-15 14:07:12 +00:00
Pavel Djundik
265673674d Merge pull request #1326 from MaxLeiter/MaxLeiter/readme-image-update
Update screenshot in README
2017-07-15 12:12:17 +03:00
Pavel Djundik
e2c5468d27 Merge pull request #1328 from thelounge/xpaw/remove-ie-compat
Remove X-UA-Compatible
2017-07-15 11:56:38 +03:00
Pavel Djundik
4837699d5c Merge pull request #1329 from MaxLeiter/MaxLeiter/safari-icon
Add mask-icon for pinned safari tab
2017-07-15 11:54:04 +03:00
Pavel Djundik
7869f09949 Merge pull request #1336 from thelounge/astorije/fix-autocomplete-transition
Remove "in" transition on autocomplete items to fix a visual glitch on value refresh
2017-07-15 11:48:46 +03:00
Pavel Djundik
244d0f84f8 Merge pull request #1335 from thelounge/astorije/fix-morning-toggle
Fix preview toggle button background on Morning
2017-07-15 11:42:52 +03:00
Max Leiter
46b7296b87 Add mask-icon for pinned safari tab 2017-07-14 18:32:54 -07:00
Jérémie Astori
1110097664
Remove "in" transition on autocomplete items to fix a visual glitch on value refresh 2017-07-14 20:43:47 -04:00
Jérémie Astori
d2a3287800
Fix preview toggle button on Morning 2017-07-14 20:22:45 -04:00
greenkeeper[bot]
48bae15939 fix(package): update fs-extra to version 4.0.0 2017-07-14 17:53:45 +00:00
Pavel Djundik
43f1b6b627 Remove X-UA-Compatible
Ref: https://stackoverflow.com/a/26348511/2200891
2017-07-14 12:18:01 +03:00
Max Leiter
0b68b07e3b Update screenshot in README 2017-07-12 15:47:13 -07:00
Pavel Djundik
6823fc2c29 Merge pull request #1323 from thelounge/greenkeeper/chai-4.1.0
Update chai to the latest version 🚀
2017-07-12 11:10:54 +03:00
Pavel Djundik
a3d81adbd2 Merge pull request #1322 from thelounge/greenkeeper/webpack-3.2.0
Update webpack to the latest version 🚀
2017-07-12 11:10:45 +03:00
Jérémie Astori
2e3101547e Merge pull request #1324 from thelounge/astorije/fix-zenburn-previews
Fix background of toggle button and margin glitch of toggle body on Zenburn
2017-07-12 03:51:22 -04:00
Jérémie Astori
9937fcdbf9
Fix background of toggle button and margin glitch of toggle body on Zenburn 2017-07-12 02:56:58 -04:00
greenkeeper[bot]
50dc3cd01a chore(package): update chai to version 4.1.0 2017-07-12 00:40:14 +00:00
greenkeeper[bot]
20e4368865 chore(package): update webpack to version 3.2.0 2017-07-11 20:31:33 +00:00
Jérémie Astori
a8643ea5af Merge pull request #1321 from thelounge/greenkeeper/jquery-textcomplete-1.8.2
Update jquery-textcomplete to the latest version 🚀
2017-07-11 09:13:40 -04:00
Jérémie Astori
fb703004b1 Merge pull request #1320 from thelounge/greenkeeper/stylelint-7.13.0
Update stylelint to the latest version 🚀
2017-07-11 01:28:42 -04:00
greenkeeper[bot]
df883c509e chore(package): update jquery-textcomplete to version 1.8.2 2017-07-11 01:20:56 +00:00
greenkeeper[bot]
35c9e88c86 chore(package): update stylelint to version 7.13.0 2017-07-10 21:33:08 +00: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
841d3cd29e Merge pull request #1315 from thelounge/greenkeeper/eslint-4.2.0
Update eslint to the latest version
2017-07-09 15:21:39 +01: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
Al McKinlay
865900111d Merge pull request #1314 from thelounge/astorije/fix-missing-transitions
Fix missing transitions
2017-07-09 15:17:35 +01:00
Al McKinlay
590a63ae31 Merge pull request #1306 from thelounge/xpaw/remove-prettify
Remove hostname prettifier
2017-07-09 15:03:08 +01:00
greenkeeper[bot]
fabfaa4cbb chore(package): update eslint to version 4.2.0 2017-07-09 02:27:31 +00:00
Jérémie Astori
7fb527847e
Fix missing transitions 2017-07-08 21:17:03 -04: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
c2f2c69e91 Merge pull request #1312 from thelounge/astorije/bump-express-socket.io
Bump express and socket.io to their latest patch versions
2017-07-08 03:53:31 -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
1af06eab4c Merge pull request #1310 from thelounge/astorije/reword-previews-settings
Reword link preview settings to better match reality
2017-07-07 19:35:44 -04:00
Jérémie Astori
82cba0b06f
Bump express and socket.io to their latest patch versions
Greenkeeper missed express because of their odd RC releases, and we are still stuck trying to bump socket.io to their v2
2017-07-07 19:24:06 -04:00
Pavel Djundik
336cc6f44b Merge pull request #1308 from thelounge/greenkeeper/webpack-3.1.0
Update webpack to the latest version 🚀
2017-07-07 14:14:26 +03:00
Jérémie Astori
cff76d033d
Reword link preview settings to better match reality
- s/Links and URLs/Link previews/: From a user perspective, these are the same thing... These options are for the prefetcher, not the URLs themselves
- s/thumbnails/images/: What we call thumbnails are for "site" previews, not actual image links
- s/links/websites/: Technically, both image and non-image links are links, "websites" carries a tiny bit better the meaning
2017-07-07 02:23:44 -04:00
Jérémie Astori
e08f18f447
Add collapse/expand commands to toggle all previews 2017-07-07 00:18:37 -04:00
Jérémie Astori
1b4f4ee11e Merge pull request #1305 from thelounge/xpaw/fix-lock-and-defaults
Fix losing network settings
2017-07-06 18:46:57 -04:00
greenkeeper[bot]
69d931750b chore(package): update webpack to version 3.1.0 2017-07-06 22:11:32 +00:00
Pavel Djundik
f06de70c40 Remove hostname prettifier 2017-07-06 15:02:32 +03:00
Pavel Djundik
f3a4ed8e52 Fix losing network name when displayNetwork is false 2017-07-06 15:00:53 +03:00
Pavel Djundik
23b2f7197c Deep merge default config 2017-07-06 15:00:43 +03:00
Pavel Djundik
fc231bca76 Merge pull request #1298 from thelounge/xpaw/fix-toggle-scroll
Fix jumps when toggling link preview
2017-07-04 21:00:56 +03:00
Jérémie Astori
5ffcbed632 Merge pull request #1292 from thelounge/greenkeeper/commander-2.11.0
Update commander to the latest version 🚀
2017-07-04 13:56:35 -04:00
Pavel Djundik
818a21b52e Fix jumps when toggling link preview 2017-07-04 20:51:22 +03:00
Jérémie Astori
c7ed85a9a4 Merge pull request #1297 from thelounge/astorije/color-previews-zenburn
Fix background color contrast on Zenburn previews
2017-07-04 13:49:29 -04:00
Jérémie Astori
43522ee20a Merge pull request #1295 from thelounge/greenkeeper/babel-preset-env-1.6.0
Update babel-preset-env to the latest version 🚀
2017-07-04 13:45:56 -04:00
Jérémie Astori
a96b071fb3
Fix background color contrast on Zenburn previews 2017-07-04 13:39:39 -04:00
Jérémie Astori
a7ddfbc8a3 Merge pull request #1296 from thelounge/astorije/previews-crypto
Fix too big line height previews text on Crypto
2017-07-04 13:34:40 -04:00
Pavel Djundik
81e9a205c6 Merge pull request #1291 from thelounge/astorije/title-previews
Add title attributes to previews
2017-07-04 20:19:35 +03:00
Jérémie Astori
1ba8f10440
Fix too big line height previews text on Crypto 2017-07-04 13:15:55 -04:00
Jérémie Astori
ec5b5ef565
Add title attributes to previews
This is useful on long preview titles/descriptions that truncate. We currently do the same for topics
2017-07-04 12:56:57 -04:00
Jérémie Astori
72ca99009b Merge pull request #1293 from thelounge/xpaw/fix-preview-truncate
Do not truncate link previews if viewport can fit more text
2017-07-04 12:54:54 -04:00
greenkeeper[bot]
398dbcad53 chore(package): update babel-preset-env to version 1.6.0 2017-07-04 15:09:08 +00:00
Pavel Djundik
2e82400d80 Merge pull request #1279 from thelounge/greenkeeper/jquery-textcomplete-1.8.1
Update jquery-textcomplete to the latest version 🚀
2017-07-04 13:02:55 +03:00
Pavel Djundik
c62bc2fa35 Do not truncate link previews if viewport can fit more text
Fixes #1084
2017-07-04 09:51:35 +03:00
Jérémie Astori
17978af710 Merge pull request #1280 from thelounge/xpaw/simple-vendor
Do not hardcode vendor bundles in webpack
2017-07-04 01:43:40 -04:00
Awal Garg
8c8d683348 Allow opting out of autocomplete 2017-07-03 22:37:38 +05:30
greenkeeper[bot]
5831745958 fix(package): update commander to version 2.11.0 2017-07-03 10:12:45 +00:00
Jérémie Astori
622c91b25a Merge pull request #1276 from thelounge/xpaw/refactor-toggle
Refactor link previews
2017-07-03 02:33:49 -04:00
Pavel Djundik
14b2ad7938 Refactor link previews 2017-07-03 00:41:18 +03:00
Jérémie Astori
c7def1c1b6 Merge pull request #1284 from MaxLeiter/MaxLeiter/npmrc
Add .npmrc file; set save-exact to true so packages are installed pinned
2017-06-29 19:38:33 -04:00
Jérémie Astori
be47af7ea8 Merge pull request #1287 from thelounge/xpaw/npm-ignore-dotfiles
Ignore all dotfiles in npmignore
2017-06-29 19:06:06 -04:00
Jérémie Astori
e7d480c645 Merge pull request #1282 from thelounge/greenkeeper/babel-loader-7.1.1
Update babel-loader to the latest version 🚀
2017-06-29 19:02:19 -04:00
Pavel Djundik
58b2d8c788 Ignore all dotfiles in npmignore 2017-06-29 12:49:07 +03:00
Max Leiter
c70f1d0d95 Add .npmrc file; set save-exact to true so packages are installed pinned by default 2017-06-28 21:06:23 -07:00
greenkeeper[bot]
97e35e9dd4 chore(package): update babel-loader to version 7.1.1 2017-06-28 00:38:51 +00:00
Pavel Djundik
a3744cf81b Do not hardcoded vendor bundles in webpack 2017-06-27 12:55:12 +03:00
greenkeeper[bot]
da8cec4067 chore(package): update jquery-textcomplete to version 1.8.1 2017-06-27 09:15:41 +00:00
Jérémie Astori
20b24a39df Merge pull request #1278 from thelounge/greenkeeper/stylelint-7.12.0
Update stylelint to the latest version 🚀
2017-06-26 23:56:02 -04:00
Jérémie Astori
80df7f3836 Merge pull request #1277 from thelounge/greenkeeper/nyc-11.0.3
Update nyc to the latest version 🚀
2017-06-26 23:55:31 -04:00
greenkeeper[bot]
19b4d7bea2 chore(package): update stylelint to version 7.12.0 2017-06-26 21:23:50 +00:00
greenkeeper[bot]
6f9d7b0771 chore(package): update nyc to version 11.0.3 2017-06-26 14:37:34 +00:00
Jérémie Astori
ad10777684 Merge pull request #1274 from thelounge/xpaw/increase-prefetch-limit
Increase max downloaded bytes for link preview
2017-06-26 02:44:46 -04:00
Jérémie Astori
f516d21f7b Merge pull request #1273 from thelounge/xpaw/no-preview
Do not display preview if there is nothing to preview
2017-06-26 02:36:46 -04:00
Pavel Djundik
e967759802 Increase max downloaded bytes for link preview
twitter.com sends opengraph meta tags within ~20kb of data for individual tweets
2017-06-26 09:34:56 +03:00
Pavel Djundik
77667e7a3f Do not display preview if there is nothing to preview 2017-06-26 09:27:51 +03:00
Pavel Djundik
cfd71cab02 Merge pull request #1272 from thelounge/greenkeeper/eslint-4.1.1
Update eslint to the latest version 🚀
2017-06-26 09:11:04 +03:00
Jérémie Astori
e0ed1195fa Merge pull request #1202 from thelounge/xpaw/trust-proxy
Parse X-Forwarded-For header correctly
2017-06-26 01:52:53 -04:00
Jérémie Astori
aee518365d Merge pull request #1252 from thelounge/bews/username-template
Move nickname rendering to a single template
2017-06-26 01:49:50 -04:00
Jérémie Astori
a7d81d55bd Merge pull request #1267 from thelounge/astorije/rm-devdependencies-badge
Remove devDependencies badge on README
2017-06-26 01:48:48 -04:00
Jérémie Astori
5abc4c8c2a Merge pull request #1256 from thelounge/xPaw/og-title
Check og:title before title tag
2017-06-26 01:48:07 -04:00
Jérémie Astori
147a36adde Merge pull request #1254 from thelounge/xpaw/thumb-is-img
Make sure thumbnail is a valid image
2017-06-26 01:46:20 -04:00
Jérémie Astori
0239fdd2fb Merge pull request #1255 from thelounge/xPaw/og-description
Check og:description before description
2017-06-26 01:44:54 -04:00
Jérémie Astori
bb7abcdaae Merge pull request #1260 from thelounge/xpaw/check-link-statuscode
Check status code in link prefetcher
2017-06-26 01:44:01 -04:00
greenkeeper[bot]
e3a5c1b01c chore(package): update eslint to version 4.1.1 2017-06-26 01:21:59 +00:00
Pavel Djundik
6f8ebcc7e1 Merge pull request #1269 from thelounge/astorije/rm-semver
Remove mention in CHANGELOG that The Lounge uses Semantic Versioning
2017-06-25 10:50:09 +03:00
Jérémie Astori
c6b90690a7 Merge pull request #1264 from thelounge/greenkeeper/eslint-4.1.0
Update eslint to the latest version 🚀
2017-06-25 01:29:50 -04:00
Jérémie Astori
f4cfa17c73 Merge pull request #1257 from thelounge/greenkeeper/commander-2.10.0
Update commander to the latest version 🚀
2017-06-25 01:29:22 -04:00
Jérémie Astori
e43dd6ffdd Remove mention in CHANGELOG that The Lounge uses Semantic Versioning
Not that we don't use something as close as possible, but as an end-user project, it is not entirely meaningful to say we are Semver-compliant, since there is no real breaking changes we introduce. Semver is however very good for libraries.
2017-06-25 01:19:15 -04:00
Jérémie Astori
a32a39e96b
2.3.2 2017-06-25 01:12:20 -04:00
Jérémie Astori
0bd07edab4
Add changelog entry for v2.3.2 2017-06-25 01:11:42 -04:00
Jérémie Astori
5d65f447b5 Remove devDependencies badge on README
Now that Greenkeeper is taking care of our dependencies, it makes less sense to keep this one.

This also create some room for a potential future extra badge if we need it, without taking up a new line.

I would however definitely keep the production dependencies badge because it informs users on the status of what they install. It also leaves an access to David's devDependencies report if interested.
2017-06-24 15:01:07 -04:00
Pavel Djundik
c9f63fc699 Merge pull request #1217 from MaxLeiter/patch-3
Fix MOTD underline in Safari
2017-06-24 12:19:14 +03:00
Jérémie Astori
3480e091fa Merge pull request #1261 from thelounge/xPaw/hide-link-time
Hide link time element on small devices
2017-06-24 01:07:25 -04:00
greenkeeper[bot]
df7dfd77e3 chore(package): update eslint to version 4.1.0 2017-06-24 01:31:08 +00:00
Max Leiter
e76019b82c Fix MOTD underline in Safari
before: https://sr.ht/mdPx.png

after: https://sr.ht/h45R.png

Basically, safari's user agent CSS applies an underline to <abbr> tags, which bootstrap already does as well (but bootstrap doesn't use text-decoration so it's not overriden).
2017-06-23 14:30:08 -07:00
Pavel Djundik
25fefd5e54 Hide link time element on small devices 2017-06-23 20:51:36 +03:00
Pavel Djundik
ddc076e894 Check status code in link prefetcher
Fixes #1258.
2017-06-23 20:49:45 +03:00
greenkeeper[bot]
87c4e6f9bb fix(package): update commander to version 2.10.0 2017-06-23 09:38:37 +00:00
Jérémie Astori
358852cecb Merge pull request #1253 from thelounge/xpaw/nick-fade-pos
Fix nick fade positioning
2017-06-23 02:02:43 -04:00
Jérémie Astori
96e6ac8111 Merge pull request #1249 from thelounge/xpaw/stylelint-config-standard
Use stylelint-config-standard
2017-06-23 01:44:18 -04:00
Jérémie Astori
74da20ab6a Merge pull request #1238 from thelounge/greenkeeper/webpack-3.0.0
Update webpack to the latest version 🚀
2017-06-23 01:43:23 -04:00
Pavel Djundik
015a9fb6ef Check og:title before title tag 2017-06-22 22:41:05 +03:00
Pavel Djundik
23c7f7296c Check og:description before description 2017-06-22 22:34:17 +03:00
Pavel Djundik
3fd2849a37 Make sure thumbnail is a valid image
Fixes #1239.
Fixes #1180.
2017-06-22 22:32:13 +03:00
Pavel Djundik
714580e94a Fix nick fade positioning 2017-06-22 22:05:13 +03:00
Niko Bews
eb4a4c7dfe Move nickname rendering to a single template
Closes #1241
2017-06-22 13:28:17 +03:00
Pavel Djundik
f55d765aae Merge pull request #1246 from bews/bews/dev-18-size
Handle images with unknown size in prefetch
2017-06-22 13:17:02 +03:00
Pavel Djundik
2e59735c19 Merge pull request #1251 from thelounge/xpaw/stray-tag
Fix stray end tag
2017-06-22 13:16:31 +03:00
Pavel Djundik
c1068164f5 Fix stray end tag 2017-06-22 11:34:47 +03:00
Pavel Djundik
138111b16e Use stylelint-config-standard 2017-06-22 11:23:50 +03:00
Jérémie Astori
8dcc63fd6a Merge pull request #1247 from thelounge/ignore-package-lock
Ignore package-lock.json
2017-06-21 19:11:54 -04:00
Jérémie Astori
b9d7739927 Merge pull request #1248 from thelounge/xpaw/kb
Remove kilobyte ambiguity
2017-06-21 19:08:05 -04:00
Niko Bews
57fd0562a2 Handle images with unknown size in prefetch 2017-06-21 14:40:51 +03:00
Pavel Djundik
b0efbf8a1e Parse x-forwarded-for header correctly 2017-06-21 14:34:06 +03:00
Pavel Djundik
16bc465cfd Remove kilobyte ambiguity 2017-06-21 14:01:47 +03:00
Pavel Djundik
04adcac0e0 Ignore package-lock.json
Close #1213
2017-06-21 10:57:06 +03:00
greenkeeper[bot]
6f9acb0b94 chore(package): update webpack to version 3.0.0 2017-06-21 10:11:25 +03:00
Pavel Djundik
da87482b66 Merge pull request #1245 from thelounge/greenkeeper/babel-loader-7.1.0
Update babel-loader to the latest version 🚀
2017-06-21 10:10:49 +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
Jérémie Astori
ead4a7f791 Merge pull request #1233 from thelounge/xPaw/user-select
Make everything unselectable by default
2017-06-20 23:38:17 -04:00
Jérémie Astori
d09ac7ae13 Merge pull request #1244 from thelounge/xPaw/fix-page-keys
Correctly finish scroll animation when using page keys
2017-06-20 23:25:32 -04:00
greenkeeper[bot]
3fa9efc0bc chore(package): update babel-loader to version 7.1.0 2017-06-20 10:47:08 +00: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
Pavel Djundik
04c67de1af Merge pull request #1158 from bews/bews/dev-10-usercut
Fade out for long usernames.
2017-06-20 13:15:43 +03:00
Alistair McKinlay
f90c355c8e Add modules for socket events 2017-06-20 07:22:58 +01:00
Jérémie Astori
5cbf847c4a Merge pull request #1240 from thelounge/astorije/better-run_pr-script
Improve the PR tester script a bit
2017-06-20 02:21:39 -04:00
Jérémie Astori
211d2e5460
Always rebase with master when running PRs to make sure latest code is being tested 2017-06-20 01:18:30 -04:00
Jérémie Astori
a403dac8ef
Build in production environment on script testing PRs 2017-06-20 01:17:11 -04: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
16795cf2b7 Merge pull request #1231 from thelounge/eslint4
Update to eslint 4 and enforce extra rules
2017-06-19 20:30:41 +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
edc106dadb Merge pull request #1230 from thelounge/greenkeeper/stylelint-7.11.1
Update stylelint to the latest version 🚀
2017-06-19 02:16:05 -04:00
Pavel Djundik
ef5b0d9e16 Make everything unselectable by default 2017-06-16 18:59:06 +03:00
greenkeeper[bot]
2917699b44 chore(package): update stylelint to version 7.11.1 2017-06-15 22:40:26 +00: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
518160a1fa
Include trickery to reduce paints and improve performance
Fixes #1083.
Fixes #1071.
2017-06-09 23:19:59 -04:00
Jérémie Astori
8bfce28d68 Merge pull request #1206 from thelounge/greenkeeper/chai-4.0.2
Update chai to the latest version 🚀
2017-06-09 23:00:50 -04:00
Jérémie Astori
866409bfb0 Merge pull request #1214 from thelounge/xpaw/more-focus
Consider click also a read activity
2017-06-09 22:49:34 -04:00
Jérémie Astori
b31c2a935b Merge pull request #1215 from thelounge/greenkeeper/stylelint-7.11.0
Update stylelint to the latest version 🚀
2017-06-09 22:47:25 -04:00
greenkeeper[bot]
eacef7e175 chore(package): update stylelint to version 7.11.0 2017-06-09 12:57:37 +00:00
Pavel Djundik
93bc406c2e Consider click also a read activity 2017-06-09 14:10:55 +03:00
greenkeeper[bot]
ad091a1d36 chore(package): update chai to version 4.0.2 2017-06-09 10:39:52 +03:00
Pavel Djundik
2dd71a1d15 Merge pull request #1198 from thelounge/greenkeeper/nyc-11.0.1
Update nyc to the latest version 🚀
2017-06-09 10:37:56 +03:00
Pavel Djundik
fa09098b4a Merge pull request #1212 from thelounge/greenkeeper/babel-core-6.25.0
Update babel-core to the latest version 🚀
2017-06-09 10:28:53 +03:00
Pavel Djundik
972115320a Merge pull request #1184 from thelounge/greenkeeper/spdy-3.4.5
Update spdy to the latest version 🚀
2017-06-09 10:26:19 +03:00
greenkeeper[bot]
3304681e7a
fix(package): update spdy to version 3.4.7 2017-06-09 02:17:22 -04:00
Jérémie Astori
f77f54942b
2.3.1 2017-06-09 02:06:51 -04:00
Jérémie Astori
7349945b0e
Add changelog entry for v2.3.1 2017-06-09 02:06:45 -04:00
greenkeeper[bot]
f5c0a7f7fc
chore(package): update nyc to version 11.0.2 2017-06-08 20:05:06 -04:00
Jérémie Astori
5a3b9cf969 Merge pull request #1211 from thelounge/xpaw/fix-default-network-name
Fix network name not being set when displayNetwork is false
2017-06-08 19:59:41 -04:00
greenkeeper[bot]
797321b91a chore(package): update babel-core to version 6.25.0 2017-06-08 21:48:44 +00:00
Pavel Djundik
81bdf7d33e Fix network name not being set when displayNetwork is false 2017-06-08 21:40:17 +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
a2147fe6e1 Merge pull request #1191 from thelounge/travis-versions
Update node versions for travis
2017-06-08 09:13:35 -04: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
Al McKinlay
52a560dc71 Merge pull request #1177 from thelounge/greenkeeper/babel-preset-env-1.5.0
Update babel-preset-env to the latest version 🚀
2017-06-08 09:05:36 +01:00
Al McKinlay
74dc5a6864 Merge pull request #1179 from thelounge/greenkeeper/handlebars-4.0.9
Update handlebars to the latest version
2017-06-08 09:04:10 +01:00
Al McKinlay
92bbe19a00 Merge pull request #1183 from thelounge/greenkeeper/webpack-2.6.0
Update webpack to the latest version
2017-06-08 09:02:29 +01:00
Al McKinlay
f505a4ef80 Merge pull request #1170 from thelounge/greenkeeper/mocha-3.4.0
Update mocha to the latest version
2017-06-08 08:52:42 +01: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
greenkeeper[bot]
9db2befb3b
chore(package): update webpack to version 2.6.1 2017-06-08 02:20:28 -04:00
greenkeeper[bot]
3c494d0674
chore(package): update handlebars to version 4.0.10 2017-06-08 02:18:01 -04:00
greenkeeper[bot]
7ea3ae484e
chore(package): update babel-preset-env to version 1.5.2 2017-06-08 02:16:13 -04:00
greenkeeper[bot]
550546741b
chore(package): update mocha to version 3.4.2 2017-06-08 02:13:20 -04:00
Jérémie Astori
2d046748fe Merge pull request #1204 from thelounge/xpaw/do-not-store-password
Do not store passwords in settings storage
2017-06-08 01:42:06 -04:00
Jérémie Astori
b054cae078 Merge pull request #1201 from thelounge/xpaw/fix-timezone-test
Fix localtime test to correctly use UTC
2017-06-08 01:41:11 -04:00
Jérémie Astori
7f73712694
2.3.0 2017-06-08 01:11:42 -04:00
Jérémie Astori
c040bb4355
Remove temporary npm tag used for pre-releases
This was added in 3b665fb68f.
2017-06-08 01:11:19 -04:00
Jérémie Astori
5e9ea333eb
Add changelog entry for v2.3.0 2017-06-08 01:10:14 -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
bd9e41f2c1 Fix localtime test to correctly use UTC 2017-06-03 10:29:52 +03:00
Pavel Djundik
b46f92c7d8 Only update bcrypt password rounds if the password actually matches 2017-06-02 11:02:03 +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
Al McKinlay
2cbf85cf4f Update node versions for travis 2017-05-31 09:49:39 +01:00
swordbeta
24419cb8e8 Assign last visible div to var. 2017-05-17 13:19:18 +02:00
Jérémie Astori
1f1b025b81
2.3.0-rc.2 2017-05-16 01:46:32 -04:00
Jérémie Astori
4654ad42b1
Add changelog entry for v2.3.0-rc.2 2017-05-16 01:46:12 -04:00
Jérémie Astori
085feb606e Merge pull request #1167 from thelounge/astorije/fix-userlist-search
Fix user list search not responding to clicks on search results
2017-05-14 01:20:01 -04:00
Jérémie Astori
3e54569624
Fix user list search not responding to clicks on search results 2017-05-13 18:34:27 -04:00
Niko Bews
035d10005a Fade out for long usernames. 2017-05-11 03:37:11 +03: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
Al McKinlay
0480275ab9 Merge pull request #1156 from PolarizedIons/fix-fix-datemarker
Fix fixing the date-marker not being removed when it should be.
2017-05-10 10:13:51 +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
Jérémie Astori
45df995d7f
2.3.0-rc.1 2017-05-07 01:23:22 +02:00
Jérémie Astori
4cbfc38106
Add minimal change log entry for v2.3.0-rc.1 2017-05-07 01:22:38 +02:00
Jérémie Astori
3b665fb68f
Add temporary tag until stable version for v2.3.0 gets released
Make sure to remove this before publishing stable or dist-tags will have to be updated manually on npm afterwards.

For reference, this was previously set in 25ec49dea0 and removed in 1dc3e74f7f for v2.0.0.
2017-05-07 01:01:12 +02:00
Jérémie Astori
614085cc30 Merge pull request #1142 from thelounge/greenkeeper/webpack-2.5.1
Update webpack to the latest version 🚀
2017-05-06 23:33:22 +02:00
greenkeeper[bot]
83f01f6f6c chore(package): update webpack to version 2.5.1 2017-05-06 20:21:29 +00: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
4a75ca57e0 Merge pull request #1125 from thelounge/astorije/rm-autocompletion-help
Remove autocompletion section from the help page
2017-05-06 13:41:46 +03:00
Jérémie Astori
66e03bed79 Merge pull request #1133 from thelounge/greenkeeper/webpack-2.5.0
Update webpack to the latest version 🚀
2017-05-06 12:28:57 +02:00
Pavel Djundik
89f6fb9047 Merge pull request #1136 from thelounge/greenkeeper/fs-extra-3.0.1
Update fs-extra to the latest version 🚀
2017-05-06 12:22:47 +03:00
Jérémie Astori
783a8567e2 Merge pull request #1138 from thelounge/xpaw/fix-emoji-autocomplete
Allow autocompleting full emoji short names
2017-05-05 22:03:32 +02:00
Jérémie Astori
222075dd9d Merge pull request #1140 from thelounge/greenkeeper/nyc-10.3.2
Update nyc to the latest version 🚀
2017-05-05 21:36:54 +02:00
greenkeeper[bot]
ae42f81d6f chore(package): update nyc to version 10.3.2 2017-05-05 18:49:27 +00:00
Pavel Djundik
9766c3e254 Allow autocompleting full emoji short names 2017-05-05 21:08:41 +03:00
Pavel Djundik
328c61920e Merge pull request #1132 from PolarizedIons/fix-datemarker
Fix date-marker not being removed on loading new messages
2017-05-05 21:05:10 +03:00
Pavel Djundik
a4806e423f Merge pull request #1129 from thelounge/greenkeeper/handlebars-4.0.8
Update handlebars to the latest version 🚀
2017-05-05 20:58:12 +03:00
PolarizedIons
c5e215f439 Fix date-marker not being removed on loading new messages 2017-05-05 14:07:01 +02:00
greenkeeper[bot]
6e3b5f9837 fix(package): update fs-extra to version 3.0.1 2017-05-04 23:54:24 +00:00
swordbeta
979d992bd1 Don't show unread marker for date marker. 2017-05-04 21:38:58 +02:00
greenkeeper[bot]
aa850e9b99 chore(package): update webpack to version 2.5.0 2017-05-04 10:30:58 +00:00
greenkeeper[bot]
e85cf24587 chore(package): update handlebars to version 4.0.8 2017-05-02 21:04:54 +00:00
Pavel Djundik
700d3c1ff2 Use moment to render dates everywhere 2017-05-01 21:31:31 +03:00
Jérémie Astori
60bf4b22b0
Remove autocompletion section from the help page
Rationale for this is that the whole point of autocompletion is to be intuitive and show up naturally when starting to type something else. For example, all commands start with `/`, so obviously starting to type a command will trigger autocomplete. This is true for channels as well. Emoji are a bit particular because all systems that support emoji open their completion with `:`. The only not-so-intuitive completion strategy is for nicks because it is not so common to start them with `@` on IRC, but as long as we keep tab completion after any set of characters, this is fine. It will be even nicer once regular tab completion uses the same autocompletion dropdown.
2017-05-01 15:32:23 +02:00
Pavel Djundik
d6ca06b12b Merge pull request #1123 from thelounge/greenkeeper/irc-framework-2.8.1
Update irc-framework to the latest version 🚀
2017-05-01 10:09:20 +03:00
Jérémie Astori
0981605fae
Add autocomplete strategy for background colors 2017-05-01 02:49:35 +02:00
greenkeeper[bot]
c86b23e790 fix(package): update irc-framework to version 2.8.1
https://greenkeeper.io/
2017-04-30 22:25:07 +00:00
Jérémie Astori
2831de8271 Merge pull request #1122 from thelounge/xpaw/fix-search-tab
Disable tabindex on userlist search input
2017-04-30 14:54:30 +02:00
Jérémie Astori
6d1eef836a
Add autocomplete strategy for foreground colors 2017-04-30 14:08:12 +02:00
Pavel Djundik
381ea326f4 Disable tabindex on userlist search input
Fixes #1036.
2017-04-30 15:07:09 +03:00
Pavel Djundik
f7b7248ff7 Fix nick autocomplete
Fixes #1119.
2017-04-30 15:03:27 +03:00
Jérémie Astori
7e72120c41 Merge pull request #1116 from thelounge/greenkeeper/handlebars-4.0.7
Update handlebars to the latest version 🚀
2017-04-30 13:50:49 +02:00
greenkeeper[bot]
29cd9b80ef chore(package): update handlebars to version 4.0.7
https://greenkeeper.io/
2017-04-29 20:56:52 +00:00
Pavel Djundik
c91c01188c Merge pull request #1098 from thelounge/greenkeeper/fs-extra-3.0.0
Update fs-extra to the latest version 🚀
2017-04-29 15:45:12 +03:00
Pavel Djundik
e2b55c491e Merge pull request #1113 from thelounge/greenkeeper/nyc-10.3.0
Update nyc to the latest version 🚀
2017-04-29 15:01:28 +03:00
Pavel Djundik
8ad92ed7b7 Merge pull request #1115 from PolarizedIons/fix-sorting
Fix channel sorting messing up the order
2017-04-29 14:56:19 +03:00
PolarizedIons
dd48ba4e87 Fix channel sorting messing up the order 2017-04-29 13:19:31 +02:00
greenkeeper[bot]
14ea84988f chore(package): update nyc to version 10.3.0
https://greenkeeper.io/
2017-04-29 07:07:10 +00: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
Pavel Djundik
0773bf1ecb Merge pull request #1108 from MaxLeiter/ctcp-command
Add ctcp to constants, adds to auto-complete
2017-04-29 09:17:48 +03:00
Max Leiter
70655120cb Add ctcp to constants, adds to auto-complete 2017-04-28 14:45:18 -07:00
Jérémie Astori
45b23f73cf Merge pull request #1107 from thelounge/xpaw/fix-sidebar
Fix chat layout on small devices when users list is hidden
2017-04-28 21:09:20 +02:00
Pavel Djundik
a3810dea06 Fix chat layout on small devices when users list is hidden
Fixes #1092
2017-04-28 21:58:00 +03:00
Pavel Djundik
131b1a6409 Merge pull request #1093 from thelounge/astorije/fix-network-layout
Fix network layout displaying the scrollbar incorrectly
2017-04-28 19:19:57 +03:00
Jérémie Astori
26ccd2f1f8 Merge pull request #1104 from thelounge/xpaw/fix-autoaway
Fix away message disappearing
2017-04-28 18:15:52 +02:00
Pavel Djundik
d6d7df62fe Fix away message disappearing
Closes #1102
2017-04-28 18:58:14 +03:00
greenkeeper[bot]
b9ead20fc7 fix(package): update fs-extra to version 3.0.0
https://greenkeeper.io/
2017-04-27 19:39:32 +00:00
Jérémie Astori
927c40739e Fix network layout displaying the scrollbar incorrectly
This was introduced by https://github.com/thelounge/lounge/pull/856/files#diff-97db1f70168fb5f12457b238ff6052b5R773 (and L794-798): a right position got introduced for all channel containers, but default position for other types of containers was absent before this script.
2017-04-26 23:30:51 +02:00
Pavel Djundik
5eb5b99115 Merge pull request #1091 from PolarizedIons/fix-autocomplete
Fix broken nick autocomplete caused by #856
2017-04-26 20:59:31 +03: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
Pavel Djundik
6c8d1616fd Merge pull request #787 from yashsriv/feat/emoji-autocomplete
Add autocomplete for emoji, users, chans, and commands
2017-04-26 11:39:08 +03:00
Jérémie Astori
5c3e15e17c
Remove json-loader, unnecessary with Webpack v2
See these notes:

- https://webpack.js.org/guides/migrating/#json-loader-is-not-required-anymore
- https://github.com/webpack-contrib/json-loader#json-loader
2017-04-26 13:59:09 +05:30
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
29d8bc9d3d
Add Help for autocompletion 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
Pavel Djundik
ba20d4f70e Merge pull request #1080 from thelounge/yamanickill/1042-back-twice
Replace the state on init rather than adding a new entry
2017-04-26 11:16:43 +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
Jérémie Astori
ac9101ed61 Merge pull request #1066 from thelounge/yamanickill/options-module
Create options module
2017-04-26 00:17:51 +02:00
Jérémie Astori
b1159eff9b Merge pull request #1082 from MaxLeiter/setTopic
Use irc-framework setTopic() for topic command
2017-04-25 23:32:58 +02:00
Al McKinlay
443b1e8048 Merge pull request #1087 from thelounge/yamanickill/fix-index
Fix showing prefetch options
2017-04-25 11:12:09 +00:00
Alistair McKinlay
b69ba5e4b1 Fix showing prefetch options 2017-04-25 10:26:52 +01:00
Max Leiter
e45cfbf02c Use irc-framework setTopic() for topic command 2017-04-24 21:05:57 -07:00
Jérémie Astori
eca52bf8e3 Merge pull request #1079 from thelounge/greenkeeper/mocha-3.3.0
Update mocha to the latest version 🚀
2017-04-25 00:10:10 +02: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
Pavel Djundik
5ab79effd2 Merge pull request #1074 from thelounge/greenkeeper/irc-framework-2.8.0
Update irc-framework to the latest version 🚀
2017-04-24 13:46:09 +03:00
greenkeeper[bot]
413ab234d6 chore(package): update mocha to version 3.3.0
https://greenkeeper.io/
2017-04-24 09:45:02 +00: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
greenkeeper[bot]
36a7cf4007 fix(package): update irc-framework to version 2.8.0
https://greenkeeper.io/
2017-04-23 18:13:49 +00:00
Jérémie Astori
30bf20eb12 Merge pull request #1064 from thelounge/xpaw/harden-sort
Rewrite server code of channel sorting
2017-04-23 14:12:53 -04:00
Jérémie Astori
b45946ff2f Merge pull request #1070 from thelounge/greenkeeper/irc-framework-2.7.0
Update irc-framework to the latest version 🚀
2017-04-23 11:46:27 -04:00
Jérémie Astori
37bfd91944 Merge pull request #1072 from thelounge/babel-env
Use babel-preset-env
2017-04-23 11:23:51 -04:00
Pavel Djundik
2cfc9119cb Use babel-preset-env 2017-04-23 10:58:02 +03: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
Pavel Djundik
e6961c5aab Merge pull request #1063 from thelounge/greenkeeper/babel-loader-7.0.0
Update babel-loader to the latest version 🚀
2017-04-23 10:23:43 +03:00
Pavel Djundik
57acf0f5ce Revert "Disable (temporarily) client ping timeouts"
This reverts commit ffa0740b50.
2017-04-23 09:42:16 +03:00
greenkeeper[bot]
184dd177a6 fix(package): update irc-framework to version 2.7.0
https://greenkeeper.io/
2017-04-23 02:13:17 +00:00
Jérémie Astori
3c60a67a11 Merge pull request #1067 from thelounge/yamanickill/constants-module
Move commands into constants module
2017-04-22 19:46:38 -04:00
Alistair McKinlay
2e286849fc Move commands into constants module 2017-04-22 20:16:59 +01:00
Jérémie Astori
52814113a9 Merge pull request #1068 from thelounge/patch-show-more
Enable show more button correctly
2017-04-22 12:50:01 -04:00
Jérémie Astori
ad41a6f76e Merge pull request #1069 from thelounge/patch-displaynetwork
Fix displayNetwork to work correctly
2017-04-22 12:49:05 -04:00
Pavel Djundik
d1ecdb6b52 Fix displayNetwork to work correctly 2017-04-22 19:05:58 +03:00
Pavel Djundik
7522847ecc Enable show more button correctly 2017-04-22 19:04:46 +03:00
Pavel Djundik
78221fc50b Merge pull request #1009 from thelounge/yamanickill/1008-banlist
Add support for banlist messages
2017-04-22 16:22:16 +03:00
Pavel Djundik
934400f5ee Do not build feature branch with open pull requests on AppVeyor
Ref: https://github.com/appveyor/ci/issues/882
2017-04-22 16:04:18 +03:00
Alistair McKinlay
1e504f4383 Add support for banlist messages 2017-04-22 13:51:28 +01:00
Pavel Djundik
a1bdd6f740 Rewrite server code of channel sorting
Fixes server crash, fixes losing channels
2017-04-22 13:32:42 +03:00
Pavel Djundik
761dfbb33c Merge pull request #1057 from thelounge/1055-handlebars-index
Change index.html to be rendered using handlebars
2017-04-22 11:26:13 +03: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
Jérémie Astori
060627487a Merge pull request #1058 from thelounge/greenkeeper/handlebars-loader-1.5.0
Update handlebars-loader to the latest version 🚀
2017-04-21 21:14:07 -04:00
greenkeeper[bot]
751d6690ff chore(package): update babel-loader to version 7.0.0
https://greenkeeper.io/
2017-04-21 20:25:48 +00: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
6c0cf7cfcc Merge pull request #972 from thelounge/bonuspunkt/message-parser
New IRC message parser
2017-04-21 13:40:16 -04: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
eb1360c3af Add message parser tests 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
Al McKinlay
ef8a2bab18 Merge pull request #1044 from thelounge/1043-slugify-undefined
Add fix for undefined name being slugified
2017-04-21 14:35:18 +01:00
Alistair McKinlay
05d363d9a5 Create socket module 2017-04-21 09:54:46 +01:00
Alistair McKinlay
adfd99c92c Add fix for undefined name being slugified 2017-04-21 09:32:57 +01:00
Alistair McKinlay
b4310dbc03 Review changes
(Should be squashed before merge)
2017-04-21 09:26:02 +01:00
Alistair McKinlay
cc85b2143c Change index.html to be rendered using handlebars 2017-04-21 09:16:24 +01:00
greenkeeper[bot]
f9de811df1 chore(package): update handlebars-loader to version 1.5.0
https://greenkeeper.io/
2017-04-21 03:48:20 +00:00
Pavel Djundik
8658f15751 Merge pull request #1051 from thelounge/astorije/irc-colors-https
Use HTTPS version to the IRC color guide
2017-04-20 16:09:50 +03: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
5bab511c42 Use HTTPS version to the IRC color guide 2017-04-20 01:50:03 -04: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
Jérémie Astori
f16823393a Merge pull request #1053 from thelounge/astorije/coverage-exclude
Exclude Webpack config from coverage report
2017-04-19 10:13:19 -04:00
Jérémie Astori
f5dc6cc28f Merge pull request #1050 from metsjeesus/ssl_bundle
Fix to helper.expandhome to correctly resolve "" and undefined
2017-04-19 10:13:01 -04:00
Jérémie Astori
5a274f3316 Merge pull request #1045 from thelounge/495-disable-more-messages
Disable show more button when loading messages
2017-04-19 10:12: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
Jérémie Astori
8aa6f9c500 Exclude Webpack config from coverage report 2017-04-19 01:19:11 -04:00
Kyle Terrien
a900abc2a4 Issue 1019: Show MOTD by default 2017-04-18 19:48:14 -07:00
Metsjeesus
b750da3f9d Fix to helper.expandhome to correctly resolve "" and undefined 2017-04-18 17:36:43 +03:00
Alistair McKinlay
4938878d10 Disable show more button when loading messages 2017-04-17 10:35:27 +01:00
Jérémie Astori
fb04f9fcbf Merge pull request #1030 from thelounge/greenkeeper/webpack-2.4.0
Update webpack to the latest version 🚀
2017-04-16 12:27:25 -04:00
greenkeeper[bot]
955aada1cf chore(package): update webpack to version 2.4.1
https://greenkeeper.io/
2017-04-16 12:45:30 +03:00
Pavel Djundik
f185c86a47 Merge pull request #816 from DanielOaks/master+unhandled-slug
Add slug with command to unhandled messages
2017-04-16 12:37:32 +03:00
Daniel Oaks
5c336d3789 Add slug with command to unhandled messages 2017-04-16 12:31:32 +03:00
Jérémie Astori
53e419355d Merge pull request #575 from williamboman/feat/history
client: implement History Web API
2017-04-16 02:36:00 -04:00
William Boman
cc0962ba12 client: implement states using the History Web API 2017-04-15 22:34:14 +02:00
Jérémie Astori
6ae6600518 Merge pull request #1024 from metsjeesus/ssl_bundle
Add SSL CA bundle option
2017-04-15 14:46:23 -04:00
Jérémie Astori
5bc1be1f39 Merge pull request #1040 from thelounge/focusin-reset-notifications
Reset notification markers on document focus
2017-04-15 13:20:23 -04:00
Metsjeesus
fa51a2c281 Add CA bundle option in SSL 2017-04-15 19:12:21 +03:00
Pavel Djundik
d093a7f4c2 Reset notification markers on document focus
Fixes #837
2017-04-15 18:43:34 +03:00
Jérémie Astori
8627bbb713 Merge pull request #1032 from thelounge/userlist-sticky
Stick to bottom when opening user list
2017-04-15 01:51:44 -04:00
Jérémie Astori
ecb60e3c78 Merge pull request #1033 from thelounge/preload-scripts
Preload scripts as soon as possible
2017-04-15 01:35:38 -04:00
Jérémie Astori
3140c66b9e Merge pull request #1034 from thelounge/rel-opener
Add rel noopener to URLs in index.html
2017-04-14 20:46:43 -04:00
Pavel Djundik
1e2e8a82db Add rel noopener to URLs in index.html 2017-04-14 21:36:41 +03:00
Pavel Djundik
8020c3c817 Preload scripts as soon as possible 2017-04-14 21:29:40 +03:00
Pavel Djundik
507bf05d24 Remove referrer meta tag, we send Referrer-Policy header 2017-04-14 21:29:40 +03:00
Pavel Djundik
fce3d11e74 Stick to bottom when opening user list
Fixes #1031
2017-04-14 21:29:04 +03:00
Pavel Djundik
3e9678d9cf Merge pull request #1028 from thelounge/xpaw/cert-var
Use local variables to check length
2017-04-14 10:52:03 +03:00
Pavel Djundik
f645c32cb9 Use local variables to check length 2017-04-14 00:05:28 +03:00
Jérémie Astori
725d8431f7 Merge pull request #1027 from thelounge/astorije/rm-perspective
Remove invalid CSS perspective properties
2017-04-13 12:34:16 -04:00
Jérémie Astori
b7d353b620 Remove invalid CSS perspective properties
These are not valid without units per the CSS validator, which is confirmed in the Chrome dev tools. I could not trigger any consequences by removing these.
2017-04-13 02:30:36 -04:00
Jérémie Astori
5890a3def1 Merge pull request #824 from thelounge/xpaw/time-tooltip
Use css tooltips on time elements, ability to view time on mobile
2017-04-13 02:04:15 -04:00
Jérémie Astori
5b721c1b99 Update Primer tooltips to latest v0.5.3
This:

- Makes tooltips appear after timer instead of instantly, necessary for timestamp tooltips (see https://github.com/thelounge/lounge/pull/824#pullrequestreview-13676231)
- Uses Primer default animation (not sure if .2s transition was ours or theirs but here it is)
- Goes closer to default tooltips which will help to bump future versions and/or to streamline this in build process
2017-04-13 01:55:27 -04:00
Pavel Djundik
5d36b29aa8 Only disable touch tooltips on certain buttons 2017-04-13 01:55:27 -04:00
Pavel Djundik
c0a7ae9d92 Use css tooltips on time elements 2017-04-13 01:55:27 -04:00
Jérémie Astori
d2331558c3 Merge pull request #1020 from thelounge/greenkeeper/babel-preset-es2015-6.24.1
Update babel-preset-es2015 to the latest version 🚀
2017-04-08 11:26:55 -04:00
Jérémie Astori
bc16e716f7 Merge pull request #1021 from thelounge/greenkeeper/babel-core-6.24.1
Update babel-core to the latest version 🚀
2017-04-08 11:24:52 -04:00
Michael van Tricht
bcbd29cd22 Unread marker takes hidden messages into account. 2017-04-08 15:56:09 +02:00
greenkeeper[bot]
7c5f631319 chore(package): update babel-core to version 6.24.1
https://greenkeeper.io/
2017-04-07 17:11:52 +00:00
greenkeeper[bot]
ba2aa7a852 chore(package): update babel-preset-es2015 to version 6.24.1
https://greenkeeper.io/
2017-04-07 15:55:35 +00:00
Jérémie Astori
8c987e7a28 Merge pull request #1017 from swordbeta/list_command_styling
Fix Zenburn and Morning channel list font color.
2017-04-06 18:39:51 -04:00
Michael van Tricht
8744d754ff Fix Zenburn and Morning channel list font color. 2017-04-06 16:45:01 +02:00
Jérémie Astori
23981e8de0 Merge pull request #1015 from thelounge/astorije/referrer-policy
Use Referrer-Policy header instead of CSP referrer
2017-04-06 03:01:37 -04:00
Jérémie Astori
b8c49463a9 Merge pull request #524 from thelounge/PR/inline-preview
Improve inline previews for links and images
2017-04-06 03:00:54 -04:00
Jérémie Astori
fe7c570cc9 Use Referrer-Policy header instead of CSP referrer
According to MDN:

> referrer
>   Used to specify information in the referer (sic) header for links away from a page.
>   Use the Referrer-Policy header instead.

See:

- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/referrer
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
2017-04-06 02:25:43 -04: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
Jérémie Astori
2c8e7a8cab Merge pull request #955 from thelounge/xpaw/page-keys
Implement pgup/pgdown keys
2017-04-05 18:19:34 -04: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
dce42df050 Fix link preview title going underneath the user list
Also fix the preview description not respecting the ellipsis, and update the image size and margin to nicely align with text.
2017-04-04 02:31:44 -04:00
Jérémie Astori
d842517c4e Fix image preview talking full width
Bootstrap was taking over these declarations because they use `!important`.
2017-04-04 02:09:53 -04:00
Maxime Poulin
6a273d825a Improve inline previews for links and images 2017-04-04 01:40:51 -04:00
Pavel Djundik
10bafb8b5d Merge pull request #1007 from thelounge/greenkeeper/webpack-2.3.3
Update webpack to the latest version 🚀
2017-04-04 07:36:02 +03:00
greenkeeper[bot]
e1ff04174f chore(package): update webpack to version 2.3.3
https://greenkeeper.io/
2017-04-03 08:03:32 +00:00
Pavel Djundik
e211d948d7 Merge pull request #1006 from thelounge/greenkeeper/mousetrap-1.6.1
Update mousetrap to the latest version 🚀
2017-04-03 07:29:41 +03:00
Jérémie Astori
09eaf80f8c Fix page scroll glitch 2017-04-02 21:03:01 -04:00
greenkeeper[bot]
855092aa44 chore(package): update mousetrap to version 1.6.1
https://greenkeeper.io/
2017-04-02 19:46:29 +00:00
Pavel Djundik
78b17f37f9 Merge pull request #1005 from thelounge/greenkeeper/stylelint-7.10.1
Update stylelint to the latest version 🚀
2017-04-02 21:36:48 +03:00
greenkeeper[bot]
332047c0dc chore(package): update stylelint to version 7.10.1
https://greenkeeper.io/
2017-04-02 10:54:48 +00:00
Jérémie Astori
f11ee8eaf7 Merge pull request #1004 from thelounge/greenkeeper/stylelint-7.10.0
Update stylelint to the latest version 🚀
2017-04-01 15:43:35 -04:00
Jérémie Astori
1b32bf6820 Merge pull request #1003 from thelounge/channel-keys
Store channel keys
2017-04-01 15:35:56 -04:00
Pavel Djundik
2d9aa35c06 Implement pgup/pgdown keys 2017-04-01 22:35:07 +03:00
Pavel Djundik
c0e364e1c2 Store channel keys 2017-04-01 15:28:38 -04:00
Jérémie Astori
44f71bb93e Merge pull request #1002 from thelounge/xpaw/append-date-marker
Correctly append date marker when receiving a message
2017-04-01 12:59:24 -04:00
greenkeeper[bot]
4d592a6a40 chore(package): update stylelint to version 7.10.0
https://greenkeeper.io/
2017-04-01 16:14:00 +00:00
Pavel Djundik
110c0f0c87 Correctly append date marker when receiving a message 2017-04-01 11:06:01 +03:00
Pavel Djundik
152da11256 Merge pull request #985 from rockhouse/master
Switch to bcryptjs and make password comparison async
2017-04-01 10:09:13 +03:00
S
001f96035b Switch to bcryptjs and make password comparison async
- PasswordCompareAsync prevents timeouts on resource constraint devices
- All password.compare calls are now async
- Updated tests to accept async functions
2017-04-01 03:06:09 -04:00
Jérémie Astori
953325aca3 Merge pull request #523 from thelounge/PR/fix-msg-width
Remove table layout for chat messages (and fix layout issues yet again)
2017-04-01 02:40:03 -04:00
Jérémie Astori
e54cc451ce Merge pull request #998 from thelounge/greenkeeper/jquery-3.2.1
chore(package): update jquery to version 3.2.1
2017-03-31 19:54:30 -04:00
Jérémie Astori
900b93ae07 Merge pull request #999 from thelounge/greenkeeper/moment-2.18.1
fix(package): update moment to version 2.18.1
2017-03-31 19:54:05 -04:00
Jérémie Astori
c767ce9fb6 Merge pull request #1000 from thelounge/greenkeeper/eslint-3.19.0
Update eslint to the latest version 🚀
2017-03-31 19:53:28 -04:00
greenkeeper[bot]
5923e48dda chore(package): update eslint to version 3.19.0
https://greenkeeper.io/
2017-03-31 20:50:18 +00:00
Pavel Djundik
212703d162 Merge pull request #810 from thelounge/xpaw/color-hotkeys
Implement color hotkeys
2017-03-31 19:17:16 +03:00
Pavel Djundik
332bbad2fd Merge pull request #775 from thelounge/patches/auto-away
Auto away when no clients are connected
2017-03-31 19:15:55 +03:00
greenkeeper[bot]
5ce8d93410 fix(package): update moment to version 2.18.1
Closes #976

https://greenkeeper.io/
2017-03-31 19:14:59 +03:00
greenkeeper[bot]
0a06874a97 chore(package): update jquery to version 3.2.1
Closes #969

https://greenkeeper.io/
2017-03-31 19:14:28 +03:00
Jérémie Astori
6186abd550 Merge pull request #981 from thelounge/greenkeeper/webpack-2.3.0
Update webpack to the latest version 🚀
2017-03-31 01:43:45 -04: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
greenkeeper[bot]
6b641059c1 chore(package): update webpack to version 2.3.2
https://greenkeeper.io/
2017-03-31 01:37:04 -04:00
Pavel Djundik
443a50b1db Merge pull request #997 from thelounge/astorije/fix-eslint
Remove extra newline to please ESLint
2017-03-31 08:32:43 +03: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
Jérémie Astori
fb672ab57f Improvements to the new flex layout for messages 2017-03-30 19:50:48 -04:00
Maxime Poulin
35b6b47de3 Remove table layout for chat messages (and fix layout issues yet again) 2017-03-30 19:50:48 -04:00
Jérémie Astori
41e3975674 Merge pull request #995 from thelounge/greenkeeper/urijs-1.18.10
Update urijs to the latest version 🚀
2017-03-30 18:41:41 -04:00
greenkeeper[bot]
92349976cb chore(package): update urijs to version 1.18.10
https://greenkeeper.io/
2017-03-30 09:10:14 +00:00
Pavel Djundik
2b85315b39 Merge pull request #992 from swordbeta/patch-1
Help page: commands can be autocompleted.
2017-03-30 11:32:25 +03:00
Pavel Djundik
2c6f5251d8 Merge pull request #994 from thelounge/astorije/fix-height-help
Fix wrong font size in help center labels
2017-03-30 09:51:09 +03:00
Jérémie Astori
da0a52e3cb Fix wrong font size in help center labels
This only concerns plain texts, not `<code>` or `<kbd>`.
2017-03-30 02:19:26 -04:00
Jérémie Astori
d5d3cb605b Merge pull request #977 from thelounge/xpaw/reduce-vendor
Do not build json3 module with Webpack
2017-03-30 01:27:15 -04:00
Pavel Djundik
9bf1e6e0d5 Do not build json3 module of Webpack 2017-03-30 01:15:44 -04:00
Michael van Tricht
3f031ba6ff Help page: commands can be autocompleted. 2017-03-29 10:11:12 +02:00
Pavel Djundik
b98208317d Merge pull request #989 from thelounge/greenkeeper/nyc-10.2.0
Update nyc to the latest version 🚀
2017-03-29 07:33:59 +03:00
Pavel Djundik
7b2c284245 Merge pull request #991 from thelounge/astorije/eslint-eol
Setup ESLint to make sure an EOF feed is always present
2017-03-29 07:33:30 +03:00
Pavel Djundik
4a68b78fd5 Implement away message restoration on reconnections and auto away 2017-03-29 00:27:58 -04:00
Jérémie Astori
d287dede49 Setup ESLint to make sure an EOF feed is always present 2017-03-29 00:05:28 -04:00
Jérémie Astori
2bcbb62af0 Remove unnecessary coverage dir from excluded nyc files
This is possible since 50adde4196.
2017-03-28 19:09:40 -04:00
greenkeeper[bot]
1f01da21ff chore(package): update nyc to version 10.2.0
https://greenkeeper.io/
2017-03-28 05:16:34 +00:00
Jérémie Astori
b66afb6939 Merge pull request #968 from thelounge/greenkeeper/babel-loader-6.4.1
Update babel-loader to the latest version 🚀
2017-03-27 19:41:50 -04:00
Jérémie Astori
7487c1c1ac Merge pull request #978 from williamboman/feat/data-from
views/msg: set data-from attribute to allow styling messages from specific user(s)
2017-03-27 19:40:33 -04:00
greenkeeper[bot]
03fe53e87f chore(package): update babel-loader to version 6.4.1
https://greenkeeper.io/
2017-03-27 19:27:59 -04:00
Jérémie Astori
993a7bcbde Merge pull request #975 from thelounge/xpaw/enforce-more-spaces
Enforce more space and new line rules
2017-03-27 19:24:39 -04:00
Jérémie Astori
8fc811bf6b Merge pull request #971 from thelounge/greenkeeper/eslint-3.18.0
Update eslint to the latest version 🚀
2017-03-27 19:23:27 -04:00
Jérémie Astori
1126a68ebd Merge pull request #969 from thelounge/greenkeeper/jquery-3.2.0
Update jquery to the latest version 🚀
2017-03-27 19:22:01 -04:00
Jérémie Astori
755dc3480d Merge pull request #964 from thelounge/greenkeeper/fs-extra-2.1.0
Update fs-extra to the latest version 🚀
2017-03-27 19:19:31 -04:00
Jérémie Astori
272a259966 Merge pull request #960 from thelounge/greenkeeper/babel-preset-es2015-6.24.0
Update babel-preset-es2015 to the latest version 🚀
2017-03-27 19:17:47 -04:00
Jérémie Astori
9bee548915 Merge pull request #958 from thelounge/greenkeeper/babel-core-6.24.0
Update babel-core to the latest version 🚀
2017-03-27 19:17:23 -04:00
Jérémie Astori
8bc66e8e5e Merge pull request #976 from thelounge/greenkeeper/moment-2.18.0
Update moment to the latest version 🚀
2017-03-27 19:14:32 -04:00
Élie Michel
ed3b4faa62 Fix eslint styling issues 2017-03-21 15:49:54 +01:00
Élie Michel
642442c041 Implement a proper LDAP authentication process
The Lounge first log as a special user in order to search (as in LDAP's
'"search" verb) for the user's full DN. It then attempts to bind using the
found user DN and the user provided password.
2017-03-21 15:15:33 +01:00
William Boman
c6ed95e555 views/msg: set data-from attribute to allow styling messages from specific user(s) 2017-03-20 23:08:28 +01:00
greenkeeper[bot]
7175dc1706 fix(package): update moment to version 2.18.0
https://greenkeeper.io/
2017-03-18 21:27:01 +00: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
d9358d555f Generate sourcemap in production build
Fixes #974
2017-03-18 16:09:43 +02:00
greenkeeper[bot]
777f477135 fix(package): update fs-extra to version 2.1.0
https://greenkeeper.io/
2017-03-18 11:25:50 +02:00
Pavel Djundik
dcefcd19cb Use require() instead of import in client code
Closes #895
2017-03-18 11:21:18 +02:00
Jérémie Astori
52cc3ee909 Merge pull request #970 from thelounge/xpaw/fix-ident
Fix variable shuffling around ident handler
2017-03-17 20:56:59 -04:00
greenkeeper[bot]
aac6980eb5 chore(package): update eslint to version 3.18.0
https://greenkeeper.io/
2017-03-17 22:13:47 +00:00
Pavel Djundik
c409328ddf Fix variable shuffling around ident handler
Fixes #965
2017-03-17 22:24:40 +02:00
greenkeeper[bot]
ae5f768dd1 chore(package): update jquery to version 3.2.0
https://greenkeeper.io/
2017-03-16 21:35:11 +00:00
Jérémie Astori
ff72ebbb74 Merge pull request #804 from thelounge/xpaw/new-identd
Rewrite identd server, combine with oidentd
2017-03-13 02:04:24 -04:00
Jérémie Astori
8ef99d7ad8 Add shortcuts for new formatting in help window 2017-03-13 01:58:39 -04:00
Jérémie Astori
908f816c43 2.2.2 2017-03-13 01:29:56 -04:00
Jérémie Astori
06f734753f Add changelog entry for v2.2.2 2017-03-13 01:27:57 -04:00
Pavel Djundik
972e1eefa7 Merge pull request #959 from thelounge/astorije/fix-help-cli
Fix `-h` help option alias shadowed by a similar alias for `--home`
2017-03-13 07:25:53 +02:00
Jérémie Astori
1c732ffc5b Fix -h help option alias shadowed by a similar alias for --home
In v2.2.1 (and in pretty much every software out there, really), `-h` was an alias of `--help`. By adding it as an alias of `--home`, it is now shown twice in the help.
2017-03-13 01:06:11 -04:00
greenkeeper[bot]
8cd8ba6101 chore(package): update babel-preset-es2015 to version 6.24.0
https://greenkeeper.io/
2017-03-13 03:54:02 +00:00
Jérémie Astori
bdf4a93200 Merge pull request #957 from thelounge/xpaw/harden-lobby
Prevent message sending in lobbies
2017-03-12 23:52:00 -04:00
greenkeeper[bot]
65a218d9de chore(package): update babel-core to version 6.24.0
https://greenkeeper.io/
2017-03-13 02:38:54 +00:00
Pavel Djundik
9997aafec7 Rewrite identd server, combine with oidentd 2017-03-12 12:02:22 +02:00
Pavel Djundik
f2e43b84be Implement color hotkeys 2017-03-12 11:50:18 +02:00
Pavel Djundik
23599fc39b Prevent message sending in lobbies
Fixes #956
2017-03-11 20:09:37 +02:00
Jérémie Astori
2f1cc97631 Merge pull request #954 from thelounge/update-packages
Update express and nyc to latest versions
2017-03-11 12:34:34 -05:00
Pavel Djundik
7c25a9e7f0 Update express and nyc to latest versions 2017-03-11 11:20:40 +02:00
Pavel Djundik
e00fa06db7 Merge pull request #941 from thelounge/astorije/help-window
Help window with supported commands and shortcuts
2017-03-11 11:18:38 +02:00
Pavel Djundik
885bb16228 Merge pull request #952 from thelounge/greenkeeper/irc-framework-2.6.1
Update irc-framework to the latest version 🚀
2017-03-11 10:17:37 +02:00
Jérémie Astori
c1fc185643 Move "About The Lounge" section from Settings to Help window 2017-03-10 20:23:45 -05:00
Jérémie Astori
0f9b12f2b8 Add a help window within the app
This brings commands and keyboard shortcuts from the website, after a massive overhaul. It comes as part of the big documentation rewrite that I am currently doing.

`kbd` design inspiration from GitHub, `code` design inspiration from Bootstrap.

This help page is accessible from an icon in the sidebar, near the Settings icon.
2017-03-10 20:23:45 -05:00
greenkeeper[bot]
7806579009 fix(package): update irc-framework to version 2.6.1
https://greenkeeper.io/
2017-03-11 01:12:13 +00:00
Jérémie Astori
764019bade Merge pull request #944 from thelounge/greenkeeper/request-2.80.0
Update request to the latest version 🚀
2017-03-10 20:10:25 -05:00
Jérémie Astori
8a6d3851e5 Merge pull request #947 from thelounge/greenkeeper/babel-loader-6.4.0
Update babel-loader to the latest version 🚀
2017-03-10 20:04:36 -05:00
Pavel Djundik
24bd39361b Merge pull request #929 from msaun008/msaun008/fix-command-line-arg-parsing
Update arg parsing and default 'lounge' to 'lounge --help'
2017-03-10 19:27:09 +02:00
Pavel Djundik
c1a0796082 Merge pull request #943 from thelounge/greenkeeper/eslint-3.17.0
Update eslint to the latest version 🚀
2017-03-10 19:26:13 +02:00
greenkeeper[bot]
30b86a8b40 fix(package): update request to version 2.81.0
https://greenkeeper.io/
2017-03-10 19:25:35 +02:00
greenkeeper[bot]
9f053dfaae chore(package): update eslint to version 3.17.1
https://greenkeeper.io/
2017-03-10 19:23:19 +02:00
Jérémie Astori
1c96919551 Merge pull request #946 from thelounge/greenkeeper/urijs-1.18.9
Update urijs to the latest version 🚀
2017-03-06 12:52:24 -05:00
greenkeeper[bot]
a85b7a789e chore(package): update babel-loader to version 6.4.0
https://greenkeeper.io/
2017-03-06 12:27:22 +00:00
greenkeeper[bot]
a3c0512143 chore(package): update urijs to version 1.18.9
https://greenkeeper.io/
2017-03-06 10:58:57 +00:00
Matthew Saunders
86ed0b6e59 Update arg parsing and default 'lounge' to 'lounge --help' 2017-03-04 15:58:44 -05:00
Al McKinlay
cd3ce55dcf Merge pull request #940 from thelounge/greenkeeper/urijs-1.18.8
Update urijs to the latest version 🚀
2017-02-28 08:20:16 +00:00
greenkeeper[bot]
7fec8ebc72 chore(package): update urijs to version 1.18.8
https://greenkeeper.io/
2017-02-27 20:32:07 +00:00
Jérémie Astori
48bfa30acd Merge pull request #937 from thelounge/greenkeeper/eslint-3.16.0
Update eslint to the latest version 🚀
2017-02-26 21:09:03 -05:00
greenkeeper[bot]
d3d374c129 chore(package): update eslint to version 3.16.1
https://greenkeeper.io/
2017-02-26 21:03:23 -05:00
Jérémie Astori
535a2e577f Merge pull request #931 from thelounge/jquery3
Update to jQuery 3
2017-02-26 20:59:09 -05:00
Jérémie Astori
7c4050590c Merge pull request #939 from thelounge/disable-client-ping
Disable (temporarily) client ping timeouts
2017-02-25 01:11:39 -05:00
Pavel Djundik
ffa0740b50 Disable (temporarily) client ping timeouts 2017-02-24 22:13:50 +02:00
Jérémie Astori
77721c0982 Merge pull request #938 from thelounge/greenkeeper/npm-run-all-4.0.2
Update npm-run-all to the latest version 🚀
2017-02-22 19:18:50 -05:00
greenkeeper[bot]
54b26891a8 chore(package): update npm-run-all to version 4.0.2
https://greenkeeper.io/
2017-02-22 22:48:30 +00:00
Jérémie Astori
3d17b12f58 Merge pull request #934 from thelounge/greenkeeper/stylelint-7.9.0
Update stylelint to the latest version 🚀
2017-02-19 05:26:11 -05:00
greenkeeper[bot]
eec8dcd130 chore(package): update stylelint to version 7.9.0
https://greenkeeper.io/
2017-02-19 10:10:40 +00:00
Pavel Djundik
db5afa0c1d Update to jQuery 3 2017-02-18 20:41:27 +02:00
Jérémie Astori
f21a67b6f5 Merge pull request #905 from thelounge/greenkeeper/webpack-2.2.1
Update webpack to the latest version 🚀
2017-02-18 13:38:20 -05:00
Pavel Djundik
213a4b0f13 Merge pull request #930 from thelounge/astorije/indent-multiline-chain
Make sure multiline chains of calls are correctly indented
2017-02-18 10:41:18 +02:00
Jérémie Astori
2025aff7eb Merge pull request #926 from thelounge/greenkeeper/socket.io-1.7.3
Update socket.io and socket.io-client to the latest version 🚀
2017-02-18 02:07:49 -05:00
Jérémie Astori
78bb2edf1a Make sure multiline chains of calls are correctly indented
Without this rule, the following examples are passing ESLint:

```js
foo()
.bar(); // 0 tabs

foo()
		.bar() // 2 tabs
	.baz(); // 1 tab

foo()
  .bar() // 2 spaces
	.baz(); // 1 tab
```
2017-02-18 01:57:50 -05:00
Jérémie Astori
b140a1c452 Merge pull request #922 from thelounge/greenkeeper/babel-core-6.23.0
Update babel-core and babel-loader to the latest version 🚀
2017-02-17 19:34:44 -05:00
Pavel Djundik
e0111ed587 Update to webpack 2 2017-02-17 17:06:46 +02:00
greenkeeper[bot]
4786085ec4 fix(package): update socket.io to version 1.7.3
https://greenkeeper.io/
2017-02-17 17:04:25 +02:00
Pavel Djundik
b7b12b9f75 update babel-preset-es2015 to version 6.22.0 2017-02-17 16:34:31 +02:00
greenkeeper[bot]
3127de7a81 chore(package): update babel-loader to version 6.3.1
https://greenkeeper.io/
2017-02-17 16:34:31 +02:00
greenkeeper[bot]
e53c3ebe11 chore(package): update babel-core to version 6.23.1
https://greenkeeper.io/
2017-02-17 16:34:31 +02:00
Pavel Djundik
00a3e3f14c Merge pull request #921 from thelounge/greenkeeper/urijs-1.18.7
Update urijs to the latest version 🚀
2017-02-17 16:32:04 +02:00
Pavel Djundik
d2323e12e2 Merge pull request #919 from thelounge/astorije/fix-run_pr-script
Fix `run_pr.sh` script
2017-02-17 16:30:39 +02:00
Jérémie Astori
097d7377f9 Merge pull request #918 from thelounge/greenkeeper/irc-framework-2.6.0
Update irc-framework to the latest version 🚀
2017-02-13 21:48:28 -05:00
greenkeeper[bot]
8d3c201a11 fix(package): update irc-framework to version 2.6.0
https://greenkeeper.io/
2017-02-13 21:41:56 -05:00
greenkeeper[bot]
dc3ebcf1bb chore(package): update urijs to version 1.18.7
https://greenkeeper.io/
2017-02-13 17:42:41 +00:00
Jérémie Astori
5e046a963b Fix run_pr.sh script
`npm run build` is now mandatory.
2017-02-12 17:33:46 -05:00
Jérémie Astori
ebfa3f936d Merge pull request #878 from thelounge/greenkeeper/fs-extra-2.0.0
Update fs-extra to the latest version 🚀
2017-02-12 17:28:38 -05:00
Jérémie Astori
7848c3b82e Merge pull request #881 from thelounge/greenkeeper/mousetrap-1.6.0
Update mousetrap to the latest version 🚀
2017-02-12 17:16:10 -05:00
greenkeeper[bot]
2dbb56040c fix(package): update fs-extra to version 2.0.0
https://greenkeeper.io/
2017-02-12 17:13:21 -05:00
greenkeeper[bot]
15daca2685 chore(package): update mousetrap to version 1.6.0
https://greenkeeper.io/
2017-02-12 17:02:54 -05:00
Jérémie Astori
9e4708012d 2.2.1 2017-02-12 16:54:09 -05:00
Jérémie Astori
dfbe42b590 Add change log entry for v2.2.1 2017-02-12 16:54:01 -05:00
Jérémie Astori
4b6b072c16 Merge pull request #898 from thelounge/greenkeeper/express-4.14.1
Update express to the latest version 🚀
2017-02-12 15:50:08 -05:00
Jérémie Astori
839ba62650 Merge pull request #904 from thelounge/greenkeeper/urijs-1.18.5
Update urijs to the latest version 🚀
2017-02-12 15:49:28 -05:00
Pavel Djundik
6755524be1 Merge pull request #903 from thelounge/astorije/log-users-by-default
Prompt admin for user log at user creation
2017-02-12 09:39:22 +02:00
greenkeeper[bot]
e9b4dd7c35 fix(package): update express to version 4.14.1
https://greenkeeper.io/
2017-02-12 09:34:51 +02:00
greenkeeper[bot]
ef0128fb00 chore(package): update urijs to version 1.18.6
https://greenkeeper.io/
2017-02-12 09:33:50 +02:00
Jérémie Astori
b30450141e Merge pull request #902 from thelounge/greenkeeper/irc-framework-2.5.4
Update irc-framework to the latest version 🚀
2017-02-12 00:43:15 -05:00
greenkeeper[bot]
e2abbff7b0 fix(package): update irc-framework to version 2.5.5
https://greenkeeper.io/
2017-02-11 07:59:16 +02:00
Jérémie Astori
c5f16a4f41 Merge pull request #899 from thelounge/change-default-maxhistory
Change default maxHistory to 10000
2017-02-08 00:58:02 -05:00
Jérémie Astori
a579b9acdc Merge pull request #913 from thelounge/793-fix-height
Fix body height
2017-02-07 01:14:00 -05:00
Al McKinlay
166e43ec39 Fix body height
#821 fixed #793, but it appears since then, Chrome has changed the behaviour back to what it was befor ethe fix, so 2.2.0 on Chrome 56+ is even more broken.
2017-02-06 12:41:17 +00:00
Jérémie Astori
0619646765 Merge pull request #910 from thelounge/greenkeeper/eslint-3.15.0
Update eslint to the latest version 🚀
2017-02-04 13:09:37 -05:00
Jérémie Astori
a0e0666e33 Merge pull request #907 from thelounge/greenkeeper/stylelint-7.8.0
Update stylelint to the latest version 🚀
2017-02-04 12:12:52 -05:00
greenkeeper[bot]
62c265337c chore(package): update eslint to version 3.15.0
https://greenkeeper.io/
2017-02-03 22:02:45 +00:00
Jérémie Astori
a8a1af4b62 Update deprecated options and rules 2017-02-02 19:13:05 -05:00
greenkeeper[bot]
a74133ec69 chore(package): update stylelint to version 7.8.0
https://greenkeeper.io/
2017-02-02 13:26:00 +00:00
Jérémie Astori
a2ed979f08 Merge pull request #906 from thelounge/astorije/npmignore-fix
Add nyc and Webpack config files to the files ignored when releasing
2017-02-01 09:16:14 -05:00
Jérémie Astori
410eff428b Prompt admin for user log at user creation 2017-02-01 01:26:19 -05:00
Jérémie Astori
b73696a8bf Merge pull request #880 from thelounge/greenkeeper/npm-run-all-4.0.1
Update npm-run-all to the latest version 🚀
2017-01-31 22:27:35 -05:00
greenkeeper[bot]
7fb3b0dfb0 chore(package): update npm-run-all to version 4.0.1
https://greenkeeper.io/
2017-01-31 22:18:30 -05:00
Jérémie Astori
616396bc04 Merge pull request #887 from drkitty/explain-dev-installation
Explain about `lounge` command in dev installations
2017-01-31 21:58:05 -05:00
Jérémie Astori
bf7630c96e Merge pull request #882 from thelounge/greenkeeper/nyc-10.1.0
Update nyc to the latest version 🚀
2017-01-31 21:51:03 -05:00
Jérémie Astori
7d910f305f Fix date in v2.2.0 changelog entry, woops... 2017-01-31 21:31:59 -05:00
Jérémie Astori
69bb8412cc Merge pull request #896 from thelounge/sort-packagejson
Sort depedencies in package.json
2017-01-31 21:29:01 -05:00
Jérémie Astori
0b9c8a3432 Add nyc and Webpack config files to the files ignored when releasing
Comparing https://unpkg.com/thelounge@2.1.0/ and https://unpkg.com/thelounge@2.2.0/, these have slipped in.
2017-01-31 21:20:35 -05:00
Jérémie Astori
4918fe6996 2.2.0 2017-01-31 21:08:41 -05:00
Jérémie Astori
674141ff80 Add changelog entry for v2.2.0 2017-01-31 21:08:32 -05:00
Pavel Djundik
a8b93edd86 Change default maxHistory to 10000 2017-01-29 11:18:33 +02:00
Pavel Djundik
b0f5edd24d Sort depedencies in package.json 2017-01-28 15:16:37 +02:00
Jérémie Astori
87b9c50aaa Merge pull request #889 from thelounge/astorije/placeholder
Un-ellipsis placeholder and use ES6 template
2017-01-25 00:46:37 -05:00
Jérémie Astori
dcc98c3efb Un-ellipsis placeholder and use ES6 template 2017-01-24 23:55:57 -05:00
drkitty
41b7e0e077 Explain about lounge command in dev installations 2017-01-24 01:04:40 -08:00
Alistair McKinlay
ba165de94e Merge pull request #812 from birkof/master
No prefetch URLs unless are messages
2017-01-23 10:43:30 +00:00
Alistair McKinlay
91ae814ead Merge pull request #858 from thelounge/xpaw/tweak-webpack
Do not uglify builds when running start-dev
2017-01-23 10:42:37 +00:00
Daniel Stancu
36893c6d7c Do not prefetch URLs unless they are messages or /me actions
ACTION & MESSAGE type messages should be prefetched by default
2017-01-23 01:42:54 -05:00
Jérémie Astori
bc8b699437 Add a basic check for bundled application when starting the server
Note that this will not detect if the client application was built with an old version of the repo.
2017-01-23 01:15:50 -05:00
Jérémie Astori
c7e80006b9 Add an extra Travis CI job to make sure production build succeeds and passes tests 2017-01-23 01:15:50 -05:00
Jérémie Astori
552fa3fae8 Make and document npm run build now a mandatory step of the install/build setup
This has several reasons, benefits and consequences:

- When running on root (which is not recommended anyway), `npm run build` was already necessary.
- This allows to not use the `prepublish` hook, whose behavior is going to change in npm v5 and again in npm v6.
- This allows to create both production and development builds when running from source.
- It makes `npm run build` compatible with Windows again for development environments (lost in previous commit).
- It uses the `prepublishOnly` hook added in npm v4. Since this hook is not available prior to that, deployment to npm from Travis has to be done on the Node.js v7 environment.
2017-01-23 01:15:50 -05:00
Alistair McKinlay
b67836ffe0 Merge pull request #883 from thelounge/greenkeeper/babel-core-6.22.1
Update babel-core to the latest version
2017-01-21 19:33:20 +00:00
greenkeeper[bot]
7d69648e11 chore(package): update babel-core to version 6.22.1
https://greenkeeper.io/
2017-01-20 03:15:42 +00:00
greenkeeper[bot]
05b11e7a3d chore(package): update nyc to version 10.1.0
https://greenkeeper.io/
2017-01-18 01:58:14 +00:00
Jérémie Astori
cca908f87f Merge pull request #875 from thelounge/greenkeeper/eslint-3.13.1
Update eslint to the latest version 🚀
2017-01-14 01:57:56 -05:00
Jérémie Astori
d8f1690904 Use Webpack configuration based on NODE_ENV instead of watch/no-watch
Also, move the `DedupePlugin` to the prod-specific section. [Webpack doc](https://webpack.github.io/docs/list-of-plugins.html#dedupeplugin) itself recommends to not run this outside of production.

Note that this currently breaks cross-OS support of `npm run build`. This will be fixed in a latter commit.
2017-01-10 13:07:27 -05:00
Pavel Djundik
a8dd136168 Do not uglify builds when running start-dev 2017-01-10 13:07:27 -05:00
greenkeeper[bot]
ba0b89d2bb chore(package): update eslint to version 3.13.1
https://greenkeeper.io/
2017-01-09 22:25:17 +00: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
Alistair McKinlay
c8848ea7b1 Merge pull request #868 from thelounge/astorije/bold-log
Make log style when referring user consistent with other places
2017-01-04 11:13:30 +00:00
Jérémie Astori
3e82994ae2 Make log style when referring user consistent with other places 2017-01-04 02:17:15 -05:00
Jérémie Astori
df4b14d546 Merge pull request #783 from thelounge/xpaw/irc-raw-log
Option to log raw IRC traffic
2017-01-04 01:56:19 -05:00
Jérémie Astori
a5cb6abf72 Merge pull request #829 from thelounge/xpaw/incrase-contrast
Increase IRC colors contrast
2017-01-04 01:49:27 -05: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
Jérémie Astori
7108a412f1 Merge pull request #860 from thelounge/greenkeeper/npm-run-all-4.0.0
Update npm-run-all to the latest version 🚀
2017-01-03 19:12:16 -05:00
Jérémie Astori
d97b3ad414 Merge pull request #861 from thelounge/greenkeeper/stylelint-7.7.1
Update stylelint to the latest version 🚀
2017-01-03 19:12:08 -05:00
Jérémie Astori
e0e607f543 Merge pull request #862 from thelounge/greenkeeper/lodash-4.17.4
Update lodash to the latest version 🚀
2017-01-03 19:11:55 -05:00
Jérémie Astori
259a7d8973 Merge pull request #854 from thelounge/fix-jquery3
Fix stuff that breaks in jQuery 3
2017-01-02 17:59:50 -05:00
greenkeeper[bot]
4c4d9610f3 fix(package): update lodash to version 4.17.4
https://greenkeeper.io/
2016-12-31 22:37:27 +00:00
greenkeeper[bot]
3f4797f4a9 chore(package): update stylelint to version 7.7.1
https://greenkeeper.io/
2016-12-31 16:11:53 +00:00
greenkeeper[bot]
45bb0a7cf2 chore(package): update npm-run-all to version 4.0.0
https://greenkeeper.io/
2016-12-31 15:43:01 +00: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
Jérémie Astori
d9cde04af6 Merge pull request #852 from thelounge/greenkeeper/irc-framework-2.5.3
Update irc-framework to the latest version 🚀
2016-12-29 16:14:26 -05:00
greenkeeper[bot]
8d0b75c674 fix(package): update irc-framework to version 2.5.3
https://greenkeeper.io/
2016-12-29 20:02:42 +00:00
Pavel Djundik
ac99828298 Merge pull request #838 from thelounge/xpaw/web-server-tests
Add web server tests
2016-12-29 13:31:32 +02:00
Pavel Djundik
3240faddc9 Merge pull request #850 from thelounge/astorije/fix-coverage
Switch istanbul CLI to more recent nyc one
2016-12-29 12:21:36 +02:00
Jérémie Astori
056aba8a9e Switch istanbul CLI to more recent nyc one
`nyc` is made by the Istanbul people and is meant to integrate nicely with Babel.
Note that at the moment this is just a drop-in replacement of what we currently have in order to fix broken `npm run coverage`, therefore it does not support our recent ES6 stuff.
2016-12-29 02:51:26 -05:00
Pavel Djundik
f65a5a8c89 Add web server tests 2016-12-28 03:31:33 -05:00
Jérémie Astori
e45edff613 Merge pull request #817 from thelounge/pr/640
Webpack
2016-12-28 03:27:52 -05: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
Jérémie Astori
6466680a8e Merge pull request #840 from thelounge/greenkeeper/lodash-4.17.3
Update lodash to the latest version 🚀
2016-12-24 15:13:34 -05:00
greenkeeper[bot]
51aea5ff14 fix(package): update lodash to version 4.17.3
https://greenkeeper.io/
2016-12-24 14:28:57 +00:00
Jérémie Astori
c0fa58a8b0 Merge pull request #721 from thelounge/astorije/whois-idle
Add human-readable idle time in whois info
2016-12-23 03:42:46 -05:00
Jérémie Astori
da2e286ff8 Use double-nick in whois on query to get idle time
This queries server of the other user and not current user, which does
not know idle time.
See http://superuser.com/a/272069/208074.

Override is done before command is being sent to the server: if a
single argument is given to `/whois`, it is being repeated, otherwise
the command is sent as is.
2016-12-23 01:59:08 -05:00
Jérémie Astori
7ae11babcb Add human-readable idle time in whois info 2016-12-22 00:21:16 -05:00
Jérémie Astori
0489d0f2ae Merge pull request #832 from thelounge/astorije/context-aware-placeholder
Remind channel name or nick in input placeholder
2016-12-21 18:16:06 -05:00
Jérémie Astori
391f3cb59b Merge pull request #834 from thelounge/xpaw/active-window
Do not ignore window opens when considering active channels
2016-12-21 18:15:14 -05:00
Jérémie Astori
783c8d41a3 Merge pull request #822 from thelounge/xpaw/hexip-username
Hide username field when hexip is enabled
2016-12-21 18:12:53 -05:00
Pavel Djundik
3017e67f3a Calculate menu width on touch start
Fixes #831
2016-12-21 19:58:36 +02:00
Jérémie Astori
1d4fe979b1 Merge pull request #826 from thelounge/greenkeeper/update-all
Update dependencies to enable Greenkeeper 🌴
2016-12-21 09:24:12 -05:00
Pavel Djundik
4dd79af9bb Option to log raw IRC traffic 2016-12-21 13:22:18 +02:00
Pavel Djundik
555902bfba Do not ignore window opens when considering active channels 2016-12-21 12:38:50 +02:00
Jérémie Astori
3e6a3651e9 Merge pull request #830 from thelounge/xpaw/date-marker-margin
Remove margin on date marker on smallest screen size
2016-12-20 20:49:10 -05:00
Jérémie Astori
4501c9f4f1 Fix missing placeholder prefixes and make styles consistent for Morning and Zenburn 2016-12-20 20:42:08 -05:00
Jérémie Astori
b07ec94bc3 Remind channel name or nick in input placeholder 2016-12-20 20:13:05 -05:00
Pavel Djundik
d0dee0c47a Remove margin on date marker on smallest screen size 2016-12-21 01:32:23 +02:00
Pavel Djundik
46689b96b3 Increase IRC colors contrast 2016-12-20 21:19:40 +02:00
Pavel Djundik
c37d2b435e Hide username field when hexip is enabled 2016-12-20 13:14:27 +02:00
Pavel Djundik
3a3eebd61d Do not use backticks in strings when unnecessary 2016-12-20 02:09:53 +02:00
greenkeeper[bot]
55f1f84478 chore(package): update dependencies
https://greenkeeper.io/
2016-12-20 00:00:36 +00:00
Alistair McKinlay
6887b66f67 Merge pull request #820 from thelounge/xpaw/fix-unread-disappear
Fix unread marker being removed from DOM
2016-12-19 19:11:26 +00:00
Alistair McKinlay
094de1ff9b Merge pull request #821 from thelounge/xpaw/html-100vh
Make html container take the entire screen estate
2016-12-19 19:10:42 +00:00
Pavel Djundik
bf71c4b9bd Make html container take the entire screen estate 2016-12-19 15:12:29 +02:00
Pavel Djundik
7709847267 Fix unread marker being removed from DOM 2016-12-19 14:46:18 +02:00
Pavel Djundik
b9047d98a2 Merge pull request #799 from thelounge/astorije/improve-command-line-output
Improve CLI a bit (output formatting and bug fix)
2016-12-19 14:18:54 +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
Jérémie Astori
06cba0af81 Merge pull request #801 from thelounge/xpaw/no-focus-mobile
Do not automatically focus on touch devices
2016-12-18 16:04:18 -05: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
Jérémie Astori
3c8179fda1 Merge pull request #805 from thelounge/xpaw/notif-says
Only append "says" to notifications if its a message
2016-12-17 12:22:52 -05: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
770ede0587 Define a common helper for prompting to the user consistently 2016-12-16 22:46:14 -05:00
Maxime Poulin
8ba34f12de Merge pull request #802 from thelounge/xpaw/irc-fw-socket-fix
Fix #792: irc-fw update changed socket reference
2016-12-16 20:36:57 -05:00
Pavel Djundik
e56d0c3be0 Fix #792: irc-fw update changed socket reference 2016-12-17 00:15:05 +02:00
Pavel Djundik
2d09e09223 Merge pull request #789 from thelounge/astorije/simpler-readme-intro
Simplify introduction on README
2016-12-16 21:12:17 +02:00
Pavel Djundik
347440bfc3 Merge pull request #784 from thelounge/xpaw/stop-page-refresh
Stop refreshing the page on every socket.io error
2016-12-16 21:11:28 +02:00
Jérémie Astori
95f83525f0 Merge pull request #800 from thelounge/astorije/travis-node-v7
Add Node.js v7, current stable, to Travis CI
2016-12-16 02:24:22 -05:00
Jérémie Astori
a9f692a2d3 Add Node.js v7, current stable, to Travis CI
We are seeing more and more people installing on Node v7 so it's important to ensure `npm install` will pass correctly and our (limited but growing) test suite as well.
2016-12-16 02:02:48 -05:00
Jérémie Astori
6c546b2098 Fix CLI options on the start command
I know it is proposed to deprecate them in favor of a more generic one (`-c port=80`), but in the meantime the existing ones should work properly.
2016-12-15 01:29:44 -05:00
Jérémie Astori
baf3348cda Normalize colors and content of the CLI tools 2016-12-15 01:13:43 -05:00
Pavel Djundik
1065f17441 Merge pull request #795 from MaxLeiter/MaxLeiter/empty-password
Do not accept empty password when adding new user; closes #316
2016-12-14 12:38:06 +02:00
Jérémie Astori
86358c619b Lock input message when app is disconnected 2016-12-14 01:35:32 -05:00
Max Leiter
d4554d2fa7 Do not accept empty password when adding new user; closes #316 2016-12-13 20:50:15 -08:00
Jérémie Astori
c20813609b Style connection error message consistently with the rest of the app, above the message input 2016-12-13 01:58:05 -05:00
Pavel Djundik
a8926e2ced Stop refreshing the page on every socket.io error 2016-12-13 01:55:11 -05:00
Alistair McKinlay
5213853524 Merge pull request #779 from thelounge/astorije/users-always-autoload
Make user autoload more transparent in the app
2016-12-12 12:10:52 +00:00
Alistair McKinlay
909f59c48f Merge pull request #790 from thelounge/astorije/bump-irc-framework
Bump irc-framework to bring a couple of fixes
2016-12-12 12:04:34 +00:00
Jérémie Astori
2d1b33b930 Bump irc-framework to bring a couple of fixes
Diff at 948a4b285f...90a69d300f
2016-12-11 14:28:10 -05:00
Jérémie Astori
485fab6cd4 Simplify introduction on README
Features listed here are the same as on Shout repo, in same order, participating to the feeling of fork with nothing new. Instead of listing features here, we should refer to the website and improve it to make it as current as possible (there was some recent action there, and more coming, so it is reasonable to point there).

Also, this "Why the fork?" section was useful right when we forked, but now it gives unnecessary and lengthy information (it is now the most verbose section of the README!). The Lounge has enough momentum as that point to be treated as its own project.

Finally, shortening this section moves the screenshot back up on the page, and mobile view now has more context in the description.
2016-12-11 04:14:17 -05:00
Pavel Djundik
778db968b3 Merge pull request #780 from thelounge/astorije/fix-screenshot
Fix wrong order between screenshot and badges on README
2016-12-11 10:58:49 +02:00
Jérémie Astori
bafe23b4b7 Fix wrong order between screenshot and badges on README
Branch was not exactly up-to-date with `master` when merged, and badges were moved below the title in #713, so we missed that at review time.
2016-12-11 03:57:43 -05:00
Jérémie Astori
9c8b2cb8d1 Merge pull request #753 from thelounge/xpaw/oident
Correctly remove closed sockets from oident file, remove unused functions
2016-12-11 03:36:06 -05:00
Jérémie Astori
bc01d6ccd1 Improve message and style of loading/unloading console logs, use ES6 template literals 2016-12-11 03:30:19 -05:00
Jérémie Astori
b01517861d Remove autoload option and always autoload users
Since @xPaw provided a really nice way to watch user config files, there is now no need to be cheap about it (it used to be run every second, possibly why it could be disabled via settings?).

This commit also improves the function a little bit by making use of ES6 syntax.

A warning gets displayed on the server console when the `autoload` option is still present in the config file.
2016-12-11 03:29:30 -05:00
Pavel Djundik
28056d678e Correctly remove closed sockets from oident file, remove unused functions 2016-12-11 08:56:32 +02:00
Jérémie Astori
303fab8519 Merge pull request #749 from thelounge/xpaw/hexip
Add support for hexip ilines and fix storing client ip in config
2016-12-10 19:50:33 -05:00
Jérémie Astori
b1478c1ae1 Merge pull request #782 from thelounge/xpaw/correct-link-chan
Use correct channel when pushing link prefetch messages
2016-12-10 19:44:35 -05:00
Jérémie Astori
cc763bd47a Merge pull request #757 from PolarizedIons/channel-sync
Sync reordering of channels/networks to other clients
2016-12-10 19:40:29 -05:00
Maxime Poulin
3e5a4c9c38 Merge pull request #750 from thelounge/xpaw/reduce-save
Avoid unnecessary disk writes when saving user
2016-12-10 18:19:56 -05:00
Pavel Djundik
4fe3c5e96a Change ghetto timer to debounce 2016-12-10 11:05:34 +02:00
Pavel Djundik
463a63aed3 Avoid unnecessary disk writes if user object has not changed, make updateUser async 2016-12-10 11:05:34 +02:00
Pavel Djundik
62d4cd8fe8 Use correct channel when pushing link prefetch messages
Fixes #781
2016-12-09 23:00:33 +02:00
stepie22
a5ad573b2d Sync reordering of channels/networks to other clients 2016-12-09 14:56:19 +02:00
Jérémie Astori
085ede43df Merge pull request #694 from MaxLeiter/MaxLeiter-image
Add image to readme
2016-12-09 00:44:27 -05:00
Jérémie Astori
9260f6b845 Merge pull request #751 from thelounge/xpaw/watch-autoload
Change ghetto autoload to use fs.watch
2016-12-07 00:35:33 -05:00
Pavel Djundik
69999f9190 Change ghetto autoload to use fs.watch 2016-12-07 00:31:36 -05:00
Jérémie Astori
9e249a1d2f Merge pull request #765 from stepie22/date-separator-fixes
Date separator fixes
2016-12-04 20:13:09 -05:00
Pavel Djundik
0c1156a4d8 Merge pull request #725 from thelounge/astorije/no-root-from-source
Warn against running from source as root in README
2016-12-02 18:28:39 +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
Jérémie Astori
a6f0dfbe47 Merge pull request #755 from IlyaFinkelshteyn/master
Unblock AppVeyor build
2016-11-28 01:00:04 -05:00
Jérémie Astori
0d54879e45 Warn against running from source as root in README 2016-11-27 16:37:47 -05:00
IlyaFinkelshteyn
8d31a0b312 Invalidate cache and use appveyor-retry with npm
Return cache but invalidate it when needed

Add appveyor-retry

Remove spaces
2016-11-25 19:43:24 -08:00
stepie22
aa8e0ae2c2 Set the (correct) time on link expands 2016-11-25 21:27:19 +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
Pavel Djundik
d695c64c04 Merge pull request #671 from stepie22/date-seperator
Add a date separator to channels/PMs
2016-11-24 17:42:24 +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
Jérémie Astori
adf93f9fad Merge pull request #746 from thelounge/xpaw/update-deps
Update depdencides to latest stable versions
2016-11-20 14:46:16 -05:00
Pavel Djundik
d6545fd307 Remove appveyor cache 2016-11-20 09:43:08 +02:00
Jérémie Astori
d8ef28c1ae Merge pull request #743 from thelounge/xpaw/print-node-version
Print node version and platform
2016-11-19 23:05:17 -05:00
Jérémie Astori
ee801f8cd0 Merge pull request #748 from thelounge/xpaw/remove-pass-class
Remove errorneous classname from password field
2016-11-19 22:09:24 -05:00
Jérémie Astori
e51d82b0d9 Merge pull request #747 from thelounge/xpaw/keyword-lounge
Add lounge keyword
2016-11-19 22:08:13 -05:00
Pavel Djundik
00548e65d7 Update existing networks with ip and hostmask if null 2016-11-19 22:34:05 +02:00
Pavel Djundik
4078abb085 Correctly save ip and hostname in user config 2016-11-19 22:23:51 +02:00
Pavel Djundik
708788338c Add support for hexip ilines 2016-11-19 20:32:47 +02:00
Pavel Djundik
f8e616ce25 Remove errorneous classname from password field 2016-11-19 12:15:57 +02:00
Pavel Djundik
2f363c9803 Add lounge keyword 2016-11-19 12:05:46 +02: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
Pavel Djundik
b5db0abc18 Print node version and platform 2016-11-18 19:25:23 +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
b7ff814d8b Merge pull request #736 from williamboman/log-config-file
src/server: log.debug config path on start-up
2016-11-16 00:13:13 -05:00
Jérémie Astori
49c473c85c Merge pull request #732 from thelounge/astorije/fix-notifications
Silence failures to trigger notifications when not available
2016-11-15 21:20:21 -05:00
William Boman
2f77d6981b src/server: log config path on start-up 2016-11-15 18:23:02 +01:00
Max Leiter
9dd8a794e0 Update link 2016-11-14 19:27:11 -08: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
Jérémie Astori
ddaf7ff300 Add a way to cycle through nicks on mobile
This was heavily inspired by a877e46.
Clearly not a definitive solution but a good start to have and to improve upon.
2016-10-25 01:03:43 -04:00
Jérémie Astori
61a582f71f Merge pull request #702 from stepie22/dragndrop-fix
Fix channels behaving strangely while dragging
2016-10-23 10:34:02 -04:00
Jérémie Astori
8ec6d969d1 Merge pull request #697 from cloudron-io/ldap_crashfix
Fix crash when LDAP server is unreachable
2016-10-23 10:10:48 -04:00
Jérémie Astori
c85e4070b1 Merge pull request #716 from thelounge/xpaw/match-h2-color
Match window title border line to text color
2016-10-23 09:55:02 -04:00
Jérémie Astori
f09cb0abfb Merge pull request #717 from thelounge/xpaw/submit-id
Add id to submit button
2016-10-23 09:54:20 -04:00
stepie22
1a4974b7df Fix channels drag'n'droping 2016-10-23 11:47:33 +02:00
Pavel Djundik
35af3b1710 Add id to submit button 2016-10-23 11:16:55 +03:00
Pavel Djundik
b93fa12494 Match window title border line to text color 2016-10-23 11:11:04 +03:00
Jérémie Astori
5ff1496061 Merge pull request #711 from thelounge/xpaw/bcrypt
Change bcrypt rounds from 8 to 11
2016-10-23 00:51:56 -04:00
Jérémie Astori
3c3436e3e2 Merge pull request #713 from thelounge/readme-badges
Update badges in readme
2016-10-22 17:43:29 -04:00
Pavel Djundik
3231097e0d Reduce badge size in readme 2016-10-23 00:39:22 +03:00
Jérémie Astori
dba885be47 Merge pull request #709 from thelounge/astorije/rm-notification-poyfill
Remove browser notification polyfill and inform user when unsupported
2016-10-22 17:36:26 -04:00
Jérémie Astori
d82a894b7b Remove browser notification polyfill and inform user when unsupported 2016-10-22 17:26:34 -04:00
Pavel Djundik
c5e0dee3a3 Change bcrypt rounds from 8 to 11 2016-10-22 09:24:27 +03:00
Pavel Djundik
f3f933ed44 Merge pull request #707 from thelounge/astorije/rm-rf-osx
Get rid of OSX CI builds until they get much faster
2016-10-21 22:38:40 +03:00
Pavel Djundik
45554ec7b7 Merge pull request #703 from thelounge/astorije/test-handlebars
Add a simple (first) test for localetime Handlebars helper
2016-10-20 16:53:48 +03:00
Jérémie Astori
dec9a173bf Get rid of OSX CI builds until they get much faster
OSX builds have been nothing but a pain on Travis CI: they fail with no good reason, they stay pending forever, etc.

As far as I can tell, I can't remember one valid build they failed and we legitimately discovered a bug. Dev env on OSX is very close to Linux so it's good enough to have it here.
2016-10-20 01:40:20 -04:00
Jérémie Astori
1ff011dfaf Add a simple (first) test for localetime Handlebars helper 2016-10-20 01:49:34 +02:00
Jérémie Astori
04f23704b8 Merge pull request #679 from thelounge/xpaw/fix-mode-command
Fix /mode command to correctly assume target
2016-10-17 15:30:02 -04:00
Jérémie Astori
427a630094 Merge pull request #700 from thelounge/astorije/appveyor-cache
Fix AppVeyor cache never being successfully built
2016-10-17 03:34:09 -04:00
Jérémie Astori
f5af8a4986 Merge pull request #674 from MaxLeiter/MaxLeiter/override-defaults
Override defaults with URL
2016-10-17 02:11:30 -04:00
Jérémie Astori
794b5e4734 Merge pull request #636 from thelounge/xpaw/sync-channels
Improve support for opening multiple clients at once
2016-10-17 01:56:12 -04:00
Jérémie Astori
79e20c83d5 Fix AppVeyor cache never being successfully built
Oh that wonderful Windows world...
2016-10-17 01:41:14 -04:00
Pavel Djundik
a1f56c7395 Improve support for opening multiple clients at once
- Synchornize unread counter with the server
- Fix unread marker on no attached clients
- Increase unread counter for server messages
2016-10-17 01:31:22 -04:00
Jérémie Astori
b2a0cae626 2.1.0 2016-10-17 00:49:52 -04:00
Jérémie Astori
38efe89f56 Add change log entry for upcoming v2.1.0 2016-10-17 00:49:48 -04:00
Girish Ramakrishnan
09f2d069de Fix crash when LDAP server is unreachable
Fixes #667
2016-10-16 11:27:09 -07:00
Max Leiter
b503b8cb4f Add image to readme 2016-10-15 13:48:26 -07:00
Jérémie Astori
5598da73d9 Merge pull request #689 from thelounge/astorije/es5-es6-love
Replace lodash's each/map with ES5 native forEach/map
2016-10-15 16:32:56 -04:00
Jérémie Astori
e905c139d7 Use native ES5 map method instead of lodash's 2016-10-15 15:58:49 -04:00
Jérémie Astori
089c315a8e Use forEach instead of lodash's each, and ES6 fat arrows like it's 2015 2016-10-15 15:58:48 -04:00
Pavel Djundik
93053d497d Add mode command test suite 2016-10-15 14:23:39 +03:00
Pavel Djundik
bfeaeee873 Fix /mode command to correctly assume target 2016-10-15 14:17:45 +03:00
Pavel Djundik
3711aefc2d Merge pull request #664 from thelounge/xpaw/fix-defaults
Fix memory and reference shuffling when creating models
2016-10-15 14:14:53 +03:00
Pavel Djundik
db1dc3675a Merge pull request #592 from williamboman/fix/git-describe
consolidate version numbers throughout all interfaces
2016-10-15 14:06:52 +03:00
Pavel Djundik
a58b7839a7 Merge pull request #685 from thelounge/astorije/fix-nick-in-logs
Fix nick changes not being properly reported in the logs
2016-10-15 14:00:47 +03:00
Jérémie Astori
3a0017583b Merge pull request #687 from thelounge/astorije/ci-caches
Use CI caches for downloaded files instead of installed ones
2016-10-14 23:31:21 -04:00
Pavel Djundik
ebd70824f0 Merge pull request #693 from thelounge/revert-661-xpaw/no-dom-event
Revert "Do not trigger a DOM event on every message"
2016-10-14 20:11:02 +03:00
Pavel Djundik
4f5bb55951 Revert "Do not trigger a DOM event on every message" 2016-10-14 18:49:08 +03:00
Jérémie Astori
93c4c14b72 Merge pull request #647 from nornagon/prefix-lookup
Fill in prefixLookup on network initialization
2016-10-12 03:37:06 -04:00
Jeremy Apthorp
b7814bc571 Fill in prefixLookup on network initialization
Fixes #644.
2016-10-11 22:17:58 -07:00
Jérémie Astori
6dac7b1897 Use CI caches for downloaded files instead of installed ones
This allows for a more meaningful build: if a newer version of a sub-package breaks,
builds would still pass as it uses the cached version. This uses a cache for downloaded packages instead.

I am expecting this to slow down a little bit the builds (but we are OK overall)
but be more accurate in practice.

See https://docs.npmjs.com/cli/cache#configuration and https://docs.npmjs.com/files/folders#node-modules.
2016-10-11 22:30:08 -04:00
William Boman
aabdf562a6 client: re-focus input on chat form submit 2016-10-11 10:43:27 +02:00
William Boman
99218341ec consolidate version numbers throughout all interfaces 2016-10-10 21:56:57 +02:00
Max Leiter
0d058a5ef7 Begin work on overriding defaults in URL 2016-10-10 10:35:33 -07:00
Jérémie Astori
310ab8f43c Fix nick changes not being properly reported in the logs
Before:

```
[2016-10-10 15:17:47] *  nick
```

After:

```
[2016-10-10 16:32:47] * astorije nick astorije2
```
2016-10-10 13:08:23 -04:00
Jérémie Astori
7e39ae045f Merge pull request #681 from thelounge/xpaw/more-eslint
Enforce more eslint rules
2016-10-09 19:02:04 -04:00
Pavel Djundik
aa02fd5180 Enforce more eslint rules 2016-10-09 17:55:37 -04:00
Jérémie Astori
6b597d3b2f Merge pull request #684 from thelounge/astorije/strict-mode
Strict mode for all JS files
2016-10-09 17:55:19 -04:00
Jérémie Astori
8a4100cd01 Merge pull request #682 from thelounge/xpaw/svg-ttf
Remove all font files except WOFF
2016-10-09 15:26:52 -04:00
Pavel Djundik
b28bba6dd4 Remove svg and ttf font formats 2016-10-09 15:21:04 -04:00
Jérémie Astori
e416d74f57 Rename package variable, reserved in strict mode
This has been renamed similarly in other files of the projects already.
2016-10-09 15:15:20 -04:00
Jérémie Astori
caa46042bf Enforce strict mode across all JS files with ESLint
Several ES6 additions are only available in strict mode. Example:
> SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

Strict mode was also enabled in a few of our files already, and it is a good thing to have anyway.
2016-10-09 15:14:02 -04:00
Jérémie Astori
56fb04c81e Merge pull request #683 from thelounge/xpaw/fix-csp-edge
Fix loading fonts in Microsoft Edge
2016-10-09 14:12:31 -04:00
Pavel Djundik
3b8a478e34 Fix loading fonts in Microsoft Edge 2016-10-09 12:29:17 +03:00
Jérémie Astori
e9d7d77cbd Merge pull request #661 from thelounge/xpaw/no-dom-event
Do not trigger a DOM event on every message
2016-10-08 16:35:14 -04:00
Jérémie Astori
45ff1c0a00 Merge pull request #673 from toXel/toxel/fix-missing-keys
Check if SSL key and certificate files exist
2016-10-08 15:35:25 -04:00
Pavel Djundik
8f3f1ca0b1 Fix memory and reference shuffling when creating models 2016-10-08 21:49:31 +03:00
Jérémie Astori
1e864e266e Merge pull request #632 from thelounge/xpaw/multi-prefix-support
Make use of multi-prefix cap and remove NAMES spam on mode changes
2016-10-08 14:03:37 -04:00
Pavel Djundik
2e82c6b5c6 Make use of multi-prefix cap and remove NAMES spam on mode changes 2016-10-08 20:30:25 +03:00
toXel
5b6f5d5dce Check if SSL key and certificate files exist 2016-10-08 14:56:12 +02:00
Jérémie Astori
ac3992bcdb Merge pull request #658 from thelounge/xpaw/wallops
Display wallops in server window
2016-10-08 00:02:16 -04:00
Pavel Djundik
94781c98d4 Merge pull request #653 from MaxLeiter/MaxLeiter/crypto-unhandled
Fix unhandled message color in Crypto theme
2016-10-07 19:40:05 +03:00
Pavel Djundik
da215d5465 Merge pull request #670 from thelounge/astorije/hostmask-in-logs
Add hostmasks in logs when possible
2016-10-07 19:37:59 +03:00
Jérémie Astori
41525ec20c Add hostmasks in logs when possible
This will augment logs for `join`/`part`/`quit` with something similar to:

```
[2016-10-03 23:19:29] * astorije2 (~lounge-us@123.45.67.89) join
[2016-10-03 23:22:04] * foobar (~foo@irc.example.com) join

[2016-10-03 23:22:00] * foo (foo@gateway/web/freenode/ip.12.34.56.789) quit Quit: Page closed
[2016-10-03 23:22:12] * bar (~foo@unaffiliated/bar) quit Ping timeout: 252 seconds

[2016-10-03 23:31:23] * astorije (~astorije@128.30.0.0) part
```
2016-10-03 19:40:26 -04:00
Max Leiter
565e37e873 Fix unhandled message color in Crypto theme 2016-10-03 10:20:06 -07:00
Jérémie Astori
cd87df955e Merge pull request #551 from thelounge/astorije/set-nick-ui
Changing nick in the UI
2016-10-01 16:59:16 -04:00
Pavel Djundik
024369d4c3 Implement our own /nick command to allow editing nick when not connected 2016-10-01 16:51:35 -04:00
Pavel Djundik
beb6d1ea5b Reset nickname in UI back to previous one on error 2016-10-01 16:51:35 -04:00
Jérémie Astori
4328946f80 Add tooltips to nick editor buttons 2016-10-01 16:51:35 -04:00
Jérémie Astori
12839af684 Make nick badge editable to set it in the UI 2016-10-01 16:51:34 -04:00
Pavel Djundik
2cbe0caf40 Merge pull request #662 from thelounge/astorije/consolidate-helpers
Consolidate locale time helpers
2016-10-01 23:38:06 +03:00
Jérémie Astori
4e1d89f567 Consolidate locale time helpers
When working on #660, I missed that helper already existed, added in #167.
2016-10-01 15:38:06 -04:00
Pavel Djundik
743d4b61d5 Do not trigger a DOM event on every message 2016-10-01 13:09:57 +03:00
Pavel Djundik
cd90d50a37 Merge pull request #660 from thelounge/astorije/98-add-timestamp-title
Display localized timestamp in title of message times
2016-10-01 09:50:17 +03:00
Jérémie Astori
fc03a338fc Display localized timestamp in title of message times 2016-10-01 02:46:19 -04:00
Pavel Djundik
63f4fc39c9 Display wallops in server window
Fixes #225
2016-10-01 00:29:49 +03:00
Pavel Djundik
52a0552bc4 Merge pull request #657 from thelounge/astorije/fix-icons
Fix title icons for channels and channel lists
2016-09-30 20:52:22 +03:00
Jérémie Astori
f2c4d08801 Fix title icons for channels and channel lists
This bug slipped when adding `/list` support in #258.
2016-09-30 01:50:54 -04:00
Jérémie Astori
28b5fdb8ce Merge pull request #637 from thelounge/xpaw/extra-loading
Display extra loading messages
2016-09-30 01:34:05 -04:00
Jérémie Astori
ad4a79cbca Merge pull request #400 from maxpoulin64/slide
Add touch slideout menu for mobile
2016-09-30 00:03:04 -04:00
Jérémie Astori
3b8e4f36eb Merge pull request #652 from innovandalism/master
Themes: Fixed CSS rule selectors for highlight messages
2016-09-30 00:01:41 -04:00
Jérémie Astori
345aac1a27 Merge pull request #258 from maxpoulin64/channel-list
Implement /list
2016-09-29 02:47:34 -04:00
Alexander Schittler
65ba8af660 Themes: Fixed CSS rule selectors for highlight messages 2016-09-28 20:23:06 +02:00
Jérémie Astori
4541309988 2.0.1 2016-09-28 00:21:01 -04:00
Jérémie Astori
7c02ef53b0 Add change log entry for upcoming v2.0.1 2016-09-28 00:20:44 -04:00
Pavel Djundik
fd9edbfd69 Merge pull request #645 from thelounge/astorije/david-url-fix
Fix devDependency URL in David badge
2016-09-27 08:30:09 +03:00
Jérémie Astori
b8c62377e6 Merge pull request #639 from thelounge/xpaw/update-dev-deps
Update developer dependencies
2016-09-27 01:26:05 -04:00
Jérémie Astori
7858504c4c Fix devDependency URL in David badge
Because they **needed** to break backward compatibility, didn't they...
2016-09-27 01:24:47 -04:00
Pavel Djundik
1d08e909cc Update developer dependencies 2016-09-25 14:53:03 +03:00
Pavel Djundik
396a9cffb1 Display extra loading messages 2016-09-25 09:52:16 +03:00
Jérémie Astori
e568452528 Merge pull request #622 from MaxLeiter/graceful-editor-fail
Handle stderr when using edit or config command, fixes #164
2016-09-25 01:31:21 -04:00
Pavel Djundik
98b7908c2b Merge pull request #618 from thelounge/astorije/disable-pull-to-refresh
Disable pull-to-refresh on mobile that conflicts with scrolling the message list
2016-09-25 08:28:54 +03:00
Jérémie Astori
7b15235489 Merge pull request #359 from thelounge/xpaw/simplify-base-theme
Move Shout theme borders to example theme
2016-09-25 01:21:56 -04:00
Jérémie Astori
38175b1386 Merge pull request #628 from nornagon/ungrunt
Move uglify invocation into npm scripts and remove grunt
2016-09-25 01:15:03 -04:00
Jérémie Astori
937cc4ebed Merge pull request #625 from thelounge/astorije/safe-localstorage
Ensure localStorage cannot fail because of quota or Safari private browsing
2016-09-25 00:44:29 -04:00
Jérémie Astori
eaa05f2473 Merge pull request #629 from thelounge/xpaw/remove-prefix
Remove -ms-transform and add missed -webkit-transform
2016-09-25 00:42:11 -04:00
Jérémie Astori
6092ac9ec4 Merge pull request #621 from thelounge/astorije/298-run-from-source
Add info on README about how to run from source, how to upgrade
2016-09-25 00:17:19 -04:00
Jérémie Astori
213384ded9 2.0.0 2016-09-24 23:58:59 -04:00
Jérémie Astori
e9ab8e3b1f Add change log entry for upcoming v2.0.0 2016-09-24 23:58:18 -04:00
Jérémie Astori
1dc3e74f7f Remove next tag used for 2.0.0 prereleases 2016-09-24 23:56:49 -04:00
Max Leiter
e6bf20de2f Handle stderr when using edit or config command, fixes #164 2016-09-24 09:27:58 -07:00
Pavel Djundik
bdb4d0de6a Remove -ms-transform and add missed -webkit-transform 2016-09-24 10:46:02 +03:00
Pavel Djundik
62ee13833b Move Shout theme borders to example theme 2016-09-24 00:16:00 +03:00
Pavel Djundik
2bb782fe81 Merge pull request #617 from thelounge/astorije/fix-sidebar-loading
Hide sidebar when app is loading in themes
2016-09-24 00:14:24 +03:00
Jeremy Apthorp
62edd07c23 Move uglify invocation into npm scripts and remove grunt 2016-09-22 20:53:52 -07:00
Jérémie Astori
f7466cb556 2.0.0-rc.2 2016-09-21 01:35:27 -04:00
Jérémie Astori
a85d645890 Add change log entry for upcoming v2.0.0-rc.2 2016-09-21 01:35:18 -04:00
Jérémie Astori
3dbfd12add Merge pull request #626 from Gilles123/ios8-fix
Fix "display: flex" to work on iOS 8
2016-09-21 01:30:02 -04:00
Jérémie Astori
4439303f90 Ignore consecutive duplicates in stylelint for prefixed values
This is already necessary globally and will become even more so as we are adding flexbox pieces to the UI.
See http://stylelint.io/user-guide/rules/declaration-block-no-duplicate-properties/.
2016-09-21 01:14:42 -04:00
Gilles Gauthier
8bd5d800d0 Fixing display: flex for iOS 8 2016-09-20 21:59:59 -07:00
Jérémie Astori
813572de47 Ensure localStorage cannot fail because of quota or Safari private browsing
See http://stackoverflow.com/q/14555347/1935861
2016-09-20 23:43:23 -04:00
Jérémie Astori
ae2b27ba5f Remove license info from the README
This is already on the badge and at the top of the page, on GitHub UI, as well as in 2 places in npm.
2016-09-20 23:00:42 -04:00
Jérémie Astori
f1c3e376c5 Add information on running from source and clean up README a bit 2016-09-20 23:00:42 -04:00
Jérémie Astori
578328d208 Disable pull-to-refresh on mobile that conflicts with scrolling the message list
See http://stackoverflow.com/a/29313685/1935861
2016-09-18 19:28:27 -04:00
Jérémie Astori
701e333d78 Hide sidebar when app is loading in themes
This change was originally made in #420 then I broke it for themes in #615, sigh...
2016-09-17 20:43:29 -04:00
Jérémie Astori
c090ab065f 2.0.0-rc.1 2016-09-17 13:25:27 -04:00
Jérémie Astori
71f0455c91 Add change log entry for upcoming v2.0.0-rc.1 2016-09-17 13:25:12 -04:00
Jérémie Astori
4d24061481 Merge pull request #615 from thelounge/astorije/fix-margin-themes
Fix a left margin appearing on all non-default themes
2016-09-17 13:17:21 -04:00
Jérémie Astori
8be62e4f55 Fix a left margin appearing on all non-default themes 2016-09-17 13:13:01 -04:00
Jérémie Astori
ba8ddd88c0 Merge pull request #612 from thelounge/astorije/585-fix-tooltips
Disable tooltips on mobile to prevent them to stay after clicking
2016-09-16 02:52:23 -04:00
Jérémie Astori
87dfe2cc22 Disable tooltips on mobile to prevent them to stay after clicking 2016-09-14 23:50:57 -04:00
Maxime Poulin
3b84e29e44 Merge pull request #601 from thelounge/astorije/600-fix-small-fonts
Fix small input text on Morning and Zenburn
2016-09-12 18:11:43 -04:00
Jérémie Astori
687a5846b6 Fix small input text on Morning and Zenburn 2016-09-12 01:25:09 -04:00
Jérémie Astori
99640e07d6 Merge pull request #597 from thelounge/astorije/fix-safari-10-csp
Explicitly authorize websockets in CSP header
2016-09-09 01:40:43 -04:00
Jérémie Astori
2b3b4ea924 Explicitly authorize websockets in CSP header
This follows a recent change in WebKit (see https://webkit.org/blog/6830/a-refined-content-security-policy/, section "More restrictive wildcard *") to remove websocket schemes from the connect-src directive.
Users of Safari v10 (to be publicly released in a few days) would be affected by this and could not load the app.
2016-09-09 01:17:31 -04:00
Jérémie Astori
8d838aa08d 2.0.0-pre.7 2016-09-08 23:52:42 -04:00
Jérémie Astori
3b20b1bcab Add change log entry for upcoming v2.0.0-pre.7 2016-09-08 23:52:29 -04:00
Jérémie Astori
4be6a6e462 Merge pull request #593 from williamboman/chore/eslint-es6-src
lint: default to ecmaVersion: 6, keep ecmaVersion: 5 for client/
2016-09-07 00:11:25 -04:00
William Boman
204e5e4ee4 lint: default to ecmaVersion: 6, keep ecmaVersion: 5 for client/ 2016-09-06 10:09:11 +02:00
Alistair McKinlay
dfe967b2b1 Merge pull request #568 from thelounge/astorije/theme-selector
Theme selector on the client
2016-09-06 08:45:55 +01:00
Jérémie Astori
d5f234bdb5 Make all window form inputs white so selects match text inputs 2016-09-06 01:18:21 -04:00
Jérémie Astori
6d72f023fa Fix wrong loading of Crypto font
Turns out, this theme probably never loaded its font right, fail...
`GET https://.../themes/fonts/inconsolatag.woff` --> 404
2016-09-06 01:11:31 -04:00
Jérémie Astori
b153d568a0 Add a theme selector in the settings
Power to the people!

There is now 2 ways to set the theme: on the app config file (defaults
for all users) and in the user settings.
All CSS files present in the `client/themes` folder will be given as
choices to the users.

This is temporary (as in, temporary for a fairly long time) until we
have proper theme management.
2016-09-06 01:11:31 -04:00
Jérémie Astori
c4cfd7e4b5 Alphabetically order default user settings, remove unnecessary continue statement, transform ifs into else-ifs 2016-09-06 01:11:31 -04:00
Jérémie Astori
34036a4b7a Allow ourselves to have decent looking select elements in the settings 2016-09-06 01:11:31 -04:00
Maxime Poulin
7f6dfe1652 Merge pull request #572 from thelounge/astorije/fix-radiuses-again
Move border-radius from #main to .window elements to fix radius once and for all
2016-09-03 20:16:17 -04:00
Jérémie Astori
5332909c89 Merge pull request #587 from thelounge/astorije/fix-orientation
Do not set app orientation in manifest to use user setting at OS level
2016-09-03 01:47:55 -04:00
Jérémie Astori
b66c538a45 Merge pull request #562 from thelounge/astorije/css-redundancy-fix-2
Remove font family redundancy, fix missed fonts, remove Open Sans
2016-09-02 22:37:45 -04:00
Jérémie Astori
d0ed6826be Do not set app orientation in manifest to use user setting at OS level 2016-08-30 00:40:17 -04:00
Jérémie Astori
2af0435ee6 Merge pull request #547 from thelounge/PR/actual-debug-option
Add debug config option for irc-fw debug log
2016-08-29 02:08:30 -04:00
Maxime Poulin
0c3dc31e31 Add debug config option for irc-fw debug log 2016-08-29 02:07:09 -04:00
Jérémie Astori
76cafeef23 Merge pull request #548 from MaxLeiter/patch-2
Mention wiki in README
2016-08-26 16:16:24 -04:00
Max Leiter
727e7deb5e Mention wiki in README 2016-08-26 09:16:01 -07:00
Pavel Djundik
eabc808565 Merge pull request #570 from thelounge/astorije/569-fix-auth
Make sure users with wrong tokens are locked out instead of crashing the app
2016-08-21 16:13:10 +03:00
Jérémie Astori
ed9c257e4f Merge pull request #576 from thelounge/astorije/550-fix-long-urls
Allow long URLs to break onto next line on Chrome
2016-08-21 01:34:41 -04:00
Jérémie Astori
66f6a623d8 Allow long URLs to break onto next line on Chrome
This fixes a bug that displays a horizontal scrollbar and messes up with the layout when URLs (or text) is too long.
Fix is Chrome-specific but so is the bug.
2016-08-20 00:23:56 -04:00
Jérémie Astori
3334713223 Merge pull request #563 from thelounge/astorije/bump-request
Bump request to 2.74.0
2016-08-19 03:29:24 -04:00
Alistair McKinlay
7217655110 Merge pull request #540 from thelounge/astorije/tooltips
Tooltips, tooltips everywhere
2016-08-19 08:17:38 +01:00
Jérémie Astori
f509e9fe5a Move border-radius from #main to .window elements to fix radius once and for all
https://github.com/thelounge/lounge/pull/537 only fixed it on chat windows,
but for some browser-specific display bug/reason not on settings, login, ...
2016-08-19 01:34:42 -04:00
Jérémie Astori
40b8f0c293 Make sure users with wrong tokens are locked out instead of crashing the app 2016-08-18 00:02:40 -04:00
Maxime Poulin
36a21bacac Merge pull request #565 from thelounge/astorije/439-case-insensitive-highlights
Make custom highlights case-insensitive
2016-08-17 12:49:55 -04:00
Jérémie Astori
d48830a1fd Make custom highlights case-insensitive 2016-08-16 10:09:19 -04:00
Jérémie Astori
a959e0ae44 Bump request to 2.74.0
Diff at https://github.com/request/request/compare/v2.72.0...v2.74.0
This suppresses security vulnerability warning.
2016-08-15 00:10:30 -04:00
Jérémie Astori
f2a0bc5d23 Remove font family redundancy, fix missed fonts, remove Open Sans 2016-08-14 17:28:47 -04:00
Jérémie Astori
f824036225 Merge pull request #535 from thelounge/PR/fix-webirc-4in6
Fix webirc and 4-in-6 addresses
2016-08-12 00:39:26 -04:00
Maxime Poulin
4ddaa9a69a Merge pull request #555 from thelounge/astorije/fix-reset-height
Make sure input height is reset when submitting with icon
2016-08-11 01:46:08 -04:00
Maxime Poulin
bec0c74772 Merge pull request #552 from thelounge/astorije/logger
Use our logger instead of console.{log,error} for LDAP logs
2016-08-11 01:44:54 -04:00
Maxime Poulin
11654ff3c1 Merge pull request #553 from thelounge/astorije/fix-auth-token
Fix token persistency across server refresh
2016-08-11 01:41:21 -04:00
Jérémie Astori
dd02f0f029 Make sure input height is reset when submitting with icon
This is especially noticeable on mobile, where clicking Send icon is more natural.
2016-08-11 01:13:41 -04:00
Jérémie Astori
14782a56b7 Use our logger instead of console.{log,error} 2016-08-10 02:40:28 -04:00
Jérémie Astori
cf64cb04c4 Fix token persistency across server restarts
This fixes a regression introduced by LDAP support addition
(https://github.com/thelounge/lounge/pull/477), which forces
users to re-login when the server restarts. This was originally
implemented in https://github.com/thelounge/lounge/pull/370.
2016-08-10 02:26:47 -04:00
Jérémie Astori
facf306045 2.0.0-pre.6 2016-08-10 01:06:05 -04:00
Jérémie Astori
e6800c5ace Add change log entry for upcoming v2.0.0-pre.6 2016-08-10 01:05:53 -04:00
Jérémie Astori
1fb14771ef Merge pull request #477 from thisisdarshan/ldap
LDAP support
2016-08-09 23:58:21 -04:00
Jérémie Astori
a6ffffa715 Fix super minor typo in change log entry title 2016-08-07 18:02:30 -04:00
Jérémie Astori
83d1a99608 Set tooltip colors to be readable on both light and dark backgrounds 2016-08-03 01:11:50 -04:00
Jérémie Astori
e99bf9ac0a Make sure body fonts are used for tooltips 2016-08-03 01:11:10 -04:00
Jérémie Astori
2041c936b2 Add tooltips to user list and submit buttons 2016-08-03 01:10:22 -04:00
Maxime Poulin
d42ac23c55
Fix webirc and 4-in-6 addresses 2016-07-30 20:54:09 -04:00
Johan Lindskogen
987474cfc1 implementing LDAP support 2016-07-29 21:28:00 -04:00
Maxime Poulin
0f439545d4 Fix broken IRC servers with /list 2016-07-22 21:42:42 -04:00
Maxime Poulin
1d47290ada Implement /list
Thanks to @xPaw for the base of this code
2016-07-22 21:42:42 -04:00
Maxime Poulin
0eef5d9240 Add touch slideout menu for mobile 2016-07-22 21:30:45 -04:00
534 changed files with 57117 additions and 41563 deletions

1
.browserslistrc Normal file
View file

@ -0,0 +1 @@
last 2 year, firefox esr

View file

@ -6,6 +6,7 @@ root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
@ -15,10 +16,6 @@ insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[*.{json,yml}]
indent_style = space
indent_size = 2
[.eslintrc]
[*.{json,md,yml}]
indent_style = space
indent_size = 2

View file

@ -1,9 +1,3 @@
# built by tools
client/js/libs.min.js
client/js/lounge.templates.js
# third party
client/js/libs/jquery/*.js
client/js/libs/*.js
public/
coverage/
dist/

193
.eslintrc.cjs Normal file
View file

@ -0,0 +1,193 @@
// @ts-check
const {defineConfig} = require("eslint-define-config");
const projects = defineConfig({
parserOptions: {
project: [
"./tsconfig.json",
"./client/tsconfig.json",
"./server/tsconfig.json",
"./shared/tsconfig.json",
"./test/tsconfig.json",
],
},
}).parserOptions.project;
const baseRules = defineConfig({
rules: {
"block-scoped-var": "error",
curly: ["error", "all"],
"dot-notation": "error",
eqeqeq: "error",
"handle-callback-err": "error",
"no-alert": "error",
"no-catch-shadow": "error",
"no-control-regex": "off",
"no-console": "error",
"no-duplicate-imports": "error",
"no-else-return": "error",
"no-implicit-globals": "error",
"no-restricted-globals": ["error", "event", "fdescribe"],
"no-template-curly-in-string": "error",
"no-unsafe-negation": "error",
"no-useless-computed-key": "error",
"no-useless-constructor": "error",
"no-useless-return": "error",
"no-use-before-define": [
"error",
{
functions: false,
},
],
"no-var": "error",
"object-shorthand": [
"error",
"methods",
{
avoidExplicitReturnArrows: true,
},
],
"padding-line-between-statements": [
"error",
{
blankLine: "always",
prev: ["block", "block-like"],
next: "*",
},
{
blankLine: "always",
prev: "*",
next: ["block", "block-like"],
},
],
"prefer-const": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"spaced-comment": ["error", "always"],
strict: "off",
yoda: "error",
},
}).rules;
const vueRules = defineConfig({
rules: {
"import/no-default-export": 0,
"import/unambiguous": 0, // vue SFC can miss script tags
"@typescript-eslint/prefer-readonly": 0, // can be used in template
"vue/component-tags-order": [
"error",
{
order: ["template", "style", "script"],
},
],
"vue/multi-word-component-names": "off",
"vue/no-mutating-props": "off",
"vue/no-v-html": "off",
"vue/require-default-prop": "off",
"vue/v-slot-style": ["error", "longform"],
},
}).rules;
const tsRules = defineConfig({
rules: {
// note you must disable the base rule as it can report incorrect errors
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"],
"@typescript-eslint/no-redundant-type-constituents": "off",
},
}).rules;
const tsRulesTemp = defineConfig({
rules: {
// TODO: eventually remove these
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-this-alias": "off",
"@typescript-eslint/no-unnecessary-type-assertion": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-unused-vars": "off",
},
}).rules;
const tsTestRulesTemp = defineConfig({
rules: {
// TODO: remove these
"@typescript-eslint/no-unsafe-return": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/restrict-plus-operands": "off",
},
}).rules;
module.exports = defineConfig({
root: true,
parserOptions: {
ecmaVersion: 2022,
},
overrides: [
{
files: ["**/*.ts", "**/*.vue"],
parser: "@typescript-eslint/parser",
parserOptions: {
tsconfigRootDir: __dirname,
project: projects,
extraFileExtensions: [".vue"],
},
plugins: ["@typescript-eslint"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
rules: {
...baseRules,
...tsRules,
...tsRulesTemp,
},
},
{
files: ["**/*.vue"],
parser: "vue-eslint-parser",
parserOptions: {
ecmaVersion: 2022,
ecmaFeatures: {
jsx: true,
},
parser: "@typescript-eslint/parser",
tsconfigRootDir: __dirname,
project: projects,
},
plugins: ["vue"],
extends: [
"eslint:recommended",
"plugin:vue/vue3-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
rules: {...baseRules, ...tsRules, ...tsRulesTemp, ...vueRules},
},
{
files: ["./tests/**/*.ts"],
parser: "@typescript-eslint/parser",
rules: {
...baseRules,
...tsRules,
...tsRulesTemp,
...tsTestRulesTemp,
},
},
],
env: {
es6: true,
browser: true,
mocha: true,
node: true,
},
extends: ["eslint:recommended", "prettier"],
rules: baseRules,
});

View file

@ -1,43 +0,0 @@
---
root: true
env:
browser: true
mocha: true
node: true
rules:
block-spacing: [2, always]
brace-style: [2, 1tbs]
comma-dangle: 0
curly: [2, all]
eqeqeq: 2
indent: [2, tab]
key-spacing: [2, {beforeColon: false, afterColon: true}]
keyword-spacing: [2, {before: true, after: true}]
linebreak-style: [2, unix]
no-console: 0
no-control-regex: 0
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-trailing-spaces: 2
no-unexpected-multiline: 2
no-unreachable: 2
object-curly-spacing: [2, never]
quotes: [2, double, avoid-escape]
semi: [2, always]
space-before-blocks: 2
space-infix-ops: 2
spaced-comment: [2, always]
globals:
log: false
$: false
Favico: false
Handlebars: false
io: false
Mousetrap: false
extends: eslint:recommended

View file

@ -3,24 +3,20 @@
Welcome to The Lounge, it's great to have you here! We thank you in advance for
your contributions.
### I have a question
- Find us on the Freenode channel `#thelounge`. You might not get an answer
right away, but this channel is full of nice people who will be happy to
help you.
### I want to report a bug
- Look at the [open and closed
issues](https://github.com/thelounge/lounge/issues?q=is%3Aissue) to see if
issues](https://github.com/thelounge/thelounge/issues?q=is%3Aissue) to see if
this was not already discussed before. If you can't see any, feel free to
[open a new issue](https://github.com/thelounge/lounge/issues/new).
[open a new issue](https://github.com/thelounge/thelounge/issues/new).
- If you think you discovered a security vulnerability, **do not open a public
issue on GitHub.** Refer to our [security guidelines](/SECURITY.md) instead.
### I want to contribute to the code
- Make sure to discuss your ideas with the community in an
[issue](https://github.com/thelounge/lounge/issues) or on the IRC channel.
- Take a look at the open issues labeled as [`help wanted`](https://github.com/thelounge/lounge/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3A%22help+wanted%22)
[issue](https://github.com/thelounge/thelounge/issues) or on the IRC channel.
- Take a look at the open issues labeled as [`help wanted`](https://github.com/thelounge/thelounge/labels/help%20wanted)
if you want to help without having a specific idea in mind.
- Make sure that your PRs do not contain unnecessary commits or merge commits.
[Squash commits](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)
@ -32,6 +28,10 @@ your contributions.
Pope's guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- Each PR will be reviewed by at least two different project maintainers. You
can read more about this in the [maintainers'
corner](https://github.com/thelounge/lounge/wiki/Maintainers'-corner).
corner](https://github.com/thelounge/thelounge/wiki/Maintainers'-corner).
- Please document any relevant changes in the documentation that can be found
[in its own repository](https://github.com/thelounge/thelounge.github.io).
[in its own repository](https://github.com/thelounge/thelounge.chat).
- Note that we use prettier on the project. You can set up IDE plugins to format
on save ([see VS Code one here](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)).
- We have a git hook to automatically run prettier before commit, in case you don't install the plugin.
- If for any reason, prettier does not work for you, you can run `yarn format:prettier` and that should format everything.

14
.github/ISSUE_TEMPLATE/Bug_Report.md vendored Normal file
View file

@ -0,0 +1,14 @@
---
name: Bug Report
about: Create a bug report
labels: "Type: Bug"
---
<!-- Have a question? Join #thelounge on Libera.Chat -->
- _Node version:_
- _Browser version:_
- _Device, operating system:_
- _The Lounge version:_
---

View file

@ -0,0 +1,10 @@
---
name: Feature Request
about: Request a new feature
labels: "Type: Feature"
---
<!-- Have a question? Join #thelounge on Libera.Chat. -->
<!-- Make sure to check the existing issues prior to submitting your suggestion. -->
### Feature Description

16
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,16 @@
contact_links:
- name: Docker container issues
url: https://github.com/thelounge/thelounge-docker/issues
about: Report issues related to the Docker container here
- name: Debian package issues
url: https://github.com/thelounge/thelounge-deb/issues
about: Report issues related to the Debian package here
- name: Arch Linux package issues
url: https://github.com/thelounge/thelounge-archlinux/issues
about: Report issues related to the Arch Linux package here
- name: General support
url: https://demo.thelounge.chat/?join=%23thelounge
about: "Join #thelounge on Libera.Chat to ask a question before creating an issue"

11
.github/SUPPORT.md vendored Normal file
View file

@ -0,0 +1,11 @@
## Support
Welcome to The Lounge, it's great to have you here! If you have a question, or
need help, you have a few options:
- Check out [existing questions on Stack Overflow](https://stackoverflow.com/questions/tagged/thelounge)
to see if yours has been answered before. If not, feel free to [ask for a new question](https://stackoverflow.com/questions/ask?tags=thelounge)
(using `thelounge` tag so that other people can easily find it).
- Find us on the Libera.Chat channel `#thelounge`. You might not get an answer
right away, but this channel is full of nice people who will be happy to
help you.

48
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,48 @@
name: Build
permissions:
contents: read
on: [push, pull_request]
jobs:
build:
name: Node ${{ matrix.node_version }} on ${{ matrix.os }}
strategy:
matrix:
include:
# EOL: April 2025
- os: macOS-latest
node_version: 18.x
- os: windows-latest
node_version: 18.x
- os: ubuntu-latest
node_version: 18.x
# EOL: April 2026
- os: ubuntu-latest
node_version: 20.x
# EOL: April June 2024
- os: ubuntu-latest
node_version: 21.x
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@master
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
- name: Install
run: yarn --frozen-lockfile --non-interactive
- name: Build
run: yarn build
env:
NODE_ENV: production
- name: Test
run: yarn test

53
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,53 @@
name: Release
permissions:
contents: read
id-token: write
on:
push:
tags: v*
jobs:
release:
name: Release workflow
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "latest"
registry-url: "https://registry.npmjs.org/"
- name: Install
run: yarn --frozen-lockfile --non-interactive
- name: Build
run: yarn build
env:
NODE_ENV: production
- name: Test
run: yarn test
- name: Publish latest
if: "!contains(github.ref, '-')"
run: npm publish --tag latest --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
- name: Publish next
if: contains(github.ref, '-')
run: npm publish --tag next --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
- name: Remove next tag
if: "!contains(github.ref, '-')"
run: npm dist-tag rm thelounge next || true
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}

14
.gitignore vendored
View file

@ -1,11 +1,9 @@
node_modules/
npm-debug.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
coverage/
# Built assets created at npm install/prepublish time
# See https://docs.npmjs.com/misc/scripts
client/fonts/
client/js/libs.min.js.map
client/js/libs.min.js
client/js/lounge.templates.js
public/
dist/

View file

@ -1,8 +0,0 @@
instrumentation:
include-all-sources: true
excludes:
- Gruntfile.js
- client/js/libs/*.js
- client/js/libs/jquery/*.js
- client/js/libs.min.js
- client/js/lounge.js

View file

@ -1,19 +0,0 @@
# This file must not contain generated assets listed in .gitignore.
# npm-debug.log and node_modules/ are ignored by default.
# See https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
client/views/
coverage/
scripts/
test/
.editorconfig
.eslintignore
.eslintrc.yml
.gitattributes
.gitignore
.istanbul.yml
.npmignore
.stylelintrc
.travis.yml
appveyor.yml
Gruntfile.js

2
.npmrc Normal file
View file

@ -0,0 +1,2 @@
save-exact = true
sign-git-tag = true

28
.prettierignore Normal file
View file

@ -0,0 +1,28 @@
coverage/
public/
dist/
test/fixtures/.thelounge/logs/
test/fixtures/.thelounge/certificates/
test/fixtures/.thelounge/storage/
test/fixtures/.thelounge/sts-policies.json
*.log
*.png
*.svg
*.ico
*.wav
*.tpl
*.sh
*.opts
*.txt
yarn.lock
.gitignore
.npmrc
.npmignore
.prettierignore
.thelounge_home
.editorconfig
.eslintignore
.gitattributes
.browserslistrc
*.css

View file

@ -1,74 +0,0 @@
{
"ignoreFiles": [
"client/css/bootstrap.css",
"coverage/**/*.css"
],
"rules": {
"at-rule-empty-line-before": ["always", {
"except": ["blockless-group", "first-nested"],
"ignore": ["after-comment"]
}],
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always-multi-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "short",
"color-no-invalid-hex": true,
"comment-empty-line-before": ["always", {
"except": ["first-nested"],
"ignore": ["stylelint-commands"]
}],
"comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-colon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-whitespace-after": "always",
"function-url-quotes": "always",
"indentation": "tab",
"max-empty-lines": 1,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"media-query-parentheses-space-inside": "never",
"no-eol-whitespace": true,
"no-missing-eof-newline": true,
"number-leading-zero": "never",
"number-no-trailing-zeros": true,
"length-zero-no-unit": true,
"declaration-block-no-duplicate-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"rule-non-nested-empty-line-before": ["always-multi-line", {
"ignore": ["after-comment"]
}],
"declaration-block-trailing-semicolon": "always",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-pseudo-element-colon-notation": "single",
"string-quotes": "double",
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never"
}
}

1
.thelounge_home Normal file
View file

@ -0,0 +1 @@
~/.thelounge

View file

@ -1,30 +0,0 @@
language: node_js
node_js:
- 6
- 4
matrix:
fast_finish: true
include:
- os: osx
node_js: 4
cache:
directories:
- node_modules
notifications:
email:
on_success: never
on_failure: always
deploy:
provider: npm
email:
secure: Eb/dO3VEnuG5CFSJbiTBDZ4X29o1bTITqfzc4SZJqkSKHLZ5/l0VHyd1In7T2U9yBtysnmm+dsOWYFwnH5NMt5kvGkkX754HBDz0QXO//IqADA/1cH1MMXuzJjRvHNrtbq3c6Iv0vO827kXfvqwkfGTmXfreT5w+xF7Y+0SjF8pfu2d/Z5omrmoy9J9SF/kfmahKYZwakc3h8p29JPmnFMUAR0JiZS/2gLSHQnGA3mCcnlO+U3bQuTVW3Z9RhiG51f/EMFfNZ8pBttM6CgE2Zth3AT50jbKjRgYdYN2ee/Z3qUJIoA6dfPALC7B+Z2UekqTiKx4SCk+9vZJJXqT8J+Fe67Dki/FgNWnEZaTn8eFs+Gfh2nnokNZUMd/2mMT0y0KbRaOYQarn6lFw+/Cn9hD6e8uRCqY0+YspMvGtV3LuHFy+br6YphlG6YKxJzExtGDvrwlDD70xJtqcgnlET3XOdzvfCpRSskh7FmVJMoL39f/j9r4FzWVDmfnRnDT6Cac2dSdbQM0Ldw3+65l/57K/Km7NeHbLA3LsnjSJqXuysYwosd6iUOQen59Dy+TvwKafEfAGXWcZNguFURIMf2LRZ4rwTZl6pp30nj23U6rmkWm3JTRZC95i/O4yP2rVoljNUEuMlHVts63r3lwXtuGQVo3+lQCYErK4Ceo7cQc=
api_key:
secure: I9iN31GWI+Mz0xPw81N7qh1M6uidB+3BmiPUXt8QigX45zwp9EhvfZ0U/AIdUyQwzK2RK1zLRQSt+2/1jyeVi+U+AAsRRmaAUx8iqKaQPAkPnQtElolgRP04WSgo7fvNejfM7zS939bQNKG3RlSm04yPgu+ke2igf799p2bpFe2LtyoEeIiUfrUkBiMSpMguN9XF8a7jqCyIouTKjXHR24RmzJ9r7ZoMV27yQauS7XlD81bontzNRZxTytDKdJpZ+sxGIT9mbbtM4LUFX8MeNe3p/bjWavEhrO0ZIpkbOfS/L/w1375YDoNPXxCs288lnGUH+NbGNAEfn+BTz8cmUp7jI7QWR/kNACPeopdAX4OdZxT8wfQcfQZrfCuSpKciOMC7vGgPpQqjQ61t1RKcKs9VUnwC0SwWjyo8LlzkFKnP1ks0eDGYsSoPLdpC9+76UmePkQdxMhscO8TOgkOCcsTMLiyt6ABGOGKu2iE5SsjUYtPiSiRzSBAQENoO560+xBSVTKwqvvhzUAIt4AuAQSgsFjAylDdyzKoObHX12hBdALrqSOOSVwwIQ5/jTgNAsilURHo7KPD407PhRnLOsvumL0qg4sr9S1hjuUKnNla5dg9GY8FVjJ+b2t0A2vgfG1pR1e3vrJRXrpkfRorhmjvKAk2o5you5pQ1Itty7rM=
on:
node: '4'
tags: true
repo: thelounge/lounge

10
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,10 @@
{
"recommendations": [
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin"
],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"configurations": [
{
"type": "node-terminal",
"name": "Run Dev",
"request": "launch",
"command": "yarn dev",
"cwd": "${workspaceFolder}"
}
]
}

10
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,10 @@
{
"editor.formatOnSave": true,
"prettier.useEditorConfig": true,
"prettier.requireConfig": true,
"prettier.disableLanguages": [],
"eslint.packageManager": "yarn",
"eslint.codeActionsOnSave.mode": "all",
"[typescript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},
"[vue]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}
}

File diff suppressed because it is too large Load diff

View file

@ -1,26 +0,0 @@
module.exports = function(grunt) {
var libs = "client/js/libs/**/*.js";
grunt.initConfig({
watch: {
files: libs,
tasks: ["uglify"]
},
uglify: {
options: {
sourceMap: true,
compress: false
},
js: {
files: {
"client/js/libs.min.js": libs
}
}
}
});
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.registerTask(
"default",
["uglify"]
);
};

124
README.md
View file

@ -1,75 +1,95 @@
[![#thelounge IRC channel on freenode](https://img.shields.io/badge/irc%20channel-%23thelounge%20on%20freenode-blue.svg)](https://avatar.playat.ch:1000/)
[![npm version](https://img.shields.io/npm/v/thelounge.svg)](https://www.npmjs.org/package/thelounge)
[![Travis CI Build Status](https://travis-ci.org/thelounge/lounge.svg?branch=master)](https://travis-ci.org/thelounge/lounge)
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/deymtp0lldq78s8t/branch/master?svg=true)](https://ci.appveyor.com/project/astorije/lounge/branch/master)
[![Dependency Status](https://david-dm.org/thelounge/lounge.svg)](https://david-dm.org/thelounge/lounge)
[![devDependency Status](https://david-dm.org/thelounge/lounge/dev-status.svg)](https://david-dm.org/thelounge/lounge#info=devDependencies)
<h1 align="center">
<img
width="300"
alt="The Lounge"
src="https://raw.githubusercontent.com/thelounge/thelounge/master/client/img/logo-vertical-transparent-bg.svg?sanitize=true">
</h1>
# The Lounge
<h3 align="center">
Modern web IRC client designed for self-hosting
</h3>
__What is it?__
<p align="center">
<strong>
<a href="https://thelounge.chat/">Website</a>
<a href="https://thelounge.chat/docs">Docs</a>
<a href="https://demo.thelounge.chat/">Demo</a>
<a href="https://github.com/thelounge/thelounge-docker">Docker</a>
</strong>
</p>
<p align="center">
<a href="https://demo.thelounge.chat/"><img
alt="#thelounge IRC channel on Libera.Chat"
src="https://img.shields.io/badge/Libera.Chat-%23thelounge-415364.svg?colorA=ff9e18"></a>
<a href="https://yarn.pm/thelounge"><img
alt="npm version"
src="https://img.shields.io/npm/v/thelounge.svg?colorA=333a41&maxAge=3600"></a>
<a href="https://github.com/thelounge/thelounge/actions"><img
alt="Build Status"
src="https://github.com/thelounge/thelounge/workflows/Build/badge.svg"></a>
</p>
The Lounge is a web IRC client that you host on your own server.
<p align="center">
<img src="https://raw.githubusercontent.com/thelounge/thelounge.github.io/master/img/thelounge-screenshot.png" width="550">
</p>
*This is the official, community-managed fork of @erming's great initiative, the [Shout](https://github.com/erming/shout) project.*
## Overview
__What features does it have?__
- **Modern features brought to IRC.** Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
- **Always connected.** Remains connected to IRC servers while you are offline.
- **Cross platform.** It doesn't matter what OS you use, it just works wherever Node.js runs.
- **Responsive interface.** The client works smoothly on every desktop, smartphone and tablet.
- **Synchronized experience.** Always resume where you left off no matter what device.
- Multiple user support
- Stays connected even when you close the browser
- Connect from multiple devices at once
- Responsive layout — works well on your smartphone
- _.. and more!_
To learn more about configuration, usage and features of The Lounge, take a look at [the website](https://thelounge.chat).
__Why the fork?__
The Lounge is the official and community-managed fork of [Shout](https://github.com/erming/shout), by [Mattias Erming](https://github.com/erming).
We felt that the original [Shout](https://github.com/erming/shout) project
"stagnated" a little because its original author wanted it to remain his pet
project (which is a perfectly fine thing!).
## Installation and usage
A bunch of people, excited about doing things a bit differently than the upstream
project forked it under a new name: “The Lounge”.
The Lounge requires latest [Node.js](https://nodejs.org/) LTS version or more recent.
The [Yarn package manager](https://yarnpkg.com/) is also recommended.
If you want to install with npm, `--unsafe-perm` is required for a correct install.
This fork aims to be community managed, meaning that the decisions are taken
in a collegial fashion, and that a bunch of maintainers should be able to make
the review process quicker and more streamlined.
### Running stable releases
## Install
Please refer to the [install and upgrade documentation on our website](https://thelounge.chat/docs/install-and-upgrade) for all available installation methods.
To use The Lounge you must have [Node.js](https://nodejs.org/en/download/) installed.
The oldest Node.js version we support is 4.2.0.
### Running from source
If you still use 0.10 or 0.12 we strongly advise you to upgrade before installing The Lounge.
For more information on how to upgrade, read the [documentation](https://nodejs.org/en/download/package-manager/).
The following commands install and run the development version of The Lounge:
```
sudo npm install -g thelounge
```sh
git clone https://github.com/thelounge/thelounge.git
cd thelounge
yarn install
NODE_ENV=production yarn build
yarn start
```
## Usage
When installed like this, `thelounge` executable is not created. Use `node index <command>` to run commands.
When the install is complete, go ahead and run this in your terminal:
```
lounge --help
```
For more information, read the [documentation](https://thelounge.github.io/docs/).
⚠️ While it is the most recent codebase, this is not production-ready! Run at
your own risk. It is also not recommended to run this as root.
## Development setup
To run the app from source, just clone the code and run this in your terminal:
Simply follow the instructions to run The Lounge from source above, on your own
fork.
```
npm install
npm start
```
Before submitting any change, make sure to:
You will have to run `npm run build` if you change or add anything in
`client/js/libs` or `client/views`.
- Read the [Contributing instructions](https://github.com/thelounge/thelounge/blob/master/.github/CONTRIBUTING.md#contributing)
- Run `yarn test` to execute linters and the test suite
- Run `yarn format:prettier` if linting fails
- Run `yarn build:client` if you change or add anything in `client/js` or `client/components`
- The built files will be output to `public/` by webpack
- Run `yarn build:server` if you change anything in `server/`
- The built files will be output to `dist/` by tsc
- `yarn dev` can be used to start The Lounge with hot module reloading
## License
Available under the [MIT License](LICENSE).
Some fonts licensed under [SIL OFL](http://scripts.sil.org/OFL) and the [Apache License](http://www.apache.org/licenses/).
To ensure that you don't commit files that fail the linting, you can install a pre-commit git hook.
Execute `yarn githooks-install` to do so.

9
SECURITY.md Normal file
View file

@ -0,0 +1,9 @@
# Responsible Disclosure of Security Vulnerabilities
- ⚠️ **Do not open public issues on GitHub to report security vulnerabilities.**
- Contact us privately first, in a
[responsible disclosure](https://en.wikipedia.org/wiki/Responsible_disclosure)
manner.
- On IRC, send a private message to any voiced user on our Libera.Chat channel,
`#thelounge`.
- By email, send us your report at <security@thelounge.chat>.

View file

@ -1,29 +0,0 @@
---
# http://www.appveyor.com/docs/appveyor-yml
# Build version format
version: "{build}"
# Do not build on tags (GitHub only)
skip_tags: true
environment:
nodejs_version: '4'
install:
- ps: Install-Product node $env:nodejs_version
- npm install
- npm install mocha-appveyor-reporter
- echo --reporter mocha-appveyor-reporter >> test/mocha.opts
test_script:
- node --version
- npm --version
- npm test
# cache npm modules
cache:
- node_modules
# Don't actually build
build: off

4
babel.config.cjs Normal file
View file

@ -0,0 +1,4 @@
module.exports = {
presets: [["@babel/preset-env", {bugfixes: true}], "babel-preset-typescript-vue3"],
plugins: ["@babel/plugin-transform-runtime"],
};

Binary file not shown.

BIN
client/audio/pop.wav Normal file

Binary file not shown.

195
client/components/App.vue Normal file
View file

@ -0,0 +1,195 @@
<template>
<div id="viewport" :class="viewportClasses" role="tablist">
<Sidebar v-if="store.state.appLoaded" :overlay="overlay" />
<div
id="sidebar-overlay"
ref="overlay"
aria-hidden="true"
@click="store.commit('sidebarOpen', false)"
/>
<router-view ref="loungeWindow"></router-view>
<Mentions />
<ImageViewer ref="imageViewer" />
<ContextMenu ref="contextMenu" />
<ConfirmDialog ref="confirmDialog" />
<div id="upload-overlay"></div>
</div>
</template>
<script lang="ts">
import constants from "../js/constants";
import eventbus from "../js/eventbus";
import Mousetrap, {ExtendedKeyboardEvent} from "mousetrap";
import throttle from "lodash/throttle";
import storage from "../js/localStorage";
import isIgnoredKeybind from "../js/helpers/isIgnoredKeybind";
import Sidebar from "./Sidebar.vue";
import ImageViewer from "./ImageViewer.vue";
import ContextMenu from "./ContextMenu.vue";
import ConfirmDialog from "./ConfirmDialog.vue";
import Mentions from "./Mentions.vue";
import {
computed,
provide,
defineComponent,
onBeforeUnmount,
onMounted,
ref,
Ref,
InjectionKey,
} from "vue";
import {useStore} from "../js/store";
import type {DebouncedFunc} from "lodash";
export const imageViewerKey = Symbol() as InjectionKey<Ref<typeof ImageViewer | null>>;
const contextMenuKey = Symbol() as InjectionKey<Ref<typeof ContextMenu | null>>;
const confirmDialogKey = Symbol() as InjectionKey<Ref<typeof ConfirmDialog | null>>;
export default defineComponent({
name: "App",
components: {
Sidebar,
ImageViewer,
ContextMenu,
ConfirmDialog,
Mentions,
},
setup() {
const store = useStore();
const overlay = ref(null);
const loungeWindow = ref(null);
const imageViewer = ref(null);
const contextMenu = ref(null);
const confirmDialog = ref(null);
provide(imageViewerKey, imageViewer);
provide(contextMenuKey, contextMenu);
provide(confirmDialogKey, confirmDialog);
const viewportClasses = computed(() => {
return {
notified: store.getters.highlightCount > 0,
"menu-open": store.state.appLoaded && store.state.sidebarOpen,
"menu-dragging": store.state.sidebarDragging,
"userlist-open": store.state.userlistOpen,
};
});
const debouncedResize = ref<DebouncedFunc<() => void>>();
const dayChangeTimeout = ref<any>();
const escapeKey = () => {
eventbus.emit("escapekey");
};
const toggleSidebar = (e: ExtendedKeyboardEvent) => {
if (isIgnoredKeybind(e)) {
return true;
}
store.commit("toggleSidebar");
return false;
};
const toggleUserList = (e: ExtendedKeyboardEvent) => {
if (isIgnoredKeybind(e)) {
return true;
}
store.commit("toggleUserlist");
return false;
};
const toggleMentions = () => {
if (store.state.networks.length !== 0) {
eventbus.emit("mentions:toggle");
}
};
const msUntilNextDay = () => {
// Compute how many milliseconds are remaining until the next day starts
const today = new Date();
const tommorow = new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() + 1
).getTime();
return tommorow - today.getTime();
};
const prepareOpenStates = () => {
const viewportWidth = window.innerWidth;
let isUserlistOpen = storage.get("thelounge.state.userlist");
if (viewportWidth > constants.mobileViewportPixels) {
store.commit("sidebarOpen", storage.get("thelounge.state.sidebar") !== "false");
}
// If The Lounge is opened on a small screen (less than 1024px), and we don't have stored
// user list state, close it by default
if (viewportWidth >= 1024 && isUserlistOpen !== "true" && isUserlistOpen !== "false") {
isUserlistOpen = "true";
}
store.commit("userlistOpen", isUserlistOpen === "true");
};
prepareOpenStates();
onMounted(() => {
Mousetrap.bind("esc", escapeKey);
Mousetrap.bind("alt+u", toggleUserList);
Mousetrap.bind("alt+s", toggleSidebar);
Mousetrap.bind("alt+m", toggleMentions);
debouncedResize.value = throttle(() => {
eventbus.emit("resize");
}, 100);
window.addEventListener("resize", debouncedResize.value, {passive: true});
// Emit a daychange event every time the day changes so date markers know when to update themselves
const emitDayChange = () => {
eventbus.emit("daychange");
// This should always be 24h later but re-computing exact value just in case
dayChangeTimeout.value = setTimeout(emitDayChange, msUntilNextDay());
};
dayChangeTimeout.value = setTimeout(emitDayChange, msUntilNextDay());
});
onBeforeUnmount(() => {
Mousetrap.unbind("esc");
Mousetrap.unbind("alt+u");
Mousetrap.unbind("alt+s");
Mousetrap.unbind("alt+m");
if (debouncedResize.value) {
window.removeEventListener("resize", debouncedResize.value);
}
if (dayChangeTimeout.value) {
clearTimeout(dayChangeTimeout.value);
}
});
return {
viewportClasses,
escapeKey,
toggleSidebar,
toggleUserList,
toggleMentions,
store,
overlay,
loungeWindow,
imageViewer,
contextMenu,
confirmDialog,
};
},
});
</script>

View file

@ -0,0 +1,65 @@
<template>
<!-- TODO: investigate -->
<ChannelWrapper ref="wrapper" v-bind="$props">
<span class="name">{{ channel.name }}</span>
<span
v-if="channel.unread"
:class="{highlight: channel.highlight && !channel.muted}"
class="badge"
>{{ unreadCount }}</span
>
<template v-if="channel.type === 'channel'">
<span
v-if="channel.state === 0"
class="parted-channel-tooltip tooltipped tooltipped-w"
aria-label="Not currently joined"
>
<span class="parted-channel-icon" />
</span>
<span class="close-tooltip tooltipped tooltipped-w" aria-label="Leave">
<button class="close" aria-label="Leave" @click.stop="close" />
</span>
</template>
<template v-else>
<span class="close-tooltip tooltipped tooltipped-w" aria-label="Close">
<button class="close" aria-label="Close" @click.stop="close" />
</span>
</template>
</ChannelWrapper>
</template>
<script lang="ts">
import {PropType, defineComponent, computed} from "vue";
import roundBadgeNumber from "../js/helpers/roundBadgeNumber";
import useCloseChannel from "../js/hooks/use-close-channel";
import {ClientChan, ClientNetwork} from "../js/types";
import ChannelWrapper from "./ChannelWrapper.vue";
export default defineComponent({
name: "Channel",
components: {
ChannelWrapper,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
channel: {
type: Object as PropType<ClientChan>,
required: true,
},
active: Boolean,
isFiltering: Boolean,
},
setup(props) {
const unreadCount = computed(() => roundBadgeNumber(props.channel.unread));
const close = useCloseChannel(props.channel);
return {
unreadCount,
close,
};
},
});
</script>

View file

@ -0,0 +1,112 @@
<template>
<!-- TODO: move closed style to it's own class -->
<div
v-if="isChannelVisible"
ref="element"
:class="[
'channel-list-item',
{active: active},
{'parted-channel': channel.type === 'channel' && channel.state === 0},
{'has-draft': channel.pendingMessage},
{'has-unread': channel.unread},
{'has-highlight': channel.highlight},
{
'not-secure':
channel.type === 'lobby' && network.status.connected && !network.status.secure,
},
{'not-connected': channel.type === 'lobby' && !network.status.connected},
{'is-muted': channel.muted},
]"
:aria-label="getAriaLabel()"
:title="getAriaLabel()"
:data-name="channel.name"
:data-type="channel.type"
:aria-controls="'#chan-' + channel.id"
:aria-selected="active"
:style="channel.closed ? {transition: 'none', opacity: 0.4} : undefined"
role="tab"
@click="click"
@contextmenu.prevent="openContextMenu"
>
<slot :network="network" :channel="channel" :active-channel="activeChannel" />
</div>
</template>
<script lang="ts">
import eventbus from "../js/eventbus";
import isChannelCollapsed from "../js/helpers/isChannelCollapsed";
import {ClientNetwork, ClientChan} from "../js/types";
import {computed, defineComponent, PropType} from "vue";
import {useStore} from "../js/store";
import {switchToChannel} from "../js/router";
export default defineComponent({
name: "ChannelWrapper",
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
channel: {
type: Object as PropType<ClientChan>,
required: true,
},
active: Boolean,
isFiltering: Boolean,
},
setup(props) {
const store = useStore();
const activeChannel = computed(() => store.state.activeChannel);
const isChannelVisible = computed(
() => props.isFiltering || !isChannelCollapsed(props.network, props.channel)
);
const getAriaLabel = () => {
const extra: string[] = [];
const type = props.channel.type;
if (props.channel.unread > 0) {
if (props.channel.unread > 1) {
extra.push(`${props.channel.unread} unread messages`);
} else {
extra.push(`${props.channel.unread} unread message`);
}
}
if (props.channel.highlight > 0) {
if (props.channel.highlight > 1) {
extra.push(`${props.channel.highlight} mentions`);
} else {
extra.push(`${props.channel.highlight} mention`);
}
}
return `${type}: ${props.channel.name} ${extra.length ? `(${extra.join(", ")})` : ""}`;
};
const click = () => {
if (props.isFiltering) {
return;
}
switchToChannel(props.channel);
};
const openContextMenu = (event: MouseEvent) => {
eventbus.emit("contextmenu:channel", {
event: event,
channel: props.channel,
network: props.network,
});
};
return {
activeChannel,
isChannelVisible,
getAriaLabel,
click,
openContextMenu,
};
},
});
</script>

274
client/components/Chat.vue Normal file
View file

@ -0,0 +1,274 @@
<template>
<div id="chat-container" class="window" :data-current-channel="channel.name" lang="">
<div
id="chat"
:class="{
'hide-motd': !store.state.settings.motd,
'time-seconds': store.state.settings.showSeconds,
'time-12h': store.state.settings.use12hClock,
'colored-nicks': true, // TODO temporarily fixes themes, to be removed in next major version
}"
>
<div
:id="'chan-' + channel.id"
class="chat-view"
:data-type="channel.type"
:aria-label="channel.name"
role="tabpanel"
>
<div class="header">
<SidebarToggle />
<span class="title" :aria-label="'Currently open ' + channel.type">{{
channel.name
}}</span>
<div v-if="channel.editTopic === true" class="topic-container">
<input
ref="topicInput"
:value="channel.topic"
class="topic-input"
placeholder="Set channel topic"
enterkeyhint="done"
@keyup.enter="saveTopic"
@keyup.esc="channel.editTopic = false"
/>
<span aria-label="Save topic" class="save-topic" @click="saveTopic">
<span type="button" aria-label="Save topic"></span>
</span>
</div>
<span
v-else
:title="channel.topic"
:class="{topic: true, empty: !channel.topic}"
@dblclick="editTopic"
><ParsedMessage
v-if="channel.topic"
:network="network"
:text="channel.topic"
/></span>
<MessageSearchForm
v-if="
store.state.settings.searchEnabled &&
['channel', 'query'].includes(channel.type)
"
:network="network"
:channel="channel"
/>
<button
class="mentions"
aria-label="Open your mentions"
@click="openMentions"
/>
<button
class="menu"
aria-label="Open the context menu"
@click="openContextMenu"
/>
<span
v-if="channel.type === 'channel'"
class="rt-tooltip tooltipped tooltipped-w"
aria-label="Toggle user list"
>
<button
class="rt"
aria-label="Toggle user list"
@click="store.commit('toggleUserlist')"
/>
</span>
</div>
<div v-if="channel.type === 'special'" class="chat-content">
<div class="chat">
<div class="messages">
<div class="msg">
<component
:is="specialComponent"
:network="network"
:channel="channel"
/>
</div>
</div>
</div>
</div>
<div v-else class="chat-content">
<div
:class="[
'scroll-down tooltipped tooltipped-w tooltipped-no-touch',
{'scroll-down-shown': !channel.scrolledToBottom},
]"
aria-label="Jump to recent messages"
@click="messageList?.jumpToBottom()"
>
<div class="scroll-down-arrow" />
</div>
<ChatUserList v-if="channel.type === 'channel'" :channel="channel" />
<MessageList
ref="messageList"
:network="network"
:channel="channel"
:focused="focused"
/>
</div>
</div>
</div>
<div
v-if="store.state.currentUserVisibleError"
id="user-visible-error"
@click="hideUserVisibleError"
>
{{ store.state.currentUserVisibleError }}
</div>
<ChatInput :network="network" :channel="channel" />
</div>
</template>
<script lang="ts">
import socket from "../js/socket";
import eventbus from "../js/eventbus";
import ParsedMessage from "./ParsedMessage.vue";
import MessageList from "./MessageList.vue";
import ChatInput from "./ChatInput.vue";
import ChatUserList from "./ChatUserList.vue";
import SidebarToggle from "./SidebarToggle.vue";
import MessageSearchForm from "./MessageSearchForm.vue";
import ListBans from "./Special/ListBans.vue";
import ListInvites from "./Special/ListInvites.vue";
import ListChannels from "./Special/ListChannels.vue";
import ListIgnored from "./Special/ListIgnored.vue";
import {defineComponent, PropType, ref, computed, watch, nextTick, onMounted, Component} from "vue";
import type {ClientNetwork, ClientChan} from "../js/types";
import {useStore} from "../js/store";
import {SpecialChanType, ChanType} from "../../shared/types/chan";
export default defineComponent({
name: "Chat",
components: {
ParsedMessage,
MessageList,
ChatInput,
ChatUserList,
SidebarToggle,
MessageSearchForm,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
focused: Number,
},
emits: ["channel-changed"],
setup(props, {emit}) {
const store = useStore();
const messageList = ref<typeof MessageList>();
const topicInput = ref<HTMLInputElement | null>(null);
const specialComponent = computed(() => {
switch (props.channel.special) {
case SpecialChanType.BANLIST:
return ListBans as Component;
case SpecialChanType.INVITELIST:
return ListInvites as Component;
case SpecialChanType.CHANNELLIST:
return ListChannels as Component;
case SpecialChanType.IGNORELIST:
return ListIgnored as Component;
}
return undefined;
});
const channelChanged = () => {
// Triggered when active channel is set or changed
emit("channel-changed", props.channel);
socket.emit("open", props.channel.id);
if (props.channel.usersOutdated) {
props.channel.usersOutdated = false;
socket.emit("names", {
target: props.channel.id,
});
}
};
const hideUserVisibleError = () => {
store.commit("currentUserVisibleError", null);
};
const editTopic = () => {
if (props.channel.type === ChanType.CHANNEL) {
props.channel.editTopic = true;
}
};
const saveTopic = () => {
props.channel.editTopic = false;
if (!topicInput.value) {
return;
}
const newTopic = topicInput.value.value;
if (props.channel.topic !== newTopic) {
const target = props.channel.id;
const text = `/topic ${newTopic}`;
socket.emit("input", {target, text});
}
};
const openContextMenu = (event: any) => {
eventbus.emit("contextmenu:channel", {
event: event,
channel: props.channel,
network: props.network,
});
};
const openMentions = (event: any) => {
eventbus.emit("mentions:toggle", {
event: event,
});
};
watch(
() => props.channel,
() => {
channelChanged();
}
);
watch(
() => props.channel.editTopic,
(newTopic) => {
if (newTopic) {
void nextTick(() => {
topicInput.value?.focus();
});
}
}
);
onMounted(() => {
channelChanged();
if (props.channel.editTopic) {
void nextTick(() => {
topicInput.value?.focus();
});
}
});
return {
store,
messageList,
topicInput,
specialComponent,
hideUserVisibleError,
editTopic,
saveTopic,
openContextMenu,
openMentions,
};
},
});
</script>

View file

@ -0,0 +1,358 @@
<template>
<form id="form" method="post" action="" @submit.prevent="onSubmit">
<span id="upload-progressbar" />
<span id="nick">{{ network.nick }}</span>
<textarea
id="input"
ref="input"
dir="auto"
class="mousetrap"
enterkeyhint="send"
:value="channel.pendingMessage"
:placeholder="getInputPlaceholder(channel)"
:aria-label="getInputPlaceholder(channel)"
@input="setPendingMessage"
@keypress.enter.exact.prevent="onSubmit"
@blur="onBlur"
/>
<span
v-if="store.state.serverConfiguration?.fileUpload"
id="upload-tooltip"
class="tooltipped tooltipped-w tooltipped-no-touch"
aria-label="Upload file"
@click="openFileUpload"
>
<input
id="upload-input"
ref="uploadInput"
type="file"
aria-labelledby="upload"
multiple
@change="onUploadInputChange"
/>
<button
id="upload"
type="button"
aria-label="Upload file"
:disabled="!store.state.isConnected"
/>
</span>
<span
id="submit-tooltip"
class="tooltipped tooltipped-w tooltipped-no-touch"
aria-label="Send message"
>
<button
id="submit"
type="submit"
aria-label="Send message"
:disabled="!store.state.isConnected"
/>
</span>
</form>
</template>
<script lang="ts">
import Mousetrap from "mousetrap";
import {wrapCursor} from "undate";
import autocompletion from "../js/autocompletion";
import {commands} from "../js/commands/index";
import socket from "../js/socket";
import upload from "../js/upload";
import eventbus from "../js/eventbus";
import {watch, defineComponent, nextTick, onMounted, PropType, ref, onUnmounted} from "vue";
import type {ClientNetwork, ClientChan} from "../js/types";
import {useStore} from "../js/store";
import {ChanType} from "../../shared/types/chan";
const formattingHotkeys = {
"mod+k": "\x03",
"mod+b": "\x02",
"mod+u": "\x1F",
"mod+i": "\x1D",
"mod+o": "\x0F",
"mod+s": "\x1e",
"mod+m": "\x11",
};
// Autocomplete bracket and quote characters like in a modern IDE
// For example, select `text`, press `[` key, and it becomes `[text]`
const bracketWraps = {
'"': '"',
"'": "'",
"(": ")",
"<": ">",
"[": "]",
"{": "}",
"*": "*",
"`": "`",
"~": "~",
_: "_",
};
export default defineComponent({
name: "ChatInput",
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup(props) {
const store = useStore();
const input = ref<HTMLTextAreaElement>();
const uploadInput = ref<HTMLInputElement>();
const autocompletionRef = ref<ReturnType<typeof autocompletion>>();
const setInputSize = () => {
void nextTick(() => {
if (!input.value) {
return;
}
const style = window.getComputedStyle(input.value);
const lineHeight = parseFloat(style.lineHeight) || 1;
// Start by resetting height before computing as scrollHeight does not
// decrease when deleting characters
input.value.style.height = "";
// Use scrollHeight to calculate how many lines there are in input, and ceil the value
// because some browsers tend to incorrently round the values when using high density
// displays or using page zoom feature
input.value.style.height = `${
Math.ceil(input.value.scrollHeight / lineHeight) * lineHeight
}px`;
});
};
const setPendingMessage = (e: Event) => {
props.channel.pendingMessage = (e.target as HTMLInputElement).value;
props.channel.inputHistoryPosition = 0;
setInputSize();
};
const getInputPlaceholder = (channel: ClientChan) => {
if (channel.type === ChanType.CHANNEL || channel.type === ChanType.QUERY) {
return `Write to ${channel.name}`;
}
return "";
};
const onSubmit = () => {
if (!input.value) {
return;
}
// Triggering click event opens the virtual keyboard on mobile
// This can only be called from another interactive event (e.g. button click)
input.value.click();
input.value.focus();
if (!store.state.isConnected) {
return false;
}
const target = props.channel.id;
const text = props.channel.pendingMessage;
if (text.length === 0) {
return false;
}
if (autocompletionRef.value) {
autocompletionRef.value.hide();
}
props.channel.inputHistoryPosition = 0;
props.channel.pendingMessage = "";
input.value.value = "";
setInputSize();
// Store new message in history if last message isn't already equal
if (props.channel.inputHistory[1] !== text) {
props.channel.inputHistory.splice(1, 0, text);
}
// Limit input history to a 100 entries
if (props.channel.inputHistory.length > 100) {
props.channel.inputHistory.pop();
}
if (text[0] === "/") {
const args = text.substring(1).split(" ");
const cmd = args.shift()?.toLowerCase();
if (!cmd) {
return false;
}
if (Object.prototype.hasOwnProperty.call(commands, cmd) && commands[cmd](args)) {
return false;
}
}
socket.emit("input", {target, text});
};
const onUploadInputChange = () => {
if (!uploadInput.value || !uploadInput.value.files) {
return;
}
const files = Array.from(uploadInput.value.files);
upload.triggerUpload(files);
uploadInput.value.value = ""; // Reset <input> element so you can upload the same file
};
const openFileUpload = () => {
uploadInput.value?.click();
};
const blurInput = () => {
input.value?.blur();
};
const onBlur = () => {
if (autocompletionRef.value) {
autocompletionRef.value.hide();
}
};
watch(
() => props.channel.id,
() => {
if (autocompletionRef.value) {
autocompletionRef.value.hide();
}
}
);
watch(
() => props.channel.pendingMessage,
() => {
setInputSize();
}
);
onMounted(() => {
eventbus.on("escapekey", blurInput);
if (store.state.settings.autocomplete) {
if (!input.value) {
throw new Error("ChatInput autocomplete: input element is not available");
}
autocompletionRef.value = autocompletion(input.value);
}
const inputTrap = Mousetrap(input.value);
inputTrap.bind(Object.keys(formattingHotkeys), function (e, key) {
const modifier = formattingHotkeys[key];
if (!e.target) {
return;
}
wrapCursor(
e.target as HTMLTextAreaElement,
modifier,
(e.target as HTMLTextAreaElement).selectionStart ===
(e.target as HTMLTextAreaElement).selectionEnd
? ""
: modifier
);
return false;
});
inputTrap.bind(Object.keys(bracketWraps), function (e, key) {
if (
(e.target as HTMLTextAreaElement)?.selectionStart !==
(e.target as HTMLTextAreaElement).selectionEnd
) {
wrapCursor(e.target as HTMLTextAreaElement, key, bracketWraps[key]);
return false;
}
});
inputTrap.bind(["up", "down"], (e, key) => {
if (
store.state.isAutoCompleting ||
(e.target as HTMLTextAreaElement).selectionStart !==
(e.target as HTMLTextAreaElement).selectionEnd ||
!input.value
) {
return;
}
const onRow = (
input.value.value.slice(undefined, input.value.selectionStart).match(/\n/g) ||
[]
).length;
const totalRows = (input.value.value.match(/\n/g) || []).length;
const {channel} = props;
if (channel.inputHistoryPosition === 0) {
channel.inputHistory[channel.inputHistoryPosition] = channel.pendingMessage;
}
if (key === "up" && onRow === 0) {
if (channel.inputHistoryPosition < channel.inputHistory.length - 1) {
channel.inputHistoryPosition++;
} else {
return;
}
} else if (
key === "down" &&
channel.inputHistoryPosition > 0 &&
onRow === totalRows
) {
channel.inputHistoryPosition--;
} else {
return;
}
channel.pendingMessage = channel.inputHistory[channel.inputHistoryPosition];
input.value.value = channel.pendingMessage;
setInputSize();
return false;
});
if (store.state.serverConfiguration?.fileUpload) {
upload.mounted();
}
});
onUnmounted(() => {
eventbus.off("escapekey", blurInput);
if (autocompletionRef.value) {
autocompletionRef.value.destroy();
autocompletionRef.value = undefined;
}
upload.unmounted();
upload.abort();
});
return {
store,
input,
uploadInput,
onUploadInputChange,
openFileUpload,
blurInput,
onBlur,
setInputSize,
upload,
getInputPlaceholder,
onSubmit,
setPendingMessage,
};
},
});
</script>

View file

@ -0,0 +1,255 @@
<template>
<aside
ref="userlist"
class="userlist"
:aria-label="'User list for ' + channel.name"
@mouseleave="removeHoverUser"
>
<div class="count">
<input
ref="input"
:value="userSearchInput"
:placeholder="
channel.users.length + ' user' + (channel.users.length === 1 ? '' : 's')
"
type="search"
class="search"
aria-label="Search among the user list"
tabindex="-1"
@input="setUserSearchInput"
@keydown.up="navigateUserList($event, -1)"
@keydown.down="navigateUserList($event, 1)"
@keydown.page-up="navigateUserList($event, -10)"
@keydown.page-down="navigateUserList($event, 10)"
@keydown.enter="selectUser"
/>
</div>
<div class="names">
<div
v-for="(users, mode) in groupedUsers"
:key="mode"
:class="['user-mode', getModeClass(String(mode))]"
>
<template v-if="userSearchInput.length > 0">
<!-- eslint-disable vue/no-v-text-v-html-on-component -->
<Username
v-for="user in users"
:key="user.original.nick + '-search'"
:on-hover="hoverUser"
:active="user.original === activeUser"
:user="user.original"
v-html="user.string"
/>
<!-- eslint-enable -->
</template>
<template v-else>
<Username
v-for="user in users"
:key="user.nick"
:on-hover="hoverUser"
:active="user === activeUser"
:user="user"
/>
</template>
</div>
</div>
</aside>
</template>
<script lang="ts">
import {filter as fuzzyFilter} from "fuzzy";
import {computed, defineComponent, nextTick, PropType, ref} from "vue";
import type {UserInMessage} from "../../shared/types/msg";
import type {ClientChan, ClientUser} from "../js/types";
import Username from "./Username.vue";
const modes = {
"~": "owner",
"&": "admin",
"!": "admin",
"@": "op",
"%": "half-op",
"+": "voice",
"": "normal",
};
export default defineComponent({
name: "ChatUserList",
components: {
Username,
},
props: {
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup(props) {
const userSearchInput = ref("");
const activeUser = ref<UserInMessage | null>();
const userlist = ref<HTMLDivElement>();
const filteredUsers = computed(() => {
if (!userSearchInput.value) {
return;
}
return fuzzyFilter(userSearchInput.value, props.channel.users, {
pre: "<b>",
post: "</b>",
extract: (u) => u.nick,
});
});
const groupedUsers = computed(() => {
const groups = {};
if (userSearchInput.value && filteredUsers.value) {
const result = filteredUsers.value;
for (const user of result) {
const mode: string = user.original.modes[0] || "";
if (!groups[mode]) {
groups[mode] = [];
}
// Prepend user mode to search result
user.string = mode + user.string;
groups[mode].push(user);
}
} else {
for (const user of props.channel.users) {
const mode = user.modes[0] || "";
if (!groups[mode]) {
groups[mode] = [user];
} else {
groups[mode].push(user);
}
}
}
return groups as {
[mode: string]: (ClientUser & {
original: UserInMessage;
string: string;
})[];
};
});
const setUserSearchInput = (e: Event) => {
userSearchInput.value = (e.target as HTMLInputElement).value;
};
const getModeClass = (mode: string) => {
return modes[mode] as typeof modes;
};
const selectUser = () => {
// Simulate a click on the active user to open the context menu.
// Coordinates are provided to position the menu correctly.
if (!activeUser.value || !userlist.value) {
return;
}
const el = userlist.value.querySelector(".active");
if (!el) {
return;
}
const rect = el.getBoundingClientRect();
const ev = new MouseEvent("click", {
view: window,
bubbles: true,
cancelable: true,
clientX: rect.left,
clientY: rect.top + rect.height,
});
el.dispatchEvent(ev);
};
const hoverUser = (user: UserInMessage) => {
activeUser.value = user;
};
const removeHoverUser = () => {
activeUser.value = null;
};
const scrollToActiveUser = () => {
// Scroll the list if needed after the active class is applied
void nextTick(() => {
const el = userlist.value?.querySelector(".active");
el?.scrollIntoView({block: "nearest", inline: "nearest"});
});
};
const navigateUserList = (event: Event, direction: number) => {
// Prevent propagation to stop global keybind handler from capturing pagedown/pageup
// and redirecting it to the message list container for scrolling
event.stopImmediatePropagation();
event.preventDefault();
let users = props.channel.users;
// Only using filteredUsers when we have to avoids filtering when it's not needed
if (userSearchInput.value && filteredUsers.value) {
users = filteredUsers.value.map((result) => result.original);
}
// Bail out if there's no users to select
if (!users.length) {
activeUser.value = null;
return;
}
const abort = () => {
activeUser.value = direction ? users[0] : users[users.length - 1];
scrollToActiveUser();
};
// If there's no active user select the first or last one depending on direction
if (!activeUser.value) {
abort();
return;
}
let currentIndex = users.indexOf(activeUser.value as ClientUser);
if (currentIndex === -1) {
abort();
return;
}
currentIndex += direction;
// Wrap around the list if necessary. Normaly each loop iterates once at most,
// but might iterate more often if pgup or pgdown are used in a very short user list
while (currentIndex < 0) {
currentIndex += users.length;
}
while (currentIndex > users.length - 1) {
currentIndex -= users.length;
}
activeUser.value = users[currentIndex];
scrollToActiveUser();
};
return {
filteredUsers,
groupedUsers,
userSearchInput,
activeUser,
userlist,
setUserSearchInput,
getModeClass,
selectUser,
hoverUser,
removeHoverUser,
navigateUserList,
};
},
});
</script>

View file

@ -0,0 +1,102 @@
<template>
<div id="confirm-dialog-overlay" :class="{opened: !!data}">
<div v-if="data !== null" id="confirm-dialog">
<div class="confirm-text">
<div class="confirm-text-title">{{ data?.title }}</div>
<p>{{ data?.text }}</p>
</div>
<div class="confirm-buttons">
<button class="btn btn-cancel" @click="close(false)">Cancel</button>
<button class="btn btn-danger" @click="close(true)">{{ data?.button }}</button>
</div>
</div>
</div>
</template>
<style>
#confirm-dialog {
background: var(--body-bg-color);
color: #fff;
margin: 10px;
border-radius: 5px;
max-width: 500px;
}
#confirm-dialog .confirm-text {
padding: 15px;
user-select: text;
}
#confirm-dialog .confirm-text-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 10px;
}
#confirm-dialog .confirm-buttons {
display: flex;
justify-content: flex-end;
padding: 15px;
background: rgba(0, 0, 0, 0.3);
}
#confirm-dialog .confirm-buttons .btn {
margin-bottom: 0;
margin-left: 10px;
}
#confirm-dialog .confirm-buttons .btn-cancel {
border-color: transparent;
}
</style>
<script lang="ts">
import eventbus from "../js/eventbus";
import {defineComponent, onMounted, onUnmounted, ref} from "vue";
type ConfirmDialogData = {
title: string;
text: string;
button: string;
};
type ConfirmDialogCallback = {
(confirmed: boolean): void;
};
export default defineComponent({
name: "ConfirmDialog",
setup() {
const data = ref<ConfirmDialogData>();
const callback = ref<ConfirmDialogCallback>();
const open = (incoming: ConfirmDialogData, cb: ConfirmDialogCallback) => {
data.value = incoming;
callback.value = cb;
};
const close = (result: boolean) => {
data.value = undefined;
if (callback.value) {
callback.value(!!result);
}
};
onMounted(() => {
eventbus.on("escapekey", close);
eventbus.on("confirm-dialog", open);
});
onUnmounted(() => {
eventbus.off("escapekey", close);
eventbus.off("confirm-dialog", open);
});
return {
data,
close,
};
},
});
</script>

View file

@ -0,0 +1,286 @@
<template>
<div
v-if="isOpen"
id="context-menu-container"
:class="{passthrough}"
@click="containerClick"
@contextmenu.prevent="containerClick"
@keydown.exact.up.prevent="navigateMenu(-1)"
@keydown.exact.down.prevent="navigateMenu(1)"
@keydown.exact.tab.prevent="navigateMenu(1)"
@keydown.shift.tab.prevent="navigateMenu(-1)"
>
<ul
id="context-menu"
ref="contextMenu"
role="menu"
:style="{
top: style.top + 'px',
left: style.left + 'px',
}"
tabindex="-1"
:aria-activedescendant="activeItem > -1 ? `context-menu-item-${activeItem}` : undefined"
@mouseleave="activeItem = -1"
@keydown.enter.prevent="clickActiveItem"
>
<!-- TODO: type -->
<template v-for="(item, id) of (items as any)" :key="item.name">
<li
:id="`context-menu-item-${id}`"
:class="[
'context-menu-' + item.type,
item.class ? 'context-menu-' + item.class : null,
{active: id === activeItem},
]"
role="menuitem"
@mouseenter="hoverItem(id)"
@click="clickItem(item)"
>
{{ item.label }}
</li>
</template>
</ul>
</div>
</template>
<script lang="ts">
import {
generateUserContextMenu,
generateChannelContextMenu,
generateInlineChannelContextMenu,
ContextMenuItem,
} from "../js/helpers/contextMenu";
import eventbus from "../js/eventbus";
import {defineComponent, nextTick, onMounted, onUnmounted, PropType, ref} from "vue";
import {ClientChan, ClientMessage, ClientNetwork, ClientUser} from "../js/types";
import {useStore} from "../js/store";
import {useRouter} from "vue-router";
export default defineComponent({
name: "ContextMenu",
props: {
message: {
required: false,
type: Object as PropType<ClientMessage>,
},
},
setup() {
const store = useStore();
const router = useRouter();
const isOpen = ref(false);
const passthrough = ref(false);
const contextMenu = ref<HTMLUListElement | null>();
const previousActiveElement = ref<HTMLElement | null>();
const items = ref<ContextMenuItem[]>([]);
const activeItem = ref(-1);
const style = ref({
top: 0,
left: 0,
});
const close = () => {
if (!isOpen.value) {
return;
}
isOpen.value = false;
items.value = [];
if (previousActiveElement.value) {
previousActiveElement.value.focus();
previousActiveElement.value = null;
}
};
const enablePointerEvents = () => {
passthrough.value = false;
document.body.removeEventListener("pointerup", enablePointerEvents);
};
const containerClick = (event: MouseEvent) => {
if (event.currentTarget === event.target) {
close();
}
};
const positionContextMenu = (event: MouseEvent) => {
const element = event.target as HTMLElement;
if (!contextMenu.value) {
return;
}
const menuWidth = contextMenu.value?.offsetWidth;
const menuHeight = contextMenu.value?.offsetHeight;
if (element && element.classList.contains("menu")) {
return {
left: element.getBoundingClientRect().left - (menuWidth - element.offsetWidth),
top: element.getBoundingClientRect().top + element.offsetHeight,
};
}
const offset = {left: event.pageX, top: event.pageY};
if (window.innerWidth - offset.left < menuWidth) {
offset.left = window.innerWidth - menuWidth;
}
if (window.innerHeight - offset.top < menuHeight) {
offset.top = window.innerHeight - menuHeight;
}
return offset;
};
const hoverItem = (id: number) => {
activeItem.value = id;
};
const clickItem = (item: ContextMenuItem) => {
close();
if ("action" in item && item.action) {
item.action();
} else if ("link" in item && item.link) {
router.push(item.link).catch(() => {
// eslint-disable-next-line no-console
console.error("Failed to navigate to", item.link);
});
}
};
const clickActiveItem = () => {
if (items.value[activeItem.value]) {
clickItem(items.value[activeItem.value]);
}
};
const open = (event: MouseEvent, newItems: ContextMenuItem[]) => {
event.preventDefault();
previousActiveElement.value = document.activeElement as HTMLElement;
items.value = newItems;
activeItem.value = 0;
isOpen.value = true;
// Position the menu and set the focus on the first item after it's size has updated
nextTick(() => {
const pos = positionContextMenu(event);
if (!pos) {
return;
}
style.value.left = pos.left;
style.value.top = pos.top;
contextMenu.value?.focus();
}).catch((e) => {
// eslint-disable-next-line no-console
console.error(e);
});
};
const openChannelContextMenu = (data: {
event: MouseEvent;
channel: ClientChan;
network: ClientNetwork;
}) => {
if (data.event.type === "contextmenu") {
// Pass through all pointer events to allow the network list's
// dragging events to continue triggering.
passthrough.value = true;
document.body.addEventListener("pointerup", enablePointerEvents, {
passive: true,
});
}
const newItems = generateChannelContextMenu(data.channel, data.network);
open(data.event, newItems);
};
const openInlineChannelContextMenu = (data: {channel: string; event: MouseEvent}) => {
const {network} = store.state.activeChannel;
const newItems = generateInlineChannelContextMenu(store, data.channel, network);
open(data.event, newItems);
};
const openUserContextMenu = (data: {
user: Pick<ClientUser, "nick" | "modes">;
event: MouseEvent;
}) => {
const {network, channel} = store.state.activeChannel;
const newItems = generateUserContextMenu(
store,
channel,
network,
channel.users.find((u) => u.nick === data.user.nick) || {
nick: data.user.nick,
modes: [],
}
);
open(data.event, newItems);
};
const navigateMenu = (direction: number) => {
let currentIndex = activeItem.value;
currentIndex += direction;
const nextItem = items.value[currentIndex];
// If the next item we would select is a divider, skip over it
if (nextItem && "type" in nextItem && nextItem.type === "divider") {
currentIndex += direction;
}
if (currentIndex < 0) {
currentIndex += items.value.length;
}
if (currentIndex > items.value.length - 1) {
currentIndex -= items.value.length;
}
activeItem.value = currentIndex;
};
onMounted(() => {
eventbus.on("escapekey", close);
eventbus.on("contextmenu:cancel", close);
eventbus.on("contextmenu:user", openUserContextMenu);
eventbus.on("contextmenu:channel", openChannelContextMenu);
eventbus.on("contextmenu:inline-channel", openInlineChannelContextMenu);
});
onUnmounted(() => {
eventbus.off("escapekey", close);
eventbus.off("contextmenu:cancel", close);
eventbus.off("contextmenu:user", openUserContextMenu);
eventbus.off("contextmenu:channel", openChannelContextMenu);
eventbus.off("contextmenu:inline-channel", openInlineChannelContextMenu);
close();
});
return {
isOpen,
items,
activeItem,
style,
contextMenu,
passthrough,
close,
containerClick,
navigateMenu,
hoverItem,
clickItem,
clickActiveItem,
};
},
});
</script>

View file

@ -0,0 +1,66 @@
<template>
<div :aria-label="localeDate" class="date-marker-container tooltipped tooltipped-s">
<div class="date-marker">
<span :aria-label="friendlyDate()" class="date-marker-text" />
</div>
</div>
</template>
<script lang="ts">
import dayjs from "dayjs";
import calendar from "dayjs/plugin/calendar";
import {computed, defineComponent, onBeforeUnmount, onMounted, PropType} from "vue";
import eventbus from "../js/eventbus";
import type {ClientMessage} from "../js/types";
dayjs.extend(calendar);
export default defineComponent({
name: "DateMarker",
props: {
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
focused: Boolean,
},
setup(props) {
const localeDate = computed(() => dayjs(props.message.time).format("D MMMM YYYY"));
const hoursPassed = () => {
return (Date.now() - Date.parse(props.message.time.toString())) / 3600000;
};
const dayChange = () => {
if (hoursPassed() >= 48) {
eventbus.off("daychange", dayChange);
}
};
const friendlyDate = () => {
// See http://momentjs.com/docs/#/displaying/calendar-time/
return dayjs(props.message.time).calendar(null, {
sameDay: "[Today]",
lastDay: "[Yesterday]",
lastWeek: "D MMMM YYYY",
sameElse: "D MMMM YYYY",
});
};
onMounted(() => {
if (hoursPassed() < 48) {
eventbus.on("daychange", dayChange);
}
});
onBeforeUnmount(() => {
eventbus.off("daychange", dayChange);
});
return {
localeDate,
friendlyDate,
};
},
});
</script>

View file

@ -0,0 +1,120 @@
<template>
<div ref="containerRef" :class="$props.class">
<slot
v-for="(item, index) of list"
:key="item[itemKey]"
:element="item"
:index="index"
name="item"
></slot>
</div>
</template>
<script lang="ts">
import {defineComponent, ref, PropType, watch, onUnmounted, onBeforeUnmount} from "vue";
import Sortable from "sortablejs";
const Props = {
delay: {
type: Number,
default: 0,
required: false,
},
delayOnTouchOnly: {
type: Boolean,
default: false,
required: false,
},
touchStartThreshold: {
type: Number,
default: 10,
required: false,
},
handle: {
type: String,
default: "",
required: false,
},
draggable: {
type: String,
default: "",
required: false,
},
ghostClass: {
type: String,
default: "",
required: false,
},
dragClass: {
type: String,
default: "",
required: false,
},
group: {
type: String,
default: "",
required: false,
},
class: {
type: String,
default: "",
required: false,
},
itemKey: {
type: String,
default: "",
required: true,
},
list: {
type: Array as PropType<any[]>,
default: [],
required: true,
},
filter: {
type: String,
default: "",
required: false,
},
};
export default defineComponent({
name: "Draggable",
props: Props,
emits: ["change", "choose", "unchoose"],
setup(props, {emit}) {
const containerRef = ref<HTMLElement | null>(null);
const sortable = ref<Sortable | null>(null);
watch(containerRef, (newDraggable) => {
if (newDraggable) {
sortable.value = new Sortable(newDraggable, {
...props,
onChoose(event) {
emit("choose", event);
},
onUnchoose(event) {
emit("unchoose", event);
},
onEnd(event) {
emit("change", event);
},
});
}
});
onBeforeUnmount(() => {
if (sortable.value) {
sortable.value.destroy();
containerRef.value = null;
}
});
return {
containerRef,
};
},
});
</script>

View file

@ -0,0 +1,478 @@
<template>
<div
id="image-viewer"
ref="viewer"
:class="{opened: link !== null}"
@wheel="onMouseWheel"
@touchstart.passive="onTouchStart"
@click="onClick"
>
<template v-if="link !== null">
<button class="close-btn" aria-label="Close"></button>
<button
v-if="previousImage"
class="previous-image-btn"
aria-label="Previous image"
@click.stop="previous"
></button>
<button
v-if="nextImage"
class="next-image-btn"
aria-label="Next image"
@click.stop="next"
></button>
<a class="open-btn" :href="link.link" target="_blank" rel="noopener"></a>
<img
ref="image"
:src="link.thumb"
alt=""
:style="computeImageStyles"
@load="onImageLoad"
@mousedown="onImageMouseDown"
@touchstart.passive="onImageTouchStart"
/>
</template>
</div>
</template>
<script lang="ts">
import Mousetrap from "mousetrap";
import {computed, defineComponent, ref, watch} from "vue";
import eventbus from "../js/eventbus";
import {ClientChan, ClientLinkPreview} from "../js/types";
import {SharedMsg} from "../../shared/types/msg";
export default defineComponent({
name: "ImageViewer",
setup() {
const viewer = ref<HTMLDivElement>();
const image = ref<HTMLImageElement>();
const link = ref<ClientLinkPreview | null>(null);
const previousImage = ref<ClientLinkPreview | null>();
const nextImage = ref<ClientLinkPreview | null>();
const channel = ref<ClientChan | null>();
const position = ref<{
x: number;
y: number;
}>({
x: 0,
y: 0,
});
const transform = ref<{
scale: number;
x: number;
y: number;
}>({
scale: 1,
x: 0,
y: 0,
});
const computeImageStyles = computed(() => {
// Sub pixels may cause the image to blur in certain browsers
// round it down to prevent that
const transformX = Math.floor(transform.value.x);
const transformY = Math.floor(transform.value.y);
return {
left: `${position.value.x}px`,
top: `${position.value.y}px`,
transform: `translate3d(${transformX}px, ${transformY}px, 0) scale3d(${transform.value.scale}, ${transform.value.scale}, 1)`,
};
});
const closeViewer = () => {
if (link.value === null) {
return;
}
channel.value = null;
previousImage.value = null;
nextImage.value = null;
link.value = null;
};
const setPrevNextImages = () => {
if (!channel.value || !link.value) {
return null;
}
const links = channel.value.messages
.map((msg: SharedMsg) => msg.previews)
.flat()
.filter((preview) => preview && preview.thumb);
const currentIndex = links.indexOf(link.value);
previousImage.value = links[currentIndex - 1] || null;
nextImage.value = links[currentIndex + 1] || null;
};
const previous = () => {
if (previousImage.value) {
link.value = previousImage.value;
}
};
const next = () => {
if (nextImage.value) {
link.value = nextImage.value;
}
};
const prepareImage = () => {
const viewerEl = viewer.value;
const imageEl = image.value;
if (!viewerEl || !imageEl) {
return;
}
const width = viewerEl.offsetWidth;
const height = viewerEl.offsetHeight;
const scale = Math.min(1, width / imageEl.width, height / imageEl.height);
position.value.x = Math.floor(-image.value!.naturalWidth / 2);
position.value.y = Math.floor(-image.value!.naturalHeight / 2);
transform.value.scale = Math.max(scale, 0.1);
transform.value.x = width / 2;
transform.value.y = height / 2;
};
const onImageLoad = () => {
prepareImage();
};
const calculateZoomShift = (newScale: number, x: number, y: number, oldScale: number) => {
if (!image.value || !viewer.value) {
return;
}
const imageWidth = image.value.width;
const centerX = viewer.value.offsetWidth / 2;
const centerY = viewer.value.offsetHeight / 2;
return {
x:
centerX -
((centerX - (y - (imageWidth * x) / 2)) / x) * newScale +
(imageWidth * newScale) / 2,
y:
centerY -
((centerY - (oldScale - (imageWidth * x) / 2)) / x) * newScale +
(imageWidth * newScale) / 2,
};
};
const correctPosition = () => {
const imageEl = image.value;
const viewerEl = viewer.value;
if (!imageEl || !viewerEl) {
return;
}
const widthScaled = imageEl.width * transform.value.scale;
const heightScaled = imageEl.height * transform.value.scale;
const containerWidth = viewerEl.offsetWidth;
const containerHeight = viewerEl.offsetHeight;
if (widthScaled < containerWidth) {
transform.value.x = containerWidth / 2;
} else if (transform.value.x - widthScaled / 2 > 0) {
transform.value.x = widthScaled / 2;
} else if (transform.value.x + widthScaled / 2 < containerWidth) {
transform.value.x = containerWidth - widthScaled / 2;
}
if (heightScaled < containerHeight) {
transform.value.y = containerHeight / 2;
} else if (transform.value.y - heightScaled / 2 > 0) {
transform.value.y = heightScaled / 2;
} else if (transform.value.y + heightScaled / 2 < containerHeight) {
transform.value.y = containerHeight - heightScaled / 2;
}
};
// Reduce multiple touch points into a single x/y/scale
const reduceTouches = (touches: TouchList) => {
let totalX = 0;
let totalY = 0;
let totalScale = 0;
for (let i = 0; i < touches.length; i++) {
const x = touches[i].clientX;
const y = touches[i].clientY;
totalX += x;
totalY += y;
for (let i2 = 0; i2 < touches.length; i2++) {
if (i !== i2) {
const x2 = touches[i2].clientX;
const y2 = touches[i2].clientY;
totalScale += Math.sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2));
}
}
}
if (totalScale === 0) {
totalScale = 1;
}
return {
x: totalX / touches.length,
y: totalY / touches.length,
scale: totalScale / touches.length,
};
};
const onTouchStart = (e: TouchEvent) => {
// prevent sidebar touchstart event, we don't want to interact with sidebar while in image viewer
e.stopImmediatePropagation();
};
// Touch image manipulation:
// 1. Move around by dragging it with one finger
// 2. Change image scale by using two fingers
const onImageTouchStart = (e: TouchEvent) => {
const img = image.value;
let touch = reduceTouches(e.touches);
let currentTouches = e.touches;
let touchEndFingers = 0;
const currentTransform = {
x: touch.x,
y: touch.y,
scale: touch.scale,
};
const startTransform = {
x: transform.value.x,
y: transform.value.y,
scale: transform.value.scale,
};
const touchMove = (moveEvent) => {
touch = reduceTouches(moveEvent.touches);
if (currentTouches.length !== moveEvent.touches.length) {
currentTransform.x = touch.x;
currentTransform.y = touch.y;
currentTransform.scale = touch.scale;
startTransform.x = transform.value.x;
startTransform.y = transform.value.y;
startTransform.scale = transform.value.scale;
}
const deltaX = touch.x - currentTransform.x;
const deltaY = touch.y - currentTransform.y;
const deltaScale = touch.scale / currentTransform.scale;
currentTouches = moveEvent.touches;
touchEndFingers = 0;
const newScale = Math.min(3, Math.max(0.1, startTransform.scale * deltaScale));
const fixedPosition = calculateZoomShift(
newScale,
startTransform.scale,
startTransform.x,
startTransform.y
);
if (!fixedPosition) {
return;
}
transform.value.x = fixedPosition.x + deltaX;
transform.value.y = fixedPosition.y + deltaY;
transform.value.scale = newScale;
correctPosition();
};
const touchEnd = (endEvent: TouchEvent) => {
const changedTouches = endEvent.changedTouches.length;
if (currentTouches.length > changedTouches + touchEndFingers) {
touchEndFingers += changedTouches;
return;
}
// todo: this is swipe to close, but it's not working very well due to unfinished delta calculation
/* if (
transform.value.scale <= 1 &&
endEvent.changedTouches[0].clientY - startTransform.y <= -70
) {
return this.closeViewer();
}*/
correctPosition();
img?.removeEventListener("touchmove", touchMove);
img?.removeEventListener("touchend", touchEnd);
};
img?.addEventListener("touchmove", touchMove, {passive: true});
img?.addEventListener("touchend", touchEnd, {passive: true});
};
// Image mouse manipulation:
// 1. Mouse wheel scrolling will zoom in and out
// 2. If image is zoomed in, simply dragging it will move it around
const onImageMouseDown = (e: MouseEvent) => {
// todo: ignore if in touch event currently?
// only left mouse
// TODO: e.buttons?
if (e.which !== 1) {
return;
}
e.stopPropagation();
e.preventDefault();
const viewerEl = viewer.value;
const imageEl = image.value;
if (!viewerEl || !imageEl) {
return;
}
const startX = e.clientX;
const startY = e.clientY;
const startTransformX = transform.value.x;
const startTransformY = transform.value.y;
const widthScaled = imageEl.width * transform.value.scale;
const heightScaled = imageEl.height * transform.value.scale;
const containerWidth = viewerEl.offsetWidth;
const containerHeight = viewerEl.offsetHeight;
const centerX = transform.value.x - widthScaled / 2;
const centerY = transform.value.y - heightScaled / 2;
let movedDistance = 0;
const mouseMove = (moveEvent: MouseEvent) => {
moveEvent.stopPropagation();
moveEvent.preventDefault();
const newX = moveEvent.clientX - startX;
const newY = moveEvent.clientY - startY;
movedDistance = Math.max(movedDistance, Math.abs(newX), Math.abs(newY));
if (centerX < 0 || widthScaled + centerX > containerWidth) {
transform.value.x = startTransformX + newX;
}
if (centerY < 0 || heightScaled + centerY > containerHeight) {
transform.value.y = startTransformY + newY;
}
correctPosition();
};
const mouseUp = (upEvent: MouseEvent) => {
correctPosition();
if (movedDistance < 2 && upEvent.button === 0) {
closeViewer();
}
image.value?.removeEventListener("mousemove", mouseMove);
image.value?.removeEventListener("mouseup", mouseUp);
};
image.value?.addEventListener("mousemove", mouseMove);
image.value?.addEventListener("mouseup", mouseUp);
};
// If image is zoomed in, holding ctrl while scrolling will move the image up and down
const onMouseWheel = (e: WheelEvent) => {
// if image viewer is closing (css animation), you can still trigger mousewheel
// TODO: Figure out a better fix for this
if (link.value === null) {
return;
}
e.preventDefault(); // TODO: Can this be passive?
if (e.ctrlKey) {
transform.value.y += e.deltaY;
} else {
const delta = e.deltaY > 0 ? 0.1 : -0.1;
const newScale = Math.min(3, Math.max(0.1, transform.value.scale + delta));
const fixedPosition = calculateZoomShift(
newScale,
transform.value.scale,
transform.value.x,
transform.value.y
);
if (!fixedPosition) {
return;
}
transform.value.scale = newScale;
transform.value.x = fixedPosition.x;
transform.value.y = fixedPosition.y;
}
correctPosition();
};
const onClick = (e: Event) => {
// If click triggers on the image, ignore it
if (e.target === image.value) {
return;
}
closeViewer();
};
watch(link, (newLink, oldLink) => {
// TODO: history.pushState
if (newLink === null) {
eventbus.off("escapekey", closeViewer);
eventbus.off("resize", correctPosition);
Mousetrap.unbind("left");
Mousetrap.unbind("right");
return;
}
setPrevNextImages();
if (!oldLink) {
eventbus.on("escapekey", closeViewer);
eventbus.on("resize", correctPosition);
Mousetrap.bind("left", previous);
Mousetrap.bind("right", next);
}
});
return {
link,
channel,
image,
transform,
closeViewer,
next,
previous,
onImageLoad,
onImageMouseDown,
onMouseWheel,
onClick,
onTouchStart,
previousImage,
nextImage,
onImageTouchStart,
computeImageStyles,
viewer,
};
},
});
</script>

View file

@ -0,0 +1,35 @@
<template>
<span
class="inline-channel"
dir="auto"
role="button"
tabindex="0"
@click.prevent="openContextMenu"
@contextmenu.prevent="openContextMenu"
><slot></slot
></span>
</template>
<script lang="ts">
import {defineComponent} from "vue";
import eventbus from "../js/eventbus";
export default defineComponent({
name: "InlineChannel",
props: {
channel: String,
},
setup(props) {
const openContextMenu = (event) => {
eventbus.emit("contextmenu:inline-channel", {
event: event,
channel: props.channel,
});
};
return {
openContextMenu,
};
},
});
</script>

View file

@ -0,0 +1,93 @@
<template>
<form
:id="'join-channel-' + channel.id"
class="join-form"
method="post"
action=""
autocomplete="off"
@keydown.esc.prevent="$emit('toggle-join-channel')"
@submit.prevent="onSubmit"
>
<input
v-model="inputChannel"
v-focus
type="text"
class="input"
name="channel"
placeholder="Channel"
pattern="[^\s]+"
maxlength="200"
title="The channel name may not contain spaces"
required
/>
<input
v-model="inputPassword"
type="password"
class="input"
name="key"
placeholder="Password (optional)"
pattern="[^\s]+"
maxlength="200"
title="The channel password may not contain spaces"
autocomplete="new-password"
/>
<button type="submit" class="btn btn-small">Join</button>
</form>
</template>
<script lang="ts">
import {defineComponent, PropType, ref} from "vue";
import {switchToChannel} from "../js/router";
import socket from "../js/socket";
import {useStore} from "../js/store";
import {ClientNetwork, ClientChan} from "../js/types";
export default defineComponent({
name: "JoinChannel",
directives: {
focus: {
mounted: (el: HTMLFormElement) => el.focus(),
},
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
emits: ["toggle-join-channel"],
setup(props, {emit}) {
const store = useStore();
const inputChannel = ref("");
const inputPassword = ref("");
const onSubmit = () => {
const existingChannel = store.getters.findChannelOnCurrentNetwork(inputChannel.value);
if (existingChannel) {
switchToChannel(existingChannel);
} else {
const chanTypes = props.network.serverOptions.CHANTYPES;
let channel = inputChannel.value;
if (chanTypes && chanTypes.length > 0 && !chanTypes.includes(channel[0])) {
channel = chanTypes[0] + channel;
}
socket.emit("input", {
text: `/join ${channel} ${inputPassword.value}`,
target: props.channel.id,
});
}
inputChannel.value = "";
inputPassword.value = "";
emit("toggle-join-channel");
};
return {
inputChannel,
inputPassword,
onSubmit,
};
},
});
</script>

View file

@ -0,0 +1,329 @@
<template>
<div
v-if="link.shown"
v-show="link.sourceLoaded || link.type === 'link'"
ref="container"
class="preview"
dir="ltr"
>
<div
ref="content"
:class="['toggle-content', 'toggle-type-' + link.type, {opened: isContentShown}]"
>
<template v-if="link.type === 'link'">
<a
v-if="link.thumb"
v-show="link.sourceLoaded"
:href="link.link"
class="toggle-thumbnail"
target="_blank"
rel="noopener"
@click="onThumbnailClick"
>
<img
:src="link.thumb"
decoding="async"
alt=""
class="thumb"
@error="onThumbnailError"
@abort="onThumbnailError"
@load="onPreviewReady"
/>
</a>
<div class="toggle-text" dir="auto">
<div class="head">
<div class="overflowable">
<a
:href="link.link"
:title="link.head"
target="_blank"
rel="noopener"
>{{ link.head }}</a
>
</div>
<button
v-if="showMoreButton"
:aria-expanded="isContentShown"
:aria-label="moreButtonLabel"
dir="auto"
class="more"
@click="onMoreClick"
>
<span class="more-caret" />
</button>
</div>
<div class="body overflowable">
<a :href="link.link" :title="link.body" target="_blank" rel="noopener">{{
link.body
}}</a>
</div>
</div>
</template>
<template v-else-if="link.type === 'image'">
<a
:href="link.link"
class="toggle-thumbnail"
target="_blank"
rel="noopener"
@click="onThumbnailClick"
>
<img
v-show="link.sourceLoaded"
:src="link.thumb"
decoding="async"
alt=""
@load="onPreviewReady"
/>
</a>
</template>
<template v-else-if="link.type === 'video'">
<video
v-show="link.sourceLoaded"
preload="metadata"
controls
@canplay="onPreviewReady"
>
<source :src="link.media" :type="link.mediaType" />
</video>
</template>
<template v-else-if="link.type === 'audio'">
<audio
v-show="link.sourceLoaded"
controls
preload="metadata"
@canplay="onPreviewReady"
>
<source :src="link.media" :type="link.mediaType" />
</audio>
</template>
<template v-else-if="link.type === 'error'">
<em v-if="link.error === 'image-too-big'">
This image is larger than {{ imageMaxSize }} and cannot be previewed.
<a :href="link.link" target="_blank" rel="noopener">Click here</a>
to open it in a new window.
</em>
<template v-else-if="link.error === 'message'">
<div>
<em>
A preview could not be loaded.
<a :href="link.link" target="_blank" rel="noopener">Click here</a>
to open it in a new window.
</em>
<br />
<pre class="prefetch-error">{{ link.message }}</pre>
</div>
<button
:aria-expanded="isContentShown"
:aria-label="moreButtonLabel"
class="more"
@click="onMoreClick"
>
<span class="more-caret" />
</button>
</template>
</template>
</div>
</div>
</template>
<script lang="ts">
import {
computed,
defineComponent,
inject,
nextTick,
onBeforeUnmount,
onMounted,
onUnmounted,
PropType,
ref,
watch,
} from "vue";
import {onBeforeRouteUpdate} from "vue-router";
import eventbus from "../js/eventbus";
import friendlysize from "../js/helpers/friendlysize";
import {useStore} from "../js/store";
import type {ClientChan, ClientLinkPreview} from "../js/types";
import {imageViewerKey} from "./App.vue";
export default defineComponent({
name: "LinkPreview",
props: {
link: {
type: Object as PropType<ClientLinkPreview>,
required: true,
},
keepScrollPosition: {
type: Function as PropType<() => void>,
required: true,
},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup(props) {
const store = useStore();
const showMoreButton = ref(false);
const isContentShown = ref(false);
const imageViewer = inject(imageViewerKey);
onBeforeRouteUpdate((to, from, next) => {
// cancel the navigation if the user is trying to close the image viewer
if (imageViewer?.value?.link) {
imageViewer.value.closeViewer();
return next(false);
}
next();
});
const content = ref<HTMLDivElement | null>(null);
const container = ref<HTMLDivElement | null>(null);
const moreButtonLabel = computed(() => {
return isContentShown.value ? "Less" : "More";
});
const imageMaxSize = computed(() => {
if (!props.link.maxSize) {
return;
}
return friendlysize(props.link.maxSize);
});
const handleResize = () => {
nextTick(() => {
if (!content.value || !container.value) {
return;
}
showMoreButton.value = content.value.offsetWidth >= container.value.offsetWidth;
}).catch((e) => {
// eslint-disable-next-line no-console
console.error("Error in LinkPreview.handleResize", e);
});
};
const onPreviewReady = () => {
props.link.sourceLoaded = true;
props.keepScrollPosition();
if (props.link.type === "link") {
handleResize();
}
};
const onPreviewUpdate = () => {
// Don't display previews while they are loading on the server
if (props.link.type === "loading") {
return;
}
// Error does not have any media to render
if (props.link.type === "error") {
onPreviewReady();
}
// If link doesn't have a thumbnail, render it
if (props.link.type === "link") {
handleResize();
props.keepScrollPosition();
}
};
const onThumbnailError = () => {
// If thumbnail fails to load, hide it and show the preview without it
props.link.thumb = "";
onPreviewReady();
};
const onThumbnailClick = (e: MouseEvent) => {
e.preventDefault();
if (!imageViewer?.value) {
return;
}
imageViewer.value.channel = props.channel;
imageViewer.value.link = props.link;
};
const onMoreClick = () => {
isContentShown.value = !isContentShown.value;
props.keepScrollPosition();
};
const updateShownState = () => {
// User has manually toggled the preview, do not apply default
if (props.link.shown !== null) {
return;
}
let defaultState = false;
switch (props.link.type) {
case "error":
// Collapse all errors by default unless its a message about image being too big
if (props.link.error === "image-too-big") {
defaultState = store.state.settings.media;
}
break;
case "link":
defaultState = store.state.settings.links;
break;
default:
defaultState = store.state.settings.media;
}
props.link.shown = defaultState;
};
updateShownState();
watch(
() => props.link.type,
() => {
updateShownState();
onPreviewUpdate();
}
);
onMounted(() => {
eventbus.on("resize", handleResize);
onPreviewUpdate();
});
onBeforeUnmount(() => {
eventbus.off("resize", handleResize);
});
onUnmounted(() => {
// Let this preview go through load/canplay events again,
// Otherwise the browser can cause a resize on video elements
props.link.sourceLoaded = false;
});
return {
moreButtonLabel,
imageMaxSize,
onThumbnailClick,
onThumbnailError,
onMoreClick,
onPreviewReady,
onPreviewUpdate,
showMoreButton,
isContentShown,
content,
container,
};
},
});
</script>

View file

@ -0,0 +1,22 @@
<template>
<span class="preview-size">({{ previewSize }})</span>
</template>
<script lang="ts">
import {defineComponent} from "vue";
import friendlysize from "../js/helpers/friendlysize";
export default defineComponent({
name: "LinkPreviewFileSize",
props: {
size: {type: Number, required: true},
},
setup(props) {
const previewSize = friendlysize(props.size);
return {
previewSize,
};
},
});
</script>

View file

@ -0,0 +1,37 @@
<template>
<button
v-if="link.type !== 'loading'"
:class="['toggle-button', 'toggle-preview', {opened: link.shown}]"
:aria-label="ariaLabel"
@click="onClick"
/>
</template>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import {ClientMessage, ClientLinkPreview} from "../js/types";
export default defineComponent({
name: "LinkPreviewToggle",
props: {
link: {type: Object as PropType<ClientLinkPreview>, required: true},
message: {type: Object as PropType<ClientMessage>, required: true},
},
emits: ["toggle-link-preview"],
setup(props, {emit}) {
const ariaLabel = computed(() => {
return props.link.shown ? "Collapse preview" : "Expand preview";
});
const onClick = () => {
props.link.shown = !props.link.shown;
emit("toggle-link-preview", props.link, props.message);
};
return {
ariaLabel,
onClick,
};
},
});
</script>

View file

@ -0,0 +1,247 @@
<template>
<div
v-if="isOpen"
id="mentions-popup-container"
@click="containerClick"
@contextmenu="containerClick"
>
<div class="mentions-popup">
<div class="mentions-popup-title">
Recent mentions
<button
v-if="resolvedMessages.length"
class="btn dismiss-all-mentions"
@click="dismissAllMentions()"
>
Dismiss all
</button>
</div>
<template v-if="resolvedMessages.length === 0">
<p v-if="isLoading">Loading</p>
<p v-else>You have no recent mentions.</p>
</template>
<template v-for="message in resolvedMessages" v-else :key="message.msgId">
<div :class="['msg', message.type]">
<div class="mentions-info">
<div>
<span class="from">
<Username :user="(message.from as any)" />
<template v-if="message.channel">
in {{ message.channel.channel.name }} on
{{ message.channel.network.name }}
</template>
<template v-else> in unknown channel </template> </span
>{{ ` ` }}
<span :title="message.localetime" class="time">
{{ messageTime(message.time.toString()) }}
</span>
</div>
<div>
<span
class="close-tooltip tooltipped tooltipped-w"
aria-label="Dismiss this mention"
>
<button
class="msg-dismiss"
aria-label="Dismiss this mention"
@click="dismissMention(message)"
></button>
</span>
</div>
</div>
<div class="content" dir="auto">
<ParsedMessage :message="(message as any)" />
</div>
</div>
</template>
</div>
</div>
</template>
<style>
#mentions-popup-container {
z-index: 8;
}
.mentions-popup {
background-color: var(--window-bg-color);
position: absolute;
width: 400px;
right: 80px;
top: 55px;
max-height: 400px;
overflow-y: auto;
z-index: 2;
padding: 10px;
}
.mentions-popup > .mentions-popup-title {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
font-size: 20px;
}
.mentions-popup .mentions-info {
display: flex;
justify-content: space-between;
}
.mentions-popup .msg {
margin-bottom: 15px;
user-select: text;
}
.mentions-popup .msg:last-child {
margin-bottom: 0;
}
.mentions-popup .msg .content {
background-color: var(--highlight-bg-color);
border-radius: 5px;
padding: 6px;
margin-top: 2px;
word-wrap: break-word;
word-break: break-word; /* Webkit-specific */
}
.mentions-popup .msg-dismiss::before {
font-size: 20px;
font-weight: normal;
display: inline-block;
line-height: 16px;
text-align: center;
content: "×";
}
.mentions-popup .msg-dismiss:hover {
color: var(--link-color);
}
.mentions-popup .dismiss-all-mentions {
margin: 0;
padding: 4px 6px;
}
@media (min-height: 500px) {
.mentions-popup {
max-height: 60vh;
}
}
@media (max-width: 768px) {
.mentions-popup {
border-radius: 0;
border: 0;
box-shadow: none;
width: 100%;
max-height: none;
right: 0;
left: 0;
bottom: 0;
top: 45px; /* header height */
}
}
</style>
<script lang="ts">
import Username from "./Username.vue";
import ParsedMessage from "./ParsedMessage.vue";
import socket from "../js/socket";
import eventbus from "../js/eventbus";
import localetime from "../js/helpers/localetime";
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import {computed, watch, defineComponent, ref, onMounted, onUnmounted} from "vue";
import {useStore} from "../js/store";
import {ClientMention} from "../js/types";
dayjs.extend(relativeTime);
export default defineComponent({
name: "Mentions",
components: {
Username,
ParsedMessage,
},
setup() {
const store = useStore();
const isOpen = ref(false);
const isLoading = ref(false);
const resolvedMessages = computed(() => {
const messages = store.state.mentions.slice().reverse();
for (const message of messages) {
message.localetime = localetime(message.time);
message.channel = store.getters.findChannel(message.chanId);
}
return messages.filter((message) => !message.channel?.channel.muted);
});
watch(
() => store.state.mentions,
() => {
isLoading.value = false;
}
);
const messageTime = (time: string) => {
return dayjs(time).fromNow();
};
const dismissMention = (message: ClientMention) => {
store.state.mentions.splice(
store.state.mentions.findIndex((m) => m.msgId === message.msgId),
1
);
socket.emit("mentions:dismiss", message.msgId);
};
const dismissAllMentions = () => {
store.state.mentions = [];
socket.emit("mentions:dismiss_all");
};
const containerClick = (event: Event) => {
if (event.currentTarget === event.target) {
isOpen.value = false;
}
};
const togglePopup = () => {
isOpen.value = !isOpen.value;
if (isOpen.value) {
isLoading.value = true;
socket.emit("mentions:get");
}
};
const closePopup = () => {
isOpen.value = false;
};
onMounted(() => {
eventbus.on("mentions:toggle", togglePopup);
eventbus.on("escapekey", closePopup);
});
onUnmounted(() => {
eventbus.off("mentions:toggle", togglePopup);
eventbus.off("escapekey", closePopup);
});
return {
isOpen,
isLoading,
resolvedMessages,
messageTime,
dismissMention,
dismissAllMentions,
containerClick,
};
},
});
</script>

View file

@ -0,0 +1,173 @@
<template>
<div
:id="'msg-' + message.id"
:class="[
'msg',
{
self: message.self,
highlight: message.highlight || focused,
'previous-source': isPreviousSource,
},
]"
:data-type="message.type"
:data-command="message.command"
:data-from="message.from && message.from.nick"
>
<span
aria-hidden="true"
:aria-label="messageTimeLocale"
class="time tooltipped tooltipped-e"
>{{ `${messageTime}&#32;` }}
</span>
<template v-if="message.type === 'unhandled'">
<span class="from">[{{ message.command }}]</span>
<span class="content">
<span v-for="(param, id) in message.params" :key="id">{{
`&#32;${param}&#32;`
}}</span>
</span>
</template>
<template v-else-if="isAction()">
<span class="from"><span class="only-copy" aria-hidden="true">***&nbsp;</span></span>
<component :is="messageComponent" :network="network" :message="message" />
</template>
<template v-else-if="message.type === 'action'">
<span class="from"><span class="only-copy">*&nbsp;</span></span>
<span class="content" dir="auto">
<Username
:user="message.from"
:network="network"
:channel="channel"
dir="auto"
/>&#32;<ParsedMessage :message="message" />
<LinkPreview
v-for="preview in message.previews"
:key="preview.link"
:keep-scroll-position="keepScrollPosition"
:link="preview"
:channel="channel"
/>
</span>
</template>
<template v-else>
<span v-if="message.type === 'message'" class="from">
<template v-if="message.from && message.from.nick">
<span class="only-copy" aria-hidden="true">&lt;</span>
<Username :user="message.from" :network="network" :channel="channel" />
<span class="only-copy" aria-hidden="true">&gt;&nbsp;</span>
</template>
</span>
<span v-else-if="message.type === 'plugin'" class="from">
<template v-if="message.from && message.from.nick">
<span class="only-copy" aria-hidden="true">[</span>
{{ message.from.nick }}
<span class="only-copy" aria-hidden="true">]&nbsp;</span>
</template>
</span>
<span v-else class="from">
<template v-if="message.from && message.from.nick">
<span class="only-copy" aria-hidden="true">-</span>
<Username :user="message.from" :network="network" :channel="channel" />
<span class="only-copy" aria-hidden="true">-&nbsp;</span>
</template>
</span>
<span class="content" dir="auto">
<span
v-if="message.showInActive"
aria-label="This message was shown in your active channel"
class="msg-shown-in-active tooltipped tooltipped-e"
><span></span
></span>
<span
v-if="message.statusmsgGroup"
:aria-label="`This message was only shown to users with ${message.statusmsgGroup} mode`"
class="msg-statusmsg tooltipped tooltipped-e"
><span>{{ message.statusmsgGroup }}</span></span
>
<ParsedMessage :network="network" :message="message" />
<LinkPreview
v-for="preview in message.previews"
:key="preview.link"
:keep-scroll-position="keepScrollPosition"
:link="preview"
:channel="channel"
/>
</span>
</template>
</div>
</template>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import dayjs from "dayjs";
import constants from "../js/constants";
import localetime from "../js/helpers/localetime";
import Username from "./Username.vue";
import LinkPreview from "./LinkPreview.vue";
import ParsedMessage from "./ParsedMessage.vue";
import MessageTypes from "./MessageTypes";
import type {ClientChan, ClientMessage, ClientNetwork} from "../js/types";
import {useStore} from "../js/store";
MessageTypes.ParsedMessage = ParsedMessage;
MessageTypes.LinkPreview = LinkPreview;
MessageTypes.Username = Username;
export default defineComponent({
name: "Message",
components: MessageTypes,
props: {
message: {type: Object as PropType<ClientMessage>, required: true},
channel: {type: Object as PropType<ClientChan>, required: false},
network: {type: Object as PropType<ClientNetwork>, required: true},
keepScrollPosition: Function as PropType<() => void>,
isPreviousSource: Boolean,
focused: Boolean,
},
setup(props) {
const store = useStore();
const timeFormat = computed(() => {
let format: keyof typeof constants.timeFormats;
if (store.state.settings.use12hClock) {
format = store.state.settings.showSeconds ? "msg12hWithSeconds" : "msg12h";
} else {
format = store.state.settings.showSeconds ? "msgWithSeconds" : "msgDefault";
}
return constants.timeFormats[format];
});
const messageTime = computed(() => {
return dayjs(props.message.time).format(timeFormat.value);
});
const messageTimeLocale = computed(() => {
return localetime(props.message.time);
});
const messageComponent = computed(() => {
return "message-" + (props.message.type || "invalid"); // TODO: force existence of type in sharedmsg
});
const isAction = () => {
if (!props.message.type) {
return false;
}
return typeof MessageTypes["message-" + props.message.type] !== "undefined";
};
return {
timeFormat,
messageTime,
messageTimeLocale,
messageComponent,
isAction,
};
},
});
</script>

View file

@ -0,0 +1,165 @@
<template>
<div :class="['msg', {closed: isCollapsed}]" data-type="condensed">
<div class="condensed-summary">
<span class="time" />
<span class="from" />
<span class="content" @click="onCollapseClick"
>{{ condensedText
}}<button class="toggle-button" aria-label="Toggle status messages"
/></span>
</div>
<Message
v-for="message in messages"
:key="message.id"
:network="network"
:message="message"
/>
</div>
</template>
<script lang="ts">
import {computed, defineComponent, PropType, ref} from "vue";
import {condensedTypes} from "../../shared/irc";
import {MessageType} from "../../shared/types/msg";
import {ClientMessage, ClientNetwork} from "../js/types";
import Message from "./Message.vue";
export default defineComponent({
name: "MessageCondensed",
components: {
Message,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
messages: {
type: Array as PropType<ClientMessage[]>,
required: true,
},
keepScrollPosition: {
type: Function as PropType<() => void>,
required: true,
},
focused: Boolean,
},
setup(props) {
const isCollapsed = ref(true);
const onCollapseClick = () => {
isCollapsed.value = !isCollapsed.value;
props.keepScrollPosition();
};
const condensedText = computed(() => {
const obj: Record<string, number> = {};
condensedTypes.forEach((type) => {
obj[type] = 0;
});
for (const message of props.messages) {
// special case since one MODE message can change multiple modes
if (message.type === MessageType.MODE) {
// syntax: +vv-t maybe-some targets
// we want the number of mode changes in the message, so count the
// number of chars other than + and - before the first space
const text = message.text ? message.text : "";
const modeChangesCount = text
.split(" ")[0]
.split("")
.filter((char) => char !== "+" && char !== "-").length;
obj[message.type] += modeChangesCount;
} else {
if (!message.type) {
/* eslint-disable no-console */
console.log(`empty message type, this should not happen: ${message.id}`);
continue;
}
obj[message.type]++;
}
}
// Count quits as parts in condensed messages to reduce information density
obj.part += obj.quit;
const strings: string[] = [];
condensedTypes.forEach((type) => {
if (obj[type]) {
switch (type) {
case "chghost":
strings.push(
String(obj[type]) +
(obj[type] > 1
? " users have changed hostname"
: " user has changed hostname")
);
break;
case "join":
strings.push(
String(obj[type]) +
(obj[type] > 1 ? " users have joined" : " user has joined")
);
break;
case "part":
strings.push(
String(obj[type]) +
(obj[type] > 1 ? " users have left" : " user has left")
);
break;
case "nick":
strings.push(
String(obj[type]) +
(obj[type] > 1
? " users have changed nick"
: " user has changed nick")
);
break;
case "kick":
strings.push(
String(obj[type]) +
(obj[type] > 1 ? " users were kicked" : " user was kicked")
);
break;
case "mode":
strings.push(
String(obj[type]) +
(obj[type] > 1 ? " modes were set" : " mode was set")
);
break;
case "away":
strings.push(
"marked away " +
(obj[type] > 1 ? String(obj[type]) + " times" : "once")
);
break;
case "back":
strings.push(
"marked back " +
(obj[type] > 1 ? String(obj[type]) + " times" : "once")
);
break;
}
}
});
if (strings.length) {
let text = strings.pop();
if (strings.length) {
text = strings.join(", ") + ", and " + text!;
}
return text;
}
return "";
});
return {
isCollapsed,
condensedText,
onCollapseClick,
};
},
});
</script>

View file

@ -0,0 +1,440 @@
<template>
<div ref="chat" class="chat" tabindex="-1">
<div v-show="channel.moreHistoryAvailable" class="show-more">
<button
ref="loadMoreButton"
:disabled="channel.historyLoading || !store.state.isConnected"
class="btn"
@click="onShowMoreClick"
>
<span v-if="channel.historyLoading">Loading</span>
<span v-else>Show older messages</span>
</button>
</div>
<div
class="messages"
role="log"
aria-live="polite"
aria-relevant="additions"
@copy="onCopy"
>
<template v-for="(message, id) in condensedMessages">
<DateMarker
v-if="shouldDisplayDateMarker(message, id)"
:key="message.id + '-date'"
:message="message as any"
:focused="message.id === focused"
/>
<div
v-if="shouldDisplayUnreadMarker(Number(message.id))"
:key="message.id + '-unread'"
class="unread-marker"
>
<span class="unread-marker-text" />
</div>
<MessageCondensed
v-if="message.type === 'condensed'"
:key="message.messages[0].id"
:network="network"
:keep-scroll-position="keepScrollPosition"
:messages="message.messages"
:focused="message.id === focused"
/>
<Message
v-else
:key="message.id"
:channel="channel"
:network="network"
:message="message"
:keep-scroll-position="keepScrollPosition"
:is-previous-source="isPreviousSource(message, id)"
:focused="message.id === focused"
@toggle-link-preview="onLinkPreviewToggle"
/>
</template>
</div>
</div>
</template>
<script lang="ts">
import {condensedTypes} from "../../shared/irc";
import {ChanType} from "../../shared/types/chan";
import {MessageType, SharedMsg} from "../../shared/types/msg";
import eventbus from "../js/eventbus";
import clipboard from "../js/clipboard";
import socket from "../js/socket";
import Message from "./Message.vue";
import MessageCondensed from "./MessageCondensed.vue";
import DateMarker from "./DateMarker.vue";
import {
computed,
defineComponent,
nextTick,
onBeforeUnmount,
onBeforeUpdate,
onMounted,
onUnmounted,
PropType,
ref,
watch,
} from "vue";
import {useStore} from "../js/store";
import {ClientChan, ClientMessage, ClientNetwork, ClientLinkPreview} from "../js/types";
type CondensedMessageContainer = {
type: "condensed";
time: Date;
messages: ClientMessage[];
id?: number;
};
// TODO; move into component
let unreadMarkerShown = false;
export default defineComponent({
name: "MessageList",
components: {
Message,
MessageCondensed,
DateMarker,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
focused: Number,
},
setup(props) {
const store = useStore();
const chat = ref<HTMLDivElement | null>(null);
const loadMoreButton = ref<HTMLButtonElement | null>(null);
const historyObserver = ref<IntersectionObserver | null>(null);
const skipNextScrollEvent = ref(false);
const isWaitingForNextTick = ref(false);
const jumpToBottom = () => {
skipNextScrollEvent.value = true;
props.channel.scrolledToBottom = true;
const el = chat.value;
if (el) {
el.scrollTop = el.scrollHeight;
}
};
const onShowMoreClick = () => {
if (!store.state.isConnected) {
return;
}
let lastMessage = -1;
// Find the id of first message that isn't showInActive
// If showInActive is set, this message is actually in another channel
for (const message of props.channel.messages) {
if (!message.showInActive) {
lastMessage = message.id;
break;
}
}
props.channel.historyLoading = true;
socket.emit("more", {
target: props.channel.id,
lastId: lastMessage,
condensed: store.state.settings.statusMessages !== "shown",
});
};
const onLoadButtonObserved = (entries: IntersectionObserverEntry[]) => {
entries.forEach((entry) => {
if (!entry.isIntersecting) {
return;
}
onShowMoreClick();
});
};
nextTick(() => {
if (!chat.value) {
return;
}
if (window.IntersectionObserver) {
historyObserver.value = new window.IntersectionObserver(onLoadButtonObserved, {
root: chat.value,
});
}
jumpToBottom();
}).catch((e) => {
// eslint-disable-next-line no-console
console.error("Error in new IntersectionObserver", e);
});
const condensedMessages = computed(() => {
if (props.channel.type !== ChanType.CHANNEL && props.channel.type !== ChanType.QUERY) {
return props.channel.messages;
}
// If actions are hidden, just return a message list with them excluded
if (store.state.settings.statusMessages === "hidden") {
return props.channel.messages.filter(
(message) => !condensedTypes.has(message.type || "")
);
}
// If actions are not condensed, just return raw message list
if (store.state.settings.statusMessages !== "condensed") {
return props.channel.messages;
}
let lastCondensedContainer: CondensedMessageContainer | null = null;
const condensed: (ClientMessage | CondensedMessageContainer)[] = [];
for (const message of props.channel.messages) {
// If this message is not condensable, or its an action affecting our user,
// then just append the message to container and be done with it
if (message.self || message.highlight || !condensedTypes.has(message.type || "")) {
lastCondensedContainer = null;
condensed.push(message);
continue;
}
if (!lastCondensedContainer) {
lastCondensedContainer = {
time: message.time,
type: "condensed",
messages: [],
};
condensed.push(lastCondensedContainer);
}
lastCondensedContainer!.messages.push(message);
// Set id of the condensed container to last message id,
// which is required for the unread marker to work correctly
lastCondensedContainer!.id = message.id;
// If this message is the unread boundary, create a split condensed container
if (message.id === props.channel.firstUnread) {
lastCondensedContainer = null;
}
}
return condensed.map((message) => {
// Skip condensing single messages, it doesn't save any
// space but makes useful information harder to see
if (message.type === "condensed" && message.messages.length === 1) {
return message.messages[0];
}
return message;
});
});
const shouldDisplayDateMarker = (
message: SharedMsg | CondensedMessageContainer,
id: number
) => {
const previousMessage = condensedMessages.value[id - 1];
if (!previousMessage) {
return true;
}
const oldDate = new Date(previousMessage.time);
const newDate = new Date(message.time);
return (
oldDate.getDate() !== newDate.getDate() ||
oldDate.getMonth() !== newDate.getMonth() ||
oldDate.getFullYear() !== newDate.getFullYear()
);
};
const shouldDisplayUnreadMarker = (id: number) => {
if (!unreadMarkerShown && id > props.channel.firstUnread) {
unreadMarkerShown = true;
return true;
}
return false;
};
const isPreviousSource = (currentMessage: ClientMessage, id: number) => {
const previousMessage = condensedMessages.value[id - 1];
return (
previousMessage &&
currentMessage.type === MessageType.MESSAGE &&
previousMessage.type === MessageType.MESSAGE &&
currentMessage.from &&
previousMessage.from &&
currentMessage.from.nick === previousMessage.from.nick
);
};
const onCopy = () => {
if (chat.value) {
clipboard(chat.value);
}
};
const keepScrollPosition = async () => {
// If we are already waiting for the next tick to force scroll position,
// we have no reason to perform more checks and set it again in the next tick
if (isWaitingForNextTick.value) {
return;
}
const el = chat.value;
if (!el) {
return;
}
if (!props.channel.scrolledToBottom) {
if (props.channel.historyLoading) {
const heightOld = el.scrollHeight - el.scrollTop;
isWaitingForNextTick.value = true;
await nextTick();
isWaitingForNextTick.value = false;
skipNextScrollEvent.value = true;
el.scrollTop = el.scrollHeight - heightOld;
}
return;
}
isWaitingForNextTick.value = true;
await nextTick();
isWaitingForNextTick.value = false;
jumpToBottom();
};
const onLinkPreviewToggle = async (preview: ClientLinkPreview, message: ClientMessage) => {
await keepScrollPosition();
// Tell the server we're toggling so it remembers at page reload
socket.emit("msg:preview:toggle", {
target: props.channel.id,
msgId: message.id,
link: preview.link,
shown: preview.shown,
});
};
const handleScroll = () => {
// Setting scrollTop also triggers scroll event
// We don't want to perform calculations for that
if (skipNextScrollEvent.value) {
skipNextScrollEvent.value = false;
return;
}
const el = chat.value;
if (!el) {
return;
}
props.channel.scrolledToBottom = el.scrollHeight - el.scrollTop - el.offsetHeight <= 30;
};
const handleResize = () => {
// Keep message list scrolled to bottom on resize
if (props.channel.scrolledToBottom) {
jumpToBottom();
}
};
onMounted(() => {
chat.value?.addEventListener("scroll", handleScroll, {passive: true});
eventbus.on("resize", handleResize);
void nextTick(() => {
if (historyObserver.value && loadMoreButton.value) {
historyObserver.value.observe(loadMoreButton.value);
}
});
});
watch(
() => props.channel.id,
() => {
props.channel.scrolledToBottom = true;
// Re-add the intersection observer to trigger the check again on channel switch
// Otherwise if last channel had the button visible, switching to a new channel won't trigger the history
if (historyObserver.value && loadMoreButton.value) {
historyObserver.value.unobserve(loadMoreButton.value);
historyObserver.value.observe(loadMoreButton.value);
}
}
);
watch(
() => props.channel.messages,
async () => {
await keepScrollPosition();
},
{
deep: true,
}
);
watch(
() => props.channel.pendingMessage,
async () => {
// Keep the scroll stuck when input gets resized while typing
await keepScrollPosition();
}
);
onBeforeUpdate(() => {
unreadMarkerShown = false;
});
onBeforeUnmount(() => {
eventbus.off("resize", handleResize);
chat.value?.removeEventListener("scroll", handleScroll);
});
onUnmounted(() => {
if (historyObserver.value) {
historyObserver.value.disconnect();
}
});
return {
chat,
store,
onShowMoreClick,
loadMoreButton,
onCopy,
condensedMessages,
shouldDisplayDateMarker,
shouldDisplayUnreadMarker,
keepScrollPosition,
isPreviousSource,
jumpToBottom,
onLinkPreviewToggle,
};
},
});
</script>

View file

@ -0,0 +1,175 @@
<template>
<form :class="['message-search', {opened: searchOpened}]" @submit.prevent="searchMessages">
<div class="input-wrapper">
<input
ref="searchInputField"
v-model="searchInput"
type="search"
name="search"
class="input"
placeholder="Search messages…"
@blur="closeSearch"
@keyup.esc="closeSearch"
/>
</div>
<button
v-if="!onSearchPage"
class="search"
type="button"
aria-label="Search messages in this channel"
@mousedown.prevent="toggleSearch"
/>
</form>
</template>
<style>
form.message-search {
display: flex;
}
form.message-search .input-wrapper {
display: flex;
}
form.message-search input {
width: 100%;
height: auto !important;
margin: 7px 0;
border: 0;
color: inherit;
background-color: #fafafa;
appearance: none;
}
form.message-search input::placeholder {
color: rgba(0, 0, 0, 0.35);
}
@media (min-width: 480px) {
form.message-search input {
min-width: 140px;
}
form.message-search input:focus {
min-width: 220px;
}
}
form.message-search .input-wrapper {
position: absolute;
top: 45px;
left: 0;
right: 0;
z-index: 1;
height: 0;
overflow: hidden;
background: var(--window-bg-color);
}
form.message-search .input-wrapper input {
margin: 7px;
}
form.message-search.opened .input-wrapper {
height: 50px;
}
#chat form.message-search button {
display: flex;
color: #607992;
}
</style>
<script lang="ts">
import {computed, defineComponent, onMounted, PropType, ref, watch} from "vue";
import {useRoute, useRouter} from "vue-router";
import eventbus from "../js/eventbus";
import {ClientNetwork, ClientChan} from "../js/types";
export default defineComponent({
name: "MessageSearchForm",
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup(props) {
const searchOpened = ref(false);
const searchInput = ref("");
const router = useRouter();
const route = useRoute();
const searchInputField = ref<HTMLInputElement | null>(null);
const onSearchPage = computed(() => {
return route.name === "SearchResults";
});
watch(route, (newValue) => {
if (newValue.query.q) {
searchInput.value = String(newValue.query.q);
}
});
onMounted(() => {
searchInput.value = String(route.query.q || "");
searchOpened.value = onSearchPage.value;
if (searchInputField.value && !searchInput.value && searchOpened.value) {
searchInputField.value.focus();
}
});
const closeSearch = () => {
if (!onSearchPage.value) {
searchInput.value = "";
searchOpened.value = false;
}
};
const toggleSearch = () => {
if (searchOpened.value) {
searchInputField.value?.blur();
return;
}
searchOpened.value = true;
searchInputField.value?.focus();
};
const searchMessages = (event: Event) => {
event.preventDefault();
if (!searchInput.value) {
return;
}
router
.push({
name: "SearchResults",
params: {
id: props.channel.id,
},
query: {
q: searchInput.value,
},
})
.catch((err) => {
if (err.name === "NavigationDuplicated") {
// Search for the same query again
eventbus.emit("re-search");
}
});
};
return {
searchOpened,
searchInput,
searchInputField,
closeSearch,
toggleSearch,
searchMessages,
onSearchPage,
};
},
});
</script>

View file

@ -0,0 +1,35 @@
<template>
<span class="content">
<ParsedMessage v-if="message.self" :network="network" :message="message" />
<template v-else>
<Username :user="message.from" />
is away
<i class="away-message">(<ParsedMessage :network="network" :message="message" />)</i>
</template>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import type {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeAway",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,34 @@
<template>
<span class="content">
<ParsedMessage v-if="message.self" :network="network" :message="message" />
<template v-else>
<Username :user="message.from" />
is back
</template>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeBack",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,38 @@
<template>
<span class="content">
<Username :user="message.from" />
has changed
<span v-if="message.new_ident"
>username to <b>{{ message.new_ident }}</b></span
>
<span v-if="message.new_host"
>hostname to
<i class="hostmask"><ParsedMessage :network="network" :text="message.new_host" /></i
></span>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeChangeHost",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,31 @@
<template>
<span class="content">
<Username :user="message.from" />
{{ `&#32;` }}<span class="ctcp-message"><ParsedMessage :text="message.ctcpMessage" /></span>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeCTCP",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,32 @@
<template>
<span class="content">
<Username :user="message.from" />
sent a <abbr title="Client-to-client protocol">CTCP</abbr> request:
<span class="ctcp-message"><ParsedMessage :text="message.ctcpMessage" /></span>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeRequestCTCP",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,77 @@
<template>
<span class="content">
<ParsedMessage :network="network" :message="message" :text="errorMessage" />
</span>
</template>
<script lang="ts">
import ParsedMessage from "../ParsedMessage.vue";
import {computed, defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
export default defineComponent({
name: "MessageTypeError",
components: {
ParsedMessage,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
setup(props) {
const errorMessage = computed(() => {
// TODO: enforce chan and nick fields so that we can get rid of that
const chan = props.message.channel || "!UNKNOWN_CHAN";
const nick = props.message.nick || "!UNKNOWN_NICK";
switch (props.message.error) {
case "bad_channel_key":
return `Cannot join ${chan} - Bad channel key.`;
case "banned_from_channel":
return `Cannot join ${chan} - You have been banned from the channel.`;
case "cannot_send_to_channel":
return `Cannot send to channel ${chan}`;
case "channel_is_full":
return `Cannot join ${chan} - Channel is full.`;
case "chanop_privs_needed":
return "Cannot perform action: You're not a channel operator.";
case "invite_only_channel":
return `Cannot join ${chan} - Channel is invite only.`;
case "no_such_nick":
return `User ${nick} hasn't logged in or does not exist.`;
case "not_on_channel":
return "Cannot perform action: You're not on the channel.";
case "password_mismatch":
return "Password mismatch.";
case "too_many_channels":
return `Cannot join ${chan} - You've already reached the maximum number of channels allowed.`;
case "unknown_command":
// TODO: not having message.command should never happen, so force existence
return `Unknown command: ${props.message.command || "!UNDEFINED_COMMAND_BUG"}`;
case "user_not_in_channel":
return `User ${nick} is not on the channel.`;
case "user_on_channel":
return `User ${nick} is already on the channel.`;
default:
if (props.message.reason) {
return `${props.message.reason} (${
props.message.error || "!UNDEFINED_ERR"
})`;
}
return props.message.error;
}
});
return {
errorMessage,
};
},
});
</script>

View file

@ -0,0 +1,11 @@
// This creates a version of `require()` in the context of the current
// directory, so we iterate over its content, which is a map statically built by
// Webpack.
// Second argument says it's recursive, third makes sure we only load templates.
const requireViews = require.context(".", false, /\.vue$/);
export default requireViews.keys().reduce((acc: Record<string, any>, path) => {
acc["message-" + path.substring(2, path.length - 4)] = requireViews(path).default;
return acc;
}, {});

View file

@ -0,0 +1,34 @@
<template>
<span class="content">
<Username :user="message.from" />
invited
<span v-if="message.invitedYou">you</span>
<Username v-else :user="message.target" />
to <ParsedMessage :network="network" :text="message.channel" />
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeInvite",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,38 @@
<template>
<span class="content">
<Username :user="message.from" />
<i class="hostmask">&#32;(<ParsedMessage :network="network" :text="message.hostmask" />)</i>
<template v-if="message.account">
<i class="account">&#32;[{{ message.account }}]</i>
</template>
<template v-if="message.gecos">
<i class="realname">&#32;({{ message.gecos }})</i>
</template>
has joined the channel
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeJoin",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,35 @@
<template>
<span class="content">
<Username :user="message.from" />
has kicked
<Username :user="message.target" />
<i v-if="message.text" class="part-reason"
>&#32;(<ParsedMessage :network="network" :message="message" />)</i
>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeKick",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,32 @@
<template>
<span class="content">
<Username :user="message.from" />
sets mode
<ParsedMessage :message="message" />
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeMode",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,24 @@
<template>
<span class="content">
Channel mode is <b>{{ message.text }}</b>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
export default defineComponent({
name: "MessageChannelMode",
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,24 @@
<template>
<span class="content">
Your user mode is <b>{{ message.raw_modes }}</b>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
export default defineComponent({
name: "MessageChannelMode",
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,49 @@
<template>
<span class="content">
<span class="text"><ParsedMessage :network="network" :text="cleanText" /></span>
</span>
</template>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
export default defineComponent({
name: "MessageTypeMonospaceBlock",
components: {
ParsedMessage,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
setup(props) {
const cleanText = computed(() => {
let lines = props.message.text.split("\n");
// If all non-empty lines of the MOTD start with a hyphen (which is common
// across MOTDs), remove all the leading hyphens.
if (lines.every((line) => line === "" || line[0] === "-")) {
lines = lines.map((line) => line.substring(2));
}
// Remove empty lines around the MOTD (but not within it)
return lines
.map((line) => line.replace(/\s*$/, ""))
.join("\n")
.replace(/^[\r\n]+|[\r\n]+$/g, "");
});
return {
cleanText,
};
},
});
</script>

View file

@ -0,0 +1,30 @@
<template>
<span class="content">
<Username :user="message.from" />
is now known as
<Username :user="{nick: message.new_nick, mode: message.from.mode}" />
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeNick",
components: {
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,35 @@
<template>
<span class="content">
<Username :user="message.from" />
<i class="hostmask"> (<ParsedMessage :network="network" :text="message.hostmask" />)</i> has
left the channel
<i v-if="message.text" class="part-reason"
>(<ParsedMessage :network="network" :message="message" />)</i
>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypePart",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,35 @@
<template>
<span class="content">
<Username :user="message.from" />
<i class="hostmask"> (<ParsedMessage :network="network" :text="message.hostmask" />)</i> has
quit
<i v-if="message.text" class="quit-reason"
>(<ParsedMessage :network="network" :message="message" />)</i
>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import type {ClientMessage, ClientNetwork} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeQuit",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,22 @@
<template>
<span class="content">{{ message.text }}</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
export default defineComponent({
name: "MessageTypeRaw",
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,36 @@
<template>
<span class="content">
<template v-if="message.from && message.from.nick"
><Username :user="message.from" /> has changed the topic to:
</template>
<template v-else>The topic is: </template>
<span v-if="message.text" class="new-topic"
><ParsedMessage :network="network" :message="message"
/></span>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import type {ClientMessage, ClientNetwork} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeTopic",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
});
</script>

View file

@ -0,0 +1,38 @@
<template>
<span class="content">
Topic set by
<Username :user="message.from" />
on {{ messageTimeLocale }}
</span>
</template>
<script lang="ts">
import localetime from "../../js/helpers/localetime";
import {computed, defineComponent, PropType} from "vue";
import {ClientNetwork, ClientMessage} from "../../js/types";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeTopicSetBy",
components: {
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
setup(props) {
const messageTimeLocale = computed(() => localetime(props.message.when));
return {
messageTimeLocale,
};
},
});
</script>

View file

@ -0,0 +1,150 @@
<template>
<span class="content">
<p>
<Username :user="{nick: message.whois.nick}" />
<span v-if="message.whois.whowas"> is offline, last information:</span>
</p>
<dl class="whois">
<template v-if="message.whois.account">
<dt>Logged in as:</dt>
<dd>{{ message.whois.account }}</dd>
</template>
<dt>Host mask:</dt>
<dd class="hostmask">
<ParsedMessage
:network="network"
:text="message.whois.ident + '@' + message.whois.hostname"
/>
</dd>
<template v-if="message.whois.actual_hostname">
<dt>Actual host:</dt>
<dd class="hostmask">
<a
:href="'https://ipinfo.io/' + message.whois.actual_ip"
target="_blank"
rel="noopener"
>{{ message.whois.actual_ip }}</a
>
<i v-if="message.whois.actual_hostname != message.whois.actual_ip">
({{ message.whois.actual_hostname }})</i
>
</dd>
</template>
<template v-if="message.whois.actual_username">
<dt>Actual username:</dt>
<dd>{{ message.whois.actual_username }}</dd>
</template>
<template v-if="message.whois.real_name">
<dt>Real name:</dt>
<dd><ParsedMessage :network="network" :text="message.whois.real_name" /></dd>
</template>
<template v-if="message.whois.registered_nick">
<dt>Registered nick:</dt>
<dd>{{ message.whois.registered_nick }}</dd>
</template>
<template v-if="message.whois.channels">
<dt>Channels:</dt>
<dd><ParsedMessage :network="network" :text="message.whois.channels" /></dd>
</template>
<template v-if="message.whois.modes">
<dt>Modes:</dt>
<dd>{{ message.whois.modes }}</dd>
</template>
<template v-if="message.whois.special">
<template v-for="special in message.whois.special" :key="special">
<dt>Special:</dt>
<dd>{{ special }}</dd>
</template>
</template>
<template v-if="message.whois.operator">
<dt>Operator:</dt>
<dd>{{ message.whois.operator }}</dd>
</template>
<template v-if="message.whois.helpop">
<dt>Available for help:</dt>
<dd>Yes</dd>
</template>
<template v-if="message.whois.bot">
<dt>Is a bot:</dt>
<dd>Yes</dd>
</template>
<template v-if="message.whois.away">
<dt>Away:</dt>
<dd><ParsedMessage :network="network" :text="message.whois.away" /></dd>
</template>
<template v-if="message.whois.secure">
<dt>Secure connection:</dt>
<dd>Yes</dd>
</template>
<template v-if="message.whois.certfps">
<template v-for="certfp in message.whois.certfps" :key="certfp">
<dt>Certificate:</dt>
<dd>{{ certfp }}</dd>
</template>
</template>
<template v-if="message.whois.server">
<dt>Connected to:</dt>
<dd>
{{ message.whois.server }} <i>({{ message.whois.server_info }})</i>
</dd>
</template>
<template v-if="message.whois.logonTime">
<dt>Connected at:</dt>
<dd>{{ localetime(message.whois.logonTime) }}</dd>
</template>
<template v-if="message.whois.idle">
<dt>Idle since:</dt>
<dd>{{ localetime(message.whois.idleTime) }}</dd>
</template>
</dl>
</span>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import localetime from "../../js/helpers/localetime";
import {ClientNetwork, ClientMessage} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
import Username from "../Username.vue";
export default defineComponent({
name: "MessageTypeWhois",
components: {
ParsedMessage,
Username,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
message: {
type: Object as PropType<ClientMessage>,
required: true,
},
},
setup() {
return {
localetime: (date: Date) => localetime(date),
};
},
});
</script>

View file

@ -0,0 +1,572 @@
<template>
<div id="connect" class="window" role="tabpanel" aria-label="Connect">
<div class="header">
<SidebarToggle />
</div>
<form class="container" method="post" action="" @submit.prevent="onSubmit">
<h1 class="title">
<template v-if="defaults.uuid">
<input v-model="defaults.uuid" type="hidden" name="uuid" />
Edit {{ defaults.name }}
</template>
<template v-else>
Connect
<template
v-if="config?.lockNetwork && store?.state.serverConfiguration?.public"
>
to {{ defaults.name }}
</template>
</template>
</h1>
<template v-if="!config?.lockNetwork">
<h2>Network settings</h2>
<div class="connect-row">
<label for="connect:name">Name</label>
<input
id="connect:name"
v-model.trim="defaults.name"
class="input"
name="name"
maxlength="100"
/>
</div>
<div class="connect-row">
<label for="connect:host">Server</label>
<div class="input-wrap">
<input
id="connect:host"
v-model.trim="defaults.host"
class="input"
name="host"
aria-label="Server address"
maxlength="255"
required
/>
<span id="connect:portseparator">:</span>
<input
id="connect:port"
v-model="defaults.port"
class="input"
type="number"
min="1"
max="65535"
name="port"
aria-label="Server port"
/>
</div>
</div>
<div class="connect-row">
<label for="connect:password">Password</label>
<RevealPassword
v-slot:default="slotProps"
class="input-wrap password-container"
>
<input
id="connect:password"
v-model="defaults.password"
class="input"
:type="slotProps.isVisible ? 'text' : 'password'"
placeholder="Server password (optional)"
name="password"
maxlength="300"
/>
</RevealPassword>
</div>
<div class="connect-row">
<label></label>
<div class="input-wrap">
<label class="tls">
<input
v-model="defaults.tls"
type="checkbox"
name="tls"
:disabled="defaults.hasSTSPolicy"
/>
Use secure connection (TLS)
<span
v-if="defaults.hasSTSPolicy"
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="This network has a strict transport security policy, you will be unable to disable TLS"
>🔒 STS</span
>
</label>
<label class="tls">
<input
v-model="defaults.rejectUnauthorized"
type="checkbox"
name="rejectUnauthorized"
/>
Only allow trusted certificates
</label>
</div>
</div>
<h2>Proxy Settings</h2>
<div class="connect-row">
<label></label>
<div class="input-wrap">
<label for="connect:proxyEnabled">
<input
id="connect:proxyEnabled"
v-model="defaults.proxyEnabled"
type="checkbox"
name="proxyEnabled"
/>
Enable Proxy
</label>
</div>
</div>
<template v-if="defaults.proxyEnabled">
<div class="connect-row">
<label for="connect:proxyHost">SOCKS Address</label>
<div class="input-wrap">
<input
id="connect:proxyHost"
v-model.trim="defaults.proxyHost"
class="input"
name="proxyHost"
aria-label="Proxy host"
maxlength="255"
/>
<span id="connect:proxyPortSeparator">:</span>
<input
id="connect:proxyPort"
v-model="defaults.proxyPort"
class="input"
type="number"
min="1"
max="65535"
name="proxyPort"
aria-label="SOCKS port"
/>
</div>
</div>
<div class="connect-row">
<label for="connect:proxyUsername">Proxy username</label>
<input
id="connect:proxyUsername"
ref="proxyUsernameInput"
v-model.trim="defaults.proxyUsername"
class="input username"
name="proxyUsername"
maxlength="100"
placeholder="Proxy username"
/>
</div>
<div class="connect-row">
<label for="connect:proxyPassword">Proxy password</label>
<RevealPassword
v-slot:default="slotProps"
class="input-wrap password-container"
>
<input
id="connect:proxyPassword"
ref="proxyPassword"
v-model="defaults.proxyPassword"
class="input"
:type="slotProps.isVisible ? 'text' : 'password'"
placeholder="Proxy password"
name="proxyPassword"
maxlength="300"
/>
</RevealPassword>
</div>
</template>
</template>
<template v-else-if="config.lockNetwork && !store.state.serverConfiguration?.public">
<h2>Network settings</h2>
<div class="connect-row">
<label for="connect:name">Name</label>
<input
id="connect:name"
v-model.trim="defaults.name"
class="input"
name="name"
maxlength="100"
/>
</div>
<div class="connect-row">
<label for="connect:password">Password</label>
<RevealPassword
v-slot:default="slotProps"
class="input-wrap password-container"
>
<input
id="connect:password"
v-model="defaults.password"
class="input"
:type="slotProps.isVisible ? 'text' : 'password'"
placeholder="Server password (optional)"
name="password"
maxlength="300"
/>
</RevealPassword>
</div>
</template>
<h2>User preferences</h2>
<div class="connect-row">
<label for="connect:nick">Nick</label>
<input
id="connect:nick"
v-model="defaults.nick"
class="input nick"
name="nick"
pattern="[^\s:!@]+"
maxlength="100"
required
@input="onNickChanged"
/>
</div>
<template v-if="!config?.useHexIp">
<div class="connect-row">
<label for="connect:username">Username</label>
<input
id="connect:username"
ref="usernameInput"
v-model.trim="defaults.username"
class="input username"
name="username"
maxlength="100"
/>
</div>
</template>
<div class="connect-row">
<label for="connect:realname">Real name</label>
<input
id="connect:realname"
v-model.trim="defaults.realname"
class="input"
name="realname"
maxlength="300"
/>
</div>
<div class="connect-row">
<label for="connect:leaveMessage">Leave message</label>
<input
id="connect:leaveMessage"
v-model.trim="defaults.leaveMessage"
autocomplete="off"
class="input"
name="leaveMessage"
placeholder="The Lounge - https://thelounge.chat"
/>
</div>
<template v-if="defaults.uuid && !store.state.serverConfiguration?.public">
<div class="connect-row">
<label for="connect:commands">
Commands
<span
class="tooltipped tooltipped-ne tooltipped-no-delay"
aria-label="One /command per line.
Each command will be executed in
the server tab on new connection"
>
<button class="extra-help" />
</span>
</label>
<textarea
id="connect:commands"
ref="commandsInput"
autocomplete="off"
:value="defaults.commands ? defaults.commands.join('\n') : ''"
class="input"
name="commands"
@input="resizeCommandsInput"
/>
</div>
</template>
<template v-else-if="!defaults.uuid">
<div class="connect-row">
<label for="connect:channels">Channels</label>
<input
id="connect:channels"
v-model.trim="defaults.join"
class="input"
name="join"
/>
</div>
</template>
<template v-if="store.state.serverConfiguration?.public">
<template v-if="config?.lockNetwork">
<div class="connect-row">
<label></label>
<div class="input-wrap">
<label class="tls">
<input v-model="displayPasswordField" type="checkbox" />
I have a password
</label>
</div>
</div>
<div v-if="displayPasswordField" class="connect-row">
<label for="connect:password">Password</label>
<RevealPassword
v-slot:default="slotProps"
class="input-wrap password-container"
>
<input
id="connect:password"
ref="publicPassword"
v-model="defaults.password"
class="input"
:type="slotProps.isVisible ? 'text' : 'password'"
placeholder="Server password (optional)"
name="password"
maxlength="300"
/>
</RevealPassword>
</div>
</template>
</template>
<template v-else>
<h2 id="label-auth">Authentication</h2>
<div class="connect-row connect-auth" role="group" aria-labelledby="label-auth">
<label class="opt">
<input
:checked="!defaults.sasl"
type="radio"
name="sasl"
value=""
@change="setSaslAuth('')"
/>
No authentication
</label>
<label class="opt">
<input
:checked="defaults.sasl === 'plain'"
type="radio"
name="sasl"
value="plain"
@change="setSaslAuth('plain')"
/>
Username + password (SASL PLAIN)
</label>
<label
v-if="!store.state.serverConfiguration?.public && defaults.tls"
class="opt"
>
<input
:checked="defaults.sasl === 'external'"
type="radio"
name="sasl"
value="external"
@change="setSaslAuth('external')"
/>
Client certificate (SASL EXTERNAL)
</label>
</div>
<template v-if="defaults.sasl === 'plain'">
<div class="connect-row">
<label for="connect:username">Account</label>
<input
id="connect:saslAccount"
v-model.trim="defaults.saslAccount"
class="input"
name="saslAccount"
maxlength="100"
required
/>
</div>
<div class="connect-row">
<label for="connect:password">Password</label>
<RevealPassword
v-slot:default="slotProps"
class="input-wrap password-container"
>
<input
id="connect:saslPassword"
v-model="defaults.saslPassword"
class="input"
:type="slotProps.isVisible ? 'text' : 'password'"
name="saslPassword"
maxlength="300"
required
/>
</RevealPassword>
</div>
</template>
<div v-else-if="defaults.sasl === 'external'" class="connect-sasl-external">
<p>The Lounge automatically generates and manages the client certificate.</p>
<p>
On the IRC server, you will need to tell the services to attach the
certificate fingerprint (certfp) to your account, for example:
</p>
<pre><code>/msg NickServ CERT ADD</code></pre>
</div>
</template>
<div>
<button type="submit" class="btn" :disabled="disabled ? true : false">
<template v-if="defaults.uuid">Save network</template>
<template v-else>Connect</template>
</button>
</div>
</form>
</div>
</template>
<style>
#connect .connect-auth {
display: block;
margin-bottom: 10px;
}
#connect .connect-auth .opt {
display: block;
width: 100%;
}
#connect .connect-auth input {
margin: 3px 10px 0 0;
}
#connect .connect-sasl-external {
padding: 10px;
border-radius: 2px;
background-color: #d9edf7;
color: #31708f;
}
#connect .connect-sasl-external pre {
margin: 0;
user-select: text;
}
</style>
<script lang="ts">
import RevealPassword from "./RevealPassword.vue";
import SidebarToggle from "./SidebarToggle.vue";
import {defineComponent, nextTick, PropType, ref, watch} from "vue";
import {useStore} from "../js/store";
import {ClientNetwork} from "../js/types";
export type NetworkFormDefaults = Partial<ClientNetwork> & {
join?: string;
};
export default defineComponent({
name: "NetworkForm",
components: {
RevealPassword,
SidebarToggle,
},
props: {
handleSubmit: {
type: Function as PropType<(network: ClientNetwork) => void>,
required: true,
},
defaults: {
type: Object as PropType<NetworkFormDefaults>,
required: true,
},
disabled: Boolean,
},
setup(props) {
const store = useStore();
const config = ref(store.state.serverConfiguration);
const previousUsername = ref(props.defaults?.username);
const displayPasswordField = ref(false);
const publicPassword = ref<HTMLInputElement | null>(null);
watch(displayPasswordField, (newValue) => {
if (newValue) {
void nextTick(() => {
publicPassword.value?.focus();
});
}
});
const commandsInput = ref<HTMLInputElement | null>(null);
const resizeCommandsInput = () => {
if (!commandsInput.value) {
return;
}
// Reset height first so it can down size
commandsInput.value.style.height = "";
// 2 pixels to account for the border
commandsInput.value.style.height = `${Math.ceil(
commandsInput.value.scrollHeight + 2
)}px`;
};
watch(
// eslint-disable-next-line
() => props.defaults?.commands,
() => {
void nextTick(() => {
resizeCommandsInput();
});
}
);
watch(
// eslint-disable-next-line
() => props.defaults?.tls,
(isSecureChecked) => {
const ports = [6667, 6697];
const newPort = isSecureChecked ? 0 : 1;
// If you disable TLS and current port is 6697,
// set it to 6667, and vice versa
if (props.defaults?.port === ports[newPort]) {
props.defaults.port = ports[1 - newPort];
}
}
);
const setSaslAuth = (type: string) => {
if (props.defaults) {
props.defaults.sasl = type;
}
};
const usernameInput = ref<HTMLInputElement | null>(null);
const onNickChanged = (event: Event) => {
if (!usernameInput.value) {
return;
}
const usernameRef = usernameInput.value;
if (!usernameRef.value || usernameRef.value === previousUsername.value) {
usernameRef.value = (event.target as HTMLInputElement)?.value;
}
previousUsername.value = (event.target as HTMLInputElement)?.value;
};
const onSubmit = (event: Event) => {
const formData = new FormData(event.target as HTMLFormElement);
const data: Partial<ClientNetwork> = {};
formData.forEach((value, key) => {
data[key] = value;
});
props.handleSubmit(data as ClientNetwork);
};
return {
store,
config,
displayPasswordField,
publicPassword,
commandsInput,
resizeCommandsInput,
setSaslAuth,
usernameInput,
onNickChanged,
onSubmit,
};
},
});
</script>

View file

@ -0,0 +1,576 @@
<template>
<div
v-if="store.state.networks.length === 0"
class="empty"
role="navigation"
aria-label="Network and Channel list"
>
You are not connected to any networks yet.
</div>
<div v-else ref="networklist" role="navigation" aria-label="Network and Channel list">
<div class="jump-to-input">
<input
ref="searchInput"
:value="searchText"
placeholder="Jump to..."
type="search"
class="search input mousetrap"
aria-label="Search among the channel list"
tabindex="-1"
@input="setSearchText"
@keydown.up="navigateResults($event, -1)"
@keydown.down="navigateResults($event, 1)"
@keydown.page-up="navigateResults($event, -10)"
@keydown.page-down="navigateResults($event, 10)"
@keydown.enter="selectResult"
@keydown.escape="deactivateSearch"
@focus="activateSearch"
/>
</div>
<div v-if="searchText" class="jump-to-results">
<div v-if="results.length">
<div
v-for="item in results"
:key="item.channel.id"
@mouseenter="setActiveSearchItem(item.channel)"
@click.prevent="selectResult"
>
<Channel
v-if="item.channel.type !== 'lobby'"
:channel="item.channel"
:network="item.network"
:active="item.channel === activeSearchItem"
:is-filtering="true"
/>
<NetworkLobby
v-else
:channel="item.channel"
:network="item.network"
:active="item.channel === activeSearchItem"
:is-filtering="true"
/>
</div>
</div>
<div v-else class="no-results">No results found.</div>
</div>
<Draggable
v-else
:list="store.state.networks"
:delay="LONG_TOUCH_DURATION"
:delay-on-touch-only="true"
:touch-start-threshold="10"
handle=".channel-list-item[data-type='lobby']"
draggable=".network"
ghost-class="ui-sortable-ghost"
drag-class="ui-sortable-dragging"
group="networks"
class="networks"
item-key="uuid"
@change="onNetworkSort"
@choose="onDraggableChoose"
@unchoose="onDraggableUnchoose"
>
<template v-slot:item="{element: network}">
<div
:id="'network-' + network.uuid"
:key="network.uuid"
:class="{
collapsed: network.isCollapsed,
'not-connected': !network.status.connected,
'not-secure': !network.status.secure,
}"
class="network"
role="region"
aria-live="polite"
@touchstart="onDraggableTouchStart"
@touchmove="onDraggableTouchMove"
@touchend="onDraggableTouchEnd"
@touchcancel="onDraggableTouchEnd"
>
<NetworkLobby
:network="network"
:is-join-channel-shown="network.isJoinChannelShown"
:active="
store.state.activeChannel &&
network.channels[0] === store.state.activeChannel.channel
"
@toggle-join-channel="
network.isJoinChannelShown = !network.isJoinChannelShown
"
/>
<JoinChannel
v-if="network.isJoinChannelShown"
:network="network"
:channel="network.channels[0]"
@toggle-join-channel="
network.isJoinChannelShown = !network.isJoinChannelShown
"
/>
<Draggable
draggable=".channel-list-item"
ghost-class="ui-sortable-ghost"
drag-class="ui-sortable-dragging"
:group="network.uuid"
:list="network.channels"
:delay="LONG_TOUCH_DURATION"
:delay-on-touch-only="true"
:touch-start-threshold="10"
class="channels"
item-key="name"
@change="onChannelSort"
@choose="onDraggableChoose"
@unchoose="onDraggableUnchoose"
>
<template v-slot:item="{element: channel, index}">
<Channel
v-if="index > 0"
:key="channel.id"
:data-item="channel.id"
:channel="channel"
:network="network"
:active="
store.state.activeChannel &&
channel === store.state.activeChannel.channel
"
/>
</template>
</Draggable>
</div>
</template>
</Draggable>
</div>
</template>
<style>
.jump-to-input {
margin: 8px;
position: relative;
}
.jump-to-input .input {
margin: 0;
width: 100%;
border: 0;
color: #fff;
background-color: rgba(255, 255, 255, 0.1);
padding-right: 35px;
appearance: none;
}
.jump-to-input .input::placeholder {
color: rgba(255, 255, 255, 0.35);
}
.jump-to-input::before {
content: "\f002"; /* http://fontawesome.io/icon/search/ */
color: rgba(255, 255, 255, 0.35);
position: absolute;
right: 8px;
top: 0;
bottom: 0;
pointer-events: none;
line-height: 35px !important;
}
.jump-to-results {
margin: 0;
padding: 0;
list-style: none;
overflow: auto;
}
.jump-to-results .no-results {
margin: 14px 8px;
text-align: center;
}
.jump-to-results .channel-list-item.active {
cursor: pointer;
}
.jump-to-results .channel-list-item .add-channel,
.jump-to-results .channel-list-item .close-tooltip {
display: none;
}
.jump-to-results .channel-list-item[data-type="lobby"] {
padding: 8px 14px;
}
.jump-to-results .channel-list-item[data-type="lobby"]::before {
content: "\f233";
}
</style>
<script lang="ts">
import {computed, watch, defineComponent, nextTick, onBeforeUnmount, onMounted, ref} from "vue";
import Mousetrap from "mousetrap";
import Draggable from "./Draggable.vue";
import {filter as fuzzyFilter} from "fuzzy";
import NetworkLobby from "./NetworkLobby.vue";
import Channel from "./Channel.vue";
import JoinChannel from "./JoinChannel.vue";
import socket from "../js/socket";
import collapseNetworkHelper from "../js/helpers/collapseNetwork";
import isIgnoredKeybind from "../js/helpers/isIgnoredKeybind";
import distance from "../js/helpers/distance";
import eventbus from "../js/eventbus";
import {ClientChan, NetChan} from "../js/types";
import {useStore} from "../js/store";
import {switchToChannel} from "../js/router";
import Sortable from "sortablejs";
export default defineComponent({
name: "NetworkList",
components: {
JoinChannel,
NetworkLobby,
Channel,
Draggable,
},
setup() {
const store = useStore();
const searchText = ref("");
const activeSearchItem = ref<ClientChan | null>();
// Number of milliseconds a touch has to last to be considered long
const LONG_TOUCH_DURATION = 500;
const startDrag = ref<[number, number] | null>();
const searchInput = ref<HTMLInputElement | null>(null);
const networklist = ref<HTMLDivElement | null>(null);
const sidebarWasClosed = ref(false);
const moveItemInArray = <T>(array: T[], from: number, to: number) => {
const item = array.splice(from, 1)[0];
array.splice(to, 0, item);
};
const items = computed(() => {
const newItems: NetChan[] = [];
for (const network of store.state.networks) {
for (const channel of network.channels) {
if (
store.state.activeChannel &&
channel === store.state.activeChannel.channel
) {
continue;
}
newItems.push({network, channel});
}
}
return newItems;
});
const results = computed(() => {
const newResults = fuzzyFilter(searchText.value, items.value, {
extract: (item) => item.channel.name,
}).map((item) => item.original);
return newResults;
});
const collapseNetwork = (event: Mousetrap.ExtendedKeyboardEvent) => {
if (isIgnoredKeybind(event)) {
return true;
}
if (store.state.activeChannel) {
collapseNetworkHelper(store.state.activeChannel.network, true);
}
return false;
};
const expandNetwork = (event: Mousetrap.ExtendedKeyboardEvent) => {
if (isIgnoredKeybind(event)) {
return true;
}
if (store.state.activeChannel) {
collapseNetworkHelper(store.state.activeChannel.network, false);
}
return false;
};
const onNetworkSort = (e: Sortable.SortableEvent) => {
const {oldIndex, newIndex} = e;
if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex) {
return;
}
moveItemInArray(store.state.networks, oldIndex, newIndex);
socket.emit("sort:networks", {
order: store.state.networks.map((n) => n.uuid),
});
};
const onChannelSort = (e: Sortable.SortableEvent) => {
let {oldIndex, newIndex} = e;
if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex) {
return;
}
// Indexes are offset by one due to the lobby
oldIndex += 1;
newIndex += 1;
const unparsedId = e.item.getAttribute("data-item");
if (!unparsedId) {
return;
}
const id = parseInt(unparsedId);
const netChan = store.getters.findChannel(id);
if (!netChan) {
return;
}
moveItemInArray(netChan.network.channels, oldIndex, newIndex);
socket.emit("sort:channels", {
network: netChan.network.uuid,
order: netChan.network.channels.map((c) => c.id),
});
};
const isTouchEvent = (event: any): boolean => {
// This is the same way Sortable.js detects a touch event. See
// SortableJS/Sortable@daaefeda:/src/Sortable.js#L465
return !!(
(event.touches && event.touches[0]) ||
(event.pointerType && event.pointerType === "touch")
);
};
const onDraggableChoose = (event: any) => {
const original = event.originalEvent;
if (isTouchEvent(original)) {
// onDrag is only triggered when the user actually moves the
// dragged object but onChoose is triggered as soon as the
// item is eligible for dragging. This gives us an opportunity
// to tell the user they've held the touch long enough.
event.item.classList.add("ui-sortable-dragging-touch-cue");
if (original instanceof TouchEvent && original.touches.length > 0) {
startDrag.value = [original.touches[0].clientX, original.touches[0].clientY];
} else if (original instanceof PointerEvent) {
startDrag.value = [original.clientX, original.clientY];
}
}
};
const onDraggableUnchoose = (event: any) => {
event.item.classList.remove("ui-sortable-dragging-touch-cue");
startDrag.value = null;
};
const onDraggableTouchStart = (event: TouchEvent) => {
if (event.touches.length === 1) {
// This prevents an iOS long touch default behavior: selecting
// the nearest selectable text.
document.body.classList.add("force-no-select");
}
};
const onDraggableTouchMove = (event: TouchEvent) => {
if (startDrag.value && event.touches.length > 0) {
const touch = event.touches[0];
const currentPosition = [touch.clientX, touch.clientY];
if (distance(startDrag.value, currentPosition as [number, number]) > 10) {
// Context menu is shown on Android after long touch.
// Dismiss it now that we're sure the user is dragging.
eventbus.emit("contextmenu:cancel");
}
}
};
const onDraggableTouchEnd = (event: TouchEvent) => {
if (event.touches.length === 0) {
document.body.classList.remove("force-no-select");
}
};
const activateSearch = () => {
if (searchInput.value === document.activeElement) {
return;
}
sidebarWasClosed.value = store.state.sidebarOpen ? false : true;
store.commit("sidebarOpen", true);
void nextTick(() => {
searchInput.value?.focus();
});
};
const deactivateSearch = () => {
activeSearchItem.value = null;
searchText.value = "";
searchInput.value?.blur();
if (sidebarWasClosed.value) {
store.commit("sidebarOpen", false);
}
};
const toggleSearch = (event: Mousetrap.ExtendedKeyboardEvent) => {
if (isIgnoredKeybind(event)) {
return true;
}
if (searchInput.value === document.activeElement) {
deactivateSearch();
return false;
}
activateSearch();
return false;
};
const setSearchText = (e: Event) => {
searchText.value = (e.target as HTMLInputElement).value;
};
const setActiveSearchItem = (channel?: ClientChan) => {
if (!results.value.length) {
return;
}
if (!channel) {
channel = results.value[0].channel;
}
activeSearchItem.value = channel;
};
const scrollToActive = () => {
// Scroll the list if needed after the active class is applied
void nextTick(() => {
const el = networklist.value?.querySelector(".channel-list-item.active");
if (el) {
el.scrollIntoView({block: "nearest", inline: "nearest"});
}
});
};
const selectResult = () => {
if (!searchText.value || !results.value.length) {
return;
}
if (activeSearchItem.value) {
switchToChannel(activeSearchItem.value);
deactivateSearch();
scrollToActive();
}
};
const navigateResults = (event: Event, direction: number) => {
// Prevent propagation to stop global keybind handler from capturing pagedown/pageup
// and redirecting it to the message list container for scrolling
event.stopImmediatePropagation();
event.preventDefault();
if (!searchText.value) {
return;
}
const channels = results.value.map((r) => r.channel);
// Bail out if there's no channels to select
if (!channels.length) {
activeSearchItem.value = null;
return;
}
let currentIndex = activeSearchItem.value
? channels.indexOf(activeSearchItem.value)
: -1;
// If there's no active channel select the first or last one depending on direction
if (!activeSearchItem.value || currentIndex === -1) {
activeSearchItem.value = direction ? channels[0] : channels[channels.length - 1];
scrollToActive();
return;
}
currentIndex += direction;
// Wrap around the list if necessary. Normaly each loop iterates once at most,
// but might iterate more often if pgup or pgdown are used in a very short list
while (currentIndex < 0) {
currentIndex += channels.length;
}
while (currentIndex > channels.length - 1) {
currentIndex -= channels.length;
}
activeSearchItem.value = channels[currentIndex];
scrollToActive();
};
watch(searchText, () => {
setActiveSearchItem();
});
onMounted(() => {
Mousetrap.bind("alt+shift+right", expandNetwork);
Mousetrap.bind("alt+shift+left", collapseNetwork);
Mousetrap.bind("alt+j", toggleSearch);
});
onBeforeUnmount(() => {
Mousetrap.unbind("alt+shift+right");
Mousetrap.unbind("alt+shift+left");
Mousetrap.unbind("alt+j");
});
const networkContainerRef = ref<HTMLDivElement>();
const channelRefs = ref<{[key: string]: HTMLDivElement}>({});
return {
store,
networklist,
searchInput,
searchText,
results,
activeSearchItem,
LONG_TOUCH_DURATION,
activateSearch,
deactivateSearch,
toggleSearch,
setSearchText,
setActiveSearchItem,
scrollToActive,
selectResult,
navigateResults,
onChannelSort,
onNetworkSort,
onDraggableTouchStart,
onDraggableTouchMove,
onDraggableTouchEnd,
onDraggableChoose,
onDraggableUnchoose,
};
},
});
</script>

View file

@ -0,0 +1,101 @@
<template>
<ChannelWrapper v-bind="$props" :channel="channel">
<button
v-if="network.channels.length > 1"
:aria-controls="'network-' + network.uuid"
:aria-label="getExpandLabel(network)"
:aria-expanded="!network.isCollapsed"
class="collapse-network"
@click.stop="onCollapseClick"
>
<span class="collapse-network-icon" />
</button>
<span v-else class="collapse-network" />
<div class="lobby-wrap">
<span :title="channel.name" class="name">{{ channel.name }}</span>
<span
v-if="network.status.connected && !network.status.secure"
class="not-secure-tooltip tooltipped tooltipped-w"
aria-label="Insecure connection"
>
<span class="not-secure-icon" />
</span>
<span
v-if="!network.status.connected"
class="not-connected-tooltip tooltipped tooltipped-w"
aria-label="Disconnected"
>
<span class="not-connected-icon" />
</span>
<span v-if="channel.unread" :class="{highlight: channel.highlight}" class="badge">{{
unreadCount
}}</span>
</div>
<span
:aria-label="joinChannelLabel"
class="add-channel-tooltip tooltipped tooltipped-w tooltipped-no-touch"
>
<button
:class="['add-channel', {opened: isJoinChannelShown}]"
:aria-controls="'join-channel-' + channel.id"
:aria-label="joinChannelLabel"
@click.stop="$emit('toggle-join-channel')"
/>
</span>
</ChannelWrapper>
</template>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import collapseNetwork from "../js/helpers/collapseNetwork";
import roundBadgeNumber from "../js/helpers/roundBadgeNumber";
import ChannelWrapper from "./ChannelWrapper.vue";
import type {ClientChan, ClientNetwork} from "../js/types";
export default defineComponent({
name: "Channel",
components: {
ChannelWrapper,
},
props: {
network: {
type: Object as PropType<ClientNetwork>,
required: true,
},
isJoinChannelShown: Boolean,
active: Boolean,
isFiltering: Boolean,
},
emits: ["toggle-join-channel"],
setup(props) {
const channel = computed(() => {
return props.network.channels[0];
});
const joinChannelLabel = computed(() => {
return props.isJoinChannelShown ? "Cancel" : "Join a channel…";
});
const unreadCount = computed(() => {
return roundBadgeNumber(channel.value.unread);
});
const onCollapseClick = () => {
collapseNetwork(props.network, !props.network.isCollapsed);
};
const getExpandLabel = (network: ClientNetwork) => {
return network.isCollapsed ? "Expand" : "Collapse";
};
return {
channel,
joinChannelLabel,
unreadCount,
onCollapseClick,
getExpandLabel,
};
},
});
</script>

View file

@ -0,0 +1,22 @@
<script lang="ts">
import {defineComponent, PropType, h} from "vue";
import parse from "../js/helpers/parse";
import type {ClientMessage, ClientNetwork} from "../js/types";
export default defineComponent({
name: "ParsedMessage",
functional: true,
props: {
text: String,
message: {type: Object as PropType<ClientMessage | string>, required: false},
network: {type: Object as PropType<ClientNetwork>, required: false},
},
render(context) {
return parse(
typeof context.text !== "undefined" ? context.text : context.message.text,
context.message,
context.network
);
},
});
</script>

View file

@ -0,0 +1,37 @@
<template>
<div>
<slot :is-visible="isVisible" />
<span
ref="revealButton"
type="button"
:class="[
'reveal-password tooltipped tooltipped-n tooltipped-no-delay',
{'reveal-password-visible': isVisible},
]"
:aria-label="isVisible ? 'Hide password' : 'Show password'"
@click="onClick"
>
<span :aria-label="isVisible ? 'Hide password' : 'Show password'" />
</span>
</div>
</template>
<script lang="ts">
import {defineComponent, ref} from "vue";
export default defineComponent({
name: "RevealPassword",
setup() {
const isVisible = ref(false);
const onClick = () => {
isVisible.value = !isVisible.value;
};
return {
isVisible,
onClick,
};
},
});
</script>

View file

@ -0,0 +1,66 @@
<template>
<Chat
v-if="activeChannel"
:network="activeChannel.network"
:channel="activeChannel.channel"
:focused="parseInt(String(route.query.focused), 10)"
@channel-changed="channelChanged"
/>
</template>
<script lang="ts">
import {watch, computed, defineComponent, onMounted} from "vue";
import {useRoute} from "vue-router";
import {useStore} from "../js/store";
import {ClientChan} from "../js/types";
// Temporary component for routing channels and lobbies
import Chat from "./Chat.vue";
export default defineComponent({
name: "RoutedChat",
components: {
Chat,
},
setup() {
const route = useRoute();
const store = useStore();
const activeChannel = computed(() => {
const chanId = parseInt(String(route.params.id || ""), 10);
const channel = store.getters.findChannel(chanId);
return channel;
});
const setActiveChannel = () => {
if (activeChannel.value) {
store.commit("activeChannel", activeChannel.value);
}
};
watch(activeChannel, () => {
setActiveChannel();
});
onMounted(() => {
setActiveChannel();
});
const channelChanged = (channel: ClientChan) => {
const chanId = channel.id;
const chanInStore = store.getters.findChannel(chanId);
if (chanInStore?.channel) {
chanInStore.channel.unread = 0;
chanInStore.channel.highlight = 0;
}
};
return {
route,
activeChannel,
channelChanged,
};
},
});
</script>

View file

@ -0,0 +1,83 @@
<template>
<div class="session-item">
<div class="session-item-info">
<strong>{{ session.agent }}</strong>
<a :href="'https://ipinfo.io/' + session.ip" target="_blank" rel="noopener">{{
session.ip
}}</a>
<p v-if="session.active > 1" class="session-usage">
Active in {{ session.active }} browsers
</p>
<p v-else-if="!session.current && !session.active" class="session-usage">
Last used on <time>{{ lastUse }}</time>
</p>
</div>
<div class="session-item-btn">
<button class="btn" @click.prevent="signOut">
<template v-if="session.current">Sign out</template>
<template v-else>Revoke</template>
</button>
</div>
</div>
</template>
<style>
.session-list .session-item {
display: flex;
font-size: 14px;
}
.session-list .session-item-info {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.session-list .session-item-btn {
flex-shrink: 0;
}
.session-list .session-usage {
font-style: italic;
color: var(--body-color-muted);
}
</style>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import localetime from "../js/helpers/localetime";
import Auth from "../js/auth";
import socket from "../js/socket";
import {ClientSession} from "../js/store";
export default defineComponent({
name: "Session",
props: {
session: {
type: Object as PropType<ClientSession>,
required: true,
},
},
setup(props) {
const lastUse = computed(() => {
return localetime(props.session.lastUse);
});
const signOut = () => {
if (!props.session.current) {
socket.emit("sign-out", props.session.token);
} else {
socket.emit("sign-out");
Auth.signout();
}
};
return {
lastUse,
signOut,
};
},
});
</script>

View file

@ -0,0 +1,197 @@
<template>
<div>
<div
v-if="
!store.state.serverConfiguration?.public &&
!store.state.serverConfiguration?.ldapEnabled
"
id="change-password"
role="group"
aria-labelledby="label-change-password"
>
<h2 id="label-change-password">Change password</h2>
<div class="password-container">
<label for="current-password" class="sr-only"> Enter current password </label>
<RevealPassword v-slot:default="slotProps">
<input
id="current-password"
v-model="old_password"
autocomplete="current-password"
:type="slotProps.isVisible ? 'text' : 'password'"
name="old_password"
class="input"
placeholder="Enter current password"
/>
</RevealPassword>
</div>
<div class="password-container">
<label for="new-password" class="sr-only"> Enter desired new password </label>
<RevealPassword v-slot:default="slotProps">
<input
id="new-password"
v-model="new_password"
:type="slotProps.isVisible ? 'text' : 'password'"
name="new_password"
autocomplete="new-password"
class="input"
placeholder="Enter desired new password"
/>
</RevealPassword>
</div>
<div class="password-container">
<label for="new-password-verify" class="sr-only"> Repeat new password </label>
<RevealPassword v-slot:default="slotProps">
<input
id="new-password-verify"
v-model="verify_password"
:type="slotProps.isVisible ? 'text' : 'password'"
name="verify_password"
autocomplete="new-password"
class="input"
placeholder="Repeat new password"
/>
</RevealPassword>
</div>
<div
v-if="passwordChangeStatus && passwordChangeStatus.success"
class="feedback success"
>
Successfully updated your password
</div>
<div
v-else-if="passwordChangeStatus && passwordChangeStatus.error"
class="feedback error"
>
{{ passwordErrors[passwordChangeStatus.error] }}
</div>
<div>
<button type="submit" class="btn" @click.prevent="changePassword">
Change password
</button>
</div>
</div>
<div v-if="!store.state.serverConfiguration?.public" class="session-list" role="group">
<h2>Sessions</h2>
<h3>Current session</h3>
<Session v-if="currentSession" :session="currentSession" />
<template v-if="activeSessions.length > 0">
<h3>Active sessions</h3>
<Session
v-for="session in activeSessions"
:key="session.token"
:session="session"
/>
</template>
<h3>Other sessions</h3>
<p v-if="store.state.sessions.length === 0">Loading</p>
<p v-else-if="otherSessions.length === 0">
<em>You are not currently logged in to any other device.</em>
</p>
<Session
v-for="session in otherSessions"
v-else
:key="session.token"
:session="session"
/>
</div>
</div>
</template>
<script lang="ts">
import socket from "../../js/socket";
import RevealPassword from "../RevealPassword.vue";
import Session from "../Session.vue";
import {computed, defineComponent, onMounted, PropType, ref} from "vue";
import {useStore} from "../../js/store";
export default defineComponent({
name: "UserSettings",
components: {
RevealPassword,
Session,
},
setup() {
const store = useStore();
const passwordErrors = {
missing_fields: "Please fill in all fields",
password_mismatch: "Both new password fields must match",
password_incorrect: "The current password field does not match your account password",
update_failed: "Failed to update your password",
};
const passwordChangeStatus = ref<{
success: boolean;
error: keyof typeof passwordErrors;
}>();
const old_password = ref("");
const new_password = ref("");
const verify_password = ref("");
const currentSession = computed(() => {
return store.state.sessions.find((item) => item.current);
});
const activeSessions = computed(() => {
return store.state.sessions.filter((item) => !item.current && item.active > 0);
});
const otherSessions = computed(() => {
return store.state.sessions.filter((item) => !item.current && !item.active);
});
onMounted(() => {
socket.emit("sessions:get");
});
const changePassword = () => {
const data = {
old_password: old_password.value,
new_password: new_password.value,
verify_password: verify_password.value,
};
if (!data.old_password || !data.new_password || !data.verify_password) {
passwordChangeStatus.value = {
success: false,
error: "missing_fields",
};
return;
}
if (data.new_password !== data.verify_password) {
passwordChangeStatus.value = {
success: false,
error: "password_mismatch",
};
return;
}
socket.once("change-password", (response) => {
// TODO type
passwordChangeStatus.value = response as any;
});
socket.emit("change-password", data);
};
return {
store,
passwordChangeStatus,
passwordErrors,
currentSession,
activeSessions,
otherSessions,
changePassword,
old_password,
new_password,
verify_password,
};
},
});
</script>

View file

@ -0,0 +1,179 @@
<template>
<div>
<h2>Messages</h2>
<div>
<label class="opt">
<input :checked="store.state.settings.motd" type="checkbox" name="motd" />
Show <abbr title="Message Of The Day">MOTD</abbr>
</label>
</div>
<div>
<label class="opt">
<input
:checked="store.state.settings.showSeconds"
type="checkbox"
name="showSeconds"
/>
Include seconds in timestamp
</label>
</div>
<div>
<label class="opt">
<input
:checked="store.state.settings.use12hClock"
type="checkbox"
name="use12hClock"
/>
Use 12-hour timestamps
</label>
</div>
<template v-if="store.state.serverConfiguration?.prefetch">
<h2>Link previews</h2>
<div>
<label class="opt">
<input :checked="store.state.settings.media" type="checkbox" name="media" />
Auto-expand media
</label>
</div>
<div>
<label class="opt">
<input :checked="store.state.settings.links" type="checkbox" name="links" />
Auto-expand websites
</label>
</div>
</template>
<h2 id="label-status-messages">
Status messages
<span
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="Joins, parts, quits, kicks, nick changes, and mode changes"
>
<button class="extra-help" />
</span>
</h2>
<div role="group" aria-labelledby="label-status-messages">
<label class="opt">
<input
:checked="store.state.settings.statusMessages === 'shown'"
type="radio"
name="statusMessages"
value="shown"
/>
Show all status messages individually
</label>
<label class="opt">
<input
:checked="store.state.settings.statusMessages === 'condensed'"
type="radio"
name="statusMessages"
value="condensed"
/>
Condense status messages together
</label>
<label class="opt">
<input
:checked="store.state.settings.statusMessages === 'hidden'"
type="radio"
name="statusMessages"
value="hidden"
/>
Hide all status messages
</label>
</div>
<h2>Visual Aids</h2>
<div>
<label class="opt">
<input
:checked="store.state.settings.coloredNicks"
type="checkbox"
name="coloredNicks"
/>
Enable colored nicknames
</label>
<label class="opt">
<input
:checked="store.state.settings.autocomplete"
type="checkbox"
name="autocomplete"
/>
Enable autocomplete
</label>
</div>
<div>
<label class="opt">
<label for="nickPostfix" class="opt">
Nick autocomplete postfix
<span
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="Nick autocomplete postfix (for example a comma)"
>
<button class="extra-help" />
</span>
</label>
<input
id="nickPostfix"
:value="store.state.settings.nickPostfix"
type="text"
name="nickPostfix"
class="input"
placeholder="Nick autocomplete postfix (e.g. ', ')"
/>
</label>
</div>
<h2>Theme</h2>
<div>
<label for="theme-select" class="sr-only">Theme</label>
<select
id="theme-select"
:value="store.state.settings.theme"
name="theme"
class="input"
>
<option
v-for="theme in store.state.serverConfiguration?.themes"
:key="theme.name"
:value="theme.name"
>
{{ theme.displayName }}
</option>
</select>
</div>
<div>
<h2>Custom Stylesheet</h2>
<label for="user-specified-css-input" class="sr-only">
Custom stylesheet. You can override any style with CSS here.
</label>
<textarea
id="user-specified-css-input"
:value="store.state.settings.userStyles"
class="input"
name="userStyles"
placeholder="/* You can override any style with CSS here */"
/>
</div>
</div>
</template>
<style>
textarea#user-specified-css-input {
height: 100px;
}
</style>
<script lang="ts">
import {defineComponent} from "vue";
import {useStore} from "../../js/store";
export default defineComponent({
name: "AppearanceSettings",
setup() {
const store = useStore();
return {
store,
};
},
});
</script>

View file

@ -0,0 +1,175 @@
<template>
<div>
<div v-if="canRegisterProtocol || hasInstallPromptEvent">
<h2>Native app</h2>
<button
v-if="hasInstallPromptEvent"
type="button"
class="btn"
@click.prevent="nativeInstallPrompt"
>
Add The Lounge to Home screen
</button>
<button
v-if="canRegisterProtocol"
type="button"
class="btn"
@click.prevent="registerProtocol"
>
Open irc:// URLs with The Lounge
</button>
</div>
<div v-if="store.state.serverConfiguration?.fileUpload">
<h2>File uploads</h2>
<div>
<label class="opt">
<input
:checked="store.state.settings.uploadCanvas"
type="checkbox"
name="uploadCanvas"
/>
Attempt to remove metadata from images before uploading
<span
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="This option renders the image into a canvas element to remove metadata from the image.
This may break orientation if your browser does not support that."
>
<button class="extra-help" />
</span>
</label>
</div>
</div>
<div v-if="!store.state.serverConfiguration?.public">
<h2>Settings synchronisation</h2>
<label class="opt">
<input
:checked="store.state.settings.syncSettings"
type="checkbox"
name="syncSettings"
/>
Synchronize settings with other clients
</label>
<template v-if="!store.state.settings.syncSettings">
<div v-if="store.state.serverHasSettings" class="settings-sync-panel">
<p>
<strong>Warning:</strong> Checking this box will override the settings of
this client with those stored on the server.
</p>
<p>
Use the button below to enable synchronization, and override any settings
already synced to the server.
</p>
<button type="button" class="btn btn-small" @click="onForceSyncClick">
Sync settings and enable
</button>
</div>
<div v-else class="settings-sync-panel">
<p>
<strong>Warning:</strong> No settings have been synced before. Enabling this
will sync all settings of this client as the base for other clients.
</p>
</div>
</template>
</div>
<div v-if="!store.state.serverConfiguration?.public">
<h2>Automatic away message</h2>
<label class="opt">
<label for="awayMessage" class="sr-only">Automatic away message</label>
<input
id="awayMessage"
:value="store.state.settings.awayMessage"
type="text"
name="awayMessage"
class="input"
placeholder="Away message if The Lounge is not open"
/>
</label>
</div>
</div>
</template>
<style></style>
<script lang="ts">
import {computed, defineComponent, onMounted, ref} from "vue";
import {useStore} from "../../js/store";
import {BeforeInstallPromptEvent} from "../../js/types";
let installPromptEvent: BeforeInstallPromptEvent | null = null;
window.addEventListener("beforeinstallprompt", (e) => {
e.preventDefault();
installPromptEvent = e as BeforeInstallPromptEvent;
});
export default defineComponent({
name: "GeneralSettings",
setup() {
const store = useStore();
const canRegisterProtocol = ref(false);
const hasInstallPromptEvent = computed(() => {
// TODO: This doesn't hide the button after clicking
return installPromptEvent !== null;
});
onMounted(() => {
// Enable protocol handler registration if supported,
// and the network configuration is not locked
canRegisterProtocol.value =
!!window.navigator.registerProtocolHandler &&
!store.state.serverConfiguration?.lockNetwork;
});
const nativeInstallPrompt = () => {
if (!installPromptEvent) {
return;
}
installPromptEvent.prompt().catch((e) => {
// eslint-disable-next-line no-console
console.error(e);
});
installPromptEvent = null;
};
const onForceSyncClick = () => {
store.dispatch("settings/syncAll", true).catch((e) => {
// eslint-disable-next-line no-console
console.error(e);
});
store
.dispatch("settings/update", {
name: "syncSettings",
value: true,
sync: true,
})
.catch((e) => {
// eslint-disable-next-line no-console
console.error(e);
});
};
const registerProtocol = () => {
const uri = document.location.origin + document.location.pathname + "?uri=%s";
// @ts-expect-error
// the third argument is deprecated but recommended for compatibility: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler
window.navigator.registerProtocolHandler("irc", uri, "The Lounge");
// @ts-expect-error
window.navigator.registerProtocolHandler("ircs", uri, "The Lounge");
};
return {
store,
canRegisterProtocol,
hasInstallPromptEvent,
nativeInstallPrompt,
onForceSyncClick,
registerProtocol,
};
},
});
</script>

View file

@ -0,0 +1,103 @@
<template>
<!-- 220px is the width of the sidebar, and we add 100px to allow for the text -->
<aside class="settings-menu">
<h2>Settings</h2>
<ul role="navigation" aria-label="Settings tabs">
<SettingTabItem name="General" class-name="general" to="" />
<SettingTabItem name="Appearance" class-name="appearance" to="appearance" />
<SettingTabItem name="Notifications" class-name="notifications" to="notifications" />
<SettingTabItem name="Account" class-name="account" to="account" />
</ul>
</aside>
</template>
<style>
.settings-menu {
position: fixed;
/* top: Header + (padding bottom of h2 - border) */
top: calc(45px + 5px);
/* Mid page minus width of container and 30 pixels for padding */
margin-left: calc(50% - 480px - 30px);
}
/** The calculation is mobile + 2/3 of container width. Fairly arbitrary. */
@media screen and (max-width: calc(768px + 320px)) {
.settings-menu {
position: static;
width: min(480px, 100%);
align-self: center;
margin: 0 auto;
padding: 0 15px;
}
}
.settings-menu ul {
padding: 0;
}
.settings-menu li {
font-size: 18px;
list-style: none;
}
.settings-menu button {
color: var(--body-color-muted);
width: 100%;
height: 100%;
display: inline-block;
text-align: left;
}
.settings-menu li:not(:last-of-type) button {
margin-bottom: 8px;
}
.settings-menu button::before {
width: 18px;
height: 18px;
display: inline-block;
content: "";
margin-right: 8px;
}
.settings-menu .appearance::before {
content: "\f108"; /* http://fontawesome.io/icon/desktop/ */
}
.settings-menu .account::before {
content: "\f007"; /* http://fontawesome.io/icon/user/ */
}
.settings-menu .messages::before {
content: "\f0e0"; /* http://fontawesome.io/icon/envelope/ */
}
.settings-menu .notifications::before {
content: "\f0f3"; /* http://fontawesome.io/icon/bell/ */
}
.settings-menu .general::before {
content: "\f013"; /* http://fontawesome.io/icon/cog/ */
}
.settings-menu button:hover,
.settings-menu button.active {
color: var(--body-color);
}
.settings-menu button.active {
cursor: default;
}
</style>
<script lang="ts">
import SettingTabItem from "./SettingTabItem.vue";
import {defineComponent} from "vue";
export default defineComponent({
name: "SettingsTabs",
components: {
SettingTabItem,
},
});
</script>

View file

@ -0,0 +1,188 @@
<template>
<div>
<template v-if="!store.state.serverConfiguration?.public">
<h2>Push Notifications</h2>
<div>
<button
id="pushNotifications"
type="button"
class="btn"
:disabled="
store.state.pushNotificationState !== 'supported' &&
store.state.pushNotificationState !== 'subscribed'
"
@click="onPushButtonClick"
>
<template v-if="store.state.pushNotificationState === 'subscribed'">
Unsubscribe from push notifications
</template>
<template v-else-if="store.state.pushNotificationState === 'loading'">
Loading
</template>
<template v-else> Subscribe to push notifications </template>
</button>
<div v-if="store.state.pushNotificationState === 'nohttps'" class="error">
<strong>Warning</strong>: Push notifications are only supported over HTTPS
connections.
</div>
<div v-if="store.state.pushNotificationState === 'unsupported'" class="error">
<strong>Warning</strong>:
<span>Push notifications are not supported by your browser.</span>
</div>
</div>
</template>
<h2>Browser Notifications</h2>
<div>
<label class="opt">
<input
id="desktopNotifications"
:checked="store.state.settings.desktopNotifications"
:disabled="store.state.desktopNotificationState === 'nohttps'"
type="checkbox"
name="desktopNotifications"
/>
Enable browser notifications<br />
<div v-if="store.state.desktopNotificationState === 'unsupported'" class="error">
<strong>Warning</strong>: Notifications are not supported by your browser.
</div>
<div
v-if="store.state.desktopNotificationState === 'nohttps'"
id="warnBlockedDesktopNotifications"
class="error"
>
<strong>Warning</strong>: Notifications are only supported over HTTPS
connections.
</div>
<div
v-if="store.state.desktopNotificationState === 'blocked'"
id="warnBlockedDesktopNotifications"
class="error"
>
<strong>Warning</strong>: Notifications are blocked by your browser.
</div>
</label>
</div>
<div>
<label class="opt">
<input
:checked="store.state.settings.notification"
type="checkbox"
name="notification"
/>
Enable notification sound
</label>
</div>
<div>
<div class="opt">
<button id="play" @click.prevent="playNotification">Play sound</button>
</div>
</div>
<div>
<label class="opt">
<input
:checked="store.state.settings.notifyAllMessages"
type="checkbox"
name="notifyAllMessages"
/>
Enable notification for all messages
</label>
</div>
<div v-if="!store.state.serverConfiguration?.public">
<label class="opt">
<label for="highlights" class="opt">
Custom highlights
<span
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="If a message contains any of these comma-separated
expressions, it will trigger a highlight."
>
<button class="extra-help" />
</span>
</label>
<input
id="highlights"
:value="store.state.settings.highlights"
type="text"
name="highlights"
class="input"
autocomplete="off"
placeholder="Comma-separated, e.g.: word, some more words, anotherword"
/>
</label>
</div>
<div v-if="!store.state.serverConfiguration?.public">
<label class="opt">
<label for="highlightExceptions" class="opt">
Highlight exceptions
<span
class="tooltipped tooltipped-n tooltipped-no-delay"
aria-label="If a message contains any of these comma-separated
expressions, it will not trigger a highlight even if it contains
your nickname or expressions defined in custom highlights."
>
<button class="extra-help" />
</span>
</label>
<input
id="highlightExceptions"
:value="store.state.settings.highlightExceptions"
type="text"
name="highlightExceptions"
class="input"
autocomplete="off"
placeholder="Comma-separated, e.g.: word, some more words, anotherword"
/>
</label>
</div>
</div>
</template>
<script lang="ts">
import {computed, defineComponent} from "vue";
import {useStore} from "../../js/store";
import webpush from "../../js/webpush";
export default defineComponent({
name: "NotificationSettings",
setup() {
const store = useStore();
const isIOS = computed(
() =>
[
"iPad Simulator",
"iPhone Simulator",
"iPod Simulator",
"iPad",
"iPhone",
"iPod",
].includes(navigator.platform) ||
// iPad on iOS 13 detection
(navigator.userAgent.includes("Mac") && "ontouchend" in document)
);
const playNotification = () => {
const pop = new Audio();
pop.src = "audio/pop.wav";
// eslint-disable-next-line
pop.play();
};
const onPushButtonClick = () => {
webpush.togglePushSubscription();
};
return {
isIOS,
store,
playNotification,
onPushButtonClick,
};
},
});
</script>

View file

@ -0,0 +1,43 @@
<template>
<li :aria-label="name" role="tab" :aria-selected="route.name === name" aria-controls="settings">
<router-link v-slot:default="{navigate, isExactActive}" :to="'/settings/' + to" custom>
<button
:class="['icon', className, {active: isExactActive}]"
@click="navigate"
@keypress.enter="navigate"
>
{{ name }}
</button>
</router-link>
</li>
</template>
<script lang="ts">
import {defineComponent} from "vue";
import {useRoute} from "vue-router";
export default defineComponent({
name: "SettingTabListItem",
props: {
name: {
type: String,
required: true,
},
className: {
type: String,
required: true,
},
to: {
type: String,
required: true,
},
},
setup() {
const route = useRoute();
return {
route,
};
},
});
</script>

View file

@ -0,0 +1,269 @@
<template>
<aside id="sidebar" ref="sidebar">
<div class="scrollable-area">
<div class="logo-container">
<img
:src="`img/logo-${isPublic() ? 'horizontal-' : ''}transparent-bg.svg`"
class="logo"
alt="The Lounge"
role="presentation"
/>
<img
:src="`img/logo-${isPublic() ? 'horizontal-' : ''}transparent-bg-inverted.svg`"
class="logo-inverted"
alt="The Lounge"
role="presentation"
/>
<span
v-if="isDevelopment"
title="The Lounge has been built in development mode"
:style="{
backgroundColor: '#ff9e18',
color: '#000',
padding: '2px',
borderRadius: '4px',
fontSize: '12px',
}"
>DEVELOPER</span
>
</div>
<NetworkList />
</div>
<footer id="footer">
<span
class="tooltipped tooltipped-n tooltipped-no-touch"
aria-label="Connect to network"
><router-link
v-slot:default="{navigate, isActive}"
to="/connect"
role="tab"
aria-controls="connect"
>
<button
:class="['icon', 'connect', {active: isActive}]"
:aria-selected="isActive"
@click="navigate"
@keypress.enter="navigate"
/> </router-link
></span>
<span class="tooltipped tooltipped-n tooltipped-no-touch" aria-label="Settings"
><router-link
v-slot:default="{navigate, isActive}"
to="/settings"
role="tab"
aria-controls="settings"
>
<button
:class="['icon', 'settings', {active: isActive}]"
:aria-selected="isActive"
@click="navigate"
@keypress.enter="navigate"
></button> </router-link
></span>
<span
class="tooltipped tooltipped-n tooltipped-no-touch"
:aria-label="
store.state.serverConfiguration?.isUpdateAvailable
? 'Help\n(update available)'
: 'Help'
"
><router-link
v-slot:default="{navigate, isActive}"
to="/help"
role="tab"
aria-controls="help"
>
<button
:aria-selected="route.name === 'Help'"
:class="[
'icon',
'help',
{notified: store.state.serverConfiguration?.isUpdateAvailable},
{active: isActive},
]"
@click="navigate"
@keypress.enter="navigate"
></button> </router-link
></span>
</footer>
</aside>
</template>
<script lang="ts">
import {defineComponent, nextTick, onMounted, onUnmounted, PropType, ref} from "vue";
import {useRoute} from "vue-router";
import {useStore} from "../js/store";
import NetworkList from "./NetworkList.vue";
export default defineComponent({
name: "Sidebar",
components: {
NetworkList,
},
props: {
overlay: {type: Object as PropType<HTMLElement | null>, required: true},
},
setup(props) {
const isDevelopment = process.env.NODE_ENV !== "production";
const store = useStore();
const route = useRoute();
const touchStartPos = ref<Touch | null>();
const touchCurPos = ref<Touch | null>();
const touchStartTime = ref<number>(0);
const menuWidth = ref<number>(0);
const menuIsMoving = ref<boolean>(false);
const menuIsAbsolute = ref<boolean>(false);
const sidebar = ref<HTMLElement | null>(null);
const toggle = (state: boolean) => {
store.commit("sidebarOpen", state);
};
const onTouchMove = (e: TouchEvent) => {
const touch = (touchCurPos.value = e.touches.item(0));
if (
!touch ||
!touchStartPos.value ||
!touchStartPos.value.screenX ||
!touchStartPos.value.screenY
) {
return;
}
let distX = touch.screenX - touchStartPos.value.screenX;
const distY = touch.screenY - touchStartPos.value.screenY;
if (!menuIsMoving.value) {
// tan(45°) is 1. Gestures in 0°-45° (< 1) are considered horizontal, so
// menu must be open; gestures in 45°-90° (>1) are considered vertical, so
// chat windows must be scrolled.
if (Math.abs(distY / distX) >= 1) {
// eslint-disable-next-line no-use-before-define
onTouchEnd();
return;
}
const devicePixelRatio = window.devicePixelRatio || 2;
if (Math.abs(distX) > devicePixelRatio) {
store.commit("sidebarDragging", true);
menuIsMoving.value = true;
}
}
// Do not animate the menu on desktop view
if (!menuIsAbsolute.value) {
return;
}
if (store.state.sidebarOpen) {
distX += menuWidth.value;
}
if (distX > menuWidth.value) {
distX = menuWidth.value;
} else if (distX < 0) {
distX = 0;
}
if (sidebar.value) {
sidebar.value.style.transform = "translate3d(" + distX.toString() + "px, 0, 0)";
}
if (props.overlay) {
props.overlay.style.opacity = `${distX / menuWidth.value}`;
}
};
const onTouchEnd = () => {
if (!touchStartPos.value?.screenX || !touchCurPos.value?.screenX) {
return;
}
const diff = touchCurPos.value.screenX - touchStartPos.value.screenX;
const absDiff = Math.abs(diff);
if (
absDiff > menuWidth.value / 2 ||
(Date.now() - touchStartTime.value < 180 && absDiff > 50)
) {
toggle(diff > 0);
}
document.body.removeEventListener("touchmove", onTouchMove);
document.body.removeEventListener("touchend", onTouchEnd);
store.commit("sidebarDragging", false);
touchStartPos.value = null;
touchCurPos.value = null;
touchStartTime.value = 0;
menuIsMoving.value = false;
void nextTick(() => {
if (sidebar.value) {
sidebar.value.style.transform = "";
}
if (props.overlay) {
props.overlay.style.opacity = "";
}
});
};
const onTouchStart = (e: TouchEvent) => {
if (!sidebar.value) {
return;
}
touchStartPos.value = touchCurPos.value = e.touches.item(0);
if (e.touches.length !== 1) {
onTouchEnd();
return;
}
const styles = window.getComputedStyle(sidebar.value);
menuWidth.value = parseFloat(styles.width);
menuIsAbsolute.value = styles.position === "absolute";
if (
!store.state.sidebarOpen ||
(touchStartPos.value?.screenX && touchStartPos.value.screenX > menuWidth.value)
) {
touchStartTime.value = Date.now();
document.body.addEventListener("touchmove", onTouchMove, {passive: true});
document.body.addEventListener("touchend", onTouchEnd, {passive: true});
}
};
onMounted(() => {
document.body.addEventListener("touchstart", onTouchStart, {passive: true});
});
onUnmounted(() => {
document.body.removeEventListener("touchstart", onTouchStart);
});
const isPublic = () => document.body.classList.contains("public");
return {
isDevelopment,
store,
route,
sidebar,
toggle,
onTouchStart,
onTouchMove,
onTouchEnd,
isPublic,
};
},
});
</script>

View file

@ -0,0 +1,19 @@
<template>
<button class="lt" aria-label="Toggle channel list" @click="store.commit('toggleSidebar')" />
</template>
<script lang="ts">
import {defineComponent} from "vue";
import {useStore} from "../js/store";
export default defineComponent({
name: "SidebarToggle",
setup() {
const store = useStore();
return {
store,
};
},
});
</script>

View file

@ -0,0 +1,45 @@
<template>
<table class="ban-list">
<thead>
<tr>
<th class="hostmask">Banned</th>
<th class="banned_by">Banned By</th>
<th class="banned_at">Banned At</th>
</tr>
</thead>
<tbody>
<tr v-for="ban in channel.data" :key="ban.hostmask">
<td class="hostmask"><ParsedMessage :network="network" :text="ban.hostmask" /></td>
<td class="banned_by">{{ ban.banned_by }}</td>
<td class="banned_at">{{ localetime(ban.banned_at) }}</td>
</tr>
</tbody>
</table>
</template>
<script lang="ts">
import ParsedMessage from "../ParsedMessage.vue";
import localeTime from "../../js/helpers/localetime";
import {defineComponent, PropType} from "vue";
import type {ClientNetwork, ClientChan} from "../../js/types";
export default defineComponent({
name: "ListBans",
components: {
ParsedMessage,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup() {
const localetime = (date: number | Date) => {
return localeTime(date);
};
return {
localetime,
};
},
});
</script>

View file

@ -0,0 +1,36 @@
<template>
<span v-if="channel.data.text">{{ channel.data.text }}</span>
<table v-else class="channel-list">
<thead>
<tr>
<th class="channel">Channel</th>
<th class="users">Users</th>
<th class="topic">Topic</th>
</tr>
</thead>
<tbody>
<tr v-for="chan in channel.data" :key="chan.channel">
<td class="channel"><ParsedMessage :network="network" :text="chan.channel" /></td>
<td class="users">{{ chan.num_users }}</td>
<td class="topic"><ParsedMessage :network="network" :text="chan.topic" /></td>
</tr>
</tbody>
</table>
</template>
<script lang="ts">
import {defineComponent, PropType} from "vue";
import {ClientChan, ClientNetwork} from "../../js/types";
import ParsedMessage from "../ParsedMessage.vue";
export default defineComponent({
name: "ListChannels",
components: {
ParsedMessage,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
});
</script>

View file

@ -0,0 +1,39 @@
<template>
<table class="ignore-list">
<thead>
<tr>
<th class="hostmask">Hostmask</th>
<th class="when">Ignored At</th>
</tr>
</thead>
<tbody>
<tr v-for="user in channel.data" :key="user.hostmask">
<td class="hostmask"><ParsedMessage :network="network" :text="user.hostmask" /></td>
<td class="when">{{ localetime(user.when) }}</td>
</tr>
</tbody>
</table>
</template>
<script lang="ts">
import ParsedMessage from "../ParsedMessage.vue";
import localetime from "../../js/helpers/localetime";
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientChan} from "../../js/types";
export default defineComponent({
name: "ListIgnored",
components: {
ParsedMessage,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup() {
return {
localetime,
};
},
});
</script>

View file

@ -0,0 +1,43 @@
<template>
<table class="invite-list">
<thead>
<tr>
<th class="hostmask">Invited</th>
<th class="invitened_by">Invited By</th>
<th class="invitened_at">Invited At</th>
</tr>
</thead>
<tbody>
<tr v-for="invite in channel.data" :key="invite.hostmask">
<td class="hostmask">
<ParsedMessage :network="network" :text="invite.hostmask" />
</td>
<td class="invitened_by">{{ invite.invited_by }}</td>
<td class="invitened_at">{{ localetime(invite.invited_at) }}</td>
</tr>
</tbody>
</table>
</template>
<script lang="ts">
import ParsedMessage from "../ParsedMessage.vue";
import localetime from "../../js/helpers/localetime";
import {defineComponent, PropType} from "vue";
import {ClientNetwork, ClientChan} from "../../js/types";
export default defineComponent({
name: "ListInvites",
components: {
ParsedMessage,
},
props: {
network: {type: Object as PropType<ClientNetwork>, required: true},
channel: {type: Object as PropType<ClientChan>, required: true},
},
setup() {
return {
localetime: (date: Date) => localetime(date),
};
},
});
</script>

View file

@ -0,0 +1,84 @@
<template>
<span
:class="['user', {[nickColor]: store.state.settings.coloredNicks}, {active: active}]"
:data-name="user.nick"
role="button"
v-on="onHover ? {mouseenter: hover} : {}"
@click.prevent="openContextMenu"
@contextmenu.prevent="openContextMenu"
><slot>{{ mode }}{{ user.nick }}</slot></span
>
</template>
<script lang="ts">
import {computed, defineComponent, PropType} from "vue";
import {UserInMessage} from "../../shared/types/msg";
import eventbus from "../js/eventbus";
import colorClass from "../js/helpers/colorClass";
import type {ClientChan, ClientNetwork} from "../js/types";
import {useStore} from "../js/store";
type UsernameUser = Partial<UserInMessage> & {
mode?: string;
nick: string;
};
export default defineComponent({
name: "Username",
props: {
user: {
// TODO: UserInMessage shouldn't be necessary here.
type: Object as PropType<UsernameUser | UserInMessage>,
required: true,
},
active: Boolean,
onHover: {
type: Function as PropType<(user: UserInMessage) => void>,
required: false,
},
channel: {type: Object as PropType<ClientChan>, required: false},
network: {type: Object as PropType<ClientNetwork>, required: false},
},
setup(props) {
const mode = computed(() => {
// Message objects have a singular mode, but user objects have modes array
if (props.user.modes) {
return props.user.modes[0];
}
return props.user.mode;
});
// TODO: Nick must be ! because our user prop union includes UserInMessage
const nickColor = computed(() => colorClass(props.user.nick!));
const hover = () => {
if (props.onHover) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return props.onHover(props.user as UserInMessage);
}
return null;
};
const openContextMenu = (event: Event) => {
eventbus.emit("contextmenu:user", {
event: event,
user: props.user,
network: props.network,
channel: props.channel,
});
};
const store = useStore();
return {
mode,
nickColor,
hover,
openContextMenu,
store,
};
},
});
</script>

View file

@ -0,0 +1,66 @@
<template>
<div id="version-checker" :class="[store.state.versionStatus]">
<p v-if="store.state.versionStatus === 'loading'">Checking for updates</p>
<p v-if="store.state.versionStatus === 'new-version'">
The Lounge <b>{{ store.state.versionData?.latest.version }}</b>
<template v-if="store.state.versionData?.latest.prerelease"> (pre-release) </template>
is now available.
<br />
<a :href="store.state.versionData?.latest.url" target="_blank" rel="noopener">
Read more on GitHub
</a>
</p>
<p v-if="store.state.versionStatus === 'new-packages'">
The Lounge is up to date, but there are out of date packages Run
<code>thelounge upgrade</code> on the server to upgrade packages.
</p>
<template v-if="store.state.versionStatus === 'up-to-date'">
<p>The Lounge is up to date!</p>
<button
v-if="store.state.versionDataExpired"
id="check-now"
class="btn btn-small"
@click="checkNow"
>
Check now
</button>
</template>
<template v-if="store.state.versionStatus === 'error'">
<p>Information about latest release could not be retrieved.</p>
<button id="check-now" class="btn btn-small" @click="checkNow">Try again</button>
</template>
</div>
</template>
<script lang="ts">
import {defineComponent, onMounted} from "vue";
import socket from "../js/socket";
import {useStore} from "../js/store";
export default defineComponent({
name: "VersionChecker",
setup() {
const store = useStore();
const checkNow = () => {
store.commit("versionData", null);
store.commit("versionStatus", "loading");
socket.emit("changelog");
};
onMounted(() => {
if (!store.state.versionData) {
checkNow();
}
});
return {
store,
checkNow,
};
},
});
</script>

View file

@ -0,0 +1,93 @@
<template>
<div id="changelog" class="window" aria-label="Changelog">
<div class="header">
<SidebarToggle />
</div>
<div class="container">
<router-link id="back-to-help" to="/help">« Help</router-link>
<template
v-if="store.state.versionData?.current && store.state.versionData?.current.version"
>
<h1 class="title">
Release notes for {{ store.state.versionData.current.version }}
</h1>
<template v-if="store.state.versionData.current.changelog">
<h3>Introduction</h3>
<div
ref="changelog"
class="changelog-text"
v-html="store.state.versionData.current.changelog"
></div>
</template>
<template v-else>
<p>Unable to retrieve changelog for current release from GitHub.</p>
<p>
<a
v-if="store.state.serverConfiguration?.version"
:href="`https://github.com/thelounge/thelounge/releases/tag/v${store.state.serverConfiguration?.version}`"
target="_blank"
rel="noopener"
>View release notes for this version on GitHub</a
>
</p>
</template>
</template>
<p v-else>Loading changelog</p>
</div>
</div>
</template>
<script lang="ts">
import {defineComponent, onMounted, onUpdated, ref} from "vue";
import socket from "../../js/socket";
import {useStore} from "../../js/store";
import SidebarToggle from "../SidebarToggle.vue";
export default defineComponent({
name: "Changelog",
components: {
SidebarToggle,
},
setup() {
const store = useStore();
const changelog = ref<HTMLDivElement | null>(null);
const patchChangelog = () => {
if (!changelog.value) {
return;
}
const links = changelog.value.querySelectorAll("a");
links.forEach((link) => {
// Make sure all links will open a new tab instead of exiting the application
link.setAttribute("target", "_blank");
link.setAttribute("rel", "noopener");
if (link.querySelector("img")) {
// Add required metadata to image links, to support built-in image viewer
link.classList.add("toggle-thumbnail");
}
});
};
onMounted(() => {
if (!store.state.versionData) {
socket.emit("changelog");
}
patchChangelog();
});
onUpdated(() => {
patchChangelog();
});
return {
store,
};
},
});
</script>

View file

@ -0,0 +1,117 @@
<template>
<NetworkForm :handle-submit="handleSubmit" :defaults="defaults" :disabled="disabled" />
</template>
<script lang="ts">
import {defineComponent, ref} from "vue";
import socket from "../../js/socket";
import {useStore} from "../../js/store";
import NetworkForm, {NetworkFormDefaults} from "../NetworkForm.vue";
export default defineComponent({
name: "Connect",
components: {
NetworkForm,
},
props: {
queryParams: Object,
},
setup(props) {
const store = useStore();
const disabled = ref(false);
const handleSubmit = (data: Record<string, any>) => {
disabled.value = true;
socket.emit("network:new", data);
};
const parseOverrideParams = (params?: Record<string, string>) => {
if (!params) {
return {};
}
const parsedParams: Record<string, any> = {};
for (let key of Object.keys(params)) {
let value = params[key];
// Param can contain multiple values in an array if its supplied more than once
if (Array.isArray(value)) {
value = value[0];
}
// Support `channels` as a compatibility alias with other clients
if (key === "channels") {
key = "join";
}
if (
!Object.prototype.hasOwnProperty.call(
store.state.serverConfiguration?.defaults,
key
)
) {
continue;
}
// When the network is locked, URL overrides should not affect disabled fields
if (
store.state.serverConfiguration?.lockNetwork &&
["name", "host", "port", "tls", "rejectUnauthorized"].includes(key)
) {
continue;
}
if (key === "join") {
value = value
.split(",")
.map((chan) => {
if (!chan.match(/^[#&!+]/)) {
return `#${chan}`;
}
return chan;
})
.join(", ");
}
// Override server provided defaults with parameters passed in the URL if they match the data type
switch (typeof store.state.serverConfiguration?.defaults[key]) {
case "boolean":
if (value === "0" || value === "false") {
parsedParams[key] = false;
} else {
parsedParams[key] = !!value;
}
break;
case "number":
parsedParams[key] = Number(value);
break;
case "string":
parsedParams[key] = String(value);
break;
}
}
return parsedParams;
};
const defaults = ref<Partial<NetworkFormDefaults>>(
Object.assign(
{},
store.state.serverConfiguration?.defaults,
parseOverrideParams(props.queryParams)
)
);
return {
defaults,
disabled,
handleSubmit,
};
},
});
</script>

View file

@ -0,0 +1,879 @@
<template>
<div id="help" class="window" role="tabpanel" aria-label="Help">
<div class="header">
<SidebarToggle />
</div>
<div class="container">
<h1 class="title">Help</h1>
<h2 class="help-version-title">
<span>About The Lounge</span>
<small>
v{{ store.state.serverConfiguration?.version }} (<router-link
id="view-changelog"
to="/changelog"
>release notes</router-link
>)
</small>
</h2>
<div class="about">
<VersionChecker />
<template v-if="store.state.serverConfiguration?.gitCommit">
<p>
The Lounge is running from source (<a
:href="`https://github.com/thelounge/thelounge/tree/${store.state.serverConfiguration?.gitCommit}`"
target="_blank"
rel="noopener"
>commit <code>{{ store.state.serverConfiguration?.gitCommit }}</code></a
>).
</p>
<ul>
<li>
Compare
<a
:href="`https://github.com/thelounge/thelounge/compare/${store.state.serverConfiguration?.gitCommit}...master`"
target="_blank"
rel="noopener"
>between
<code>{{ store.state.serverConfiguration?.gitCommit }}</code> and
<code>master</code></a
>
to see what you are missing
</li>
<li>
Compare
<a
:href="`https://github.com/thelounge/thelounge/compare/${store.state.serverConfiguration?.version}...${store.state.serverConfiguration?.gitCommit}`"
target="_blank"
rel="noopener"
>between
<code>{{ store.state.serverConfiguration?.version }}</code> and
<code>{{ store.state.serverConfiguration?.gitCommit }}</code></a
>
to see your local changes
</li>
</ul>
</template>
<p>
<a
href="https://thelounge.chat/"
target="_blank"
rel="noopener"
class="website-link"
>Website</a
>
</p>
<p>
<a
href="https://thelounge.chat/docs/"
target="_blank"
rel="noopener"
class="documentation-link"
>Documentation</a
>
</p>
<p>
<a
href="https://github.com/thelounge/thelounge/issues/new"
target="_blank"
rel="noopener"
class="report-issue-link"
>Report an issue</a
>
</p>
</div>
<h2 v-if="isTouch">Gestures</h2>
<div v-if="isTouch" class="help-item">
<div class="subject gesture">Single-Finger Swipe Left</div>
<div class="description">
<p>Hide sidebar.</p>
</div>
</div>
<div v-if="isTouch" class="help-item">
<div class="subject gesture">Single-Finger Swipe Right</div>
<div class="description">
<p>Show sidebar.</p>
</div>
</div>
<div v-if="isTouch" class="help-item">
<div class="subject gesture">Two-Finger Swipe Left</div>
<div class="description">
<p>Switch to the next window in the channel list.</p>
</div>
</div>
<div v-if="isTouch" class="help-item">
<div class="subject gesture">Two-Finger Swipe Right</div>
<div class="description">
<p>Switch to the previous window in the channel list.</p>
</div>
</div>
<h2>Keyboard Shortcuts</h2>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the next lobby in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the previous lobby in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Collapse current network.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Expand current network.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the next window in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the previous window in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Ctrl</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the next window with unread messages in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Ctrl</kbd> <kbd></kbd></span>
<span v-else><kbd></kbd> <kbd></kbd> <kbd></kbd></span>
</div>
<div class="description">
<p>Switch to the previous window with unread messages in the channel list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>A</kbd></span>
<span v-else><kbd></kbd> <kbd>A</kbd></span>
</div>
<div class="description">
<p>Switch to the first window with unread messages.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>S</kbd></span>
<span v-else><kbd></kbd> <kbd>S</kbd></span>
</div>
<div class="description">
<p>Toggle sidebar.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>U</kbd></span>
<span v-else><kbd></kbd> <kbd>U</kbd></span>
</div>
<div class="description">
<p>Toggle channel user list.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>J</kbd></span>
<span v-else><kbd></kbd> <kbd>J</kbd></span>
</div>
<div class="description">
<p>Toggle jump to channel switcher.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>M</kbd></span>
<span v-else><kbd></kbd> <kbd>M</kbd></span>
</div>
<div class="description">
<p>Toggle recent mentions popup.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>/</kbd></span>
<span v-else><kbd></kbd> <kbd>/</kbd></span>
</div>
<div class="description">
<p>Switch to the help menu.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span><kbd>Esc</kbd></span>
</div>
<div class="description">
<p>
Close current contextual window (context menu, image viewer, topic edit,
etc) and remove focus from input.
</p>
</div>
</div>
<h2>Formatting Shortcuts</h2>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>K</kbd></span>
<span v-else><kbd></kbd> <kbd>K</kbd></span>
</div>
<div class="description">
<p>
Mark any text typed after this shortcut to be colored. After hitting this
shortcut, enter an integer in the range
<code>015</code> to select the desired color, or use the autocompletion
menu to choose a color name (see below).
</p>
<p>
Background color can be specified by putting a comma and another integer in
the range <code>015</code> after the foreground color number
(autocompletion works too).
</p>
<p>
A color reference can be found
<a
href="https://modern.ircdocs.horse/formatting.html#colors"
target="_blank"
rel="noopener"
>here</a
>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>B</kbd></span>
<span v-else><kbd></kbd> <kbd>B</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut as
<span class="irc-bold">bold</span>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>U</kbd></span>
<span v-else><kbd></kbd> <kbd>U</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut as
<span class="irc-underline">underlined</span>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>I</kbd></span>
<span v-else><kbd></kbd> <kbd>I</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut as
<span class="irc-italic">italics</span>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>S</kbd></span>
<span v-else><kbd></kbd> <kbd>S</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut as
<span class="irc-strikethrough">struck through</span>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>M</kbd></span>
<span v-else><kbd></kbd> <kbd>M</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut as
<span class="irc-monospace">monospaced</span>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span v-if="!isApple"><kbd>Ctrl</kbd> <kbd>O</kbd></span>
<span v-else><kbd></kbd> <kbd>O</kbd></span>
</div>
<div class="description">
<p>
Mark all text typed after this shortcut to be reset to its original
formatting.
</p>
</div>
</div>
<h2>Autocompletion</h2>
<p>
To auto-complete nicknames, channels, commands, and emoji, type one of the
characters below to open a suggestion list. Use the <kbd></kbd> and
<kbd></kbd> keys to highlight an item, and insert it by pressing <kbd>Tab</kbd> or
<kbd>Enter</kbd> (or by clicking the desired item).
</p>
<p>Autocompletion can be disabled in settings.</p>
<div class="help-item">
<div class="subject">
<code>@</code>
</div>
<div class="description">
<p>Nickname</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>#</code>
</div>
<div class="description">
<p>Channel</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/</code>
</div>
<div class="description">
<p>Commands (see list of commands below)</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>:</code>
</div>
<div class="description">
<p>
Emoji (note: requires two search characters, to avoid conflicting with
common emoticons like <code>:)</code>)
</p>
</div>
</div>
<h2>Commands</h2>
<div class="help-item">
<div class="subject">
<code>/away [message]</code>
</div>
<div class="description">
<p>Mark yourself as away with an optional message.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/back</code>
</div>
<div class="description">
<p>Remove your away status (set with <code>/away</code>).</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/ban nick</code>
</div>
<div class="description">
<p>
Ban (<code>+b</code>) a user from the current channel. This can be a
nickname or a hostmask.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/banlist</code>
</div>
<div class="description">
<p>Load the banlist for the current channel.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/collapse</code>
</div>
<div class="description">
<p>
Collapse all previews in the current channel (opposite of
<code>/expand</code>)
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/connect host [port]</code>
</div>
<div class="description">
<p>
Connect to a new IRC network. If <code>port</code> starts with a
<code>+</code> sign, the connection will be made secure using TLS.
</p>
<p>Alias: <code>/server</code></p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/ctcp target cmd [args]</code>
</div>
<div class="description">
<p>
Send a <abbr title="Client-to-client protocol">CTCP</abbr>
request. Read more about this on
<a
href="https://en.wikipedia.org/wiki/Client-to-client_protocol"
target="_blank"
rel="noopener"
>the dedicated Wikipedia article</a
>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/deop nick [...nick]</code>
</div>
<div class="description">
<p>
Remove op (<code>-o</code>) from one or several users in the current
channel.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/devoice nick [...nick]</code>
</div>
<div class="description">
<p>
Remove voice (<code>-v</code>) from one or several users in the current
channel.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/disconnect [message]</code>
</div>
<div class="description">
<p>Disconnect from the current network with an optionally-provided message.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/expand</code>
</div>
<div class="description">
<p>
Expand all previews in the current channel (opposite of
<code>/collapse</code>)
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/invite nick [channel]</code>
</div>
<div class="description">
<p>
Invite a user to the specified channel. If
<code>channel</code> is omitted, user will be invited to the current
channel.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/ignore nick</code>
</div>
<div class="description">
<p>
Block any messages from the specified user on the current network. This can
be a nickname or a hostmask.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/ignorelist</code>
</div>
<div class="description">
<p>Load the list of ignored users for the current network.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/join channel [password]</code>
</div>
<div class="description">
<p>
Join a channel. Password is only needed in protected channels and can
usually be omitted.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/kick nick [reason]</code>
</div>
<div class="description">
<p>Kick a user from the current channel.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/kickban nick [reason]</code>
</div>
<div class="description">
<p>
Kick and ban (<code>+b</code>) a user from the current channel. Unlike
<code>/ban</code>, only nicknames (and not host masks) can be used.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/list</code>
</div>
<div class="description">
<p>Retrieve a list of available channels on this network.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/me message</code>
</div>
<div class="description">
<p>
Send an action message to the current channel. The Lounge will display it
inline, as if the message was posted in the third person.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/mode flags [args]</code>
</div>
<div class="description">
<p>
Set the given flags to the current channel if the active window is a
channel, another user if the active window is a private message window, or
yourself if the current window is a server window.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/msg channel message</code>
</div>
<div class="description">
<p>Send a message to the specified channel.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/mute [...channel]</code>
</div>
<div class="description">
<p>
Prevent messages from generating any feedback for a channel. This turns off
the highlight indicator, hides mentions and inhibits push notifications.
Muting a network lobby mutes the entire network. Not specifying any channel
target mutes the current channel. Revert with <code>/unmute</code>.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/nick newnick</code>
</div>
<div class="description">
<p>Change your nickname on the current network.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/notice channel message</code>
</div>
<div class="description">
<p>Sends a notice message to the specified channel.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/op nick [...nick]</code>
</div>
<div class="description">
<p>Give op (<code>+o</code>) to one or several users in the current channel.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/part [channel]</code>
</div>
<div class="description">
<p>
Close the specified channel or private message window, or the current
channel if <code>channel</code> is omitted.
</p>
<p>Aliases: <code>/close</code>, <code>/leave</code></p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/rejoin</code>
</div>
<div class="description">
<p>
Leave and immediately rejoin the current channel. Useful to quickly get op
from ChanServ in an empty channel, for example.
</p>
<p>Alias: <code>/cycle</code></p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/query nick</code>
</div>
<div class="description">
<p>Send a private message to the specified user.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/quit [message]</code>
</div>
<div class="description">
<p>Disconnect from the current network with an optional message.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/raw message</code>
</div>
<div class="description">
<p>Send a raw message to the current IRC network.</p>
<p>Aliases: <code>/quote</code>, <code>/send</code></p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/slap nick</code>
</div>
<div class="description">
<p>Slap someone in the current channel with a trout!</p>
</div>
</div>
<div v-if="store.state.settings.searchEnabled" class="help-item">
<div class="subject">
<code>/search query</code>
</div>
<div class="description">
<p>Search for messages in the current channel / user</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/topic [newtopic]</code>
</div>
<div class="description">
<p>
Get the topic in the current channel. If <code>newtopic</code> is specified,
sets the topic in the current channel.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/unban nick</code>
</div>
<div class="description">
<p>
Unban (<code>-b</code>) a user from the current channel. This can be a
nickname or a hostmask.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/unignore nick</code>
</div>
<div class="description">
<p>
Unblock messages from the specified user on the current network. This can be
a nickname or a hostmask.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/unmute [...channel]</code>
</div>
<div class="description">
<p>
Un-mutes the given channel(s) or the current channel if no channel is
provided. See <code>/mute</code> for more information.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/voice nick [...nick]</code>
</div>
<div class="description">
<p>
Give voice (<code>+v</code>) to one or several users in the current channel.
</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/whois nick</code>
</div>
<div class="description">
<p>Retrieve information about the given user on the current network.</p>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import {defineComponent, ref} from "vue";
import {useStore} from "../../js/store";
import SidebarToggle from "../SidebarToggle.vue";
import VersionChecker from "../VersionChecker.vue";
export default defineComponent({
name: "Help",
components: {
SidebarToggle,
VersionChecker,
},
setup() {
const store = useStore();
const isApple = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) || false;
const isTouch = navigator.maxTouchPoints > 0;
return {
isApple,
isTouch,
store,
};
},
});
</script>

View file

@ -0,0 +1,67 @@
<template>
<NetworkForm
v-if="networkData"
:handle-submit="handleSubmit"
:defaults="networkData"
:disabled="disabled"
/>
</template>
<script lang="ts">
import {defineComponent, onMounted, ref, watch} from "vue";
import {useRoute} from "vue-router";
import {switchToChannel} from "../../js/router";
import socket from "../../js/socket";
import {useStore} from "../../js/store";
import NetworkForm, {NetworkFormDefaults} from "../NetworkForm.vue";
export default defineComponent({
name: "NetworkEdit",
components: {
NetworkForm,
},
setup() {
const route = useRoute();
const store = useStore();
const disabled = ref(false);
const networkData = ref<NetworkFormDefaults | null>(null);
const setNetworkData = () => {
socket.emit("network:get", String(route.params.uuid || ""));
networkData.value = store.getters.findNetwork(String(route.params.uuid || ""));
};
const handleSubmit = (data: {uuid: string; name: string}) => {
disabled.value = true;
socket.emit("network:edit", data);
// TODO: move networks to vuex and update state when the network info comes in
const network = store.getters.findNetwork(data.uuid);
if (network) {
network.name = network.channels[0].name = data.name;
switchToChannel(network.channels[0]);
}
};
watch(
() => route.params.uuid,
() => {
setNetworkData();
}
);
onMounted(() => {
setNetworkData();
});
return {
disabled,
networkData,
handleSubmit,
};
},
});
</script>

View file

@ -0,0 +1,321 @@
<template>
<div id="chat-container" class="window">
<div
id="chat"
:class="{
'time-seconds': store.state.settings.showSeconds,
'time-12h': store.state.settings.use12hClock,
}"
>
<div
class="chat-view"
data-type="search-results"
aria-label="Search results"
role="tabpanel"
>
<div v-if="network && channel" class="header">
<SidebarToggle />
<span class="title"
>Searching in <span class="channel-name">{{ channel.name }}</span> for</span
>
<span class="topic">{{ route.query.q }}</span>
<MessageSearchForm :network="network" :channel="channel" />
<button
class="close"
aria-label="Close search window"
title="Close search window"
@click="closeSearch"
/>
</div>
<div v-if="network && channel" class="chat-content">
<div ref="chat" class="chat" tabindex="-1">
<div v-show="moreResultsAvailable" class="show-more">
<button
ref="loadMoreButton"
:disabled="
!!store.state.messageSearchPendingQuery ||
!store.state.isConnected
"
class="btn"
@click="onShowMoreClick"
>
<span v-if="store.state.messageSearchPendingQuery">Loading</span>
<span v-else>Show older messages</span>
</button>
</div>
<div
v-if="store.state.messageSearchPendingQuery && !offset"
class="search-status"
>
Searching
</div>
<div v-else-if="!messages.length && !offset" class="search-status">
No results found.
</div>
<div
class="messages"
role="log"
aria-live="polite"
aria-relevant="additions"
>
<div
v-for="(message, id) in messages"
:key="message.id"
class="result"
@click="jump(message, id)"
>
<DateMarker
v-if="shouldDisplayDateMarker(message, id)"
:key="message.id + '-date'"
:message="message"
/>
<Message
:key="message.id"
:channel="channel"
:network="network"
:message="message"
:data-id="message.id"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<style>
.channel-name {
font-weight: 700;
}
</style>
<script lang="ts">
import socket from "../../js/socket";
import eventbus from "../../js/eventbus";
import SidebarToggle from "../SidebarToggle.vue";
import Message from "../Message.vue";
import MessageSearchForm from "../MessageSearchForm.vue";
import DateMarker from "../DateMarker.vue";
import {watch, computed, defineComponent, nextTick, ref, onMounted, onUnmounted} from "vue";
import type {ClientMessage} from "../../js/types";
import {useStore} from "../../js/store";
import {useRoute, useRouter} from "vue-router";
import {switchToChannel} from "../../js/router";
import {SearchQuery} from "../../../shared/types/storage";
export default defineComponent({
name: "SearchResults",
components: {
SidebarToggle,
Message,
DateMarker,
MessageSearchForm,
},
setup() {
const store = useStore();
const route = useRoute();
const router = useRouter();
const chat = ref<HTMLDivElement>();
const loadMoreButton = ref<HTMLButtonElement>();
const offset = ref(0);
const moreResultsAvailable = ref(false);
const oldScrollTop = ref(0);
const oldChatHeight = ref(0);
const messages = computed(() => {
const results = store.state.messageSearchResults?.results;
if (!results) {
return [];
}
return results;
});
const chan = computed(() => {
const chanId = parseInt(String(route.params.id || ""), 10);
return store.getters.findChannel(chanId);
});
const network = computed(() => {
if (!chan.value) {
return null;
}
return chan.value.network;
});
const channel = computed(() => {
if (!chan.value) {
return null;
}
return chan.value.channel;
});
const setActiveChannel = () => {
if (!chan.value) {
return;
}
store.commit("activeChannel", chan.value);
};
const closeSearch = () => {
if (!channel.value) {
return;
}
switchToChannel(channel.value);
};
const shouldDisplayDateMarker = (message: ClientMessage, id: number) => {
const previousMessage = messages.value[id - 1];
if (!previousMessage) {
return true;
}
return new Date(previousMessage.time).getDay() !== new Date(message.time).getDay();
};
const clearSearchState = () => {
offset.value = 0;
store.commit("messageSearchResults", null);
store.commit("messageSearchPendingQuery", null);
};
const doSearch = () => {
if (!network.value || !channel.value) {
return;
}
clearSearchState(); // this is a new search, so we need to clear anything before that
const query: SearchQuery = {
networkUuid: network.value.uuid,
channelName: channel.value.name,
searchTerm: String(route.query.q || ""),
offset: offset.value,
};
store.commit("messageSearchPendingQuery", query);
socket.emit("search", query);
};
const onShowMoreClick = () => {
if (!chat.value || !network.value || !channel.value) {
return;
}
offset.value += 100;
oldScrollTop.value = chat.value.scrollTop;
oldChatHeight.value = chat.value.scrollHeight;
const query: SearchQuery = {
networkUuid: network.value.uuid,
channelName: channel.value.name,
searchTerm: String(route.query.q || ""),
offset: offset.value,
};
store.commit("messageSearchPendingQuery", query);
socket.emit("search", query);
};
const jumpToBottom = async () => {
await nextTick();
const el = chat.value;
if (!el) {
return;
}
el.scrollTop = el.scrollHeight;
};
const jump = (message: ClientMessage, id: number) => {
// TODO: Implement jumping to messages!
// This is difficult because it means client will need to handle a potentially nonlinear message set
// (loading IntersectionObserver both before AND after the messages)
};
watch(
() => route.params.id,
() => {
doSearch();
setActiveChannel();
}
);
watch(
() => route.query,
() => {
doSearch();
setActiveChannel();
}
);
watch(messages, async () => {
moreResultsAvailable.value = !!(
messages.value.length && !(messages.value.length % 100)
);
if (!offset.value) {
await jumpToBottom();
} else {
await nextTick();
const el = chat.value;
if (!el) {
return;
}
const currentChatHeight = el.scrollHeight;
el.scrollTop = oldScrollTop.value + currentChatHeight - oldChatHeight.value;
}
});
onMounted(() => {
setActiveChannel();
doSearch();
eventbus.on("escapekey", closeSearch);
eventbus.on("re-search", doSearch);
});
onUnmounted(() => {
eventbus.off("escapekey", closeSearch);
eventbus.off("re-search", doSearch);
clearSearchState();
});
return {
chat,
loadMoreButton,
messages,
moreResultsAvailable,
network,
channel,
route,
offset,
store,
setActiveChannel,
closeSearch,
shouldDisplayDateMarker,
doSearch,
onShowMoreClick,
jumpToBottom,
jump,
};
},
});
</script>

View file

@ -0,0 +1,56 @@
<template>
<div id="settings" class="window" role="tabpanel" aria-label="Settings">
<div class="header">
<SidebarToggle />
</div>
<Navigation />
<div class="container">
<form ref="settingsForm" autocomplete="off" @change="onChange" @submit.prevent>
<router-view></router-view>
</form>
</div>
</div>
</template>
<script lang="ts">
import {defineComponent} from "vue";
import SidebarToggle from "../SidebarToggle.vue";
import Navigation from "../Settings/Navigation.vue";
import {useStore} from "../../js/store";
export default defineComponent({
name: "Settings",
components: {
SidebarToggle,
Navigation,
},
setup() {
const store = useStore();
const onChange = (event: Event) => {
const ignore = ["old_password", "new_password", "verify_password"];
const name = (event.target as HTMLInputElement).name;
if (ignore.includes(name)) {
return;
}
let value: boolean | string;
if ((event.target as HTMLInputElement).type === "checkbox") {
value = (event.target as HTMLInputElement).checked;
} else {
value = (event.target as HTMLInputElement).value;
}
void store.dispatch("settings/update", {name, value, sync: true});
};
return {
onChange,
};
},
});
</script>

Some files were not shown because too many files have changed in this diff Show more