The crop tool now exposes a landscape/portrait toggle next to the device-name label, and the canvas crop frame snaps to the chosen aspect when toggled. Choosing an orientation that does not match the target frame's current orientation surfaces a yellow informational chip — purely informational, no action required, clears as soon as the user toggles back to the matching orientation (or changes the frame in Settings). The chosen orientation rides along on the upload/reprocess request as a new cropOrientation form field and is persisted on the Image entity, so the library view and rotation logic can later surface the same mismatch state for already-uploaded photos. Existing photos without a stored orientation get null and are unaffected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
final class Version20260507220000 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Add image.crop_orientation so crop tool and library can flag orientation mismatches';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE image ADD crop_orientation VARCHAR(255) DEFAULT NULL');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE image DROP COLUMN crop_orientation');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user