Commit Graph

682 Commits

Author SHA1 Message Date
Andrew Dolgov c96172fa04 use constants in get_pref()/set_pref() 2021-02-25 14:49:58 +03:00
Andrew Dolgov 5aa05c90e1 pref-prefs: use constants instead of hardcoded strings 2021-02-25 14:45:11 +03:00
Andrew Dolgov 6f02b1afd0 cleanup a bunch of old prefs code 2021-02-25 14:25:37 +03:00
Frenck Lutke 2f2642bbd4 add fallback for feed_language on edit-feed-saving
Feed_language is only included in the form if running on pgsql, failing
the not null constraint on mysql setups.
2021-02-25 12:06:25 +01:00
Andrew Dolgov bd2314170d implement prefs UI based on new prefs class and a few more things 2021-02-25 12:46:13 +03:00
Andrew Dolgov 988eb3ac91 initial (wip) for new prefs 2021-02-25 09:33:36 +03:00
Andrew Dolgov 2f14fa1bc3 add a hack to position labels on a dijit toolbar better 2021-02-24 15:53:47 +03:00
Andrew Dolgov 8d2e3c2528 drop errors.php and simplify error handling 2021-02-23 22:26:07 +03:00
Andrew Dolgov 2ae0b7059f cleanup some defined-stuff 2021-02-23 09:01:27 +03:00
Andrew Dolgov 211f699aa0 migrate the rest into Config:: 2021-02-22 22:35:27 +03:00
Andrew Dolgov e4107ac952 wip: initial for config object 2021-02-22 21:47:48 +03:00
Andrew Dolgov be4e7b1340 fix several issues reported by phpstan 2021-02-22 14:41:09 +03:00
Andrew Dolgov f6bfb89b29 pref-prefs: switch to new control shorthand in a few places 2021-02-21 23:18:32 +03:00
Andrew Dolgov 861a632ac7 move published opml JS code to pref helpers 2021-02-21 18:04:44 +03:00
Andrew Dolgov 521d0b65c7 batch feed editor: use tab layout, cleanup 2021-02-21 16:02:57 +03:00
Andrew Dolgov d1328321be move published OPML endpoint to public.php 2021-02-21 15:16:39 +03:00
Andrew Dolgov 2843b99171 minor filter UI layout fix 2021-02-21 13:08:34 +03:00
Andrew Dolgov 810afdaf5a prevent creation of filter rules matching no feeds 2021-02-21 12:28:25 +03:00
Andrew Dolgov 3b8d69206c deal with filter actions UI 2021-02-21 10:28:59 +03:00
Andrew Dolgov 94560132dd for the most part, deal with filter rules UI 2021-02-21 09:35:07 +03:00
Andrew Dolgov b4e96374bc more filter stuff 2021-02-20 21:48:05 +03:00
Andrew Dolgov 590b1fc39e a few more methods shuffled around 2021-02-20 18:21:36 +03:00
Andrew Dolgov be91355c20 first for filter frontend overhaul 2021-02-20 18:15:08 +03:00
Andrew Dolgov 22fe9b54d2 feed editor: use client dialog 2021-02-20 13:32:09 +03:00
Andrew Dolgov 9586c72a17 wip: feed editor client-side 2021-02-20 10:26:09 +03:00
Andrew Dolgov 660a1bbe01 * switch to xhr.post() almost everywhere
* call App.handlerpcjson() automatically on json request (if possible)
 * show net/log indicators in prefs
2021-02-19 13:44:56 +03:00
Andrew Dolgov bb4e4282f4 migrate a bunch of xhrPost invocations 2021-02-19 11:28:14 +03:00
Andrew Dolgov 00310d2d23 cleanup some unused code, fix App.byId() invoked by wrong name 2021-02-19 06:58:50 +03:00
Andrew Dolgov dcfea9baac properly validate feed editor dialog 2021-02-19 06:51:15 +03:00
Andrew Dolgov 70fa423026 initial for RIP prototype/scriptaculous 2021-02-18 21:51:18 +03:00
Andrew Dolgov 75435aa960 user details: cleanup 2021-02-18 13:00:20 +03:00
Andrew Dolgov 39c0fe3697 shorten many invocations of Ajax.Request in inline form methods 2021-02-18 12:27:26 +03:00
Andrew Dolgov 1adb9bb6b6 profiles: use client dialog; move related methods to pref-prefs 2021-02-18 11:54:22 +03:00
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