function deleteAnswer($entry_id, $field_id) { global $thisstaff; if (!$thisstaff) { Http::response(403, 'Login required'); } $ent = DynamicFormEntryAnswer::lookup(array('entry_id' => $entry_id, 'field_id' => $field_id)); if (!$ent) { Http::response(404, 'Answer not found'); } $ent->delete(); }
static function create($ht = false) { $inst = parent::create($ht); $inst->set('created', new SqlFunction('NOW')); foreach ($inst->getForm()->getFields() as $f) { if (!$f->hasData()) { continue; } $a = DynamicFormEntryAnswer::create(array('field_id' => $f->get('id'))); $a->field = $f; $a->field->setAnswer($a); $a->entry = $inst; $inst->_values[] = $a; } return $inst; }
$names = array(); switch (strtolower($_POST['do'])) { case 'update': foreach ($fields as $f) { if (in_array($f, $required) && !$_POST[$f]) { $errors[$f] = sprintf(__('%s is required'), mb_convert_case($f, MB_CASE_TITLE)); } elseif (isset($_POST[$f])) { $form->set($f, $_POST[$f]); } } $form->save(true); foreach ($form->getDynamicFields() as $field) { $id = $field->get('id'); if ($_POST["delete-{$id}"] == 'on' && $field->isDeletable()) { if ($_POST["delete-data-{$id}"]) { DynamicFormEntryAnswer::objects()->filter(array('field_id' => $id))->delete(); } $field->delete(); // Don't bother updating the field continue; } if (isset($_POST["type-{$id}"]) && $field->isChangeable()) { $field->set('type', $_POST["type-{$id}"]); } if (isset($_POST["name-{$id}"]) && !$field->isNameForced()) { $field->set('name', trim($_POST["name-{$id}"])); } # TODO: make sure all help topics still have all required fields $field->setRequirementMode($_POST["visibility-{$id}"]); foreach (array('sort', 'label') as $f) { if (isset($_POST["{$f}-{$id}"])) {
$form_fields = array(); $names = array(); switch(strtolower($_POST['do'])) { case 'update': foreach ($fields as $f) if (in_array($f, $required) && !$_POST[$f]) $errors[$f] = sprintf(__('%s is required'), mb_convert_case($f, MB_CASE_TITLE)); elseif (isset($_POST[$f])) $form->set($f, $_POST[$f]); $form->save(true); foreach ($form->getDynamicFields() as $field) { $id = $field->get('id'); if ($_POST["delete-$id"] == 'on' && $field->isDeletable()) { if ($_POST["delete-data-$id"]) { DynamicFormEntryAnswer::objects() ->filter(array('field_id'=>$id)) ->delete(); } $field->delete(); // Don't bother updating the field continue; } if (isset($_POST["type-$id"]) && $field->isChangeable()) $field->set('type', $_POST["type-$id"]); if (isset($_POST["name-$id"]) && !$field->isNameForced()) $field->set('name', trim($_POST["name-$id"])); # TODO: make sure all help topics still have all required fields $field->setRequirementMode($_POST["visibility-$id"]); foreach (array('sort','label') as $f) {