/** * Copyright 2010-2013 Ben Birch * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (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 );