public function actionSaveField()
{
$this->requireAdmin();
$this->requirePostRequest();
$this->requireAjaxRequest();
$field = new FieldModel();
$field->id = craft()->request->getPost('qf.fieldId');
$field->groupId = craft()->request->getRequiredPost('qf.group');
$field->name = craft()->request->getPost('qf.name');
$field->handle = craft()->request->getPost('qf.handle');
$field->instructions = craft()->request->getPost('qf.instructions');
$field->translatable = (bool) craft()->request->getPost('qf.translatable');
$field->type = craft()->request->getRequiredPost('qf.type');
$typeSettings = craft()->request->getPost('qf.types');
if (isset($typeSettings[$field->type])) {
$field->settings = $typeSettings[$field->type];
}
$group = craft()->fields->getGroupById($field->groupId);
$success = $group && craft()->fields->saveField($field);
$this->returnJson(array('success' => $success, 'errors' => $field->getAllErrors(), 'field' => array('id' => $field->id, 'name' => $field->name, 'handle' => $field->handle, 'instructions' => $field->instructions, 'translatable' => $field->translatable, 'group' => !$group ? array() : array('id' => $group->id, 'name' => $group->name)), 'template' => $success ? false : $this->_getTemplate($field)));
}