chg: [markdownViewer] Added drafty support of event graph

pull/6412/head
mokaddem 2020-08-25 14:08:17 +02:00
parent e3f0218da1
commit ded7597d17
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
2 changed files with 36 additions and 7 deletions

View File

@ -13,7 +13,7 @@ class EventGraphController extends AppController
parent::beforeFilter();
}
public function view($event_id = false)
public function view($event_id = false, $graph_id = null)
{
if ($event_id === false) {
throw new MethodNotAllowedException(__('No event ID set.'));
@ -40,12 +40,16 @@ class EventGraphController extends AppController
}
// fetch eventGraphs
$conditions = [
'EventGraph.event_id' => $event_id,
'EventGraph.org_id' => $org_id
];
if (!is_null($graph_id)) {
$conditions['EventGraph.id'] = $graph_id;
}
$eventGraphs = $this->EventGraph->find('all', array(
'order' => 'EventGraph.timestamp DESC',
'conditions' => array(
'EventGraph.event_id' => $event_id,
'EventGraph.org_id' => $org_id
),
'conditions' => $conditions,
'contain' => array(
'User' => array(
'fields' => array(

View File

@ -120,7 +120,6 @@
// - Add last modified timestamp & time since last edit
// - Add Picker for elements [correlation/eventGraph picture/tags/galaxyMatrix]
// - Add support of picture (attachment) in the markdown
?>
<script>
'use strict';
@ -139,6 +138,7 @@
var loadingSpanAnimation = '<span id="loadingSpan" class="fa fa-spin fa-spinner" style="margin-left: 5px;"></span>';
var dotTemplateAttribute = doT.template("<span class=\"misp-element-wrapper attribute useCursorPointer\" data-scope=\"{{=it.scope}}\" data-elementid=\"{{=it.elementid}}\"><span class=\"bold\">{{=it.type}}<span class=\"blue\"> {{=it.value}}</span></span></span>");
var dotTemplateAttributePicture = doT.template("<div class=\"misp-picture-wrapper attributePicture useCursorPointer\"><img data-scope=\"{{=it.scope}}\" data-elementid=\"{{=it.elementid}}\" href=\"#\" src=\"{{=it.src}}\" alt=\"{{=it.alt}}\" title=\"\"/></div>");
var dotTemplateEventgraph = doT.template("<div class=\"misp-picture-wrapper eventgraphPicture\" data-scope=\"{{=it.scope}}\" data-elementid=\"{{=it.elementid}}\" data-eventid=\"{{=it.eventid}}\"></div>");
var dotTemplateObject = doT.template("<span class=\"misp-element-wrapper object useCursorPointer\" data-scope=\"{{=it.scope}}\" data-elementid=\"{{=it.elementid}}\"><span class=\"bold\">{{=it.type}}<span class=\"\"> {{=it.value}}</span></span></span>");
var dotTemplateInvalid = doT.template("<span class=\"misp-element-wrapper invalid\"><span class=\"bold red\">{{=it.scope}}<span class=\"blue\"> ({{=it.id}})</span></span></span>");
@ -409,7 +409,7 @@
}
function MISPElementRenderer(tokens, idx, options, env, slf) {
var allowedScope = ['attribute', 'object']
var allowedScope = ['attribute', 'object', 'eventgraph']
var token = tokens[idx];
var scope = token.content.scope
var elementID = token.content.elementID
@ -454,6 +454,19 @@
})
return dotTemplateObject(templateVariables);
}
} else if (scope == 'eventgraph') {
// var eventgraph = proxyMISPElements[scope][elementID]
// if (eventgraph !== undefined) {
// templateVariables = sanitizeObject({
// scope: 'object',
// elementid: elementID,
// type: eventgraph.name,
// value: eventgraph.Attribute.length
// })
// return dotTemplateObject(templateVariables);
// }
setTimeout(function() { attachEventgraphPicture('.eventgraphPicture[data-scope="eventgraph"][data-eventid="' + 188 + '"][data-elementid="' + 1 + '"]', 188, 1) }, 200)
return dotTemplateEventgraph({scope: 'eventgraph', elementid: 1, eventid: 188});
}
return renderInvalidMISPElement(scope, elementID)
}
@ -616,6 +629,18 @@
$('#genericModal.markdown-modal-helper').modal();
}
function attachEventgraphPicture(selecteur, eventID, graphID) {
$.getJSON('/eventGraph/view/' + eventID + '/' + graphID, function (data) {
if (data) {
var dataPicture = data[0]['EventGraph']['preview_img']
if (dataPicture !== undefined) {
$(selecteur).empty().append($('<img />').attr('src', dataPicture))
}
}
return false
})
}
function replaceMISPElementByTheirValue(raw) {
var match, replacement, element
var final = ''