Commit graph

542 commits

Author SHA1 Message Date
Max Leiter
9053a0bb6a Strikethrough and underline support 2018-03-18 12:37:53 -07: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
6828cd1075
Fix transitions of sidebar overlay 2018-03-17 21:08:08 -04:00
Pavel Djundik
5bb0b198e6 Disable scrolling through sidebar overlay 2018-03-17 11:35:33 +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
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
Jérémie Astori
ed67dc5de5
Add logo to the sign in page 2018-03-13 23:05:11 -04:00
Pavel Djundik
74220d8a24 Allow hiding channel list on desktop
Fixes #17
2018-03-13 17:00:02 +02: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
43fc531a6f Fix join and part icons 2018-03-12 17:37:57 +02: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
Pavel Djundik
b01e01bc19 Convert most of the layout to flexbox, make sidebar an overlay 2018-03-11 00:23:43 +02:00
Pavel Djundik
c86c4f0362
Remove contain as it's causing rendering issues 2018-03-09 13:01:02 +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
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
653b46e2f4
Always hide horizontal overflow in chat 2018-03-09 09:31:58 +02:00
Pavel Djundik
0fb462c88e Optimized notification dot state 2018-03-08 15:46:05 +02:00
Pavel Djundik
884984f9b4 Cleanup sidebar to use flexbox 2018-03-08 08:50:04 +02:00
Pavel Djundik
fe51c6d7e7 Move video size to css 2018-03-07 12:53:28 +02:00
Pavel Djundik
8b417fe97a Fix chat and userlist not scrolling 2018-03-06 20:21:00 +02:00
Pavel Djundik
e719e4ff81 Cleanup chat/userlist to use flexbox, fix a couple of bugs 2018-03-05 18:17:13 +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
276266e24f Center loading screen 2018-03-03 09:45:24 +02: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
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
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
c051b70537 Refactor channel titles to use flexbox 2018-02-26 22:40:43 +02: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
e03694b49c
Let user know someone is making a CTCP request against their nick 2018-02-22 00:42:33 -05:00
Pavel Djundik
59ec07be87
Update all links to thelounge repository 2018-02-21 22:47:52 -05:00
Pavel Djundik
37c61e2413 Report server errors when preview fetch fails 2018-02-20 11:33:42 +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
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
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
Pavel Djundik
f7449c565f Fix border after nickname not taking full height
Fixes #2054
2018-02-13 12:37:10 +02: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
91e3ca88bb
UI for "Image too large" errors 2018-02-01 21:14:37 -05:00
Max Leiter
8057c416fb Add tooltip to close channel/leave query button on sidebar 2018-01-29 09:36:09 -08: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
William Boman
dfe4b2f6d6 fix animation jitter when clicking join channel button 2018-01-04 10:53:07 +01:00
Jérémie Astori
04fee16fec
Fix CSS currently failing Stylelint checker 2017-12-28 17:07:08 -05:00
Pavel Djundik
069cb6192f Mute disabled inputs 2017-12-28 10:44:37 +02: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
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
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
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
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
98cab94f9b
Add visual feedback on focused buttons, for example when tabbing to it 2017-12-21 16:38:20 -05:00
Max Leiter
32b4349130 Update to primer on npm, set tooltipped-no-delay for all tooltips 2017-12-20 22:04:13 -08:00
Pavel Djundik
2b7657a9e7 Format whois as a definition list 2017-12-18 19:40:01 +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
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
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
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
7dcab09516
Merge pull request #1806 from MaxLeiter/sound
Support audio file previews
2017-12-13 11:03:04 +02:00
Max Leiter
ad1114ccfe Support audio file previews 2017-12-12 11:29:13 -08:00
Pavel Djundik
ccd0a6559b Add styling for 16-98 colors 2017-12-12 20:14:05 +02:00
Erik Vosseberg
33d865501d
Add whois and conversation as action to user contextmenu
Add Op specific actions to contextMenu

Show context menu when left clicking user

Switch to using data attributes as selectors

remove ban as possible action

Move `isOpInChannel()` to utils.js

Capitalize strings

use CSS.escape for `ownNick`

use string interpolation

properly point to findCurrentNetworkChan

Move context menu item actions to command pattern

add icons for context menu actions

Make list in context menu always list.

remove empty lines in style.css

use info circle instead of question circle

change context menu labels.

change contextMenuActions.execute to more explicit method.
2017-12-11 23:04:29 -05:00
Jérémie Astori
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
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
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
11568d7405 Align message container to the bottom 2017-12-01 12:41:26 +02:00
Max Leiter
d9d4672d75 Fix text highlighting when clicking on condensed message toggles 2017-11-26 14:05:23 -08:00
Pavel Djundik
e3515d2ea1 Update stylelint rules 2017-11-26 14:28:33 +02:00
realies
5c4e1e55a6
fix gap between #sidebar and #footer 2017-11-08 18:01:35 +02:00
Amos Ng
e83ba807f4
Fix hyphenated names overflowing (#1667) 2017-10-31 00:01:35 +08:00
Swapnull
449976b0f9 reduce padding around titles 2017-10-18 21:00:18 +01: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
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
Jérémie Astori
a93adcbdfa
Give chat timestamp a fix width to fix message alignment issues 2017-10-01 01:12:08 -04: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
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
5728424c75
Use monospace font in custom CSS textarea 2017-09-26 11:21:42 -04:00
Pavel Djundik
d7e6db92b5 Implement session list 2017-09-26 10:56:08 +03: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
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
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
Jérémie Astori
3eaf12cc36
Increase font size on desktops and mobiles 2017-09-21 03:26:30 -04:00
Pavel Djundik
1c065ad1b6 Remove duplicate keybindings help 2017-09-20 10:57:43 +03:00