Skip to content

Commit

Permalink
Merged in dev/ftp-integration (pull request #13)
Browse files Browse the repository at this point in the history
Dev/ftp integration
  • Loading branch information
Djamy committed Jan 6, 2017
2 parents 3222708 + b3e4684 commit 34a48ee
Show file tree
Hide file tree
Showing 26 changed files with 1,761 additions and 179 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ debug
/node_modules
/vendor
/web
components
34 changes: 29 additions & 5 deletions Controller/ImportController.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@ class ImportController extends Controller
public function importAction(Request $request)
{
$validationResult = [];
$success = false;
$processorsChoices = $this->container->get('synolia.oroneo.import.manager')->getProcessorsChoices();

$form = $this->createForm('synolia_oroneo_import_form', null, ['processorsChoices' => $processorsChoices]);

if ($request->isMethod('POST')) {
$form->submit($request);
$localMapping = $this->container->get('oro_config.global')->get('synolia_oroneo.localization_mapping');
$importJob = $request->get('importValidateJob', JobExecutor::JOB_VALIDATE_IMPORT_FROM_CSV);
if (empty($localMapping)) {
$this->get('session')->getFlashBag()->add(
'error',
Expand All @@ -53,16 +55,38 @@ public function importAction(Request $request)
]
)
);
} elseif ($form->isValid()) {
$importJob = $request->get('importValidateJob', JobExecutor::JOB_VALIDATE_IMPORT_FROM_CSV);
} elseif ($form->get('isManualImport')->getData() === false) {
$validationResult = $this->container->get('synolia.oroneo.import.manager')->distantImportValidation($form->getData(), $importJob);
if (empty($validationResult)) {
$this->get('session')->getFlashBag()->add(
'error',
$this->get('translator')->trans(
'synolia.oroneo.import_page.error.distant.missing_config',
[
'%url%' => $this->generateUrl(
'oro_config_configuration_system',
[
'activeGroup' => 'oroneo',
'activeSubGroup' => 'oroneo_config_distant',
]
),
]
)
);
} else {
$success = true;
}
} elseif ($form->get('isManualImport')->getData() === true && $form->isValid()) {
$validationResult = $this->container->get('synolia.oroneo.import.manager')->importValidation($form->getData(), $importJob);
$validationResult['importJob'] = $request->get('importJob');
$success = true;
}
$validationResult['importJob'] = $request->get('importJob');
}

return [
'form' => $form->createView(),
'result' => $validationResult,
'form' => $form->createView(),
'result' => $validationResult,
'success' => $success,
];
}

Expand Down
34 changes: 22 additions & 12 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,28 @@ public function getConfigTreeBuilder()
SettingsBuilder::append(
$rootNode,
[
'delimiter' => ['value' => ';'],
'enclosure' => ['value' => '"'],
'localization_mapping' => ['type' => 'array', 'value' => []],
'category_mapping' => ['type' => 'array', 'value' => []],
'master_category' => ['type' => 'array', 'value' => ['masterCategory' => 1]],
'attribute_mapping' => ['type' => 'array', 'value' => []],
'option_mapping' => ['type' => 'array', 'value' => []],
'product_channel' => ['value' => 'ecommerce'],
'product_mapping' => ['type' => 'array', 'value' => []],
'attribute_file_max_size' => ['value' => 1024],
'attribute_image_width' => ['value' => 50],
'attribute_image_height' => ['value' => 50],
'delimiter' => ['value' => ';'],
'enclosure' => ['value' => '"'],
'localization_mapping' => ['type' => 'array', 'value' => []],
'category_mapping' => ['type' => 'array', 'value' => []],
'master_category' => ['type' => 'array', 'value' => ['masterCategory' => 1]],
'attribute_mapping' => ['type' => 'array', 'value' => []],
'option_mapping' => ['type' => 'array', 'value' => []],
'product_channel' => ['value' => 'ecommerce'],
'product_mapping' => ['type' => 'array', 'value' => []],
'attribute_file_max_size' => ['value' => 1024],
'attribute_image_width' => ['value' => 50],
'attribute_image_height' => ['value' => 50],
'distant_host' => ['value' => ''],
'distant_connection_type' => ['value' => 'FTP'],
'distant_username' => ['value' => ''],
'distant_password' => ['value' => ''],
'distant_port' => ['value' => 21],
'distant_filepath_category' => ['value' => ''],
'distant_filepath_attribute' => ['value' => ''],
'distant_filepath_option' => ['value' => ''],
'distant_filepath_product' => ['value' => ''],
'distant_filepath_product-file' => ['value' => ''],
'jobs' => [
'type' => 'array',
'value' => [
Expand Down
27 changes: 13 additions & 14 deletions Form/Type/ImportType.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

namespace Synolia\Bundle\OroneoBundle\Form\Type;

use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Oro\Bundle\ImportExportBundle\Processor\ProcessorRegistry;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
Expand All @@ -16,25 +16,13 @@
*/
class ImportType extends BaseImportType
{
/**
* @var ProcessorRegistry
*/
protected $processorRegistry;

/**
* @param ProcessorRegistry $processorRegistry
*/
public function __construct(ProcessorRegistry $processorRegistry)
{
$this->processorRegistry = $processorRegistry;
}

/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->remove('file');
$builder->add(
'processorAlias',
ChoiceType::class,
Expand All @@ -46,10 +34,21 @@ public function buildForm(FormBuilderInterface $builder, array $options)
]
);

$builder->add(
'isManualImport',
CheckboxType::class,
[
'label' => 'synolia.oroneo.import_page.import_type.checkbox',
'required' => false,
'mapped' => false,
]
);

$builder->add(
'file',
FileType::class,
[
'required' => false,
'constraints' => [
new File(
[
Expand Down
Loading

0 comments on commit 34a48ee

Please sign in to comment.