Commit graph

2513 commits

Author SHA1 Message Date
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
Reto Brunner
c0b38d4762 store: use return type over a type cast 2023-07-31 10:50:48 +02:00
Reto Brunner
607b9fc96a update emoji 2023-07-15 10:41:43 +02:00
Reto Brunner
071ad96d9b Merge branch 'signin' 2023-06-25 10:15:21 +02:00
Reto Brunner
c43a47afc1 Merge branch 'applePush' 2023-06-24 14:31:23 +02: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
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
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
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
Lenore
ba1a4206a6 fix motd display to match settings 2023-04-25 00:49:57 +02: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
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
c6a202d6ab
Merge pull request #4686 from thelounge/decoupleServer
Decouple server
2023-02-26 17:20:20 -08: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
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
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
e305e23c43 client: use the versions in shared/ where applicable 2023-01-30 09:14:40 +01:00
Reto Brunner
7f3ac62e0d Merge branch 'searchFixTakeTwo' 2023-01-22 15:22:32 +01: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
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
068de0c10c Merge branch 'nickColorScope' 2022-12-04 12:53:31 +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
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
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
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
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
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
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
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
80f65c5b72
Remove uploading event listeners on ChatInput unmount (#4600) 2022-06-28 13:31:55 -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
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
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
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
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
027c5b4ff7 Remove leading space when copying multiple messages 2022-02-14 19:41:34 +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
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
Val Lorentz
1e3a7b1250 Emit a message for SASL loggedin/loggedout events
Closes GH-3921
2022-02-10 22:30:04 +01:00
Reto
d228a8c4f4
Bump most deps (#4453) 2022-02-09 15:27:34 -08: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
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
Reto Brunner
1953e03253 Add RPL_UMODEIS msg handler 2021-12-06 07:24:21 +01:00
Max Leiter
304d207820
Merge pull request #4361 from supertassu/kickban 2021-12-01 18:25:09 -08:00
Reto
3c70fab7c6
Fix vue/this-in-template linter warning (#4418) 2021-11-30 12:01:45 -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
sfan5
1d5291929c
Add context menu when clicking inline channel name (#4376) 2021-11-29 15:35:26 -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
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
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
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
0381cd11bf
Merge pull request #4345 from itsjohncs/small-db-cleanups
Small cleanup of messageStorage/sqlite.
2021-11-03 15:45:48 -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
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
deejayy
cf18d04f06 Move font assignment of password reveal icon 2021-10-25 19:39:59 +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
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
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
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
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
Taavi Väänänen
7873847a7e
Do not condense single messages (#4313) 2021-09-29 12:33:40 -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