Commit Graph

1091 Commits (a41c843cb9937363964f7b5fafcdc70d3ab363b0)

Author SHA1 Message Date
voussoir a41c843cb9 Let #right dominate page height, scroll the rest of tags_on_page. 2020-09-29 17:49:03 -07:00
voussoir 9533c444a5 Move error_message_area, happy_message_area into #right.
It's where they belong!
2020-09-29 17:21:50 -07:00
voussoir 14961d75fd Let homepage use width 90% max 600 instead of straight 50%. 2020-09-29 17:18:46 -07:00
voussoir ee16d02324 In narrow mode, let #right be absolute to achieve similar effect.
It's not perfect yet, and 95vh is purely empirical.
2020-09-29 17:18:20 -07:00
voussoir 1d6464b79b Let #right be fixed.
Previously, then the tags list was very long and dominated the scroll
height of the page, the #right and thus the photo would be floating
halfway down the page. By making it sticky, the photo always occupies
the correct position in the viewport no matter how long #left gets.
2020-09-29 17:13:03 -07:00
voussoir ea60190e7d Revert most of failed experiment but keep the good parts.
- tag_autocomplete.tags and .synonyms are separate vars, not in tagset.
- tag_autocomplete.tags is now a Set object for faster resolve().
- get_all_tags moved to api.js.
- server provides "updated" timestamp with the all_tags list.
2020-09-29 16:54:00 -07:00
voussoir 7e58c95f15 Mostly failed experiment: tag_autocomplete indexeddb.
The current system has bad performance when you've got 100,000+ tags.
I discovered that when the server returns 304, the browser gives the
ajax a 200 with the full response, and it's not clear to me if js can
know it got a 304. So, the tag set is being fully re-parsed from the
response on every page load. I was thinking that I should store that in
IndexedDB to avoid the parsing step, but... since the JSON.parse is
done by my common.get before it hits this function, it's meaningless.
Not to mention I still have to rebuild the datalist on every page since
of course that state isn't shared between tabs. Not worth the DB stuff.
We'll see what happens next.
2020-09-29 16:52:20 -07:00
voussoir 3a8aadf6aa Remove __main__ from photodb.py. 2020-09-28 20:15:28 -07:00
voussoir 6eb4d887ba Replace create_or_get_photos with singular. 2020-09-28 20:14:10 -07:00
voussoir 7d2e5bd9a9 Add digest_directory. 2020-09-28 14:28:15 -07:00
voussoir b9f4b2cf38 Pull out search_by_argparse into own function. 2020-09-28 14:25:10 -07:00
voussoir 3e33285cff Add separate argument buckets so any subparser can search. 2020-09-28 14:24:17 -07:00
voussoir 3738a60195 Cache photodbs throughout runtime. 2020-09-28 14:22:28 -07:00
voussoir d531c66bf0 Delete photo's thumbnail when deleting the file.
A minor oversight, I think you'll agree.
2020-09-28 14:22:09 -07:00
voussoir 949e6f68fe Remove support for two Photos with same path.
I have yet to find a practical need for this, and all it does is cause
headaches about the safety of moving / renaming the file.
2020-09-28 14:18:10 -07:00
voussoir 585882028d Add get_things_by_sql for quick, bespoke queries. 2020-09-28 14:07:28 -07:00
voussoir 98f706f486 Let Photo.basename be a @property. 2020-09-28 14:06:32 -07:00
voussoir 3b72b07262 Replace yield from generator with return generator. 2020-09-28 11:26:16 -07:00
voussoir 63bc2dfed5 Add yield_photos, count albums in search result limit.
This experiment of bringing Photos and Albums closer to parity in
search is going well so far. I have found some situations where it
is nice to only get albums back from search results.
2020-09-27 23:38:49 -07:00
voussoir c7eda36133 Add decollide_names, prefer simplified names in album exports. 2020-09-27 23:36:15 -07:00
voussoir 28aa47d40d Add __str__ to Album and Photo. 2020-09-27 23:35:12 -07:00
voussoir ba1fba0c06 Add full_name to Albums. 2020-09-27 23:35:12 -07:00
voussoir 72229a9c3b When adding/removing photos, respond with updated album json. 2020-09-27 23:35:12 -07:00
voussoir d152987b97 Let /album/add_child, /remove_child take multiple IDs. 2020-09-27 23:35:01 -07:00
voussoir 8777998829 Add plural method remove_children. 2020-09-27 22:24:33 -07:00
voussoir 0eb8fd3f1b Fix incorrect short-circuit order of add_chidren bail. 2020-09-27 19:49:27 -07:00
voussoir 06340d03da Dedent these loops via comprehensions of questionable clarity. 2020-09-27 13:50:35 -07:00
voussoir fa512eff28 Add argument once_each, set to False if you want every permutation. 2020-09-27 13:28:03 -07:00
voussoir 97cc023866 Add Groupable methods has_ancestor, _descendant, _parent. 2020-09-27 13:01:19 -07:00
voussoir 5712d6dabd Call tag_object instead of hand writing this tag. 2020-09-27 12:15:03 -07:00
voussoir 08591a717b Let tag_object take arbitrary extra attributes. 2020-09-27 12:14:33 -07:00
voussoir 78a3aa36a8 Let make_attributes replace underscores with hyphens in attr names. 2020-09-27 12:14:20 -07:00
voussoir 705bd8269f Fix some (but not all) handling of tags with & via urlencoding. 2020-09-27 11:53:38 -07:00
voussoir e11f04342a Use nested <details> for the setup and run instructions. 2020-09-27 11:12:38 -07:00
voussoir 4fd9b54860 Update frontends summaries. 2020-09-27 11:12:20 -07:00
voussoir 454693f1dc Add etiquette_cli.py.
Just enough to pique your interest.
2020-09-27 10:57:31 -07:00
voussoir 4ee9aea3a9 Remove these pitiful leftovers of a changelog legend. 2020-09-27 10:49:23 -07:00
voussoir 667c14f072 Add search argument within_directory. 2020-09-27 10:48:01 -07:00
voussoir da67740689 Move these print statements to log.debug. 2020-09-27 10:47:32 -07:00
voussoir 51b2642be9 Let data_directory take an existing pathclass instance. 2020-09-27 10:45:58 -07:00
voussoir a2fc49b6e7 Let config.log_level None -> setLevel(NOTSET). 2020-09-27 10:45:07 -07:00
voussoir 17f694cfed Add theme-change links to homepage. 2020-09-27 10:37:13 -07:00
voussoir 41353b2eb4 Move current default css into theme_turquoise. Always pick a theme. 2020-09-25 16:27:47 -07:00
voussoir f5d8898e14 Increase search limit to 1,000. 2020-09-24 14:28:38 -07:00
voussoir 343ce508bf Add search UI for yield_albums. 2020-09-24 14:26:51 -07:00
voussoir 9a85714df7 Use pathclass.Path.makedirs. 2020-09-24 14:18:23 -07:00
voussoir 28181428be Synchronize Etiquette and YCDL. 2020-09-22 02:54:26 -07:00
voussoir 18e1849fcf Fix video_thumbnail not checking if probe failed before using it. 2020-09-20 18:31:55 -07:00
voussoir 2accb5c961 Use pathclass.Path.open. 2020-09-20 18:31:31 -07:00
voussoir 55e66c8656 Fix NameError during set_override_filename. 2020-09-20 13:43:02 -07:00