aboutsummaryrefslogtreecommitdiff
path: root/views
AgeCommit message (Collapse)Author
2023-08-04RefactorArjun Satarkar
2023-08-04Fix broken filtering layout on /Arjun Satarkar
2023-08-03Allow setting custom title on /add_feed, improve form layoutArjun Satarkar
2023-08-02Refactor; more to comeArjun Satarkar
I need to add documentation at some point too.
2023-07-30Get feed info for every displayed entry in one query, fix crashArjun Satarkar
Replacing the old approach where for every entry the title & tags were queried separately. If 50 entries are displayed, this is 100 extra queries that are now one query. If the maximum 1000 are displayed, this is 2000 queries to one. Benchmarking this change with ab -n 500 -c 100 http://localhost:8000/?page_num=1&per_page=1000 with 1000+ entries present, we get: (PREVIOUS) Time taken for tests: 0.840 seconds (NEW) Time taken for tests: 0.476 seconds The crash occurred when get_feeds() was called with get_tags=True and the query returned at least one feed with no tags. This was not handled properly by later code. It was not noticed when testing the previous commit since all feeds in the test instance had one or more tags.
2023-07-30Get tags for all shown feeds in one query for /list_feedsArjun Satarkar
This also avoids the need to pass `core` to the template, which I never liked since it is basically giving up on encapsulation and passing the whole world (as far as the application is concerned) to the template - not only the values it needs. But that could be avoided in other ways too without reducing the number of queries from 1 + (number of feeds shown) - eg. 51 - to just 2, which this does. The next place something like this needs to be done is with the / (index.tpl) view. Currently, that is also passed `core` and actually does 2 * (number of entries shown) + 1 queries, which could be eg. 101, since we fetch both the feed title and feed tags for every entry separately. With some improvements, it should be possible to do that too in 2 queries.
2023-07-30Add tags to /list_feeds viewArjun Satarkar
2023-07-30Use <time> elements correctlyArjun Satarkar
Give the datetime attribute the UTC time ending in "Z" as prescribed. Before, we were giving it the local time in the server's time zone, which is wrong if the client is in a different time zone. This does not change what is visually presented in the browser.
2023-07-30Add auto-refresh checkbox, don't auto-refresh except on front pageArjun Satarkar
Also use input type "hidden" instead of display: none where appropriate (no observable effects, just cleaner).
2023-07-30Reduce unnecessary repetition in viewsArjun Satarkar
2023-07-29Add auto-refresh JSArjun Satarkar
2023-07-29Fix bugs related to filteringArjun Satarkar
2023-07-28Add filtering by tag and feed, improve modularity of some HTMLArjun Satarkar
2023-07-28Add AGPLv3 licenseArjun Satarkar
2023-07-05Add pagination UI, list of all feedsArjun Satarkar
2023-07-05Add periodic updates, clean up codeArjun Satarkar
2023-07-04Add feed modification and deletionArjun Satarkar
2023-07-02Separate server and core, add SQLite storageArjun Satarkar
2023-06-22Improve CLI arguments, add basic tag support, add CSSArjun Satarkar
2023-06-22Initial commitArjun Satarkar