Commit Graph

239 Commits

Author SHA1 Message Date
Andrew Dolgov 5475eed452 bring back hash functions 2021-02-19 06:35:37 +03:00
Andrew Dolgov 70fa423026 initial for RIP prototype/scriptaculous 2021-02-18 21:51:18 +03:00
Andrew Dolgov 7f0800537e silence (or fix) a bunch of eslint warnings 2021-02-12 19:02:09 +03:00
Andrew Dolgov 3d11c61f32 * OPML import: don't reload everything, just feed tree
* dialogs: use auto-destroying dialog for almost all dialogs instead of destroying them manually
* some general dialog-related cleanup
2021-02-12 15:22:10 +03:00
Andrew Dolgov 88027d7a39 fix various minor issues reported by eslint 2020-06-04 23:27:22 +03:00
Andrew Dolgov 9d28b3ac50 unify prefs/main App objects, remove fake classes, use single static App object instead 2020-06-04 22:19:23 +03:00
Andrew Dolgov e37f8cfa78 don't use declare() for static objects with no inheritance because apparently it's not actually needed by AMD 2020-06-04 19:50:13 +03:00
Andrew Dolgov 676cdf6ee4 move isCombinedMode to AppBase so we wouldn't crash in preferences 2020-06-02 21:00:53 +03:00
Andrew Dolgov 409ba0db2d - RIP smooth scrolling and associated hacks
- attempt to make Headlines.move() / Article.cdmMoveToId() behave a bit more intuitively
2020-05-22 21:48:03 +03:00
Andrew Dolgov 9ae9302b6b implement keyboard-related changes discussed in https://community.tt-rss.org/t/changing-the-amount-of-scroll-by-arrow-key/3452/7 2020-05-17 08:25:51 +03:00
Andrew Dolgov 2558fcbe21 add hotkey "\" to cancel current search 2020-05-09 07:56:06 +03:00
ltGuillaume 19064864bf Allow setting Insert (45) and Delete (46) as hotkeys
These are not reported via keypress either, so handle them via keydown.
2020-05-03 14:35:17 +02:00
Andrew Dolgov a65749a512 source validationtextarea in main UI 2020-02-28 14:04:29 +03:00
Andrew Dolgov 4e74da590e af_readability: allow get full text button to work as a toggle; in cdm, scroll to article after embedding 2020-02-28 08:03:25 +03:00
Andrew Dolgov 07b27b375f update toggle_embed_original hotkey to invoke readability embed instead of removed embed_original plugin 2020-02-27 09:47:20 +03:00
Andrew Dolgov 4a4d7a44fa onViewModeChanged: set view mode value as a custom body attribute 2020-01-24 16:04:12 +03:00
Andrew Dolgov 07f4878d59 workaround for a race condition between dojo.parse() and tt-rss loading proper day/night css on startup because of firefox async CSS loader 2019-12-15 11:57:26 +03:00
Andrew Dolgov 0d6add5d7f show alert() if fatal exception happens while initializing base app objects and app.error is not available 2019-12-14 09:39:44 +03:00
Andrew Dolgov 0237dee980 implement automatic night mode detection using MQL
add separate light.css to force light theme
remove manual night mode toggle and related code
2019-12-12 20:09:43 +03:00
Andrew Dolgov 0a10832491 - update descriptions of changed hotkeys
- bind noscroll variants of move article hotkeys to n/p by default
- update N/P (i.e. scroll article content) hotkeys to scroll by fraction of viewport height instead of hardcoded pixel distance
- minor fixes w/ checking for undefined
2019-12-11 06:53:32 +03:00
Andrew Dolgov 44ef447c0f fix fatal error in previous because of event not being passed via Headlines.move()
scrollbypages, etc: make event optional anyway
2019-12-09 23:23:54 +03:00
Andrew Dolgov e7dd634183 exp: auto-disable smooth scrolling for repeat hotkey events 2019-12-09 22:42:43 +03:00
Andrew Dolgov 1902a7dcb0 pgup/pgdown hotkey normalization:
- pgup/pgdown without modifier scroll headline buffer
- shift+pgup/pgdown work similarly to shift+up/down but operating on pages
2019-12-05 17:00:17 +03:00
Andrew Dolgov 6913158b82 add hotkeys to scroll headlines/articles (whichever is active) by one page 2019-12-04 15:50:49 +03:00
Andrew Dolgov 9368f1a07f restore feed from URL hash after feedlist init 2019-05-06 21:57:58 +03:00
Michael Kuhn e38fcd6dea Fix button focus issues
This change introduces derived classes for ComboButton, DropDownButton
and Select that make sure that buttons do not remain focused after their
menus are closed. This allows using hotkeys after closing them.
2019-04-14 12:01:52 +02:00
Michael Kuhn 4a2a90c980 Fix focus issues with hotkeys
Since making use of keypress in addition to keydown, hotkeys did not
work in certain scenarios, including clicking on the feed tree expanders
or empty spaces of the toolbar.

This issue is caused by dijit.Tree and dijit.Toolbar implementing the
_KeyNavMixin, which explicitly stops propagation of keypress events.

This change contains two main fixes plus a smaller hotfix:
1. It overrides _onContainerKeydown and _onContainerKeypress for
   fox.FeedTree (which inherits from dijit.Tree).
2. It adds fox.Toolbar, which overrides _onContainerKeydown,
   _onContainerKeypress and focus. This fixes hotkeys being swallowed
   and the first focusable child receiving focus when clicking on an
   empty space of the toolbar.
3. It adds the same handling of keydown and keypress to the prefs hotkey
   handler as is done in the main hotkey handler.
2019-04-13 22:34:57 +02:00
ltGuillaume 4c72d3b4fc Add keyboard shortcut 'g r': Go to Recently read 2019-04-12 07:28:45 +00:00
Michael Kuhn e74f7bde22 Refactor hotkeys to use keypress instead of keydown
keydown returns the "raw" key in event.which. Depending on the keyboard
layout, this may not be what is wanted. For example, on a German
keyboard, Shift+7 has to be pressed to get a slash. However, event.which
will be 55, which corresponds to "7". In the keypress event, however,
event.which will be 47, which corresponds to "/".

Sadly, several important keys (such as escape and the arrow keys) do not
trigger a keypress event. Therefore, they have to be handled using a
keydown event.

This change refactors the hotkey support to make use of keypress events
whenever possible. This will make hotkeys work regardless of the user's
keyboard layout. Escape and arrow keys are still handled via keydown
events.

There should be only one change in behavior: I could not make Ctrl+/
work and therefore rebound the help dialog to "?".
2019-03-11 12:01:27 +01:00
Andrew Dolgov 957c44d177 rework git update checking to be initiated by frontend, outside of runtime info output 2018-12-16 19:05:37 +03:00
Andrew Dolgov 721f9ad866 requestIdleCallback: remove hard dependency for now 2018-12-11 17:58:10 +03:00
Andrew Dolgov 7a98105960 remove old fatalError(), move everything to App.Error
update exception dialog css
2018-12-11 13:18:38 +03:00
Andrew Dolgov 2cbc2f5261 bring back frontend sanity check w/ App.checkBrowserFeatures() 2018-12-11 12:30:48 +03:00
Andrew Dolgov ad5a43bf66 sync article selected status via mutation observer
remove all rchk-related hacks
2018-12-10 21:19:33 +03:00
Andrew Dolgov 54f02a3b31 add Headlines.renderAgain() to switch between combined/expanded modes faster 2018-12-10 15:06:47 +03:00
Andrew Dolgov fca78f7417 add qmcToggleNightMode to actions dropdown 2018-12-09 21:20:59 +03:00
Andrew Dolgov 1c8593c1fa add hotkey (a N) to toggle night.css 2018-12-09 21:17:50 +03:00
Andrew Dolgov a400a8ffc1 add PluginHost.HOOK_INIT_COMPLETE (and make no_title_counters use it) 2018-12-08 20:06:07 +03:00
Andrew Dolgov 41bf063e46 switchPanelMode: allow modifying layout in combined mode so that widescreen status won't be initially lost if starting in cdm 2018-12-08 09:46:48 +03:00
Andrew Dolgov bd66a9ef28 render article on the client using headlines data 2018-12-08 09:32:14 +03:00
Andrew Dolgov 05200a3840 rename main toolbar elements to be more consistent 2018-12-05 10:03:58 +03:00
Andrew Dolgov d3486b15f9 fix collapse_sidebar hotkey action 2018-12-03 20:49:37 +03:00
Andrew Dolgov e76d1fb995 plugins: mail, mailto: remove code from global context 2018-12-03 14:21:50 +03:00
Andrew Dolgov 71fc6d45bd refactor error reporting to AppBase; keep exception_error() for now as a shim 2018-12-03 13:38:13 +03:00
Andrew Dolgov 8f1881e12c remove cookie set check 2018-12-03 12:55:07 +03:00
Andrew Dolgov 78cc470193 remove some plugin JS code out of global context 2018-12-03 10:51:14 +03:00
Andrew Dolgov 84affc7b1d rework dojo singleton modules to better work with phpstorm completion (ugh) - declare() is not needed there anyway
remove event.observe from login form (not needed)
load pluginhost via amd
2018-12-03 09:33:44 +03:00
Andrew Dolgov 5ead558e43 move Utils to AppBase where it belongs 2018-12-02 22:08:18 +03:00
Andrew Dolgov ac8361e6f6 add AppBase as a shared ancestor for main and prefs app objects
remove event.observe stuff from startup, unneeded
2018-12-02 21:52:50 +03:00
Andrew Dolgov 526389b2d3 update notify_* calls to use Notify 2018-12-02 20:56:30 +03:00