+ * Experimental implementation of gp.queries.find replacement
+ * To be "pasted" next to gp.queries.find :-)
+ * 2017-03-03 Piotr Szrajber <piotr.szrajber@hexagongeospatial.com>
+ * console.log(ret.analyses)
+ * @param {Object} config
+ * @param {String} [config.id] Analysis ID
+ * @param {String/RegEx} [config.name] Analysis name. it can be regex
+ * @param {Function} [callback] callback executed if operation succeeds
+ * @param {Object} callback.ret returning object
+ * @param {Analysis[]} callback.ret.analyses Analyses collection
+ * @param {Analysis} callback.ret.analysis first found Analysis (for compatibility)
+ * @param {Function} [errback] callback executed if operation fails or doesn't find any analysis
+find2: function(config, callback, errback) {
+ var findBy = makeFindByPredicate({
+ predicate = config.predicate || ((isSet(config.id) || isSet(config.name)) ? findBy : alwaysTrue),
+ a = getPortalObj(P_ANALYSIS_MANAGER)._analyses,
+ result = Object.keys(a).map(function(analysisId) {
+ name: a[analysisId].get_name()
+ }).filter(predicate).map(function(obj) {
+ mapStateId: config.mapStateId,
+ portalAnalysis: a[obj.id]
+ if (result.length > 0) {
+ fire(F_SUCCESS, callback, {
+ analysis: result[0] // compatibility
+ fire(F_FAILURE, errback, {
+ msg: "Analysis not found."