function saveNewsArticle($data, Form $form) { try { $form->clearMessage(); $form->resetValidation(); if ($data['newsID']) { $this->manager->updateNews($data); } else { $this->manager->postNews($data); } Session::clear("FormInfo.Form_NewsRequestForm.data"); return Controller::curr()->redirect('/news-add/?saved=1'); } catch (EntityValidationException $ex1) { $messages = $ex1->getMessages(); $msg = $messages[0]; $form->addErrorMessage('Headline', $msg['message'], 'bad'); SS_Log::log($msg['message'], SS_Log::ERR); // Load errors into session and post back Session::set("FormInfo.Form_NewsRequestForm.data", $data); return $this->redirectBack(); } catch (Exception $ex) { $form->addErrorMessage('Headline', 'Server Error', 'bad'); SS_Log::log($ex->getMessage(), SS_Log::ERR); // Load errors into session and post back Session::set("FormInfo.Form_NewsRequestForm.data", $data); return $this->redirectBack(); } }
function saveEventRegistrationRequest($data, Form $form) { // Check if the honeypot has been filled out if (@$data['username']) { SS_Log::log(sprintf('EventRegistrationRequestForm honeypot triggered (data: %s)', http_build_query($data)), SS_Log::NOTICE); return $this->httpError(403); } try { $this->event_registration_request_manager->registerEventRegistrationRequest($data); Session::clear("FormInfo.Form_EventRegistrationRequestForm.data"); $form->clearMessage(); return $this->redirect($this->Link('?saved=1')); } catch (EntityValidationException $ex1) { $messages = $ex1->getMessages(); $msg = $messages[0]; $form->addErrorMessage('City', $msg['message'], 'bad'); SS_Log::log($msg['message'], SS_Log::ERR); // Load errors into session and post back Session::set("FormInfo.Form_EventRegistrationRequestForm.data", $data); return $this->redirectBack(); } catch (Exception $ex) { $form->addErrorMessage('Title', 'Server Error', 'bad'); SS_Log::log($ex->getMessage(), SS_Log::ERR); // Load errors into session and post back Session::set("FormInfo.Form_EventRegistrationRequestForm.data", $data); return $this->redirectBack(); } }
/** * Add status message to the response (only if `show_ajax_messages` config is set) * @param AjaxHTTPResponse $response * @param Form|null $form the form instance */ protected function triggerStatusMessage($response, $form = null) { if (!self::config()->show_ajax_messages) { return; } $message = ''; $type = ''; if ($this->owner->cart) { $message = $this->owner->cart->getMessage(); $type = $this->owner->cart->getMessageType(); $this->owner->cart->clearMessage(); } if ($form) { // if the message was not previously set via cart, get the message from $form if (empty($message)) { $message = $form->Message(); $type = $form->MessageType(); } $form->clearMessage(); } if (!empty($message)) { $response->triggerEvent('statusmessage', array('content' => $message, 'type' => $type)); } }
/** * @return Form */ public function DateRangeForm() { $fields = new FieldList($dateFrom = new DateField('from'), $dateTo = new DateField('to'), new HiddenField('tag')); $dateFrom->setConfig('showcalendar', true); $dateTo->setConfig('showcalendar', true); $actions = new FieldList(FormAction::create("doDateFilter")->setTitle("Filter")->addExtraClass('btn btn-primary primary'), FormAction::create("doDateReset")->setTitle("Clear")->addExtraClass('btn')); $form = new Form($this, 'DateRangeForm', $fields, $actions); $form->loadDataFrom($this->request->getVars()); $form->setFormMethod('get'); // Manually extract the message so we can clear it. $form->ErrorMessage = $form->Message(); $form->ErrorMessageType = $form->MessageType(); $form->clearMessage(); return $form; }