From fb6013bd6271d7daaaf04250eb664a56c89a3c89 Mon Sep 17 00:00:00 2001
From: Daniel Barbero Martin <daniel.barbero@artica.es>
Date: Wed, 20 Nov 2019 15:55:08 +0100
Subject: [PATCH] Wip alert correlation

---
 pandora_console/include/javascript/alert.js | 85 +++++++++++++++------
 1 file changed, 63 insertions(+), 22 deletions(-)

diff --git a/pandora_console/include/javascript/alert.js b/pandora_console/include/javascript/alert.js
index a3a3311a76..811ce42ada 100644
--- a/pandora_console/include/javascript/alert.js
+++ b/pandora_console/include/javascript/alert.js
@@ -9,6 +9,35 @@ function drag(ev) {
   ev.dataTransfer.setData("html", ev.target.outerHTML);
 }
 
+function edit(id, str) {
+  // If not defined id return.
+  console.log(id);
+
+  if (id == "variable-text") {
+    return;
+  }
+
+  // Value input hidden.
+  var valueHidden = $("#hidden-json-rule").val();
+
+  // Convert to array.
+  var arrayValueHidden = JSON.parse(valueHidden);
+
+  // Extract to id number row.
+  var numberField = id.replace("element-", "");
+
+  // Check do no undefined.
+  if (arrayValueHidden[numberField] != undefined) {
+    // Change value.
+    arrayValueHidden[numberField].value = str;
+
+    // Update value json-rule.
+    $("#hidden-json-rule").val(JSON.stringify(arrayValueHidden));
+  }
+
+  return;
+}
+
 function drop(ev) {
   ev.preventDefault();
 
@@ -23,6 +52,9 @@ function drop(ev) {
     .attr("class")
     .split(/\s+/)[0];
 
+  // Remove Class.
+  content = $(content).removeClass(classType);
+
   // Input hidden.
   var valueHidden = $("#hidden-json-rule").val();
 
@@ -34,10 +66,14 @@ function drop(ev) {
     stack = JSON.parse(valueHidden);
   }
 
+  // Change ID for non repeat and use variable change text.
+  content = $(content).attr("id", "element-" + stack.length);
+
   // Add stack.
   stack.push({
     type: classType,
-    value: id
+    element: id.replace(classType + "-", ""),
+    value: $(content).text()
   });
 
   // Convert to json tring for value input hidden.
@@ -46,6 +82,9 @@ function drop(ev) {
   // Set input hidden.
   $("#hidden-json-rule").val(stackString);
 
+  // Next button to submit is disabled
+  $("#submit-rule").attr("disabled", true);
+
   // Source class type action.
   switch (classType) {
     case "fields":
@@ -60,35 +99,36 @@ function drop(ev) {
       $(".operators").addClass("opacityElements");
       $(".operators").attr("draggable", false);
 
-      $(".variable").removeClass("opacityElements");
-      $(".variable").attr("draggable", true);
+      $(".variables").removeClass("opacityElements");
+      $(".variables").attr("draggable", true);
       break;
 
-    case "variable":
-      $(".variable").addClass("opacityElements");
-      $(".variable").attr("draggable", false);
+    case "variables":
+      $(".variables").addClass("opacityElements");
+      $(".variables").attr("draggable", false);
 
-      $(".modifier").removeClass("opacityElements");
-      $(".modifier").attr("draggable", true);
-      $(".nexo").removeClass("opacityElements");
-      $(".nexo").attr("draggable", true);
+      $(".modifiers").removeClass("opacityElements");
+      $(".modifiers").attr("draggable", true);
+      $(".nexos").removeClass("opacityElements");
+      $(".nexos").attr("draggable", true);
+      $("#submit-rule").attr("disabled", false);
       break;
 
-    case "modifier":
-      $(".modifier").addClass("opacityElements");
-      $(".modifier").attr("draggable", false);
-      $(".nexo").addClass("opacityElements");
-      $(".nexo").attr("draggable", false);
+    case "modifiers":
+      $(".modifiers").addClass("opacityElements");
+      $(".modifiers").attr("draggable", false);
+      $(".nexos").addClass("opacityElements");
+      $(".nexos").attr("draggable", false);
 
-      $(".variable").removeClass("opacityElements");
-      $(".variable").attr("draggable", true);
+      $(".variables").removeClass("opacityElements");
+      $(".variables").attr("draggable", true);
       break;
 
-    case "nexo":
-      $(".modifier").addClass("opacityElements");
-      $(".modifier").attr("draggable", false);
-      $(".nexo").addClass("opacityElements");
-      $(".nexo").attr("draggable", false);
+    case "nexos":
+      $(".modifiers").addClass("opacityElements");
+      $(".modifiers").attr("draggable", false);
+      $(".nexos").addClass("opacityElements");
+      $(".nexos").attr("draggable", false);
 
       $(".fields").removeClass("opacityElements");
       $(".fields").attr("draggable", true);
@@ -100,6 +140,7 @@ function drop(ev) {
   // Create content.
   var data = document.createElement("span");
 
+  content = $(content).prop("outerHTML");
   // If content nexo line break.
   if (content.includes("nexo")) {
     content = "<br/>" + content;