mirror of https://github.com/MISP/MISP
fix: [timeline] Prevent collision for Object and Attribute having the
same IDpull/4743/head
parent
51ea04d91d
commit
3d9a545a00
|
@ -193,11 +193,11 @@ function build_object_template(obj) {
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
function reflect_change(onIndex, itemType, itemId) {
|
function reflect_change(onIndex, itemType, itemId, item) {
|
||||||
if (onIndex) {
|
if (onIndex) {
|
||||||
updateIndex(scope_id, 'event'); // MISP function
|
updateIndex(scope_id, 'event'); // MISP function
|
||||||
} else { // reflect change on item only
|
} else { // reflect change on item only
|
||||||
quick_fetch_seens(itemType, itemId, function(firstSeen, lastSeen) {
|
quick_fetch_seens(itemType, item.orig_id, function(firstSeen, lastSeen) {
|
||||||
var updatedItem = items_timeline.get(itemId);
|
var updatedItem = items_timeline.get(itemId);
|
||||||
updatedItem.first_seen = firstSeen;
|
updatedItem.first_seen = firstSeen;
|
||||||
updatedItem.last_seen = lastSeen;
|
updatedItem.last_seen = lastSeen;
|
||||||
|
@ -250,7 +250,7 @@ function update_seen(item, seenType, value, reflect, callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetch_form_and_submit(itemType, item, seenType, value, reflect, callback) {
|
function fetch_form_and_submit(itemType, item, seenType, value, reflect, callback) {
|
||||||
var url = "/" + itemType + "/fetchEditForm/" + item.id + "/" + seenType+"_seen";
|
var url = "/" + itemType + "/fetchEditForm/" + item.orig_id + "/" + seenType+"_seen";
|
||||||
$.ajax({
|
$.ajax({
|
||||||
beforeSend: function (XMLHttpRequest) {
|
beforeSend: function (XMLHttpRequest) {
|
||||||
$(".loadingTimeline").show();
|
$(".loadingTimeline").show();
|
||||||
|
@ -269,7 +269,7 @@ function fetch_form_and_submit(itemType, item, seenType, value, reflect, callbac
|
||||||
cache: false,
|
cache: false,
|
||||||
success:function (data, textStatus) {
|
success:function (data, textStatus) {
|
||||||
if (reflect) {
|
if (reflect) {
|
||||||
reflect_change(false, itemType, item.id);
|
reflect_change(false, itemType, item.id, item);
|
||||||
}
|
}
|
||||||
form.remove()
|
form.remove()
|
||||||
},
|
},
|
||||||
|
@ -363,6 +363,7 @@ function timelinePopupCallback(state) {
|
||||||
|
|
||||||
function adjust_text_length(elem) {
|
function adjust_text_length(elem) {
|
||||||
var maxChar = $('#slider_timeline_display_max_char_num').val();
|
var maxChar = $('#slider_timeline_display_max_char_num').val();
|
||||||
|
maxChar = maxChar === undefined ? 64 : maxChar;
|
||||||
elem.content = elem.content.substring(0, maxChar) + (elem.content.length < maxChar ? "" : "[...]");
|
elem.content = elem.content.substring(0, maxChar) + (elem.content.length < maxChar ? "" : "[...]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,14 +392,16 @@ function reload_timeline() {
|
||||||
items_timeline.clear();
|
items_timeline.clear();
|
||||||
for (var item of data.items) {
|
for (var item of data.items) {
|
||||||
item.className = item.group;
|
item.className = item.group;
|
||||||
|
item.orig_id = item.id;
|
||||||
|
item.id = item.uuid;
|
||||||
set_spanned_time(item);
|
set_spanned_time(item);
|
||||||
if (item.group == 'object') {
|
if (item.group == 'object') {
|
||||||
for (var attr of item.Attribute) {
|
for (var attr of item.Attribute) {
|
||||||
mapping_text_to_id.set(attr.contentType+': '+attr.content+' ('+item.id+')', item.id);
|
mapping_text_to_id.set(attr.contentType+': '+attr.content+' ('+item.orig_id+')', item.id);
|
||||||
adjust_text_length(attr);
|
adjust_text_length(attr);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mapping_text_to_id.set(item.content+' ('+item.id+')', item.id);
|
mapping_text_to_id.set(item.content+' ('+item.orig_id+')', item.id);
|
||||||
adjust_text_length(item);
|
adjust_text_length(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -450,14 +453,16 @@ function enable_timeline() {
|
||||||
|
|
||||||
for (var item of data.items) {
|
for (var item of data.items) {
|
||||||
item.className = item.group;
|
item.className = item.group;
|
||||||
|
item.orig_id = item.id;
|
||||||
|
item.id = item.uuid;
|
||||||
set_spanned_time(item);
|
set_spanned_time(item);
|
||||||
if (item.group == 'object') {
|
if (item.group == 'object') {
|
||||||
for (var attr of item.Attribute) {
|
for (var attr of item.Attribute) {
|
||||||
mapping_text_to_id.set(attr.contentType+': '+attr.content+' ('+item.id+')', item.id);
|
mapping_text_to_id.set(attr.contentType+': '+attr.content+' ('+item.orig_id+')', item.id);
|
||||||
adjust_text_length(attr);
|
adjust_text_length(attr);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mapping_text_to_id.set(item.content+' ('+item.id+')', item.id);
|
mapping_text_to_id.set(item.content+' ('+item.orig_id+')', item.id);
|
||||||
adjust_text_length(item);
|
adjust_text_length(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -500,11 +505,12 @@ function handle_selection(data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function edit_item(id, callback) {
|
function edit_item(id, callback) {
|
||||||
var group = items_timeline.get(id).group;
|
var item = items_timeline.get(id);
|
||||||
|
var group = item.group;
|
||||||
if (group == 'attribute') {
|
if (group == 'attribute') {
|
||||||
simplePopup('/attributes/edit/'+id);
|
simplePopup('/attributes/edit/'+item.orig_id);
|
||||||
} else if (group == 'object') {
|
} else if (group == 'object') {
|
||||||
window.location = '/objects/edit/'+id;
|
window.location = '/objects/edit/'+item.orig_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue