public function formSucceeded(Form $form, $values) { try { $userManager = new Model\UserManager($this->user, $this->database); $userManager->saveprofile($form->getHttpData($form::DATA_TEXT, 'profile_email_input'), $form->getHttpData($form::DATA_TEXT, 'profile_telephone_input'), $form->getHttpData($form::DATA_TEXT, 'profile_address_input'), $form->getHttpData($form::DATA_TEXT | $form::DATA_KEYS, 'profile_comment_input')); } catch (Nette\Security\AuthenticationException $e) { $form->addError($e->getMessage()); } }
public function changeCategoryRankFormSucceeded(Form $form) { $values = (object) $form->getHttpData(); $this->categoryFacade->changeRanks($values->categoryRank); $form->getPresenter()->flashMessage("Pořadí kategorií bylo úspěšně změněno.", "alert-success"); $form->getPresenter()->redirect("this"); }
public function addCommentFormSucceded(Form $form) { $values = (object) $form->getHttpData(); if (isset($values->antispam) && $values->antispam != $values->firstAddend + $values->secondAddend) { $form->getPresenter()->getTemplate()->wrongAntispam = true; $form->getPresenter()->getTemplate()->needsAntispam = true; $form->getPresenter()->redrawControl("wrongAntispam"); } else { $articleId = $form->getPresenter()->getParameter("id"); $user = UserService::loadFromSession($form->getPresenter()->getUser()); $newComment = CommentService::create($values->content, $user); $this->commentFacade->save($newComment, $articleId); if ($this->commentFacade->needsAntispam($user)) { $form->getPresenter()->getTemplate()->needsAntispam = true; $form->getPresenter()->getTemplate()->firstAddend = Antispam::generate(); $form->getPresenter()->getTemplate()->secondAddend = Antispam::generate(); } if (!$form->getPresenter()->isAjax()) { $form->getPresenter()->redirect("this"); } else { $form->getPresenter()->redrawControl("addCommentForm"); $form->getPresenter()->redrawControl("comments"); $form->getPresenter()->redrawControl("metainfoArea"); $form->getPresenter()->redrawControl("metainfo"); $form->setValues([], TRUE); } } }
/** * @param Form $form * @throws Exceptions\MissingTagException * @return Entities\TagEntity|null */ protected function getSelectedTag(Form $form) { $tagId = $form->getHttpData(Form::DATA_LINE, 'tagId'); $tag = $tagId ? $this->tagRepository->getById($tagId) : null; if (!$tag) { throw new Exceptions\MissingTagException($this->translator->translate('locale.error.missing_tag')); } return $tag; }
public function processListingSharing(Form $form, $values) { $ignoredItems = $form->getHttpData(Form::DATA_TEXT, 'items[]'); try { $this->newListings = $this->listingFacade->shareListing($this->listing, $values['description'], $values['recipients'], $ignoredItems); } catch (\DibiException $e) { $this->presenter->flashMessage('Nastala chyba při pokusu o sdílení výčetky. Zkuste akci opakovat později.', 'error'); $this->redirect('this'); } $this->presenter->flashMessage('Výčetka byla úspěšně sdílena.', 'success'); }
public function updateSucceeded(Form $form) { $valuesForm = $form->getValues(true); $valuesHttp = $form->getHttpData(); if (!$valuesForm['photo']->isImage() && $valuesForm['photo']->isOK()) { $form->addError('Toto není obrázek'); return; } $valuesForm['underSubSection'] = (int) $valuesHttp['underSubSection']; $valuesForm['underSerial'] = (int) $valuesHttp['underSerial']; $values = Nette\Utils\ArrayHash::from($valuesForm); $this->articleManager->updateArticle($values); }
public function processPrivileges(Form $form) { if (!$this->authorizator->isAllowed($this->user, 'user_role', 'edit')) { $this->flashMessage('authorization.noPermission', FlashMessage::WARNING); } $values = $form->getHttpData(); unset($values['save'], $values['do'], $values[Form::PROTECTOR_ID]); try { $this->userFacade->savePermissionDefinitions($this->role, $values); $this->flashMessage('users.roleDefinition.messages.success', FlashMessage::SUCCESS); $this->redirect('this'); } catch (DBALException $e) { $this->flashMessage('users.roleDefinition.messages.success', FlashMessage::WARNING); } }
public function addPhotoFormSucceeded(Form $form) { if ($form->getPresenter()->isAjax()) { $values = (object) $form->getHttpData(); if (!isset($values->tagPhotoList)) { $form->getPresenter()->getTemplate()->photoMessage = "noTags"; $form->getPresenter()->redrawControl("articleWrapper"); $form->getPresenter()->redrawControl("photoFlashes"); } else { $this->addPhoto($form, $values); } } else { $form->getPresenter()->flashMessage("neeee"); $form->getPresenter()->redirect("this"); } }
public function validateEmailForm(Form $form) { $values = $form->getHttpData(); $recaptchaSecret = $this->context->parameters["ReCaptchaSecret"]; $recaptcha = new \ReCaptcha\ReCaptcha($recaptchaSecret); $httpRequest = $this->context->getByType('Nette\\Http\\Request'); $resp = $recaptcha->verify($values["g-recaptcha-response"], $httpRequest->getRemoteAddress()); if ($resp->isSuccess()) { // verified! } else { $errors = $resp->getErrorCodes(); if (in_array("missing-input-response", $errors)) { $form->addError("Prosím, zaškrtněte políčko \"Nejsem robot\""); } else { $form->addError("Při odesílání zprávy došlo chybě, zkuste to prosím znovu."); } } }
/** * Pass "sub"-form submission forward to custom submit function * @param Form $form * @return void */ public function submitted(Form $form) { if (!isset($form['group_action']['submit']) || !$form['group_action']['submit']->isSubmittedBy()) { return; } $values = $form->getValues(); $values = $values['group_action']; if ($values->group_action === 0 || is_null($values->group_action)) { return; } /** * @todo Define items IDs */ $http_ids = $form->getHttpData(Form::DATA_LINE | Form::DATA_KEYS, 'group_action_item[]'); $ids = array_keys($http_ids); $id = $values->group_action; $this->group_actions[$id]->onSelect($ids, isset($values->{$id}) ? $values->{$id} : NULL); $form['group_action']['group_action']->setValue(NULL); }
public function processMassItemsChange(Form $form, $values) { $daysToChange = $form->getHttpData(Form::DATA_TEXT, 'items[]'); if (empty($daysToChange)) { $this->flashMessage('Označte řádky, které chcete změnit.', 'warning'); if ($this->presenter->isAjax()) { $this->redrawControl('flashMessage'); return; } else { $this->redirect('this'); } } try { $workedHours = new WorkedHours($values['workStart'], $values['workEnd'], $values['lunch'], $values['otherHours']); if ($values['newListing'] === true) { $newListing = $this->listingsFacade->baseListingOn($this->listing, $workedHours, $daysToChange); } else { $changedItems = $this->listingsFacade->changeItems($this->listing, $workedHours, $daysToChange); } } catch (ShiftEndBeforeStartException $s) { $form->addError('Nelze skončit směnu dříve, než začala. Zkontrolujte hodnoty v polích Začátek a Konec'); return; } catch (NegativeResultOfTimeCalcException $e) { $form->addError('Položku nelze uložit. Musíte mít odpracováno více hodin, než kolik strávíte obědem.'); return; } if ($values['newListing'] === true) { $this->presenter->redirect('Listing:overview', ['year' => $newListing->getYear(), 'month' => $newListing->getMonth()]); } else { if ($this->presenter->isAjax()) { $this->flashMessage('Hodnoty byly úspěšně hromadně změneny.', 'success'); $this->redrawControl('flashMessage'); $this->redrawControl('formErrors'); $this['itemsTable']->refreshTable($changedItems); } else { $this->redirect('this'); } } }
public function addReservationFormSucceded(Form $form) { $values = (object) $form->getHttpData(); $reservation = $this->formValuesToEntity($form, $values); $this->reservationFacade->save($reservation); $form->getPresenter()->setupPaginator(); if ($values->reservationId == 0) { $form->getPresenter()->flashMessage("Zápas byl úspěšně rezervován.", "alert-success"); } if ($form->getPresenter()->isAjax()) { if ($values->reservationId == 0) { $form->getPresenter()->redrawControl("addReservation"); } else { $form->getPresenter()->getTemplate()->edit = true; $form->getPresenter()->redrawControl("editReservation"); } $form->getPresenter()->redrawControl("paginator"); $form->getPresenter()->redrawControl("reservations"); $form->getPresenter()->redrawControl("flashes"); } else { $form->getPresenter()->redirect("this"); } }
public function processListingSharing(Form $form, $values) { $ignoredDays = $form->getHttpData(Form::DATA_TEXT, 'items[]'); if (count($ignoredDays) == $this->listingResult->getWorkedDays()) { $form->addError('Nelze odeslat prázdnou výčetku! Nezapomeňte, zaškrtnutím se řádek výčetky nebude sdílet.'); return; } try { $resultObject = $this->listingFacade->shareListing($this->listing, $values['recipient'], $values['description'], $ignoredDays); $this->presenter->flashMessage('Výčetka byla úspěšně sdílena.', 'success'); if (!$resultObject->hasNoErrors()) { $err = $resultObject->getFirstError(); $this->flashMessage($err['message'], $err['type']); } } catch (RecipientsNotFoundException $rnf) { $form->addError('Nelze zaslat výčetku vybranému uživateli.'); return; } catch (DBALException $e) { $form->addError('Nastala chyba při pokusu o sdílení výčetky. Zkuste akci opakovat později.'); } $this->redirect('this'); }
public function processFiltering(Form $form) { $values = $form->getHttpData(); if ($this->type === null or $this->type == $values['type']) { $this->event = $values['event'] === '' ? null : $values['event']; } else { $this->event = null; } $this->type = $values['type']; $this->redirect('this'); }
public function komponentaUloz(Form $form) { $komponenta_spec_nazov = $form->getHttpData($form::DATA_TEXT, 'spec_nazov'); $komponenta = $this->nastavenie["komponenty"][$komponenta_spec_nazov]; $out = ['id_hlavne_menu' => $form->getHttpData($form::DATA_TEXT, 'id_hlavne_menu_clanku'), 'id_komponenty' => $komponenta['id'], 'spec_nazov' => $komponenta_spec_nazov, 'parametre' => ""]; foreach ($komponenta['parametre'] as $k => $v) { $out["parametre"] .= $form->getHttpData($form::DATA_TEXT, $k) . ","; } $out["parametre"] = substr($out["parametre"], 0, strlen($out["parametre"]) - 1); $this->clanok_komponenty->pridaj($out); $this->flashRedirect("this", "Komponenta bola pridaná", "success"); }
public function editFormSucceeded(UI\Form $form, $values) { $reference = $this->context->moduleReferenceModel->find($this->params['id']); $this->load($reference->page_page_modules_id); if (is_null($form->getHttpData($form::DATA_TEXT, 'cancel'))) { if ($values['img']->name != NULL) { // delete old image: $this->deleteImageFile($reference->imagename); // upload new image: $data['imagename'] = $this->uploadOneImage(); } $data['title'] = $values['title']; $data['subtitle'] = $values['subtitle']; $data['text'] = $values['text']; $data['client'] = $values['client']; $data['link'] = $values['link']; $reference->update($data); $this->flashMessage('Reference byla úspěšně editována.'); } $this->redirect('Page:edit', array('id' => $this->module->page_id)); }
public function moderateCommentFormSucceeded(Form $form, $values) { $sub = $form->getHttpData(); try { $this->commentsManager->updateComment($values); $this->redrawAjax('commentContainerAll'); if (isset($sub['subFor'])) { $this->template->currentSubComment = $sub['subFor']; } $this->template->closeModal = true; } catch (App\Model\NoAccessException $e) { $form->addError('Nemáte přístup'); } }
public function processForm(UI\Form $form) { $allowRedirect = TRUE; // Process actions if (isset($form['_do_action'])) { /** @var SubmitButton $doActionSubmit */ $doActionSubmit = $form['_do_action']; if ($doActionSubmit->isSubmittedBy()) { /** @var SelectBox $actionSelect */ $actionSelect = $form['_action']; $callback = $this->actions[(string) $actionSelect->getValue()]->getCallback(); $selected = $form->getHttpData(Form::DATA_TEXT, '_selected[]'); call_user_func($callback, $selected, $this); $actionSelect->setValue(NULL); } } if (isset($form['edit'])) { if ($form['edit']['save']->isSubmittedBy()) { if ($form['edit']->isValid()) { Callback::invokeArgs($this->editFormCallback, array($form['edit'])); } else { $this->editRowKey = $form['edit'][$this->rowPrimaryKey]->getValue(); $allowRedirect = FALSE; } } if ($form['edit']['cancel']->isSubmittedBy() || $form['edit']['save']->isSubmittedBy() && $form['edit']->isValid()) { $editRowKey = $form['edit'][$this->rowPrimaryKey]->getValue(); $this->invalidateRow($editRowKey); $this->getData($editRowKey); } if ($this->editRowKey !== NULL) { $this->invalidateRow($this->editRowKey); } } if (isset($form['filter'])) { if ($form['filter']['filter']->isSubmittedBy()) { $values = $form['filter']->getValues(TRUE); unset($values['filter']); $values = $this->filterFormFilter($values); if ($this->paginator) { $this->page = $this->paginator->page = 1; } $this->filter = $this->filterDataSource = $values; $this->invalidateControl('rows'); } elseif ($form['filter']['cancel']->isSubmittedBy()) { if ($this->paginator) { $this->page = $this->paginator->page = 1; } $this->filter = $this->filterDataSource = $this->filterDefaults; $form['filter']->setValues($this->filter, TRUE); $this->invalidateControl('rows'); } } if (!$this->presenter->isAjax() && $allowRedirect) { $this->redirect('this'); } }
/** * Set $this->filter values after filter form submitted * @param Form $form * @return void */ public function filterSucceeded(Form $form) { if ($this->snippets_set) { return; } $values = $form->getValues(); if ($this->getPresenter()->isAjax()) { if (isset($form['group_action']['submit']) && $form['group_action']['submit']->isSubmittedBy()) { return; } } /** * Inline edit */ $inline_edit = $form['inline_edit']; if (isset($inline_edit) && isset($inline_edit['submit']) && isset($inline_edit['cancel'])) { if ($inline_edit['submit']->isSubmittedBy() || $inline_edit['cancel']->isSubmittedBy()) { $id = $form->getHttpData(Form::DATA_LINE, 'inline_edit[_id]'); $primary_where_column = $form->getHttpData(Form::DATA_LINE, 'inline_edit[_primary_where_column]'); if ($inline_edit['submit']->isSubmittedBy()) { $this->inlineEdit->onSubmit($id, $values->inline_edit); if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_inline_edited = $id; } } $this->redrawItem($id, $primary_where_column); return; } } /** * Inline add */ $inline_add = $form['inline_add']; if (isset($inline_add) && isset($inline_add['submit']) && isset($inline_add['cancel'])) { if ($inline_add['submit']->isSubmittedBy() || $inline_add['cancel']->isSubmittedBy()) { if ($inline_add['submit']->isSubmittedBy()) { $this->inlineAdd->onSubmit($values->inline_add); if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_inline_added = TRUE; } } return; } } /** * Filter itself */ $values = $values['filter']; foreach ($values as $key => $value) { /** * Session stuff */ $this->saveSessionData($key, $value); /** * Other stuff */ $this->filter[$key] = $value; } if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_sort = []; foreach ($this->columns as $key => $column) { if ($column->isSortable()) { $this->getPresenter()->payload->_datagrid_sort[$key] = $this->link('sort!', ['sort' => $column->getSortNext()]); } } } $this->reload(); }
public function ruleFormSuccess(Form $form) { $privilege = $form->getHttpData($form::DATA_TEXT, 'privilege'); $role = $form->getHttpData($form::DATA_TEXT, 'role'); $mode = $form->getHttpData($form::DATA_TEXT, 'mode'); $resource = $form->getHttpData($form::DATA_TEXT, 'resource'); $error = false; if (empty($role)) { $form['role']->addError("This field is required"); $error = true; } if (!empty($resource)) { if ($privilege === null) { $form['privilege']->addError("This field is required"); $error = true; } } if (empty($mode)) { $form['mode']->addError("This field is required"); $error = true; } if ($error) { $this->presenter->redrawControl("privilegesSnippet"); } $values = $form->getValues(); $values->privilege = $privilege; try { switch ($this->getMode()) { case FormMode::CREATE_MODE: $this->presenter->createRule($values); break; case FormMode::UPDATE_MODE: $this->presenter->updateRule($values); break; } } catch (DuplicateEntryException $e) { $roleName = $this->getRoles(); $this->addError($this->presenter->tt("securityModule.aclForm.messages.ruleRoleResExists", null, ["role" => $roleName[$values->role], "resource" => $values->resource])); } }
private function formValuesToEntity(Form $form) { $values = (object) $form->getHttpData(); $user = UserService::loadFromSession($form->getPresenter()->getUser()); $photo = PhotoService::loadForArticle($values->photoId); $tags = new TagCollection(); foreach ($values->tagList as $tag) { $tags->addItem(TagService::create($tag)); } $categories = new CategoryCollection(); foreach ($values->categories as $categoryId) { $categories->addItem(CategoryService::loadForArticle($categoryId)); } $articleId = $form->getPresenter()->getParameter("articleId"); if ($articleId) { return ArticleService::loadForUpdate($articleId, $values, $user, $photo, $tags, $categories); } else { return ArticleService::create($values, $user, $photo, $tags, $categories); } }
public function processMergeListings(Form $form, $values) { $selectedCollisionItems = $form->getHttpData(Form::DATA_TEXT, 'itm[]'); try { $this->listingFacade->mergeListings($this->listing, $this->listingToMerge, $selectedCollisionItems); $this->flashMessage('Výčetky byli úspěšně spojeny.', 'success'); $this->redirect('Listing:overview', ['year' => $this->listing->year, 'month' => $this->listing->month]); } catch (NoCollisionListingItemSelectedException $ncis) { $form->addError('Ve výčetce se stále nachází kolizní řádek/řádky.'); return; } catch (\DibiException $e) { $this->flashMessage('Při spojování výčetek došlo k chybě. Zkuste akci opakovat později.', 'error'); $this->redirect('this', ['with' => null]); } }
public function editFormSucceeded(\Nette\Application\UI\Form $form, $values) { $item = $this->context->moduleCarouselBootstrap3Model->find($this->params['id']); $this->loadModule($item->page_page_modules_id); if (is_null($form->getHttpData($form::DATA_TEXT, 'cancel'))) { if ($values['img']->name != NULL) { // upload new image: $imageUploader = new \ImageUploader($this->request->getFiles(), "module" . $this->moduleName . "/" . $this->module->page_id); $uploadedImages = $imageUploader->startUpload(); if (isset($uploadedImages[0]["name"])) { $data['image'] = $uploadedImages[0]["name"] . $uploadedImages[0]["extension"]; // delete old image: if (NULL !== $item->image) { $imageUploader->deleteImage($item->image); } } } $data['title'] = $values['title']; $data['subtitle'] = $values['subtitle']; $data['text'] = $values['text']; $data['link'] = $values['link']; $data['link_text'] = $values['link_text']; $item->update($data); if (false === isset($uploadedImages[0]["error"])) { $this->flashMessage('Úprava proběhla úspěšně.'); } else { $this->flashMessage("Error '" . $uploadedImages[0]["error"] . "' while uploading file '" . $uploadedImages[0]["original"] . "'."); } } $this->redirect('Page:edit', array('id' => $this->module->page_id)); }
/** * @param string $name * @return Form */ protected function createComponentForm($name) { $form = new Form($this, $name); $form->setTranslator($this->translator); $form->onSuccess[] = function (Form $form) { $values = array_diff_key($form->getHttpData(), ['_do' => NULL, '_submit' => NULL, '_forward' => NULL, '_back' => NULL]); $this->onFormStep($form, $values, $this); if ($form['_back']->isSubmittedBy()) { return $this->setStep($this->getStep() - 1); } $values = $values + $this->getValues(); $this->setValues($values); if ($form['_forward']->isSubmittedBy()) { return $this->setStep($this->getStep() + 1); } $this->clearCache(); $this->onFormSubmit($form, $values, $this); }; $form->addSubmit('_back')->setValidationScope(FALSE); $form->addSubmit('_forward'); $form->addSubmit('_submit'); return $form; }
public function addSucceeded(Form $form) { $valuesForm = $form->getValues(true); $valuesHttp = $form->getHttpData(); if (!$valuesForm['photo']->isImage() && $valuesForm['photo']->isOK()) { $form->addError('Toto není obrázek'); return; } $valuesForm['underSubSection'] = (int) $valuesHttp['underSubSection']; $valuesForm['underSerial'] = (int) $valuesHttp['underSerial']; $values = Nette\Utils\ArrayHash::from($valuesForm); $id = $this->articleManager->addArticle($this->user->getId(), $values); $this->flashMessage('Článek úspěšně přidán'); $this->redirect('Article:UpdateArticle', $id); }
protected function createComponentForm($name) { $form = new Form($this, $name); $form->getElementPrototype()->class = 'ajax'; $form->setTranslator($this->translator); if ($this->hasOperations) { $operations = array(); foreach ($this->operations as $name => $operation) { $operations[$name] = $operation->getAlias(); } $form->addSelect('operation', 'Operation', $operations); $form->addSubmit('btnExecuteOperation', 'Execute')->onClick[] = callback($this, 'executeOperation'); $records = $form->addContainer('records'); if ($form->isSubmitted()) { if (isset($this->persister->recordCheckboxes)) { $checkboxes = $this->persister->recordCheckboxes; foreach ($checkboxes as $id) { $records->addCheckbox($id); } } } } if ($this->hasFilters) { $filters = $form->addContainer('filters'); foreach ($this->getComponents(false, 'Gridder\\Columns\\IColumn') as $column) { if ($column->hasFilter()) { $filters->addComponent($column->getFilter(), $column->name); if ($form->isSubmitted()) { $httpData = $form->getHttpData(); if (isset($httpData['btnCancelFilters'])) { unset($this->persister->filters); $filters[$column->name]->setValue(null); } } elseif (isset($this->persister->filters[$column->name])) { $filters[$column->name]->setDefaultValue($this->persister->filters[$column->name]->getValue()); } } } $form->addSubmit('btnApplyFilters', 'Apply filters')->onClick[] = callback($this, 'saveFilters'); $form['btnApplyFilters']->getControlPrototype()->class = 'button apply'; $form->addSubmit('btnCancelFilters', 'Cancel filters')->onClick[] = callback($this, 'cancelFilters'); $form['btnCancelFilters']->getControlPrototype()->class = 'button cancel'; } }