/**
  * Save a form.
  * @param  PlainForm_FormModel $form [description]
  * @return [type]                     [description]
  */
 public function saveForm(PlainForm_FormModel $form)
 {
     if ($form->id) {
         $formRecord = PlainForm_FormRecord::model()->findById($form->id);
         if (!$formRecord) {
             throw new Exception(Craft::t('No form exists with the ID "{id}"', array('id' => $form->id)));
         }
         $oldForm = PlainForm_FormModel::populateModel($formRecord);
         $isNewForm = false;
     } else {
         $formRecord = new PlainForm_FormRecord();
         $isNewForm = true;
     }
     // Set record attributes
     $formRecord->name = $form->name;
     $formRecord->handle = $form->handle;
     $formRecord->description = $form->description;
     $formRecord->successMessage = $form->successMessage;
     $formRecord->emailSubject = $form->emailSubject;
     $formRecord->fromEmail = $form->fromEmail;
     $formRecord->fromName = $form->fromName;
     $formRecord->replyToEmail = $form->replyToEmail;
     $formRecord->toEmail = $form->toEmail;
     $formRecord->notificationTemplatePath = $form->notificationTemplatePath;
     $formRecord->validate();
     $form->addErrors($formRecord->getErrors());
     if (!$form->hasErrors()) {
         $transaction = craft()->db->getCurrentTransaction() === null ? craft()->db->beginTransaction() : null;
         try {
             $formRecord->save(false);
             if (!$form->id) {
                 $form->id = $formRecord->id;
             }
             if ($transaction !== null) {
                 $transaction->commit();
             }
         } catch (\Exception $e) {
             if ($transaction !== null) {
                 $transaction->rollback();
             }
             throw $e;
         }
         return true;
     } else {
         return false;
     }
 }
 public function actionEditForm(array $variables = array())
 {
     $variables['form'] = PlainForm_FormRecord::model()->findById($variables['formId']);
     $variables['tabs'] = $this->_getTabs();
     return $this->renderTemplate('plainform/forms/_edit', $variables);
 }