Commit Graph

1036 Commits (7815a881e87b4818614cd9426bbb045c6ded5b68)

Author SHA1 Message Date
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
4 years ago
Andrew Dolgov 219cc9a0ab fix previous: secondary dialog not opening because of onLoad 4 years ago
Andrew Dolgov 8f8675a26a * filters: remove duplicate code, overall cleanup
* check if some tres exist before trying to reload them
4 years ago
Andrew Dolgov 9804a17b79 fix typo 4 years ago
Andrew Dolgov a72171f8ef dialogOf: deal with both raw DOM elements and widgets 4 years ago
Andrew Dolgov bf6d0f2817 various dialog-related fixes; stop referring to many dialogs by name; move filter test initial dialog to client side 4 years ago
Andrew Dolgov 72e38bfe1f rework a few more dialogs to use App.dialogOf() 4 years ago
Andrew Dolgov d466284fab * customizeCSS: client dialog
* remove hardcoded width from most dialogs (move to css)
* add helper to easily get dialog from its widget
* rework some dialog buttons to use current object instead of calling dialog by name
4 years ago
Andrew Dolgov cb7c075cd2 remove OPML.onImportComplete 4 years ago
Andrew Dolgov 83b0738b04 opml import: no more iframe, use client dialog 4 years ago
Andrew Dolgov eac7ad5d34 remove explainError server-side dlg 4 years ago
Andrew Dolgov 4182018cb7 generated feed: use client dialog 4 years ago
Andrew Dolgov 1a680d4eae publishedOPML: use client dialog 4 years ago
Andrew Dolgov 848bc57f29 disable themes in safe mode; rework safe mode warning/login prompt 4 years ago
Andrew Dolgov 74986d1ac6 shorten pref tab names; make log-alert clickable 4 years ago
Andrew Dolgov ce2335deaf pref-users: css fixes 4 years ago
Andrew Dolgov 10392ecc28 event log: add pagination 4 years ago
Andrew Dolgov 2933483393 add a hack (Headlines.unpackVisible) to workaround against unpack observer sometimes missing articles 4 years ago
Andrew Dolgov da0ad82c24 Archive cleanup:
- remove code to manually archive/unarchive articles
- remove ttrss_archived_feeds/orig_feed_id handling - the whole thing was implemented for
this data to be kept indefinitely; it doesn't make a lot of sense to deal with this stuff
now that it is expired after one month anyway (same reasons as feed browser being removed - privacy)
- remove "originally from"-related stuff because of the above
- also remove unused remaining frontend/backend code related to feed browser (rip)
4 years ago
Andrew Dolgov 6c13449088 remove CommonDialogs.feedBrowser() 4 years ago
Andrew Dolgov 25520e9784 Select... dropdown: replace dijit Select with DropDownButton, simplify layout
PluginHost: add HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM
Headlines.onActionChanged: removed
4 years ago
Andrew Dolgov b2993bcd30 remove menu options to manually un/archive articles 4 years ago
Andrew Dolgov 8cc07bc8bd event log: add severity filtering 4 years ago
Andrew Dolgov e86b2e60d3 edit tags dialog: initialize autocomplete in onShow (instead of onLoad) because of xhr 4 years ago
Andrew Dolgov 57f36f3f97 search dialog: populate current search values onShow instead of onLoad because the dialog is preloaded via xhr 4 years ago
Andrew Dolgov 0e4e0e624e viewfeed debugger: open properly for categories 4 years ago
Andrew Dolgov d06cc8267b queryFeedHeadlines: bring back DISTINCT for a limited set of columns 4 years ago
Andrew Dolgov db3fcb861b viewfeed: reintroduce timestamps, fix debugging, fix some indents 4 years ago
Andrew Dolgov 87184904ed don't select next unread feed when marking as read last week, etc. 4 years ago
Andrew Dolgov 0a6ff72e70 Revert "fix HOOK_ARTICLE_RENDERED_CDM never being called"
This reverts commit e3a522cdc1.
4 years ago
Andrew Dolgov e3da11bf6d Revert "somewhat experimental: disable article packing/unpacking, render content immediately"
This reverts commit ab53591957.
4 years ago
Andrew Dolgov e3a522cdc1 fix HOOK_ARTICLE_RENDERED_CDM never being called 4 years ago
Andrew Dolgov ab53591957 somewhat experimental: disable article packing/unpacking, render content immediately 4 years ago
Andrew Dolgov f693ebab21 fix default password nag dialog, load via xhr 4 years ago
Andrew Dolgov 77faa5d523 editFeed: only try to reload feed tree in preferences if its actually there 4 years ago
Andrew Dolgov 3f9390c45f comments link: load in new tab 4 years ago
Andrew Dolgov 42b5564d1e editarticletags: load dialog via XHR 4 years ago
Andrew Dolgov 0a142912d3 backend handler: require CSRF, remove obsolete code 4 years ago
Andrew Dolgov 154417d80b public/logout: require valid CSRF token 4 years ago
Andrew Dolgov cbcb10a272 Feeds: load quickaddfeed and search dialogs via XHR w/ CSRF protection 4 years ago
Andrew Dolgov 8080c525fd - backend: require CSRF token to be passed via POST
- do not leak CSRF token via GET request in feed debugger
- rework Article/redirect to use POST
4 years ago
Andrew Dolgov aeaafefa07 don't pass csrf token as a GET parameter to Article 4 years ago
Andrew Dolgov e670ac2ee5 require CSRF token for Article/redirect 4 years ago
Andrew Dolgov 7e50c6c4b5 - enable CSRF support earlier
- remove rpc/sanityCheck from CSRF-excluded calls
4 years ago
Andrew Dolgov b4cb67e77f remove csrf token from rpc method sanityCheck 4 years ago
nanaya 8d8affdc45 Store FeedTree data in localStorage
Patching internal functions of dijit.Tree as they don't provide option on where to store the data.

It stores to cookies by default but the data can get quite big for hundreds of feeds and exceeds cookies size limit.

Not to mention it'll cause the cookie to be sent during any request with nothing handling it server side and just wasting bandwidth.

This patch will also migrate current data in cookie to local storage accordingly.
4 years ago
Andrew Dolgov 697418f863 more eslint fixes 5 years ago
Andrew Dolgov d01ad09800 eslint-related fixes; move a few things from global context to App 5 years ago
Andrew Dolgov 88027d7a39 fix various minor issues reported by eslint 5 years ago
Andrew Dolgov 9d28b3ac50 unify prefs/main App objects, remove fake classes, use single static App object instead 5 years ago
Andrew Dolgov 30ed5d7c3c same, but for preferences 5 years ago
Andrew Dolgov e37f8cfa78 don't use declare() for static objects with no inheritance because apparently it's not actually needed by AMD 5 years ago
Andrew Dolgov 676cdf6ee4 move isCombinedMode to AppBase so we wouldn't crash in preferences 5 years ago
Andrew Dolgov b39e615683 add Headlines.default_force_previous, default_force_to_top 5 years ago
Andrew Dolgov 19893d33e3 only bind up/down in 3 panel mode 5 years ago
Andrew Dolgov 409ba0db2d - RIP smooth scrolling and associated hacks
- attempt to make Headlines.move() / Article.cdmMoveToId() behave a bit more intuitively
5 years ago
Andrew Dolgov d63329baa1 Headlines.move: add params.force_previous to always move to previous article in CDM 5 years ago
Andrew Dolgov 2deb9c555e Headlines.move: use requestAnimationFrame in CDM :( 5 years ago
Andrew Dolgov 8dc6b48ebd Headlines.move: when going back to top of active article, use a smarter (?) offset calculation 5 years ago
Andrew Dolgov 25c8467753 rename Headlines.correctHeadlinesOffset() to scrollToArticleId()
invoke it in Article.view() instead of all over the place
5 years ago
Andrew Dolgov 05a84ab778 Headlines.move: maybe glitch less when moving back to top, etc 5 years ago
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 5 years ago
Andrew Dolgov a1ffc11619 only enable unpack observer in expanded mode 5 years ago
Andrew Dolgov 5e77d0062b use intersection observer to unpack visible articles, remove Headlines.unpackVisible() 5 years ago
Andrew Dolgov 7adbc95acc remove floating title, use position: sticky for cdm headers instead 5 years ago
Andrew Dolgov 4a00d41915 Article.cdmMoveToId: don't crash if params is not given 5 years ago
Andrew Dolgov a802649d53 rename cdmScrollToId to cdmMoveToId
prevent smooth scrolling when going directly to an article
5 years ago
Andrew Dolgov 2558fcbe21 add hotkey "\" to cancel current search 5 years ago
ltGuillaume 19064864bf Allow setting Insert (45) and Delete (46) as hotkeys
These are not reported via keypress either, so handle them via keydown.
5 years ago
Andrew Dolgov 0d467973dc Article.pack: dispose of unpacked content properly 5 years ago
Andrew Dolgov e17c7e2fb4 Headlines.renderAgain: scroll instantly to active article when going back to combined mode on the fly 5 years ago
Andrew Dolgov b3e4f0188e in combined non-expanded mode, pack headline rows as they are unfocused to save RAM 5 years ago
Andrew Dolgov afaac95d8d if comment URL is not specified but comment count is non-zero, show comments prompt leading to the article 5 years ago
Andrew Dolgov a65749a512 source validationtextarea in main UI 5 years ago
Andrew Dolgov f24ece85a6 add validationtextarea control, use it for filter match editor 5 years ago
Andrew Dolgov 2fefb4fd87 getTestResults: don't try to use previously removed variable 5 years ago
Andrew Dolgov 4f62f5f3f1 filter edit dialog: load rule editor via XHR 5 years ago
Andrew Dolgov 340bb7f392 fix typo 5 years ago
Andrew Dolgov 8645f36c5b filter test dialog: pass contents via xhr POST 5 years ago
Andrew Dolgov 4e74da590e af_readability: allow get full text button to work as a toggle; in cdm, scroll to article after embedding 5 years ago
Andrew Dolgov 07b27b375f update toggle_embed_original hotkey to invoke readability embed instead of removed embed_original plugin 5 years ago
Andrew Dolgov 71ff485fbf af_readability: add article button to embed content of a specific article 5 years ago
Andrew Dolgov 788ea95fbd feed tree: do not mark Labels as Special 5 years ago
Andrew Dolgov 4ab3854aed don't generate default.css, replace with themes/light.css as a default root CSS file 5 years ago
Andrew Dolgov 282b445a43 feed tree: don't set Special class on Labels category 5 years ago
Andrew Dolgov 2d3fdd6836 hide read feeds / hide read shows special: use CSS instead of JS-based hiding 5 years ago
Andrew Dolgov 60288f02e8 1. feedtree: show counters for marked articles if view-mode == marked
2. hide/show relevant counter nodes using css
3. cleanup some counter-related code
4. compile default css into light theme to prevent cache-related issues
5 years ago
Andrew Dolgov 076c5382fa login form: add workarounds for chrome password manager 5 years ago
Andrew Dolgov 776fe4768b default password warning: fix close button, don't crash if dialog is recreated (on feed tree reload etc) 5 years ago
Andrew Dolgov 4a4d7a44fa onViewModeChanged: set view mode value as a custom body attribute 5 years ago
Andrew Dolgov 6f625aa8aa apply Has_Marked css class to feed tree elements with marked articles 5 years ago
Andrew Dolgov a6d314b753 support dark mode for login form 5 years ago
Andrew Dolgov aa56bcaf44 support night mode when using share by URL 5 years ago
Andrew Dolgov 303f8fb329 properly escape quotes when rendering article data to html attributes via template strings 5 years ago
Andrew Dolgov 7e2fd9bdce Headlines.move: fix move to previous article if scrollTop returns a fractional value for current item 5 years ago
Andrew Dolgov f83836ade9 updateCurrentUnread: don't crash if counter element is not available 5 years ago
Andrew Dolgov 9f70bb010a fix blank screen on load if custom theme is enabled 5 years ago
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 5 years ago
Andrew Dolgov 0d6add5d7f show alert() if fatal exception happens while initializing base app objects and app.error is not available 5 years ago
JustAMacUser b4dd03ba2a Wrap AppBase.setupNightModeDetection() in try/catch because Safari doesn't support matchMedia change events. 5 years ago
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
5 years ago
Andrew Dolgov 9c0235ab66 show current unread counter on headlines toolbar if sidebar is hidden 5 years ago
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
5 years ago
Andrew Dolgov 985e11b754 re-enable updates of floating title on scroll, duh 5 years ago
Andrew Dolgov 0e4f67bf2b with previous change, we don't actually need to automatically track active articles now at all in combined mode. 5 years ago
Andrew Dolgov 3993198aa7 when moving next or previous and currently active article is entirely invisible, start moving from first visible one 5 years ago
Andrew Dolgov 7d0bbe9962 only track active article on scroll if auto catchup is enabled 5 years ago
Andrew Dolgov 5b4eb8d7b9 remove unnecessary "== 1" when checking for init params
unsubscribeFeed: check for undefined title correctly
5 years ago
Andrew Dolgov a40f22d8aa Article.cdmScrollToId: disable smooth scrolling in collapsed combined mode 5 years ago
Andrew Dolgov 560346f9d1 Article.cdmScrollToId: disable smooth scrolling on repeated events 5 years ago
Andrew Dolgov dad3d1c7a9 combined mode n/p behavior changes:
1. instead of jumping/scrolling sometimes, always scroll by a constant viewport offset unless moving to next/prev article directly
2. when going up and current article is partially above the viewport, move to its top first instead of directly to a previous one
3. instead of previous marking active logic, on scroll in combined mode track first (partially or otherwise) visible article as active
5 years ago
Andrew Dolgov 44ef447c0f fix fatal error in previous because of event not being passed via Headlines.move()
scrollbypages, etc: make event optional anyway
5 years ago
Andrew Dolgov e7dd634183 exp: auto-disable smooth scrolling for repeat hotkey events 5 years ago
Andrew Dolgov 7a68e4a6f7 pgup/pgdn; increase scroll distance to almost entire viewport height (from 90%) 5 years ago
Andrew Dolgov ac95ab4a65 user css dialog: allow saving and applying CSS without closing the dialog 5 years ago
Andrew Dolgov e1ef122355 force-disable headlines smooth scrolling when switching feeds
enable smooth scrolling for article frame
5 years ago
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
5 years ago
Andrew Dolgov 6913158b82 add hotkeys to scroll headlines/articles (whichever is active) by one page 5 years ago
Andrew Dolgov 249130e58d implement app password checking / management UI 5 years ago
Andrew Dolgov 781fe3d636 setScore, selectionSetScore: check for numerical values properly 5 years ago
Andrew Dolgov d172abb037 scroll handler: also invoke lazy load if last article in buffer is currently active 5 years ago
Andrew Dolgov c35a618b00 lazy load (infinite scrolling) changes:
1. invoke Headlines.loadMore() if last article row is close to becoming visible instead of relying on headlines-spacer offset to viewport

2. allow one final last lazy load request if incomplete buffer was received to permit some flexibility with unread counters possible changing while request was generated / serving remainder of articles
5 years ago
Andrew Dolgov e8523733b0 filter dialog: add inline regexp checker 5 years ago
Andrew Dolgov 86a014f23b add placeholder Filters.filterDlgCheckRegExp 5 years ago
Andrew Dolgov 079ef15b1b previous: remove unused debugging line 6 years ago
Andrew Dolgov 905f038610 search dialog: display active query if searching already 6 years ago
fox e981d52bda Merge branch 'master' of ltGuillaume/ttrss into master 6 years ago
Andrew Dolgov 3bf40f3ba8 _active_feed_id: set to undefined on startup to prevent unneeded Feed.open() if reloadCurrent is called because of a non-default main toolbar value 6 years ago
Andrew Dolgov d09aad7c80 fix read categories not being hidden when hide read feeds is enabled 6 years ago
ltGuillaume 44bfbc9529 Allow to unregister plugin hooks 6 years ago
Andrew Dolgov 2ce31fd0bf FeedStoreModel.getFeedUnread: return -1 when value is unset 6 years ago
Andrew Dolgov 9368f1a07f restore feed from URL hash after feedlist init 6 years ago
Andrew Dolgov 6479c07324 js: add PluginHost.HOOK_COUNTERS_PROCESSED 6 years ago
Andrew Dolgov 2411cc8d1c js: add PluginHost.HOOK_COUNTERS_RECEIVED 6 years ago
Andrew Dolgov 4b74491b8b feed tree: set placeholder feed unread value to -1 6 years ago
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.
6 years ago
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.
6 years ago
ltGuillaume 4c72d3b4fc Add keyboard shortcut 'g r': Go to Recently read 6 years ago
Andrew Dolgov cc2ac3a86c FeedTree: add feed debugger to per-feed context menu 6 years ago
Andrew Dolgov b1bb7c6001 Merge branch 'master' of git.fakecake.org:tt-rss 6 years ago
Andrew Dolgov 019f4578bc fix feed icon upload not working, rework form to use FormData/ajax 6 years ago
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 "?".
6 years ago
Andrew Dolgov a34509c8ae Merge branch 'master' of git.fakecake.org:tt-rss 6 years ago
Andrew Dolgov 19f162dbe3 css: insensitive -> text-muted 6 years ago
Andrew Dolgov 900cdbbb31 Headlines.click: open original article (and mark as read) on alt click on title 6 years ago
Andrew Dolgov ae9ef7fe84 Headlines.click: fix another small issue with expanded mode (2) 6 years ago
Andrew Dolgov 0b8f3909fe Headlines.click: fix another small issue with expanded mode 6 years ago
Andrew Dolgov 84cf95fe8f Headlines.click: open original article when it makes sense to do so 6 years ago
Andrew Dolgov cf6f867feb getRange: handle start == stop 6 years ago
Andrew Dolgov d876cca22a tweak Headlines.click: ctrl-click toggles selection, shift-click selects range 6 years ago