Commit Graph

1140 Commits

Author SHA1 Message Date
fox c6fb62f384 Merge pull request 'fix-mysql-support' (#10) from klatch/tt-rss:fix-mysql-support into master
Reviewed-on: https://git.tt-rss.org/fox/tt-rss/pulls/10
2021-02-26 19:03:15 +03:00
Andrew Dolgov e6a875b7e4 check if client-presented URL scheme is different from one configured in SELF_URL_PATH 2021-02-26 14:14:44 +03:00
Andrew Dolgov 9689f884ab add Prefs::DEBUG_HEADLINE_IDS 2021-02-26 12:34:50 +03:00
Andrew Dolgov 56b10fea18 pass translations to frontend as a json object 2021-02-26 09:21:17 +03:00
Frenck Lutke 27b676b7b2 fix checkboxes shown as checked when they're not with mysql
The issue occurs because boolean/tinyint values are retrieved from mysql
as strings, and in php/js all non-empty strings are cast as boolean
true.

Current PDO mysql driver doesn't support `PDO::ATTR_STRINGIFY_FETCHES =
false`, and if I disable prepare-emulation so it uses the native MySQL
driver instead which supposedly does support it, prepare statements no
longer play nice with named parameters.

Every remaining clean solution that comes to mind that can cover all
cases, just for MySQL, adds an annoying amount of additional code /
overhead.

As long as the `App.FormFields.checkbox_tag()` JS function is the only
one suffering from the lack of conversion, I'll go with easy ugly over
here.
2021-02-25 12:24:23 +01:00
Andrew Dolgov db583287b2 add hide/show events for feeds sidebar 2021-02-24 17:01:40 +03:00
Andrew Dolgov 7f41228a71 decouple runtime-info object from counters 2021-02-24 15:40:19 +03:00
Andrew Dolgov 553548b689 request label counters conditionally 2021-02-24 15:07:31 +03:00
Andrew Dolgov 8b09e653e0 pass array to setScore 2021-02-24 12:10:09 +03:00
Andrew Dolgov 155e4f6125 pass a bunch of related arrays properly to backend 2021-02-24 12:07:25 +03:00
Andrew Dolgov 96182597c4 fix typo 2021-02-24 10:38:54 +03:00
Andrew Dolgov 9ad5f04e51 only request counters once for headline mutations 2021-02-24 10:31:03 +03:00
Andrew Dolgov 6ea1430a04 no special counter handling for catchupAll 2021-02-24 10:01:39 +03:00
Andrew Dolgov d6203bf350 try to calculate counters conditionally based on feed ids 2021-02-24 09:47:26 +03:00
Andrew Dolgov 8d2e3c2528 drop errors.php and simplify error handling 2021-02-23 22:26:07 +03:00
Andrew Dolgov 37d46411c7 App.requestCounters() is not a thing 2021-02-23 17:43:35 +03:00
Andrew Dolgov 33fff26869 reinstate HOOK_RENDER_ENCLOSURE 2021-02-22 10:00:50 +03:00
Andrew Dolgov 861a632ac7 move published opml JS code to pref helpers 2021-02-21 18:04:44 +03:00
Andrew Dolgov c6b7a7f8d0 Merge branch 'master' of git.tt-rss.org:fox/tt-rss 2021-02-21 16:06:57 +03:00
Andrew Dolgov 2ab215daca batch editor: comment out getChildByName 2021-02-21 16:06:46 +03:00
Andrew Dolgov 521d0b65c7 batch feed editor: use tab layout, cleanup 2021-02-21 16:02:57 +03:00
wn_ 1bd5152c80 Open the default feed after unsubscribing.
Previously the UI appeared to hang, even though the backend request had already completed successfully.
2021-02-21 12:48:15 +00: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 fb471652c0 Merge branch 'wip-filter-stuff' 2021-02-21 10:35:39 +03:00
Andrew Dolgov 9e56896bd4 Element visible: check for offsetHeight/offsetWidth 2021-02-21 10:34:28 +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 da97b29dbe prevent filter selected text dialog from opening in wrong order 2021-02-20 21:07:28 +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 d6de021ae6 haven't i fixed this already 2021-02-20 13:52:02 +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 c9ccb0791d fix for startup crash because of classes containing spaces 2021-02-19 20:05:56 +03:00
Andrew Dolgov cf249d7e8c modify classname helpers to use element.classList; fix feed debugger & share--get 2021-02-19 19:29:43 +03:00
Andrew Dolgov d5f4979831 headlines.select: maybe fix another one 2021-02-19 18:50:02 +03:00
Andrew Dolgov 737cffc241 render feed icon markup on the client 2021-02-19 17:40:11 +03:00
Andrew Dolgov d445530fa0 format note on the client 2021-02-19 17:15:22 +03:00
Andrew Dolgov 921b5ca2ce add onTagsUpdated similar to onLabelsUpdated 2021-02-19 15:34:28 +03:00
Andrew Dolgov e73779fec1 render tags on the client 2021-02-19 15:31:50 +03:00
Andrew Dolgov d9fe14a012 use template strings in a bunch of places instead of id concatenation 2021-02-19 15:09:53 +03:00
Andrew Dolgov 131f34648d render headline labels on the client 2021-02-19 15:03:48 +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 6b43b788d9 migrate xhrJson invocations to the new helper 2021-02-19 10:22:00 +03:00
Andrew Dolgov dba6dce3b3 add element fadeout/fadein and a shorter xhr helper 2021-02-19 10:15:36 +03:00
Andrew Dolgov f645120641 table helpers: don't try to iterate over a single element 2021-02-19 07:54:44 +03:00
Andrew Dolgov d26269865f use .closest() instead of .up() to lookup parent by selector 2021-02-19 07:43:05 +03:00
Andrew Dolgov bec35200e9 fix some eslint-related stuff 2021-02-19 07:29:21 +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 d57e7eaa98 move stuff in common.js around a bit 2021-02-19 06:40:35 +03:00
Andrew Dolgov 5475eed452 bring back hash functions 2021-02-19 06:35:37 +03:00
Andrew Dolgov b6c3dde1cc add $/423 shims 2021-02-18 22:26:00 +03:00
Andrew Dolgov c088e9d9d8 get rid of a few more prototype-isms 2021-02-18 22:23:06 +03:00
Andrew Dolgov 89fd9ec8c3 compat shim fixes 2021-02-18 22:15:54 +03:00
Andrew Dolgov e61e7c8356 compat shim fixes 2021-02-18 22:14:40 +03:00
Andrew Dolgov f77c17c6f0 add Element toggleClassName 2021-02-18 22:05:06 +03:00
Andrew Dolgov 70fa423026 initial for RIP prototype/scriptaculous 2021-02-18 21:51:18 +03:00
Andrew Dolgov 049c423454 fix hotkey help toolbar action 2021-02-18 18:12:30 +03:00
Andrew Dolgov 61fdce4f44 rework previous to be even less jumpy 2021-02-18 15:40:54 +03:00
Andrew Dolgov 2c5927d8cd rework previous to be less jumpy 2021-02-18 15:38:26 +03:00
Andrew Dolgov 2e4b403787 * use es5 (?) default parameter values for some functions
* when moving to next article, try to show hsp if its next
2021-02-18 15:13:41 +03:00
Andrew Dolgov e03d6379a6 small markup adjustment 2021-02-18 11:55:00 +03:00
Andrew Dolgov 466cba39d8 Merge branch 'master' of git.fakecake.org:fox/tt-rss 2021-02-18 11:54:29 +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 e4609c18ef * add (disabled) shortcut syntax for plugin methods
* add controls shortcut for pluginhandler tags
 * add similar shortcut for frontend
 * allow plugins to selectively exclude their methods from CSRF checking
2021-02-17 21:44:21 +03:00
Andrew Dolgov b16abc157e * App: rename hidden to hidden_tag
* search: use client dialog
 * add some form field helpers
2021-02-17 19:34:54 +03:00
Andrew Dolgov 89e8176c69 Article.render: parse dojo widgets 2021-02-16 22:05:12 +03:00
Andrew Dolgov 22fc6871e8 remove backend helper and move its only function to rpc for the time being 2021-02-16 14:51:42 +03:00
Andrew Dolgov 3887665bcb CommonDialogs.addLabel: remove long unused parameters 2021-02-16 14:13:38 +03:00
Andrew Dolgov 9f55454f63 remove the rest of db.php; rename some leftover methods in feeds 2021-02-15 16:51:35 +03:00
Andrew Dolgov 257efb43c6 article: unify naming 2021-02-15 15:52:28 +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 ecb36b6354 edit tags: use client dialog 2021-02-15 14:50:40 +03:00
Andrew Dolgov 82adb01307 render enclosures on the client 2021-02-15 14:10:46 +03:00
Andrew Dolgov 3c584376ca shared opml and feed dialogs: remove unique target element id, move associated methods into dialog 2021-02-15 07:59:11 +03:00
Andrew Dolgov 9f31381bb6 renderToolbar: support empty data i.e. dashboard feed 2021-02-15 07:46:24 +03:00
Andrew Dolgov a2e688fcb2 render headline-specific toolbar on the client 2021-02-14 22:17:13 +03:00
Andrew Dolgov 37a81ba594 SingleUseDialog: destroy existing widget with same id on create 2021-02-14 19:19:25 +03:00
Andrew Dolgov ff6031d3c9 remove old-style markup from exception dialog 2021-02-14 18:59:09 +03:00
Andrew Dolgov 4996d8ccfe pref-users edit: use client dialog 2021-02-14 16:44:41 +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 1c7e4782aa prefs system: load phpinfo using inline method 2021-02-14 12:29:08 +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 e7924c6dac label editor: use client dialog 2021-02-13 13:17:34 +03:00
Andrew Dolgov eec5871f5f fail better if requested article URL is blank 2021-02-13 10:10:44 +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 6d7fea537e silence some more eslint warnings 2021-02-12 19:55:05 +03:00
Andrew Dolgov 157675d9fd prefs: fix published shared URL dialog 2021-02-12 19:17:50 +03:00
Andrew Dolgov 7f0800537e silence (or fix) a bunch of eslint warnings 2021-02-12 19:02:09 +03:00
Andrew Dolgov ad7842c98a RIP tag cloud: last of the vanilla popup dialog system 2021-02-12 18:43:30 +03:00
Andrew Dolgov 9330bde991 batchsubscribe: xhr 2021-02-12 18:40:22 +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 219cc9a0ab fix previous: secondary dialog not opening because of onLoad 2021-02-12 14:35: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 9804a17b79 fix typo 2021-02-12 12:12:31 +03:00
Andrew Dolgov a72171f8ef dialogOf: deal with both raw DOM elements and widgets 2021-02-12 12:12:12 +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 cb7c075cd2 remove OPML.onImportComplete 2021-02-12 08:22:39 +03:00
Andrew Dolgov 83b0738b04 opml import: no more iframe, use client dialog 2021-02-12 08:22:00 +03:00
Andrew Dolgov eac7ad5d34 remove explainError server-side dlg 2021-02-12 08:00:25 +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 848bc57f29 disable themes in safe mode; rework safe mode warning/login prompt 2021-02-11 21:19:57 +03:00
Andrew Dolgov 74986d1ac6 shorten pref tab names; make log-alert clickable 2021-02-11 15:49:32 +03:00
Andrew Dolgov ce2335deaf pref-users: css fixes 2021-02-06 16:24:40 +03:00
Andrew Dolgov 10392ecc28 event log: add pagination 2021-02-06 10:10:54 +03:00
Andrew Dolgov 2933483393 add a hack (Headlines.unpackVisible) to workaround against unpack observer sometimes missing articles 2021-01-19 11:54:13 +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 6c13449088 remove CommonDialogs.feedBrowser() 2021-01-17 14:34:04 +03:00
Andrew Dolgov 25520e9784 Select... dropdown: replace dijit Select with DropDownButton, simplify layout
PluginHost: add HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM
Headlines.onActionChanged: removed
2021-01-17 11:27:07 +03:00
Andrew Dolgov b2993bcd30 remove menu options to manually un/archive articles 2021-01-17 10:37:40 +03:00
Andrew Dolgov 8cc07bc8bd event log: add severity filtering 2020-12-24 15:02:47 +03:00
Andrew Dolgov e86b2e60d3 edit tags dialog: initialize autocomplete in onShow (instead of onLoad) because of xhr 2020-12-23 12:14:11 +03:00
Andrew Dolgov 57f36f3f97 search dialog: populate current search values onShow instead of onLoad because the dialog is preloaded via xhr 2020-12-23 12:09:34 +03:00
Andrew Dolgov 0e4e0e624e viewfeed debugger: open properly for categories 2020-12-07 17:10:36 +03:00
Andrew Dolgov d06cc8267b queryFeedHeadlines: bring back DISTINCT for a limited set of columns 2020-12-07 16:59:48 +03:00
Andrew Dolgov db3fcb861b viewfeed: reintroduce timestamps, fix debugging, fix some indents 2020-12-04 18:55:53 +03:00
Andrew Dolgov 87184904ed don't select next unread feed when marking as read last week, etc. 2020-11-30 15:15:51 +03:00
Andrew Dolgov 0a6ff72e70 Revert "fix HOOK_ARTICLE_RENDERED_CDM never being called"
This reverts commit e3a522cdc1.
2020-10-21 07:32:30 +03:00
Andrew Dolgov e3da11bf6d Revert "somewhat experimental: disable article packing/unpacking, render content immediately"
This reverts commit ab53591957.
2020-10-21 07:19:15 +03:00
Andrew Dolgov e3a522cdc1 fix HOOK_ARTICLE_RENDERED_CDM never being called 2020-10-09 13:18:47 +03:00
Andrew Dolgov ab53591957 somewhat experimental: disable article packing/unpacking, render content immediately 2020-10-09 13:07:34 +03:00
Andrew Dolgov f693ebab21 fix default password nag dialog, load via xhr 2020-09-16 06:38:41 +03:00
Andrew Dolgov 77faa5d523 editFeed: only try to reload feed tree in preferences if its actually there 2020-09-15 18:55:34 +03:00
Andrew Dolgov 3f9390c45f comments link: load in new tab 2020-09-15 18:49:03 +03:00
Andrew Dolgov 42b5564d1e editarticletags: load dialog via XHR 2020-09-15 18:47:19 +03:00
Andrew Dolgov 0a142912d3 backend handler: require CSRF, remove obsolete code 2020-09-15 18:08:08 +03:00
Andrew Dolgov 154417d80b public/logout: require valid CSRF token 2020-09-15 16:59:11 +03:00
Andrew Dolgov cbcb10a272 Feeds: load quickaddfeed and search dialogs via XHR w/ CSRF protection 2020-09-15 16:28:09 +03:00
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
2020-09-15 16:12:53 +03:00
Andrew Dolgov aeaafefa07 don't pass csrf token as a GET parameter to Article 2020-09-15 16:03:09 +03:00
Andrew Dolgov e670ac2ee5 require CSRF token for Article/redirect 2020-09-15 15:35:50 +03:00
Andrew Dolgov 7e50c6c4b5 - enable CSRF support earlier
- remove rpc/sanityCheck from CSRF-excluded calls
2020-09-15 15:32:17 +03:00
Andrew Dolgov b4cb67e77f remove csrf token from rpc method sanityCheck 2020-09-14 20:00:01 +03:00
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.
2020-07-09 01:52:46 +09:00