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.
* 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.
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.
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.
* 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
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).
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.
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.
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.