WebUI: Possibility to choose object when API call returns list of objects

In case that API call returns array of objects which contains data, using
'object_index' attribute in adapter specification we can set which object
should be used.

It is possible to choose only one object specified by its index in array.

Part of: https://pagure.io/freeipa/issue/6601

Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
This commit is contained in:
Pavel Vomacka authored and David Kupka committed 2017-03-08 16:22:01 +01:00
1 parent 6be32edde0
commit 1d6cc35c03
1 file changed
+13
+13
View File
@@ -818,6 +818,15 @@ field.Adapter = declare(null, {
*/
result_index: 0,
/**
* When result of API call is an array of object this object index
* allows to specify exact object in array according to its position.
* Default value is null which means do not use object_index.
*
* @type {Number|null}
*/
object_index: null,
/**
* Name of the record which we want to extract from the result.
* Used in dnslocations.
@@ -849,6 +858,10 @@ field.Adapter = declare(null, {
else if (dr.results) {
var result = dr.results[this.result_index];
if (result) record = result[this.result_name];
var res_type = typeof record;
var obj_in_type = typeof this.object_index;
if (res_type === 'object' && obj_in_type === 'number')
record = record[this.object_index];
}
}
return record;