Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5245364
feat: update composer php requirements
erdnaxelaweb Apr 7, 2023
fe223b0
try to fix
RemyNovactive Apr 26, 2023
01b7fce
try to fix
RemyNovactive Apr 26, 2023
29a6d27
Merge pull request #1 from Novactive/main-ibx4-fix
yhanini Apr 27, 2023
7c314c7
try to fix
RemyNovactive Apr 27, 2023
cb06bfb
try to fix
RemyNovactive Apr 27, 2023
e12a039
try to fix
RemyNovactive Apr 28, 2023
41628ad
try to fix
RemyNovactive Apr 28, 2023
40f0c95
remove TODO
RemyNovactive Apr 28, 2023
e3b075e
Merge pull request #2 from Novactive/main-ibx4-fix
yhanini Apr 28, 2023
21d2998
ibexadesign
RemyNovactive May 4, 2023
d7e7259
feat: ibx4 migration
erdnaxelaweb May 26, 2023
ccbc62a
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 2, 2023
8ba5b13
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 2, 2023
1b8f153
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 2, 2023
040fae6
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 2, 2023
397b7dc
Merge pull request #4 from Novactive/fix-111471-MIG-GOUV
RemyNovactive Nov 2, 2023
9481c36
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 7, 2023
ad09c80
#111471 - [MIG-GOUV] Creation de contenu : dysfonctionnement dans la …
RemyNovactive Nov 7, 2023
543b175
Merge pull request #5 from Novactive/fix-111471-MIG-GOUV2
RemyNovactive Nov 7, 2023
b32e325
Add composer.lock to .gitignore
RemyNovactive Nov 7, 2023
64c1dc2
Merge remote-tracking branch 'origin/main-ibx4' into main-ibx4
RemyNovactive Nov 7, 2023
4e0a2e9
Add .idea to .gitignore
RemyNovactive Nov 7, 2023
df5de14
Set Calameo optional (#6)
RemyNovactive Dec 1, 2023
0c25e3f
Remove lazy
RemyNovactive Dec 3, 2024
9284599
Merge branch 'main-ibx4' into remove-lazy
RemyNovactive Dec 5, 2024
a157a7a
Merge pull request #7 from Novactive/remove-lazy
RemyNovactive Dec 5, 2024
68d3e58
Catch all exception in CalameoTwigExtension
RemyNovactive Mar 6, 2026
ff4b68c
Fix Client error: `GET http://api.calameo.com/1.0?order=Name&way=UP&s…
RemyNovactive Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/vendor
/composer.lock
/.idea
21 changes: 11 additions & 10 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"almaviacx"
],
"homepage": "https://github.com/Novactive/AlmaviaCXCalameoBundle",
"type": "ezplatform-bundle",
"type": "ibexa-bundle",
"authors": [
{
"name": "AlmaviaCX",
Expand All @@ -19,15 +19,13 @@
"MIT"
],
"require": {
"php": "^7.2",
"ext-pdo": "*",
"php": "^7.4 || ^8.0",
"ext-json": "*",
"doctrine/cache": "^1.10",
"ezsystems/ezpublish-kernel": "^7.5",
"ezsystems/repository-forms": "^2.5",
"guzzlehttp/guzzle": "^6.0",
"jms/serializer": "^1.0",
"jms/serializer-bundle": "^2.0",
"symfony/symfony": "^3.4"
"ibexa/core": "^4.2",
"jms/serializer": "^3.5",
"jms/serializer-bundle": "^3.5",
"symfony/var-exporter": "^6.0"
},
"autoload": {
"psr-4": {
Expand All @@ -46,6 +44,9 @@
"phpunit/phpunit": "^9.5"
},
"config": {
"sort-packages": true
"sort-packages": true,
"allow-plugins": {
"php-http/discovery": true
}
}
}
5 changes: 4 additions & 1 deletion src/bundles/APIBundle/Resources/config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ services:
public: false

AlmaviaCX\Calameo\API\HttpClient:
lazy: true
arguments:
$APIKey: "%almaviacx.calameo.api.key%"
$APISecret: "%almaviacx.calameo.api.secret%"
$config: "%almaviacx.calameo.http_client.config%"

AlmaviaCX\Calameo\API\Serializer:
arguments:
$baseSerializer: "@jms_serializer"
$baseSerializer: '@JMS\Serializer\SerializerInterface'

AlmaviaCX\Calameo\API\Gateway\:
resource: "../../../../lib/API/Gateway/*"
Expand All @@ -32,3 +33,5 @@ services:

AlmaviaCX\Calameo\API\Service\:
resource: "../../../../lib/API/Service/*"

AlmaviaCX\Calameo\Exception\ExceptionThrower:
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ public function load(array $configs, ContainerBuilder $container): void
/**
* Allow an extension to prepend the extension configurations.
*
* @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
* @param ContainerBuilder $container
*/
public function prepend(ContainerBuilder $container)
{
$configs = [
'field_templates.yml' => 'ezpublish',
'field_templates.yml' => 'ibexa',
'twig.yml' => 'twig',
];

Expand Down
2 changes: 1 addition & 1 deletion src/bundles/EzBundle/Resources/config/field_templates.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
system:
default:
field_templates:
- { template: '@ezdesign/field/calameo_publication_field.html.twig', priority: 10 }
- { template: '@ibexadesign/field/calameo_publication_field.html.twig', priority: 10 }
7 changes: 5 additions & 2 deletions src/bundles/EzBundle/Resources/config/fieldtypes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,20 @@ services:
AlmaviaCX\Calameo\Ez\FieldType\CalameoPublication\Type:
tags:
- { name: ezpublish.fieldType, alias: calameo_publication }
- { name: ezpublish.fieldType.nameable, alias: calameo_publication }
- { name: ibexa.field_type, alias: calameo_publication }

AlmaviaCX\Calameo\Ez\FieldType\CalameoPublication\LegacyConverter:
tags:
- { name: ezpublish.storageEngine.legacy.converter, alias: calameo_publication }
- { name: ibexa.field_type.storage.legacy.converter, alias: calameo_publication }

AlmaviaCX\Calameo\Ez\FieldType\CalameoPublication\FieldStorage:
tags:
- { name: ezpublish.fieldType.externalStorageHandler, alias: calameo_publication }
- { name: ibexa.field_type.storage.external.handler, alias: calameo_publication }

almaviacx.calameo.fieldtype.indexable.calameo_publication:
class: "%ezpublish.fieldType.indexable.unindexed.class%"
class: Ibexa\Core\FieldType\Unindexed
tags:
- { name: ezpublish.fieldType.indexable, alias: calameo_publication }
- { name: ibexa.field_type.indexable, alias: calameo_publication }
9 changes: 5 additions & 4 deletions src/bundles/EzBundle/Resources/config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,19 @@ services:
tags:
- { name: ez.fieldFormMapper.definition, fieldType: calameo_publication }
- { name: ez.fieldFormMapper.value, fieldType: calameo_publication }
- { name: ibexa.admin_ui.field_type.form.mapper.definition, fieldType: calameo_publication }
- { name: ibexa.admin_ui.field_type.form.mapper.value, fieldType: calameo_publication }

AlmaviaCX\Calameo\Ez\Form\Type\FieldType\CalameoPublicationFieldType:

AlmaviaCX\Calameo\Ez\FieldType\CalameoPublication\Gateway\DoctrineStorage:

AlmaviaCX\Calameo\API\HttpClientFactory: ~

almaviacx.calameo.httpclient.siteaccessaware:
lazy: true
class: AlmaviaCX\Calameo\API\HttpClient
decorates: AlmaviaCX\Calameo\API\HttpClient
arguments:
$APIKey: "$calameo.api.key;almaviacx$"
$APISecret: "$calameo.api.secret;almaviacx$"
$config: "$calameo.config;almaviacx$"
factory: ['@AlmaviaCX\Calameo\API\HttpClientFactory', 'create']

AlmaviaCX\Calameo\Ez\Twig\CalameoTwigExtension:
2 changes: 1 addition & 1 deletion src/bundles/EzBundle/Resources/config/twig.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
form_themes:
- '@ezdesign/fieldtypes/edit/calameo_publication.html.twig'
- '@ibexadesign/fieldtypes/edit/calameo_publication.html.twig'
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(function (global) {
const SELECTOR_FIELD = '.ez-field-edit--calameo_publication';
const SELECTOR_LABEL_WRAPPER = '.ez-field-edit__label-wrapper';
const SELECTOR_FIELD = '.ibexa-field-edit--calameo_publication';
const SELECTOR_LABEL_WRAPPER = '.ibexa-field-edit__label-wrapper';

class CalameoPublicationPreviewField extends global.eZ.BasePreviewField {
/**
Expand All @@ -9,14 +9,14 @@
* @param {Event} event
*/
loadDroppedFilePreview(event) {
const preview = this.fieldContainer.querySelector('.ez-field-edit__preview');
const nameContainer = preview.querySelector('.ez-field-edit-preview__file-name');
const preview = this.fieldContainer.querySelector('.ibexa-field-edit__preview');
const nameContainer = preview.querySelector('.ibexa-field-edit-preview__file-name');
const files = [].slice.call(event.target.files);

nameContainer.innerHTML = files[0].name;
nameContainer.title = files[0].name;

preview.querySelector('.ez-field-edit-preview__action--preview').href = URL.createObjectURL(files[0]);
preview.querySelector('.ibexa-field-edit-preview__action--preview').href = URL.createObjectURL(files[0]);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,73 @@
.ez-field-edit--calameo_publication {
&.ez-field-edit--with-preview {
.ez-field-edit-preview {
width: 500px;
height: 80px;
line-height: 80px;
$ibexa-color-danger: #db0032;
$ibexa-color-danger-100: #fbe5ea;

&__visual {
display: flex;
}
$base-font-size: 16px;

@function div($number1, $number2) {
@return $number1 / $number2;
}

@function calculateRem($size) {
$remSize: div($size, $base-font-size);

@return $remSize + 0rem; // + 0rem converts value to proper `rem`
}


@mixin area-invalid {
color: $ibexa-color-danger;
border-color: $ibexa-color-danger;
background-color: $ibexa-color-danger-100;

.ibexa-btn {
background-color: $ibexa-color-danger-100;
}
}

&__actions {
flex: 0 0 100px;
.ibexa-field-edit--calameo_publication {
&.is-invalid {
.ibexa-data-source {
@include area-invalid();
}
}

&.ibexa-field-edit--with-preview {
.ibexa-field-edit-preview {
&__file-icon {
flex: 0 0 calculateRem(32px);
display: flex;
align-items: center;
flex-direction: row;
justify-content: space-between;
justify-content: center;
}

&__action--preview {
margin-top: 0;
&__visual {
grid-template-rows: auto;
}

&__file-name {
flex: 1 1 auto;
font-size: .75rem;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
display: flex;
align-items: center;
&__media-wrapper {
justify-content: start;
flex-direction: column;
align-items: flex-start;
padding: calculateRem(24px);
}

&__file-name-wrapper,
&__file-size-wrapper {
display: inline-block;
font-size: calculateRem(16px);
margin-right: calculateRem(40px);

.ibexa-label {
margin-bottom: 0;
}
}

&__file-name-wrapper {
max-width: calculateRem(500px);
}

&__file-size-wrapper {
max-width: calculateRem(150px);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{# @var publication \AlmaviaCX\Calameo\API\Value\Publication #}
{% extends '@EzPublishCore/content_fields.html.twig' %}
{% extends '@IbexaCore/content_fields.html.twig' %}

{% block calameo_publication_field %}
{% set publication = loadCalameoPublication(field.value) %}
Expand All @@ -9,5 +9,11 @@
{% else %}
{{ publication.name }} ({{ publication.id }})
{% endif %}
{% else %}
<p style="color: orange">ERREUR CALAMEO</p>
<pre style="color: grey">
publicationId : {{ field.value.publicationId|default }}
folderId : {{ field.value.folderId|default }}
</pre>
{% endif %}
{% endblock %}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{# @var publication \AlmaviaCX\Calameo\API\Value\Publication #}
{% trans_default_domain 'ezrepoforms_content' %}

{% use '@ezdesign/fieldtypes/edit/binary_base.html.twig' %}
{% use '@ibexadesign/ui/field_type/edit/binary_base.html.twig' %}

{%- block ezplatform_fieldtype_calameo_publication_row -%}
{% set widget_container_block_name = 'calameo_publication_widget_container' %}
Expand All @@ -12,36 +12,57 @@
{%- endblock -%}

{% block calameo_publication_preview %}
{% set readonly = attr.readonly|default(false) %}
{% set publication = loadCalameoPublication(form.parent.vars.value.value) %}
<div class="ez-field-edit-preview">
<div class="ez-field-edit-preview__visual">
<div class="ez-field-edit-preview__file-name">{{ publication ? publication.name }}</div>
</div>
<div class="ez-field-edit-preview__actions">
<a class="ez-field-edit-preview__action--preview" href="{{ publication ? publication.viewUrl }}" target="_blank"
title="{{ 'ezbinaryfile.action.preview'|trans|desc('Preview') }}" download>
<svg class="ez-icon">
<use xlink:href="/bundles/ezplatformadminui/img/ez-icons.svg#view"></use>
</svg>
</a>
<button type="button" class="ez-field-edit-preview__action--remove" title="{{ 'ezbinaryfile.action.remove'|trans|desc('Remove') }}">
<svg class="ez-icon">
<use xlink:href="/bundles/ezplatformadminui/img/ez-icons.svg#trash"></use>
</svg>
</button>
<div class="ibexa-field-edit-preview">
<div class="ibexa-field-edit-preview__visual">
<div class="ibexa-field-edit-preview__media-wrapper">
<div class="ibexa-field-edit-preview__file-name-wrapper">
<label class="ibexa-label form-label">{{ 'ezbinaryfile.file_name.label'|trans|desc('File name') }}</label>
<p class="ibexa-field-edit-preview__file-name">{{ publication ? publication.name }}</p>
</div>
<div class="ibexa-field-edit-preview__actions">
<a
class="ibexa-field-edit-preview__action--preview btn ibexa-btn ibexa-btn--ghost ibexa-btn--small" href="{{ publication ? publication.viewUrl }}"
target="_blank"
{{ readonly ? 'disabled' }}
>
<svg class="ibexa-icon ibexa-icon--small">
<use xlink:href="{{ ibexa_icon_path('view') }}"></use>
</svg>
<span class="ibexa-btn__label">{{ 'ezbinaryfile.action.preview'|trans|desc('Preview') }}</span>
</a>
<button
type="button"
class="ibexa-field-edit-preview__action--remove btn ibexa-btn ibexa-btn--ghost ibexa-btn--small"
{{ readonly ? 'disabled' }}
>
<svg class="ibexa-icon ibexa-icon--small">
<use xlink:href="{{ ibexa_icon_path('trash') }}"></use>
</svg>
<span class="ibexa-btn__label">{{ 'ezbinaryfile.action.remove'|trans|desc('Delete') }}</span>
</button>
</div>
</div>
</div>
</div>
{% endblock %}

{% block calameo_publication_widget_container %}
{{- form_widget(form.publicationId) -}}
{{- form_widget(form.folderId) -}}


{% set fieldtype = form.parent %}
{% set field_type_descriptions = fieldtype.vars.value.fieldDefinition.descriptions %}

<div{% with { attr: preview_attr } %}{{ block('attributes') }}{% endwith %}>
{{ block(preview_block_name) }}
</div>
<div{% with { attr: widget_wrapper_attr } %}{{ block('attributes') }}{% endwith %}>
<div class="ez-data-source">
<div class="ibexa-data-source">
{{ block('binary_base_widget') }}
</div>
</div>
{% endblock %}

{% endblock %}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{# @var publication \AlmaviaCX\Calameo\API\Value\Publication #}
{% extends '@EzPublishCore/content_fields.html.twig' %}
{% extends '@IbexaCore/content_fields.html.twig' %}

{% block calameo_publication_field %}
{% set publicationId = field.value.publicationId %}
Expand Down
Loading