mirror of https://github.com/MISP/misp-modules
				
				
				
			chg: [website] parse result not in misp standard
							parent
							
								
									b5b42e6807
								
							
						
					
					
						commit
						50d6e60074
					
				|  | @ -60,8 +60,60 @@ function parseMispObject(misp_object, query_url, functionToCall){ | |||
|         ) | ||||
|     ) | ||||
|     $mainContainer.append(first_elem) | ||||
|     $mainContainer.append(first_elem) | ||||
|     $mainContainer.append(generate(misp_object, query_url, functionToCall)) | ||||
|     $mainContainer.append($("<hr>")) | ||||
|     return $mainContainer | ||||
| } | ||||
| 
 | ||||
| function parseMispAttr(misp_attr, misp_types, key, query_url, query_as_same){ | ||||
|     let $query = $("<a>") | ||||
|     let $query_same = null | ||||
| 
 | ||||
|     if(!misp_types.includes('counter') && !misp_types.includes('datetime') ){ | ||||
|         if(query_url){ | ||||
|             $query=$("<a>").attr("href", query_url+misp_attr).text("query").css("margin-left", "10px") | ||||
|         } | ||||
|         // `_${functionToCall.name}('${misp_attr}')` refer to 'window._query_as_same = query_as_same' in my vue file
 | ||||
|         $query_same = $("<button>").attr({"onclick": `_${query_as_same.name}('${misp_attr}')`,  | ||||
|                         "title": "Query this value with the same attribute and modules as the main query", | ||||
|                         "class": "btn btn-link" | ||||
|                     }) | ||||
|                 .text("query as same") | ||||
|                 .css({"margin-left": "10px", "padding": "0", "--bs-btn-border-width": "0"}) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     var $mainContainer = $('<div>') | ||||
|     let cp = key+1 | ||||
|     $mainContainer.append($("<h6>").append($("<u>").text("#Attr "+cp))) | ||||
|     $mainContainer.append($("<div>").css("display", "flex").append( | ||||
|         $("<div>").css({ | ||||
|             "border-left": "2px solid grey", | ||||
|             "border-bottom": "2px solid grey", | ||||
|             "width": "15px", | ||||
|             "height": "15px", | ||||
|             "display": "flex", | ||||
|             "margin-left": "0.5em", | ||||
|         }), | ||||
|         $("<div>").text("Type: "+ misp_types.join(", ")) | ||||
|         ) | ||||
|     ) | ||||
| 
 | ||||
|     $mainContainer.append($("<div>").css("display", "flex").append( | ||||
|             $("<div>").css({ | ||||
|                 "border-left": "2px solid grey", | ||||
|                 "border-bottom": "2px solid grey", | ||||
|                 "width": "15px", | ||||
|                 "height": "15px", | ||||
|                 "display": "flex", | ||||
|                 "margin-left": "0.5em", | ||||
|             }), | ||||
|             $("<div>").text("Value: "+ misp_attr), | ||||
|             $query, | ||||
|             $query_same | ||||
|         ) | ||||
|     ) | ||||
| 
 | ||||
|     $mainContainer.append($("<hr>")) | ||||
|     return $mainContainer | ||||
| } | ||||
|  | @ -81,7 +81,7 @@ | |||
|         </li> | ||||
|     </ul> | ||||
| 
 | ||||
|     <div class="row"> | ||||
|     <div class="row" style="margin-bottom: 50px;"> | ||||
|         <div class="col-10">           | ||||
|             <template v-if="tab_list == 'visual'"> | ||||
|                 <div data-bs-spy="scroll" data-bs-target="#list-result" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0"> | ||||
|  | @ -89,14 +89,23 @@ | |||
|                         <div class="accordion-item" :id="'list-item-'+key" v-for="result, key in modules_res"> | ||||
|                             <template v-if="!('error' in result)"> | ||||
|                                 <h2 class="accordion-header"> | ||||
|                                     <button class="accordion-button" type="button" data-bs-toggle="collapse" :data-bs-target="'#panelsStayOpen-'+key" aria-expanded="true" :aria-controls="'panelsStayOpen-'+key"> | ||||
|                                     <button class="accordion-button" data-bs-toggle="collapse" :data-bs-target="'#panelsStayOpen-'+key" aria-expanded="true" :aria-controls="'panelsStayOpen-'+key"> | ||||
|                                         [[key]] | ||||
|                                     </button> | ||||
|                                 </h2> | ||||
|                                 <div :id="'panelsStayOpen-'+key" class="accordion-collapse collapse show"> | ||||
|                                     <div class="accordion-body row"> | ||||
|                                         <template v-for="obj in result.results.Object"> | ||||
|                                             <div v-html="parseMispObject(obj, '/home/{{sid}}?query=', query_as_same)[0].outerHTML"></div> | ||||
|                                     <div class="accordion-body" > | ||||
|                                         <template v-if="'Object' in result.results"> | ||||
|                                             <template v-for="obj in result.results.Object"> | ||||
|                                                 <div v-html="parseMispObject(obj, '/home/{{sid}}?query=', query_as_same)[0].outerHTML"></div> | ||||
|                                             </template> | ||||
|                                         </template> | ||||
| 
 | ||||
|                                         <template v-else> | ||||
|                                             <!-- <div class="accordion-body" v-html="generateCoreFormatUI(result)[0].outerHTML"></div> --> | ||||
|                                             <template v-for="misp_attrs, key_loop in result.results"> | ||||
|                                                 <div v-for="misp_attr in misp_attrs.values" class="accordion-body" v-html="parseMispAttr(misp_attr, misp_attrs.types, key_loop, '/home/{{sid}}?query=', query_as_same)[0].outerHTML"></div> | ||||
|                                             </template> | ||||
|                                         </template> | ||||
|                                     </div> | ||||
|                                 </div> | ||||
|  | @ -104,18 +113,38 @@ | |||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                  | ||||
|                 <!-- Errors Part --> | ||||
|                 <hr style="margin-top: 50px"> | ||||
|                 <h3 id="errors_part">Errors</h3> | ||||
|                 <div data-bs-spy="scroll" data-bs-target="#list-error" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0"> | ||||
|                     <div class="accordion"> | ||||
|                         <div class="accordion-item" :id="'list-item-'+key" v-for="result, key in modules_res"> | ||||
|                             <template v-if="'error' in result"> | ||||
|                                 <h2 class="accordion-header"> | ||||
|                                     <button class="accordion-button" type="button" data-bs-toggle="collapse" :data-bs-target="'#panelsStayOpen-'+key" aria-expanded="true" :aria-controls="'panelsStayOpen-'+key"> | ||||
|                                         [[key]] | ||||
|                                         <span style="margin-left: 5px;" title="Error">❌</span> | ||||
|                                     </button> | ||||
|                                 </h2> | ||||
|                                 <div :id="'panelsStayOpen-'+key" class="accordion-collapse collapse show"> | ||||
|                                     <div class="accordion-body" v-html="generateCoreFormatUI(result)[0].outerHTML"></div> | ||||
|                                 </div> | ||||
|                             </template> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </template> | ||||
| 
 | ||||
|             <template v-else-if="tab_list == 'json'"> | ||||
|                 <div class="row" v-if="Object.keys(modules_res).length"> | ||||
|                     <div class="col-10"> | ||||
|                 <div v-if="Object.keys(modules_res).length"> | ||||
|                         <h3 id="results_part">Results</h3> | ||||
|                         <div data-bs-spy="scroll" data-bs-target="#list-result" data-bs-smooth-scroll="true" class="scrollspy-example" tabindex="0"> | ||||
|                             <div class="accordion"> | ||||
|                             <div class="accordion" style="width: 95%"> | ||||
|                                 <div class="accordion-item" :id="'list-item-'+key" v-for="result, key in modules_res"> | ||||
|                                     <template v-if="!('error' in result)"> | ||||
|                                         <h2 class="accordion-header"> | ||||
|                                             <button class="accordion-button" type="button" data-bs-toggle="collapse" :data-bs-target="'#panelsStayOpen-'+key" aria-expanded="true" :aria-controls="'panelsStayOpen-'+key"> | ||||
|                                             <button class="accordion-button" data-bs-toggle="collapse" :data-bs-target="'#panelsStayOpen-'+key" aria-expanded="true" :aria-controls="'panelsStayOpen-'+key"> | ||||
|                                                 [[key]] | ||||
|                                             </button> | ||||
|                                         </h2> | ||||
|  | @ -148,8 +177,6 @@ | |||
|                                 </div> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                      | ||||
|                 </div> | ||||
|             </template> | ||||
| 
 | ||||
|  | @ -190,7 +217,7 @@ Value: [[attr.value]] | |||
|                 <a class="list-group-item list-group-item-action" v-if="!('error' in result)" :href="'#list-item-'+key">[[key]]</a> | ||||
|             </template> | ||||
|              | ||||
|             <template v-if="tab_list == 'json'"> | ||||
|             <template v-if="tab_list == 'json' || tab_list == 'visual'"> | ||||
|                 <a class="list-group-item list-group-item-action" style="background-color: #0d6efd; color:white" href="#errors_part">Errors</a> | ||||
|                 <div id="list-error" class="list-group"> | ||||
|                     <template v-for="result, key in modules_res"> | ||||
|  | @ -340,6 +367,7 @@ Value: [[attr.value]] | |||
|                 history, | ||||
|                 generateCoreFormatUI, | ||||
|                 parseMispObject, | ||||
|                 parseMispAttr, | ||||
|                 active_tab, | ||||
|                 query_as_same | ||||
|             } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 David Cruciani
						David Cruciani