Make api.getoptons contexts more discoverable
authorColeman Watts <coleman@civicrm.org>
Tue, 24 Mar 2015 14:44:52 +0000 (10:44 -0400)
committerColeman Watts <coleman@civicrm.org>
Wed, 25 Mar 2015 15:44:50 +0000 (11:44 -0400)
CRM/Core/DAO.php
api/v3/Generic.php

index 721acc77ff840dc98d2252db9847b9b045baaa23..654c0935d6c0579495498c4df89606e508dc27e2 100644 (file)
@@ -2204,12 +2204,12 @@ SELECT contact_id
    */
   public static function buildOptionsContext($context = NULL) {
     $contexts = array(
-      'get' => "All options are returned, even if they are disabled. Labels are translated.",
-      'create' => "Options are filtered appropriately for the object being created/updated. Labels are translated.",
-      'search' => "Searchable options are returned. Labels are translated.",
-      'validate' => "All options are returned, even if they are disabled. Machine names are used in place of labels.",
-      'abbreviate' => "Active options are returned, and labels are replaced with abbreviations.",
-      'match' => "Enabled options are returned using machine names as keys. Labels are translated.",
+      'get' => "get: all options are returned, even if they are disabled; labels are translated.",
+      'create' => "create: options are filtered appropriately for the object being created/updated; labels are translated.",
+      'search' => "search: searchable options are returned; labels are translated.",
+      'validate' => "validate: all options are returned, even if they are disabled; machine names are used in place of labels.",
+      'abbreviate' => "abbreviate: enabled options are returned; labels are replaced with abbreviations.",
+      'match' => "match: enabled options are returned using machine names as keys; labels are translated.",
     );
     // Validation: enforce uniformity of this param
     if ($context !== NULL && !isset($contexts[$context])) {
index 6bc8fb3ff94b99d7c9fdcd937e6dbfe301b341c9..78df58812f4f201a199ab1516671b16136c81883 100644 (file)
@@ -382,13 +382,11 @@ function _civicrm_api3_generic_getoptions_spec(&$params, $apiRequest) {
     'context' => array(
       'title' => 'Context',
       'type' => CRM_Utils_Type::T_STRING,
+      'options' => CRM_Core_DAO::buildOptionsContext(),
     ),
   );
 
-  // Add available options to these params if requested
-  if (array_intersect(array('all', 'context'), $apiRequest['params']['options']['get_options'])) {
-    $params['context']['options'] = array_combine(array_keys(CRM_Core_DAO::buildOptionsContext()), array_keys(CRM_Core_DAO::buildOptionsContext()));
-  }
+  // Add available fields if requested
   if (array_intersect(array('all', 'field'), $apiRequest['params']['options']['get_options'])) {
     $fields = civicrm_api3_generic_getfields(array('entity' => $apiRequest['entity'], array('params' => array('action' => 'create'))));
     $params['field']['options'] = array();