summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-01-11 20:33:03 +0200
committerLV-426 <lv-426@taproot.org.il>2015-01-11 20:33:03 +0200
commitbcc90ca12b0bb8a37a5ca6e1b72e6b4b629f0668 (patch)
tree9512a4ead3f1f30b89701be47fb2f909c9544c00
parent9667d99e8c1922f174455f75cfc0fd441b654a07 (diff)
update_link(): mirror update_node() handling
-rw-r--r--src/client/model/graph.js34
1 files changed, 12 insertions, 22 deletions
diff --git a/src/client/model/graph.js b/src/client/model/graph.js
index 11f55c3b..5dbba964 100644
--- a/src/client/model/graph.js
+++ b/src/client/model/graph.js
@@ -381,36 +381,26 @@ function Graph(spec) {
attr_diff.add_link_attr_write(link.id, key, new_link_spec[key]);
}
- var on_ajax_success = function(id_to_link_map) {
- var link_id = link.id; // original link id
- if (id_to_link_map[link_id].id != link_id) {
- // TODO: handle incoming ID update
- util.assert(false, 'update_link: id attr change');
- }
+ var on_ajax_success = function(attr_diff_spec) {
+ var attr_diff = model_util.adapt_format_read_diff__attr(attr_diff_spec);
+ var id_to_link_map = attr_diff.id_to_link_map
+ var l_id = link.id; // original node id
+
+ util.assert(id_to_link_map && id_to_link_map[l_id], "bad return value from ajax");
var ret_link = id_to_link_map[link_id];
- for (var key in ret_link) {
- if ('id' == key){
- continue;
- }
- var matching = null;
- link[key] = ret_link[key];
- // this part is askew right now
- if (key == '__type') {
- matching = 'name';
- }
- if (key == 'name') {
- matching = '__type';
- }
- if (matching) {
- link[matching] = link[key];
- }
+ for (var key in ret_link['__attr_write']){
+ link[key] = ret_link['__attr_write'][key];
+ }
+ for (var key in ret_link['__attr_remove']){
+ delete link[key];
}
// TODO: handle NAK: add problem emblem to link
if (on_success !== undefined) {
on_success();
}
+ diffBus.push(attr_diff);
};
var on_ajax_error = function(){