Commit graph

124 commits

Author SHA1 Message Date
da5c1ee008 Let PhotoTags have timestamps; use more js cards.
Tags on photos can now have timestamps, so that if you are tagging
a video or audio you can reference a specific moment with your tag.
In the interface, this means the tag is clickable and seeks to that
point in the media.

For the user interface, I am finding I need to move away from jinja
for the object cards because it is too much hassle to keep the code
for jinja-based cards for static rendering and the js-based cards
for dynamic rendering in sync. Rather than write the same cards in
two languages I can dump the JSON into the script and render the cards
on load. Which makes the static HTML worse but that's what the JSON
API is for anyway.
2023-09-17 14:07:22 -07:00
a68f76176f Move themes into one file, set by class on html element. 2023-07-22 17:32:39 -07:00
e78a667ee3 Move the session into requests.session for universal access. 2023-02-01 22:04:44 -08:00
e4f686c86f Move thumbnail blobs into the database.
I've moved the thumbnails around many times over this project
and hopefully it doesn't happen too many more. Once the database has
tens of thousands of items, the thumbnails start to become the biggest
headache on the disk. Backing up, restoring, and sharding files per
directory are slower and more effortful with separate files. In the db
means the db is a larger file, but this is disk space that was already
getting used anyway. Now it's simpler and has atomic transactions.
2023-01-27 17:34:32 -08:00
47f71e0b7e Prefer grid gap instead of margin. 2022-11-11 15:30:02 -08:00
0a318baea9
After deleting a photo, go to root instead of search. 2022-10-29 17:17:37 -07:00
328e84b0c7
Fix search by SHA256, didn't finish implementing. 2022-10-29 17:17:37 -07:00
9e204a04c8
Turn a whole bunch of metadata into clickable searches. 2022-10-29 17:17:36 -07:00
6cc0246764
Let smallish plaintext files display as a pre element. 2022-10-27 21:15:52 -07:00
706a5eb185
Add warning li if file no longer exists. 2022-10-27 20:57:36 -07:00
dcaff7fb11
Update http.js. 2022-10-12 18:40:39 -07:00
707d1ec829
Move http functions to new javascript file http.js. 2022-10-01 14:24:36 -07:00
bdf2ba6334
Slight linting. 2022-08-14 13:50:32 -07:00
306655ec8b
Express image area in megapixels. 2022-08-14 13:22:21 -07:00
57f1b80442
Use SQL generated columns for area, aspectratio, basename, bitrate. 2022-08-13 18:08:45 -07:00
f8b1cd9178
Rename hyphen_range to dotdot_range a..b so we can have negatives.
Hyphen range doesn't allow negative numbers. The dot-dot syntax
is used by git, ruby, and others so I think it's a good pick.
2022-08-04 06:10:43 -07:00
4001f6f371
Use datetime objects instead of timestamps in object model.
Trying to make better use of objects in this object oriented language.
2022-07-20 19:03:26 -07:00
a39e600619
Add favicon link to all HTML templates. 2022-05-28 16:21:23 -07:00
ebe6fcb07d
Rename spinner.js -> spinners.js.
It has been frustrating when I want to name a variable spinner.
2022-03-26 13:22:02 -07:00
4da25c1d9e
Replace get_author with @property author. 2021-10-23 18:48:14 -07:00
7e0c3e2626
Use /userid/ links instead of /user/username. 2021-10-23 17:20:14 -07:00
e5f2f6992b
Fix DOCTYPE should just be "html". 2021-06-22 13:38:08 -07:00
9c13220ac3
Let pages opt in to the use of photo_clipboard's hotkeys. 2021-06-03 17:42:46 -07:00
89205ac24a
Add interface for copying tags from other photos. 2021-04-29 13:12:37 -07:00
bc5a9f2116
Remove unused variable action. 2021-04-29 13:04:27 -07:00
400c255aea
Add "Show in folder" button to photos, albums. 2021-02-25 18:57:41 -08:00
5e7b90cbe4
Combine all card templates into cards.html. 2021-01-20 18:26:42 -08:00
20a3828dbf Move .tag_card to cards.css. 2021-01-08 14:16:59 -08:00
7f9c7085f0 Rename tag_object -> tag_card. 2021-01-08 13:57:27 -08:00
2dd71a002b Fix word-wrap should be word-break. 2021-01-07 19:10:28 -08:00
29774f2524 Add the clipboard checkbox on pageload, not in server response.
With the recent addition of search_embed iframes on other pages, we
had photo cards appearing but the photo_clipboard module was not
imported thus the checkboxes did nothing. I don't want to import
photo_clipboard onto every single page, I'd rather they click through
to the full search UI. Otherwise every single page will have the tray
and often not a good enough reason for it.
So, since the functionality of the checkbox is completely reliant on
the photo_clipboard.js module anyway, there's no reason not to have it
generated by that module.
2021-01-05 01:24:03 -08:00
7c62c064cb Rename photo_card_selector_checkbox photo_clipboard_selector_checkbox. 2021-01-04 23:31:41 -08:00
b8290d884e Add html id to the clipboard checkbox here. 2021-01-04 23:29:25 -08:00
12ee2adedf Add alertresponse to a lot of callback functions. 2020-11-06 22:50:05 -08:00
68b27fced2 Add refresh_or_alert so errors aren't missed. 2020-11-06 21:42:28 -08:00
387a9e7b81 Fix vertical centering of wide videos on narrowish viewport. 2020-11-04 17:21:19 -08:00
41b03f46b9 Use more class=panel throughout ui. 2020-11-03 16:25:04 -08:00
615242c680 Remove unnecessary "event" from generate_thumbnail form. 2020-11-03 16:08:15 -08:00
0fccfc562a Rearrange some functions and add headers. 2020-11-03 15:49:50 -08:00
1c0f50a4a6 Move refresh metadata button above the download links. 2020-11-03 15:34:41 -08:00
9e23aacae7 Add id=photo_filename to the h3. 2020-11-03 15:34:28 -08:00
cc8053f8fd Alert response if set searchhidden fails. 2020-11-03 15:33:59 -08:00
272bd471ff Fix positioning of photo_viewer under the new CSS rules. 2020-11-03 00:05:21 -08:00
af4f2bcdaa Link tags on photo page to the /tag/info url. 2020-10-13 10:41:47 -07:00
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
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
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
f56da72881 Return more sets from backend, do sorting on frontend.
It's better semantically for these items coming out of the backend
to be sets. Sorted lists are only relevant to human consumption at the
frontend.
2020-09-20 13:16:52 -07:00
adb1d0ef39 Replace all double blank lines with single, improve hash headers.
There was always some semblance that two blank lines has some kind of
meaning or structure that's different from single blank lines, but
in reality it was mostly arbitrary and I can't stand to look at it
any more.
2020-09-19 03:13:23 -07:00
3fb198f994 Add explicit @media queries for wide mode, not just default to override.
Any properties that are different in wide/narrow mode should be defined
in the correct media query. I got tired of having wide mode be the
default and then narrow mode having to unset/initial all the attributes
that aren't relevant to narrow.
2020-09-18 21:12:28 -07:00