Skip to content

Commit

Permalink
Merge branch 'release/1.7.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Culka committed Mar 25, 2024
2 parents 9e581b5 + c6e851d commit 74b2bc9
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 115 deletions.
96 changes: 0 additions & 96 deletions README copy.md

This file was deleted.

97 changes: 96 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,96 @@
# cv
# European CV bundle
Bundle provides form for creating CV in european format. It also optionally embeds required JS and predefined CSS.
CV can be saved to database, exported to DOC or PDF format.

## Installation
Add to composer.json:
```console
composer require trexima/european-cv
```


JS and CSS libs:
```
yarn add bootstrap
yarn add @fortawesome/fontawesome-free
yarn add jquery
yarn add jquery-ui
yarn add blueimp-file-upload
yarn add sortablejs
yarn add jquery.dirtyforms
yarn add select2
yarn add select2-bootstrap-theme
yarn add parsleyjs
yarn add flatpickr
yarn add bs-custom-file-input
```

NOTE: For required external libs include:
```
./vendor/trexima/european-cv-bundle/Resources/assets/css/shared.scss
```

### Installing assets with Webpack encore:
```js
Encore.addEntry('trexima-european-cv', [
'./vendor/trexima/european-cv/Resources/assets/js/main.js',
'./vendor/trexima/european-cv/Resources/public/build/trexima-european-cv.css'
])
```

**Fucking jquery.dirtyforms hack(webpack.config.js):**
```js
const config = Encore.getWebpackConfig();
// Required because of bug in jquery.dirtyforms https://github.com/snikch/jquery.dirtyforms/issues/82
config.externals = {
window: 'window',
document: 'document'
};

// export the final configuration
module.exports = config;
```

Add CSS and JS to Twig templates:
```twig
{% block stylesheets %}
{{ encore_entry_link_tags('trexima-european-cv') }}
{{ parent() }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('trexima-european-cv') }}
{{ parent() }}
{% endblock %}
```

## Configuration
Add upload route to global configuration:
```
trexima_european_cv_annotations:
resource: '@TreximaEuropeanCvBundle/Controller/'
type: annotation
```

Route name for AJAX images uploading:
```
trexima_european_cv_bundle_image
```

Define entity that will be in relation with european CV and upload dir:
```
trexima_european_cv:
upload_url: '/uploads/european-cv/'
upload_dir: '%kernel.project_dir%/public/uploads/european-cv/'
user_class: App\Entity\User
```
**trexima_european_cv.yaml**

**NOTE: Don't forget to update Doctrine schema.**

### Translations
If you wish to use default texts provided in this bundle, you have to make sure you have translator enabled in your config.
```yaml
framework:
translator: ~
```
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "trexima/cv",
"description": "Bundle provides form for creating CV in european format.",
"type": "symfony-bundle",
"version": "1.7.0",
"version": "1.7.1",
"license": "MIT",
"keywords": ["cv"],
"authors": [
Expand Down
6 changes: 3 additions & 3 deletions src/Entity/EuropeanCVDrivingLicense.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class EuropeanCVDrivingLicense
'comment' => 'Distance traveled in kilometers'
],
)]
private ?string $distanceTraveled = null;
private ?int $distanceTraveled = null;

#[ORM\Column(type: 'boolean')]
private ?bool $activeDriver = null;
Expand Down Expand Up @@ -69,12 +69,12 @@ public function setDrivingLicense(?DrivingLicenseEnum $drivingLicense): self
return $this;
}

public function getDistanceTraveled(): ?string
public function getDistanceTraveled(): ?int
{
return $this->distanceTraveled;
}

public function setDistanceTraveled(?string $distanceTraveled): self
public function setDistanceTraveled(?int $distanceTraveled): self
{
$this->distanceTraveled = $distanceTraveled;

Expand Down
16 changes: 7 additions & 9 deletions src/Form/Parts/EuropeanCVPartDrivingLicenseType.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Trexima\EuropeanCvBundle\Entity\EuropeanCV;
use Trexima\EuropeanCvBundle\Form\Type\DrivingLicenseType;
Expand All @@ -22,13 +24,6 @@ class EuropeanCVPartDrivingLicenseType extends AbstractType
*/
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$entity = $builder->getData();

$drivingLicenses = [];
foreach ($entity->getDrivingLicenses() as $drivingLicense) {
$drivingLicenses[] = $drivingLicense->getDrivingLicense()->value;
}

$builder
->add('drivingLicenseOwner', CheckboxType::class, [
'required' => false,
Expand All @@ -53,11 +48,14 @@ public function buildForm(FormBuilderInterface $builder, array $options): void
]
],
'required' => false,
'hidden' => empty($entity?->getDrivingLicenseOwner()),
'existing_licenses' => $drivingLicenses,
]);
}

public function finishView(FormView $view, FormInterface $form, array $options)
{
$view->children['drivingLicenses']->vars['hidden'] = !$form->getData()?->getDrivingLicenseOwner();
}

/**
* {@inheritdoc}
*/
Expand Down
2 changes: 0 additions & 2 deletions src/Form/Type/DrivingLicenseType.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'attr' => [
'class' => 'form-inline'
],
'existing_licenses' => $options['existing_licenses']
], $options['entry_options'])
);
}
Expand Down Expand Up @@ -122,7 +121,6 @@ public function configureOptions(OptionsResolver $resolver)
'entry_options' => [
'required' => false,
],
'existing_licenses' => []
]);
}

Expand Down
15 changes: 12 additions & 3 deletions src/Form/Type/EuropeanCVDrivingLicenseType.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
use Trexima\EuropeanCvBundle\Entity\Enum\DrivingLicenseEnum;
use Trexima\EuropeanCvBundle\Entity\EuropeanCVDrivingLicense;

Expand Down Expand Up @@ -44,12 +45,13 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'required' => false, 'attr' => [
'placeholder' => t('trexima_european_cv.form_label.driving_license_distance_traveled_placeholder', [], 'trexima_european_cv')
],
'hidden' => !in_array($drivingLicense->value, $options['existing_licenses'])
'constraints' => [
new Assert\Range(min: 0, max: 2 ** 32 - 1),
],
])
->add('activeDriver', CheckboxType::class, [
'label' => t('trexima_european_cv.form_label.driving_license_active_driver_label', [], 'trexima_european_cv'),
'required' => false,
'hidden' => !in_array($drivingLicense->value, $options['existing_licenses'])
])
;

Expand Down Expand Up @@ -82,6 +84,14 @@ public function buildView(FormView $view, FormInterface $form, array $options)
$view->vars['driving_license'] = $options['driving_license'];
}

public function finishView(FormView $view, FormInterface $form, array $options)
{
$drivingLicense = $form->getData()?->getDrivingLicense();

$view->children['distanceTraveled']->vars['hidden'] = !$drivingLicense;
$view->children['activeDriver']->vars['hidden'] = !$drivingLicense;
}

/**
* {@inheritdoc}
*/
Expand All @@ -90,7 +100,6 @@ public function configureOptions(OptionsResolver $resolver)
parent::configureOptions($resolver);
$resolver->setDefaults([
'data_class' => EuropeanCVDrivingLicense::class,
'existing_licenses' => []
]);

$resolver->setRequired([
Expand Down

0 comments on commit 74b2bc9

Please sign in to comment.