Files
RenewCMS/docs/releases/v2.2.0-beta.md
T

2.0 KiB

This release reworks image handling in the article editor and brings the password-reset screens up to the new design.

New

Crop and resize before upload

  • A Crop and resize step now sits between picking an image and uploading it. It applies to JPEG, PNG and WEBP files. SVG files still upload straight away.
  • Move or resize the crop frame by dragging it or its handles. Arrow keys nudge it by 1 px, and Shift+arrow resizes it by 1 px.
  • Aspect ratios: Original, Free, 16:9, 4:3 and 1:1.
  • Rotate and Reset buttons.
  • Output width presets: Original, 1600 px (default), 1200 px and 800 px. The output is never wider than the crop frame.
  • A live line shows the final pixel size and an approximate file size before you upload.

Remove images from the editor

  • Images in an article can now be removed from the editor. The image file and its database row are both deleted.
  • The editor renders images as a dedicated image node.

Password-reset screens

  • The Forgot password and Reset password screens follow the new design and cover every state in the spec.

API

  • DELETE /v1/article/{id}/image/{imageId} (authenticated) deletes an image. It returns 204 on success, 404 for an unknown article or image, and 400 for an ID that isn't a valid uint32.
  • Changed: POST /v1/article/{id}/image now returns {"id": …, "location": …} instead of {"location": …}. The change is additive, but anything parsing the response strictly should be checked.

Under the hood

  • The editor now depends on @tiptap/extension-image, @tiptap/pm and @tiptap/vue-3, all pinned to 3.31.3.
  • New feature specs and QA procedures cover crop and resize, image removal and both reset screens.
  • New Go HTTP tests cover image deletion, and Vitest specs were added and updated for the editor and reset views.
  • The visual-check states cover the new screens, and the design docs are updated to match.

Upgrading

  • No new environment variables and no schema changes.
  • Replace the binary and restart.