/** * Returns a list of all fields belonging to user's organisation * * @since 0.1.3 */ public function actionFields() { $em = DB::getEntityManager(); $fieldRepo = $em->getRepository(Field::getEntityNamespace()); /** @var FieldEntity[] $fields */ $fields = $fieldRepo->findBy(['organisation' => Apollo::getInstance()->getUser()->getOrganisationId(), 'is_hidden' => false]); $response['error'] = null; $data = []; for ($i = 0; $i < count($fields); $i++) { $field = $fields[$i]; $fieldData = []; $fieldData['id'] = $field->getId(); $fieldData['essential'] = $field->isEssential(); $fieldData['name'] = $field->getName(); $fieldData['type'] = $field->getType(); $subtype = 0; if ($field->getType() == 2) { if ($field->hasDefault()) { if ($field->isAllowOther()) { $subtype = 4; } elseif ($field->isMultiple()) { $subtype = 5; } else { $subtype = 3; } } else { if ($field->isMultiple()) { $subtype = 2; } else { $subtype = 1; } } } $fieldData['subtype'] = $subtype; $defaults = $field->getDefaults(); $defaultsData = []; for ($k = 0; $k < count($defaults); $k++) { $defaultsData[] = $defaults[$k]->getValue(); } $fieldData['defaults'] = $defaultsData; $data[] = $fieldData; } $response['data'] = array_reverse($data); echo json_encode($response); }