From 797a4f210a2746d5b45a2d25a3406e66f4b23de0 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Tue, 9 Aug 2016 22:40:43 +0800 Subject: [PATCH] fetchRelatives recursively handles arrays --- app/assets/javascripts/src/Metamaps.Listeners.js | 4 ++-- app/assets/javascripts/src/Metamaps.Topic.js | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/src/Metamaps.Listeners.js b/app/assets/javascripts/src/Metamaps.Listeners.js index 1a6a9eb6..822cf657 100644 --- a/app/assets/javascripts/src/Metamaps.Listeners.js +++ b/app/assets/javascripts/src/Metamaps.Listeners.js @@ -110,12 +110,12 @@ Metamaps.Listeners = { var node = nodes[nodes.length - 1] if (opts.center && opts.reveal) { Metamaps.Topic.centerOn(node.id, function() { - Metamaps.Topic.fetchRelatives(node) + Metamaps.Topic.fetchRelatives(nodes) }) } else if (opts.center) { Metamaps.Topic.centerOn(node.id) } else if (opts.reveal) { - Metamaps.Topic.fetchRelatives(node) + Metamaps.Topic.fetchRelatives(nodes) } } }; // end Metamaps.Listeners diff --git a/app/assets/javascripts/src/Metamaps.Topic.js b/app/assets/javascripts/src/Metamaps.Topic.js index b095bcf4..34fbc6c5 100644 --- a/app/assets/javascripts/src/Metamaps.Topic.js +++ b/app/assets/javascripts/src/Metamaps.Topic.js @@ -111,7 +111,11 @@ Metamaps.Topic = { }) } }, - fetchRelatives: function (node, metacode_id) { + fetchRelatives: function (nodes, metacode_id) { + var self = this + + var node = $.isArray(nodes) ? nodes[0] : nodes + var topics = Metamaps.Topics.map(function (t) { return t.id }) var topics_string = topics.join() @@ -162,13 +166,16 @@ Metamaps.Topic = { } }) }) + if ($.isArray(nodes) && nodes.length > 1) { + self.fetchRelatives(nodes.slice(1), metacode_id) + } } var paramsString = metacode_id ? 'metacode=' + metacode_id + '&' : '' paramsString += 'network=' + topics_string + '&creators=' + creators_string $.ajax({ - type: 'Get', + type: 'GET', url: '/topics/' + topic.id + '/relatives.json?' + paramsString, success: successCallback, error: function () {}