private function pageSaving(\Nette\Forms\Form $form, $isDraft) { if (!$this->authorizator->isAllowed($this->user, 'page', 'create') or !$this->authorizator->isAllowed($this->user, 'page', 'edit')) { $this->flashMessage('authorization.noPermission', FlashMessage::WARNING); return; } $values = $form->getValues(true); $values['saveAsDraft'] = (bool) $isDraft; $values['author'] = $this->user; $tags = $form->getHttpData(Form::DATA_TEXT, 'tags[]'); $values['tags'] = $tags; try { $page = $this->pageFacade->save($values, $this->page); $this->flashMessage('pageEditForm.messages.success' . ($values['saveAsDraft'] ? 'Draft' : 'Publish'), FlashMessage::SUCCESS); $this->onSuccessPageSaving($this, $page); } catch (PagePublicationTimeMissingException $ptm) { $form->addError($this->translator->translate('pageEditForm.messages.missingPublicationTime')); return; } catch (PagePublicationTimeException $pt) { $form->addError($this->translator->translate('pageEditForm.messages.publishedPageInvalidPublicationTime')); return; } catch (PageIntroHtmlLengthException $pi) { $form->addError($this->translator->translate('pageEditForm.messages.pageIntroHtmlLength')); return; } catch (PageTitleAlreadyExistsException $at) { $form->addError($this->translator->translate('pageEditForm.messages.titleExists')); return; } catch (UrlAlreadyExistsException $ur) { $form['url']->setValue(Strings::webalize($values['title'], '/')); $form->addError($this->translator->translate('pageEditForm.messages.urlExists')); return; } catch (DBALException $e) { $form->addError($this->translator->translate('pageEditForm.messages.savingError')); return; } }