Skip to content

Commit

Permalink
Merge branch hotfix/v2.2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
roadiz-ci committed Feb 7, 2024
1 parent 27a04cf commit 2135f82
Show file tree
Hide file tree
Showing 14 changed files with 121 additions and 48 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/run-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['8.0', '8.1']
php-version: ['8.1', '8.2', '8.3']
steps:
- uses: shivammathur/setup-php@v2
with:
Expand Down
14 changes: 0 additions & 14 deletions .travis.yml

This file was deleted.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Roadiz Font bundle
**Manage and expose web fonts with Roadiz CMS**

![Run test status](https://github.com/roadiz/font-bundle/actions/workflows/run-test.yml/badge.svg?branch=develop)

Expand Down
27 changes: 15 additions & 12 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
{
"name": "roadiz/font-bundle",
"description": "Manage and expose web fonts with Roadiz CMS",
"license": "MIT",
"keywords": [
"cms",
"backoffice",
"roadiz",
"rezo zero"
],
"authors": [
Expand All @@ -15,16 +17,17 @@
}
],
"type": "symfony-bundle",
"prefer-stable": true,
"require": {
"php": ">=8.0",
"php": ">=8.1",
"doctrine/annotations": "^1.0",
"doctrine/doctrine-bundle": "^2.8.1",
"doctrine/doctrine-migrations-bundle": "^3.1",
"doctrine/orm": "^2.14.1 < 2.17",
"doctrine/orm": "~2.17.0",
"jms/serializer": "^3.9.0",
"league/flysystem": "^3.0",
"roadiz/models": "^2.1",
"roadiz/rozier": "^2.1",
"roadiz/models": "2.2.*",
"roadiz/rozier": "2.2.*",
"sensio/framework-extra-bundle": "^6.1",
"symfony/asset": "5.4.*",
"symfony/cache": "5.4.*",
Expand All @@ -40,7 +43,7 @@
"symfony/twig-bundle": "5.4.*",
"symfony/validator": "5.4.*",
"symfony/yaml": "5.4.*",
"twig/extra-bundle": "^2.12|^3.0",
"twig/extra-bundle": "^3.0",
"twig/intl-extra": "*",
"twig/string-extra": "*",
"twig/twig": "^3.1"
Expand All @@ -54,11 +57,11 @@
"symfony/browser-kit": "5.4.*",
"symfony/phpunit-bridge": "5.4.*",
"symfony/stopwatch": "5.4.*",
"roadiz/core-bundle": "^2.1",
"roadiz/compat-bundle": "^2.1",
"roadiz/rozier-bundle": "^2.1",
"roadiz/documents": "^2.1",
"roadiz/entity-generator": "^2.1"
"roadiz/core-bundle": "2.2.*",
"roadiz/compat-bundle": "2.2.*",
"roadiz/rozier-bundle": "2.2.*",
"roadiz/documents": "2.2.*",
"roadiz/entity-generator": "2.2.*"
},
"config": {
"optimize-autoloader": true,
Expand All @@ -85,8 +88,8 @@
},
"extra": {
"branch-alias": {
"dev-main": "2.1.x-dev",
"dev-develop": "2.2.x-dev"
"dev-main": "2.2.x-dev",
"dev-develop": "2.3.x-dev"
}
}
}
36 changes: 36 additions & 0 deletions migrations/Version20230607134442.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

declare(strict_types=1);

namespace RZ\Roadiz\FontBundle\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20230607134442 extends AbstractMigration
{
public function getDescription(): string
{
return 'Set font filenames to 100 chars max.';
}

public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE fonts CHANGE eot_filename eot_filename VARCHAR(100) DEFAULT NULL, CHANGE woff_filename woff_filename VARCHAR(100) DEFAULT NULL, CHANGE woff2_filename woff2_filename VARCHAR(100) DEFAULT NULL, CHANGE otf_filename otf_filename VARCHAR(100) DEFAULT NULL, CHANGE svg_filename svg_filename VARCHAR(100) DEFAULT NULL, CHANGE name name VARCHAR(100) NOT NULL, CHANGE hash hash VARCHAR(128) NOT NULL, CHANGE folder folder VARCHAR(100) NOT NULL');
}

public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE fonts CHANGE eot_filename eot_filename VARCHAR(255) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE woff_filename woff_filename VARCHAR(255) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE woff2_filename woff2_filename VARCHAR(255) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE otf_filename otf_filename VARCHAR(255) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE svg_filename svg_filename VARCHAR(255) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE name name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE hash hash VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE folder folder VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`');
}

public function isTransactional(): bool
{
return false;
}
}
33 changes: 33 additions & 0 deletions migrations/Version20230828092912.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

declare(strict_types=1);

namespace RZ\Roadiz\FontBundle\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20230828092912 extends AbstractMigration
{
public function getDescription(): string
{
return 'Fixed Font inherited indexes.';
}

public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE INDEX font_created_at ON fonts (created_at)');
$this->addSql('CREATE INDEX font_updated_at ON fonts (updated_at)');
}

public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('DROP INDEX font_created_at ON fonts');
$this->addSql('DROP INDEX font_updated_at ON fonts');
}
}
2 changes: 2 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ parameters:
- '#Doctrine\\ORM\\Mapping\\GeneratedValue constructor expects#'
- '#type mapping mismatch: property can contain Doctrine\\Common\\Collections\\Collection<int, [^\>]+> but database expects Doctrine\\Common\\Collections\\Collection&iterable<[^\>]+>#'
- '#should return Doctrine\\Common\\Collections\\Collection<int, [^\>]+Interface> but returns Doctrine\\Common\\Collections\\Collection<int, [^\>]+>#'
- '#but returns Doctrine\\Common\\Collections\\ReadableCollection<int, [^\>]+>#'
- '#does not accept Doctrine\\Common\\Collections\\ReadableCollection<int, [^\>]+>#'

reportUnmatchedIgnoredErrors: false
checkGenericClassInNonGenericObjectType: false
Expand Down
3 changes: 3 additions & 0 deletions src/Controller/Admin/FontsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@ public function downloadAction(Request $request, int $id): BinaryFileResponse
if ($font !== null) {
// Prepare File
$file = tempnam(sys_get_temp_dir(), "font_" . $font->getId());
if (false === $file) {
throw new \RuntimeException('Cannot create temporary file.');
}
$zip = new \ZipArchive();
$zip->open($file, \ZipArchive::CREATE);

Expand Down
15 changes: 7 additions & 8 deletions src/Controller/FontFaceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public function fontFileAction(Request $request, string $filename, int $variant,
if (null !== $font) {
[$fontData, $mime] = $this->getFontData($font, $extension);

if (null !== $fontData) {
if (\is_string($fontData)) {
$response = new Response(
'',
Response::HTTP_NOT_MODIFIED,
Expand All @@ -104,7 +104,7 @@ public function fontFileAction(Request $request, string $filename, int $variant,
if (!$response->isNotModified($request)) {
$response->setContent($fontData);
$response->setStatusCode(Response::HTTP_OK);
$response->setEtag(md5($response->getContent()));
$response->setEtag(md5($fontData));
}

return $response;
Expand Down Expand Up @@ -164,13 +164,12 @@ public function fontFacesAction(Request $request): Response
'variantHash' => $variantHash,
];
}
$response->setContent(
$this->templating->render(
'@RoadizFont/fonts/fontfamily.css.twig',
$assignation
)
$content = $this->templating->render(
'@RoadizFont/fonts/fontfamily.css.twig',
$assignation
);
$response->setEtag(md5($response->getContent()));
$response->setContent($content);
$response->setEtag(md5($content));
$response->setStatusCode(Response::HTTP_OK);

return $response;
Expand Down
25 changes: 17 additions & 8 deletions src/Entity/Font.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
ORM\Entity(repositoryClass: FontRepository::class),
ORM\Table(name: "fonts"),
ORM\UniqueConstraint(columns: ["name", "variant"]),
ORM\Index(columns: ["created_at"], name: "font_created_at"),
ORM\Index(columns: ["updated_at"], name: "font_updated_at"),
UniqueEntity(fields: ["name", "variant"])
]
class Font extends AbstractDateTimed
Expand Down Expand Up @@ -86,31 +88,38 @@ class Font extends AbstractDateTimed
protected ?UploadedFile $otfFile = null;
protected ?UploadedFile $svgFile = null;

#[ORM\Column(name: 'eot_filename', type: 'string', nullable: true)]
#[ORM\Column(name: 'eot_filename', type: 'string', length: 100, nullable: true)]
#[Assert\Length(max: 100)]
private ?string $eotFilename = null;

#[ORM\Column(name: 'woff_filename', type: 'string', nullable: true)]
#[ORM\Column(name: 'woff_filename', type: 'string', length: 100, nullable: true)]
#[Assert\Length(max: 100)]
private ?string $woffFilename = null;

#[ORM\Column(name: 'woff2_filename', type: 'string', nullable: true)]
#[ORM\Column(name: 'woff2_filename', type: 'string', length: 100, nullable: true)]
#[Assert\Length(max: 100)]
private ?string $woff2Filename = null;

#[ORM\Column(name: 'otf_filename', type: 'string', nullable: true)]
#[ORM\Column(name: 'otf_filename', type: 'string', length: 100, nullable: true)]
#[Assert\Length(max: 100)]
private ?string $otfFilename = null;

#[ORM\Column(name: 'svg_filename', type: 'string', nullable: true)]
#[ORM\Column(name: 'svg_filename', type: 'string', length: 100, nullable: true)]
#[Assert\Length(max: 100)]
private ?string $svgFilename = null;

#[ORM\Column(type: 'string', unique: false, nullable: false)]
#[ORM\Column(type: 'string', length: 100, unique: false, nullable: false)]
#[Assert\NotNull]
#[Assert\NotBlank]
#[Assert\Length(max: 100)]
private string $name = '';

#[ORM\Column(type: 'string', unique: false, nullable: false)]
#[ORM\Column(type: 'string', length: 128, unique: false, nullable: false)]
#[Assert\Length(max: 128)]
private string $hash = '';

#[ORM\Column(type: 'string', nullable: false)]
#[ORM\Column(type: 'string', length: 100, nullable: false)]
#[Assert\Length(max: 100)]
private string $folder = '';

#[ORM\Column(type: 'text', nullable: true)]
Expand Down
3 changes: 2 additions & 1 deletion src/Repository/FontRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public function getLatestUpdateDate(): ?\DateTimeInterface
{
$query = $this->_em->createQuery('
SELECT MAX(f.updatedAt) FROM RZ\Roadiz\FontBundle\Entity\Font f');
$updatedAt = $query->getSingleScalarResult();

return new \DateTimeImmutable($query->getSingleScalarResult());
return \is_string($updatedAt) ? new \DateTimeImmutable($updatedAt) : null;
}
}
2 changes: 1 addition & 1 deletion templates/admin/add.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<fieldset data-uk-margin>
{% apply spaceless %}
<button data-action-save="#edit-font-form"
class="uk-button uk-button-primary rz-action-save" type="submit">
class="uk-button uk-button-success rz-action-save" type="submit">
<span class="icon-container"><i class="uk-icon-rz-save"></i></span>
<span class="label"><span class="label-text">{% block content_form_submit_label %}
{%- trans -%}save{%- endtrans -%}
Expand Down
4 changes: 2 additions & 2 deletions templates/admin/edit.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
<div class="content-table-cont metadata-list">
<table class="uk-table content-table">
<tr>
<td>{% trans %}created.at{% endtrans %}</td>
<th>{% trans %}created.at{% endtrans %}</th>
<td>{{ item.createdAt|format_datetime('long', locale=app.request.locale) }}</td>
</tr>
<tr>
<td>{% trans %}updated.at{% endtrans %}</td>
<th>{% trans %}updated.at{% endtrans %}</th>
<td>{{ item.updatedAt|format_datetime('long', locale=app.request.locale) }}</td>
</tr>
</table>
Expand Down
2 changes: 1 addition & 1 deletion templates/admin/list.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
data-uk-tooltip="{animation:true}">
<i class="uk-icon-rz-download"></i>
</a>
<a class="uk-button uk-button-content uk-button-small uk-button-table-delete"
<a class="uk-button uk-button-content uk-button-small uk-button-danger"
href="{{ path('fontsDeletePage', { id: item.id }) }}"
title="{% trans %}delete{% endtrans %}"
data-uk-tooltip="{animation:true}">
Expand Down

0 comments on commit 2135f82

Please sign in to comment.