API Explorer - fix getvalue action return field
authorColeman Watts <coleman@civicrm.org>
Sun, 15 Mar 2015 04:57:40 +0000 (00:57 -0400)
committerColeman Watts <coleman@civicrm.org>
Sun, 15 Mar 2015 04:57:40 +0000 (00:57 -0400)
templates/CRM/Admin/Page/APIExplorer.js
templates/CRM/Admin/Page/APIExplorer.tpl

index 8c7a666a318e314333782cf35859c3c2180f73be..eaec241ac8a400ccdb6ec61952de90b0275b7971 100644 (file)
         CRM.alert(data.deprecated, entity + ' Deprecated');
       }
       showFields(required);
-      if (action === 'get' || action === 'getsingle' || action === 'getstat') {
-        showReturn(action === 'getstat' ? ts('Group by') : ts('Fields to return'));
+      if (action === 'get' || action === 'getsingle' || action == 'getvalue' || action === 'getstat') {
+        showReturn();
       }
     });
   }
 
   /**
    * For "get" actions show the "return" options
+   *
+   * TODO: Too many hard-coded actions here. Need a way to fetch this from metadata
    */
-  function showReturn(title) {
+  function showReturn() {
+    var title = ts('Fields to return'),
+      params = {
+        data: fields,
+        multiple: true,
+        placeholder: ts('Leave blank for default')
+      };
+    if (action == 'getstat') {
+      title = ts('Group by');
+    }
+    if (action == 'getvalue') {
+      title = ts('Return Value');
+      params.placeholder = ts('Select field');
+      params.multiple = false;
+    }
     $('#api-params').prepend($(returnTpl({title: title})));
-    $('#api-return-value').crmSelect2({data: fields, multiple: true});
+    $('#api-return-value').crmSelect2(params);
   }
 
   /**
index 0d4936a4188498406bb5f69b379575c0b6d8d7b1..a891ac5d4d875ff311e9ff30c98cf598711cb6c6 100644 (file)
     <td colspan="3">
       <label for="api-return-value"><%- title %>:</label> &nbsp;
       <input type="hidden" class="api-param-name" value="return" />
-      <input style="width: 50%;" id="api-return-value" class="crm-form-text api-param-value api-input" placeholder="{ts}Leave blank for default{/ts}"/>
+      <input style="width: 50%;" id="api-return-value" class="crm-form-text api-param-value api-input"/>
     </td>
   </tr>
 </script>