fix a bug with synapses and use cid to link new topics with synapses
Synapses are now created client-side, but still rejected server-side
This commit is contained in:
parent
7d73da7f7b
commit
1f1cd37553
2 changed files with 18 additions and 14 deletions
|
@ -24,11 +24,12 @@
|
||||||
|
|
||||||
Metamaps.Import = {
|
Metamaps.Import = {
|
||||||
topicWhitelist: [
|
topicWhitelist: [
|
||||||
'name', 'metacode', 'description', 'link', 'permission'
|
'id', 'name', 'metacode', 'description', 'link', 'permission'
|
||||||
],
|
],
|
||||||
synapseWhitelist: [
|
synapseWhitelist: [
|
||||||
'desc', 'description', 'category', 'topic1', 'topic2', 'permission'
|
'id', 'desc', 'description', 'category', 'topic1', 'topic2', 'permission'
|
||||||
],
|
],
|
||||||
|
cidMappings: {}, //to be filled by import_id => cid mappings
|
||||||
|
|
||||||
init: function() {
|
init: function() {
|
||||||
var self = Metamaps.Import;
|
var self = Metamaps.Import;
|
||||||
|
@ -145,7 +146,7 @@ Metamaps.Import = {
|
||||||
var header = topicHeaders[index];
|
var header = topicHeaders[index];
|
||||||
if (self.topicWhitelist.indexOf(header) === -1) return;
|
if (self.topicWhitelist.indexOf(header) === -1) return;
|
||||||
topic[header] = field;
|
topic[header] = field;
|
||||||
if (header === 'x' || header === 'y') {
|
if (['id', 'x', 'y'].indexOf(header) !== -1) {
|
||||||
topic[header] = parseInt(topic[header]);
|
topic[header] = parseInt(topic[header]);
|
||||||
}//if
|
}//if
|
||||||
});
|
});
|
||||||
|
@ -166,8 +167,8 @@ Metamaps.Import = {
|
||||||
var header = synapseHeaders[index];
|
var header = synapseHeaders[index];
|
||||||
if (self.synapseWhitelist.indexOf(header) === -1) return;
|
if (self.synapseWhitelist.indexOf(header) === -1) return;
|
||||||
synapse[header] = field;
|
synapse[header] = field;
|
||||||
if (header === 'topic1' || header === 'topic2') {
|
if (['id', 'topic1', 'topic2'].indexOf(header) !== -1) {
|
||||||
synapse[header] = parseInt(header);
|
synapse[header] = parseInt(synapse[header]);
|
||||||
}//if
|
}//if
|
||||||
});
|
});
|
||||||
results.synapses.push(synapse);
|
results.synapses.push(synapse);
|
||||||
|
@ -235,6 +236,7 @@ Metamaps.Import = {
|
||||||
|
|
||||||
createTopicWithParameters: function(name, metacode_name, permission, desc,
|
createTopicWithParameters: function(name, metacode_name, permission, desc,
|
||||||
link, xloc, yloc, import_id) {
|
link, xloc, yloc, import_id) {
|
||||||
|
var self = Metamaps.Import;
|
||||||
$(document).trigger(Metamaps.Map.events.editedByActiveMapper);
|
$(document).trigger(Metamaps.Map.events.editedByActiveMapper);
|
||||||
var metacode = Metamaps.Metacodes.where({name: metacode_name})[0] || null;
|
var metacode = Metamaps.Metacodes.where({name: metacode_name})[0] || null;
|
||||||
if (metacode === null) return console.error("metacode not found");
|
if (metacode === null) return console.error("metacode not found");
|
||||||
|
@ -245,9 +247,9 @@ Metamaps.Import = {
|
||||||
permission: permission || Metamaps.Active.Map.get('permission'),
|
permission: permission || Metamaps.Active.Map.get('permission'),
|
||||||
desc: desc,
|
desc: desc,
|
||||||
link: link,
|
link: link,
|
||||||
import_id: import_id
|
|
||||||
});
|
});
|
||||||
Metamaps.Topics.add(topic);
|
Metamaps.Topics.add(topic);
|
||||||
|
self.cidMappings[import_id] = topic.cid;
|
||||||
|
|
||||||
var mapping = new Metamaps.Backbone.Mapping({
|
var mapping = new Metamaps.Backbone.Mapping({
|
||||||
xloc: xloc,
|
xloc: xloc,
|
||||||
|
@ -260,13 +262,15 @@ Metamaps.Import = {
|
||||||
// this function also includes the creation of the topic in the database
|
// this function also includes the creation of the topic in the database
|
||||||
Metamaps.Topic.renderTopic(mapping, topic, true, true);
|
Metamaps.Topic.renderTopic(mapping, topic, true, true);
|
||||||
|
|
||||||
|
|
||||||
Metamaps.Famous.viz.hideInstructions();
|
Metamaps.Famous.viz.hideInstructions();
|
||||||
},
|
},
|
||||||
|
|
||||||
createSynapseWithParameters: function(description, category, permission,
|
createSynapseWithParameters: function(description, category, permission,
|
||||||
node1_id, node2_id) {
|
node1_id, node2_id) {
|
||||||
var topic1 = Metamaps.Topics.where({import_id: node1_id});
|
var self = Metamaps.Import;
|
||||||
var topic2 = Metamaps.Topics.where({import_id: node2_id});
|
var topic1 = Metamaps.Topics.get(self.cidMappings[node1_id]);
|
||||||
|
var topic2 = Metamaps.Topics.get(self.cidMappings[node2_id]);
|
||||||
var node1 = topic1.get('node');
|
var node1 = topic1.get('node');
|
||||||
var node2 = topic2.get('node');
|
var node2 = topic2.get('node');
|
||||||
// TODO check if topic1 and topic2 were sucessfully found...
|
// TODO check if topic1 and topic2 were sucessfully found...
|
||||||
|
@ -275,13 +279,13 @@ Metamaps.Import = {
|
||||||
desc: description,
|
desc: description,
|
||||||
category: category,
|
category: category,
|
||||||
permission: permission,
|
permission: permission,
|
||||||
node1_id: node1_id,
|
node1_id: node1.id,
|
||||||
node2_id: node2_id,
|
node2_id: node2.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
var mapping = new Metamaps.Backbone.Mapping({
|
var mapping = new Metamaps.Backbone.Mapping({
|
||||||
mappable_type: "Synapse",
|
mappable_type: "Synapse",
|
||||||
mappable_id: synapse.cid,
|
mappable_id: synapse.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
Metamaps.Synapse.renderSynapse(mapping, synapse, node1, node2, true);
|
Metamaps.Synapse.renderSynapse(mapping, synapse, node1, node2, true);
|
||||||
|
|
|
@ -375,7 +375,7 @@ Metamaps.Backbone.init = function () {
|
||||||
mappable_id: this.isNew() ? this.cid : this.id
|
mappable_id: this.isNew() ? this.cid : this.id
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
createEdge: function () {
|
createEdge: function (providedMapping) {
|
||||||
var mapping, mappingID;
|
var mapping, mappingID;
|
||||||
var synapseID = this.isNew() ? this.cid : this.id;
|
var synapseID = this.isNew() ? this.cid : this.id;
|
||||||
|
|
||||||
|
@ -389,7 +389,7 @@ Metamaps.Backbone.init = function () {
|
||||||
};
|
};
|
||||||
|
|
||||||
if (Metamaps.Active.Map) {
|
if (Metamaps.Active.Map) {
|
||||||
mapping = this.getMapping();
|
mapping = providedMapping || this.getMapping();
|
||||||
mappingID = mapping.isNew() ? mapping.cid : mapping.id;
|
mappingID = mapping.isNew() ? mapping.cid : mapping.id;
|
||||||
edge.data.$mappings = [];
|
edge.data.$mappings = [];
|
||||||
edge.data.$mappingIDs = [mappingID];
|
edge.data.$mappingIDs = [mappingID];
|
||||||
|
@ -4233,7 +4233,7 @@ Metamaps.Synapse = {
|
||||||
|
|
||||||
var edgeOnViz;
|
var edgeOnViz;
|
||||||
|
|
||||||
var newedge = synapse.createEdge();
|
var newedge = synapse.createEdge(mapping);
|
||||||
|
|
||||||
Metamaps.Visualize.mGraph.graph.addAdjacence(node1, node2, newedge.data);
|
Metamaps.Visualize.mGraph.graph.addAdjacence(node1, node2, newedge.data);
|
||||||
edgeOnViz = Metamaps.Visualize.mGraph.graph.getAdjacence(node1.id, node2.id);
|
edgeOnViz = Metamaps.Visualize.mGraph.graph.getAdjacence(node1.id, node2.id);
|
||||||
|
|
Loading…
Reference in a new issue