Commit Graph

122 Commits (ec8644dded56ed48d8d0e8c7623b8c1c313fadfe)

Author SHA1 Message Date
voussoir 9a29048ccf Split sticky_side functionality into _side, _bottom.
This makes the role of each css definition more clear, and could allow
for cases where the side is sticky in wide mode but not sticky in
narrow mode.
2020-09-18 20:37:40 -07:00
voussoir 4c9668c920 Instead of anti-autofocusing, use a pageload that calls focus(). 2020-09-17 18:17:08 -07:00
voussoir f9e4bac186 Use more _form functions instead of inline api.js calls. 2020-09-17 18:14:07 -07:00
voussoir 2a379919e0 Use grid instead of flexbox for message_area for better gaps. 2020-09-15 15:03:40 -07:00
voussoir dd0ee7a72a Use more const. 2020-09-14 18:33:53 -07:00
voussoir c11fb12069 Sort tags as they are added to photo. 2020-09-12 16:52:46 -07:00
voussoir bbadd15129 Put the callbacks next to their respective form functions. 2020-09-12 11:59:03 -07:00
voussoir d00d7b4acf Refocus add_tag_box after removing a tag. 2020-09-12 01:19:16 -07:00
voussoir 30c9efc043 Rename generate_thumbnail_for_video -> _form. 2020-09-11 17:06:50 -07:00
voussoir ad26f09ee0 On photo.html, add and remove tag lis dynamically.
Instead of requiring a page refresh to see the new tags. They
just won't be sorted.
Slight bummer, the datalist dropdown pretty much obscures the
whole thing anyway.
2020-09-11 15:57:06 -07:00
voussoir 4b76bc0628 Don't access response.data.tagname until we know it's not an error.
This wasn't causing any issues, because it was just setting itself
to undefined, but I realized I should move it.
2020-09-10 06:48:56 -07:00
voussoir 8d2af3255b Add endpoints set_searchhidden, unset_searchhidden and checkbox. 2020-09-09 20:51:15 -07:00
voussoir 4569e7848c Let apply_check_all search for the checkboxes, not the photo cards. 2020-09-09 20:09:41 -07:00
voussoir 7f48c3e97c Add css/js classes entry_with_history, _with_tagname_replacements. 2020-09-04 11:20:51 -07:00
voussoir 295c9b4956 Add return to all onclicks, and ; to other javascript hooks. 2020-09-04 10:37:04 -07:00
voussoir dae5815239 Give #refresh_metadata_button .button_with_spinner. 2020-09-03 15:39:11 -07:00
voussoir 8af340e442 Replace non-global uses of var with let. 2020-09-03 15:31:47 -07:00
voussoir 8dafe8c4f4 Synchronize Etiquette common.css and YCDL common.css. 2020-09-03 11:50:16 -07:00
voussoir 7609f20dd0 Let button_with_confirm inherit original CSS when not specified. 2020-08-07 21:14:27 -07:00
voussoir 7c4229f1fa Use dot notation instead of subscript for response. 2020-06-28 17:54:16 -07:00
voussoir b81aad78dd Rename CSS vars color_theme_* and color_site_* to color_*.
There was just no point to naming them like this because all of the
color vars obviously represent some part of the site's color theme.
2020-06-25 10:03:50 -07:00
voussoir a56b5274c9 Read spinner button function from onclick instead of data-onclick.
I think my original reason for doing this was to prevent the button
from being operational until after the spinner initialization has
completed, so you don't get any weird half-functional spinner buttons.
However, in practice I'm finding that I constantly forget about this
and it adds tedium to creating spinner buttons.
Will review if any actual problems come up.
2020-06-17 14:04:27 -07:00
voussoir e1033d0138 Move tagname related functions from common.js to tag_autocomplete.js. 2020-06-17 12:42:08 -07:00
voussoir 30a0715980 Add photo delete buttons to hovering toolbox.
I tried putting them in the #left but it was looking seriously ugly.
Actually #left is always ugly because the variety of info and buttons
and text alignments. Hover toolbox is not ideal and I don't want it
to become a dumping ground, but deleting should be a rare action and I
don't want it right next to stuff like the basic metadata.
2020-02-27 14:15:13 -08:00
voussoir a88fcc2092 Move the clipboard checkbox into metadata list too. 2020-02-26 18:41:17 -08:00
voussoir 66f73a6aab Move the photo filename out of list to top of left. 2020-02-26 18:40:03 -08:00
voussoir 596eb86f6e Move the refresh metadata button into metadata bullet list. 2020-02-26 18:39:19 -08:00
voussoir 10b674e8d8 Add entry_with_tagname_replacements for use on tagname inputs.
Unfortunately, when adjusting the box's value, it causes the datalist
to disappear, and it only comes back after you press another key.
I can't figure out how to make the datalist reappear automatically
with js.
2020-01-15 20:29:56 -08:00
voussoir 53888a1787 Fix #photoviewer <a> from being expanded to fill the whole pane. 2020-01-15 20:18:40 -08:00
voussoir 89bfca8f9f Add endpoint for photo generate thumbnail. 2020-01-12 14:52:03 -08:00
voussoir b7b33a63ee Rename receive_callback -> add_remove_photo_tag_callback. 2020-01-12 14:36:48 -08:00
voussoir c984159a76 Minor css tweaks. 2019-09-11 01:13:10 -07:00
voussoir b683413be0 Try different themes with the ?theme query. 2019-08-14 13:43:35 -07:00
voussoir 36a2ed9f88 Remove unnecessary _form functions that can be direct calls. 2019-06-15 02:42:33 -07:00
voussoir 9b72b3dff0 Use CSS Grid on photo.html, resolve some Chrome/FF differences.
- In Firefox, the image under flex would be full-res height
  instead of staying screen height.
  In this new Grid-based layout the image is the correct size.
  Left toolbox still uses flex, no problems with it.
- Redid the classing of the photo_viewer and eliminated
  photo_img_holder so that all media types follow the same markup.
- Added a CSS variable for tracking narrow mode instead of relying
  on coincidental properties like flex settings.
2019-01-16 19:22:21 -08:00
voussoir 588bf59b88 Variety of html, css, jinja tweaks.
- common.css, removed html and body margins so that using
  full height #content_body will not create a scrollbar.
  Simplifies the "fill remaining space" construct I use a lot.
  Added more css variables, I'm thinking about future theming.
- photo_card.css, slightly heightened to improve name clipping.
- clipboard.html, added a small screen mode.
- login.html, centered the boxes and fixed message area being
  too small due to a previous change.
- search.html, simplified some conditional texts.
2018-10-21 18:46:27 -07:00
voussoir af318414e2 Integrate photos with api.js. 2018-09-23 15:52:19 -07:00
voussoir 3a9ab2b099 Rename photoclipboard.js -> photo_clipboard.js.
To match the namespace photo_clipboard.
2018-09-23 15:17:31 -07:00
voussoir ac79183603 Use more CSS grid on body and content_body.
I learned that grid-template lets you specify row and col
sizes all at once.
2018-09-23 15:08:39 -07:00
voussoir 3db5c77c2c Use a CSS var for 10% transparency and drop shadow. 2018-09-22 16:01:34 -07:00
voussoir 01a8a6df66 Oops, don't go checking the textbox for tag removal. 2018-09-21 21:32:19 -07:00
voussoir 251bc04459 Fix photo.html endpoint urls. 2018-08-16 19:45:47 -07:00
voussoir f047235c48 Reorganize a bunch of javascript handlers.
The javascript is very inconsistent between pages. I'm trying to
start using a consistent pattern where the api call is kept in a
separate function from the ones that buttons and input boxes
talk to.
2018-07-29 01:25:53 -07:00
voussoir 22d2efa289 Add 'event' to toggle_hoverzoom header for firefox's benefit. 2018-07-28 16:16:16 -07:00
voussoir d7b9020585 Add namespacing to photoclipboard.js. 2018-07-22 20:21:00 -07:00
voussoir c7cce5a4e5 Add namespacing to common.js. 2018-07-22 20:21:00 -07:00
voussoir 8a12a24e8e Add tag_autocomplete.js.
Instead of embedding the entire tag list in the search.html template
every single time, this script loads the tags from the new,
cache-enabled endpoint /all_tags.json. Then we can use html5
datalists to create autocomplete forms on the search and photo pages.
2018-07-22 20:19:05 -07:00
voussoir 4c65ccaf68 Big! Liberate Groupables from strict heirarchy. Multiple parents.
I found that the strict heirarchy was not satisfying the situation
where one tag is the intersection of two others, but we can only
pick one as the parent

For example, does red_jacket belong under clothes.red_clothes or
clothes.jackets? A search for "red_clothes AND jackets" might
give us someone wearing red pants and a black jacket, so this
definitely needs to be a separate tag, but picking only one
parent for it is not sufficient. Now, a search for red_clothes
and a search for jackets will both find our red_jacket photo.

The change also applies to Albums because why not, and I'm sure
a similar case can be made.

Unfortunately this means tags no longer have one true qualname.
The concept of qualnames has not been completely phased out but
it's in progress.

This commit is very big because I was not sure for a long time
whether to go through with it, and so much stuff had to change
that I don't want to go back and figure out what could be grouped
together.
2018-07-20 13:09:06 -07:00
voussoir 4002cc660e Don't use shortlink for zoom url. It breaks caching. 2018-05-01 21:03:10 -07:00
voussoir b19682d1a5 Replace Photo.sorted_tags with jinja filter. 2018-04-28 19:05:51 -07:00
voussoir 50592f0ab4 Rework tab titles from "Album X" to "X | Albums" etc.
To prioritize the most unique and relevant piece of information.
2018-04-27 20:04:24 -07:00
voussoir bdec6cf4a3 Add filter to generate /file/ link with appropriate basename.
Because inlining the |urlencode every time is easy to forget.
2018-04-19 19:29:06 -07:00
voussoir 21bd211889 Give Users a display_name. 2018-04-15 14:23:24 -07:00
voussoir 30c9148092 Move the remaining common css / js to their folders. 2018-02-24 12:51:36 -08:00
voussoir 79b20369db Oops, apply listeners to /photo input box as well. 2018-02-24 01:08:21 -08:00
voussoir 13e8bc4a6f Add more items to to-do list; minor fixes. 2018-02-20 16:50:39 -08:00
voussoir ef5bbf5fc3 Split HTTP response dict into ["meta"] and ["data"]. 2018-02-17 18:47:17 -08:00
voussoir b4a28f5034 Make Photo.bytestring a @property.
This is the kind of thing that should be a @property, because
it's very low processing power and doesn't hit the database.
2018-02-16 23:16:02 -08:00
voussoir bbe392ac09 Rename Photo.author -> get_author; no longer a @property. 2018-02-16 23:11:25 -08:00
voussoir 205c49c21f Rename Photo.albums -> get_containing_albums. 2018-02-16 23:08:44 -08:00
voussoir 1c1e7f158f Minor fixes & pylint appeasements. 2018-02-16 21:28:36 -08:00
voussoir 5fccf5548b Add Before and After search links to the photo sidebar. 2018-01-11 16:11:38 -08:00
voussoir e41532cff1 Rearrange some button CSS classes to be more generic.
Adds CSS variables for the highlight and shadow so they don't need
to be custom-defined for each color of button.
Elements should use more generic classes like green_button instead of
add_tag_button unless there's a good reason.
2017-12-16 14:13:02 -08:00
voussoir 26a034c9a0 Make `Photo.author` a @property; None if no author. 2017-09-23 10:58:04 -07:00
voussoir 797b3376a7 Add meta viewport to all pages. 2017-07-20 23:10:48 -07:00
voussoir 5ba2ecd38a Add tag_object html macro to centralize that effort. Still needs work. 2017-06-13 21:42:23 -07:00
voussoir aa30d5903d Don't clip editor_area bg when scrollbar appears.
Instead of applying the background-color to the holder, apply it to the editor
area and message area separately. Then they can flex differently so that
the editor always maintains full height, and the message area shrinks to
a minimum of 30px.
2017-06-13 21:35:13 -07:00
voussoir a485be3c64 Make bitrate a real attribute instead of calculating in jinja 2017-05-11 22:34:19 -07:00
voussoir 1fe3b99876 Move filename to be its own li 2017-05-06 03:45:01 -07:00
voussoir 980688fbc1 Fix hoverzoom snapping to last known position.
Suddenly hoverzoom started acting wrongly. Possibly a Chrome update.
2017-05-05 23:02:42 -07:00
voussoir 87abb055c3 Fix photo message_area from dominating screen height 2017-05-05 22:59:22 -07:00
voussoir 1c30ef5785 Further separate front & back; Create frontends folder
New frontends folder will hold all front-end interfaces for etiquette. Existing flask site moved here and refers to itself as a package with external launcher. etiquette_site renamed to etiquette_flask
2017-05-01 21:49:28 -07:00