Commit Graph

649 Commits

Author SHA1 Message Date
Andrew Dolgov 91e7969383 replace a few more controls to new style 2021-02-16 18:57:06 +03:00
Andrew Dolgov 24c79d91c2 controls_compat: comment out most of them 2021-02-16 18:53:56 +03:00
Andrew Dolgov f58c49beaa replace a few more controls to new style 2021-02-16 18:50:18 +03:00
Andrew Dolgov bdbbdbb0ed rework controls to accept parameters as array 2021-02-16 16:59:21 +03:00
Andrew Dolgov 627af2c236 amend previous to fix actual underlying problem (double escaping) 2021-02-16 15:36:40 +03:00
Andrew Dolgov 1f5d81b77c use a few more control helpers for checkboxes 2021-02-16 15:19:42 +03:00
Andrew Dolgov 1f43d7916c replace print_hidden with hidden_tag 2021-02-16 14:32:06 +03:00
Andrew Dolgov 26d6b84a57 add namespaced controls with unified naming; deprecated old-style control shortcuts 2021-02-16 14:23:00 +03:00
Andrew Dolgov cb6b3584ce pref-labels: remove unused code 2021-02-16 14:19:06 +03:00
Andrew Dolgov 70e293bccb pref-filters: fix some warnings 2021-02-15 17:07:50 +03:00
Andrew Dolgov 39604bedef move reset_password to UserHelper 2021-02-15 16:59:54 +03:00
Andrew Dolgov bd3c38de84 move bookmarklet-related subscribe_to_feed_url to bookmarklet plugin 2021-02-15 16:41:52 +03:00
Andrew Dolgov 91285e3868 router: add additional logging for refused requests; reject requests for methods starting with _ 2021-02-15 16:34:44 +03:00
Andrew Dolgov 8e79f1717d prefs: unify naming 2021-02-15 16:07:22 +03:00
Andrew Dolgov 020f062a76 feeds: unify naming 2021-02-15 15:43:07 +03:00
Andrew Dolgov 6b006a18e7 subscribe to feed: use client dialog 2021-02-15 15:21:41 +03:00
Andrew Dolgov a2e688fcb2 render headline-specific toolbar on the client 2021-02-14 22:17:13 +03:00
Andrew Dolgov 4996d8ccfe pref-users edit: use client dialog 2021-02-14 16:44:41 +03:00
Andrew Dolgov 0b7377238a add Handler_Administrative 2021-02-14 15:50:46 +03:00
Andrew Dolgov 33ea46c2bc pref-users/add: remove unused variable 2021-02-14 15:42:12 +03:00
Andrew Dolgov 0fbf109912 * remove users/filters toolbar edit button (just click on it)
* fix title of edit filter dialog always showing create filter
2021-02-14 15:38:45 +03:00
Andrew Dolgov a8cc43a0ff move logout_user() to UserHelper 2021-02-14 15:31:03 +03:00
Andrew Dolgov 2547ece0ca pref-users: cleanup index 2021-02-14 14:59:22 +03:00
Andrew Dolgov 1c7e4782aa prefs system: load phpinfo using inline method 2021-02-14 12:29:08 +03:00
Andrew Dolgov 6b5c9c781b pref prefs: load secondary tabs when needed 2021-02-14 12:25:41 +03:00
Andrew Dolgov e5cedc7d5f appPasswordList: markup cleanup 2021-02-14 11:39:26 +03:00
Andrew Dolgov 8e75551f95 pref prefs: split index into manageable chunks 2021-02-14 11:29:38 +03:00
Andrew Dolgov 15fd23c374 use shortcut echo syntax for php templates 2021-02-14 09:15:51 +03:00
Andrew Dolgov d4c925819b pref-feeds: load error button via xhr 2021-02-13 23:12:49 +03:00
Andrew Dolgov 43d8a1f2ff remove getinactivefeeds (duplicate functionality) 2021-02-13 23:08:20 +03:00
Andrew Dolgov 103d30ad3f batch subscribe: use client dialog 2021-02-13 22:16:17 +03:00
Andrew Dolgov c36b2adf84 feeds with errors: use client dialog 2021-02-13 21:57:02 +03:00
Andrew Dolgov 8464c619e4 inactive feeds: use client dialog 2021-02-13 21:41:38 +03:00
Andrew Dolgov 17413078a7 pref feeds: index cleanup, split into several methods, use tabs to maximize space for feed tree, persist feed tree state 2021-02-13 18:32:02 +03:00
Andrew Dolgov 9684ce5c4b minor fixes re: previous 2021-02-13 16:07:52 +03:00
Andrew Dolgov b112198991 pref filters index: markup cleanup 2021-02-13 14:05:25 +03:00
Andrew Dolgov 5127c29297 prefs system: markup cleanup 2021-02-13 13:50:53 +03:00
Andrew Dolgov aa63014073 pref-labels index: use cleaner markup 2021-02-13 13:37:57 +03:00
Andrew Dolgov 46f6d7c11a pref-labels/index: cleanup 2021-02-13 13:26:17 +03:00
Andrew Dolgov e7924c6dac label editor: use client dialog 2021-02-13 13:17:34 +03:00
Andrew Dolgov 481bd76100 pref helpers: move some methods to their own sections 2021-02-12 21:51:32 +03:00
Andrew Dolgov 6af83e3881 drop ENABLE_GZIP_OUTPUT; system prefs: load php info only if needed 2021-02-12 21:43:38 +03:00
Andrew Dolgov 157675d9fd prefs: fix published shared URL dialog 2021-02-12 19:17:50 +03:00
Andrew Dolgov 03b85248e6 move some dialogs to xhr loading 2021-02-12 18:38:26 +03:00
Andrew Dolgov 3268364693 more dialog-related cleanup 2021-02-12 15:50:06 +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 8f8675a26a * filters: remove duplicate code, overall cleanup
* check if some tres exist before trying to reload them
2021-02-12 14:31:36 +03:00
Andrew Dolgov 0f7af07c6e edit filter dialog: cleanup 2021-02-12 12:12:47 +03:00
Andrew Dolgov 20fb056323 remove customizecss from csrf-ignored methods 2021-02-12 10:37:14 +03:00
Andrew Dolgov bf6d0f2817 various dialog-related fixes; stop referring to many dialogs by name; move filter test initial dialog to client side 2021-02-12 10:35:13 +03:00
Andrew Dolgov 72e38bfe1f rework a few more dialogs to use App.dialogOf() 2021-02-12 09:56:27 +03:00
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
2021-02-12 09:02:44 +03:00
Andrew Dolgov 83b0738b04 opml import: no more iframe, use client dialog 2021-02-12 08:22:00 +03:00
Andrew Dolgov 3134d71b8f fix typo introduced by 4182018cb7 2021-02-12 08:15:30 +03:00
Andrew Dolgov 4182018cb7 generated feed: use client dialog 2021-02-11 22:04:39 +03:00
Andrew Dolgov 1a680d4eae publishedOPML: use client dialog 2021-02-11 21:42:38 +03:00
Andrew Dolgov 09e9f34bb4 add UserHelper::find_user_by_login() and rewrite some user checks to invoke it instead of going through PDO 2021-02-11 10:22:27 +03:00
Andrew Dolgov 7af8744c85 authentication: make logins case-insensitive (force lowercase) 2021-02-11 09:57:57 +03:00
Andrew Dolgov e7e73193fe fix warning in profile edit dialog (2) 2021-02-10 22:06:01 +03:00
Andrew Dolgov 2505ae43a9 fix warning in profile edit dialog 2021-02-10 22:03:08 +03:00
Andrew Dolgov 9e1459d5db pref/prefs: fix warning when in non-default profile 2021-02-10 21:40:43 +03:00
Andrew Dolgov d630a92c40 fix 2 warnings in feed editor 2021-02-09 15:04:01 +03:00
Andrew Dolgov 345dbb3521 rewrite some more hooks 2021-02-08 22:46:01 +03:00
Andrew Dolgov fc2e0bf67b log viewer: disable previous page on page 1 2021-02-08 17:05:50 +03:00
Andrew Dolgov 3b52cea811 move some old-style handlers to new callback ones 2021-02-08 16:14:48 +03:00
Andrew Dolgov 1d5c8ee500 prefs: fix user plugins shown by incorrect criteria 2021-02-08 15:41:15 +03:00
Andrew Dolgov 1eb1629d9e pluginhost: rework run_hooks() to be shorter, add callback variant; implement exception handling for both 2021-02-08 14:24:45 +03:00
Andrew Dolgov d293cbd5a9 fix several warnings related to feed editor 2021-02-08 11:46:43 +03:00
Andrew Dolgov ce2335deaf pref-users: css fixes 2021-02-06 16:24:40 +03:00
Andrew Dolgov d8de10d78a error log: fix severity dropdown 2021-02-06 16:16:43 +03:00
Andrew Dolgov 73e697a0df fix some warnings in prefs (filters, users) 2021-02-06 16:13:11 +03:00
Andrew Dolgov 73070544ca error log: make it more readable 2021-02-06 16:11:29 +03:00
Andrew Dolgov 5cfc5914f2 log viewer: show total pages 2021-02-06 15:33:19 +03:00
Andrew Dolgov 10392ecc28 event log: add pagination 2021-02-06 10:10:54 +03:00
Andrew Dolgov a544123b59 fix clean() for arrays and user plugin list 2021-02-06 00:17:41 +03:00
Andrew Dolgov 6e774a58fe more php8 fixes mostly related to login 2021-02-06 00:12:15 +03:00
Andrew Dolgov 403dca154c initial WIP for php8; bump php version requirement to 7.0 2021-02-05 23:41:32 +03:00
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)
2021-01-17 14:55:11 +03:00
Andrew Dolgov 40f38fc87f pluginhost: load plugin data automatically (also marks load_data method as private) 2021-01-15 08:32:06 +03:00
Andrew Dolgov 33a5ecd2ce feed editor: show purge interval correctly if FORCE_ARTICLE_PURGE is set 2021-01-07 18:16:42 +03:00
Andrew Dolgov 8cc07bc8bd event log: add severity filtering 2020-12-24 15:02:47 +03:00
Andrew Dolgov 6da576dbe4 BLACKLISTED_TAGS: use textarea for editing; normalize value when saving 2020-12-21 08:50:34 +03:00
wn_ d2db58de4f Switch from 'vsprintf' to 'sprintf' in another place. 2020-12-16 07:55:32 -06:00
fox ef7e679363 Merge branch 'feature/php8' of wn/tt-rss into master 2020-12-16 11:06:48 +00:00
Andrew Dolgov 9b7338e807 feed editor: properly show global purging interval as disabled 2020-12-15 08:49:43 +03:00
wn 62da307ef1 Use correct 'sprintf' function and other minor fixes in Pref_Feeds. 2020-12-12 10:28:55 -06:00
wn a1f8d6941b Remove duplicate block in 'classes/pref/filters.php'.
Also a minor tweak to getting the search filter.
2020-12-12 10:28:54 -06:00
wn 8c4ca7c8ef Fix some 'isset' checks in 'classes/pref/prefs.php'. 2020-12-12 10:28:53 -06:00
Andrew Dolgov 8089fcc762 feed editor: also show default value for purge interval 2020-11-30 15:34:15 +03:00
Andrew Dolgov d48460969d feed editor: show actual value of default update interval 2020-11-30 15:29:22 +03:00
Andrew Dolgov d1ee30d1ba prevent horizontal scrolling in filter editor dialog if rules are very long 2020-11-27 12:27:12 +03:00
Andrew Dolgov 215f388992 move timestamp-related stuff to a separate class 2020-09-23 13:04:26 +03:00
Andrew Dolgov 6811d0bde2 use self:: in some places to invoke static methods from the same class 2020-09-22 14:54:15 +03:00
Andrew Dolgov 74568df4ff remove a lot of stuff from global context (functions.php), add a few helper classes instead 2020-09-22 09:04:33 +03:00
Andrew Dolgov 03a337a660 add basic safe mode which doesn't load any user plugins 2020-09-18 15:48:22 +03:00
Andrew Dolgov a4525d31b2 replace FALSE with false so that static analyzer shuts up about it 2020-09-17 19:02:27 +03:00
Andrew Dolgov 89d53a7f49 fix typo in previous 2020-09-17 08:45:17 +03:00
Andrew Dolgov 1f79d614c4 fix OTP QR code not displayed because of CSRF token passed as a query
parameter
use type-strict comparison when validating CSRF token on the backend
2020-09-17 08:43:39 +03:00
Andrew Dolgov 33fdde249e pass CSRF token to opml import and feed icon replace dialogs 2020-09-16 06:43:55 +03:00
Andrew Dolgov 4a074111b5 user preferences: forbid < and > characters when changing passwords (were silently stripped on save because of clean()) 2020-09-14 20:53:00 +03:00
Andrew Dolgov c3d14e1fa5 - fix multiple vulnerabilities in af_proxy_http
- fix vulnerability in rewrite_relative_url() which prevented some URLs from being properly absolutized
- fetch_file_contents: validate all URLs before requesting them
- validate URLs: explicitly whitelist http and https scheme, forbid everything else
- DiskCache/cached_url: only serve whitelisted content types (images, video)
- simplify filename/URL handling code, remove and consolidate some less-used functions
2020-09-14 19:46:52 +03:00
Andrew Dolgov fa653f5a43 prefs: show disabled filters properly on mysql 2020-07-01 09:49:53 +03:00
Andrew Dolgov 2996a3942f prefs: show root of filter tree as enabled so it's not grayed out 2020-07-01 09:48:27 +03:00
Andrew Dolgov d01ad09800 eslint-related fixes; move a few things from global context to App 2020-06-05 07:44:57 +03:00
Andrew Dolgov c8cc845d5b when removing favicon, reset its auto-refresh timer 2020-05-22 15:06:52 +03:00
Andrew Dolgov 1f2a721905 allow overriding built-in templates via templates.local 2020-03-13 14:40:35 +03:00
Andrew Dolgov bcbc5ccc78 batchSubscribe: use validationtextarea 2020-02-28 14:03:29 +03:00
Andrew Dolgov f24ece85a6 add validationtextarea control, use it for filter match editor 2020-02-28 13:53:45 +03:00
Andrew Dolgov 8645f36c5b filter test dialog: pass contents via xhr POST 2020-02-28 12:16:54 +03:00
Andrew Dolgov 4ab3854aed don't generate default.css, replace with themes/light.css as a default root CSS file 2020-02-22 16:22:44 +03:00
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
2020-02-20 14:14:45 +03:00
Andrew Dolgov 5b6d9cee29 prefs layout fixes:
1. prevent layout breakage when using an authenticator which doesn't allow changing passwords
2. show explanatory messages when OTP or password changing is not available
3. allow app (API) passwords when using any auth module
2020-02-18 11:51:04 +03:00
Andrew Dolgov 6080cca9ca scrap counter cache system; rework counters to sum() booleans instead 2020-01-24 14:25:31 +03:00
Andrew Dolgov df464e3d0d update app password notice 2019-12-17 14:58:31 +03:00
Andrew Dolgov 76dd74e0d9 add a hidden tweakable which forbids changing passwords 2019-12-06 17:45:22 +03:00
Andrew Dolgov ac95ab4a65 user css dialog: allow saving and applying CSS without closing the dialog 2019-12-06 14:02:30 +03:00
Andrew Dolgov 63ce7ea705 add a plugin page warning for plugins using HOOK_FEED_FETCHED, etc 2019-11-14 07:01:45 +03:00
Andrew Dolgov f75fb6bd75 Merge branch 'master' of git.fakecake.org:tt-rss 2019-11-01 15:40:15 +03:00
Andrew Dolgov 266a805bfe line endings + remove : from headings 2019-11-01 15:40:08 +03:00
Andrew Dolgov 05dffcff6f OTP stuff: update notice wording a bit 2019-11-01 15:27:24 +03:00
Andrew Dolgov 812a6c9f16 auth_internal: fix indents 2019-11-01 15:25:40 +03:00
Andrew Dolgov 249130e58d implement app password checking / management UI 2019-11-01 15:03:57 +03:00
Andrew Dolgov 88cd9e586e add placeholder UI plumbing for app passwords 2019-11-01 12:23:11 +03:00
Andrew Dolgov 904ecc31e2 allow using OTP without GD 2019-11-01 10:32:58 +03:00
Andrew Dolgov 2820f41a4b add notification for OTP being disabled 2019-10-09 09:10:43 +03:00
Andrew Dolgov ef514bc4bd add notifications for mail and password changes
update and shorten some other message templates
2019-10-09 09:04:51 +03:00
Andrew Dolgov 12a542977e makefeedtree: properly calculate feed total amount in no-categories mode 2019-08-21 19:32:27 +03:00
Andrew Dolgov 6825aaff55 update SSL certificate wiki link 2019-08-02 08:03:20 +03:00
Andrew Dolgov e8523733b0 filter dialog: add inline regexp checker 2019-07-12 12:40:42 +03:00
Andrew Dolgov 86a014f23b add placeholder Filters.filterDlgCheckRegExp 2019-07-12 10:47:18 +03:00
Andrew Dolgov 088fcf8131 move more globals to more appropriate places
set libxml to always use internal errors
2019-06-20 08:40:02 +03:00
Andrew Dolgov 4fa9aee4e7 move several more global functions to more appropriate classes 2019-06-20 08:14:06 +03:00
Andrew Dolgov 6d746453c7 get_feeds_from_html: remove XML preamble hack
move several related helper functions to Feeds class
2019-06-20 07:51:48 +03:00
Andrew Dolgov d36b64d8a7 event log: simplify styles, prevent horizontal scrolling
sql logger: clip context length to 8kb
2019-05-31 10:31:43 +03:00
Andrew Dolgov 4b74491b8b feed tree: set placeholder feed unread value to -1 2019-05-06 09:32:08 +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
Andrew Dolgov ed22473272 feed editor: use DEFAULT_SEARCH_LANGUAGE as a default per-feed dropdown value 2019-04-10 13:08:32 +03:00
Andrew Dolgov c936cc3a1f use DEFAULT_SEARCH_LANGUAGE to generate tsvector index if per-feed language is not specified, also use it as default value on search form for convenience 2019-04-10 13:03:26 +03:00
Andrew Dolgov 019f4578bc fix feed icon upload not working, rework form to use FormData/ajax 2019-03-14 09:08:44 +03:00
Andrew Dolgov 241d646fba batch subscribe: stop dialog from being submitted twice 2019-03-10 09:20:46 +03:00
Andrew Dolgov 19f162dbe3 css: insensitive -> text-muted 2019-03-08 10:11:57 +03:00
Andrew Dolgov 371325a899 remove feed editor private checkbox 2019-03-06 20:07:23 +03:00
Andrew Dolgov 38e01270d8 archived feeds: expire old entries (schema bump) 2019-03-06 19:06:05 +03:00
Andrew Dolgov 16a9bdc387 make_password: generate longer passwords by default, use better random function if available 2019-03-05 20:16:50 +03:00
Andrew Dolgov ef6d2b8a4e update notifications to make them more visible
cleanup some minor stuff in pref-users
2019-03-05 20:09:06 +03:00
Andrew Dolgov 1f2c769c5a editfeed: mark save button 2019-03-05 19:41:44 +03:00
Andrew Dolgov b9309b1822 filters: show inverse status in list 2019-03-05 08:52:45 +03:00
Andrew Dolgov a130da2d1a add layout hack to unify heights of plugin fieldsets 2019-02-26 15:03:33 +03:00
Andrew Dolgov 8819272db1 prefs-set -> prefs 2019-02-25 19:22:20 +03:00