/** * @param \NetteAddons\Forms\Form */ public function importAddonFormSubmitted(Form $form) { if ($form->valid) { $values = $form->getValues(); $this->token = $values->token; $this->flashMessage('Addon has been successfully loaded.'); $this->redirect('this'); } }
/** * @param \NetteAddons\Model\Addon * @param \Nette\Security\IIdentity * @return Form */ public function create(Addon $addon, IIdentity $user) { $form = new Form(); $form->addTextArea('message', 'Why / What?')->setRequired(); $form->addSubmit('sub', 'Send'); $model = $this->reports; $form->onSuccess[] = function (Form $form) use($model, $addon, $user) { $values = $form->getValues(); $model->saveReport($user->getId(), $addon->id, $values->message); }; return $form; }
/** * @param IIdentity * @return Form */ public function create(IIdentity $user) { $form = new Form(); $form->addHidden('report')->setRequired(); $form->addTextArea('reason', 'What?')->setRequired(); $form->addSubmit('sub', 'Zap'); $model = $this->reports; $form->onSuccess[] = function (Form $form) use($model, $user) { $values = $form->getValues(); $model->updateReport($values->report, $values->reason, $user->getId()); }; return $form; }
/** * @param \Nette\Security\IIdentity * @return \NetteAddons\Forms\Form */ public function create(IIdentity $user) { $form = new Form(); $form->addHidden('token', Strings::random()); $form->addText('url', 'Repository URL', NULL, 256)->setAttribute('autofocus', TRUE)->setRequired(); $form['url']->addRule(Form::PATTERN, 'Sorry, we currently support only packagist.', '(https?\\://)?packagist\\.org/packages/([a-z0-9]+(?:-[a-z0-9]+)*)/([a-z0-9]+(?:-[a-z0-9]+)*)'); $form->addSubmit('sub', 'Load'); $manager = $this->manager; $validators = $this->validators; $form->onSuccess[] = function (Form $form) use($manager, $validators, $user) { $values = $form->getValues(); try { $addonEntity = $this->packagistImporter->getAddon($values['url']); if (!$validators->isComposerFullNameUnique($addonEntity->getComposerFullName())) { $form->addError("Addon with composer name '{$addonEntity->getComposerFullName()}' already exists."); return; } $addon = new Addon(); // Back compatability $addon->composerFullName = $addonEntity->getComposerFullName(); $addon->userId = $user->getId(); $addon->shortDescription = $addonEntity->getPerex(); $addon->type = Addon::TYPE_COMPOSER; $addon->defaultLicense = array(); $addon->resources[AddonResources::RESOURCE_GITHUB] = $addonEntity->getGithub(); $addon->resources[AddonResources::RESOURCE_PACKAGIST] = $addonEntity->getPackagist(); $manager->storeAddon($values->token, $addon); } catch (\NetteAddons\Model\Importers\AddonVersionImporters\AddonNotFoundException $e) { $form['url']->addError("Package with URL '{$values->url}' does not exist."); } catch (\Exception $e) { $form['url']->addError('Importing failed. Try again later.'); Debugger::log($e, Debugger::WARNING); } }; return $form; }