Frédéric Guillot
f2e34cf07f
refactor(js): split openOriginalLink()
into smaller functions
2025-08-02 18:44:12 -07:00
Frédéric Guillot
5c3be3e74f
refactor(js): combine handleShare()
and triggerWebShare()
functions
2025-08-02 18:44:12 -07:00
Frédéric Guillot
2e28bf78bd
refactor(js): improve item navigation logic in goToListItem function
2025-08-02 16:12:53 -07:00
Frédéric Guillot
52c1386450
refactor(js): enable touch handlers only on touch devices and fix various issues in WebAuthnHandler
2025-08-02 15:39:01 -07:00
Frédéric Guillot
4910f1f0f4
refactor(js): remove RequestBuilder
2025-08-02 15:14:35 -07:00
Frédéric Guillot
bbe3c2ea71
refactor(js): simplify some functions using modern JavaScript
2025-08-02 14:06:18 -07:00
Frédéric Guillot
b116da85a9
refactor(js): remove bootstrap.js
2025-08-02 13:41:40 -07:00
Frédéric Guillot
07246e2b59
refactor(js): improve menu handlers
2025-08-02 13:09:57 -07:00
Frédéric Guillot
62410659d5
refactor(js): code cleanup and add jshint comments
2025-08-02 12:38:29 -07:00
Frédéric Guillot
3e1a7e411c
feat(js): register the service worker as JavaScript module
2025-08-02 11:26:43 -07:00
Frédéric Guillot
bfbc1c88c3
feat(js): load app.js
using JavaScript module
...
- The JS bundle has its own isolated scope
- There is no need to use IIFEs anymore (Immediately Invoked Function Expressions)
- Modules are executed after the HTML document is fully parsed, similar to `defer` attribute
- There is no need to use `DOMContentLoaded` anymore
- Module scripts inherently run in strict mode (no need to define `use strict` anymore)
2025-08-02 11:07:27 -07:00
Frédéric Guillot
50197c2be3
refactor(js): reorder functions and add comments
2025-08-01 21:56:25 -07:00
Frédéric Guillot
7a25cf5037
fix(js): handle multiple buttons in a single form when showing loading state
2025-08-01 20:53:59 -07:00
Frédéric Guillot
1ec90e34f5
refactor(js): simplify CSRF token retrieval from the document
2025-08-01 20:44:40 -07:00
Frédéric Guillot
5e07278e87
feat(ui): refresh the page when marking as read the last visible entry
2025-08-01 20:16:45 -07:00
Frédéric Guillot
bfd8cb3d22
feat(ui): add icons to main menu
2025-07-30 19:12:50 -07:00
jvoisin
32fbb4e882
fix(ui): improve margins consistency wrt. header/footer
2025-07-08 19:30:13 -07:00
jvoisin
93b17af78b
refactor(appjs): no need to check if always present elements are always present
2025-06-20 13:16:57 -07:00
Frédéric Guillot
b0a10f02fd
feat(css): add margin-bottom to input for consistent spacing
2025-06-19 16:35:17 -07:00
Frédéric Guillot
70b513b8db
feat(ui): display external URL in single entry view
...
Display the article's external URL directly in the single entry view.
Rationale: On mobile devices, users couldn't see where a link pointed before tapping it.
Previously, the only way to view the external URL was by hovering - an action not available on touch devices.
2025-06-09 21:14:55 -07:00
Frédéric Guillot
a8bb7a48d7
feat(ui): avoid showing an excessive number of tags
2025-06-08 15:29:09 -07:00
Frédéric Guillot
764212f37c
refactor(js): replace DomHelper
methods with standalone functions
2025-04-17 18:15:08 -07:00
Tali Auster
e02b65d4bc
fix: deal with navigator.share exceptions
...
Navigator.share returns a promise that's executed in the background, but
unless we await it explicitly, we won't get the exceptions in the
try/catch block.
2025-04-17 17:07:38 -07:00
Frédéric Guillot
969efd2af7
fix(ui): update share feature to correctly select title element and handle empty title
2025-03-28 15:36:43 -07:00
Frédéric Guillot
87fccfee3a
fix(ui): remove touch-action style because it could cause horizontal scrolling issue
2025-03-28 15:20:31 -07:00
Frédéric Guillot
991c54150d
fix(css): avoid aside overflow on the pagination menu
2025-02-15 17:15:52 -08:00
Frédéric Guillot
0c74497ef7
fix(js): regression introduced in commit ffe1be5
...
The default argument should be set to false.
2025-01-24 17:52:58 -08:00
jvoisin
ffe1be59ea
Use a default parameter for goToPage as isn't ~always called with a single one
2025-01-23 19:20:13 -08:00
jvoisin
2318e9011d
Use proper types in app.js
2025-01-23 19:20:13 -08:00
jvoisin
67df305ac2
Use shortcuts to declare padding
2025-01-23 19:20:13 -08:00
jvoisin
71c7845c42
Anchor =
removal in webauthn_handler.js
...
Since we're base64-encoding, `=` can only happen at the end, so no need to
traverse the whole payload.
2025-01-23 19:20:13 -08:00
jvoisin
aa56d23551
Replace the deprecated window.pageYOffset with window.scollY
...
See https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY
2025-01-23 19:20:13 -08:00
jvoisin
3cd448099d
Remove a useless return
2025-01-23 19:20:13 -08:00
Frédéric Guillot
47ccefba4e
fix(css): --entry-content-aside-border-color
is missing from
...
`system.css`
2025-01-22 21:00:50 -08:00
Frédéric Guillot
e74d875d95
feat(css): improve aside element position on smartphone
2025-01-22 20:24:33 -08:00
Frédéric Guillot
c9c422b135
feat: bump linter and minifier from ECMAScript 2017 to 2020 (ES11)
2025-01-18 11:32:50 -08:00
Julien Voisin
91f9a7650e
refactor(js): add jshint check for strict comparison
2025-01-16 17:50:09 -08:00
jvoisin
605eeb4525
Fix a mistake introduced in f67d2e230b
...
Spotted by @michaelkuhn
2025-01-16 17:37:54 -08:00
Julien Voisin
eb6991ae49
tests(js): improve .jshintrc
2025-01-15 18:43:03 -08:00
Julien Voisin
6af0cd5b5c
refactor(js): simplify a bit keyboard_handler.js
...
- Mark two methods as static
- Use a `switch-case` construct instead of an Object and a loop.
2025-01-14 20:50:21 -08:00
Julien Voisin
fccca0ce1e
refactor(js): minor refactoring of touch_handler.js
...
- Mark a method as `static`
- use `Math.sqrt` instead of `Math.pow(…, 0.5)`
- Use `Math.sign` instead of a condition on the sign
- Inline some used-once variables
- Reduce the scope of some variables
2025-01-14 20:47:30 -08:00
Julien Voisin
8c3a9184ac
refactor(js): remove an outdated check for {passive: true}
...
According to https://caniuse.com/?search=passive ,
all browsers released after 2016 do support passive event listeners,
so no need to check for its presence.
2025-01-14 20:18:11 -08:00
Julien Voisin
1e54a073d3
refactor(js): minor improvements in app.js
...
- Use `….classList.toggle` instead of `….classList.add`/`….classList.remove` in a condition
- Replace a `function()` with a `() =>`
- Use `Math.min` instead of a handwritten condition
2025-01-12 12:54:08 -08:00
jvoisin
a06657b74d
Factorise a line in internal/ui/static/js/app.js
2024-12-15 20:54:17 -08:00
jvoisin
14a6e8ed3a
Factorise .pagination-next and .pagination-last together
2024-12-15 17:03:09 -08:00
jvoisin
c3e842eba6
Remove -webkit-clip-path
...
https://caniuse.com/?search=clip-path says that `clip-path`
is supported since Safari 13.1
2024-12-15 17:03:09 -08:00
jvoisin
fd9cfd757a
Replace -ms-text-size-adjust with text-size-adjust
...
https://caniuse.com/?search=text-size-adjust says that
`ms-text-size-adjust` is supported in Edge.
2024-12-15 17:03:09 -08:00
Frédéric Guillot
51030ef1a8
feat(webauthn): show help message regarding username and non-discoverable credentials
...
The username is required for non-resident keys, but it's not necessary for discoverable credentials like Passkeys.
2024-10-26 21:49:23 -07:00
Frédéric Guillot
e555e442fb
feat: add new settings option to allow external fonts
2024-10-05 21:21:12 -07:00
Loïc Doubinine
4f55361f5f
feat: mark media as read when playback reaches 90%
2024-07-28 12:29:45 -07:00