function saveFieldConfiguration($field_id) { $field = DynamicFormField::lookup($field_id); if (!$field->setConfiguration()) { include STAFFINC_DIR . 'templates/dynamic-field-config.tmpl.php'; } else { $field->save(); } }
function delete() { $fields = DynamicFormField::objects()->filter(array('type' => 'list-' . $this->id))->count(); if ($fields == 0) { return parent::delete(); } else { // Refuse to delete lists that are in use by fields return false; } }
} elseif ($i > 0) { $warn = sprintf(__('%1$d of %1$d %3$s deleted'), $i, $count, _N('selected custom form', 'selected custom forms', $count)); } elseif (!$errors['err']) { $errors['err'] = sprintf(__('Unable to delete %s'), _N('selected custom form', 'selected custom forms', $count)); } break; } } break; } if ($form) { for ($i = 0; isset($_POST["sort-new-{$i}"]); $i++) { if (!$_POST["label-new-{$i}"]) { continue; } $field = DynamicFormField::create(array('sort' => $_POST["sort-new-{$i}"] ? $_POST["sort-new-{$i}"] : ++$max_sort, 'label' => $_POST["label-new-{$i}"], 'type' => $_POST["type-new-{$i}"], 'name' => trim($_POST["name-new-{$i}"]))); $field->setRequirementMode($_POST["visibility-new-{$i}"]); $field->setForm($form); if (in_array($field->get('name'), $names)) { $field->addError(__('Field variable name is not unique'), 'name'); } if ($field->isValid()) { $form_fields[] = $field; if ($N = $field->get('name')) { $names[] = $N; } } else { $errors["new-{$i}"] = $field->errors(); } } // XXX: Move to an instrumented list that can handle this better
break; } if ($list && $list->allowAdd()) { for ($i = 0; isset($_POST["sort-new-{$i}"]); $i++) { if (!$_POST["value-new-{$i}"]) { continue; } $list->addItem(array('value' => $_POST["value-new-{$i}"], 'abbrev' => $_POST["abbrev-new-{$i}"], 'sort' => $_POST["sort-new-{$i}"] ?: ++$max_isort), $errors); } } if ($form) { for ($i = 0; isset($_POST["prop-sort-new-{$i}"]); $i++) { if (!$_POST["prop-label-new-{$i}"]) { continue; } $field = DynamicFormField::create(array('form_id' => $form->get('id'), 'sort' => $_POST["prop-sort-new-{$i}"] ?: ++$max_sort, 'label' => $_POST["prop-label-new-{$i}"], 'type' => $_POST["type-new-{$i}"], 'name' => $_POST["name-new-{$i}"])); $field->setForm($form); if ($field->isValid()) { $field->save(); } else { $errors["new-{$i}"] = $field->errors(); } } // XXX: Move to an instrumented list that can handle this better if (!$errors) { $form->_dfields = $form->_fields = null; } } } $page = 'dynamic-lists.inc.php'; if ($list || $_REQUEST['a'] && !strcasecmp($_REQUEST['a'], 'add')) {
function getField() { if (!isset($this->field)) { $f = DynamicFormField::lookup($this->get('field_id')); $this->field = $f->getImpl($f); $this->field->setAnswer($this); } return $this->field; }
function upload($id) { if (!($field = DynamicFormField::lookup($id))) { Http::response(400, 'No such field'); } $impl = $field->getImpl(); if (!$impl instanceof FileUploadField) { Http::response(400, 'Upload to a non file-field'); } return JsonDataEncoder::encode(array('id' => $impl->ajaxUpload())); }
<?php } ?> </optgroup> <?php } ?> </select></td> <td> <select name="visibility-new-<?php echo $i; ?> "> <?php $rmode = $info['visibility-new-' . $i]; foreach (DynamicFormField::allRequirementModes() as $m => $I) { ?> <option value="<?php echo $m; ?> " <?php if ($rmode == $m) { echo 'selected="selected"'; } ?> ><?php echo $I['desc']; ?> </option> <?php }
} elseif ($i > 0) { $warn = "{$i} of {$count} selected forms deleted"; } elseif (!$errors['err']) { $errors['err'] = 'Unable to delete selected custom forms'; } break; } } break; } if ($form) { for ($i = 0; isset($_POST["sort-new-{$i}"]); $i++) { if (!$_POST["label-new-{$i}"]) { continue; } $field = DynamicFormField::create(array('sort' => $_POST["sort-new-{$i}"] ? $_POST["sort-new-{$i}"] : ++$max_sort, 'label' => $_POST["label-new-{$i}"], 'type' => $_POST["type-new-{$i}"], 'name' => $_POST["name-new-{$i}"], 'private' => $_POST["private-new-{$i}"] == 'on' ? 1 : 0, 'required' => $_POST["required-new-{$i}"] == 'on' ? 1 : 0)); $field->setForm($form); if ($field->isValid()) { $form_fields[] = $field; } else { $errors["new-{$i}"] = $field->errors(); } } // XXX: Move to an instrumented list that can handle this better if (!$errors) { $form->_dfields = $form->_fields = null; $form->save(true); foreach ($form_fields as $field) { $field->set('form_id', $form->get('id')); $field->save(); }