public function createComponent($name)
 {
     switch ($name) {
         case 'importForm':
             $form = new AppForm($this, $name);
             $form->addFile('file', __('File:'))->addRule(Form::FILLED, __('You have to entry file.'));
             $form->addText('provision', __('Provision (%):'))->addRule(Form::FILLED, __('You have to entry provison.'))->addRule(Form::NUMERIC, __('Provison has to be a number.'))->addRule(Form::RANGE, __('Provision has to be between 0 and 99.'), array(0, 99));
             $form->addCheckbox('update_only', __('only update existing products'));
             // availability_id
             $availabilities = array(0 => __('–––'));
             foreach (mapper::product_availabilities()->findAll() as $_) {
                 $availabilities[$_->getId()] = $_->getName();
             }
             $form->addSelect('availability_id', __('Default availability:'), $availabilities);
             $form->addSubmit('ok', '✔ ' . __('Import'));
             $form->setDefaults(array('provision' => 0, 'update_only' => TRUE));
             $form->onSubmit[] = array($this, 'onImportFormSubmit');
             break;
         case 'importManufacturersForm':
             $form = new AppForm($this, $name);
             $form->addFile('file', __('File:'))->addRule(Form::FILLED, __('You have to entry file.'));
             $form->addSubmit('ok', '✔ ' . __('Import'));
             $form->onSubmit[] = array($this, 'onImportManufacturersFormSubmit');
             break;
         default:
             parent::createComponent($name);
     }
 }
 public function onAvailabilityEditSubmit(Form $form)
 {
     if (!$form->isValid()) {
         return;
     }
     mapper::product_availabilities()->updateOne($form->getValues());
     adminlog::log(__('Updated availability "%s"'), $form['name']->getValue());
     $this->redirect('availabilities');
     $this->terminate();
 }