Commit Graph

207 Commits

Author SHA1 Message Date
Pavel Djundik
66ea26f4bd Resolve relative URIs in link previewer
Also adds support for image_src links
2017-08-13 13:06:01 +03: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
900d41bf47
Re-use .previews to order incoming previews instead of extra links 2017-07-21 01:51:51 -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
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
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
Pavel Djundik
14b2ad7938 Refactor link previews 2017-07-03 00:41:18 +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
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
Pavel Djundik
bd9e41f2c1 Fix localtime test to correctly use UTC 2017-06-03 10:29:52 +03:00
Pavel Djundik
acf5dd5351 Do not store unnecessary information in user objects 2017-06-01 21:54:46 +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
700d3c1ff2 Use moment to render dates everywhere 2017-05-01 21:31:31 +03: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
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
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
Pavel Djundik
c0e364e1c2 Store channel keys 2017-04-01 15:28:38 -04: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
Pavel Djundik
4a68b78fd5 Implement away message restoration on reconnections and auto away 2017-03-29 00:27:58 -04:00
Pavel Djundik
3b2e3fc08c Enforce more space and new line rules 2017-03-18 21:40:39 +02:00
Pavel Djundik
f65a5a8c89 Add web server tests 2016-12-28 03:31:33 -05:00
Pavel Djundik
fb87bd3a58 Webpack 2016-12-27 19:15:30 +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
Pavel Djundik
62d4cd8fe8 Use correct channel when pushing link prefetch messages
Fixes #781
2016-12-09 23:00:33 +02:00
Pavel Djundik
708788338c Add support for hexip ilines 2016-11-19 20:32:47 +02:00
Pavel Djundik
c5e0dee3a3 Change bcrypt rounds from 8 to 11 2016-10-22 09:24:27 +03: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
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
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
aa02fd5180 Enforce more eslint rules 2016-10-09 17:55:37 -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
Pavel Djundik
8f3f1ca0b1 Fix memory and reference shuffling when creating models 2016-10-08 21:49:31 +03: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
Pavel Djundik
e445fd8e25 Store channels in array format 2016-07-03 21:58:31 +03:00
Pavel Djundik
d6f2def825 Do not override HOME env in tests 2016-05-15 17:02:53 -04:00
Pavel Djundik
8a7d1e880b Add nick highlight tests 2016-05-12 15:55:36 +03:00
Pavel Djundik
9543fe060e Merge pull request #260 from maxpoulin64/mocha-lint
Improve tests execution
2016-05-09 11:29:11 +03:00
Maxime Poulin
164b983f99
Always run all tests and test them each individually on travis 2016-05-08 02:24:10 -04:00
Maxime Poulin
96d282e73c
Add WEBIRC support
Fixes #181
2016-05-02 00:45:19 -04:00
Pavel Djundik
e75a8f40a6 Stricter eslint rule for curly brackets 2016-05-01 12:41:17 +03:00
Pavel Djundik
2f1eec32b3 Create real channel object in tests 2016-04-19 13:24:57 +03:00
Pavel Djundik
4a7fc0544e Fix link test not using network model 2016-04-07 16:07:40 -04:00
Jérémie Astori
40677e3248 Update tests to match the new irc-framework models 2016-04-07 16:06:03 -04:00
Pavel Djundik
db5fe00b60 A couple of fixes after rebasing and updating framework 2016-04-07 16:06:01 -04:00
Pavel Djundik
470b0a2c4f Fix test 2016-04-07 16:04:40 -04:00
Jérémie Astori
f35b0df7e0 Add a very basic test for Network#export 2016-03-16 08:54:06 -04:00
Jérémie Astori
6495f1769e Add tests for the sortUsers method 2016-03-16 01:08:39 -04:00
Jérémie Astori
75040e07c6 Rename the fixture folder, forgotten while switching to new project name 2016-02-12 04:52:32 +00:00
William Boman
8fdfd70c7e Comply with ESLint 2015-10-26 03:01:47 +01:00
William Boman
181b78a02f test: add fixtures directory 2015-10-02 14:44:39 +02:00
Riku Rouvila
a9026ac8a5 add basic environment for unit testing with mocha 2014-11-17 22:14:28 +02:00