Skip to main content

July 21

Hi all, hope you're doing well ^^

I've had one hell of a hard time with my health and IRL things this month, so been a bit slow.

Form Handling improvements

I've created a validation system for all form requests, where all forms are a subclass of a new FormHandler class where POST parameters are retrieved and validated.

Each form specifies the parameters it expects to receive and the parameter types, along with e.g. accepted values for some parameters, and then the validated parameters are available in the form's filteredPostFields variable. The main reason for this was to make validating parameters more uniform, less of a headache in individual forms, and reduce errors.

Backend Logging improvements

Backend server logs have been improved to write to separate files, so that it's easier to debug specific services or modules. This is done by having separate logger instances, and then having all loggers write to a "primary" logger so that the full logs can be seen as well as the separate service/module logs.

There's a bug with this involving a few of the non-amalgamated log files, presumably due to a configuration error, which I need to fix.

Frontend Logging improvements

To improve the readability of frontend logging, and also to try and organise it more, I added the ansicolor JS library and used it with loglevel to create colourful error messages. Not to go overboard, but just to make it easier to differentiate between e.g. debug messages and error messages rather than the DevTools standard "everything is white" messaging system.

image.png

TinyMCE file storage system finished

I've finished implementing the backend and frontend systems to ensure that images users upload into TinyMCE editors, e.g. for their commission info, are stored correctly when saved. They are initially uploaded to the S3 tmpuploads folder, and if saved, they are then resized and moved to the /userimages/descmedia/<userID>/<profilePageName>/ folder so they aren't deleted by the temporary folder's S3 lifecycle rules.

Artwork submission improvements

I've made a lot of improvements to the SubmitArtwork page layout, reducing the amount of space some elements take and making the page more readable and easy to navigate. Some inputs are hidden until particular checkboxes are selected, where the corresponding inputs don't make sense to show (for instance, the "schedule date/time" input is not shown unless the user clicks the "schedule post" checkbox).

Moderation progress

I've changed the moderation structure slightly in the database, removing the subject_subtypes_reasons table. It seemed excessive to have 3 separate tables for report types, and it wasn't proving necessary, so now there are just types and subtypes, e.g. type "artwork" -> subtypes "copyright infringement" and "prohibited content", etc.

As the moderation page now uses a modal that brings up the details of a given item, such as an artwork, completing the modals that display that information should also make it easy to complete the user/artwork/comment lookup areas of the moderation panel. I haven't spent much time on the modals yet; the artwork one is mostly completed, but the ones for users and comments still need doing.

Comic support

I started making submission forms and database tables to allow for comics to be on Deserted Chateau, though I'm not sure if I will finish that part yet. It makes more sense to finish the existing systems and such first, but while it was difficult to focus my mind on those I chipped away at the comic submission forms instead.

I'll add some more info on this and whether I end up properly going through with it in the next update.

Misc

Bug Fixes
  • Fixed a bug where multiple submission toggle in the SubmitArtwork page, where clicking it before the page was fully finished loading could mess with the submission interface. 

  • Fully fixed display bugs in the DisplayArtwork page, when artworks wouldn't be properly positioned on page load or would not display correctly if there were multiple artworks.

  • Fixed a bug causing some 4K resized images not to be properly copied to the subscribed S3 bucket, and thus not loading correctly.

  • Fixed a gallery bug in which some galleries would have an empty first row, causing there to be a larger vertical gap between it and the preceding element.

  • Fixed a gallery bug causing the standard layout to malfunction if the window was resized significantly while new gallery entries are being loaded.

  • Fixed a bug where the DisplayArtwork details pane wouldn't resize properly when the CSS media query for mobile devices kicked in, due to the jQuery autoresize plugin still dictating the size in absolute units.
Styling improvements
  • Improved styling on tooltip arrows, which up until now had a fixed gray colour.

  • Improved profile banner styling by sizing the banner by aspect ratio rather than dynamically calculating the height. This results in a smoother appearance on page load.

  • Improved navbar styling on mobile and fixed some layout issues.

  • User profile menus (Gallery, About, etc) now wrap to the next line on small screens.

  • Fixed lack of space at the bottom of artwork details pages in the artist/comment section.

  • Artwork descriptions in galleries, when they're normally visible, are now hidden for artworks that have a placeholder NSFW filter over them until the placeholder is revealed.

  • Buttons for reblogging, liking an artwork etc in the feed gallery style are now less visually intrusive.

  • Description editors on the Submit Artwork page now start smaller, so they take up less space on the screen if the user isn't adding a description or is adding a short description. They still autoresize as needed.

  • Interaction buttons in the Display Artwork page are now textless, and have on-hover tooltips to explain their function if the user needs them. This helps save space in the details area.

  • The new comment editor in the Display Artwork page now shows a character count, that turns red if the maximum character limit for comments is exceeded. Haven't decided on the limit yet, but probably 100-200 characters or so.

image.png