summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js')
-rw-r--r--sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js
new file mode 100644
index 000000000..b985b0422
--- /dev/null
+++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/data/resultDataSourceInterface.js
@@ -0,0 +1,40 @@
+(function( app ) {
+
+ var data = app.ns("data");
+
+ data.ResultDataSourceInterface = data.DataSourceInterface.extend({
+ results: function(res) {
+ this._getSummary(res);
+ this._getMeta(res);
+ this._getData(res);
+ this.sort = {};
+ this.fire("data", this);
+ },
+ _getData: function(res) {
+ var columns = this.columns = [];
+ this.data = res.hits.hits.map(function(hit) {
+ var row = (function(path, spec, row) {
+ for(var prop in spec) {
+ if(acx.isObject(spec[prop])) {
+ arguments.callee(path.concat(prop), spec[prop], row);
+ } else if(acx.isArray(spec[prop])) {
+ if(spec[prop].length) {
+ arguments.callee(path.concat(prop), spec[prop][0], row)
+ }
+ } else {
+ var dpath = path.concat(prop).join(".");
+ if(! columns.contains(dpath)) {
+ columns.push(dpath);
+ }
+ row[dpath] = (spec[prop] || "null").toString();
+ }
+ }
+ return row;
+ })([ hit._type ], hit, {});
+ row._source = hit;
+ return row;
+ }, this);
+ }
+ });
+
+})( this.app );